feat: install tools/oracle as the paperspec package
Other repositories (paperstack, then paperpack) import the reference implementation instead of reimplementing the specification; scienting-core will take the role later behind the same vectors. - pyproject.toml: distribution and import name `paperspec`, version 0.1.0, Python >= 3.12, no base dependencies; `tools/oracle` is the package, and `schemas/`, `sql/` and `vectors/` ship as the data subpackages `paperspec.schemas`, `paperspec.sql` and `paperspec.vectors`. Extras `schema`, `crypto` and `tools`. - tools/oracle/__init__.py: the Python 3.14 and cryptography/jsonschema gate runs only when imported as `tools.oracle` by the repository's own tools. - crypto.py imports `cryptography` on first use of HKDF and Ed25519, with an ImportError naming `paperspec[crypto]`; schema.py imports `jsonschema` and `referencing` in `Store.validator` and `Store.registry`. package.py, db.py and receipts.py then import on a bare interpreter. - pixi.toml installs the package editable (pixi.lock re-solved; no conda pin changed), so the tools and the package resolve to the same code. - tools/README.md names the library surface and the extras; CHANGELOG.md records the packaging change under 0.1.0, since check.py requires the changelog's first heading to equal the format version. No computed value, vector, fixture, schema or SQL file changed. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
8 files changed
+279
-24
No files matched your search
@@ -0,0 +1,49 @@
|
||||
[build-system]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
requires = ["setuptools>=77"]
|
||||
|
||||
[project]
|
||||
name = "paperspec"
|
||||
version = "0.1.0"
|
||||
description = "The scienting formats: the reference implementation of every rule, with the JSON Schemas, SQL and test vectors as package data"
|
||||
readme = "README.md"
|
||||
license = "Apache-2.0"
|
||||
license-files = ["LICENSE.md"]
|
||||
authors = [{ name = "Scientific Computing Studio", email = "maintainer@scient.ing" }]
|
||||
requires-python = ">=3.12"
|
||||
classifiers = [
|
||||
"Development Status :: 3 - Alpha",
|
||||
"Intended Audience :: Science/Research",
|
||||
"Programming Language :: Python :: 3 :: Only",
|
||||
"Topic :: Scientific/Engineering",
|
||||
]
|
||||
# The base package is standard library only. `schema.py` needs jsonschema and
|
||||
# `crypto.py` needs cryptography; the repository's own tools need both.
|
||||
dependencies = []
|
||||
|
||||
[project.optional-dependencies]
|
||||
schema = ["jsonschema>=4.26", "referencing>=0.35"]
|
||||
crypto = ["cryptography>=46"]
|
||||
tools = ["paperspec[crypto,schema]"]
|
||||
|
||||
[project.urls]
|
||||
Homepage = "https://paperspec.scient.ing"
|
||||
Repository = "https://git.scient.ing/infra/paperspec"
|
||||
Documentation = "https://paperspec.scient.ing/docs/"
|
||||
|
||||
# `tools/oracle` is the package `paperspec`; the schemas, SQL and vectors travel
|
||||
# with it as data subpackages, so a consumer reads them with importlib.resources.
|
||||
[tool.setuptools]
|
||||
packages = ["paperspec", "paperspec.schemas", "paperspec.sql", "paperspec.vectors"]
|
||||
|
||||
[tool.setuptools.package-dir]
|
||||
"paperspec" = "tools/oracle"
|
||||
"paperspec.schemas" = "schemas"
|
||||
"paperspec.sql" = "sql"
|
||||
"paperspec.vectors" = "vectors"
|
||||
|
||||
[tool.setuptools.package-data]
|
||||
"paperspec.schemas" = ["*.json"]
|
||||
"paperspec.sql" = ["*.sql"]
|
||||
"paperspec.vectors" = ["*.jsonl"]
|
||||
Reference in new issue
Block a user