aiodoc


Nameaiodoc JSON
Version 0.1.2 PyPI version JSON
download
home_pageNone
SummaryThis 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_time2024-11-11 11:14:41
maintainerNone
docs_urlNone
authorChris
requires_python<4.0,>=3.12
licenseNone
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"
}
        
Elapsed time: 1.95729s