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
Metadata
Release files for bx-py-utils 37
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-37.tar.gz | 15.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bx_py_utils-37-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.9 kB
Release files / bx_py_utils-37.tar.gz
| Download URL | bx_py_utils-37.tar.gz |
|---|---|
| Size | 15.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5eac7b7c09f295d4561de603ecaf862c60a253e1850c6824a45fa06b496797c7
|
|
BLAKE2b-256 checksum How to use checksums |
6b8f87c1e1c8c030e584bd38e7dcf5b3c998bebbe0010912233c797f857f29d2
|
| 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_py_utils-37-py3-none-any.whl
| Download URL | bx_py_utils-37-py3-none-any.whl |
|---|---|
| Size | 17.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
26a9cd7fc08b50d5aed00389e868a33f162cd26fa6c36f76e649a5f3af1c88d7
|
|
BLAKE2b-256 checksum How to use checksums |
f256b09ca5faf0035b35fce691697a9281fb24caae8cfa0a08a54ee5cc94daae
|
| 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
|