An utility library for python
Project description
Flashback
You've probably already implemented it.
Flashback is a collection of python utilities: it contains classes, metaclasses, decorators, functions, constants, etc. that you might have written a couple times already.
Installing
Flashback supports python 3.6+.
Pip:
pip install flashback
Build from sources:
git clone git@github.com:PaulRenvoise/flashback.git
cd flashback
python setup.py install
Contents
Flashback's helpers are currently organised within 7 modules, and global helpers:
accessing/
dig()
recursively fetch keys in a nested dict
caching/
Cache
supports several cache stores: in-memory, disk, Redis, and Memcached@cached
caches a callable's return value based on its arguments
debugging/
xp()
prints debug information about its given arguments@profiled
collects and dumps profiling stats over a callable's executioncaller()
allows a developer to print debug information about a callable's callerget_callable()
extracts a callable instance from a frameget_call_context()
finds and returning the code context around a call made in a frameget_frameinfo()
implements a fasterinspect.stack()[x]
formatting/
oxford_join()
joins strings in a human-readable waytransliterate()
represents unicode text in ASCII (using Unidecode)camelize()
transforms any case to camelCasepascalize()
transforms any case to PascalCasesnakeize()
transforms any case to snake_casekebabize()
transforms any case to kebab-caseparameterize()
formats a given string to be used in URLsordinalize()
represents numbers in their ordinal representationsadverbize()
represents numbers in their numeral adverb representationstruncate()
truncates long sentences at a given limit and append a suffix if neededsingularize()
returns the singular form of a given wordpluralize()
returns the plural form of a given word
iterating/
renumerate()
enumerates an iterable starting from its endchunks()
splits an iterable into smaller chunks, padding them if requestedpartition()
splits an iterable into items validating a predicate and the ones that don'tuniq()
removes duplicates from an iterable while keeping the items' ordercompact()
removes None values from an iterableflatten()
unpacks nested iterable into the given iterableflat_map()
applies a function to every item and nested item of the given iterable
i16g/
Locale
dynamically loads localization files from a package path
importing/
import_class_from_path()
fetches a class from a package path and returns itimport_module_from_path()
exposes the contents of a module as globals from a package path
logging/
DEFAULT_CONSOLE_CONFIGURATION
logs to stderr with a sensible set of informationDJANGO_CONSOLE_CONFIGURATION
logs to stderr with the same formatting as Django's loggerFLASK_CONSOLE_CONFIGURATION
logs to stderr with the same formatting as Flask's loggerPYRAMID_CONSOLE_CONFIGURATION
logs to stderr with the same formatting as Pyramid's loggerRAILS_CONSOLE_CONFIGURATION
logs to stderr with the same formatting as RoR's loggerAffixedStreamHandler
allows custom affixes to log records@muted
silences all (or selected) loggers during a callable's execution
Borg
exposes a class useful to produce a singleton behaviour across multiple instancesSentinel
exposes a class that can be used to implement the Sentinel design patternSingleton
exposes a metaclass useful to implement the Singleton design pattern@classproperty
combines @classmethod and @property (with support for @attr.setter)@deprecated
documents deprecated callables with a explicit message@retryable
retries failing executing of a callable@sampled
implements sampling strategies to filter calls made to a callable@timed
measures and prints the execution time of a callable@timeoutable
stops the execution of a callable if its run time is too long
Contributing
The Pull Request template has a checklist containing everything you need to submit a new PR.
Run the tests with pytest
:
pytest tests
Run the lint with pylint
:
pylint flashback/ tests/
License
Flashback is released under the MIT License.
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
flashback-1.2.1.tar.gz
(53.6 kB
view hashes)
Built Distribution
flashback-1.2.1-py3-none-any.whl
(73.6 kB
view hashes)
Close
Hashes for flashback-1.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac688b523d1cb6be3a22ba6a99e73a31166455236f56ad48d6c815e3a60e117e |
|
MD5 | b28d2097d3f4aef1e3415467d2948450 |
|
BLAKE2b-256 | 5bf9dae896834d07e070728ebb7b21c00b579e3d816f131d2cbf3e770476e6a8 |