https://github.com/ambient-innovation/ambient-toolbox
Helpers and tools for Python and web-development with Django
https://github.com/ambient-innovation/ambient-toolbox
anonymisation bleach django helpers-library python3 testing
Last synced: 2 months ago
JSON representation
Helpers and tools for Python and web-development with Django
- Host: GitHub
- URL: https://github.com/ambient-innovation/ambient-toolbox
- Owner: ambient-innovation
- License: mit
- Created: 2023-04-24T10:29:32.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2026-01-16T14:18:40.000Z (5 months ago)
- Last Synced: 2026-01-17T04:37:33.533Z (5 months ago)
- Topics: anonymisation, bleach, django, helpers-library, python3, testing
- Language: Python
- Homepage: https://pypi.org/project/ambient-toolbox/
- Size: 773 KB
- Stars: 25
- Watchers: 5
- Forks: 7
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Security: SECURITY.md
Awesome Lists containing this project
README
[](https://pypi.org/project/ambient-toolbox/)
[](https://pepy.tech/project/ambient-toolbox)
[](https://github.com/ambient-innovation/ambient-toolbox/actions?workflow=CI)
[](https://github.com/astral-sh/ruff)
[](https://github.com/astral-sh/ruff)
[](https://ambient-toolbox.readthedocs.io/en/latest/?badge=latest)
Python toolbox of Ambient Digital containing an abundance of useful tools and gadgets.
[PyPI](https://pypi.org/project/ambient-toolbox/) • [GitHub](https://github.com/ambient-innovation/ambient-toolbox) • [Full documentation](https://ambient-toolbox.readthedocs.io/en/latest/index.html)
Creator & Maintainer: [Ambient Digital](https://ambient.digital/)
## Features
* Useful classes and mixins for Django admin
* Coverage script for GitLab
* Extensions for DRF and GraphQL
* Mailing backends for Django
* Management commands for validating a projects test structure
* Object ownership tracking with timestamping
* Pattern for improved workflow with Django ORM
* Helper and util functions for many different use-cases
* Sentry plugins
* django-scrubber wrapper class
* Mixins and test classes for django (class-based) views
# Migration from "ai_django_core"
This package was previously known as [ai_django_core](https://pypi.org/project/ai-django-core/). Due to the
misleading nature of the name, we chose to rename it with something more meaningful.
The migration is really simple, just:
* Install ambient-toolbox and remove the dependency to ai-django-core
* Search and replace all usages of `from ai_django_core...` to `from ambient_toolbox...`
* The class-based mail functionality was moved to a separate package called
[django-pony-express](https://pypi.org/project/django-pony-express/).
## Installation
- Install the package via pip:
`pip install ambient-toolbox`
or via uv:
`uv add ambient-toolbox`
- Add module to `INSTALLED_APPS` within the main django `settings.py`:
```python
INSTALLED_APPS = (
# ...
"ambient_toolbox",
)
```
- Apply migrations by running:
`python ./manage.py migrate`
## Releasing a new version
Releases are fully automated. Push a version tag and the pipeline will build, sign with
[Sigstore](https://www.sigstore.dev/), publish to PyPI via
[Trusted Publishing](https://docs.pypi.org/trusted-publishers/), and create a GitHub Release —
no API tokens needed.
```bash
git tag v # e.g. git tag v1.2.3
git push origin v
```
Tags **must** start with `v`. Tags without the prefix won't trigger the pipeline.
### First-time setup
Before the pipeline can run for the first time, an admin must:
1. **Create GitHub Environment `pypi`**
- Go to *Settings → Environments → New environment*, name it exactly `pypi`
- Under *Deployment branches and tags*, add a tag rule with pattern `v*`
- Optionally add required reviewers for a manual approval gate
2. **Configure PyPI Trusted Publisher**
- Go to *PyPI → Project settings → Publishing → Add a new publisher*
- Fill in: Owner `ambient-innovation`, Repository `ambient-toolbox`,
Workflow `release.yml`, Environment `pypi`
### Publish to ReadTheDocs.io
- Fetch the latest changes in GitHub mirror and push them
- Trigger new build at ReadTheDocs.io (follow instructions in admin panel at RTD) if the GitHub webhook is not yet set
up.
### Maintenance
Please note that this package supports the [ambient-package-update](https://pypi.org/project/ambient-package-update/).
So you don't have to worry about the maintenance of this package. This updater is rendering all important
configuration and setup files. It works similar to well-known updaters like `pyupgrade` or `django-upgrade`.
To run an update, refer to the [documentation page](https://pypi.org/project/ambient-package-update/)
of the "ambient-package-update".