Skip to main content

olutils

Introduction

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)

Installation

One can install olutils using pip install command:

```bash
pip install olutils
```

Usage

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")

flights.pprint()

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)
olutils.save(my_dict, "output/my_dict.json")
olutils.save(my_rows, "output/my_rows.csv")
olutils.save(my_rows, "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")

Multi-plotting

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 https://github.com/OctaveLauby/olutils.git
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
...
deactivate

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

Distribution

  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 setup.py bdist_wheel
    
  4. Building the source distribution:

    python setup.py sdist
    
  5. Publishing:

    python setup.py bdist_wheel sdist
    twine upload dist/*
    

For TestPyPi publication: twine upload --repository-url https://test.pypi.org/legacy/ dist/*

Not working on Git terminal for some reason

Testing

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

Release files for olutils 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for olutils 1.1.0
File Size Uploaded
olutils-1.1.0.tar.gz 30.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for olutils 1.1.0
File Interpreter ABI Platform
olutils-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 69.8 kB

Release files / olutils-1.1.0.tar.gz

Download URL olutils-1.1.0.tar.gz
Size 30.6 kB
Tags Source
SHA-256 checksum
How to use checksums
7cf4f061010f38281515dc729a84ec46c773f0d3416125e8d7479b007e69aeab
BLAKE2b-256 checksum
How to use checksums
04259c0a564dcc796912d0852c84b312befb4f286923d9f6111f865143786677
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.7

Release files / olutils-1.1.0-py3-none-any.whl

Download URL olutils-1.1.0-py3-none-any.whl
Size 39.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c4e29647e22739a0cbf66bd3b5ffb4e76639f983850077a3cb3992b1a134456d
BLAKE2b-256 checksum
How to use checksums
c6a2260da982567926eaa5502ae68db502f6669674200c1c8b1ae304d3595d52
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.7

Release history Release notifications | RSS feed

2.1.0

2 release files

2.0.2

2 release files

2.0.1

2 release files

1.2.0

2 release files

This release

1.1.0 This release

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page