Skip to main content

Yet another python utilities, with the goal of collecting useful bicycles and crutches in one place.

Project description

pure-utils

Build Status PyPI - Python Version PyPI Version Code Coverage Maintainability

Yet another python utilities, with the goal of collecting useful bicycles and crutches in one place.

Main principles:

  1. No third party dependencies (standart library only).
  2. Mostly pure functions without side effects.
  3. Interfaces with type annotations.
  4. Comprehensive documentation with examples of use.
  5. Full test coverage.

For detail information read the doc.

Available utilities

  • common - The common purpose utilities.
    • Singleton - A metaclass, implements the singleton pattern for inheritors.
  • containers - Utilities for working with data containers (lists, dicts, tuples, sets, etc.).
    • bisect(collection, /) - Bisect the list into two parts/halves based on the number of elements.
    • first(collection, /) - Get the value of the first element from a homogeneous collection.
    • flatten(collection, /) - Make the iterated collection a flat (single nesting level).
    • get_or_else(collection, index[, default]) - Get value of element, and if it is missing, return the default value.
    • omit(container, keys, /) - Omit key-value pairs from the source dictionary, by keys sequence.
    • paginate(collection, /, *, size) - Split the collection into page(s) according to the specified limit.
    • pick(container, keys, /) - Pick key-value pairs from the source dictionary, by keys sequence.
    • symmdiff(collection1, collection2, /) - Obtain the symmetric difference of two sequences.
    • unpack(container, attributes, /) - Unpack the values of container object into separate variables.
  • debug - Utilities for debugging and development.
    • around(*[, before, after]) - Add additional behavior before and after execution of decorated function.
    • caller(*[, at_frame]) - Get the name of calling function/method (from current function/method context).
    • deltatime(*[, logger]) - Measure execution time of decorated function and print it to log.
    • profileit(*[, logger, stack_size]) - Profile decorated function being with 'cProfile'.
  • profiler - Helper classes for working with the cProfile.
    • Profiler - A class provides a simple interface for profiling code.
  • repeaters - Utilities for repeatedly execute custom logic.
    • Repeater - Base Repeater, implements a main logic, such as constructor and execute method.
    • ExceptionBasedRepeater - Repeater based on catching targeted exceptions.
    • PredicateBasedRepeater - Repeater based on predicate function.
    • repeat(repeater: Repeater) - Repeat wrapped function by repeater logic.
  • strings - Utilities for working with strings.
    • genstr([length, is_uppercase]) - Generate ASCII-string with random letters.
    • gunzip(compressed_string, /) - Compress string (or bytes string) with gzip compression level.
    • gzip(string, /, *[, level]) - Decompress bytes (earlier compressed with gzip) to string.
  • system - The system purpose utilities.
    • execute(args, *[, input, timeout]) - Execute command into external process.
  • times - Utilities for working with datetime objects.
    • apply_tz(dt[, tz]) - Apply timezone context to datetime object.
    • iso2format(isostr, fmt, /) - Convert ISO-8601 datetime string into a string of specified format.
    • iso2dmy(isostr, /) - Convert ISO-8601 datetime string into a string of DMY (DD.MM.YYYY) format.
    • iso2ymd(isostr, /) - Convert ISO-8601 datetime string into a string of YMD (YYYY-MM-DD) format.
    • round_by(dt, /, *, boundary) - Round datetime, discarding excessive precision.

License

MIT License.

Copyright (c) 2024 Peter Bro <p3t3rbr0@gmail.com || peter@peterbro.su>

See LICENSE file for more information.

Project details


Download files

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

Source Distribution

pure_utils-0.9.0.tar.gz (25.1 kB view hashes)

Uploaded Source

Built Distribution

pure_utils-0.9.0-py3-none-any.whl (17.7 kB view hashes)

Uploaded Python 3

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