Skip to main content

neverblink-linkml

Fast and robust LinkML schema validation and code generation for Python, backed by LinkML-Scala compiled to a native shared library.

No JVM, no subprocess per schema, and no dependency on the linkml Python package. In our benchmarks the generators are 22.9–38.5x faster than the reference Python implementation.

Install

pip install neverblink-linkml

Usage

import linkml_scala

with linkml_scala.load_file("model.yaml") as schema:
    print(schema.json_schema())
    print(schema.shacl())
    for issue in schema.issues(linkml_scala.WARNING):
        print(issue["severity"], issue["message"])

load_file() will automatically resolve imports and parse the schema. You can reuse the Schema object for multiple generator calls, and it will automatically cache the parsed form of any imported schemas.

Generators available on a Schema: json_schema(), shacl(), rdfs(), linkml(), table_schema(), graphql(), er_diagram() and scala(), plus lint() for validation.

To work from memory instead of the file system, use load_string() for a single schema or load_path() when imports are involved:

schema = linkml_scala.load_path("model.yaml", {
    "model.yaml": "...",
    "person.yaml": "...",
})

Supported platforms

OS Architectures
Linux (glibc) x86-64, ARM64
Linux (musl) x86-64
macOS Apple silicon, Intel
Windows x86-64

Python 3.10 or newer, 64-bit only. Other platforms are currently not supported, and would require an alternative compilation path (e.g., Scala Native). Please open an issue if you need a platform that is not listed above.

Documentation

License

Apache 2.0.

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

neverblink_linkml-0.14.0-py3-none-win_amd64.whl (8.6 MB view details)

Uploaded Python 3Windows x86-64

neverblink_linkml-0.14.0-py3-none-musllinux_1_2_x86_64.whl (8.6 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

neverblink_linkml-0.14.0-py3-none-manylinux_2_17_aarch64.whl (8.4 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

neverblink_linkml-0.14.0-py3-none-manylinux_2_14_x86_64.whl (8.6 MB view details)

Uploaded Python 3manylinux: glibc 2.14+ x86-64

neverblink_linkml-0.14.0-py3-none-macosx_15_0_x86_64.whl (8.4 MB view details)

Uploaded Python 3macOS 15.0+ x86-64

neverblink_linkml-0.14.0-py3-none-macosx_14_0_arm64.whl (8.5 MB view details)

Uploaded Python 3macOS 14.0+ ARM64

Release history Release notifications | RSS feed

This release

0.14.0 This release

6 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page