Skip to main content

hymmalm — Python wrapper

Python (ctypes) binding for license-management-core. All licensing behavior — JWS verification, status rules, machine fingerprint, REST flow, retry policy, clock-tamper resistance — lives in the native hymmalm library; this package only marshals. See the repository root README for the architecture.

Usage

from hymmalm import LicenseClient, LicenseStatus

client = LicenseClient(
    product_id="PRD_01KWWPEPM0N070BDAHJ7G09RGV",
    client_api_key="PUB_...",                    # never a MST_ key
    jwks_json=open("signingkeys.json").read(),   # GET /api/signingkeys.json
    license_path="~/.myapp/license.lic",
)

status = client.check()                          # trial bootstrap on first run
if status == LicenseStatus.INVALID_TRIAL:
    client.activate(input("Receipt code: "))

Offline verification only (no network, e.g. checking a provisioned file):

import hymmalm
status = hymmalm.verify(jws_string, jwks_json)

Installing

pip install hymmalm

Release wheels bundle the native library per platform (manylinux x86_64 / aarch64, macOS arm64 / x86_64, Windows x64) — nothing else to install.

From a source checkout (or the sdist), build the core once (cmake -S . -B build && cmake --build build at the repo root) and either place libhymmalm.so / libhymmalm.dylib / hymmalm.dll next to the hymmalm package, on the loader path, or point HYMMALM_LIB at the full path.

Publishing

CI publishes to PyPI on v* release tags (the pypi job): it drops each platform's freshly built library into the package, builds a py3-none-<platform> wheel per OS/arch (linux wheels retagged and vetted by auditwheel), plus a pure sdist, and uploads with PYPI_API_TOKEN.

Tests

cd wrappers/python
HYMMALM_LIB=$PWD/../../build/libhymmalm.so python -m unittest discover -s tests -v

tests/test_vectors.py replays the same signed vectors as the C suite; tests/test_flow.py runs the full client flow (trial → activate → offline cache → deactivate, plus error classification) against a local mock API.

Metadata

Release files for hymmalm 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hymmalm 0.2.0
File Size Uploaded Provenance
hymmalm-0.2.0.tar.gz 11.1 kB Without provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for hymmalm 0.2.0
File
hymmalm-0.2.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
hymmalm-0.2.0-py3-none-manylinux_2_34_x86_64.whl Python 3 none Linux glibc 2.34+ x86-64 Details
hymmalm-0.2.0-py3-none-manylinux_2_34_aarch64.whl Python 3 none Linux glibc 2.34+ ARM64 Details
hymmalm-0.2.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
hymmalm-0.2.0-py3-none-macosx_10_15_x86_64.whl Python 3 none macOS 10.15+ x86-64 Details

Total release size: 253.7 kB

Release files / hymmalm-0.2.0.tar.gz

Download URL hymmalm-0.2.0.tar.gz
Size 11.1 kB
Tags Source
SHA-256 checksum
How to use checksums
64526d181aad4df7b97ab20a821d4e21ba53434d302325deda03ae1e5e7b8548
BLAKE2b-256 checksum
How to use checksums
983e9427240d3eab26bf219cb2e4d0e348f9f29616a1d5d7e4dcd73c32f702f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / hymmalm-0.2.0-py3-none-win_amd64.whl

Download URL hymmalm-0.2.0-py3-none-win_amd64.whl
Size 47.6 kB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
6bdb83ea6c9ac4c6b0572d6c07460fef6eb7d9536c6d5dea166456e028909518
BLAKE2b-256 checksum
How to use checksums
14d09a2bf7e11be3d8f915558393274c1c48f3457d148cb5c68bb9d65e3665ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / hymmalm-0.2.0-py3-none-manylinux_2_34_x86_64.whl

Download URL hymmalm-0.2.0-py3-none-manylinux_2_34_x86_64.whl
Size 54.3 kB
Tags Linux glibc 2.34+ x86-64 Python 3
SHA-256 checksum
How to use checksums
b4ad0221978c5106aa7e213dd0ebb30222f4275a8af70d816a7e793af6ffa8b4
BLAKE2b-256 checksum
How to use checksums
1aaea8d7313e553aa7b4a590713ceae6bc8238d44a0f77454e6cbfef3824cb12
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / hymmalm-0.2.0-py3-none-manylinux_2_34_aarch64.whl

Download URL hymmalm-0.2.0-py3-none-manylinux_2_34_aarch64.whl
Size 53.0 kB
Tags Linux glibc 2.34+ ARM64 Python 3
SHA-256 checksum
How to use checksums
50d832fbe2bdc6ea0ac2dd061ce82e15984c3d04085ad9d37f1a1f182d4d8052
BLAKE2b-256 checksum
How to use checksums
2f069c2fb56b78b35ddc973e0747bf946852a0b50f54ee7d66efbe35703f9906
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / hymmalm-0.2.0-py3-none-macosx_11_0_arm64.whl

Download URL hymmalm-0.2.0-py3-none-macosx_11_0_arm64.whl
Size 42.8 kB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
03f663d4d9f9396b4f6792bfccd8a84244f4a0ecbc89696d4ee44bbfa51e5301
BLAKE2b-256 checksum
How to use checksums
9d25ff9d4520f384e9bd4aa06d988a44d3700b1d387decb76e36edb71bdb5b32
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / hymmalm-0.2.0-py3-none-macosx_10_15_x86_64.whl

Download URL hymmalm-0.2.0-py3-none-macosx_10_15_x86_64.whl
Size 44.9 kB
Tags Python 3 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
fafd588cbaa16409a2dcfbbbf9aaa24fa4ee289c842e150c1a58192c041a621b
BLAKE2b-256 checksum
How to use checksums
a5a4fc02550936cceb8dba53b18010a05e3cdd7bfb1074e6a8ff6be0b4527ca3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Security for hymmalm 0.2.0

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A 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.

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