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

Uploaded Python 3

File details

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

File metadata

  • Download URL: imo_vmdb-1.7.1.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.1.tar.gz
Algorithm Hash digest
SHA256 d44f4568a76e1fd383d6350fa5308a762d2f1265aacac335508efd7ac8830dbf
MD5 1b458bcc427615831eab9e8c7e1712a3
BLAKE2b-256 63f0f90312b7b50bea2cb05637bb5782cae319d2996c2a07c4f62db60b72d38f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: imo_vmdb-1.7.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b40218e4873fc43181dcf1495fefd49e9ed2ec67d46f0e63c71a5d3a40aa4732
MD5 1a6e93de9df3cdd86f52d46755d02bd9
BLAKE2b-256 3cf65240f274b7a68d9aa5359ab550f061f79cd7b5e55ba351ff1d85c1da2b5c

See more details on using hashes here.

Provenance

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