Some Django Wizardry
Project description
NWON-Django-Toolbox
This package provides some Django additions that can be used across several projects.
Settings
The Django Toolbox can be configured using the Django settings. We expect the key NWON_DJANGO
that holds a dictionary. The dictionary must be of type NWONDjangoSettings
that comes with this package (nwon_django_toolbox.nwon_django_settings
). The keys mus be snake case or camel case.
For example like this
NWON_DJANGO: NWONDjangoSettings = {
"authorization_prefix": "Bearer",
"logger_name": "your-log-name",
"application_name": "application"
}
Dependencies
The project has a bunch of dependencies that we use in most of our projects. In the end we have quite a lot and need to slim this down in the future.
Django related libraries are:
- Django (Obviously 🧠)
- django-polymorphic
- django-json-widget
- django-rest-polymorphic
For API documentation our models and serializer support two library which come as a dependency as well:
- drf-spectacular
- drf-yasg
On top we use a bunch of helper libraries
- Pydantic
- Pillow-PIL
- jsonref
- jsonschema-to-openapi
- pyhumps
- nwon-baseline
Package is meant for internal use at NWON as breaking changes may occur on version changes. This may change at some point but not for now 😇.
Development Setup
We recommend developing using poetry.
This are the steps to setup the project with a local virtual environment:
- Tell poetry to create dependencies in a
.venv
folder withing the project:poetry config virtualenvs.in-project true
- Create a virtual environment using the local python version:
poetry env use $(cat .python-version)
- Install dependencies:
poetry install
Prepare Package
Before publishing the package we need to:
- Clean dist folder
- Bump up the version of the package
- Build the package
Luckily we provide a script for doing all of this python scripts/prepare.py patch
. Alternatively you can run the script in a poetry context poetry run prepare patch
. The argument at the end defines whether you want a patch
, minor
or major
version bump.
The final zipped data ends up in the dist
folder.
Publish Package
Test package publication
- Add test PyPi repository:
poetry config repositories.testpypi https://test.pypi.org/legacy/
- Publish the package to the test repository:
poetry publish -r testpypi
- Test package:
pip install --index-url https://test.pypi.org/simple/ nwon_baseline
If everything works fine publish the package via poetry publish
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for nwon_django_toolbox-0.4.10.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee8a967b8cf54ab95983b346fd882e7be51a4c56dc29849f078910ef48bf75c9 |
|
MD5 | 732803e688647168148f470b6f6063f7 |
|
BLAKE2b-256 | 13a68d1cc134bbf90aab65eead41177d1143bea2183d9ced0d38533358bec63c |
Hashes for nwon_django_toolbox-0.4.10-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 300dc61b4efd824c8b01b6de13894456021acd2471da3758b2fc092c4207c7d6 |
|
MD5 | 226284d1827262e219692e07ccf94a17 |
|
BLAKE2b-256 | 3bf171276fa4231f7fad407cb4f5c9c171a24ea78a6813bbe41e40bff0292380 |