Skip to main content

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 (yaml or jsonl).
  • 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:

  1. Fetch the latest build information.
  2. Download an archive.
  3. Unpack the archive.
  4. Build a SQLite database.
  5. 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-name is omitted, a name based on build and variant is generated.
  • If --serialization-format is omitted, the app chooses:
    • json for JSONL source data
    • pickle for 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

  • DatasetDbQuery validates dataset existence and key type before querying.
  • Record-key type (int or str) is tracked per dataset in the DB metadata.
  • Some commands emit rich progress/status messages unless --quiet is 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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pfmsoft_eve_sd-0.4.5.tar.gz (55.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pfmsoft_eve_sd-0.4.5-py3-none-any.whl (90.3 kB view details)

Uploaded Python 3

File details

Details for the file pfmsoft_eve_sd-0.4.5.tar.gz.

File metadata

  • Download URL: pfmsoft_eve_sd-0.4.5.tar.gz
  • Upload date:
  • Size: 55.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pfmsoft_eve_sd-0.4.5.tar.gz
Algorithm Hash digest
SHA256 3ecd8039d1d3c5afd51c065b31a09da7e5f1328102512e08ef18045ace1c86e4
MD5 523887150cb9324ade13389b4d74693d
BLAKE2b-256 2723bacb4f7ef4d5e678f63fe5b6d7bdc2e286a908966ba3dfa9a8819b260513

See more details on using hashes here.

Provenance

The following attestation bundles were made for pfmsoft_eve_sd-0.4.5.tar.gz:

Publisher: pypi-publish.yaml on DonalChilde/pfmsoft-eve-sd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pfmsoft_eve_sd-0.4.5-py3-none-any.whl.

File metadata

  • Download URL: pfmsoft_eve_sd-0.4.5-py3-none-any.whl
  • Upload date:
  • Size: 90.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pfmsoft_eve_sd-0.4.5-py3-none-any.whl
Algorithm Hash digest
SHA256 419ddfe7b5fd4d51c7ce850660c9968bbbdb287fbf50cf84b43528cdfbe0e677
MD5 62e8fbc87bdf02880dbeac40185c6685
BLAKE2b-256 5afe5832df76f1e7c5b8df27295580a8ea299e23068a6be704bc43e83f044ae6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pfmsoft_eve_sd-0.4.5-py3-none-any.whl:

Publisher: pypi-publish.yaml on DonalChilde/pfmsoft-eve-sd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.4.6

2 files

This release

0.4.5 This release

2 files

0.4.4

2 files

0.4.3

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page