Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Curifactory is a library and CLI tool designed to help organize and manage research experiments in python.
Experiment management must fulfill several tasks, including experiment orchestration, parameterization, caching, reproducibility, reporting, and parallelization. Existing projects such as MLFlow, MetaFlow, Luigi, and Pachyderm support these tasks in several different ways and to various degrees. Curifactory provides a different opinion, with a heavier focus on supporting general research experiment workflows for individuals or small teams working primarily in python.
You can read more about these design principles in our paper in the SciPy 2022 proceedings.
pip install curifactory
Graphviz is required for certain features and can be installed through conda via:
conda install python-graphviz
For tab-completion in bash/zsh, install the argcomplete
package (if using curifactory inside
a conda environment, you'll need to install this in your system python.)
pip install argcomplete
To enable, you can either use argcomplete's global hook activate-global-python-argcomplete
, which
will enable tab complete on all argcomplete-enabled python packages (e.g. pytest), or you can add
eval "$(register-python-argcomplete experiment)"
to your shell's rc file. Curifactory can add
this line for you automatically with:
curifactory completion [--bash|--zsh] # use the shell flag appropriate
Once enabled, the experiment
command will provide tab complete for experiment names, parameter names, and flags.
OS: We primarily develop and test Curifactory on Linux, but it runs on Windows and MacOS as well.
Python: 3.9-3.11
Optional:
The documentation for the latest version of Curifactory can be found at: https://ornl.github.io/curifactory/stable/index.html.
Several small example can be found in the examples
folder.
examples/notebooks
includes walkthroughs demonstrating usage of curifactory
solely in Jupyter.
Please use the following BibTeX if citing this project:
@article{Martindale2023,
doi = {10.21105/joss.05793},
url = {https://doi.org/10.21105/joss.05793},
year = {2023},
publisher = {The Open Journal},
volume = {8},
number = {90},
pages = {5793},
author = {Nathan Martindale and Scott L. Stewart and Jason Hite and Mark B. Adams},
title = {Curifactory: A research experiment manager},
journal = {Journal of Open Source Software}
}
Curifactory is one tool and one opinion among many, other projects that have similar goals and/or approaches:
FAQs
An experiment workflow and organization tool
We found that curifactory demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.