Skip to main content

Imports VMDB CSV files from IMO into a SQL database.

Project description

imo-vmdb

imo-vmdb imports data from the Visual Meteor Database (VMDB) of the International Meteor Organization (IMO) into a relational SQL database.

The data is enriched with computed properties (radiant positions, sun/moon position and illumination) and validated for plausibility. The processed data is accessible via a public Python API, a REST interface, CLI commands, and a Web UI.

For full documentation see https://imo-vmdb.readthedocs.io/en/stable/.


Quick Start (Docker)

No Python required. Pull and run the web UI:

docker run --rm \
    -p 8000:8000 \
    -v ./data:/data \
    -e IMO_VMDB_DATABASE_DATABASE=/data/vmdb.db \
    ghcr.io/jankorichter/imo-vmdb

Open http://localhost:8000.


Developer Setup

Prerequisites: Python 3.10+, Poetry

git clone https://github.com/jankorichter/imo-vmdb.git
cd imo-vmdb
poetry install
poetry run python -m imo_vmdb

With documentation extras (required to build Sphinx docs):

poetry install --extras docs

Run the web UI and REST API locally:

IMO_VMDB_DATABASE_DATABASE=./data/vmdb.db poetry run python -m imo_vmdb web_server

Opens the control panel at http://localhost:8000; the REST API is available at http://localhost:8000/api/v1.

Test the production WSGI deployment:

The production setup uses Gunicorn with imo_vmdb.httpd:wsgi_app. To verify locally:

poetry install --extras web
IMO_VMDB_DATABASE_DATABASE=./data/vmdb.db \
    poetry run gunicorn --workers 1 --threads 4 \
    --bind 127.0.0.1:8000 "imo_vmdb.httpd:wsgi_app()"

Always use --workers 1 — see docs/api.rst for details.

Run the linter:

poetry run ruff check .
poetry run ruff format --check .

To auto-fix issues:

poetry run ruff check --fix .
poetry run ruff format .

Run the test suite:

poetry run pytest

No server needs to be started beforehand. The tests use Flask's built-in test client, which calls the application directly in-process — no network, no port. A temporary SQLite database is created automatically for each test run.

Build Docker image locally:

docker compose up --build

Release

Releases are triggered by pushing a version tag. The GitHub Actions workflows in .github/workflows/ handle CI and publishing automatically:

  • tests.yml — runs lint and tests on every push to any branch
  • pypi.yml — builds the package and publishes it to PyPI (version tags only)
  • docker.yml — builds and pushes the Docker image to GitHub Container Registry (version tags only)

Before tagging, build and verify the package locally:

make        # builds docs, then runs poetry build

Then tag and push:

git tag v1.x.y
git push origin v1.x.y

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

imo_vmdb-2.1.0.tar.gz (7.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

imo_vmdb-2.1.0-py3-none-any.whl (7.9 MB view details)

Uploaded Python 3

File details

Details for the file imo_vmdb-2.1.0.tar.gz.

File metadata

  • Download URL: imo_vmdb-2.1.0.tar.gz
  • Upload date:
  • Size: 7.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for imo_vmdb-2.1.0.tar.gz
Algorithm Hash digest
SHA256 b734a28af99f5fd316f89ca598c6a9c30f07acf54ae0284c3a2af5e8af8dae24
MD5 ce03fd1b14488734db136d02b196ccfc
BLAKE2b-256 b00c9831e747135ba292343bde002ce33b81b3bb65ddbbeee4d398aa357521b5

See more details on using hashes here.

Provenance

The following attestation bundles were made for imo_vmdb-2.1.0.tar.gz:

Publisher: pypi.yml on jankorichter/imo-vmdb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file imo_vmdb-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: imo_vmdb-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for imo_vmdb-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ce4a19108adc3c4ca6de20380b9f35a4988743a647be2945ed7fa24ac5d127ae
MD5 776edc93bb48aa94b418674d41be0764
BLAKE2b-256 7e63801006229415d74c370508d09bd476e866b813e4ac77e9bfba0082ed877b

See more details on using hashes here.

Provenance

The following attestation bundles were made for imo_vmdb-2.1.0-py3-none-any.whl:

Publisher: pypi.yml on jankorichter/imo-vmdb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page