Skip to main content

tools for common operations in a module

Project description



The module olutils provide common tools to simplify project creation. It includes:

  • class with logger
  • parameter management
  • object management (copy, saving, loading)
  • plotting (if matplotlib available)


One can install olutils using pip install command:

pip install olutils


Use of temporal converters and deep defaultdict:

import olutils

# Building a deep default dict with datetimes as values
flights = olutils.deepdefaultdict(lambda x: None, depth=2)

# Filling it
flights['Paris-NY']['departure'] = olutils.str2dt("2019-01-15 08:00+01:00")
flights['Paris-NY']['arrival'] = olutils.str2dt("2019-01-15 10:30-05:00")
flights['NY-Paris']['departure'] = olutils.str2dt("2019-01-17 23:00-05:00")
flights['NY-Paris']['arrival'] = olutils.str2dt("2019-01-15 11:00+01:00")


File reading and object storing:

import olutils

my_dict = {'key_1': "value_1", 'key_2': 2}
my_rows = [{'col_1': 11, 'col_2': 21}, {'col_1': 21, 'col_2': 22}]

# Saving objects in output directory (automatically created), "output/my_dict.json"), "output/my_rows.csv"), "output/my_rows.unknown", mthd="json")

# Loading objects from save outputs
my_loaded_dict = olutils.load("output/my_dict.json")
my_loaded_rows = olutils.load("output/my_rows.csv")
my_loaded_rows_ = olutils.load("output/my_rows.unknown", mthd="json")


import matplotlib.pyplot as plt
import numpy as np

from olutils import plotiter

for i in plotiter(range(5), n_cols=3):
    x = [i + k/10 for k in range(10)]
    y = [np.sin(xk) for xk in x]
    plt.plot(x, y)

For developers

Download the project

Clone repository:

git clone
cd olutils

One can make an editable code installation:

pip install -e .

Virtual Environment

python -m venv venv
source venv/Scripts/activate
python -m pip install -r requirements.txt

matplotlib does not have to be imported: plotting submodule is not loaded in that case


  1. Install distribution libraries

    pip install check-manifest
    pip install twine
    pip install wheel
  2. Building manifest file:

    check-manifest --create
  3. Building the wheel:

    python bdist_wheel
  4. Building the source distribution:

    python sdist
  5. Publishing:

    python bdist_wheel sdist
    twine upload dist/*

For TestPyPi publication: twine upload --repository-url dist/*

Not working on Git terminal for some reason


python -m pytest olutils -vv
python -m pylint olutils --ignore-patterns=test*

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

olutils-1.1.0.tar.gz (30.6 kB view hashes)

Uploaded source

Built Distribution

olutils-1.1.0-py3-none-any.whl (39.2 kB view hashes)

Uploaded py3

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