Skip to main content

Collection of generic-purpose and stand-alone functions

Project description

Collection of generic-purpose and stand-alone functions

python pypi license build & test codecov pylint black

This package provides a collection of generic-purpose and stand-alone functions that are used in multiple places of Lyncs.


The package can be installed via pip:

pip install [--user] lyncs_utils


Here the list of functions implemented with a short description. Use help(lyncs_utils) for more details.

Class Utils

Functions and decorator for classes. See lyncs_utils.class_utils.

  • @add_to: Decorator for adding a function to a class
  • @add_kwargs_of(fnc): Decorator for adding kwargs of a function to another
  • @compute_property: Decorator for computing a property once and cache the result
  • @static_property: Decorator for a static property (like staticmethod)
  • @class_property: Decorator for a class property (like classmethod)
  • call_method(obj, fnc, *args, **kwargs): Calls a method of the obj.
  • default_repr_pretty: Default method to use for repr_pretty


Extensions of Python standard functions. See lyncs_utils.extensions.

  • count: See itertools.count. Adds call method
  • redirect_stdout: See contextlib.redirect_stdout. Now, it redirects stdout also from C
  • FreezableDict: Extension of dict. A dictionary that can be frozen at any moment.
  • cache: Enables functools.cache for all versions of Python


Factorization utils. See lyncs_utils.factors.

  • prod(arr): Enables for all versions of Python
  • factors(n): Returns the list of factors of n
  • prime_factors(n): Returns the list of prime factors of n


Tools for functions. See lyncs_utils.functools.

  • is_keyword(key): Whether key can be used as a function keyword
  • get_varnames(fnc): Returns the list of varnames of the function
  • has_args(fnc): Whether the function uses *args
  • has_kwargs(fnc): Whether the function uses **kwargs
  • apply_annotations(fnc, *args, **kwargs): Applies the annotations of fnc to the respective *args, **kwargs
  • select_kwargs(fnc, *args, **kwargs): Calls fnc passing *args and ONLY the applicable **kwargs


Tools for I/O. See

  • @open_file: Decorator that opens the file (if needed) before calling the function
  • read(fname/fp): Reads data from file
  • write(fname/fp): Writes data into the file
  • read_struct(fname/fp, format): Reads a structure from file
  • file_size(fname/fp): Returns the file size
  • to_path(fname/fp): Reaturns a Path object to the file


Functions returning or manipulating logical values (boolean). See lyncs_utils.logical.

  • single_true(iter): Whether one and only one element of the list is True
  • isiterable(obj): Whether the object is iteragle or not
  • interactive(): Whether Python has been run in interactive mode
  • version(num, pkg): Compares the version number to the one of a package

Project details

Download files

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

Files for lyncs-utils, version 0.2.0
Filename, size File type Python version Upload date Hashes
Filename, size lyncs_utils-0.2.0.tar.gz (15.7 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page