Activating Your License
keplime is a commercial product. Every import keplime requires a valid
license file issued by Citra Space. Without one, the import fails with
keplime.LicenseError and a message describing what to fix.
Obtaining a license
Contact sales to request a license. You will receive a single file
(typically named <your-org>.license) containing the signed license blob.
Installing the license
keplime resolves the license at import time, in this priority order:
KEPLIME_LICENSEenvironment variable — the license blob itself, inline. Convenient for container deployments and 12-factor setups where secrets are injected as env vars.KEPLIME_LICENSE_FILEenvironment variable — an absolute path to the license file on disk.-
Default data-dir path —
{data_dir}/license.key. The data directory is platform-specific:- Linux:
$XDG_DATA_HOME/keplime(or~/.local/share/keplime) - macOS:
~/Library/Application Support/keplime - Windows:
%LOCALAPPDATA%\keplime
The same directory keplime uses for cached EOP and ephemeris data.
- Linux:
Pick whichever fits your deployment.
Verifying activation
After installing the license, confirm it from a Python shell:
import keplime
print(keplime.licensing.info())
# {'license_id': '...', 'customer_id': 'acme-corp',
# 'customer_name': 'Acme Corporation', 'issued_at': 1778446188,
# 'expires_at': None, 'schema_version': 1}
If import keplime fails, the exception message will direct you to one
of these install options.
Catching license errors
keplime.LicenseError is the single exception type raised for every
license-validation outcome — missing file, malformed blob, tampered
signature, expired license, or unsupported schema field.
try:
import keplime
except keplime.LicenseError as exc:
# Show the user a friendly message, prompt for a new license, etc.
print(f"keplime license problem: {exc}")
Note that the exception is also raised at runtime from
keplime.licensing.install(...) if the supplied file or blob is
unreadable or malformed.
Updating an active license
To install a new license file without restarting Python on a fresh
process, use keplime.licensing.install:
import keplime
keplime.licensing.install("/path/to/new.license")
The file is copied to the default data-dir location for use on
subsequent imports. The currently running process keeps the
license that was validated at its import keplime time — restart
Python to pick up the new file.
Air-gapped and offline use
License validation is fully offline. There is no phone-home, no revocation list lookup, and no network requirement at import time. keplime caches the validation result for the process lifetime so even repeated module imports do no further work.