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
-
Install distribution libraries
pip install check-manifest pip install twine pip install wheel
-
Building manifest file:
check-manifest --create -
Building the wheel:
python setup.py bdist_wheel
-
Building the source distribution:
python setup.py sdist
-
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*
Metadata
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)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| olutils-1.1.0.tar.gz | 30.6 kB | Without provenance | Details for olutils-1.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| olutils-1.1.0-py3-none-any.whl | Python 3 | none | any | Details for olutils-1.1.0-py3-none-any.whl |
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
|
Security for olutils 1.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.