python-referencing: Add new package
From the README: An implementation-agnostic implementation of JSON reference resolution. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This commit is contained in:
parent
06231ce8cb
commit
728aac31bb
2 changed files with 82 additions and 0 deletions
47
lang/python/python-referencing/Makefile
Normal file
47
lang/python/python-referencing/Makefile
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2023 Jeffery To
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
|
||||||
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
|
PKG_NAME:=python-referencing
|
||||||
|
PKG_VERSION:=0.30.2
|
||||||
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
|
PYPI_NAME:=referencing
|
||||||
|
PKG_HASH:=794ad8003c65938edcdbc027f1933215e0d0ccc0291e3ce20a4d87432b59efc0
|
||||||
|
|
||||||
|
PKG_LICENSE:=MIT
|
||||||
|
PKG_LICENSE_FILES:=COPYING
|
||||||
|
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
|
||||||
|
|
||||||
|
PKG_BUILD_DEPENDS:=python-hatchling/host python-hatch-vcs/host
|
||||||
|
|
||||||
|
include ../pypi.mk
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
include ../python3-package.mk
|
||||||
|
|
||||||
|
define Package/python3-referencing
|
||||||
|
SECTION:=lang
|
||||||
|
CATEGORY:=Languages
|
||||||
|
SUBMENU:=Python
|
||||||
|
TITLE:=JSON Referencing + Python
|
||||||
|
URL:=https://github.com/python-jsonschema/referencing
|
||||||
|
DEPENDS:= \
|
||||||
|
+python3-light \
|
||||||
|
+python3-email \
|
||||||
|
+python3-urllib \
|
||||||
|
+python3-attrs \
|
||||||
|
+python3-rpds-py
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/python3-referencing/description
|
||||||
|
An implementation-agnostic implementation of JSON reference resolution.
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call Py3Package,python3-referencing))
|
||||||
|
$(eval $(call BuildPackage,python3-referencing))
|
||||||
|
$(eval $(call BuildPackage,python3-referencing-src))
|
35
lang/python/python-referencing/test.sh
Normal file
35
lang/python/python-referencing/test.sh
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
[ "$1" = python3-referencing ] || exit 0
|
||||||
|
|
||||||
|
python3 - << 'EOF'
|
||||||
|
|
||||||
|
from referencing import Registry, Resource
|
||||||
|
import referencing.jsonschema
|
||||||
|
|
||||||
|
schema = Resource.from_contents( # Parse some contents into a 2020-12 JSON Schema
|
||||||
|
{
|
||||||
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||||
|
"$id": "urn:example:a-202012-schema",
|
||||||
|
"$defs": {
|
||||||
|
"nonNegativeInteger": {
|
||||||
|
"$anchor": "nonNegativeInteger",
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 0,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
)
|
||||||
|
registry = schema @ Registry() # Add the resource to a new registry
|
||||||
|
|
||||||
|
# From here forward, this would usually be done within a library wrapping this one,
|
||||||
|
# like a JSON Schema implementation
|
||||||
|
resolver = registry.resolver()
|
||||||
|
resolved = resolver.lookup("urn:example:a-202012-schema#nonNegativeInteger")
|
||||||
|
assert resolved.contents == {
|
||||||
|
"$anchor": "nonNegativeInteger",
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 0,
|
||||||
|
}
|
||||||
|
|
||||||
|
EOF
|
Loading…
Reference in a new issue