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.10.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24fb10ffda68cb16fef2a753b0573ecd8f34c84d1daebaa7b4152622ef6b1284 |
|
MD5 | 633e9b74badc82226634fa1aff6963b7 |
|
BLAKE2b-256 | 023c3c24c478b8d39515dd7e1328a9cbb1cdcd5de5ce2548ee702dc01cbe6d9a |
Hashes for nwon_django_toolbox-0.6.10-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dda5698044c35b51b21f3bb7666e1ba77ed65234a3dcecf04f156ed94e99fe71 |
|
MD5 | a5b4910ab6081b8d6fabf95a4620097c |
|
BLAKE2b-256 | 8c4c10314002c0b4cb0b08c84213b0a3869aa3f5c3500d0454887d6e188932d0 |