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.get_code_location()- Return start and end line number for an object via inspect.
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.log_utils
RaiseLogUsage()- A log handler, that raise an error on every log output.
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 mock history. In this case all requests must be JSON.assert_json_requests_mock_snapshot()- Check requests mock history via snapshot. Accepts only JSON requests.assert_requests_mock()- Check the requests mock history. Accept mixed "text" and "JSON".assert_requests_mock_snapshot()- Check requests mock history via snapshot. Accept mixed "text" and "JSON".
bx_py_utils.test_utils.snapshot
Assert complex output via auto updated snapshot files with nice diff error messages.
assert_html_snapshot()- Assert "html" string via snapshot file with pretty format via lxmlassert_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
Metadata
Release files for bx-py-utils 45
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-45.tar.gz | 21.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bx_py_utils-45-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 46.3 kB
Release files / bx_py_utils-45.tar.gz
| Download URL | bx_py_utils-45.tar.gz |
|---|---|
| Size | 21.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ac403213b0f411edc5678ba8a9749f141b9e25fbe5509c3ca817c9b977e15e4f
|
|
BLAKE2b-256 checksum How to use checksums |
9933b4e621dca531228d85758c7feb3817b4767853b88ed6b0eda845ef86ca95
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10
|
Release files / bx_py_utils-45-py3-none-any.whl
| Download URL | bx_py_utils-45-py3-none-any.whl |
|---|---|
| Size | 24.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
276e7f5d06b85de21628eb5cbbdac7e23226a9c760ece2fb93a14116008c0d85
|
|
BLAKE2b-256 checksum How to use checksums |
2ce7fabe7b183ebef98e537e1b0b04f1d592907ed606ba23492852f1c0dc6193
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10
|