Skip to main content

Boxine - bx_django_utils

Various Django utility functions

pytest Coverage Status on codecov.io

bx_django_utils @ PyPi Python Versions License MIT

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.admin_extra_views

Django Admin extra views: https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/admin_extra_views/README.md

bx_django_utils.admin_extra_views.admin_config

Activate "ExtraViewAdminSite" by set this as default admin site

bx_django_utils.admin_extra_views.apps

bx_django_utils.admin_extra_views.conditions

  • only_staff_user() - Pass only active staff users. The default condition for all admin extra views.

bx_django_utils.admin_extra_views.datatypes

  • AdminExtraMeta() - Stores information for pseudo app and pseudo models.
  • PseudoApp() - Represents information about a Django App. Instance must be pass to @register_admin_view()
bx_django_utils.admin_extra_views.management.commands.admin_extra_views
  • Command() - Manage command "admin_extra_views": Info about registered admin extra views

bx_django_utils.admin_extra_views.registry

bx_django_utils.admin_extra_views.site

  • ExtraViewAdminSite() - An AdminSite object encapsulates an instance of the Django admin application, ready
bx_django_utils.admin_extra_views.tests.test_admin_extra_views

bx_django_utils.admin_extra_views.utils

bx_django_utils.admin_extra_views.views

bx_django_utils.admin_utils.filters

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.cached_dataclasses

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.json_utils

  • make_json_serializable() - Convert value to a JSON serializable value, with convert callback for special objects.
  • to_json() - Convert value to JSON via make_json_serializable() and DjangoJSONEncoder()

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.queryset_utils

  • remove_filter() - Remove an applied .filter() from a QuerySet
  • remove_model_filter() - Remove an applied .filter() from a QuerySet if it contains references to the specified model

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.cache

  • ClearCacheMixin() - TestCase mixin to clear the Django cache in setUp/tearDown
  • MockCache() - Mock Django cache backend, so it's easy to check/manipulate the cache content

bx_django_utils.test_utils.content_types

bx_django_utils.test_utils.datetime

bx_django_utils.test_utils.fixtures

Utilities to manage text fixtures in JSON files.

bx_django_utils.test_utils.forms

bx_django_utils.test_utils.html_assertion

bx_django_utils.test_utils.model_clean_assert

bx_django_utils.test_utils.playwright

Use Playwright in Pytest and Unittest + Fast Django user login

bx_django_utils.test_utils.users

bx_django_utils.user_timezone

Automatic local user timezone: https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/user_timezone/README.md

bx_django_utils.user_timezone.apps

bx_django_utils.user_timezone.humanize

bx_django_utils.user_timezone.middleware

bx_django_utils.user_timezone.templatetags.user_timezone

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 via pip
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
pytest               Run pytest
pytest-ci            Run pytest with CI settings
publish              Release new version to PyPi
docker-test          Run tests in docker
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 ;)

update this README

This README will be updated via tests ;) But currently this is only done with Python 3.9 ! If your system Python version is not 3.9: Install this Python version and switch to it, e.g.:

~/bx_django_utils$ poetry env use python3.9
~/bx_django_utils$ make install
~/bx_django_utils$ make pytest

License

MIT. Patches welcome!

About us

We’ve been rethinking the listening experience for kids and have created an ecosystem where haptic and listening experience are combined via smart technology - the Toniebox.

We are constantly looking for engineers to join our team in different areas. If you’d be interested in contributing to our platform, have a look at: https://tonies.com/jobs/

Metadata

Release files for bx-django-utils 35

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 35
File Size Uploaded
bx_django_utils-35.tar.gz 54.5 kB Details

Built distribution (wheel)

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

Total release size: 132.8 kB

Release files / bx_django_utils-35.tar.gz

Download URL bx_django_utils-35.tar.gz
Size 54.5 kB
Tags Source
SHA-256 checksum
How to use checksums
5151806d349a9dafc8dba9636239422022bab211b5b02afa52fce1f58ec2e6ab
BLAKE2b-256 checksum
How to use checksums
24f1bbc673d386fdf2f8d9c2914752afe3600f77dc86369e488548c729446760
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.5

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

Download URL bx_django_utils-35-py3-none-any.whl
Size 78.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
341b27ad0b72a903acf2f28def0fe371def811c1b2305da9806124869a698fc8
BLAKE2b-256 checksum
How to use checksums
509bbb01a61a975f9148e43f07ad8ce29ad8fb9b3134fb83c754423cfd80eefb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.5

Release history Release notifications | RSS feed

101

2 release files

100

2 release files

99

2 release files

98

2 release files

97

2 release files

96

2 release files

95

2 release files

94

2 release files

93

2 release files

92

2 release files

91

2 release files

90

2 release files

89

2 release files

88

2 release files

87

2 release files

86

2 release files

85

2 release files

84

2 release files

83

2 release files

82

2 release files

81

2 release files

79

2 release files

78

2 release files

77

2 release files

76

2 release files

75

2 release files

74

2 release files

72

2 release files

71

2 release files

70

2 release files

69

2 release files

68

2 release files

67

2 release files

66

2 release files

65

2 release files

64

2 release files

63

2 release files

62

2 release files

61

2 release files

60

2 release files

59

2 release files

58

2 release files

57

2 release files

56

2 release files

55

2 release files

54

2 release files

53

2 release files

52

2 release files

51

2 release files

50

2 release files

49

2 release files

48

2 release files

47

2 release files

46

2 release files

45

2 release files

44

2 release files

43

2 release files

42

2 release files

41

2 release files

40

2 release files

39

2 release files

38

2 release files

37

2 release files

36

2 release files

This release

35 This release

2 release files

34

2 release files

33

2 release files

32

2 release files

31

2 release files

30

2 release files

29

2 release files

28

2 release files

27

2 release files

26

2 release files

25

2 release files

24

2 release files

23

2 release files

22

2 release files

21

2 release files

20

2 release files

19

2 release files

18

2 release files

17

2 release files

16

2 release files

15

2 release files

14

2 release files

13

2 release files

12

2 release files

11

2 release files

10

2 release files

9

2 release files

8

2 release files

7

2 release files

6

2 release files

5

2 release files

4

2 release files

3

2 release files

2

2 release files

1

2 release files

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