Production-ready HTTP client for Flowfull backends
Project description
Flowfull-Python Client
Production-ready HTTP client for Python applications to interact with Flowfull backends.
✨ Features
- ✅ Simple & User-Friendly - Like requests/httpx but for Flowfull
- ✅ Built-in Authentication - No separate auth package needed
- ✅ Type-Safe - Full type hints with Pydantic
- ✅ Async Support - Both sync and async APIs
- ✅ Powerful Query Builder - Chainable API with 14 filter operators
- ✅ Auto Session Management - Detects and injects session automatically
- ✅ Production-Ready - Retry logic, interceptors, error handling
- ✅ Pythonic - Follows PEP 8 and Python best practices
📦 Installation
For Users
pip install flowfull-python
For Development
Windows (PowerShell):
# Quick install (recommended)
.\install.ps1
# Or manual install
pip install -r requirements-dev.txt
Linux/Mac:
pip install -r requirements-dev.txt
See QUICK-START.md for detailed installation guide.
🚀 Quick Start
Basic Usage (Sync)
from core import FlowfullClient
# Create client (auto-detects session)
client = FlowfullClient("https://api.myapp.com")
# Simple GET
response = client.get("/users")
print(f"Found {len(response.data)} users")
Basic Usage (Async)
from core import AsyncFlowfullClient
async def main():
async with AsyncFlowfullClient("https://api.myapp.com") as client:
response = await client.get("/users")
print(f"Found {len(response.data)} users")
Query Builder
from core import FlowfullClient, eq, gte, in_
client = FlowfullClient("https://api.myapp.com")
products = (
client.query("/products")
.where("status", eq("active"))
.where("price", gte(50))
.where("category", in_(["electronics", "books"]))
.sort("price", "asc")
.page(1)
.limit(20)
.get()
)
Authentication
# Create auth helper
auth = client.auth()
# Login
session = auth.login(
email="user@example.com",
password="password"
)
# Validate
is_valid = auth.validate_session()
# Refresh
user = auth.refresh_user()
# Logout
auth.logout()
🧪 Testing
Run Tests
# Quick start (auto-installs dependencies if needed)
python run_tests.py
# With coverage
python run_tests.py --cov
# With verbose output
python run_tests.py --verbose
See TESTING.md for comprehensive testing guide.
📚 Documentation
Full documentation is available:
- Quick Start: QUICK-START.md - Installation and setup
- Testing Guide: TESTING.md - Running and writing tests
- Architecture: to-do/00-ARCHITECTURE-OVERVIEW.md
- Setup Guide: to-do/01-SETUP.md
- Authentication: to-do/04-AUTHENTICATION.md
- Filter Syntax: to-do/FILTER-SYNTAX.md
- Quick Reference: to-do/QUICK-REFERENCE.md
🔧 Configuration
from core import FlowfullClient, FileStorage
client = FlowfullClient(
base_url="https://api.myapp.com",
storage=FileStorage("~/.myapp"),
timeout=30.0,
retry_attempts=3,
retry_delay=1.0,
retry_exponential=True,
include_session=True,
)
📝 License
Flowfull-Python is licensed under the AGPL-3.0-only license.
What does this mean?
- ✅ Free to use - Use commercially without paying anything
- ✅ Modify freely - Change the code as needed
- ✅ Distribute - Share with others
- ⚠️ Share modifications - If you modify and offer as a web service, you must release your changes
- ⚠️ Same license - Derivative works must use AGPL-3.0
Commercial License Available
For organizations that cannot comply with AGPL-3.0 or need:
- 💼 Keep modifications private
- 🛡️ Legal indemnification
- 🎯 Enterprise support and SLA
- 🚀 Custom features
Contact: enterprise@pubflow.com Learn more: https://pubflow.com/dual-licensing
See LICENSE for full details.
🤝 Contributing
Contributions are welcome! Please read our contributing guidelines before submitting PRs.
📧 Support
For issues and questions, please open an issue on GitHub.
For commercial support and licensing inquiries: enterprise@pubflow.com
Copyright © 2024-present Pubflow, Inc. SPDX-License-Identifier: AGPL-3.0-only
Made with ❤️ by the Pubflow 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 flowfull_python-1.0.0.tar.gz.
File metadata
- Download URL: flowfull_python-1.0.0.tar.gz
- Upload date:
- Size: 29.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a2c432d216ba699562aa5ed5a2ebea186a8117ff1e347b80cda612274544235
|
|
| MD5 |
28ba62cacd76b2fbe2fd169e84b7322e
|
|
| BLAKE2b-256 |
bcf6b6d8e059ddc380fbb1bc1d333ae158a330554c7945898d3e8b06f4d0589c
|
File details
Details for the file flowfull_python-1.0.0-py3-none-any.whl.
File metadata
- Download URL: flowfull_python-1.0.0-py3-none-any.whl
- Upload date:
- Size: 26.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36437360913eaa6c54697da5db8eb9433138aff512f1c4033a9cc0dbf23f7a5f
|
|
| MD5 |
7a9080c1805adfa93355c9a57ebcd3d0
|
|
| BLAKE2b-256 |
d923fac4edb296c98ff45d83f1c0e13d8a57e2bacb6cee50a548a39c5babf091
|