Boxine - bx_py_utils
Various Python / Django utility functions
Quickstart
pip install bx_py_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 workflowmanipulate.create_or_update()- Similar to django'screate_or_update()with benefitstimetracking.TimetrackingBaseModel()- Base model with "create" and "last update" date time
data types
data_types.gtin- ModelField, FormField and validators for GTIN/UPC/EAN numbers, more info: data_types/gtin/README.md
test utilities
datetime.MockDatetimeGenerator()- Mock djangotimezone.now()with generic time stampsdatetime.parse_dt()- Handydatetime.strptime()converthtml_assertion.HtmlAssertionMixin- Unittest mixin class with usefull assertments around Django test client testsmodel_clean_assert.CleanMock()- Context manager to track if modelfull_clean()was calledusers- Utilities around user/permission setup for teststime.MockTimeMonotonicGenerator()- Mocktime.monotonic()with generic time stampsAssertQueries()- 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,minutesetc.)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 namefilename.clean_filename()- Convert filename to ASCII only via slugify
view utilities
view_utils.dynamic_menu_urls.DynamicViewMenu()- Register views to build a simple menu with sections
AWS stuff
bx_py_utils.aws.secret_manager.SecretsManager- Get values from AWS Secrets Managerbx_py_utils.test_utils.mock_aws_secret_manager.SecretsManagerMock- Mock ourSecretsManager()helper in testsbx_py_utils.test_utils.mock_boto3session.MockedBoto3Session- Mockboto3.session.Session()(Currently onlyget_secret_value())bx_py_utils.aws.client_side_cert_manager.ClientSideCertManager- Helper to manage client-side TLS certificate via AWS Secrets Manager
misc
dict_utils.dict_get()- nested dictget()dict_utils.pluck()- Extract values from a dict, if they are presentenviron.cgroup_memory_usage()- Get the memory usage of the current cgrouperror_handling.print_exc_plus()- Print traceback information with a listing of all the local variables in each frameiteration.chunk_iterable()- Create chunks off of any iterableprocessify.processify()- Will execute the decorated function in a separate processstacktrace.get_stacktrace()- Returns a filterable and easy-to-process stacktraceanonymize.anonymize()- Anonymize a string (With special handling of email addresses)
developing
To start developing e.g.:
~$ git clone https://github.com/boxine/bx_py_utils.git
~$ cd bx_py_utils
~/bx_py_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_py_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_py_utils$ make clean
...and start the test server again ;)
License
MIT. Patches welcome!
Links
Metadata
Release files for bx-py-utils 24
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bx_py_utils-24.tar.gz | 32.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bx_py_utils-24-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 75.9 kB
Release files / bx_py_utils-24.tar.gz
| Download URL | bx_py_utils-24.tar.gz |
|---|---|
| Size | 32.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
830e5bc01784bef85194fd3e6db8a580e0ec5cb01c4f6054cd977b3e0e07af8b
|
|
BLAKE2b-256 checksum How to use checksums |
3ab978f878bbc154b647fd72c1b2fc477e8bba6791ce64d561501193f9591f42
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.8.5
|
Release files / bx_py_utils-24-py3-none-any.whl
| Download URL | bx_py_utils-24-py3-none-any.whl |
|---|---|
| Size | 43.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f7f872cd33678c64ddd1c5fad17c7aedfddf251151b97ff507aeb364508c262e
|
|
BLAKE2b-256 checksum How to use checksums |
a7890f9c82907b7234eb2644645e76bc4378e6d44d0579a8d82c232e8fbe7746
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.8.5
|