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 branchpypi.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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
19193e91bfe3074d073b344b7827350dc8fefeb950201ebae0423d7a277bc50d
|
|
| MD5 |
c8a32a06047f0192594943f4fd53ccbc
|
|
| BLAKE2b-256 |
53b1b25d0736d2b0656b6fe76ad4a158ccb30150dee7b70f0bdac038f6592af2
|
Provenance
The following attestation bundles were made for imo_vmdb-1.7.2.tar.gz:
Publisher:
pypi.yml on jankorichter/imo-vmdb
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
imo_vmdb-1.7.2.tar.gz -
Subject digest:
19193e91bfe3074d073b344b7827350dc8fefeb950201ebae0423d7a277bc50d - Sigstore transparency entry: 1511280365
- Sigstore integration time:
-
Permalink:
jankorichter/imo-vmdb@4fff124571880b4ee0d10275b7f2022ffe997371 -
Branch / Tag:
refs/tags/v1.7.2 - Owner: https://github.com/jankorichter
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@4fff124571880b4ee0d10275b7f2022ffe997371 -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f2249d095eb9623b724dbafc6ade8d265807e45a14e3663b14b11c4987c0514
|
|
| MD5 |
42aef2ae2a1aa6d9e0c438737df7e5ef
|
|
| BLAKE2b-256 |
d355128934f66cec4e0440bf57f0c6b4adc501550aadc7498ae0303ed3c0ff2f
|
Provenance
The following attestation bundles were made for imo_vmdb-1.7.2-py3-none-any.whl:
Publisher:
pypi.yml on jankorichter/imo-vmdb
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
imo_vmdb-1.7.2-py3-none-any.whl -
Subject digest:
0f2249d095eb9623b724dbafc6ade8d265807e45a14e3663b14b11c4987c0514 - Sigstore transparency entry: 1511280711
- Sigstore integration time:
-
Permalink:
jankorichter/imo-vmdb@4fff124571880b4ee0d10275b7f2022ffe997371 -
Branch / Tag:
refs/tags/v1.7.2 - Owner: https://github.com/jankorichter
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@4fff124571880b4ee0d10275b7f2022ffe997371 -
Trigger Event:
push
-
Statement type: