Skip to main content

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:

  • create() - Create a new model instance with optional validate before create.
  • create_or_update() - Create a new model instance or update a existing one.

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

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-4.tar.gz (31.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bx_django_utils-4-py3-none-any.whl (40.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bx_django_utils-4.tar.gz
  • Upload date:
  • Size: 31.1 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-4.tar.gz
Algorithm Hash digest
SHA256 95c914627b62a901482829d547c65d59f43b7edf7add2fb099bcef0eff3a94d9
MD5 bb42d81caf8eb9689a0fa3ce6e5d3c2b
BLAKE2b-256 37ce0dc3e2e2c3d330b65149c2caa9bfbde56f43ecfec1428a9a81dde418897e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bx_django_utils-4-py3-none-any.whl
  • Upload date:
  • Size: 40.2 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-4-py3-none-any.whl
Algorithm Hash digest
SHA256 65303a820172448daa05d3d652014de7c0be1ae283045b90f7e6bcd4967a0559
MD5 aa71839f3beaa9b3e8445fa86b210aaa
BLAKE2b-256 f9e7b6bc0ed93f26d0da43bbca136eed6a4009c0686529e894bc1f155c055cb3

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

4

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page