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
Built Distribution
File details
Details for the file flashback-1.2.1.tar.gz
.
File metadata
- Download URL: flashback-1.2.1.tar.gz
- Upload date:
- Size: 53.6 kB
- Tags: Source
- Uploaded using 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.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 596f8d4dbf8c4e4a18f07a534c29330b48b895ed5d65b5216d9629282b9e1b0b |
|
MD5 | ffa95fbc561e96d5c99bd66e6258140f |
|
BLAKE2b-256 | c8096a847e4a6f574264ca852ce6b3b53e3c4c343696cabb8a389a61a82abac5 |
File details
Details for the file flashback-1.2.1-py3-none-any.whl
.
File metadata
- Download URL: flashback-1.2.1-py3-none-any.whl
- Upload date:
- Size: 73.6 kB
- Tags: Python 3
- Uploaded using 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.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac688b523d1cb6be3a22ba6a99e73a31166455236f56ad48d6c815e3a60e117e |
|
MD5 | b28d2097d3f4aef1e3415467d2948450 |
|
BLAKE2b-256 | 5bf9dae896834d07e070728ebb7b21c00b579e3d816f131d2cbf3e770476e6a8 |