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.
bx_py_utils.anonymize
anonymize()- Anonymize the given string with special handling for eMail addresses.
bx_py_utils.auto_doc
assert_readme()- Check and update README file with generate_modules_doc()generate_modules_doc()- Generate a list of function/class information via pdoc.
bx_py_utils.aws.client_side_cert_manager
ClientSideCertManager()- Helper to manage client-side TLS certificate via AWS Secrets Manager by
bx_py_utils.aws.secret_manager
SecretsManager()- Access AWS Secrets Manager values
bx_py_utils.compat
removeprefix()- Backport ofremoveprefixfrom PEP-616 (Python 3.9+)removesuffix()- Backport ofremovesuffixfrom PEP-616 (Python 3.9+)
bx_py_utils.dict_utils
dict_get()- nested dictget()pluck()- Extract values from a dict, if they are present
bx_py_utils.environ
cgroup_memory_usage()- Returns the memory usage of the cgroup the Python interpreter is running in.
bx_py_utils.error_handling
print_exc_plus()- Print traceback information with a listing of all the local variables in each frame.
bx_py_utils.graphql_introspection
introspection_query()- Generate GraphQL introspection query with variable nested depth.
bx_py_utils.hash_utils
url_safe_encode()- Encode bytes into a URL safe string.url_safe_hash()- Generate a URL safe hash withmax_sizefrom given string/bytes.
bx_py_utils.humanize.pformat
pformat()- Format given object: Try JSON fist and fallback to pformat()
bx_py_utils.humanize.time
human_timedelta()- Converts a time duration into a friendly text representation.
bx_py_utils.iteration
chunk_iterable()- Returns a generator that yields slices of iterable of the givenchunk_size.
bx_py_utils.path
assert_is_dir()- Check if given path is a directoryassert_is_file()- Check if given path is a file
bx_py_utils.processify
processify()- Decorator to run a function as a process.
bx_py_utils.stack_info
FrameNotFound()- Base class for lookup errors.last_frame_outside_path()- Returns the stack frame that is the direct successor of given "file_path".
bx_py_utils.test_utils.assertion
assert_equal()- Check if the two objects are the same. Display a nice diff, usingpformat()assert_text_equal()- Check if the two text strings are the same. Display a error message with a diff.pformat_ndiff()- Generate andifffrom two objects, usingpformat()pformat_unified_diff()- Generate a unified diff from two objects, usingpformat()text_ndiff()- Generate andiffbetween two text strings.text_unified_diff()- Generate a unified diff between two text strings.
bx_py_utils.test_utils.datetime
parse_dt()- Helper for easy generate adatetimeinstance via string.
bx_py_utils.test_utils.filesystem_utils
FileWatcher()- Helper to record which new files have been created.
bx_py_utils.test_utils.mock_aws_secret_manager
SecretsManagerMock()- Mock forbx_py_utils.aws.secret_manager.SecretsManager()
bx_py_utils.test_utils.mock_boto3session
MockedBoto3Session()- Mock forboto3.session.Session()
bx_py_utils.test_utils.requests_mock_assertion
assert_json_requests_mock()- Check the requests history.
bx_py_utils.test_utils.snapshot
Assert complex output via auto updated snapshot files with nice diff error messages.
assert_py_snapshot()- Assert complex python objects vio PrettyPrinter() snapshot file.assert_snapshot()- Assert given data serialized to JSON snapshot file.assert_text_snapshot()- Assert "text" string via snapshot file
bx_py_utils.test_utils.time
MockTimeMonotonicGenerator()- Helper to mocktime.monotonic()in tests.
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-40rc1.tar.gz.
File metadata
- Download URL: bx_py_utils-40rc1.tar.gz
- Upload date:
- Size: 19.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.3.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7350083d78b3b723dd328cb7cd6370d7a82ccd8754570d8b66eae33770854189
|
|
| MD5 |
16e8c4864a6414361fbf3a6f27ae9c7d
|
|
| BLAKE2b-256 |
97d00de4cd0c58cf0716ac70d93b6faba840728c7f7a7ede8b812975e9438026
|
File details
Details for the file bx_py_utils-40rc1-py3-none-any.whl.
File metadata
- Download URL: bx_py_utils-40rc1-py3-none-any.whl
- Upload date:
- Size: 23.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.3.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1aabd7f66244f264997c32805f860fd9cbd4f5c5ab947c05f8f5a2b767e63d0d
|
|
| MD5 |
cff2b03222c6c6de9d226eba68cec237
|
|
| BLAKE2b-256 |
d06f995360695f88f103c89691df853d95a321ca383664c3375fcbcff3809d91
|