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
- Sign up at woos-ai.com
- Create an API key from your dashboard
- 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 keybase_url(str, optional): API base URL
save(collection: str, data: Dict[str, Any]) -> str
Save data to a collection.
Parameters:
collection(str): Collection namedata(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 namelimit(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 IDdata(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
- Website: woos-ai.com
- Documentation: woos-ai.com/docs
- API Reference: woos-ai.com/api
- GitHub: github.com/wooscloud
📝 License
MIT License - see LICENSE file for details
🤝 Support
- Email: support@woos-ai.com
- Discord: Join our community
- GitHub Issues: Report bugs
🌟 Contributing
Contributions are welcome! Please read our contributing guidelines.
Made with ❤️ by WoosCloud Team
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wooscloud-1.1.3.tar.gz.
File metadata
- Download URL: wooscloud-1.1.3.tar.gz
- Upload date:
- Size: 10.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26ee4f40974f53dfaf8d89a4668011753c1b9d28e0b093f0518144309a5f92d9
|
|
| MD5 |
099cf31dab27b6c620661e85a872821f
|
|
| BLAKE2b-256 |
5a2964f515acfd0a53521a4ef7fc9e7a190e17e93da7672499deb695c7149041
|
File details
Details for the file wooscloud-1.1.3-py3-none-any.whl.
File metadata
- Download URL: wooscloud-1.1.3-py3-none-any.whl
- Upload date:
- Size: 9.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0841facc71f276d7d65b05b0b0263d258a97873e759065429c14b54b2e0f06ec
|
|
| MD5 |
e4c94a3f33dee3c6360c82a5e1352c7f
|
|
| BLAKE2b-256 |
0594be5094172263a994615636aec1c75a92531f07fc6bc5cd43491099b6ee43
|