diff --git a/.dockerignore b/.dockerignore index ce34daa..c1021cc 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,15 +1,4 @@ -data/ -figures/ -pipelines/params/ -envs/ -logs/ -*.pyc -__pycache__/ -*.h5 -.Trash-0/ -.ipynb_checkpoints/ -env_setup.sh -docker-compose.yaml -run_container.sh -TODO.md -.env \ No newline at end of file +data +notebooks +.renku +.git diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..12b4a35 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +.renku/metadata/** merge=renkumerge diff --git a/.gitignore b/.gitignore index 335b4ed..22775fc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,346 @@ -#data/ -envs/ -logs/ -*.pyc -__pycache__/ -*.h5 -.env +#data/ +envs/ +logs/ +*.pyc +__pycache__/ +*.h5 +.env + + +# Created by https://www.gitignore.io/api/macos,python,R,linux,vim,emacs,visualstudiocode,intellij +# Edit at https://www.gitignore.io/?templates=macos,python,R,linux,vim,emacs,visualstudiocode,intellij + +### Emacs ### +# -*- mode: gitignore; -*- +*~ +\#*\# +/.emacs.desktop +/.emacs.desktop.lock +*.elc +auto-save-list +tramp +.\#* + +# Org-mode +.org-id-locations +*_archive + +# flymake-mode +*_flymake.* + +# eshell files +/eshell/history +/eshell/lastdir + +# elpa packages +/elpa/ + +# reftex files +*.rel + +# AUCTeX auto folder +/auto/ + +# cask packages +.cask/ +dist/ + +# Flycheck +flycheck_*.el + +# server auth directory +/server/ + +# projectiles files +.projectile + +# directory configuration +.dir-locals.el + +# network security +/network-security.data + + +### Intellij ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/modules.xml +# .idea/*.iml +# .idea/modules + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +# JetBrains templates +**___jb_tmp___ + +### Intellij Patch ### +# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 + +# *.iml +# modules.xml +# .idea/misc.xml +# *.ipr + +# Sonarlint plugin +.idea/sonarlint + +### Linux ### + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + +### macOS ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### Python ### +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +### Vim ### +# Swap +[._]*.s[a-v][a-z] +[._]*.sw[a-p] +[._]s[a-rt-v][a-z] +[._]ss[a-gi-z] +[._]sw[a-p] + +# Session +Session.vim + +# Temporary +.netrwhist +# Auto-generated tag files +tags +# Persistent undo +[._]*.un~ + +### VisualStudioCode ### +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + +### VisualStudioCode Patch ### +# Ignore all local history of files +.history + +# End of https://www.gitignore.io/api/macos,python,R,linux,vim,emacs,visualstudiocode,intellij + +# Renku +.renku.lock +.renku/tmp +.renku/cache diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..a53654a --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,18 @@ +variables: + GIT_STRATEGY: fetch + GIT_SSL_NO_VERIFY: "true" + GIT_LFS_SKIP_SMUDGE: 1 + DOCKER_BUILDKIT: 1 + +stages: + - build + +image_build: + stage: build + image: docker:stable + before_script: + - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN http://$CI_REGISTRY + script: | + CI_COMMIT_SHA_7=$(echo $CI_COMMIT_SHA | cut -c1-7) + docker build --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA_7 . + docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA_7 diff --git a/.renku/metadata.yml b/.renku/metadata.yml new file mode 100644 index 0000000..fc30d48 --- /dev/null +++ b/.renku/metadata.yml @@ -0,0 +1,2 @@ +# Dummy file kept for backwards compatibility, does not contain actual version +'http://schema.org/schemaVersion': '9' \ No newline at end of file diff --git a/.renku/metadata/03/c2/03c2a397908c4e77b603d97e74e8c261e87eae9e1e5a41e1936e2129982ba104 b/.renku/metadata/03/c2/03c2a397908c4e77b603d97e74e8c261e87eae9e1e5a41e1936e2129982ba104 new file mode 100644 index 0000000..bf4f843 Binary files /dev/null and b/.renku/metadata/03/c2/03c2a397908c4e77b603d97e74e8c261e87eae9e1e5a41e1936e2129982ba104 differ diff --git a/.renku/metadata/1e/bb/1ebb7361700b45858304a11c61b893c8b0aadab6949f44a79c05e26cf19cbab6 b/.renku/metadata/1e/bb/1ebb7361700b45858304a11c61b893c8b0aadab6949f44a79c05e26cf19cbab6 new file mode 100644 index 0000000..d05d18d Binary files /dev/null and b/.renku/metadata/1e/bb/1ebb7361700b45858304a11c61b893c8b0aadab6949f44a79c05e26cf19cbab6 differ diff --git a/.renku/metadata/29/65/296522fff8334ccea75df004fe8f6f16e5eb4fcec86d472fb0125e0e64e74b27 b/.renku/metadata/29/65/296522fff8334ccea75df004fe8f6f16e5eb4fcec86d472fb0125e0e64e74b27 new file mode 100644 index 0000000..1a07d2c --- /dev/null +++ b/.renku/metadata/29/65/296522fff8334ccea75df004fe8f6f16e5eb4fcec86d472fb0125e0e64e74b27 @@ -0,0 +1,87 @@ +{ + "@renku_data_type": "BTrees.OOBTree.OOBucket", + "@renku_data_value": { + "@renku_data_type": "builtins.tuple", + "@renku_data_value": [ + { + "@renku_data_type": "builtins.tuple", + "@renku_data_value": [ + "BTree", + { + "@renku_data_type": "type", + "@renku_data_value": "BTrees.OOBTree.OOBTree" + }, + "Bucket", + { + "@renku_data_type": "type", + "@renku_data_value": "BTrees.OOBTree.OOBucket" + }, + "Set", + { + "@renku_data_type": "type", + "@renku_data_value": "BTrees.OOBTree.OOSet" + }, + "TreeSet", + { + "@renku_data_type": "type", + "@renku_data_value": "BTrees.OOBTree.OOTreeSet" + }, + "attrname", + "upstream", + "call", + false, + "difference", + { + "@renku_data_type": "function", + "@renku_data_value": "BTrees._OOBTree.difference" + }, + "dump", + { + "@renku_data_type": "function", + "@renku_data_value": "renku.infrastructure.gateway.database_gateway.dump_activity" + }, + "element", + { + "@renku_data_type": "zope.interface.interface.Attribute", + "@renku_data_value": { + "_Element__tagged_values": null, + "__doc__": "the upstream activities", + "__name__": "upstream", + "interface": { + "@renku_data_type": "type", + "@renku_data_value": "renku.infrastructure.gateway.database_gateway.IActivityDownstreamRelation" + } + } + }, + "interface", + { + "@renku_data_type": "type", + "@renku_data_value": "renku.infrastructure.gateway.database_gateway.IActivityDownstreamRelation" + }, + "intersection", + { + "@renku_data_type": "function", + "@renku_data_value": "BTrees._OOBTree.intersection" + }, + "load", + { + "@renku_data_type": "function", + "@renku_data_value": "renku.infrastructure.gateway.database_gateway.load_activity" + }, + "multiple", + false, + "multiunion", + null, + "name", + "upstream", + "union", + { + "@renku_data_type": "function", + "@renku_data_value": "BTrees._OOBTree.union" + } + ] + } + ] + }, + "@renku_oid": "296522fff8334ccea75df004fe8f6f16e5eb4fcec86d472fb0125e0e64e74b27" +} \ No newline at end of file diff --git a/.renku/metadata/2b/c0/2bc05a48d8e44804a213300448a61aae97bddda37de545e482247185ae3f5112 b/.renku/metadata/2b/c0/2bc05a48d8e44804a213300448a61aae97bddda37de545e482247185ae3f5112 new file mode 100644 index 0000000..39fd6fa Binary files /dev/null and b/.renku/metadata/2b/c0/2bc05a48d8e44804a213300448a61aae97bddda37de545e482247185ae3f5112 differ diff --git a/.renku/metadata/2c/b2/2cb2c8268a634f6fa537e91e0b9402845d9cabf174af4389aa2e418109c185a7 b/.renku/metadata/2c/b2/2cb2c8268a634f6fa537e91e0b9402845d9cabf174af4389aa2e418109c185a7 new file mode 100644 index 0000000..8ce51aa Binary files /dev/null and b/.renku/metadata/2c/b2/2cb2c8268a634f6fa537e91e0b9402845d9cabf174af4389aa2e418109c185a7 differ diff --git a/.renku/metadata/42/d5/42d57208aec14ad593e4c88ca96798263ac9133e78a54aa49a857b1ef68322ed b/.renku/metadata/42/d5/42d57208aec14ad593e4c88ca96798263ac9133e78a54aa49a857b1ef68322ed new file mode 100644 index 0000000..3c49ce3 Binary files /dev/null and b/.renku/metadata/42/d5/42d57208aec14ad593e4c88ca96798263ac9133e78a54aa49a857b1ef68322ed differ diff --git a/.renku/metadata/43/79/437974a24f284fba8c463258f768218d2ac86a5b99aa4537a85acec9b4905906 b/.renku/metadata/43/79/437974a24f284fba8c463258f768218d2ac86a5b99aa4537a85acec9b4905906 new file mode 100644 index 0000000..d4b5c58 --- /dev/null +++ b/.renku/metadata/43/79/437974a24f284fba8c463258f768218d2ac86a5b99aa4537a85acec9b4905906 @@ -0,0 +1,87 @@ +{ + "@renku_data_type": "BTrees.OOBTree.OOBucket", + "@renku_data_value": { + "@renku_data_type": "builtins.tuple", + "@renku_data_value": [ + { + "@renku_data_type": "builtins.tuple", + "@renku_data_value": [ + "BTree", + { + "@renku_data_type": "type", + "@renku_data_value": "BTrees.OOBTree.OOBTree" + }, + "Bucket", + { + "@renku_data_type": "type", + "@renku_data_value": "BTrees.OOBTree.OOBucket" + }, + "Set", + { + "@renku_data_type": "type", + "@renku_data_value": "BTrees.OOBTree.OOSet" + }, + "TreeSet", + { + "@renku_data_type": "type", + "@renku_data_value": "BTrees.OOBTree.OOTreeSet" + }, + "attrname", + "upstream", + "call", + false, + "difference", + { + "@renku_data_type": "function", + "@renku_data_value": "BTrees._OOBTree.difference" + }, + "dump", + { + "@renku_data_type": "function", + "@renku_data_value": "renku.infrastructure.gateway.database_gateway.dump_activity" + }, + "element", + { + "@renku_data_type": "zope.interface.interface.Attribute", + "@renku_data_value": { + "_Element__tagged_values": null, + "__doc__": "the upstream activities", + "__name__": "upstream", + "interface": { + "@renku_data_type": "type", + "@renku_data_value": "renku.infrastructure.gateway.database_gateway.IActivityDownstreamRelation" + } + } + }, + "interface", + { + "@renku_data_type": "type", + "@renku_data_value": "renku.infrastructure.gateway.database_gateway.IActivityDownstreamRelation" + }, + "intersection", + { + "@renku_data_type": "function", + "@renku_data_value": "BTrees._OOBTree.intersection" + }, + "load", + { + "@renku_data_type": "function", + "@renku_data_value": "renku.infrastructure.gateway.database_gateway.load_activity" + }, + "multiple", + false, + "multiunion", + null, + "name", + "upstream", + "union", + { + "@renku_data_type": "function", + "@renku_data_value": "BTrees._OOBTree.union" + } + ] + } + ] + }, + "@renku_oid": "437974a24f284fba8c463258f768218d2ac86a5b99aa4537a85acec9b4905906" +} \ No newline at end of file diff --git a/.renku/metadata/45/7c/457cec4a297b4280824923e332aeb4ffc95f7fcf1dfb4708872fc2f79c7ae294 b/.renku/metadata/45/7c/457cec4a297b4280824923e332aeb4ffc95f7fcf1dfb4708872fc2f79c7ae294 new file mode 100644 index 0000000..968fa85 --- /dev/null +++ b/.renku/metadata/45/7c/457cec4a297b4280824923e332aeb4ffc95f7fcf1dfb4708872fc2f79c7ae294 @@ -0,0 +1,87 @@ +{ + "@renku_data_type": "BTrees.OOBTree.OOBucket", + "@renku_data_value": { + "@renku_data_type": "builtins.tuple", + "@renku_data_value": [ + { + "@renku_data_type": "builtins.tuple", + "@renku_data_value": [ + "BTree", + { + "@renku_data_type": "type", + "@renku_data_value": "BTrees.OOBTree.OOBTree" + }, + "Bucket", + { + "@renku_data_type": "type", + "@renku_data_value": "BTrees.OOBTree.OOBucket" + }, + "Set", + { + "@renku_data_type": "type", + "@renku_data_value": "BTrees.OOBTree.OOSet" + }, + "TreeSet", + { + "@renku_data_type": "type", + "@renku_data_value": "BTrees.OOBTree.OOTreeSet" + }, + "attrname", + "downstream", + "call", + false, + "difference", + { + "@renku_data_type": "function", + "@renku_data_value": "BTrees._OOBTree.difference" + }, + "dump", + { + "@renku_data_type": "function", + "@renku_data_value": "renku.infrastructure.gateway.database_gateway.dump_activity" + }, + "element", + { + "@renku_data_type": "zope.interface.interface.Attribute", + "@renku_data_value": { + "_Element__tagged_values": null, + "__doc__": "the downstream activities", + "__name__": "downstream", + "interface": { + "@renku_data_type": "type", + "@renku_data_value": "renku.infrastructure.gateway.database_gateway.IActivityDownstreamRelation" + } + } + }, + "interface", + { + "@renku_data_type": "type", + "@renku_data_value": "renku.infrastructure.gateway.database_gateway.IActivityDownstreamRelation" + }, + "intersection", + { + "@renku_data_type": "function", + "@renku_data_value": "BTrees._OOBTree.intersection" + }, + "load", + { + "@renku_data_type": "function", + "@renku_data_value": "renku.infrastructure.gateway.database_gateway.load_activity" + }, + "multiple", + false, + "multiunion", + null, + "name", + "downstream", + "union", + { + "@renku_data_type": "function", + "@renku_data_value": "BTrees._OOBTree.union" + } + ] + } + ] + }, + "@renku_oid": "457cec4a297b4280824923e332aeb4ffc95f7fcf1dfb4708872fc2f79c7ae294" +} \ No newline at end of file diff --git a/.renku/metadata/7c/5d/7c5d83537fee4cc486f700c83d9ebad6254887cf7b654cae91044b4ba511b22b b/.renku/metadata/7c/5d/7c5d83537fee4cc486f700c83d9ebad6254887cf7b654cae91044b4ba511b22b new file mode 100644 index 0000000..d7d3681 Binary files /dev/null and b/.renku/metadata/7c/5d/7c5d83537fee4cc486f700c83d9ebad6254887cf7b654cae91044b4ba511b22b differ diff --git a/.renku/metadata/85/8d/858d7628fe5a438bbf51e336cb18f7421ef51da8e4774338aaa970e2037bb1ea b/.renku/metadata/85/8d/858d7628fe5a438bbf51e336cb18f7421ef51da8e4774338aaa970e2037bb1ea new file mode 100644 index 0000000..0c3a21f Binary files /dev/null and b/.renku/metadata/85/8d/858d7628fe5a438bbf51e336cb18f7421ef51da8e4774338aaa970e2037bb1ea differ diff --git a/.renku/metadata/92/f6/92f6be8c8aae49c6b2c48dc8a414519f565c56a2c53a4a86beae76ab620dcc03 b/.renku/metadata/92/f6/92f6be8c8aae49c6b2c48dc8a414519f565c56a2c53a4a86beae76ab620dcc03 new file mode 100644 index 0000000..9e6ab55 --- /dev/null +++ b/.renku/metadata/92/f6/92f6be8c8aae49c6b2c48dc8a414519f565c56a2c53a4a86beae76ab620dcc03 @@ -0,0 +1,26 @@ +{ + "@renku_data_type": "BTrees.OOBTree.OOBucket", + "@renku_data_value": { + "@renku_data_type": "builtins.tuple", + "@renku_data_value": [ + { + "@renku_data_type": "builtins.tuple", + "@renku_data_value": [ + "downstream", + { + "@renku_data_type": "BTrees.OOBTree.OOBucket", + "@renku_oid": "457cec4a297b4280824923e332aeb4ffc95f7fcf1dfb4708872fc2f79c7ae294", + "@renku_reference": true + }, + "upstream", + { + "@renku_data_type": "BTrees.OOBTree.OOBucket", + "@renku_oid": "437974a24f284fba8c463258f768218d2ac86a5b99aa4537a85acec9b4905906", + "@renku_reference": true + } + ] + } + ] + }, + "@renku_oid": "92f6be8c8aae49c6b2c48dc8a414519f565c56a2c53a4a86beae76ab620dcc03" +} \ No newline at end of file diff --git a/.renku/metadata/9e/10/9e10d562c1ba4355b04ee58e3e296eb2a6e76e10664740a8aa070d93aed1435b b/.renku/metadata/9e/10/9e10d562c1ba4355b04ee58e3e296eb2a6e76e10664740a8aa070d93aed1435b new file mode 100644 index 0000000..4c185a4 --- /dev/null +++ b/.renku/metadata/9e/10/9e10d562c1ba4355b04ee58e3e296eb2a6e76e10664740a8aa070d93aed1435b @@ -0,0 +1,87 @@ +{ + "@renku_data_type": "BTrees.OOBTree.OOBucket", + "@renku_data_value": { + "@renku_data_type": "builtins.tuple", + "@renku_data_value": [ + { + "@renku_data_type": "builtins.tuple", + "@renku_data_value": [ + "BTree", + { + "@renku_data_type": "type", + "@renku_data_value": "BTrees.OOBTree.OOBTree" + }, + "Bucket", + { + "@renku_data_type": "type", + "@renku_data_value": "BTrees.OOBTree.OOBucket" + }, + "Set", + { + "@renku_data_type": "type", + "@renku_data_value": "BTrees.OOBTree.OOSet" + }, + "TreeSet", + { + "@renku_data_type": "type", + "@renku_data_value": "BTrees.OOBTree.OOTreeSet" + }, + "attrname", + "downstream", + "call", + false, + "difference", + { + "@renku_data_type": "function", + "@renku_data_value": "BTrees._OOBTree.difference" + }, + "dump", + { + "@renku_data_type": "function", + "@renku_data_value": "renku.infrastructure.gateway.database_gateway.dump_activity" + }, + "element", + { + "@renku_data_type": "zope.interface.interface.Attribute", + "@renku_data_value": { + "_Element__tagged_values": null, + "__doc__": "the downstream activities", + "__name__": "downstream", + "interface": { + "@renku_data_type": "type", + "@renku_data_value": "renku.infrastructure.gateway.database_gateway.IActivityDownstreamRelation" + } + } + }, + "interface", + { + "@renku_data_type": "type", + "@renku_data_value": "renku.infrastructure.gateway.database_gateway.IActivityDownstreamRelation" + }, + "intersection", + { + "@renku_data_type": "function", + "@renku_data_value": "BTrees._OOBTree.intersection" + }, + "load", + { + "@renku_data_type": "function", + "@renku_data_value": "renku.infrastructure.gateway.database_gateway.load_activity" + }, + "multiple", + false, + "multiunion", + null, + "name", + "downstream", + "union", + { + "@renku_data_type": "function", + "@renku_data_value": "BTrees._OOBTree.union" + } + ] + } + ] + }, + "@renku_oid": "9e10d562c1ba4355b04ee58e3e296eb2a6e76e10664740a8aa070d93aed1435b" +} \ No newline at end of file diff --git a/.renku/metadata/_downstream_relations b/.renku/metadata/_downstream_relations new file mode 100644 index 0000000..a20bf35 --- /dev/null +++ b/.renku/metadata/_downstream_relations @@ -0,0 +1,5 @@ +{ + "@renku_data_type": "renku.infrastructure.database.RenkuOOBTree", + "@renku_data_value": null, + "@renku_oid": "_downstream_relations" +} \ No newline at end of file diff --git a/.renku/metadata/activities b/.renku/metadata/activities new file mode 100644 index 0000000..7b586d3 --- /dev/null +++ b/.renku/metadata/activities @@ -0,0 +1,5 @@ +{ + "@renku_data_type": "renku.infrastructure.database.RenkuOOBTree", + "@renku_data_value": null, + "@renku_oid": "activities" +} \ No newline at end of file diff --git a/.renku/metadata/activities-by-generation b/.renku/metadata/activities-by-generation new file mode 100644 index 0000000..043c0c9 --- /dev/null +++ b/.renku/metadata/activities-by-generation @@ -0,0 +1,5 @@ +{ + "@renku_data_type": "renku.infrastructure.database.RenkuOOBTree", + "@renku_data_value": null, + "@renku_oid": "activities-by-generation" +} \ No newline at end of file diff --git a/.renku/metadata/activities-by-usage b/.renku/metadata/activities-by-usage new file mode 100644 index 0000000..28c643e --- /dev/null +++ b/.renku/metadata/activities-by-usage @@ -0,0 +1,5 @@ +{ + "@renku_data_type": "renku.infrastructure.database.RenkuOOBTree", + "@renku_data_value": null, + "@renku_oid": "activities-by-usage" +} \ No newline at end of file diff --git a/.renku/metadata/activity-catalog b/.renku/metadata/activity-catalog new file mode 100644 index 0000000..435335f --- /dev/null +++ b/.renku/metadata/activity-catalog @@ -0,0 +1,81 @@ +{ + "@renku_data_type": "zc.relation.catalog.Catalog", + "@renku_oid": "activity-catalog", + "_EMPTY_name_TO_relcount_relset": { + "@renku_data_type": "BTrees.OOBTree.OOBTree", + "@renku_oid": "858d7628fe5a438bbf51e336cb18f7421ef51da8e4774338aaa970e2037bb1ea", + "@renku_reference": true + }, + "_attrs": { + "@renku_data_type": "BTrees.OOBTree.OOBucket", + "@renku_oid": "f05b6e08af204b8897ee70197bd9efd0ad51384135314fc2b9c274724c7afb78", + "@renku_reference": true + }, + "_name_TO_mapping": { + "@renku_data_type": "BTrees.OOBTree.OOBTree", + "@renku_oid": "e2338d3976674343b39f5108416f8b36fa2c27be05774ce4924f19a3502899e0", + "@renku_reference": true + }, + "_queryFactories": { + "@renku_data_type": "builtins.tuple", + "@renku_data_value": [ + { + "@renku_data_type": "zc.relation.queryfactory.TransposingTransitive", + "@renku_oid": "bbc23412ab474e23b4fbaef11ab07402f7f8497995114cef9e802be4ed698b19", + "@renku_reference": true + } + ] + }, + "_relLength": { + "@renku_data_type": "BTrees.Length.Length", + "@renku_data_value": 0 + }, + "_relTokens": { + "@renku_data_type": "BTrees.OOBTree.OOTreeSet", + "@renku_data_value": null + }, + "_relTools": { + "BTree": { + "@renku_data_type": "type", + "@renku_data_value": "BTrees.OOBTree.OOBTree" + }, + "Bucket": { + "@renku_data_type": "type", + "@renku_data_value": "BTrees.OOBTree.OOBucket" + }, + "Set": { + "@renku_data_type": "type", + "@renku_data_value": "BTrees.OOBTree.OOSet" + }, + "TreeSet": { + "@renku_data_type": "type", + "@renku_data_value": "BTrees.OOBTree.OOTreeSet" + }, + "difference": { + "@renku_data_type": "function", + "@renku_data_value": "BTrees._OOBTree.difference" + }, + "dump": { + "@renku_data_type": "function", + "@renku_data_value": "renku.infrastructure.gateway.database_gateway.dump_downstream_relations" + }, + "intersection": { + "@renku_data_type": "function", + "@renku_data_value": "BTrees._OOBTree.intersection" + }, + "load": { + "@renku_data_type": "function", + "@renku_data_value": "renku.infrastructure.gateway.database_gateway.load_downstream_relations" + }, + "multiunion": null, + "union": { + "@renku_data_type": "function", + "@renku_data_value": "BTrees._OOBTree.union" + } + }, + "_reltoken_name_TO_objtokenset": { + "@renku_data_type": "BTrees.OOBTree.OOBTree", + "@renku_oid": "df86305035964e66a883a2755e164dfe851bfcc8a10c4320968ac3e828213bf0", + "@renku_reference": true + } +} \ No newline at end of file diff --git a/.renku/metadata/activity-collections b/.renku/metadata/activity-collections new file mode 100644 index 0000000..859fb39 --- /dev/null +++ b/.renku/metadata/activity-collections @@ -0,0 +1,5 @@ +{ + "@renku_data_type": "renku.infrastructure.database.RenkuOOBTree", + "@renku_data_value": null, + "@renku_oid": "activity-collections" +} \ No newline at end of file diff --git a/.renku/metadata/bb/c2/bbc23412ab474e23b4fbaef11ab07402f7f8497995114cef9e802be4ed698b19 b/.renku/metadata/bb/c2/bbc23412ab474e23b4fbaef11ab07402f7f8497995114cef9e802be4ed698b19 new file mode 100644 index 0000000..b8e69d7 Binary files /dev/null and b/.renku/metadata/bb/c2/bbc23412ab474e23b4fbaef11ab07402f7f8497995114cef9e802be4ed698b19 differ diff --git a/.renku/metadata/datasets b/.renku/metadata/datasets new file mode 100644 index 0000000..899ccc1 --- /dev/null +++ b/.renku/metadata/datasets @@ -0,0 +1,5 @@ +{ + "@renku_data_type": "renku.infrastructure.database.RenkuOOBTree", + "@renku_data_value": null, + "@renku_oid": "datasets" +} \ No newline at end of file diff --git a/.renku/metadata/datasets-provenance-tails b/.renku/metadata/datasets-provenance-tails new file mode 100644 index 0000000..82df40b --- /dev/null +++ b/.renku/metadata/datasets-provenance-tails @@ -0,0 +1,5 @@ +{ + "@renku_data_type": "renku.infrastructure.database.RenkuOOBTree", + "@renku_data_value": null, + "@renku_oid": "datasets-provenance-tails" +} \ No newline at end of file diff --git a/.renku/metadata/datasets-tags b/.renku/metadata/datasets-tags new file mode 100644 index 0000000..43a7a93 --- /dev/null +++ b/.renku/metadata/datasets-tags @@ -0,0 +1,5 @@ +{ + "@renku_data_type": "renku.infrastructure.database.RenkuOOBTree", + "@renku_data_value": null, + "@renku_oid": "datasets-tags" +} \ No newline at end of file diff --git a/.renku/metadata/dc/14/dc14052c8cf14166bd2f764d8ed7b37c0acfa16c673d4c7c8f01ee131eea8aac b/.renku/metadata/dc/14/dc14052c8cf14166bd2f764d8ed7b37c0acfa16c673d4c7c8f01ee131eea8aac new file mode 100644 index 0000000..1914e9f Binary files /dev/null and b/.renku/metadata/dc/14/dc14052c8cf14166bd2f764d8ed7b37c0acfa16c673d4c7c8f01ee131eea8aac differ diff --git a/.renku/metadata/df/86/df86305035964e66a883a2755e164dfe851bfcc8a10c4320968ac3e828213bf0 b/.renku/metadata/df/86/df86305035964e66a883a2755e164dfe851bfcc8a10c4320968ac3e828213bf0 new file mode 100644 index 0000000..8b5a6d4 Binary files /dev/null and b/.renku/metadata/df/86/df86305035964e66a883a2755e164dfe851bfcc8a10c4320968ac3e828213bf0 differ diff --git a/.renku/metadata/e2/33/e2338d3976674343b39f5108416f8b36fa2c27be05774ce4924f19a3502899e0 b/.renku/metadata/e2/33/e2338d3976674343b39f5108416f8b36fa2c27be05774ce4924f19a3502899e0 new file mode 100644 index 0000000..76b77fd Binary files /dev/null and b/.renku/metadata/e2/33/e2338d3976674343b39f5108416f8b36fa2c27be05774ce4924f19a3502899e0 differ diff --git a/.renku/metadata/e6/f7/e6f7155dada34c5a8b2aec8f050042d507a6821f7c3a4623b481664fd89df69a b/.renku/metadata/e6/f7/e6f7155dada34c5a8b2aec8f050042d507a6821f7c3a4623b481664fd89df69a new file mode 100644 index 0000000..97b1880 Binary files /dev/null and b/.renku/metadata/e6/f7/e6f7155dada34c5a8b2aec8f050042d507a6821f7c3a4623b481664fd89df69a differ diff --git a/.renku/metadata/f0/5b/f05b6e08af204b8897ee70197bd9efd0ad51384135314fc2b9c274724c7afb78 b/.renku/metadata/f0/5b/f05b6e08af204b8897ee70197bd9efd0ad51384135314fc2b9c274724c7afb78 new file mode 100644 index 0000000..3e4ea63 --- /dev/null +++ b/.renku/metadata/f0/5b/f05b6e08af204b8897ee70197bd9efd0ad51384135314fc2b9c274724c7afb78 @@ -0,0 +1,26 @@ +{ + "@renku_data_type": "BTrees.OOBTree.OOBucket", + "@renku_data_value": { + "@renku_data_type": "builtins.tuple", + "@renku_data_value": [ + { + "@renku_data_type": "builtins.tuple", + "@renku_data_value": [ + "downstream", + { + "@renku_data_type": "BTrees.OOBTree.OOBucket", + "@renku_oid": "9e10d562c1ba4355b04ee58e3e296eb2a6e76e10664740a8aa070d93aed1435b", + "@renku_reference": true + }, + "upstream", + { + "@renku_data_type": "BTrees.OOBTree.OOBucket", + "@renku_oid": "296522fff8334ccea75df004fe8f6f16e5eb4fcec86d472fb0125e0e64e74b27", + "@renku_reference": true + } + ] + } + ] + }, + "@renku_oid": "f05b6e08af204b8897ee70197bd9efd0ad51384135314fc2b9c274724c7afb78" +} \ No newline at end of file diff --git a/.renku/metadata/plans b/.renku/metadata/plans new file mode 100644 index 0000000..70139ac --- /dev/null +++ b/.renku/metadata/plans @@ -0,0 +1,5 @@ +{ + "@renku_data_type": "renku.infrastructure.database.RenkuOOBTree", + "@renku_data_value": null, + "@renku_oid": "plans" +} \ No newline at end of file diff --git a/.renku/metadata/plans-by-name b/.renku/metadata/plans-by-name new file mode 100644 index 0000000..ac5de8d --- /dev/null +++ b/.renku/metadata/plans-by-name @@ -0,0 +1,5 @@ +{ + "@renku_data_type": "renku.infrastructure.database.RenkuOOBTree", + "@renku_data_value": null, + "@renku_oid": "plans-by-name" +} \ No newline at end of file diff --git a/.renku/metadata/project b/.renku/metadata/project new file mode 100644 index 0000000..f4087e1 --- /dev/null +++ b/.renku/metadata/project @@ -0,0 +1,39 @@ +{ + "@renku_data_type": "renku.domain_model.project.Project", + "@renku_oid": "project", + "agent_version": "2.9.4", + "annotations": [], + "creator": { + "@renku_data_type": "renku.domain_model.provenance.agent.Person", + "@renku_data_value": { + "affiliation": null, + "alternate_name": null, + "email": "juan.florez-ospina@psi.ch", + "id": "mailto:juan.florez-ospina@psi.ch", + "name": "Juan Felipe Florez Ospina" + } + }, + "date_created": { + "@renku_data_type": "datetime.datetime", + "@renku_data_value": "2025-06-04T14:52:46.207682+02:00" + }, + "description": null, + "id": "/projects/apog/acsmnode", + "image": null, + "keywords": [], + "minimum_renku_version": "2.8.0", + "name": "acsmnode", + "template_metadata": { + "@renku_data_type": "renku.domain_model.project.ProjectTemplateMetadata", + "@renku_data_value": { + "immutable_template_files": [], + "metadata": "{\"__template_source__\": \"renku\", \"__template_ref__\": \"0.7.1\", \"__template_id__\": \"python-minimal\", \"__namespace__\": \"apog\", \"__sanitized_project_name__\": \"\", \"__repository__\": \"\", \"__project_slug__\": \"\", \"__project_description__\": null, \"__renku_version__\": \"2.9.4\", \"__name__\": \"acsmnode\", \"name\": \"acsmnode\", \"__template_version__\": \"0.7.1\", \"__automated_update__\": true}", + "ssh_supported": true, + "template_id": "python-minimal", + "template_ref": "0.7.1", + "template_source": "renku", + "template_version": "0.7.1" + } + }, + "version": 10 +} \ No newline at end of file diff --git a/.renku/metadata/root b/.renku/metadata/root new file mode 100644 index 0000000..ac7255c --- /dev/null +++ b/.renku/metadata/root @@ -0,0 +1,152 @@ +{ + "@renku_data_type": "renku.infrastructure.database.RenkuOOBTree", + "@renku_data_value": { + "@renku_data_type": "builtins.tuple", + "@renku_data_value": [ + { + "@renku_data_type": "builtins.tuple", + "@renku_data_value": [ + { + "@renku_data_type": "builtins.tuple", + "@renku_data_value": [ + { + "@renku_data_type": "builtins.tuple", + "@renku_data_value": [ + "_downstream_relations", + { + "@renku_data_type": "renku.infrastructure.database.RenkuOOBTree", + "@renku_oid": "_downstream_relations", + "@renku_reference": true + }, + "activities", + { + "@renku_data_type": "renku.infrastructure.database.Index", + "@renku_oid": "activities-index", + "attribute": "id", + "entries": { + "@renku_data_type": "renku.infrastructure.database.RenkuOOBTree", + "@renku_oid": "activities", + "@renku_reference": true + }, + "key_type": null, + "name": "activities", + "object_type": "renku.domain_model.provenance.activity.Activity" + }, + "activities-by-generation", + { + "@renku_data_type": "renku.infrastructure.database.RenkuOOBTree", + "@renku_oid": "activities-by-generation", + "@renku_reference": true + }, + "activities-by-usage", + { + "@renku_data_type": "renku.infrastructure.database.RenkuOOBTree", + "@renku_oid": "activities-by-usage", + "@renku_reference": true + }, + "activity-catalog", + { + "@renku_data_type": "zc.relation.catalog.Catalog", + "@renku_oid": "activity-catalog", + "@renku_reference": true + }, + "activity-collections", + { + "@renku_data_type": "renku.infrastructure.database.Index", + "@renku_oid": "activity-collections-index", + "attribute": "id", + "entries": { + "@renku_data_type": "renku.infrastructure.database.RenkuOOBTree", + "@renku_oid": "activity-collections", + "@renku_reference": true + }, + "key_type": null, + "name": "activity-collections", + "object_type": "renku.domain_model.provenance.activity.ActivityCollection" + }, + "datasets", + { + "@renku_data_type": "renku.infrastructure.database.Index", + "@renku_oid": "datasets-index", + "attribute": "name", + "entries": { + "@renku_data_type": "renku.infrastructure.database.RenkuOOBTree", + "@renku_oid": "datasets", + "@renku_reference": true + }, + "key_type": null, + "name": "datasets", + "object_type": "renku.domain_model.dataset.Dataset" + }, + "datasets-provenance-tails", + { + "@renku_data_type": "renku.infrastructure.database.Index", + "@renku_oid": "datasets-provenance-tails-index", + "attribute": "id", + "entries": { + "@renku_data_type": "renku.infrastructure.database.RenkuOOBTree", + "@renku_oid": "datasets-provenance-tails", + "@renku_reference": true + }, + "key_type": null, + "name": "datasets-provenance-tails", + "object_type": "renku.domain_model.dataset.Dataset" + }, + "datasets-tags", + { + "@renku_data_type": "renku.infrastructure.database.Index", + "@renku_oid": "datasets-tags-index", + "attribute": null, + "entries": { + "@renku_data_type": "renku.infrastructure.database.RenkuOOBTree", + "@renku_oid": "datasets-tags", + "@renku_reference": true + }, + "key_type": null, + "name": "datasets-tags", + "object_type": "persistent.list.PersistentList" + }, + "plans", + { + "@renku_data_type": "renku.infrastructure.database.Index", + "@renku_oid": "plans-index", + "attribute": "id", + "entries": { + "@renku_data_type": "renku.infrastructure.database.RenkuOOBTree", + "@renku_oid": "plans", + "@renku_reference": true + }, + "key_type": null, + "name": "plans", + "object_type": "renku.domain_model.workflow.plan.AbstractPlan" + }, + "plans-by-name", + { + "@renku_data_type": "renku.infrastructure.database.Index", + "@renku_oid": "plans-by-name-index", + "attribute": "name", + "entries": { + "@renku_data_type": "renku.infrastructure.database.RenkuOOBTree", + "@renku_oid": "plans-by-name", + "@renku_reference": true + }, + "key_type": null, + "name": "plans-by-name", + "object_type": "renku.domain_model.workflow.plan.AbstractPlan" + }, + "project", + { + "@renku_data_type": "renku.domain_model.project.Project", + "@renku_oid": "project", + "@renku_reference": true + } + ] + } + ] + } + ] + } + ] + }, + "@renku_oid": "root" +} \ No newline at end of file diff --git a/.renku/renku.ini b/.renku/renku.ini new file mode 100644 index 0000000..1659a57 --- /dev/null +++ b/.renku/renku.ini @@ -0,0 +1,2 @@ +[interactive] +default_url = /lab diff --git a/.renku/template_checksums.json b/.renku/template_checksums.json new file mode 100644 index 0000000..2e95c76 --- /dev/null +++ b/.renku/template_checksums.json @@ -0,0 +1 @@ +{".gitlab-ci.yml": "c55bc2b275655014ea91b5cc651384965b166b546843bda85215233a6e091090", "environment.yml": "e81e9a061f19645b9a0e8e353982289338ec158a72534456917ddae832794911", ".renkulfsignore": "b418745d4f9f40d3b05b88c305041316b8c3e9fc6af877a21a37ccc6b43d6d66", "Dockerfile": "b48ea1420ad1931a8f0ecc25aece8f70d7519a5b0fb151adcd67998ef6de61ad", ".gitignore": "7a908bfd4db867f62fa279c53311f117ca4a567feef463203f85b62d8d0b140c", ".dockerignore": "abc0b37932c96cf447b2930bcb2455fac0be146ee9cf1d447f8aef537a531c41", "requirements.txt": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "README.md": "8a06667b08b3f69a240508c7c038160b9890f384f0d0accf5414d7d8d3416264", "data/.gitkeep": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "notebooks/.gitkeep": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", ".renku/renku.ini": "5490dcea1aa22839b454ac51d66a1195fd30af11a08e2399cf082d3496bb21e4", "workflows/my-workflow.yaml": "2ef60829869b81bc8f7dcd64ee2140e461af6330591516c2526e801c99554f20"} \ No newline at end of file diff --git a/.renkulfsignore b/.renkulfsignore new file mode 100644 index 0000000..bc48ea5 --- /dev/null +++ b/.renkulfsignore @@ -0,0 +1,22 @@ +# WARNING: editing this file will impact the behavior of renku commands +# by telling renku to *not track* listed files with git LFS. +# +# By default, renku commands track all files above the renku configured lfs_threshold +# with git LFS to prevent accidentally checking in large files (default=100kb). +# You can update this threshold by calling 'renku config lfs_threshold kb'. +# +# Use this file to specify particular paths to *not track* with LFS regardless of +# their size. The syntax is the same as .gitignore (https://git-scm.com/docs/gitignore). +# Remember: files listed here, when generated during renku commands, will add to +# the size of your repo, and could slow things down. +# +# See https://github.com/SwissDataScienceCenter/renku-project-template for proper +# usage. + +# Warning: removing these lines will check source files (e.g. generated ipynb files from papermill) into LFS and they +# will no longer be displayed in the renku UI +*.ipynb +*.py +*.r +*.md +*.rst diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..86d702e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,52 @@ +######################################################## +# Renku install section - do not edit # + +FROM renku/renkulab-py:3.10-0.18.1 as builder + +# RENKU_VERSION determines the version of the renku CLI +# that will be used in this image. To find the latest version, +# visit https://pypi.org/project/renku/#history. +ARG RENKU_VERSION=2.9.4 + +# Install renku from pypi or from github if a dev version +RUN if [ -n "$RENKU_VERSION" ] ; then \ + source .renku/venv/bin/activate ; \ + currentversion=$(renku --version) ; \ + if [ "$RENKU_VERSION" != "$currentversion" ] ; then \ + pip uninstall renku -y ; \ + gitversion=$(echo "$RENKU_VERSION" | sed -n "s/^[[:digit:]]\+\.[[:digit:]]\+\.[[:digit:]]\+\(rc[[:digit:]]\+\)*\(\.dev[[:digit:]]\+\)*\(+g\([a-f0-9]\+\)\)*\(+dirty\)*$/\4/p") ; \ + if [ -n "$gitversion" ] ; then \ + pip install --no-cache-dir --force "git+https://github.com/SwissDataScienceCenter/renku-python.git@$gitversion" ;\ + else \ + pip install --no-cache-dir --force renku==${RENKU_VERSION} ;\ + fi \ + fi \ + fi +# End Renku install section # +######################################################## + +FROM renku/renkulab-py:3.10-0.18.1 + +# Uncomment and adapt if code is to be included in the image +# COPY src /code/src + +# Uncomment and adapt if your R or python packages require extra linux (ubuntu) software +# e.g. the following installs apt-utils and vim; each pkg on its own line, all lines +# except for the last end with backslash '\' to continue the RUN line +# +# USER root +# RUN apt-get update && \ +# apt-get install -y --no-install-recommends \ +# apt-utils \ +# vim +# USER ${NB_USER} + +# install the python dependencies +COPY requirements.txt environment.yml /tmp/ +RUN mamba env update -q -f /tmp/environment.yml && \ + /opt/conda/bin/pip install -r /tmp/requirements.txt --no-cache-dir && \ + mamba clean -y --all && \ + mamba env export -n "root" && \ + rm -rf ${HOME}/.renku/venv + +COPY --from=builder ${HOME}/.renku/venv ${HOME}/.renku/venv diff --git a/environment.yml b/environment.yml new file mode 100644 index 0000000..ce0771c --- /dev/null +++ b/environment.yml @@ -0,0 +1,14 @@ +name: "base" +# WARNING : As Renku makes use of mamba for more efficient package builds, please use the popular "conda-forge" channel +# For more details : https://mamba.readthedocs.io/en/latest/user_guide/troubleshooting.html#mixing-the-defaults-and-conda-forge-channels +# Using the defaults channel from Anaconda can easily result in getting your +# laptop, CI pipeline, etc. blacklisted by Anaconda which makes building packages +# impossible. To get permission to use Anaconda again you need to either pay or prove that +# you meet the requirements for a free license. Using the conda-forge channel avoids +# these restrictions completely. +channels: + - conda-forge +# dependencies: +# - add packages here +# - one per line +prefix: "/opt/conda" diff --git a/notebooks/.gitkeep b/notebooks/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/requirements.txt b/requirements.txt index 205321f..e69de29 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,10 +0,0 @@ -dash==2.17.1 -dash-bootstrap-components==1.6.0 -flask==3.0.3 -h5py==3.10.0 -matplotlib==3.8.4 -numpy==1.26.4 -openai==1.25.1 -pandas==2.2.2 -plotly==5.18.0 -requests==2.31.0 diff --git a/workflows/my-workflow.yaml b/workflows/my-workflow.yaml new file mode 100644 index 0000000..8eac388 --- /dev/null +++ b/workflows/my-workflow.yaml @@ -0,0 +1,37 @@ +# === Welcome to the template Renku Workflow file! === +# You can use this file to encode in what order your data processing steps should be run, +# making it easier for you to run your workflow, and for others to understand it! + +# === How to use this template === +# Replace the script and data paths in the template below to match your analysis commands. +# Then, run `renku run my-workflow.yaml` in a terminal to execute the workflow! +# If you are working in a notebook, run `! renku run my-workflow.yaml` in a notebook cell. + +# === Docs === +# To learn much more about what you can do with the Renku Workflow File, see our docs: +# https://renku.readthedocs.io/en/stable/topic-guides/workflows/workflow-file.html + +name: my-workflow +steps: + step-one: + command: python $n $my-script $input-data $output-data + inputs: + - my-script: + path: src/script.py + - input-data: + path: data/input/sample_data.csv + outputs: + - output-data: + path: data/output/results.csv + parameters: + - n: + prefix: -n + value: 10 + + # === Adding more steps === + # You can add as many steps as you want to your workflow by copy and pasting the step template above + # TIP: To run just one step from a workflow, simply add the step name to the command, like this: + # `renku run my-workflow.yaml make-plot` + # make-plot: + # command: python $another-script $output-data $my-plot + # ...