This repository is a template for Arcana extensions that add DataStore and App classes for the Arcana framework for interacting with custom data management platforms.
After creating a new repository on GitHub from this template, there are a few things you will need to change:
- do a global search and replace (across all file-types) for changeme and replace it with the proposed name for your extension
- change the author and maintainer tags in the [project] Section of the the
pyproject.toml
to your name and email address - there are 4 classes within this template repository, which need to be either adopted and renamed (using global search and replace), or removed from the package
data.local.ExampleLocal
for data stored on the local file-system in a specific structure (e.g. BIDS)data.remote.ExampleRemote
for data stored in remote data repositories.deploy.app.ExampleApp
for specifying containerized apps that can be executed on data within the data storedeploy.command.ExampleCommand
for specifying how the command within the containerized app is executed and configured in the data store
- install a local development copy of the new extension package with
pip install -e .[dev,test]
from inside the code-repo directory (using a virtualenv is recommended) - install pre-commit in the development repo with
pre-commit install
- Implement the method stubs of your adopted classes
- Edit the
conftest.py
file to add test server location and credentials andinstall_and_launch_app
if implementingExampleApp
- Check your methods work by running the unittests with
pytest
from inside the code-repo directory. They are set to XFAIL (expected failure) by default so you can focus on implementing one of them at a time. - Change the address of the test action badge at the top of this file to point to your new repository and uncomment out the other badges
- Delete this text and above and uncomment the default contents of this README below, adding in any relevant information about the extension (checking the license is appropriate).
- Create a new release on GitHub to deploy your new package to PyPI
This work is licensed under a Creative Commons Attribution 4.0 International License