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

Uploaded Python 3

File details

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

File metadata

  • Download URL: imo_vmdb-1.7.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.7.0.tar.gz
Algorithm Hash digest
SHA256 a255ef9a83658f99417d6490a46c1723a454cbf970f752eb151c421493c63952
MD5 7d516607e74ceb92d5073829970e3462
BLAKE2b-256 fd81eceb4f29c8c34f3c88bc8b733fa5fa4e9f2cfbc88e8d9e0b8980471476e2

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: imo_vmdb-1.7.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.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 34330aa5bab5b3fde6cfc614c50152b16bafe1093f684798a5b4ca303789c329
MD5 a2e7920b61569a2fa87a88eb4bb14040
BLAKE2b-256 3a67112b5b436957de3e577cfdfef6e0153ef148c89da589eeadfc2fd2b234a5

See more details on using hashes here.

Provenance

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