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


Keywords
bicycle, crutches, utilities, bycycle, python
License
MIT
Install
pip install pure-utils==0.9.0

Documentation

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.