A CLI and API for Eve Online Static Data downloading and use.
Project description
EVE Static Data
eve-sd provides a command-line workflow and Python API for working
with the EVE Online Static Data Export (SDE).
The CLI entrypoint is eve-sd.
eve-sd --help
What This App Does
Core capabilities:
- Fetch SDE metadata and changelogs from the official endpoint.
- Download SDE archives by build number and variant (
yamlorjsonl). - Unpack SDE archives into local directories.
- Build a local SQLite database from unpacked SDE files.
- Browse records in the SQLite database from the CLI.
- Generate schema reports from dataset files or an existing database.
- Convert SDE files between formats for downstream tooling.
- Access data programmatically through a typed Python query API.
Typical Workflow
Most users follow this sequence:
- Fetch the latest build information.
- Download an archive.
- Unpack the archive.
- Build a SQLite database.
- Query data from the CLI or Python.
1) Fetch Latest Build Info
eve-sd fetch latest
Optional: write output to disk.
eve-sd fetch latest --to ./metadata --file-name latest_sde_info.json
2) Download an SDE Archive
Download the latest YAML variant:
eve-sd fetch sde --to ./downloads --variant yaml
Download a specific build:
eve-sd fetch sde --to ./downloads --variant jsonl --build-number 3419624
3) Unpack the Archive
eve-sd unpack --from ./downloads/eve-online-static-data-3419624-yaml.zip --to ./sde
By default, unpack uses a build-number subdirectory, for example
./sde/3419624.
4) Create a Database from Unpacked Data
eve-sd db create --from ./sde/3419624 --to ./db --file-name sde_3419624.db
Defaults:
- If
--file-nameis omitted, a name based on build and variant is generated. - If
--serialization-formatis omitted, the app chooses:jsonfor JSONL source datapicklefor YAML source data
5) Browse the Database in the CLI
List datasets with record counts and key types:
eve-sd db browse --from ./db/sde_3419624.db
Browse a dataset page:
eve-sd db browse --from ./db/sde_3419624.db --dataset types --page-size 5 --page 1
Fetch specific records:
eve-sd db browse --from ./db/sde_3419624.db --dataset types --record-key 34 --record-key 35
Changelog Commands
Fetch data changelog:
eve-sd fetch data-changes --build-number 3419624
Fetch schema changelog:
eve-sd fetch schema-changes --build-number 3419624
Both commands can print to stdout or write to disk using --to and optional
--file-name.
Schema Reports
Generate a schema report directly from unpacked files:
eve-sd schema report files --from ./sde/3419624 --stdout-format markdown
Generate a schema report from an existing database:
eve-sd schema report db --from ./db/sde_3419624.db --stdout-format json
Write report files to a directory:
eve-sd schema report files --from ./sde/3419624 --to ./reports --overwrite
Format Conversion Commands
Convert YAML datasets to JSON:
eve-sd export yaml-to-json --from ./sde/3419624 --to ./json
Convert JSONL datasets to JSON with dictionary output keyed by _key:
eve-sd export jsonl-to-json --from ./sde/3419624 --to ./json
Use list output when needed:
eve-sd export jsonl-to-json --from ./sde/3419624 --to ./json --container list
Programmatic API Usage
Expected pattern: create the SQLite database with the CLI first, then use the Python API to query it.
API Example: create_read_write_connection + DatasetDbQuery
from pathlib import Path
from eve_static_data.db.helpers import create_read_write_connection
from eve_static_data.db.query import DatasetDbQuery
db_path = Path("./db/sde_3419624.db").resolve()
with create_read_write_connection(str(db_path)) as connection:
query = DatasetDbQuery(connection)
# Inspect metadata and dataset catalog
print("SDE metadata:", query.sde_metadata)
print("Dataset count:", len(query.dataset_key_types))
# Query one dataset (adjust name as needed for your DB)
dataset_name = "types"
record_count = query.dataset_record_count(dataset_name)
print(f"{dataset_name} record count:", record_count)
# Read first 10 records from an integer-keyed dataset
for record_key, record in query.get_int_records_page(
dataset_name,
limit=10,
offset=0,
):
print(record_key, record)
If you need a mapping instead of an iterator of (key, record) tuples:
records = query.as_dict(query.get_int_records_page("types", limit=100, offset=0))
print(len(records))
Common Notes
DatasetDbQueryvalidates dataset existence and key type before querying.- Record-key type (
intorstr) is tracked per dataset in the DB metadata. - Some commands emit rich progress/status messages unless
--quietis used.
Installation
PyPI deployment is not enabled yet. Install from github with uv, or work from a
local source checkout.
Install with uv
Run the CLI directly from the repository without installing it globally:
uvx --from git+https://github.com/DonalChilde/eve-sd@main eve-sd --help
Install the command into your uv tool path:
uv tool install --from git+https://github.com/DonalChilde/eve-sd@main eve-sd
eve-sd --help
Install from Source
git clone https://github.com/DonalChilde/eve-sd.git
cd eve-sd
uv sync
source .venv/bin/activate
eve-sd --help
You can also run the project directly through uv without activating the
virtual environment:
uv run eve-sd --help
Useful Utility Commands
Show version:
eve-sd version
Show effective runtime settings:
eve-sd settings
Show the in-app documentation:
eve-sd docs
Development Notes
Development dependencies are managed with uv. See pyproject.toml for the
current lint and test configuration.
License
MIT License. See LICENSE for details.
Changelog
See CHANGELOG.md for version history.
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 pfmsoft_eve_sd-0.4.3.tar.gz.
File metadata
- Download URL: pfmsoft_eve_sd-0.4.3.tar.gz
- Upload date:
- Size: 45.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e91726855d27ab7d7e3ad7d11f5b233a9fae0a3b7661e0c125c10ec54d5e475
|
|
| MD5 |
47d8ab9b3255c07ec689042c82033dd7
|
|
| BLAKE2b-256 |
a202fe5ef9797d3966f71051fcc530437116d2e6891791de214ab35b9e819957
|
Provenance
The following attestation bundles were made for pfmsoft_eve_sd-0.4.3.tar.gz:
Publisher:
pypi-publish.yaml on DonalChilde/pfmsoft-eve-sd
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pfmsoft_eve_sd-0.4.3.tar.gz -
Subject digest:
2e91726855d27ab7d7e3ad7d11f5b233a9fae0a3b7661e0c125c10ec54d5e475 - Sigstore transparency entry: 2202850865
- Sigstore integration time:
-
Permalink:
DonalChilde/pfmsoft-eve-sd@d5f02abe3c9236a683de6b7a821f9043f8552d59 -
Branch / Tag:
refs/tags/v0.4.3 - Owner: https://github.com/DonalChilde
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yaml@d5f02abe3c9236a683de6b7a821f9043f8552d59 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pfmsoft_eve_sd-0.4.3-py3-none-any.whl.
File metadata
- Download URL: pfmsoft_eve_sd-0.4.3-py3-none-any.whl
- Upload date:
- Size: 73.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c56f16bd02f24dce6a65802fdd9033ded066425ae3ff5cbfb2d7222b0c4dcf5
|
|
| MD5 |
0e44f8c453be20e9c3187a567904ed12
|
|
| BLAKE2b-256 |
90a0f82674dffb4ea9744d6da4c5501c52db2ccbbc676c933d0c782dfeb4f0b7
|
Provenance
The following attestation bundles were made for pfmsoft_eve_sd-0.4.3-py3-none-any.whl:
Publisher:
pypi-publish.yaml on DonalChilde/pfmsoft-eve-sd
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pfmsoft_eve_sd-0.4.3-py3-none-any.whl -
Subject digest:
7c56f16bd02f24dce6a65802fdd9033ded066425ae3ff5cbfb2d7222b0c4dcf5 - Sigstore transparency entry: 2202851059
- Sigstore integration time:
-
Permalink:
DonalChilde/pfmsoft-eve-sd@d5f02abe3c9236a683de6b7a821f9043f8552d59 -
Branch / Tag:
refs/tags/v0.4.3 - Owner: https://github.com/DonalChilde
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yaml@d5f02abe3c9236a683de6b7a821f9043f8552d59 -
Trigger Event:
release
-
Statement type: