diff --git a/akantu-python/.dockerignore b/akantu-python/.dockerignore new file mode 100644 index 0000000..c1021cc --- /dev/null +++ b/akantu-python/.dockerignore @@ -0,0 +1,4 @@ +data +notebooks +.renku +.git diff --git a/akantu-python/.gitignore b/akantu-python/.gitignore new file mode 100644 index 0000000..41af29c --- /dev/null +++ b/akantu-python/.gitignore @@ -0,0 +1,338 @@ + +# 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/akantu-python/.gitlab-ci.yml b/akantu-python/.gitlab-ci.yml new file mode 100644 index 0000000..910df3b --- /dev/null +++ b/akantu-python/.gitlab-ci.yml @@ -0,0 +1,17 @@ +variables: + GIT_STRATEGY: fetch + GIT_SSL_NO_VERIFY: "true" + GIT_LFS_SKIP_SMUDGE: 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/akantu-python/.renku/renku.ini b/akantu-python/.renku/renku.ini new file mode 100644 index 0000000..5a3d87d --- /dev/null +++ b/akantu-python/.renku/renku.ini @@ -0,0 +1,2 @@ +[renku "interactive"] +default_url = /lab diff --git a/akantu-python/.renkulfsignore b/akantu-python/.renkulfsignore new file mode 100644 index 0000000..bc48ea5 --- /dev/null +++ b/akantu-python/.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/akantu-python/Dockerfile b/akantu-python/Dockerfile new file mode 100644 index 0000000..47a1c4d --- /dev/null +++ b/akantu-python/Dockerfile @@ -0,0 +1,50 @@ +# For finding latest versions of the base image see +# https://github.com/SwissDataScienceCenter/renkulab-docker +ARG RENKU_BASE_IMAGE=renku/renkulab-py:3.9-0.12.0 +FROM ${RENKU_BASE_IMAGE} + +# 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 conda env update -q -f /tmp/environment.yml && \ + /opt/conda/bin/pip install -r /tmp/requirements.txt && \ + conda clean -y --all && \ + conda env export -n "root" + +# 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={{ __renku_version__ | default("1.6.0") }} + +######################################################## +# Do not edit this section and do not add anything below + +# Install renku from pypi or from github if it's 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 --force "git+https://github.com/SwissDataScienceCenter/renku-python.git@$gitversion" ;\ + else \ + pip install --force renku==${RENKU_VERSION} ;\ + fi \ + fi \ + fi + +######################################################## diff --git a/akantu-python/README.md b/akantu-python/README.md new file mode 100644 index 0000000..9583ead --- /dev/null +++ b/akantu-python/README.md @@ -0,0 +1,40 @@ +# {{ name }} +{% if __project_description__ %} +{{ __project_description__ }} +{% endif %} +## Introduction + +This is a Renku project - basically a git repository with some +bells and whistles. You'll find we have already created some +useful things like `data` and `notebooks` directories and +a `Dockerfile`. + +## Working with the project + +The simplest way to start your project is right from the Renku +platform - just click on the `Sessions` tab and start a new session. +This will start an interactive environment right in your browser. + +To work with the project anywhere outside the Renku platform, +click the `Settings` tab where you will find the +git repo URLs - use `git` to clone the project on whichever machine you want. + +### Changing interactive environment dependencies + +Initially we install a very minimal set of packages to keep the images small. +However, you can add python and conda packages in `requirements.txt` and +`environment.yml` to your heart's content. If you need more fine-grained +control over your environment, please see [the documentation](https://renku.readthedocs.io/en/latest/user/advanced_interfaces.html#dockerfile-modifications). + +## Project configuration + +Project options can be found in `.renku/renku.ini`. In this +project there is currently only one option, which specifies +the default type of environment to open, in this case `/lab` for +JupyterLab. You may also choose `/tree` to get to the "classic" Jupyter +interface. + +## Moving forward + +Once you feel at home with your project, we recommend that you replace +this README file with your own project documentation! Happy data wrangling! diff --git a/akantu-python/data/.gitkeep b/akantu-python/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/akantu-python/notebooks/.gitkeep b/akantu-python/notebooks/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/akantu-python/requirements.txt b/akantu-python/requirements.txt new file mode 100644 index 0000000..5cc7ee8 --- /dev/null +++ b/akantu-python/requirements.txt @@ -0,0 +1,7 @@ +numpy +scipy +matplotlib +akantu +gmsh +itkwidgets +pyvista