<img style="display: block; margin: auto; width:400px; height:250px;" src="https://raw.githubusercontent.com/mlhost/cloudspeak/v0.0.4/docs/images/logo.png">
[![PyPI version](https://badge.fury.io/py/cloudspeak.svg)](https://badge.fury.io/py/cloudspeak)
[![Documentation Status](https://readthedocs.org/projects/cloudspeak/badge/?version=latest)](https://cloudspeak.readthedocs.io/en/latest/?badge=latest)
# CloudSpeak - Azure Backend Abstractions for Python
CloudSpeak is a Python package that simplifies and abstracts the usage of Azure as a backend for specific Python data structures. It provides easy-to-use classes and methods for working with Azure Blob Storage and Azure Queue Storage, allowing you to seamlessly integrate Azure services into your Python applications.
## Features
CloudSpeak offers the following key features:
- **Azure Blob Storage Interaction:** Easily iterate through containers, create and delete them, and access individual blob files.
- **File Upload and Download:** Seamlessly upload and download files to and from Azure Blob Storage with built-in tracking of upload and download progress.
- **Azure Blob Storage Lock Management:** Efficiently manage locks offered by Azure Blob Storage to synchronize multiple processes.
- **Remote Dictionaries:** Create and manage dictionaries hosted entirely in Azure Blob Storage. You can choose between indexed dictionaries (with a maintained index for key retrieval) and non-indexed dictionaries for faster access to dictionary keys.
- **Remote Queues:** Create, send, and receive messages using a user-friendly interface, with Azure Storage as the backend.
## Getting Started
To get started with CloudSpeak, follow these simple steps:
1. Install CloudSpeak using pip:
```bash
pip install cloudspeak
```
2. Import the necessary modules and set up Azure credentials:
```python
from cloudspeak.azure import AzureCredentials
from cloudspeak.azure import AzureFactory
credentials = AzureCredentials()
credentials.connection_string_storage = "YOUR_CONNECTION_STRING"
factory = AzureFactory(credentials=credentials)
```
3. Use CloudSpeak to interact with Azure services. For example, to access blob storage:
```python
service = factory.service_storage
container = service.containers["example"]
# Uploading content to a blob file named "file"
file = container["file"]
file.data = b"test"
progress = file.upload()
progress.join()
# Downloading content from a blob file named "file"
file = container["file"]
progress = file.download()
progress.join()
downloaded_data = file.data
```
4. Create and use remote queues:
```python
queue = factory.queue("example", create=True)
queue.push("hello")
message = queue.pop(wait_time=-1)
# Automatically release the message from the queue when exiting the 'with' block.
with message:
print(message.content)
```
5. Access remote dictionaries:
```python
factory = AzureFactory(credentials=credentials)
# Create a non-indexed remote dictionary
ad = factory.dictionary('container', 'example', create_container=False, indexed=False)
ad["key"] = "value"
print(ad["key"])
```
* Transferring with progress:
<img style="display: block; margin: auto;" src="https://raw.githubusercontent.com/mlhost/cloudspeak/v0.0.4/docs/images/jupyter_download.gif">
## Abstractions Overview
CloudSpeak provides two main abstractions:
| Abstraction | Description |
|-----------------------|------------------------------------------------------------|
| Remote Dictionaries | Dictionaries hosted entirely in Azure Blob Storage. Choose between indexed or non-indexed versions for various use cases. |
| Remote Queues | User-friendly interface for managing queues with Azure Storage as the backend. |
## Documentation
For detailed documentation and examples, please refer to the [CloudSpeak Documentation](https://cloudspeak.readthedocs.io/).
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
Raw data
{
"_id": null,
"home_page": "https://github.com/mlhost/cloudspeak",
"name": "cloudspeak",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "python,cloud,remote,dict,abstraction,azure,storage,blob",
"author": "",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/02/fe/0b3d3f789e5b335a0a2e809e372c73dd8b7332b771eb3c27efbc88ddaec0/cloudspeak-0.1.2.tar.gz",
"platform": null,
"description": "<img style=\"display: block; margin: auto; width:400px; height:250px;\" src=\"https://raw.githubusercontent.com/mlhost/cloudspeak/v0.0.4/docs/images/logo.png\">\n\n[![PyPI version](https://badge.fury.io/py/cloudspeak.svg)](https://badge.fury.io/py/cloudspeak)\n[![Documentation Status](https://readthedocs.org/projects/cloudspeak/badge/?version=latest)](https://cloudspeak.readthedocs.io/en/latest/?badge=latest)\n\n\n# CloudSpeak - Azure Backend Abstractions for Python\n\nCloudSpeak is a Python package that simplifies and abstracts the usage of Azure as a backend for specific Python data structures. It provides easy-to-use classes and methods for working with Azure Blob Storage and Azure Queue Storage, allowing you to seamlessly integrate Azure services into your Python applications.\n\n## Features\n\nCloudSpeak offers the following key features:\n\n- **Azure Blob Storage Interaction:** Easily iterate through containers, create and delete them, and access individual blob files.\n \n- **File Upload and Download:** Seamlessly upload and download files to and from Azure Blob Storage with built-in tracking of upload and download progress.\n \n- **Azure Blob Storage Lock Management:** Efficiently manage locks offered by Azure Blob Storage to synchronize multiple processes.\n\n- **Remote Dictionaries:** Create and manage dictionaries hosted entirely in Azure Blob Storage. You can choose between indexed dictionaries (with a maintained index for key retrieval) and non-indexed dictionaries for faster access to dictionary keys.\n\n- **Remote Queues:** Create, send, and receive messages using a user-friendly interface, with Azure Storage as the backend.\n\n## Getting Started\n\nTo get started with CloudSpeak, follow these simple steps:\n\n1. Install CloudSpeak using pip:\n\n ```bash\n pip install cloudspeak\n ```\n\n2. Import the necessary modules and set up Azure credentials:\n\n ```python\n from cloudspeak.azure import AzureCredentials\n from cloudspeak.azure import AzureFactory\n\n credentials = AzureCredentials()\n credentials.connection_string_storage = \"YOUR_CONNECTION_STRING\"\n\n factory = AzureFactory(credentials=credentials)\n ```\n\n3. Use CloudSpeak to interact with Azure services. For example, to access blob storage:\n\n ```python\n service = factory.service_storage\n container = service.containers[\"example\"]\n\n # Uploading content to a blob file named \"file\"\n file = container[\"file\"]\n file.data = b\"test\"\n progress = file.upload()\n progress.join()\n\n # Downloading content from a blob file named \"file\"\n file = container[\"file\"]\n progress = file.download()\n progress.join()\n downloaded_data = file.data\n ```\n\n4. Create and use remote queues:\n\n ```python\n queue = factory.queue(\"example\", create=True)\n queue.push(\"hello\")\n\n message = queue.pop(wait_time=-1)\n\n # Automatically release the message from the queue when exiting the 'with' block.\n with message:\n print(message.content)\n ```\n\n5. Access remote dictionaries:\n\n ```python\n factory = AzureFactory(credentials=credentials)\n\n # Create a non-indexed remote dictionary\n ad = factory.dictionary('container', 'example', create_container=False, indexed=False)\n\n ad[\"key\"] = \"value\"\n print(ad[\"key\"])\n ```\n\n* Transferring with progress:\n<img style=\"display: block; margin: auto;\" src=\"https://raw.githubusercontent.com/mlhost/cloudspeak/v0.0.4/docs/images/jupyter_download.gif\">\n\n## Abstractions Overview\n\nCloudSpeak provides two main abstractions:\n\n| Abstraction | Description |\n|-----------------------|------------------------------------------------------------|\n| Remote Dictionaries | Dictionaries hosted entirely in Azure Blob Storage. Choose between indexed or non-indexed versions for various use cases. |\n| Remote Queues | User-friendly interface for managing queues with Azure Storage as the backend. |\n\n## Documentation\n\nFor detailed documentation and examples, please refer to the [CloudSpeak Documentation](https://cloudspeak.readthedocs.io/).\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n",
"bugtrack_url": null,
"license": "",
"summary": "Set of python tools that eases integration of cloud services in Python projects",
"version": "0.1.2",
"project_urls": {
"Homepage": "https://github.com/mlhost/cloudspeak"
},
"split_keywords": [
"python",
"cloud",
"remote",
"dict",
"abstraction",
"azure",
"storage",
"blob"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "bde1de554fc984e91c0ca432a21ad2b528b3808068e46c30be95a7c96c9a2540",
"md5": "7bb324c75b82e6cc14e8508b52aab5fa",
"sha256": "bd3f2f4bb9234765e4ea9423020924c97c1e81fccdd4ffe01e7bdb46105a6f18"
},
"downloads": -1,
"filename": "cloudspeak-0.1.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7bb324c75b82e6cc14e8508b52aab5fa",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 76203,
"upload_time": "2023-10-08T16:59:20",
"upload_time_iso_8601": "2023-10-08T16:59:20.760570Z",
"url": "https://files.pythonhosted.org/packages/bd/e1/de554fc984e91c0ca432a21ad2b528b3808068e46c30be95a7c96c9a2540/cloudspeak-0.1.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "02fe0b3d3f789e5b335a0a2e809e372c73dd8b7332b771eb3c27efbc88ddaec0",
"md5": "a1f6181c06057a0378bab59c806dbff5",
"sha256": "ffcacbd200c7248de5075cb3b08a7e13caf46c2c81a621ad638faf7c692e3bea"
},
"downloads": -1,
"filename": "cloudspeak-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "a1f6181c06057a0378bab59c806dbff5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 28703,
"upload_time": "2023-10-08T16:59:22",
"upload_time_iso_8601": "2023-10-08T16:59:22.707757Z",
"url": "https://files.pythonhosted.org/packages/02/fe/0b3d3f789e5b335a0a2e809e372c73dd8b7332b771eb3c27efbc88ddaec0/cloudspeak-0.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-08 16:59:22",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "mlhost",
"github_project": "cloudspeak",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "tqdm",
"specs": [
[
"==",
"4.64.1"
]
]
},
{
"name": "joblib",
"specs": [
[
"==",
"1.2.0"
]
]
},
{
"name": "azure-storage-blob",
"specs": [
[
"==",
"12.14.1"
]
]
},
{
"name": "azure-storage-queue",
"specs": [
[
"==",
"12.3.0"
]
]
},
{
"name": "pandas",
"specs": []
}
],
"lcname": "cloudspeak"
}