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.7.2.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.7.2-py3-none-any.whl (7.9 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: imo_vmdb-1.7.2.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.7.2.tar.gz
Algorithm Hash digest
SHA256 19193e91bfe3074d073b344b7827350dc8fefeb950201ebae0423d7a277bc50d
MD5 c8a32a06047f0192594943f4fd53ccbc
BLAKE2b-256 53b1b25d0736d2b0656b6fe76ad4a158ccb30150dee7b70f0bdac038f6592af2

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: imo_vmdb-1.7.2-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.7.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0f2249d095eb9623b724dbafc6ade8d265807e45a14e3663b14b11c4987c0514
MD5 42aef2ae2a1aa6d9e0c438737df7e5ef
BLAKE2b-256 d355128934f66cec4e0440bf57f0c6b4adc501550aadc7498ae0303ed3c0ff2f

See more details on using hashes here.

Provenance

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