
Research
/Security News
Popular npm Packages in the keyv and Cacheable Namespaces Compromised in Active Supply Chain Attack
Popular npm packages keyv and cacheable compromised.
oryxflow
Advanced tools
For data scientists and data engineers, oryxflow is a python library which makes building complex data science workflows easy, fast and intuitive.
Vetting oryxflow for a corporate package firewall? See Security & supply chain.
For data scientists and data engineers, oryxflow is a python library which makes building complex data science workflows easy, fast and intuitive. It is primarily designed for data scientists to build better models faster. For data engineers, it can also be a lightweight alternative and help productionize data science models faster. Unlike other data pipeline/workflow solutions, oryxflow focuses on managing data science research workflows instead of managing production data pipelines.
Data science workflows typically look like this.

The workflow involves chaining together parameterized tasks which pass multiple inputs and outputs between each other. The output data gets stored in multiple dataframes, files and databases but you have to manually keep track of where everything is. And often you want to rerun tasks with different parameters without inadvertently rerunning long-running tasks. The workflows get complex and your code gets messy, difficult to audit and doesn't scale well.
oryxflow to the rescue! With oryxflow you can easily chain together complex data flows and execute them. You can quickly load input and output data for each task. It makes your workflow very clear and intuitive.
4 Reasons Why Your Machine Learning Code is Probably Bad
How oryxflow is different from airflow/luigi

Install with pip install oryxflow. To update, run pip install oryxflow -U.
If you are behind an enterprise firewall, you can also clone/download the repo and run pip install .
Python3 only You might need to call pip3 install oryxflow if you have not set python 3 as default.
To install latest DEV pip install git+git://github.com/oryxintel/oryxflow.git or upgrade pip install git+git://github.com/oryxintel/oryxflow.git -U --no-deps
Build oryxflow workflows faster with AI assistance. The oryxflow Claude Code plugin adds a skill that auto-activates when you edit pipeline files (tasks.py, flow.py, run.py) plus slash commands to scaffold and manage projects:
/oryxflow:init-project – scaffold a new oryxflow project from templates/oryxflow:init-gitlfs – set up Git LFS to version data outputs (see Sharing data)/oryxflow:oryxflow – manually invoke the skill (optional; it auto-activates on pipeline files)Install in Claude Code:
/plugin marketplace add oryxintel/oryxflow-claude-plugin
/plugin install oryxflow@oryxflow
See the plugin repo for more details.
Below is an introductory example that gets training data, trains two models and compares their performance.
See the full ML workflow example here
Interactive mybinder jupyter notebook
import oryxflow
import sklearn.datasets, sklearn.ensemble, sklearn.linear_model
import pandas as pd
# get training data and save it
class GetData(oryxflow.tasks.TaskPqPandas):
persists = ['x','y']
def run(self):
ds = sklearn.datasets.load_boston()
df_trainX = pd.DataFrame(ds.data, columns=ds.feature_names)
df_trainY = pd.DataFrame(ds.target, columns=['target'])
self.save({'x': df_trainX, 'y': df_trainY}) # persist/cache training data
# train different models to compare
@oryxflow.requires(GetData) # define dependency
class ModelTrain(oryxflow.tasks.TaskPickle):
model = oryxflow.Parameter() # parameter for model selection
def run(self):
df_trainX, df_trainY = self.inputLoad() # quickly load input data
if self.model=='ols': # select model based on parameter
model = sklearn.linear_model.LinearRegression()
elif self.model=='gbm':
model = sklearn.ensemble.GradientBoostingRegressor()
# fit and save model with training score
model.fit(df_trainX, df_trainY)
self.save(model) # persist/cache model
self.saveMeta({'score': model.score(df_trainX, df_trainY)}) # save model score
# goal: compare performance of two models
# define workflow manager
flow = oryxflow.WorkflowMulti(ModelTrain, {'model1':{'model':'ols'}, 'model2':{'model':'gbm'}})
flow.reset_upstream(confirm=False) # DEMO ONLY: force re-run
flow.run() # execute model training including all dependencies
'''
Scheduled 2 tasks
* 2 ran successfully
* 0 complete
* 0 failed
'''
scores = flow.outputLoadMeta() # load model scores
print(scores)
# {'model1': {'score': 0.7406426641094095}, 'gbm': {'model2': 0.9761405838418584}}
Library usage and reference https://oryxflow.readthedocs.io
Transition to oryxflow from typical scripts
5 Step Guide to Scalable Deep Learning Pipelines with oryxflow
Data science project starter templates
By default data gets written to data/ which is gitignored to avoid writing large files to source control.
To source control you can use git lfs to dvc.
winget install GitHub.GitLFS # or: choco install git-lfs
git lfs install # hooks LFS into your git config
adjust .gitignore to track data/ and reports/render
Tell LFS which files to track
git lfs track "data/**"
git lfs track "reports/render/**"
git lfs track "*.ipynb"
.gitattributes and .gitignoreAdditional features:
Check out other d6t libraries, including
https://github.com/d6t/d6t-python
Thank you for considering to contribute to the project. First, fork the code repository and then pick an issue that is open. Afterwards follow these steps
A similar workflow applies to bug-fixes as well. In the case of a fix, just change the feature name with the bug-fix name. And make sure the code passes already written unit tests.
FAQs
For data scientists and data engineers, oryxflow is a python library which makes building complex data science workflows easy, fast and intuitive.
The pypi package oryxflow receives a total of 22 weekly downloads. As such, oryxflow popularity was classified as not popular.
We found that oryxflow demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer 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.

Research
/Security News
Popular npm packages keyv and cacheable compromised.

Security News
A misconfiguration gave three Anthropic models internet access, and one, believing it was in a simulation, shipped a credential-stealing package to PyPI.

Security News
/Company News
Socket has joined the new Composer and Packagist sponsorship program as a launch sponsor, supporting the team that keeps PHP's package ecosystem secure.