Metadata-Version: 2.4
Name: botoprune
Version: 0.1.0
Summary: Reduce the installed size of botocore by removing unnecessary AWS api data.
Author: Evan Parker
Maintainer: Evan Parker
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/eap/botoprune
Project-URL: Repository, https://github.com/eap/botoprune
Project-URL: Issues, https://github.com/eap/botoprune/issues
Keywords: botocore,boto3,boto-prune,botoprune,boto-trim,bototrim
Classifier: Development Status :: 3 - Alpha
Classifier: Operating System :: OS Independent
Classifier: Operating System :: POSIX
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: botocore>=1.23.26
Provides-Extra: test
Requires-Dist: pytest>=6.0; extra == "test"
Requires-Dist: flake8>=7.3.0; extra == "test"
Requires-Dist: Flake8-pyproject>=1.2.3; extra == "test"
Dynamic: license-file

# Botoprune
Botoprune is a Python library used to reduce the installed size of botocore by removing unnecessary AWS api data.

# Using Botoprune.

The chief application of this library is in the building of small Docker images. Because docker images are built in layers, any file created in one layer still takes up spaces in the final image. This means that Botoprune must be run in the same RUN instruction that installs boto3/botocore preventing the unnecessary data from being committed to the final layer.

```
# Docker step to install boto3 and remove all API data except that necessary for s3, ec2, and kms
RUN pip install --no-cache-dir --no-compile \
        boto3 \
        botoprune && \
    python -m botoprune.whitelist s3 ec2 kms
```

Botoprune also supports more targeted removal of specific services. This offers more control but usually results in less space savings compared to whitelisting.

```
   # Remove the API data for bedrock, rds, and sts.
   python -m botoprune.remove bedrock rds sts
```
