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
- 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.6.7.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0e67b3662f7e737b86b3cbd52def9c315d074dd0bffd5f4f3137a9dd47bc8a0 |
|
MD5 | 59f803c6a716ea92287958f234994bc3 |
|
BLAKE2b-256 | 7d2acafaa1bba21a315387447f961477c880a472887abfb90db0b0fdff0fce60 |
Hashes for nwon_django_toolbox-0.6.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 762674bd12271d828d712081dffc3f1fde8c22707e4feb528db3e554ddefa592 |
|
MD5 | ee5d513ec7a3ee7b8452e4b2da95ca93 |
|
BLAKE2b-256 | fbeab125b8eb53d7d2281a58605b2f76e22c8c86735feb561fcfd6bfa163ca67 |