Instradatore is a Python project designed to manage the execution of a sequential chain of Python and Bash scripts. Its goal is to simplify workflows by executing scripts in a predefined order, ensuring that dependencies and execution logic are respected.
- Sequential execution: Automatically runs Python and Bash scripts in order.
- Configuration flexibility: Define execution sequences in a configuration file.
- Dependencies included: Utilizes modern Python libraries like
pyyaml
andrich-click
for enhanced functionality. - Support for NetCDF and HDF5: Includes tools for handling scientific data with
xarray
,netcdf4
, andh5netcdf
. - Documentation-ready: Bundled with
Sphinx
and themes for creating beautiful documentation. - HTML Report Generation: Automatically generates an HTML report detailing the execution of scripts, providing insights into the workflow.
- Python 3.10 or later.
- Poetry for dependency management and project packaging.
-
Clone the repository:
git clone https://github.com/fgr81/instradatore.git cd instradatore
-
Install dependencies using Poetry:
poetry install
-
Activate the Poetry virtual environment:
poetry shell
-
Define the execution sequence in a
scripts.yaml
file.- Example
ames_34.yaml
- Example
-
Run Instradatore using the following command, specifying any desired options or commands:
python -m instradatore [OPTIONS] COMMAND [ARGS]...
-
Available options:
--log TEXT
: Specify the log file location.--daemon, -d
: Run in background mode.
-
Available commands:
start
: Start the execution of the script chain.
-
To add a new dependency, use Poetry:
poetry add <package-name>
Instradatore uses Sphinx for documentation. To build the docs:
cd docs
sphinx-build -b html source/ build/
The output will be available in the docs/build/
directory.
Instradatore leverages the following key Python libraries:
- pyyaml: For parsing YAML configuration files.
- rich-click: For enhanced CLI output.
- xarray: For multidimensional scientific data processing.
- netcdf4: For working with NetCDF files.
- h5netcdf: For NetCDF compatibility with HDF5.
- Sphinx: For generating documentation.
We welcome contributions! To contribute:
- Fork the repository.
- Create a branch for your feature or bugfix:
git checkout -b feature-name
- Commit your changes:
git commit -m "Description of your changes"
- Push to your fork:
git push origin feature-name
- Open a Pull Request.
This project is licensed under the GNU GPLv3.
Developed by Fabio Massimo Grasso
📧 Email: [email protected]
🌐 GitHub Profile