Runs python script in argument combinations and produces dataset of all results.
Project description
args_to_db - Data Generation Tool for Argument Optimisation
pip install args_to_db
You want to analyze a (python) script for different arguments/settings? - Argument optimization is becoming more and more important in many application areas. args_to_db is an attempt to generalize and simplify the process of running a programm in different modes or configurations and combining the resulting datasets to allow for further analysis.
When should I use args_to_db?
You have a programm which is highly dependent on parameters and arguments, for example a solver framework for linear system of equations. Different inputs vary performance of solving methods dramatically. So we want to optimize the solver and preonditioner used for a specific linear system of equations.
This is performed once and results in preferences which are then to be used automatically by the programm. args_to_db simplifies the process of argument variation and dataset generation.
How to use args_to_db to run a script?
Argument construction is made easy with the usage of arg, option, flag
.
from args_to_db import arg, flag, option
py = arg('python')
# > py=[['python']]
script = arg('script.py')
# > py=[['script.py']]
data = option('--input', ['file1.csv', 'file2.csv'])
# > data=[['--input', 'file1.csv'],
# ['--input', 'file2.csv']]
opt_flags = flag('-O') + flag('-r')
# > opt_flags=[[],
# ['-r'],
# ['-O'],
# ['-O', '-r']]
log_flag = flag('--log', vary=False)
# > log_flag=[['--log']]
cmds = py + script + data + opt_flags + log_flag
# > cmds=[['python', 'script.py', '--input', 'file1.csv', '--log'],
# ['python', 'script.py', '--input', 'file1.csv', '-r', '--log'],
# ['python', 'script.py', '--input', 'file1.csv', '-O', '--log'],
# ['python', 'script.py', '--input', 'file1.csv', '-O', '-r', '--log'],
# ['python', 'script.py', '--input', 'file2.csv', '--log'],
# ['python', 'script.py', '--input', 'file2.csv', '-r', '--log'],
# ['python', 'script.py', '--input', 'file2.csv', '-O', '--log'],
# ['python', 'script.py', '--input', 'file2.csv', '-O', '-r', '--log']]
The container objects are arrays of commands (which themselves are arrays again), they behave like normal python arrays except for the differnt usage of the +
and +=
operator.
Such object or any other 2D command array may then be executed.
run(cmds, threads=4)
# runs all specified commands with upto 4 concurrent threads.
How to report (config specific) results of the scripts?
The values of interest on which we want to optimize need to be logged and combined. args_to_db makes this easy.
results = {'key': value}
write_results(__file__, args, results)
This produces an output which is then later on combined with the others by the run(...)
task.
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
Hashes for args_to_db-0.1.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4e7476b24b498cf850a7a5e6ed8b43538c6133228d5f3a9887a5ef23e423f0d |
|
MD5 | fa0360b9a6af68b357060cd222ecf35e |
|
BLAKE2b-256 | a0b6db6b4fca15719b14b5bdf3d767c41a224d31d0a32dd8ac70ad9f386583b2 |