lncrawl-sourcelib
Interpreter for declarative light-novel source definitions.
A source definition describes how to read one website as data rather than as code: one
YAML document per host, validated against a published schema and interpreted at runtime.
RFC-0001 in
the lncrawl/sources repository is the normative definition of the format. This package is
written against it, and where the two disagree the RFC wins.
pip install lncrawl-sourcelib
What it does
sourcelib check # resolve and validate every document
sourcelib resolve specs/example.com.yaml # what a spec actually says once merged
sourcelib schema -o schema.json # the JSON Schema editors read
from sourcelib.spec.checks import check_resolved
from sourcelib.spec.resolve import resolve_file
spec = resolve_file("specs/example.com.yaml", root=".")
for problem in check_resolved(spec):
print(problem)
resolve matters more than it looks. A spec can inherit through a chain of bases, so
"what am I actually running" has to be answerable in one command or a deep chain becomes
undebuggable.
Why it is its own package
It is not a feature of the crawler; it is the crawler's next core. Built inside the crawler it would grow references into the code it replaces, and swapping it in would become a rewrite instead of a dependency bump.
This package never imports the crawler, and its CI asserts that. It also means the definitions repository can validate itself with no application in the loop.
Licence
Apache-2.0. The crawler is GPL-3.0-or-later, and Apache-2.0 feeds a GPL-3 application without friction. Nothing here is copied or adapted from the crawler's sources.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lncrawl_sourcelib-0.1.0.tar.gz.
File metadata
- Download URL: lncrawl_sourcelib-0.1.0.tar.gz
- Upload date:
- Size: 249.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ccd4ddc179ee3ce4ccdb8fbe0d909d1925e7b13575103e3776c29dfc7303495d
|
|
| MD5 |
bcb1c5b380792b5d4ece78fda68dc4d6
|
|
| BLAKE2b-256 |
4c8a2855aa817cb6b7188bdad4997d0ea766c9b81290f73515f0b5853b8c82b1
|
Provenance
The following attestation bundles were made for lncrawl_sourcelib-0.1.0.tar.gz:
Publisher:
publish.yml on lncrawl/sourcelib
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lncrawl_sourcelib-0.1.0.tar.gz -
Subject digest:
ccd4ddc179ee3ce4ccdb8fbe0d909d1925e7b13575103e3776c29dfc7303495d - Sigstore transparency entry: 2340517509
- Sigstore integration time:
-
Permalink:
lncrawl/sourcelib@41285e69497d84f2b518619e4e62a648def02b4f -
Branch / Tag:
refs/heads/main - Owner: https://github.com/lncrawl
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@41285e69497d84f2b518619e4e62a648def02b4f -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file lncrawl_sourcelib-0.1.0-py3-none-any.whl.
File metadata
- Download URL: lncrawl_sourcelib-0.1.0-py3-none-any.whl
- Upload date:
- Size: 78.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ed6dd87ab9ef2a17e83c250d8dd9c8c15d6aa6b6a86541b9239270bf12b808e
|
|
| MD5 |
1c726b76732725c999eb857152d9cae4
|
|
| BLAKE2b-256 |
5c8474ce31d9fafc2ae562902419b684188582efcf90815f63e031c34bebd4dd
|
Provenance
The following attestation bundles were made for lncrawl_sourcelib-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on lncrawl/sourcelib
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lncrawl_sourcelib-0.1.0-py3-none-any.whl -
Subject digest:
3ed6dd87ab9ef2a17e83c250d8dd9c8c15d6aa6b6a86541b9239270bf12b808e - Sigstore transparency entry: 2340517524
- Sigstore integration time:
-
Permalink:
lncrawl/sourcelib@41285e69497d84f2b518619e4e62a648def02b4f -
Branch / Tag:
refs/heads/main - Owner: https://github.com/lncrawl
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@41285e69497d84f2b518619e4e62a648def02b4f -
Trigger Event:
workflow_dispatch
-
Statement type: