# botocraft
**Documentation**: https://botocraft.readthedocs.org
[boto3](https://github.com/boto/boto3) is a wonderful library for interacting
with AWS resources, but it can be hard to use because there is little
standardization across services.
`botocraft` aims to be an opinionated interface to selected AWS resources that
at least provides a CRUDL interface to the resources it supports.
## Installation
`botocraft` supports Python 3.7+.
To install from PyPI:
```shell
pip install botocraft
```
## Supported services
Raw data
{
"_id": null,
"home_page": null,
"name": "botocraft",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": "Chris Malek <cmalek@caltech.edu>",
"keywords": "aws",
"author": null,
"author_email": "Caltech IMSS ADS <imss-ads-staff@caltech.edu>",
"download_url": "https://files.pythonhosted.org/packages/8d/43/ba3de11c91ee5929c0473c5a823757a365b5733af68eb8e6028f3c4ca0cb/botocraft-0.21.1.tar.gz",
"platform": null,
"description": "# botocraft\n\n**Documentation**: https://botocraft.readthedocs.org\n\n[boto3](https://github.com/boto/boto3) is a wonderful library for interacting\nwith AWS resources, but it can be hard to use because there is little\nstandardization across services.\n\n`botocraft` aims to be an opinionated interface to selected AWS resources that\nat least provides a CRUDL interface to the resources it supports.\n\n## Installation\n\n`botocraft` supports Python 3.7+.\n\nTo install from PyPI:\n\n```shell\npip install botocraft\n```\n\n## Supported services\n",
"bugtrack_url": null,
"license": null,
"summary": "An opinionated boto3 wrapper for AWS",
"version": "0.21.1",
"project_urls": {
"Documentation": "https://botocraft.readthedocs.io/en/latest/",
"Issues": "https://github.com/caltechads/botocraft/issues",
"Source": "https://github.com/caltechads/botocraft"
},
"split_keywords": [
"aws"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "04342677637f2b823792201544af6536da2c1b5e5738053b4a2aeb69b6981016",
"md5": "d6f84ad9b486884de79c77fc1c3a3149",
"sha256": "bddb106911714eca301198db871927c39b056c82e82dd6297d213d67e1b27a9c"
},
"downloads": -1,
"filename": "botocraft-0.21.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d6f84ad9b486884de79c77fc1c3a3149",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 491451,
"upload_time": "2025-10-09T18:24:37",
"upload_time_iso_8601": "2025-10-09T18:24:37.795603Z",
"url": "https://files.pythonhosted.org/packages/04/34/2677637f2b823792201544af6536da2c1b5e5738053b4a2aeb69b6981016/botocraft-0.21.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8d43ba3de11c91ee5929c0473c5a823757a365b5733af68eb8e6028f3c4ca0cb",
"md5": "52b4c67017b172fb013b6c319dd870ca",
"sha256": "f32980c9367ed33c5c456d24d02c6b5c18b26c506ef8a681c9b471021d7fca81"
},
"downloads": -1,
"filename": "botocraft-0.21.1.tar.gz",
"has_sig": false,
"md5_digest": "52b4c67017b172fb013b6c319dd870ca",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 447231,
"upload_time": "2025-10-09T18:24:39",
"upload_time_iso_8601": "2025-10-09T18:24:39.498214Z",
"url": "https://files.pythonhosted.org/packages/8d/43/ba3de11c91ee5929c0473c5a823757a365b5733af68eb8e6028f3c4ca0cb/botocraft-0.21.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-09 18:24:39",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "caltechads",
"github_project": "botocraft",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "alabaster",
"specs": [
[
"==",
"0.7.16"
]
]
},
{
"name": "annotated-types",
"specs": [
[
"==",
"0.7.0"
]
]
},
{
"name": "asttokens",
"specs": [
[
"==",
"3.0.0"
]
]
},
{
"name": "autodoc-pydantic",
"specs": [
[
"==",
"2.2.0"
]
]
},
{
"name": "babel",
"specs": [
[
"==",
"2.17.0"
]
]
},
{
"name": "beautifulsoup4",
"specs": [
[
"==",
"4.13.4"
]
]
},
{
"name": "boto3",
"specs": [
[
"==",
"1.38.25"
]
]
},
{
"name": "botocore",
"specs": [
[
"==",
"1.38.25"
]
]
},
{
"name": "certifi",
"specs": [
[
"==",
"2025.4.26"
]
]
},
{
"name": "cfgv",
"specs": [
[
"==",
"3.4.0"
]
]
},
{
"name": "charset-normalizer",
"specs": [
[
"==",
"3.4.2"
]
]
},
{
"name": "click",
"specs": [
[
"==",
"8.2.1"
]
]
},
{
"name": "decorator",
"specs": [
[
"==",
"5.2.1"
]
]
},
{
"name": "diagrams",
"specs": [
[
"==",
"0.24.4"
]
]
},
{
"name": "distlib",
"specs": [
[
"==",
"0.3.9"
]
]
},
{
"name": "docformatter",
"specs": [
[
"==",
"1.7.7"
]
]
},
{
"name": "docker",
"specs": [
[
"==",
"7.1.0"
]
]
},
{
"name": "docutils",
"specs": [
[
"==",
"0.19"
]
]
},
{
"name": "executing",
"specs": [
[
"==",
"2.2.0"
]
]
},
{
"name": "filelock",
"specs": [
[
"==",
"3.18.0"
]
]
},
{
"name": "graphviz",
"specs": [
[
"==",
"0.20.3"
]
]
},
{
"name": "identify",
"specs": [
[
"==",
"2.6.12"
]
]
},
{
"name": "idna",
"specs": [
[
"==",
"3.10"
]
]
},
{
"name": "imagesize",
"specs": [
[
"==",
"1.4.1"
]
]
},
{
"name": "inflect",
"specs": [
[
"==",
"7.5.0"
]
]
},
{
"name": "ipython",
"specs": [
[
"==",
"9.2.0"
]
]
},
{
"name": "ipython-pygments-lexers",
"specs": [
[
"==",
"1.1.1"
]
]
},
{
"name": "jedi",
"specs": [
[
"==",
"0.19.2"
]
]
},
{
"name": "jinja2",
"specs": [
[
"==",
"3.1.6"
]
]
},
{
"name": "jmespath",
"specs": [
[
"==",
"1.0.1"
]
]
},
{
"name": "jsonpath-ng",
"specs": [
[
"==",
"1.7.0"
]
]
},
{
"name": "markdownify",
"specs": [
[
"==",
"1.1.0"
]
]
},
{
"name": "markupsafe",
"specs": [
[
"==",
"3.0.2"
]
]
},
{
"name": "matplotlib-inline",
"specs": [
[
"==",
"0.1.7"
]
]
},
{
"name": "more-itertools",
"specs": [
[
"==",
"10.7.0"
]
]
},
{
"name": "nodeenv",
"specs": [
[
"==",
"1.9.1"
]
]
},
{
"name": "packaging",
"specs": [
[
"==",
"25.0"
]
]
},
{
"name": "parso",
"specs": [
[
"==",
"0.8.4"
]
]
},
{
"name": "pexpect",
"specs": [
[
"==",
"4.9.0"
]
]
},
{
"name": "platformdirs",
"specs": [
[
"==",
"4.3.8"
]
]
},
{
"name": "ply",
"specs": [
[
"==",
"3.11"
]
]
},
{
"name": "pre-commit",
"specs": [
[
"==",
"4.2.0"
]
]
},
{
"name": "prompt-toolkit",
"specs": [
[
"==",
"3.0.51"
]
]
},
{
"name": "psutil",
"specs": [
[
"==",
"7.0.0"
]
]
},
{
"name": "ptyprocess",
"specs": [
[
"==",
"0.7.0"
]
]
},
{
"name": "pure-eval",
"specs": [
[
"==",
"0.2.3"
]
]
},
{
"name": "pydantic",
"specs": [
[
"==",
"2.11.5"
]
]
},
{
"name": "pydantic-core",
"specs": [
[
"==",
"2.33.2"
]
]
},
{
"name": "pydantic-settings",
"specs": [
[
"==",
"2.9.1"
]
]
},
{
"name": "pygments",
"specs": [
[
"==",
"2.19.1"
]
]
},
{
"name": "python-dateutil",
"specs": [
[
"==",
"2.9.0.post0"
]
]
},
{
"name": "python-dotenv",
"specs": [
[
"==",
"1.1.0"
]
]
},
{
"name": "pyyaml",
"specs": [
[
"==",
"6.0.2"
]
]
},
{
"name": "requests",
"specs": [
[
"==",
"2.32.3"
]
]
},
{
"name": "s3transfer",
"specs": [
[
"==",
"0.13.0"
]
]
},
{
"name": "setuptools",
"specs": [
[
"==",
"80.9.0"
]
]
},
{
"name": "six",
"specs": [
[
"==",
"1.17.0"
]
]
},
{
"name": "snowballstemmer",
"specs": [
[
"==",
"3.0.1"
]
]
},
{
"name": "soupsieve",
"specs": [
[
"==",
"2.7"
]
]
},
{
"name": "sphinx",
"specs": [
[
"==",
"6.2.1"
]
]
},
{
"name": "sphinx-rtd-theme",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "sphinxcontrib-applehelp",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "sphinxcontrib-devhelp",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "sphinxcontrib-htmlhelp",
"specs": [
[
"==",
"2.1.0"
]
]
},
{
"name": "sphinxcontrib-images",
"specs": [
[
"==",
"0.9.4"
]
]
},
{
"name": "sphinxcontrib-jquery",
"specs": [
[
"==",
"4.1"
]
]
},
{
"name": "sphinxcontrib-jsmath",
"specs": [
[
"==",
"1.0.1"
]
]
},
{
"name": "sphinxcontrib-qthelp",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "sphinxcontrib-serializinghtml",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "stack-data",
"specs": [
[
"==",
"0.6.3"
]
]
},
{
"name": "traitlets",
"specs": [
[
"==",
"5.14.3"
]
]
},
{
"name": "typeguard",
"specs": [
[
"==",
"4.4.2"
]
]
},
{
"name": "typing-extensions",
"specs": [
[
"==",
"4.13.2"
]
]
},
{
"name": "typing-inspection",
"specs": [
[
"==",
"0.4.1"
]
]
},
{
"name": "untokenize",
"specs": [
[
"==",
"0.1.1"
]
]
},
{
"name": "urllib3",
"specs": [
[
"==",
"2.4.0"
]
]
},
{
"name": "virtualenv",
"specs": [
[
"==",
"20.31.2"
]
]
},
{
"name": "wcwidth",
"specs": [
[
"==",
"0.2.13"
]
]
}
],
"tox": true,
"lcname": "botocraft"
}