Various Python utility functions
Project description
Boxine - bx_py_utils
Various Python 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.
test utilities
datetime.parse_dt()- Handydatetime.strptime()convertassert_json_requests_mock()- Check the requests history ofrequests_mock.mock()assert_equal()- Compare objects with a nice diff using pformatassert_text_equal()- Compare text strings with a nice diffassert_snapshot- Helper for quick snapshot test functionality (comparing value with one stored in a file using json)assert_text_snapshot- Same asassert_snapshotcomparing text stringsassert_py_snapshot- Snapshot test usingPrettyPrinter()
humanize
humanize.time.human_timedelta()- Converts a time duration into a friendly text representation. (X ms,sec,minutesetc.)pformat()- Betterpretty-print-formatusing JSON with fallback topprint.pformat()
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
GraphQL
graphql_introspection.introspection_queryGenerate an introspection query to get an introspection doc.graphql_introspection.complete_queryGenerate a full query for all fields from an introspection doc.
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 processanonymize.anonymize()- Anonymize a string (With special handling of email addresses)hash_utils.url_safe_hash()- Generate URL safe hashescompat.removeprefix()- Backport ofstr.removeprefixfrom PEP-616compat.removesuffix()- Backport ofstr.removesuffixfrom PEP-616
Backwards-incompatible changes
v36 -> v37 - Outsourcing Django stuff
We split bx_py_utils and moved all Django related utilities into the separated project:
So, bx_py_utils is better usable in non-Django projects, because Django will not installed as decency of "bx_py_utils"
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
clean Remove created files from the test project
License
MIT. Patches welcome!
Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bx_py_utils-37rc1.tar.gz.
File metadata
- Download URL: bx_py_utils-37rc1.tar.gz
- Upload date:
- Size: 15.1 kB
- Tags: Source
- Uploaded using 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
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d8d2e7df55fc54fc7e7537da425fdafa82e76f2153787d0d30da4080218eb8f
|
|
| MD5 |
a06d6e63005174d9544ce42f65455f92
|
|
| BLAKE2b-256 |
1a342eeda8649c58a1ed17a04c4c218834fd118a039ca273f03bc647dcdafa60
|
File details
Details for the file bx_py_utils-37rc1-py3-none-any.whl.
File metadata
- Download URL: bx_py_utils-37rc1-py3-none-any.whl
- Upload date:
- Size: 18.0 kB
- Tags: Python 3
- Uploaded using 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
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e31a8691308c2ff7202f7dd9e0b664e005a4e2d34b8ecd9ed0d35b291def89e
|
|
| MD5 |
6f5b040914dc240840d95f9360a74be1
|
|
| BLAKE2b-256 |
57276b1b51178929b71ef013fa0439deb6778702a907b738962ade4554c2266f
|