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.
Metadata
Release files for pfmsoft-eve-sd 0.4.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pfmsoft_eve_sd-0.4.6.tar.gz | 55.0 kB | With provenance | Details for pfmsoft_eve_sd-0.4.6.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pfmsoft_eve_sd-0.4.6-py3-none-any.whl | Python 3 | none | any | Details for pfmsoft_eve_sd-0.4.6-py3-none-any.whl |
Total release size: 145.3 kB
Release files / pfmsoft_eve_sd-0.4.6.tar.gz
| Download URL | pfmsoft_eve_sd-0.4.6.tar.gz |
|---|---|
| Size | 55.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
228d2ec8c06ef6eaaee097f81b793a234dee7ce13c697942d9118cdd8daf4e79
|
|
BLAKE2b-256 checksum How to use checksums |
d41b8bd1b81b68334dd1bb1a1a3adc75731ccab545ddc050f54edeeeb43d3837
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 15, 2026.
Transparency logRelease files / pfmsoft_eve_sd-0.4.6-py3-none-any.whl
| Download URL | pfmsoft_eve_sd-0.4.6-py3-none-any.whl |
|---|---|
| Size | 90.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
93ec145612fb93595b9dd4c52fc580561935789e792b6a20572129fa8c9c6bc9
|
|
BLAKE2b-256 checksum How to use checksums |
b5b4bb2036ab42907aeab7363070dfc481d174a853caf042ae54bf853b629e75
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 15, 2026.
Transparency logSecurity for pfmsoft-eve-sd 0.4.6
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for pfmsoft_eve_sd-0.4.6.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 15, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.