Skip to main content

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() - Handy datetime.strptime() convert
  • assert_json_requests_mock() - Check the requests history of requests_mock.mock()
  • assert_equal() - Compare objects with a nice diff using pformat
  • assert_text_equal() - Compare text strings with a nice diff
  • assert_snapshot - Helper for quick snapshot test functionality (comparing value with one stored in a file using json)
  • assert_text_snapshot - Same as assert_snapshot comparing text strings
  • assert_py_snapshot - Snapshot test using PrettyPrinter()

humanize

  • humanize.time.human_timedelta() - Converts a time duration into a friendly text representation. (X ms, sec, minutes etc.)
  • pformat() - Better pretty-print-format using JSON with fallback to pprint.pformat()

AWS stuff

  • bx_py_utils.aws.secret_manager.SecretsManager - Get values from AWS Secrets Manager
  • bx_py_utils.test_utils.mock_aws_secret_manager.SecretsManagerMock - Mock our SecretsManager() helper in tests
  • bx_py_utils.test_utils.mock_boto3session.MockedBoto3Session - Mock boto3.session.Session() (Currently only get_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_query Generate an introspection query to get an introspection doc.
  • graphql_introspection.complete_query Generate a full query for all fields from an introspection doc.

misc

  • dict_utils.dict_get() - nested dict get()
  • dict_utils.pluck() - Extract values from a dict, if they are present
  • environ.cgroup_memory_usage() - Get the memory usage of the current cgroup
  • error_handling.print_exc_plus() - Print traceback information with a listing of all the local variables in each frame
  • iteration.chunk_iterable() - Create chunks off of any iterable
  • processify.processify() - Will execute the decorated function in a separate process
  • anonymize.anonymize() - Anonymize a string (With special handling of email addresses)
  • hash_utils.url_safe_hash() - Generate URL safe hashes
  • compat.removeprefix() - Backport of str.removeprefix from PEP-616
  • compat.removesuffix() - Backport of str.removesuffix from 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

This version

37

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bx_py_utils-37.tar.gz (15.0 kB view details)

Uploaded Source

Built Distribution

bx_py_utils-37-py3-none-any.whl (17.9 kB view details)

Uploaded Python 3

File details

Details for the file bx_py_utils-37.tar.gz.

File metadata

  • Download URL: bx_py_utils-37.tar.gz
  • Upload date:
  • Size: 15.0 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

Hashes for bx_py_utils-37.tar.gz
Algorithm Hash digest
SHA256 5eac7b7c09f295d4561de603ecaf862c60a253e1850c6824a45fa06b496797c7
MD5 feade3162ba62dd314e54208c54a0a98
BLAKE2b-256 6b8f87c1e1c8c030e584bd38e7dcf5b3c998bebbe0010912233c797f857f29d2

See more details on using hashes here.

File details

Details for the file bx_py_utils-37-py3-none-any.whl.

File metadata

  • Download URL: bx_py_utils-37-py3-none-any.whl
  • Upload date:
  • Size: 17.9 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

Hashes for bx_py_utils-37-py3-none-any.whl
Algorithm Hash digest
SHA256 26a9cd7fc08b50d5aed00389e868a33f162cd26fa6c36f76e649a5f3af1c88d7
MD5 be7493662936f4fe2ed092a9ca5b8f9d
BLAKE2b-256 f256b09ca5faf0035b35fce691697a9281fb24caae8cfa0a08a54ee5cc94daae

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page