-
Notifications
You must be signed in to change notification settings - Fork 38
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #91 from datajoint/dev
Update tutorial and codespace
- Loading branch information
Showing
22 changed files
with
3,828 additions
and
48 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
FROM python:3.9-slim@sha256:5f0192a4f58a6ce99f732fe05e3b3d00f12ae62e183886bca3ebe3d202686c7f | ||
|
||
ENV PATH /usr/local/bin:$PATH | ||
ENV PYTHON_VERSION 3.9.17 | ||
|
||
RUN \ | ||
adduser --system --disabled-password --shell /bin/bash vscode && \ | ||
# install docker | ||
apt-get update && \ | ||
apt-get install ca-certificates curl gnupg lsb-release -y && \ | ||
mkdir -m 0755 -p /etc/apt/keyrings && \ | ||
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg && \ | ||
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null && \ | ||
apt-get update && \ | ||
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y && \ | ||
usermod -aG docker vscode && \ | ||
apt-get clean | ||
|
||
RUN \ | ||
# dev setup | ||
apt update && \ | ||
apt-get install sudo git bash-completion graphviz default-mysql-client s3fs procps -y && \ | ||
usermod -aG sudo vscode && \ | ||
echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers && \ | ||
pip install --no-cache-dir --upgrade black pip nbconvert && \ | ||
echo '. /etc/bash_completion' >> /home/vscode/.bashrc && \ | ||
echo 'export PS1="\[\e[32;1m\]\u\[\e[m\]@\[\e[34;1m\]\H\[\e[m\]:\[\e[33;1m\]\w\[\e[m\]$ "' >> /home/vscode/.bashrc && \ | ||
apt-get clean | ||
|
||
COPY ./ /tmp/element-deeplabcut/ | ||
|
||
RUN \ | ||
# pipeline dependencies | ||
apt-get update && \ | ||
apt-get install -y gcc ffmpeg graphviz && \ | ||
pip install --no-cache-dir -e /tmp/element-deeplabcut[elements,dlc_default] && \ | ||
# clean up | ||
rm -rf /tmp/element-deeplabcut/ && \ | ||
apt-get clean | ||
|
||
ENV DJ_HOST fakeservices.datajoint.io | ||
ENV DJ_USER root | ||
ENV DJ_PASS simple | ||
|
||
ENV DATA_MOUNTPOINT /workspaces/element-deeplabcut/example_data | ||
ENV DLC_ROOT_DATA_DIR $DATA_MOUNTPOINT/inbox | ||
ENV DLC_PROCESSED_DATA_DIR $DATA_MOUNTPOINT/outbox | ||
ENV DATABASE_PREFIX neuro_ | ||
|
||
USER vscode | ||
CMD bash -c "sudo rm /var/run/docker.pid; sudo dockerd" | ||
|
||
ENV LD_LIBRARY_PATH="/lib:/opt/conda/lib" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
{ | ||
"name": "Environment + Data", | ||
"dockerComposeFile": "docker-compose.yaml", | ||
"service": "app", | ||
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}", | ||
"remoteEnv": { | ||
"LOCAL_WORKSPACE_FOLDER": "${localWorkspaceFolder}" | ||
}, | ||
"onCreateCommand": "mkdir -p ${DATA_MOUNTPOINT} && pip install -e .", | ||
"postStartCommand": "docker volume prune -f && s3fs ${DJ_PUBLIC_S3_LOCATION} ${DATA_MOUNTPOINT} -o nonempty,multipart_size=530,endpoint=us-east-1,url=http://s3.amazonaws.com,public_bucket=1", | ||
"hostRequirements": { | ||
"cpus": 4, | ||
"memory": "8gb", | ||
"storage": "32gb" | ||
}, | ||
"forwardPorts": [ | ||
3306 | ||
], | ||
"customizations": { | ||
"settings": { | ||
"python.pythonPath": "/usr/local/bin/python" | ||
}, | ||
"vscode": { | ||
"extensions": [ | ||
"[email protected]", | ||
"[email protected]" | ||
] | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
version: "3" | ||
services: | ||
app: | ||
cpus: 4 | ||
mem_limit: 8g | ||
build: | ||
context: .. | ||
dockerfile: ./.devcontainer/Dockerfile | ||
#image: datajoint/element_deeplabcut:latest | ||
extra_hosts: | ||
- fakeservices.datajoint.io:127.0.0.1 | ||
environment: | ||
- DJ_PUBLIC_S3_LOCATION=djhub.vathes.datapub.elements:/workflow-dlc-data/v2 | ||
devices: | ||
- /dev/fuse | ||
cap_add: | ||
- SYS_ADMIN | ||
security_opt: | ||
- apparmor:unconfined | ||
volumes: | ||
- ..:/workspaces/element-deeplabcut:cached | ||
- docker_data:/var/lib/docker # persist docker images | ||
privileged: true # only because of dind | ||
volumes: | ||
docker_data: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
blank_issues_enabled: false | ||
contact_links: | ||
- name: DataJoint Contribution Guideline | ||
url: https://docs.datajoint.org/python/community/02-Contribute.html | ||
url: https://datajoint.com/docs/about/contribute/ | ||
about: Please make sure to review the DataJoint Contribution Guidelines |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
default_stages: [commit, push] | ||
exclude: (^.github/|^docs/|^images/|^notebooks/|^tests/) | ||
# Current tests/__init__ violates many flake8. Excluding pending change to conftest | ||
|
||
repos: | ||
- repo: https://github.com/pre-commit/pre-commit-hooks | ||
rev: v4.4.0 | ||
hooks: | ||
- id: trailing-whitespace | ||
- id: end-of-file-fixer | ||
- id: check-yaml | ||
- id: check-added-large-files # prevent giant files from being committed | ||
- id: requirements-txt-fixer | ||
- id: mixed-line-ending | ||
args: ["--fix=lf"] | ||
description: Forces to replace line ending by the UNIX 'lf' character. | ||
|
||
# black | ||
- repo: https://github.com/psf/black | ||
rev: 22.12.0 | ||
hooks: | ||
- id: black | ||
- id: black-jupyter | ||
args: | ||
- --line-length=88 | ||
|
||
# isort | ||
- repo: https://github.com/pycqa/isort | ||
rev: 5.12.0 | ||
hooks: | ||
- id: isort | ||
args: ["--profile", "black"] | ||
description: Sorts imports in an alphabetical order | ||
|
||
# flake8 | ||
- repo: https://github.com/pycqa/flake8 | ||
rev: 4.0.1 | ||
hooks: | ||
- id: flake8 | ||
args: # arguments to configure flake8 | ||
# making isort line length compatible with black | ||
- "--max-line-length=88" | ||
- "--max-complexity=18" | ||
- "--select=B,C,E,F,W,T4,B9" | ||
|
||
# these are errors that will be ignored by flake8 | ||
# https://www.flake8rules.com/rules/{code}.html | ||
- "--ignore=E203,E501,W503,W605,E402" | ||
# E203 - Colons should not have any space before them. | ||
# Needed for list indexing | ||
# E501 - Line lengths are recommended to be no greater than 79 characters. | ||
# Needed as we conform to 88 | ||
# W503 - Line breaks should occur after the binary operator. | ||
# Needed because not compatible with black | ||
# W605 - a backslash-character pair that is not a valid escape sequence now | ||
# generates a DeprecationWarning. This will eventually become a SyntaxError. | ||
# Needed because we use \d as an escape sequence | ||
# E402 - Place module level import at the top. | ||
# Needed to prevent circular import error |
Oops, something went wrong.