Skip to content

Latest commit

 

History

History
98 lines (73 loc) · 2.24 KB

File metadata and controls

98 lines (73 loc) · 2.24 KB

Neurotoxicology MEA

Python

Examples use uv, but plain pip can be used.

# Create/activate a virtual environment and install dependencies
cd app
uv python install 3.14
uv venv --python 3.14 
source .venv/bin/activate
uv pip install -r requirements/dev.txt

NodeJS

cd app/frontend
npm install
# Live update tailwindcss:
npm run dev

Django

cd app
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver

Podman Compose

The default Compose file runs the local development image with Django's development server and a PostgreSQL container:

podman compose up --build

Open http://localhost:8000. The local image runs migrations before starting runserver. Source files and templates are mounted individually so image-built static assets are not hidden by a broad ./app:/app bind mount.

To test the production image locally, layer the production override:

podman compose -f docker-compose.yaml -f docker-compose.prod.yaml up --build

This uses the prod image target, clears local bind mounts, sets DJANGO_DEBUG=False, and runs the image default Gunicorn command. It still uses the same local PostgreSQL service and named volume. PostgreSQL 18 stores data under the volume mounted at /var/lib/postgresql.

Ingest

For example, using the example data:

cd app
source .venv/bin/activate
python manage.py import_axion_folder ../data
# Replace existing experiments instead of raising IngestionError:
python manage.py import_axion_folder --replace-existing ../data/ENDpoiNTs
# Control conditions default to DMSO; override if needed:
python manage.py import_axion_folder ../data/ENDpoiNTs --control-chemical Water

Development

# Update Python requirements
# Use uv instead of plain pip
uv pip compile requirements/base.in --universal --output-file requirements/base.txt
uv pip compile requirements/dev.in --universal --output-file requirements/dev.txt

# Use Ruff linter
ruff check

# Use Ruff formatter
ruff format

# Use Pyright type checking
pyright

# Run the tests from the app dir
# for pytest to discover the configuration
cd app
pytest

# Run Django management commands with activated venv:
cd app
python manage.py <command>