Name | aiodoc JSON |
Version |
0.1.2
JSON |
| download |
home_page | None |
Summary | This library allows you to retrieve BytesIO objects from various sources asynchronously. Whether you're dealing with cloud storage, HTTP endpoints, FTP servers, or local files. |
upload_time | 2024-11-11 11:14:41 |
maintainer | None |
docs_url | None |
author | Chris |
requires_python | <4.0,>=3.12 |
license | None |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# ๐ aiodoc: Async ByteIO Retrieval from Any Source ๐ชฃ
Welcome to **aiodoc**! ๐ This library allows you to retrieve `BytesIO` objects from various sources asynchronously. Whether you're dealing with cloud storage, HTTP endpoints, FTP servers, or local files, `aiodoc` has got you covered! ๐
## ๐ฏ Key Features
- **Async all the way** ๐: Perform all file operations asynchronously to keep your application responsive.
- **Retrieve from any source** ๐: Supports AWS S3, MinIO, Google Cloud Storage, HTTP, FTP, Redis, Memcached, and even local file systems.
- **Unified API** ๐คน: A simple, easy-to-use interface for interacting with any storage system.
## ๐ผ Supported Providers
- ๐ **AWS S3** via `aiobotocore` ๐
- ๐ฆ **MinIO** using `minio-py` ๐ ๏ธ
- โ๏ธ **Google Cloud Storage** with `google-cloud-storage` ๐ฉ
- ๐ **HTTP** with `httpx` ๐
- ๐ **Local file system** with `aiofile` ๐๏ธ
- ๐ง **Memcached** using `aiomemcached` ๐งณ
- ๐ฅ **Redis** via `aioredis` ๐ฅ
- ๐ **FTP** with `aioftp` ๐ก
## ๐ How to Install
1. Clone the repo:
```bash
git clone https://github.com/your-repo/aiodoc.git
```
2. Install dependencies:
```bash
pip install -r requirements.txt
```
3. Done! ๐ Now you're ready to use `aiodoc` for all your asynchronous file needs.
## ๐ ๏ธ Usage
### ๐ฉ Create Your Provider
You can set up and use different providers based on your needs.
#### ๐ AWS S3 Example
```python
from aiobotocore.session import AioSession
from aiodoc import S3Provider
# Initialize S3 provider
session = AioSession()
s3_provider = S3Provider(session)
# Retrieve a file as a BytesIO object
file_bytes = await s3_provider.download("my-bucket", "my-file.txt")
```
#### โ๏ธ Google Cloud Storage Example
```python
from google.cloud import storage
from aiodoc import GCPProvider
# Initialize GCP provider
client = storage.Client()
gcp_provider = GCPProvider(client)
# Retrieve a file as a BytesIO object
file_bytes = await gcp_provider.download("my-bucket", "my-file.txt")
```
#### ๐ Local File System Example
```python
from aiodoc import FileProvider
# Initialize File provider
file_provider = FileProvider()
# Retrieve a file as a BytesIO object
file_bytes = await file_provider.download("bucket", "/path/to/file.txt")
```
#### ๐ฅ Redis Example
```python
from aioredis import Redis
from aiodoc import RedisProvider
# Initialize Redis provider
redis_client = await Redis.create()
redis_provider = RedisProvider(redis_client)
# Retrieve a file as a BytesIO object
file_bytes = await redis_provider.download("bucket", "file-key")
```
### ๐ ๏ธ Available Operations
- **Upload** ๐: Upload a `BytesIO` object to any provider.
- **Download** โฌ๏ธ: Retrieve a `BytesIO` object from any provider.
- **List Files** ๐: List files (where supported).
- **Delete File** โ: Delete a file (where supported).
## ๐ค Contributing
Feel free to submit issues or pull requests if you'd like to contribute!
## ๐ License
This project is licensed under the MIT License.
Raw data
{
"_id": null,
"home_page": null,
"name": "aiodoc",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.12",
"maintainer_email": null,
"keywords": null,
"author": "Chris",
"author_email": "goabonga@pm.me",
"download_url": "https://files.pythonhosted.org/packages/76/fe/9ffa249ac90c72a5362de1ff7420a3d97f95a77a4b2435bf8aadefb72ba1/aiodoc-0.1.2.tar.gz",
"platform": null,
"description": "\n# \ud83d\ude80 aiodoc: Async ByteIO Retrieval from Any Source \ud83e\udea3\n\nWelcome to **aiodoc**! \ud83c\udf89 This library allows you to retrieve `BytesIO` objects from various sources asynchronously. Whether you're dealing with cloud storage, HTTP endpoints, FTP servers, or local files, `aiodoc` has got you covered! \ud83c\udf10\n\n## \ud83c\udfaf Key Features\n\n- **Async all the way** \ud83c\udf1f: Perform all file operations asynchronously to keep your application responsive.\n- **Retrieve from any source** \ud83d\udd0c: Supports AWS S3, MinIO, Google Cloud Storage, HTTP, FTP, Redis, Memcached, and even local file systems.\n- **Unified API** \ud83e\udd39: A simple, easy-to-use interface for interacting with any storage system.\n\n## \ud83d\udcbc Supported Providers\n\n- \ud83d\udc18 **AWS S3** via `aiobotocore` \ud83d\ude80\n- \ud83e\udd92 **MinIO** using `minio-py` \ud83d\udee0\ufe0f\n- \u2601\ufe0f **Google Cloud Storage** with `google-cloud-storage` \ud83c\udfa9\n- \ud83c\udf10 **HTTP** with `httpx` \ud83c\udf0d\n- \ud83d\udcc2 **Local file system** with `aiofile` \ud83d\uddc2\ufe0f\n- \ud83e\udde0 **Memcached** using `aiomemcached` \ud83e\uddf3\n- \ud83d\udd25 **Redis** via `aioredis` \ud83d\udd25\n- \ud83d\udd17 **FTP** with `aioftp` \ud83d\udce1\n\n## \ud83c\udf92 How to Install\n\n1. Clone the repo:\n ```bash\n git clone https://github.com/your-repo/aiodoc.git\n ```\n\n2. Install dependencies:\n ```bash\n pip install -r requirements.txt\n ```\n\n3. Done! \ud83c\udf89 Now you're ready to use `aiodoc` for all your asynchronous file needs.\n\n## \ud83d\udee0\ufe0f Usage\n\n### \ud83c\udfa9 Create Your Provider\n\nYou can set up and use different providers based on your needs.\n\n#### \ud83d\udc18 AWS S3 Example\n```python\nfrom aiobotocore.session import AioSession\nfrom aiodoc import S3Provider\n\n# Initialize S3 provider\nsession = AioSession()\ns3_provider = S3Provider(session)\n\n# Retrieve a file as a BytesIO object\nfile_bytes = await s3_provider.download(\"my-bucket\", \"my-file.txt\")\n```\n\n#### \u2601\ufe0f Google Cloud Storage Example\n```python\nfrom google.cloud import storage\nfrom aiodoc import GCPProvider\n\n# Initialize GCP provider\nclient = storage.Client()\ngcp_provider = GCPProvider(client)\n\n# Retrieve a file as a BytesIO object\nfile_bytes = await gcp_provider.download(\"my-bucket\", \"my-file.txt\")\n```\n\n#### \ud83d\udcc2 Local File System Example\n```python\nfrom aiodoc import FileProvider\n\n# Initialize File provider\nfile_provider = FileProvider()\n\n# Retrieve a file as a BytesIO object\nfile_bytes = await file_provider.download(\"bucket\", \"/path/to/file.txt\")\n```\n\n#### \ud83d\udd25 Redis Example\n```python\nfrom aioredis import Redis\nfrom aiodoc import RedisProvider\n\n# Initialize Redis provider\nredis_client = await Redis.create()\nredis_provider = RedisProvider(redis_client)\n\n# Retrieve a file as a BytesIO object\nfile_bytes = await redis_provider.download(\"bucket\", \"file-key\")\n```\n\n### \ud83d\udee0\ufe0f Available Operations\n\n- **Upload** \ud83c\udd99: Upload a `BytesIO` object to any provider.\n- **Download** \u2b07\ufe0f: Retrieve a `BytesIO` object from any provider.\n- **List Files** \ud83d\udcdc: List files (where supported).\n- **Delete File** \u274c: Delete a file (where supported).\n\n## \ud83e\udd1d Contributing\n\nFeel free to submit issues or pull requests if you'd like to contribute!\n\n## \ud83d\udcdd License\n\nThis project is licensed under the MIT License.\n\n",
"bugtrack_url": null,
"license": null,
"summary": "This library allows you to retrieve BytesIO objects from various sources asynchronously. Whether you're dealing with cloud storage, HTTP endpoints, FTP servers, or local files.",
"version": "0.1.2",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e85dde38cf789f016bf68b75b0b4c839d969c1c69ba8c8fa003f4cac764ee9dd",
"md5": "d4e254797a5f9e543d67621699edc7be",
"sha256": "3f6cd6754b355150607f3637ee967093180a927e86db3b23f9c8211f72f604f1"
},
"downloads": -1,
"filename": "aiodoc-0.1.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d4e254797a5f9e543d67621699edc7be",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.12",
"size": 9187,
"upload_time": "2024-11-11T11:14:41",
"upload_time_iso_8601": "2024-11-11T11:14:41.115115Z",
"url": "https://files.pythonhosted.org/packages/e8/5d/de38cf789f016bf68b75b0b4c839d969c1c69ba8c8fa003f4cac764ee9dd/aiodoc-0.1.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "76fe9ffa249ac90c72a5362de1ff7420a3d97f95a77a4b2435bf8aadefb72ba1",
"md5": "fedc09458f58b5c2521803e206458f13",
"sha256": "972b94ba172de0032b285e1385ec37806015d437293a0d067b12954a3b488b49"
},
"downloads": -1,
"filename": "aiodoc-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "fedc09458f58b5c2521803e206458f13",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.12",
"size": 6133,
"upload_time": "2024-11-11T11:14:41",
"upload_time_iso_8601": "2024-11-11T11:14:41.969286Z",
"url": "https://files.pythonhosted.org/packages/76/fe/9ffa249ac90c72a5362de1ff7420a3d97f95a77a4b2435bf8aadefb72ba1/aiodoc-0.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-11 11:14:41",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "aiodoc"
}