No project description provided
Project description
Python Toolbox
Python toolbox that provides a timer and a configuration parser.
Installation
To install this module run:
pip install teklia-toolbox
Timer
Wrapper that calculates the execution time of instructions. This information is stored in the delta attribute which is of type datetime.timedelta.
from teklia_toolbox.time import Timer
with Timer() as t:
# Some code
pass
print(f'These instructions took {t.delta}')
Configuration parser
ConfigParser
The ConfigParser class allows to instantiate a parser. It takes as argument:
- a boolean
allow_extra_keysto specify if the parser should ignore extra unspecified keys instead of causing errors (default toTrue)
Add option
The add_option function allows to add parameter to the parser. It takes as argument:
- a parameter
name - a parameter
type(which must be callable) (default tostr) - a
manyboolean to specify if the parameter can have a list of values (default toFalse) - a
defaultvalue (default toobject())
Add subparser
The add_subparser function adds a parser as a new option to the initial parser, to allow finer control over nested configuration options. It takes the same arguments as the ConfigParser class and the add_option function.
Parse data
The parse_data function parses configuration data from a dict. It will raise ConfigurationError if any error is detected. Otherwise it returns a dictionary. It takes as argument:
dataof type Mapping
Parse
The parse function parses configuration data from a yaml file. It will raise ConfigurationError if any error is detected. Otherwise it returns a dictionary. It takes as argument:
- a
pathto the yaml file - a boolean
exist_okto specify if the parser should ignore a non-existing file (default toFalse)
from teklia_toolbox.config import ConfigParser
parser = ConfigParser()
parser.add_option('names', type=str, many=True, default=[])
parser.add_option('pseudo', type=str) # Required
parser.add_option('age', type=int, default=21)
parents_parser = parser.add_subparser('parents', default={})
mother_parser = parents_parser.add_subparser('mother', default={})
mother_parser.add_option('name', type=str, default=None)
mother_parser.add_option('age', type=int, default=None)
father_parser = parents_parser.add_subparser('father', default={})
father_parser.add_option('name', type=str, default=None)
father_parser.add_option('age', type=int, default=None)
# This will return
# {
# 'names': ['Pierre', 'Dupont'],
# 'pseudo': 'BoumBoum',
# 'age': 21,
# 'parents': {
# 'mother': {
# 'name': 'Marie',
# 'age': None
# },
# 'father': {
# 'name': None,
# 'age': None
# }
# }
# }
parser.parse_data({
'names': ['Pierre', 'Dupont'],
'pseudo': 'BoumBoum',
'parents': {
'mother': {
'name' : 'Marie'
}
}
})
ConfigurationError
The ConfigurationError class inherits from the ValueError class. This type of error is raised if the parser finds errors during parsing.
from teklia_toolbox.config import ConfigurationError
raise ConfigurationError("Oops..")
dir_path and file_path
The dir_path and file_path functions allow you to easily add path or file parameters to the parser.
from teklia_toolbox.config import ConfigParser
from teklia_toolbox.config import dir_path, file_path
parser = ConfigParser()
parser.add_option('root_path', type=dir_path, default=None)
parser.add_option('csv_file', type=file_path, default=None)
# This will return
# {
# 'root_path': PosixPath('/sweet/home'),
# 'csv_file': PosixPath('/coucou.csv')
# }
parser.parse_data({
'root_path': '/sweet/home/',
'csv_file': './coucou.csv'
})
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file teklia_toolbox-0.2.1.tar.gz.
File metadata
- Download URL: teklia_toolbox-0.2.1.tar.gz
- Upload date:
- Size: 17.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f1f8ae7fd4e9e4434fa80cd4b89b35f770062f786a303ac1d4518db7ca2c88c
|
|
| MD5 |
910ff344d2ff0f50fc5bb4e3876a07dd
|
|
| BLAKE2b-256 |
2e434cb6a667905af32595a5309eb5ef8257d0c77c83e52c9b0c34be7a5abcc3
|
File details
Details for the file teklia_toolbox-0.2.1-py3-none-any.whl.
File metadata
- Download URL: teklia_toolbox-0.2.1-py3-none-any.whl
- Upload date:
- Size: 18.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80dcc07bbf854e919e68c5c92fd19f4d61b3356bb38f38efe88f97cc7f1d168b
|
|
| MD5 |
9a4a8e56f29578901d7004182548707e
|
|
| BLAKE2b-256 |
716a89147a1ab699384d9e19a9d6acf7e824a334f02a952c97ba5f6da0507d4e
|