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.5.7.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | db615d89acc25df4c0bd60ef46129419e5323fde3b67bbabc17db303dca91471 |
|
MD5 | 041e2a88d4f4d27d7b5ab0d92e8c973a |
|
BLAKE2b-256 | 1300c58de7b71e8903184f1a92f47d6ddca571a17903fa237f1370dbdb0a4a4d |
Hashes for nwon_django_toolbox-0.5.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 808af54a7a61bc64c45f40fe8fdc52dfd256a247bec9bae854e7bffa690384c4 |
|
MD5 | e24727c32050c1108d91f47976b25723 |
|
BLAKE2b-256 | a4b4389a3f2ec76db5e0426b56f99d3cf6cb99e72202a9787ff5b0e7c8bdf6e7 |