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-1.6.0.tar.gz (7.8 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-1.6.0-py3-none-any.whl (7.9 MB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for imo_vmdb-1.6.0.tar.gz
Algorithm Hash digest
SHA256 4bef66e7ef220f60962fd04c70788332fcda2030b8980525aeb8bfdb3d1190b0
MD5 dbb61cf66cea3a27a89e37538a0009c5
BLAKE2b-256 e4bbdb6139fddd0a3b3e4b866de30b65e549dcdf0c6479d23cd06cdb68744cc8

See more details on using hashes here.

Provenance

The following attestation bundles were made for imo_vmdb-1.6.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-1.6.0-py3-none-any.whl.

File metadata

  • Download URL: imo_vmdb-1.6.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-1.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4a1a110327f111e48efba0f27e3cb5745434cf17bc52411f657bb8859be80021
MD5 7062d6ce4ac87193866eda22587b92b0
BLAKE2b-256 911317062fe4bda7de8c8e2cbd09df3880649eeb6b9d1c2911b27b0856f08342

See more details on using hashes here.

Provenance

The following attestation bundles were made for imo_vmdb-1.6.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