Skip to main content

Simple, powerful, and scalable cloud storage for Python applications

Project description

WoosCloud Storage - Python Client

Simple, powerful, and scalable cloud storage for Python applications.

🚀 Features

  • Simple API - Store and retrieve data with just a few lines of code
  • Type Safe - Full type hints support
  • Fast - Optimized for performance
  • Secure - API key authentication
  • Free Tier - 500MB storage + 10,000 API calls/month

📦 Installation

pip install wooscloud

🔑 Get Your API Key

  1. Sign up at woos-ai.com
  2. Create an API key from your dashboard
  3. Copy your API key (starts with wai_)

🎯 Quick Start

from wooscloud import WoosStorage

# Initialize with your API key
storage = WoosStorage(api_key="wai_your_api_key_here")

# Save data
data_id = storage.save("users", {
    "name": "John Doe",
    "email": "john@example.com",
    "age": 30
})
print(f"Saved with ID: {data_id}")

# Find data
users = storage.find("users")
for user in users:
    print(user.data)

# Find by ID
user = storage.find_one(data_id)
print(user.data)

# Update data
storage.update(data_id, {
    "name": "John Doe",
    "email": "john@example.com",
    "age": 31  # Updated age
})

# Delete data
storage.delete(data_id)

# Get statistics
stats = storage.stats()
print(f"Storage used: {stats.storage_used_mb} MB")
print(f"API calls: {stats.api_calls_count}")

📚 Examples

E-commerce Product Management

from wooscloud import WoosStorage

storage = WoosStorage(api_key="wai_your_api_key")

# Add products
laptop_id = storage.save("products", {
    "name": "MacBook Pro M3",
    "price": 2500000,
    "category": "laptop",
    "stock": 15
})

phone_id = storage.save("products", {
    "name": "iPhone 15 Pro",
    "price": 1550000,
    "category": "smartphone",
    "stock": 30
})

# Get all products
products = storage.find("products")
print(f"Total products: {len(products)}")

# Get product count
count = storage.count("products")
print(f"Product count: {count}")

User Profile Management

from wooscloud import WoosStorage

storage = WoosStorage(api_key="wai_your_api_key")

# Create user profile
user_id = storage.save("users", {
    "username": "john_doe",
    "email": "john@example.com",
    "profile": {
        "age": 30,
        "city": "Seoul",
        "interests": ["technology", "reading", "travel"]
    }
})

# Update profile
storage.update(user_id, {
    "username": "john_doe",
    "email": "john@example.com",
    "profile": {
        "age": 31,  # Birthday!
        "city": "Seoul",
        "interests": ["technology", "reading", "travel", "photography"]
    }
})

Blog System

from wooscloud import WoosStorage
from datetime import datetime

storage = WoosStorage(api_key="wai_your_api_key")

# Create blog post
post_id = storage.save("posts", {
    "title": "Getting Started with WoosCloud",
    "content": "WoosCloud is a simple cloud storage...",
    "author": "John Doe",
    "tags": ["cloud", "storage", "tutorial"],
    "published_at": datetime.now().isoformat()
})

# Get all posts
posts = storage.find("posts", limit=10)
for post in posts:
    print(f"Title: {post.data['title']}")
    print(f"Author: {post.data['author']}")

🔧 API Reference

WoosStorage

Main class for interacting with WoosCloud Storage.

__init__(api_key: str, base_url: str = "https://wooscloud.up.railway.app")

Initialize WoosStorage client.

Parameters:

  • api_key (str): Your WoosCloud API key
  • base_url (str, optional): API base URL

save(collection: str, data: Dict[str, Any]) -> str

Save data to a collection.

Parameters:

  • collection (str): Collection name
  • data (dict): Data to save

Returns:

  • str: Data ID

find(collection: str, limit: int = 100, skip: int = 0) -> List[StorageData]

Find data in a collection.

Parameters:

  • collection (str): Collection name
  • limit (int): Maximum results (1-1000)
  • skip (int): Number to skip (pagination)

Returns:

  • List[StorageData]: List of data objects

find_one(data_id: str) -> StorageData

Find data by ID.

Parameters:

  • data_id (str): Data ID

Returns:

  • StorageData: Data object

update(data_id: str, data: Dict[str, Any]) -> bool

Update data by ID.

Parameters:

  • data_id (str): Data ID
  • data (dict): New data

Returns:

  • bool: True if successful

delete(data_id: str) -> bool

Delete data by ID.

Parameters:

  • data_id (str): Data ID

Returns:

  • bool: True if successful

stats() -> StorageStats

Get storage usage statistics.

Returns:

  • StorageStats: Statistics object

collections() -> List[Collection]

List all collections.

Returns:

  • List[Collection]: List of collections

count(collection: str) -> int

Count items in a collection.

Parameters:

  • collection (str): Collection name

Returns:

  • int: Number of items

🛡️ Error Handling

from wooscloud import WoosStorage
from wooscloud import (
    AuthenticationError,
    QuotaExceededError,
    NotFoundError,
    ValidationError
)

storage = WoosStorage(api_key="wai_your_api_key")

try:
    data = storage.find_one("invalid_id")
except NotFoundError:
    print("Data not found")
except AuthenticationError:
    print("Invalid API key")
except QuotaExceededError:
    print("Storage quota exceeded")
except ValidationError as e:
    print(f"Validation error: {e.message}")

📊 Pricing

FREE Plan

  • Storage: 500 MB
  • API Calls: 10,000/month
  • Price: $0

STARTER Plan

  • Storage: 5 GB
  • API Calls: Unlimited
  • Price: $9/month

PRO Plan

  • Storage: 50 GB
  • API Calls: Unlimited
  • Price: $29/month

🔗 Links

📝 License

MIT License - see LICENSE file for details

🤝 Support

🌟 Contributing

Contributions are welcome! Please read our contributing guidelines.


Made with ❤️ by WoosCloud Team

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wooscloud-1.2.5.tar.gz (14.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wooscloud-1.2.5-py3-none-any.whl (14.5 kB view details)

Uploaded Python 3

File details

Details for the file wooscloud-1.2.5.tar.gz.

File metadata

  • Download URL: wooscloud-1.2.5.tar.gz
  • Upload date:
  • Size: 14.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for wooscloud-1.2.5.tar.gz
Algorithm Hash digest
SHA256 573c95426880c237abef55de0b3baf87d0cdb824f97a9ba53862f25695ac3159
MD5 96e29e934fe93300f63a6f4e5c2beb80
BLAKE2b-256 2c5f7eb2373218bb1466be28f3980e9f303377eabfa7e11d145b1206e25e273f

See more details on using hashes here.

File details

Details for the file wooscloud-1.2.5-py3-none-any.whl.

File metadata

  • Download URL: wooscloud-1.2.5-py3-none-any.whl
  • Upload date:
  • Size: 14.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for wooscloud-1.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 265b6916295aa4f7cea1bf836bd2cd68be67728cb722006204b7e6d24e603061
MD5 46b764ce5402552094da35caf75c758a
BLAKE2b-256 b4209d55be70d0fbd361b9a89325bfe73d0a68376d9f32ac061e370d1dfbad78

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page