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_keys
to 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
many
boolean to specify if the parameter can have a list of values (default toFalse
) - a
default
value (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:
data
of 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
path
to the yaml file - a boolean
exist_ok
to 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
File details
Details for the file teklia_toolbox-0.1.6.tar.gz
.
File metadata
- Download URL: teklia_toolbox-0.1.6.tar.gz
- Upload date:
- Size: 12.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.13.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce65581b1b08f8aa5fc42621da43679a5ed080ed58ec68451732928c30fbfc3a |
|
MD5 | 25ee6ffcff71874bc910b519008b8b06 |
|
BLAKE2b-256 | d04c604cc3aa7da7e4c7673fc599ec3cc10deb221547d674b1ecd0d49fcb6695 |
Provenance
File details
Details for the file teklia_toolbox-0.1.6-py3-none-any.whl
.
File metadata
- Download URL: teklia_toolbox-0.1.6-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.13.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 044e712afb322796a57b7667c7620d49f6cb9d5095f795d3a3ff8722880ed8ea |
|
MD5 | ab49c70f7d5d71918801ce23e444f098 |
|
BLAKE2b-256 | e46250b947ecc8e2ed218542bdb512ca9fb9654fac4065b744ab08f2192e32dd |