Install with
pip install csc
Consider the following training script
#: parameters
...
#: setup
...
#: train
...
#: save
...
To run the the script cell by cell, use:
script = csc.Script("experiment.py")
script.run("parameters")
script.run("setup")
script.run("train")
script.run("save")
Different scripts can be "spliced" together by specifying multiple scripts. The first script acts as the base script and defines the available cells. Subsequent scripts, or spliced scripts, can extend the cells of the base script. All scripts share a single scope. For each cell, first the code of the base script is executed and then the code of the spliced scripts.
# file: parameters.py
#: parameters
batch_size = ...
scripts = csc.Script(["experiment.py", "parameters.py"])
# executes first the 'parameters' cell of 'experiment.py', then the
# 'parameters' cell of 'parameters.py'
scripts.run("parameters")
csc
include a command line script splice and execute scripts. Usage:
$ python -m csc base_script.py spliced_script_1.py spliced_script_2.py
To splice in parameters, csc
offers a shortcut: arguments specified via -p STATEMENT
are concatenated into a script with a single 'parameters' cell that
executes the given statements.
# this call
$ python -m csc base_script.py -p batch_size=100 -p learning_rate=3e-4
# is equivalent to
$ python -m csc base_script.py parameters.py
$ cat parameters.py
#: parameters
batch_size=100
learning_rate=3e-4
csc.Script(base_script: Union[str, pathlib.Path, FileSource, InlineSource], /, *spliced_scripts, cell_marker: str = '#:', register: bool = False)
A Python script that can be executed cell by cell
Cells are defined via comments (per default '#: {CELL_NAME}').
List all cells of the script
Only cells of the base script are considered.
Run cells of the script by name
Evaluate an expression the scope of the script
Define a script via a file
Define a script via its source
This package is licensed under the MIT License. See LICENSE
for details.