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.

models utilities

  • approve_workflow - Base model/admin/form classes to implement a model with draft/approve versions workflow
  • manipulate.create_or_update() - Similar to django's create_or_update() with benefits
  • timetracking.TimetrackingBaseModel() - Base model with "create" and "last update" date time

data types

test utilities

  • datetime.MockDatetimeGenerator() - Mock django timezone.now() with generic time stamps
  • html_assertion.HtmlAssertionMixin - Unittest mixin class with usefull assertments around Django test client tests
  • model_clean_assert.CleanMock() - Context manager to track if model full_clean() was called
  • users - Utilities around user/permission setup for tests
  • time.MockTimeMonotonicGenerator() - Mock time.monotonic() with generic time stamps
  • AssertQueries() - Context manager with different checks of made database queries

performance analysis

  • dbperf.query_recorder.SQLQueryRecorder - Context Manager that records SQL queries executed via the Django ORM

humanize

  • humanize.time.human_timedelta() - Converts a time duration into a friendly text representation. (X ms, sec, minutes etc.)
  • templatetags.humanize_time.human_duration() - Verbose time since template tag, e.g.: <span title="Jan. 1, 2000, noon">2.0 seconds</span>
  • filename.filename2human_name() - Convert filename to a capitalized name
  • filename.clean_filename() - Convert filename to ASCII only via slugify
  • pformat() - Better pretty-print-format using DjangoJSONEncoder with fallback to pprint.pformat()

view utilities

  • view_utils.dynamic_menu_urls.DynamicViewMenu() - Register views to build a simple menu with sections

misc

  • stacktrace.get_stacktrace() - Returns a filterable and easy-to-process stacktrace

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

Metadata

Release files for bx-django-utils 1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bx-django-utils 1
File Size Uploaded Provenance
bx_django_utils-1.tar.gz 27.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for bx-django-utils 1
File Interpreter ABI Platform
bx_django_utils-1-py3-none-any.whl Python 3 none any Details

Total release size: 64.8 kB

Release files / bx_django_utils-1.tar.gz

Download URL bx_django_utils-1.tar.gz
Size 27.2 kB
Tags Source
SHA-256 checksum
How to use checksums
99e38f8da025046b2aa759725c84e606e5c2d94c086cafc40f6072d25ab2963d
BLAKE2b-256 checksum
How to use checksums
62446821346d25348f2b88ffb8c8458e428b0e98fbd292224e0728cb69bd5bc1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.5

Release files / bx_django_utils-1-py3-none-any.whl

Download URL bx_django_utils-1-py3-none-any.whl
Size 37.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
85982fc851d83ad652123ec85c855685b2cc4031613bf9428f09ba6b9d9f8984
BLAKE2b-256 checksum
How to use checksums
0f338960e8571f45af6d57347a020f907f26edffd8a56dc6048792210427d814
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.5

Security for bx-django-utils 1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page