# pinkboto
A Colorful AWS SDK wrapper for Python
[![Current version at PyPI](https://img.shields.io/pypi/v/pinkboto.svg)](https://pypi.python.org/pypi/pinkboto)
![Supported Python Versions](https://img.shields.io/pypi/pyversions/pinkboto.svg)
![Software status](https://img.shields.io/pypi/status/pinkboto.svg)
![PyPI - Downloads](https://img.shields.io/pypi/dd/pinkboto)
## Install
```bash
pip install pinkboto
```
### Usage
```python
import pinkboto
aws = pinkboto.aws(profile='production', region='us-east-1')
selector = {'resource': 'aws_db_instance'}
projection = ['DBInstanceIdentifier', 'Endpoint']
rds = aws.find(selector, projection)
```
### Caching
By default, pinkboto caching all requests with 120 seconds lifespan.
To disable:
```python
aws = pinkboto.aws(profile='production', region='us-east-1', cache=False)
```
To modify lifespan to 1 hour:
```python
aws = pinkboto.aws(profile='production', region='us-east-1', cache=3600)
```
### AWS Lambda usage
When using pinkboto in an AWS Lambda it is important to change the cache folder
to the /tmp writable folder.
```python
aws = pinkboto.aws(profile='production', region='us-east-1', cache=3600, cache_folder='/tmp/pinkboto')
```
### Subfield projection
You can access a subfield in projection. For example 'Endpoint.Address' in rds
```python
rds = aws.find({'resource': 'aws_db_instance'}, ['Endpoint.Address', 'AvailabilityZone'])
```
### CSV output
```python
pinkboto.to_csv(rds, 'result.csv')
```
### pypi package publish
```bash
update setup.py version.
python3 setup.py sdist
twine upload dist/pinkboto-${new-version}.tar.gz
```
### Contributing
Pull requests for new features, bug fixes, and suggestions are welcome!
### License
GNU General Public License v3 (GPLv3)
### Developer install requirements
```bash
pre-commit install
```
Raw data
{
"_id": null,
"home_page": "https://github.com/Hotmart-Org/pinkboto",
"name": "pinkboto",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "aws sdk api pinkboto boto",
"author": "J\u00f4natas Renan Camilo Alves",
"author_email": "jonatas.alves@hotmart.com",
"download_url": "https://files.pythonhosted.org/packages/75/79/109f1f559a8bc4a8446d3b6c24772fdb729ef7972f4e87c7e07e4b0bb27a/pinkboto-0.0.51.tar.gz",
"platform": null,
"description": "# pinkboto\n\nA Colorful AWS SDK wrapper for Python\n\n[![Current version at PyPI](https://img.shields.io/pypi/v/pinkboto.svg)](https://pypi.python.org/pypi/pinkboto)\n![Supported Python Versions](https://img.shields.io/pypi/pyversions/pinkboto.svg)\n![Software status](https://img.shields.io/pypi/status/pinkboto.svg)\n![PyPI - Downloads](https://img.shields.io/pypi/dd/pinkboto)\n\n## Install\n\n```bash\npip install pinkboto\n```\n\n### Usage\n\n```python\nimport pinkboto\naws = pinkboto.aws(profile='production', region='us-east-1') \nselector = {'resource': 'aws_db_instance'}\nprojection = ['DBInstanceIdentifier', 'Endpoint']\nrds = aws.find(selector, projection)\n```\n\n### Caching\n\nBy default, pinkboto caching all requests with 120 seconds lifespan.\n\nTo disable:\n\n```python\naws = pinkboto.aws(profile='production', region='us-east-1', cache=False)\n```\n\nTo modify lifespan to 1 hour:\n\n```python\naws = pinkboto.aws(profile='production', region='us-east-1', cache=3600)\n```\n\n### AWS Lambda usage\nWhen using pinkboto in an AWS Lambda it is important to change the cache folder\nto the /tmp writable folder.\n\n```python\naws = pinkboto.aws(profile='production', region='us-east-1', cache=3600, cache_folder='/tmp/pinkboto')\n```\n\n### Subfield projection\n\nYou can access a subfield in projection. For example 'Endpoint.Address' in rds\n\n```python\nrds = aws.find({'resource': 'aws_db_instance'}, ['Endpoint.Address', 'AvailabilityZone'])\n```\n\n### CSV output\n\n```python\npinkboto.to_csv(rds, 'result.csv')\n```\n\n### pypi package publish\n\n```bash\nupdate setup.py version.\npython3 setup.py sdist\ntwine upload dist/pinkboto-${new-version}.tar.gz\n```\n\n### Contributing\n\nPull requests for new features, bug fixes, and suggestions are welcome!\n\n### License\n\nGNU General Public License v3 (GPLv3)\n\n### Developer install requirements\n\n```bash\npre-commit install\n```\n",
"bugtrack_url": null,
"license": null,
"summary": "A Colorful AWS SDK wrapper for Python",
"version": "0.0.51",
"project_urls": {
"Homepage": "https://github.com/Hotmart-Org/pinkboto"
},
"split_keywords": [
"aws",
"sdk",
"api",
"pinkboto",
"boto"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "7579109f1f559a8bc4a8446d3b6c24772fdb729ef7972f4e87c7e07e4b0bb27a",
"md5": "675aa4bf040d5001fff25a434c3dc95d",
"sha256": "955a24cdfb09cf6839771376f62e6f017aea02ac1d4405b93c782b5cd102e411"
},
"downloads": -1,
"filename": "pinkboto-0.0.51.tar.gz",
"has_sig": false,
"md5_digest": "675aa4bf040d5001fff25a434c3dc95d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 22873,
"upload_time": "2024-07-19T20:20:55",
"upload_time_iso_8601": "2024-07-19T20:20:55.647327Z",
"url": "https://files.pythonhosted.org/packages/75/79/109f1f559a8bc4a8446d3b6c24772fdb729ef7972f4e87c7e07e4b0bb27a/pinkboto-0.0.51.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-07-19 20:20:55",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Hotmart-Org",
"github_project": "pinkboto",
"github_not_found": true,
"lcname": "pinkboto"
}