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(), frictionless(), 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": "...",  # referenced via `imports: - person`
})

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.

Release files for neverblink-linkml 0.15.0

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

Built distributions (wheels)

Table of built distributions (wheels) for neverblink-linkml 0.15.0
File
neverblink_linkml-0.15.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
neverblink_linkml-0.15.0-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details
neverblink_linkml-0.15.0-py3-none-manylinux_2_17_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
neverblink_linkml-0.15.0-py3-none-manylinux_2_14_x86_64.whl Python 3 none Linux glibc 2.14+ x86-64 Details
neverblink_linkml-0.15.0-py3-none-macosx_15_0_x86_64.whl Python 3 none macOS 15.0+ x86-64 Details
neverblink_linkml-0.15.0-py3-none-macosx_14_0_arm64.whl Python 3 none macOS 14.0+ ARM64 Details

Total release size: 52.8 MB

Release history Release notifications | RSS feed

0.16.2

9 release files

0.16.1

9 release files

0.16.0

9 release files

This release

0.15.0 This release

6 release files

0.14.0

6 release 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