Skip to main content

Various Django utility functions

Project description

Boxine - bx_django_utils

Various Django utility functions

Quickstart

pip install bx_django_utils

Existing stuff

Here only a simple list about existing utilities. Please take a look into the sources and tests for deeper informations.

bx_django_utils.approve_workflow

Base model/admin/form classes to implement a model with draft/approve versions workflow

bx_django_utils.approve_workflow.admin

bx_django_utils.approve_workflow.forms

bx_django_utils.approve_workflow.models

bx_django_utils.data_types.gtin

ModelField, FormField and validators for GTIN/UPC/EAN numbers

bx_django_utils.data_types.gtin.form_fields
bx_django_utils.data_types.gtin.model_fields
bx_django_utils.data_types.gtin.validators

bx_django_utils.dbperf.cursor

bx_django_utils.dbperf.query_recorder

  • SQLQueryRecorder() - A context manager that allows recording SQL queries executed during its lifetime.

bx_django_utils.filename

bx_django_utils.humanize.pformat

  • pformat() - Better pretty-print-format using DjangoJSONEncoder with fallback to pprint.pformat()

bx_django_utils.humanize.time

  • human_timedelta() - Converts a time duration into a friendly text representation. (X ms, sec, minutes etc.)

bx_django_utils.models.color_field

  • ColorModelField() - Hex color model field, e.g.: "#0055ff" (It's not a html color picker widget)
  • HexColorValidator() - Hex color validator (seven-character hexadecimal notation, e.g.: "#0055ff")

bx_django_utils.models.manipulate

Utilities to manipulate objects in database via models:

  • CreateOrUpdateResult() - Result object returned by create_or_update2() with all information about create/save a model.
  • InvalidStoreBehavior() - Exception used in create_or_update() if "store_behavior" contains not existing field names.
  • create() - Create a new model instance with optional validate before create.
  • create_or_update() - Create a new model instance or update a existing one. Deprecated! Use: create_or_update2()
  • create_or_update2() - Create a new model instance or update a existing one and returns CreateOrUpdateResult instance

bx_django_utils.models.timetracking

bx_django_utils.stacktrace

bx_django_utils.templatetags.humanize_time

  • human_duration() - Verbose time since template tag, e.g.: <span title="Jan. 1, 2000, noon">2.0 seconds</span>

bx_django_utils.test_utils

Utilities / helper for writing tests.

bx_django_utils.test_utils.assert_queries

  • AssertQueries() - Assert executed database queries: Check table names, duplicate/similar Queries.

bx_django_utils.test_utils.datetime

bx_django_utils.test_utils.html_assertion

bx_django_utils.test_utils.model_clean_assert

bx_django_utils.test_utils.users

bx_django_utils.view_utils.dynamic_menu_urls

  • DynamicViewMenu() - Simple storage for store information about views/urls to build a menu.

developing

To start developing e.g.:

~$ git clone https://github.com/boxine/bx_django_utils.git
~$ cd bx_django_utils
~/bx_django_utils$ make
help                 List all commands
install-poetry       install or update poetry
install              install via poetry
update               Update the dependencies as according to the pyproject.toml file
lint                 Run code formatters and linter
fix-code-style       Fix code formatting
tox-listenvs         List all tox test environments
tox                  Run pytest via tox with all environments
tox-py36             Run pytest via tox with *python v3.6*
tox-py37             Run pytest via tox with *python v3.7*
tox-py38             Run pytest via tox with *python v3.8*
tox-py39             Run pytest via tox with *python v3.9*
pytest               Run pytest
pytest-ci            Run pytest with CI settings
publish              Release new version to PyPi
makemessages         Make and compile locales message files
start-dev-server     Start Django dev. server with the test project
clean                Remove created files from the test project (e.g.: SQlite, static files)

You can start the test project with the Django developing server, e.g.:

~/bx_django_utils$ make start-dev-server

This is a own manage command, that will create migrations files from our test app, migrate, collectstatic and create a super user if no user exists ;)

If you like to start from stretch, just delete related test project files with:

~/bx_django_utils$ make clean

...and start the test server again ;)

License

MIT. Patches welcome!

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bx_django_utils-6.tar.gz (33.0 kB view details)

Uploaded Source

Built Distribution

bx_django_utils-6-py3-none-any.whl (41.8 kB view details)

Uploaded Python 3

File details

Details for the file bx_django_utils-6.tar.gz.

File metadata

  • Download URL: bx_django_utils-6.tar.gz
  • Upload date:
  • Size: 33.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.0.0 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.8.10

File hashes

Hashes for bx_django_utils-6.tar.gz
Algorithm Hash digest
SHA256 d92fde43fba1a0403613958be5fc530b55a0ce8f36f744d3060601d38b6d0641
MD5 424019878d81e331bb7d25195d283c6f
BLAKE2b-256 6dfdbc711d7e413f5a361e4ef99a3d4c7970863488e8444f65a140dc51aa035f

See more details on using hashes here.

Provenance

File details

Details for the file bx_django_utils-6-py3-none-any.whl.

File metadata

  • Download URL: bx_django_utils-6-py3-none-any.whl
  • Upload date:
  • Size: 41.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.0.0 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.8.10

File hashes

Hashes for bx_django_utils-6-py3-none-any.whl
Algorithm Hash digest
SHA256 ee7169d1fa4afbb0172cc4639b9485e331d27e882ce1a87ed0dafbea8938c9c9
MD5 c6248c53a1174a27b679e1c8adbe969f
BLAKE2b-256 b4fb454dc6b5ee4f2d56698b556f82786a98fe3f9b2f85a21aec91d18d79ad9a

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page