pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

py-ksef2: update to 8.0.0



Module Name:	pkgsrc-wip
Committed By:	Bartosz Kuzma <bartosz.kuzma%gmail.com@localhost>
Pushed By:	bartosz.kuzma
Date:		Sat Feb 21 18:56:02 2026 +0100
Changeset:	46c817fa1fef738f842d7e2c2c830df4260e31d8

Modified Files:
	Makefile
	py-ksef2/Makefile
	py-ksef2/PLIST
	py-ksef2/distinfo
	py-signxml/Makefile
Added Files:
	py-xsdata-pydantic/DESCR
	py-xsdata-pydantic/Makefile
	py-xsdata-pydantic/PLIST
	py-xsdata-pydantic/distinfo
	py-xsdata/DESCR
	py-xsdata/Makefile
	py-xsdata/PLIST
	py-xsdata/distinfo

Log Message:
py-ksef2: update to 8.0.0

Invoice rendering — HTML and PDF export

Export KSeF invoice XML to HTML and PDF using the built-in XSLT stylesheet:
    InvoiceXSLTRenderer — renders invoice XML to HTML via the bundled styl.xsl
    InvoicePDFExporter — renders invoice XML to PDF (HTML intermediate via XSLT + WeasyPrint)

Both renderers support exporting from file paths, XML strings, or directly to files.

Other additions
    Add FA(3) schema models generated from schemat.xml
    Add KSeFExportTimeoutError and KSeFInvoiceQueryTimeoutError exception types for polling timeouts
    Bundle styl.xsl inside the package (ksef2.services.renderers)

Experimental
    scripts/cli/export_invoices.py — CLI tool for downloading invoices and exporting to PDF. Supports token, PEM cert/key, and PKCS#12 authentication. Run python scripts/cli/export_invoices.py --help for usage.

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=46c817fa1fef738f842d7e2c2c830df4260e31d8

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 Makefile                    |   4 +
 py-ksef2/Makefile           |  18 +-
 py-ksef2/PLIST              | 133 +++++++++++----
 py-ksef2/distinfo           |   6 +-
 py-signxml/Makefile         |   3 +-
 py-xsdata-pydantic/DESCR    |   5 +
 py-xsdata-pydantic/Makefile |  23 +++
 py-xsdata-pydantic/PLIST    |  32 ++++
 py-xsdata-pydantic/distinfo |   5 +
 py-xsdata/DESCR             |  12 ++
 py-xsdata/Makefile          |  22 +++
 py-xsdata/PLIST             | 396 ++++++++++++++++++++++++++++++++++++++++++++
 py-xsdata/distinfo          |   5 +
 13 files changed, 619 insertions(+), 45 deletions(-)

diffs:
diff --git a/Makefile b/Makefile
index fb2d45ae55..c2587efaf9 100644
--- a/Makefile
+++ b/Makefile
@@ -4105,6 +4105,7 @@ SUBDIR+=	py-knnimpute
 SUBDIR+=	py-knockknock
 SUBDIR+=	py-krylov
 SUBDIR+=	py-krypy
+SUBDIR+=	py-ksef2
 SUBDIR+=	py-lang-trans
 SUBDIR+=	py-lapack
 SUBDIR+=	py-lark
@@ -4734,6 +4735,7 @@ SUBDIR+=	py-shp
 SUBDIR+=	py-shtoom
 SUBDIR+=	py-shutilwhich
 SUBDIR+=	py-siginterrupt
+SUBDIR+=	py-signxml
 SUBDIR+=	py-silero-vad
 SUBDIR+=	py-sima
 SUBDIR+=	py-simpleparse-mxtexttools
@@ -5046,6 +5048,8 @@ SUBDIR+=	py-xcffib
 SUBDIR+=	py-xdgapp
 SUBDIR+=	py-xlutils
 SUBDIR+=	py-xpra
+SUBDIR+=	py-xsdata
+SUBDIR+=	py-xsdata-pydantic
 SUBDIR+=	py-yamale
 SUBDIR+=	py-yams
 SUBDIR+=	py-yapgvb
diff --git a/py-ksef2/Makefile b/py-ksef2/Makefile
index 6d28c916b2..efad4d8c6a 100644
--- a/py-ksef2/Makefile
+++ b/py-ksef2/Makefile
@@ -1,9 +1,10 @@
 # $NetBSD$
 
-DISTNAME=	ksef2-0.7.1
+DISTNAME=	ksef2-0.8.0
 PKGNAME=	${PYPKGPREFIX}-${DISTNAME}
-CATEGORIES=	python # TODO: add primary category
+CATEGORIES=	net
 MASTER_SITES=	${MASTER_SITE_GITHUB:=artpods56/}
+GITHUB_PROJECT=	ksef2
 GITHUB_TAG=	refs/tags/v${PKGVERSION_NOREV}
 
 MAINTAINER=	bartosz.kuzma%gmail.com@localhost
@@ -11,15 +12,18 @@ HOMEPAGE=	https://github.com/artpods56/ksef2/
 COMMENT=	Python SDK and Tools for Poland's KSeF v2.0 API
 LICENSE=	mit
 
-WRKSRC=	${WRKDIR}/${DISTNAME}
+WRKSRC=		${WRKDIR}/${DISTNAME}
 
-DEPENDS+=	${PYPKGPREFIX}-cryptography>=44.0.0:../../security/py-cryptography
-DEPENDS+=	${PYPKGPREFIX}-dotenv>=0.9.9:../../devel/py-dotenv
-DEPENDS+=	${PYPKGPREFIX}-httpx>=0.28.1:../../www/py-httpx
 DEPENDS+=	${PYPKGPREFIX}-pydantic>=2.12.5:../../devel/py-pydantic
-DEPENDS+=	${PYPKGPREFIX}-requests>=2.32.5:../../devel/py-requests
+DEPENDS+=	${PYPKGPREFIX}-cryptography>=44.0.0:../../security/py-cryptography
 DEPENDS+=	${PYPKGPREFIX}-signxml>=4.0:../../wip/py-signxml
+DEPENDS+=	${PYPKGPREFIX}-httpx>=0.28.1:../../www/py-httpx
 DEPENDS+=	${PYPKGPREFIX}-structlog>=25.5.0:../../sysutils/py-structlog
+DEPENDS+=	${PYPKGPREFIX}-dotenv>=0.9.9:../../devel/py-dotenv
+DEPENDS+=	${PYPKGPREFIX}-requests>=2.32.5:../../devel/py-requests
+DEPENDS+=	${PYPKGPREFIX}-xsdata-pydantic>=24.5:../../wip/py-xsdata-pydantic
+DEPENDS+=	${PYPKGPREFIX}-weasyprint>=63.0:../../print/py-weasyprint
+DEPENDS+=	${PYPKGPREFIX}-tenacity>=9.0:../../devel/py-tenacity
 
 USE_LANGUAGES=	# none
 
diff --git a/py-ksef2/PLIST b/py-ksef2/PLIST
index 6496674602..6255a454a2 100644
--- a/py-ksef2/PLIST
+++ b/py-ksef2/PLIST
@@ -123,6 +123,15 @@ ${PYSITELIB}/ksef2/domain/models/certificates.pyo
 ${PYSITELIB}/ksef2/domain/models/encryption.py
 ${PYSITELIB}/ksef2/domain/models/encryption.pyc
 ${PYSITELIB}/ksef2/domain/models/encryption.pyo
+${PYSITELIB}/ksef2/domain/models/fa3/__init__.py
+${PYSITELIB}/ksef2/domain/models/fa3/__init__.pyc
+${PYSITELIB}/ksef2/domain/models/fa3/__init__.pyo
+${PYSITELIB}/ksef2/domain/models/fa3/attachment.py
+${PYSITELIB}/ksef2/domain/models/fa3/attachment.pyc
+${PYSITELIB}/ksef2/domain/models/fa3/attachment.pyo
+${PYSITELIB}/ksef2/domain/models/fa3/base.py
+${PYSITELIB}/ksef2/domain/models/fa3/base.pyc
+${PYSITELIB}/ksef2/domain/models/fa3/base.pyo
 ${PYSITELIB}/ksef2/domain/models/invoices.py
 ${PYSITELIB}/ksef2/domain/models/invoices.pyc
 ${PYSITELIB}/ksef2/domain/models/invoices.pyo
@@ -186,42 +195,57 @@ ${PYSITELIB}/ksef2/infra/__init__.pyo
 ${PYSITELIB}/ksef2/infra/mappers/__init__.py
 ${PYSITELIB}/ksef2/infra/mappers/__init__.pyc
 ${PYSITELIB}/ksef2/infra/mappers/__init__.pyo
-${PYSITELIB}/ksef2/infra/mappers/auth.py
-${PYSITELIB}/ksef2/infra/mappers/auth.pyc
-${PYSITELIB}/ksef2/infra/mappers/auth.pyo
-${PYSITELIB}/ksef2/infra/mappers/batch.py
-${PYSITELIB}/ksef2/infra/mappers/batch.pyc
-${PYSITELIB}/ksef2/infra/mappers/batch.pyo
-${PYSITELIB}/ksef2/infra/mappers/certificates.py
-${PYSITELIB}/ksef2/infra/mappers/certificates.pyc
-${PYSITELIB}/ksef2/infra/mappers/certificates.pyo
-${PYSITELIB}/ksef2/infra/mappers/encryption.py
-${PYSITELIB}/ksef2/infra/mappers/encryption.pyc
-${PYSITELIB}/ksef2/infra/mappers/encryption.pyo
 ${PYSITELIB}/ksef2/infra/mappers/exceptions.py
 ${PYSITELIB}/ksef2/infra/mappers/exceptions.pyc
 ${PYSITELIB}/ksef2/infra/mappers/exceptions.pyo
-${PYSITELIB}/ksef2/infra/mappers/invoices.py
-${PYSITELIB}/ksef2/infra/mappers/invoices.pyc
-${PYSITELIB}/ksef2/infra/mappers/invoices.pyo
-${PYSITELIB}/ksef2/infra/mappers/limits.py
-${PYSITELIB}/ksef2/infra/mappers/limits.pyc
-${PYSITELIB}/ksef2/infra/mappers/limits.pyo
-${PYSITELIB}/ksef2/infra/mappers/peppol.py
-${PYSITELIB}/ksef2/infra/mappers/peppol.pyc
-${PYSITELIB}/ksef2/infra/mappers/peppol.pyo
-${PYSITELIB}/ksef2/infra/mappers/permissions.py
-${PYSITELIB}/ksef2/infra/mappers/permissions.pyc
-${PYSITELIB}/ksef2/infra/mappers/permissions.pyo
-${PYSITELIB}/ksef2/infra/mappers/session.py
-${PYSITELIB}/ksef2/infra/mappers/session.pyc
-${PYSITELIB}/ksef2/infra/mappers/session.pyo
-${PYSITELIB}/ksef2/infra/mappers/testdata.py
-${PYSITELIB}/ksef2/infra/mappers/testdata.pyc
-${PYSITELIB}/ksef2/infra/mappers/testdata.pyo
-${PYSITELIB}/ksef2/infra/mappers/tokens.py
-${PYSITELIB}/ksef2/infra/mappers/tokens.pyc
-${PYSITELIB}/ksef2/infra/mappers/tokens.pyo
+${PYSITELIB}/ksef2/infra/mappers/invoices/__init__.py
+${PYSITELIB}/ksef2/infra/mappers/invoices/__init__.pyc
+${PYSITELIB}/ksef2/infra/mappers/invoices/__init__.pyo
+${PYSITELIB}/ksef2/infra/mappers/invoices/fa3/__init__.py
+${PYSITELIB}/ksef2/infra/mappers/invoices/fa3/__init__.pyc
+${PYSITELIB}/ksef2/infra/mappers/invoices/fa3/__init__.pyo
+${PYSITELIB}/ksef2/infra/mappers/invoices/fa3/attachment.py
+${PYSITELIB}/ksef2/infra/mappers/invoices/fa3/attachment.pyc
+${PYSITELIB}/ksef2/infra/mappers/invoices/fa3/attachment.pyo
+${PYSITELIB}/ksef2/infra/mappers/invoices/fa3/base.py
+${PYSITELIB}/ksef2/infra/mappers/invoices/fa3/base.pyc
+${PYSITELIB}/ksef2/infra/mappers/invoices/fa3/base.pyo
+${PYSITELIB}/ksef2/infra/mappers/requests/__init__.py
+${PYSITELIB}/ksef2/infra/mappers/requests/__init__.pyc
+${PYSITELIB}/ksef2/infra/mappers/requests/__init__.pyo
+${PYSITELIB}/ksef2/infra/mappers/requests/auth.py
+${PYSITELIB}/ksef2/infra/mappers/requests/auth.pyc
+${PYSITELIB}/ksef2/infra/mappers/requests/auth.pyo
+${PYSITELIB}/ksef2/infra/mappers/requests/batch.py
+${PYSITELIB}/ksef2/infra/mappers/requests/batch.pyc
+${PYSITELIB}/ksef2/infra/mappers/requests/batch.pyo
+${PYSITELIB}/ksef2/infra/mappers/requests/certificates.py
+${PYSITELIB}/ksef2/infra/mappers/requests/certificates.pyc
+${PYSITELIB}/ksef2/infra/mappers/requests/certificates.pyo
+${PYSITELIB}/ksef2/infra/mappers/requests/encryption.py
+${PYSITELIB}/ksef2/infra/mappers/requests/encryption.pyc
+${PYSITELIB}/ksef2/infra/mappers/requests/encryption.pyo
+${PYSITELIB}/ksef2/infra/mappers/requests/invoices.py
+${PYSITELIB}/ksef2/infra/mappers/requests/invoices.pyc
+${PYSITELIB}/ksef2/infra/mappers/requests/invoices.pyo
+${PYSITELIB}/ksef2/infra/mappers/requests/limits.py
+${PYSITELIB}/ksef2/infra/mappers/requests/limits.pyc
+${PYSITELIB}/ksef2/infra/mappers/requests/limits.pyo
+${PYSITELIB}/ksef2/infra/mappers/requests/peppol.py
+${PYSITELIB}/ksef2/infra/mappers/requests/peppol.pyc
+${PYSITELIB}/ksef2/infra/mappers/requests/peppol.pyo
+${PYSITELIB}/ksef2/infra/mappers/requests/permissions.py
+${PYSITELIB}/ksef2/infra/mappers/requests/permissions.pyc
+${PYSITELIB}/ksef2/infra/mappers/requests/permissions.pyo
+${PYSITELIB}/ksef2/infra/mappers/requests/session.py
+${PYSITELIB}/ksef2/infra/mappers/requests/session.pyc
+${PYSITELIB}/ksef2/infra/mappers/requests/session.pyo
+${PYSITELIB}/ksef2/infra/mappers/requests/testdata.py
+${PYSITELIB}/ksef2/infra/mappers/requests/testdata.pyc
+${PYSITELIB}/ksef2/infra/mappers/requests/testdata.pyo
+${PYSITELIB}/ksef2/infra/mappers/requests/tokens.py
+${PYSITELIB}/ksef2/infra/mappers/requests/tokens.pyc
+${PYSITELIB}/ksef2/infra/mappers/requests/tokens.pyo
 ${PYSITELIB}/ksef2/infra/schema/__init__.py
 ${PYSITELIB}/ksef2/infra/schema/__init__.pyc
 ${PYSITELIB}/ksef2/infra/schema/__init__.pyo
@@ -258,6 +282,34 @@ ${PYSITELIB}/ksef2/infra/schema/api/supp/session.pyo
 ${PYSITELIB}/ksef2/infra/schema/api/supp/testdata.py
 ${PYSITELIB}/ksef2/infra/schema/api/supp/testdata.pyc
 ${PYSITELIB}/ksef2/infra/schema/api/supp/testdata.pyo
+${PYSITELIB}/ksef2/infra/schema/fa3/__init__.py
+${PYSITELIB}/ksef2/infra/schema/fa3/__init__.pyc
+${PYSITELIB}/ksef2/infra/schema/fa3/__init__.pyo
+${PYSITELIB}/ksef2/infra/schema/fa3/definitions/ElementarneTypyDanych_v10-0E.xsd
+${PYSITELIB}/ksef2/infra/schema/fa3/definitions/KodyKrajow_v10-0E.xsd
+${PYSITELIB}/ksef2/infra/schema/fa3/definitions/StrukturyDanych_v10-0E.xsd
+${PYSITELIB}/ksef2/infra/schema/fa3/definitions/WspolneSzablonyWizualizacji_v12-0E.xsl
+${PYSITELIB}/ksef2/infra/schema/fa3/definitions/schemat.xsd
+${PYSITELIB}/ksef2/infra/schema/fa3/definitions/styl.xsl
+${PYSITELIB}/ksef2/infra/schema/fa3/definitions/wyroznik.xml
+${PYSITELIB}/ksef2/infra/schema/fa3/models/__init__.py
+${PYSITELIB}/ksef2/infra/schema/fa3/models/__init__.pyc
+${PYSITELIB}/ksef2/infra/schema/fa3/models/__init__.pyo
+${PYSITELIB}/ksef2/infra/schema/fa3/models/elementarne_typy_danych_v10_0_e.py
+${PYSITELIB}/ksef2/infra/schema/fa3/models/elementarne_typy_danych_v10_0_e.pyc
+${PYSITELIB}/ksef2/infra/schema/fa3/models/elementarne_typy_danych_v10_0_e.pyo
+${PYSITELIB}/ksef2/infra/schema/fa3/models/kody_krajow_v10_0_e.py
+${PYSITELIB}/ksef2/infra/schema/fa3/models/kody_krajow_v10_0_e.pyc
+${PYSITELIB}/ksef2/infra/schema/fa3/models/kody_krajow_v10_0_e.pyo
+${PYSITELIB}/ksef2/infra/schema/fa3/models/schemat.py
+${PYSITELIB}/ksef2/infra/schema/fa3/models/schemat.pyc
+${PYSITELIB}/ksef2/infra/schema/fa3/models/schemat.pyo
+${PYSITELIB}/ksef2/infra/schema/fa3/models/struktury_danych_v10_0_e.py
+${PYSITELIB}/ksef2/infra/schema/fa3/models/struktury_danych_v10_0_e.pyc
+${PYSITELIB}/ksef2/infra/schema/fa3/models/struktury_danych_v10_0_e.pyo
+${PYSITELIB}/ksef2/infra/schema/fa3/styles.py
+${PYSITELIB}/ksef2/infra/schema/fa3/styles.pyc
+${PYSITELIB}/ksef2/infra/schema/fa3/styles.pyo
 ${PYSITELIB}/ksef2/py.typed
 ${PYSITELIB}/ksef2/services/__init__.py
 ${PYSITELIB}/ksef2/services/__init__.pyc
@@ -277,6 +329,15 @@ ${PYSITELIB}/ksef2/services/peppol.pyo
 ${PYSITELIB}/ksef2/services/permissions.py
 ${PYSITELIB}/ksef2/services/permissions.pyc
 ${PYSITELIB}/ksef2/services/permissions.pyo
+${PYSITELIB}/ksef2/services/renderers/__init__.py
+${PYSITELIB}/ksef2/services/renderers/__init__.pyc
+${PYSITELIB}/ksef2/services/renderers/__init__.pyo
+${PYSITELIB}/ksef2/services/renderers/pdf.py
+${PYSITELIB}/ksef2/services/renderers/pdf.pyc
+${PYSITELIB}/ksef2/services/renderers/pdf.pyo
+${PYSITELIB}/ksef2/services/renderers/xslt.py
+${PYSITELIB}/ksef2/services/renderers/xslt.pyc
+${PYSITELIB}/ksef2/services/renderers/xslt.pyo
 ${PYSITELIB}/ksef2/services/session.py
 ${PYSITELIB}/ksef2/services/session.pyc
 ${PYSITELIB}/ksef2/services/session.pyo
@@ -289,3 +350,9 @@ ${PYSITELIB}/ksef2/services/testdata.pyo
 ${PYSITELIB}/ksef2/services/tokens.py
 ${PYSITELIB}/ksef2/services/tokens.pyc
 ${PYSITELIB}/ksef2/services/tokens.pyo
+${PYSITELIB}/ksef2/utils/__init__.py
+${PYSITELIB}/ksef2/utils/__init__.pyc
+${PYSITELIB}/ksef2/utils/__init__.pyo
+${PYSITELIB}/ksef2/utils/packages.py
+${PYSITELIB}/ksef2/utils/packages.pyc
+${PYSITELIB}/ksef2/utils/packages.pyo
diff --git a/py-ksef2/distinfo b/py-ksef2/distinfo
index fb35bd6512..1fda732622 100644
--- a/py-ksef2/distinfo
+++ b/py-ksef2/distinfo
@@ -1,5 +1,5 @@
 $NetBSD$
 
-BLAKE2s (ksef2-0.7.1.tar.gz) = ececa26124f6a5def6a4497222eabae012f6b181ce36fd318b21ed0dd36da7cf
-SHA512 (ksef2-0.7.1.tar.gz) = 9b9f62bdb657d16b11a1383df88b7e2ba22096ba71c63dd68b38f21003b2c01bec8babdec1d40e31f1def15a99c699e25ae906955f83f4f3427c5ba3e462dc42
-Size (ksef2-0.7.1.tar.gz) = 1808729 bytes
+BLAKE2s (ksef2-0.8.0.tar.gz) = a27993d4f53e3ffa0f9522d45b667080855b53cccc15f8c675f8032ff89de31e
+SHA512 (ksef2-0.8.0.tar.gz) = 4c76bdd4aee6cc456ebc7cc1ef92d193964ad3a6b813cd27912515d1f8f00bc37c2364e972e752da12e29e4c9e3e1a208e2a9415d9bf54617cb5f3db464c4ebb
+Size (ksef2-0.8.0.tar.gz) = 1905363 bytes
diff --git a/py-signxml/Makefile b/py-signxml/Makefile
index 37fc4b091c..e99d2b2182 100644
--- a/py-signxml/Makefile
+++ b/py-signxml/Makefile
@@ -14,8 +14,7 @@ LICENSE=	apache-2.0
 
 WRKSRC=	${WRKDIR}/${DISTNAME}
 
-# "lxml >= 5.2.1, < 7",  # Ubuntu 24.04 LTS
-DEPENDS+=	${PYPKGPREFIX}-lxml>=5.2.1:../../textproc/py-lxml
+DEPENDS+=	${PYPKGPREFIX}-lxml>=5.2.1<7:../../textproc/py-lxml
 DEPENDS+=	${PYPKGPREFIX}-cryptography>=43.0.0:../../security/py-cryptography
 DEPENDS+=	${PYPKGPREFIX}-certifi>=2023.11.17:../../security/py-certifi
 
diff --git a/py-xsdata-pydantic/DESCR b/py-xsdata-pydantic/DESCR
new file mode 100644
index 0000000000..86bb32dc88
--- /dev/null
+++ b/py-xsdata-pydantic/DESCR
@@ -0,0 +1,5 @@
+xsData is a complete data binding library for python allowing
+developers to access and use XML and JSON documents as simple
+objects rather than using DOM.
+
+Now powered by pydantic!
diff --git a/py-xsdata-pydantic/Makefile b/py-xsdata-pydantic/Makefile
new file mode 100644
index 0000000000..5ebf2bf2b7
--- /dev/null
+++ b/py-xsdata-pydantic/Makefile
@@ -0,0 +1,23 @@
+# $NetBSD$
+
+DISTNAME=	xsdata-pydantic-24.5
+PKGNAME=	${PYPKGPREFIX}-${DISTNAME}
+CATEGORIES=	textproc
+MASTER_SITES=	${MASTER_SITE_GITHUB:=tefra/}
+GITHUB_PROJECT=	xsdata-pydantic
+GITHUB_TAG=	refs/tags/v${PKGVERSION_NOREV}
+
+MAINTAINER=	bartosz.kuzma%gmail.com@localhost
+HOMEPAGE=	https://github.com/tefra/xsdata-pydantic/
+COMMENT=	xsdata powered by pydantic
+LICENSE=	mit
+
+WRKSRC=		${WRKDIR}/${DISTNAME}
+
+DEPENDS+=	${PYPKGPREFIX}-pydantic>=2.6:../../devel/py-pydantic
+DEPENDS+=	${PYPKGPREFIX}-xsdata>=24.5:../../wip/py-xsdata
+
+USE_LANGUAGES=	# none
+
+.include "../../lang/python/wheel.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/py-xsdata-pydantic/PLIST b/py-xsdata-pydantic/PLIST
new file mode 100644
index 0000000000..6009fab213
--- /dev/null
+++ b/py-xsdata-pydantic/PLIST
@@ -0,0 +1,32 @@
+@comment $NetBSD$
+${PYSITELIB}/${WHEEL_INFODIR}/METADATA
+${PYSITELIB}/${WHEEL_INFODIR}/RECORD
+${PYSITELIB}/${WHEEL_INFODIR}/WHEEL
+${PYSITELIB}/${WHEEL_INFODIR}/entry_points.txt
+${PYSITELIB}/${WHEEL_INFODIR}/licenses/LICENSE
+${PYSITELIB}/${WHEEL_INFODIR}/top_level.txt
+${PYSITELIB}/xsdata_pydantic/__init__.py
+${PYSITELIB}/xsdata_pydantic/__init__.pyc
+${PYSITELIB}/xsdata_pydantic/__init__.pyo
+${PYSITELIB}/xsdata_pydantic/bindings.py
+${PYSITELIB}/xsdata_pydantic/bindings.pyc
+${PYSITELIB}/xsdata_pydantic/bindings.pyo
+${PYSITELIB}/xsdata_pydantic/compat.py
+${PYSITELIB}/xsdata_pydantic/compat.pyc
+${PYSITELIB}/xsdata_pydantic/compat.pyo
+${PYSITELIB}/xsdata_pydantic/fields.py
+${PYSITELIB}/xsdata_pydantic/fields.pyc
+${PYSITELIB}/xsdata_pydantic/fields.pyo
+${PYSITELIB}/xsdata_pydantic/generator.py
+${PYSITELIB}/xsdata_pydantic/generator.pyc
+${PYSITELIB}/xsdata_pydantic/generator.pyo
+${PYSITELIB}/xsdata_pydantic/hooks/__init__.py
+${PYSITELIB}/xsdata_pydantic/hooks/__init__.pyc
+${PYSITELIB}/xsdata_pydantic/hooks/__init__.pyo
+${PYSITELIB}/xsdata_pydantic/hooks/class_type.py
+${PYSITELIB}/xsdata_pydantic/hooks/class_type.pyc
+${PYSITELIB}/xsdata_pydantic/hooks/class_type.pyo
+${PYSITELIB}/xsdata_pydantic/hooks/cli.py
+${PYSITELIB}/xsdata_pydantic/hooks/cli.pyc
+${PYSITELIB}/xsdata_pydantic/hooks/cli.pyo
+${PYSITELIB}/xsdata_pydantic/py.typed
diff --git a/py-xsdata-pydantic/distinfo b/py-xsdata-pydantic/distinfo
new file mode 100644
index 0000000000..a9bdfadb77
--- /dev/null
+++ b/py-xsdata-pydantic/distinfo
@@ -0,0 +1,5 @@
+$NetBSD$
+
+BLAKE2s (xsdata-pydantic-24.5.tar.gz) = 7704ed4cc6aadad2f546867c643700fd23914f8576e20afb41611b01081ee575
+SHA512 (xsdata-pydantic-24.5.tar.gz) = 3fe1885f3c832081dd2c064c29090d7f5aebd5bf9ffeb869765e1b593f92bf86c5c6b97c4f9162d1325a43cb1a1be88d2ee793e6bbb2d7fec8841825a90579e4
+Size (xsdata-pydantic-24.5.tar.gz) = 18907 bytes
diff --git a/py-xsdata/DESCR b/py-xsdata/DESCR
new file mode 100644
index 0000000000..b313ec9123
--- /dev/null
+++ b/py-xsdata/DESCR
@@ -0,0 +1,12 @@
+xsData is a complete data binding library for python allowing
+developers to access and use XML and JSON documents as simple
+objects rather than using DOM.
+
+The code generator supports XML schemas, DTD, WSDL definitions,
+XML & JSON documents. It produces simple dataclasses with type
+hints and simple binding metadata.
+
+The included XML and JSON parser/serializer are highly optimized
+and adaptable, with multiple handlers and configuration properties.
+
+xsData is constantly tested against the W3C XML Schema 1.1 test suite.
diff --git a/py-xsdata/Makefile b/py-xsdata/Makefile
new file mode 100644
index 0000000000..6fdad98a3b
--- /dev/null
+++ b/py-xsdata/Makefile
@@ -0,0 +1,22 @@
+# $NetBSD$
+
+DISTNAME=	xsdata-26.2
+PKGNAME=	${PYPKGPREFIX}-${DISTNAME}
+CATEGORIES=	textproc
+MASTER_SITES=	${MASTER_SITE_GITHUB:=tefra/}
+GITHUB_PROJECT=	xsdata
+GITHUB_TAG=	refs/tags/v${PKGVERSION_NOREV}
+
+MAINTAINER=	bartosz.kuzma%gmail.com@localhost
+HOMEPAGE=	https://github.com/tefra/xsdata/
+COMMENT=	Naive XML Bindings for python
+LICENSE=	mit
+
+WRKSRC=		${WRKDIR}/${DISTNAME}
+
+DEPENDS+=	${PYPKGPREFIX}-typing-extensions>=4.12.0:../../devel/py-typing-extensions
+
+USE_LANGUAGES=	# none
+
+.include "../../lang/python/wheel.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/py-xsdata/PLIST b/py-xsdata/PLIST
new file mode 100644
index 0000000000..9349fa2473
--- /dev/null
+++ b/py-xsdata/PLIST
@@ -0,0 +1,396 @@
+@comment $NetBSD$
+bin/xsdata
+${PYSITELIB}/${WHEEL_INFODIR}/METADATA
+${PYSITELIB}/${WHEEL_INFODIR}/RECORD
+${PYSITELIB}/${WHEEL_INFODIR}/WHEEL
+${PYSITELIB}/${WHEEL_INFODIR}/entry_points.txt
+${PYSITELIB}/${WHEEL_INFODIR}/licenses/LICENSE
+${PYSITELIB}/${WHEEL_INFODIR}/top_level.txt
+${PYSITELIB}/xsdata/__init__.py
+${PYSITELIB}/xsdata/__init__.pyc
+${PYSITELIB}/xsdata/__init__.pyo
+${PYSITELIB}/xsdata/__main__.py
+${PYSITELIB}/xsdata/__main__.pyc
+${PYSITELIB}/xsdata/__main__.pyo
+${PYSITELIB}/xsdata/cli.py
+${PYSITELIB}/xsdata/cli.pyc
+${PYSITELIB}/xsdata/cli.pyo
+${PYSITELIB}/xsdata/codegen/__init__.py
+${PYSITELIB}/xsdata/codegen/__init__.pyc
+${PYSITELIB}/xsdata/codegen/__init__.pyo
+${PYSITELIB}/xsdata/codegen/container.py
+${PYSITELIB}/xsdata/codegen/container.pyc
+${PYSITELIB}/xsdata/codegen/container.pyo
+${PYSITELIB}/xsdata/codegen/exceptions.py
+${PYSITELIB}/xsdata/codegen/exceptions.pyc
+${PYSITELIB}/xsdata/codegen/exceptions.pyo
+${PYSITELIB}/xsdata/codegen/handlers/__init__.py
+${PYSITELIB}/xsdata/codegen/handlers/__init__.pyc
+${PYSITELIB}/xsdata/codegen/handlers/__init__.pyo
+${PYSITELIB}/xsdata/codegen/handlers/add_attribute_substitutions.py
+${PYSITELIB}/xsdata/codegen/handlers/add_attribute_substitutions.pyc
+${PYSITELIB}/xsdata/codegen/handlers/add_attribute_substitutions.pyo
+${PYSITELIB}/xsdata/codegen/handlers/calculate_attribute_paths.py
+${PYSITELIB}/xsdata/codegen/handlers/calculate_attribute_paths.pyc
+${PYSITELIB}/xsdata/codegen/handlers/calculate_attribute_paths.pyo
+${PYSITELIB}/xsdata/codegen/handlers/create_compound_fields.py
+${PYSITELIB}/xsdata/codegen/handlers/create_compound_fields.pyc
+${PYSITELIB}/xsdata/codegen/handlers/create_compound_fields.pyo
+${PYSITELIB}/xsdata/codegen/handlers/create_wrapper_fields.py
+${PYSITELIB}/xsdata/codegen/handlers/create_wrapper_fields.pyc
+${PYSITELIB}/xsdata/codegen/handlers/create_wrapper_fields.pyo
+${PYSITELIB}/xsdata/codegen/handlers/designate_class_packages.py
+${PYSITELIB}/xsdata/codegen/handlers/designate_class_packages.pyc
+${PYSITELIB}/xsdata/codegen/handlers/designate_class_packages.pyo
+${PYSITELIB}/xsdata/codegen/handlers/detect_circular_references.py
+${PYSITELIB}/xsdata/codegen/handlers/detect_circular_references.pyc
+${PYSITELIB}/xsdata/codegen/handlers/detect_circular_references.pyo
+${PYSITELIB}/xsdata/codegen/handlers/disambiguate_choices.py
+${PYSITELIB}/xsdata/codegen/handlers/disambiguate_choices.pyc
+${PYSITELIB}/xsdata/codegen/handlers/disambiguate_choices.pyo
+${PYSITELIB}/xsdata/codegen/handlers/filter_classes.py
+${PYSITELIB}/xsdata/codegen/handlers/filter_classes.pyc
+${PYSITELIB}/xsdata/codegen/handlers/filter_classes.pyo
+${PYSITELIB}/xsdata/codegen/handlers/flatten_attribute_groups.py
+${PYSITELIB}/xsdata/codegen/handlers/flatten_attribute_groups.pyc
+${PYSITELIB}/xsdata/codegen/handlers/flatten_attribute_groups.pyo
+${PYSITELIB}/xsdata/codegen/handlers/flatten_class_extensions.py
+${PYSITELIB}/xsdata/codegen/handlers/flatten_class_extensions.pyc
+${PYSITELIB}/xsdata/codegen/handlers/flatten_class_extensions.pyo
+${PYSITELIB}/xsdata/codegen/handlers/merge_attributes.py
+${PYSITELIB}/xsdata/codegen/handlers/merge_attributes.pyc
+${PYSITELIB}/xsdata/codegen/handlers/merge_attributes.pyo
+${PYSITELIB}/xsdata/codegen/handlers/merge_duplicate_classes.py
+${PYSITELIB}/xsdata/codegen/handlers/merge_duplicate_classes.pyc
+${PYSITELIB}/xsdata/codegen/handlers/merge_duplicate_classes.pyo
+${PYSITELIB}/xsdata/codegen/handlers/process_attributes_types.py
+${PYSITELIB}/xsdata/codegen/handlers/process_attributes_types.pyc
+${PYSITELIB}/xsdata/codegen/handlers/process_attributes_types.pyo
+${PYSITELIB}/xsdata/codegen/handlers/process_mixed_content_class.py
+${PYSITELIB}/xsdata/codegen/handlers/process_mixed_content_class.pyc
+${PYSITELIB}/xsdata/codegen/handlers/process_mixed_content_class.pyo
+${PYSITELIB}/xsdata/codegen/handlers/rename_duplicate_attributes.py
+${PYSITELIB}/xsdata/codegen/handlers/rename_duplicate_attributes.pyc
+${PYSITELIB}/xsdata/codegen/handlers/rename_duplicate_attributes.pyo
+${PYSITELIB}/xsdata/codegen/handlers/rename_duplicate_classes.py
+${PYSITELIB}/xsdata/codegen/handlers/rename_duplicate_classes.pyc
+${PYSITELIB}/xsdata/codegen/handlers/rename_duplicate_classes.pyo
+${PYSITELIB}/xsdata/codegen/handlers/reset_attribute_sequence_numbers.py
+${PYSITELIB}/xsdata/codegen/handlers/reset_attribute_sequence_numbers.pyc
+${PYSITELIB}/xsdata/codegen/handlers/reset_attribute_sequence_numbers.pyo
+${PYSITELIB}/xsdata/codegen/handlers/reset_attribute_sequences.py
+${PYSITELIB}/xsdata/codegen/handlers/reset_attribute_sequences.pyc
+${PYSITELIB}/xsdata/codegen/handlers/reset_attribute_sequences.pyo
+${PYSITELIB}/xsdata/codegen/handlers/sanitize_attributes_default_value.py
+${PYSITELIB}/xsdata/codegen/handlers/sanitize_attributes_default_value.pyc
+${PYSITELIB}/xsdata/codegen/handlers/sanitize_attributes_default_value.pyo
+${PYSITELIB}/xsdata/codegen/handlers/sanitize_enumeration_class.py
+${PYSITELIB}/xsdata/codegen/handlers/sanitize_enumeration_class.pyc
+${PYSITELIB}/xsdata/codegen/handlers/sanitize_enumeration_class.pyo
+${PYSITELIB}/xsdata/codegen/handlers/unnest_inner_classes.py
+${PYSITELIB}/xsdata/codegen/handlers/unnest_inner_classes.pyc
+${PYSITELIB}/xsdata/codegen/handlers/unnest_inner_classes.pyo
+${PYSITELIB}/xsdata/codegen/handlers/update_attributes_effective_choice.py
+${PYSITELIB}/xsdata/codegen/handlers/update_attributes_effective_choice.pyc
+${PYSITELIB}/xsdata/codegen/handlers/update_attributes_effective_choice.pyo
+${PYSITELIB}/xsdata/codegen/handlers/vacuum_inner_classes.py
+${PYSITELIB}/xsdata/codegen/handlers/vacuum_inner_classes.pyc
+${PYSITELIB}/xsdata/codegen/handlers/vacuum_inner_classes.pyo
+${PYSITELIB}/xsdata/codegen/handlers/validate_attributes_overrides.py
+${PYSITELIB}/xsdata/codegen/handlers/validate_attributes_overrides.pyc
+${PYSITELIB}/xsdata/codegen/handlers/validate_attributes_overrides.pyo
+${PYSITELIB}/xsdata/codegen/handlers/validate_references.py
+${PYSITELIB}/xsdata/codegen/handlers/validate_references.pyc
+${PYSITELIB}/xsdata/codegen/handlers/validate_references.pyo
+${PYSITELIB}/xsdata/codegen/mappers/__init__.py
+${PYSITELIB}/xsdata/codegen/mappers/__init__.pyc
+${PYSITELIB}/xsdata/codegen/mappers/__init__.pyo
+${PYSITELIB}/xsdata/codegen/mappers/definitions.py
+${PYSITELIB}/xsdata/codegen/mappers/definitions.pyc
+${PYSITELIB}/xsdata/codegen/mappers/definitions.pyo
+${PYSITELIB}/xsdata/codegen/mappers/dict.py
+${PYSITELIB}/xsdata/codegen/mappers/dict.pyc
+${PYSITELIB}/xsdata/codegen/mappers/dict.pyo
+${PYSITELIB}/xsdata/codegen/mappers/dtd.py
+${PYSITELIB}/xsdata/codegen/mappers/dtd.pyc
+${PYSITELIB}/xsdata/codegen/mappers/dtd.pyo
+${PYSITELIB}/xsdata/codegen/mappers/element.py
+${PYSITELIB}/xsdata/codegen/mappers/element.pyc
+${PYSITELIB}/xsdata/codegen/mappers/element.pyo
+${PYSITELIB}/xsdata/codegen/mappers/mixins.py
+${PYSITELIB}/xsdata/codegen/mappers/mixins.pyc
+${PYSITELIB}/xsdata/codegen/mappers/mixins.pyo
+${PYSITELIB}/xsdata/codegen/mappers/schema.py
+${PYSITELIB}/xsdata/codegen/mappers/schema.pyc
+${PYSITELIB}/xsdata/codegen/mappers/schema.pyo
+${PYSITELIB}/xsdata/codegen/mixins.py
+${PYSITELIB}/xsdata/codegen/mixins.pyc
+${PYSITELIB}/xsdata/codegen/mixins.pyo
+${PYSITELIB}/xsdata/codegen/models.py
+${PYSITELIB}/xsdata/codegen/models.pyc
+${PYSITELIB}/xsdata/codegen/models.pyo
+${PYSITELIB}/xsdata/codegen/parsers/__init__.py
+${PYSITELIB}/xsdata/codegen/parsers/__init__.pyc
+${PYSITELIB}/xsdata/codegen/parsers/__init__.pyo
+${PYSITELIB}/xsdata/codegen/parsers/definitions.py
+${PYSITELIB}/xsdata/codegen/parsers/definitions.pyc
+${PYSITELIB}/xsdata/codegen/parsers/definitions.pyo
+${PYSITELIB}/xsdata/codegen/parsers/dtd.py
+${PYSITELIB}/xsdata/codegen/parsers/dtd.pyc
+${PYSITELIB}/xsdata/codegen/parsers/dtd.pyo
+${PYSITELIB}/xsdata/codegen/parsers/schema.py
+${PYSITELIB}/xsdata/codegen/parsers/schema.pyc
+${PYSITELIB}/xsdata/codegen/parsers/schema.pyo
+${PYSITELIB}/xsdata/codegen/resolver.py
+${PYSITELIB}/xsdata/codegen/resolver.pyc
+${PYSITELIB}/xsdata/codegen/resolver.pyo
+${PYSITELIB}/xsdata/codegen/stopwatch.py
+${PYSITELIB}/xsdata/codegen/stopwatch.pyc
+${PYSITELIB}/xsdata/codegen/stopwatch.pyo
+${PYSITELIB}/xsdata/codegen/transformer.py
+${PYSITELIB}/xsdata/codegen/transformer.pyc
+${PYSITELIB}/xsdata/codegen/transformer.pyo
+${PYSITELIB}/xsdata/codegen/utils.py
+${PYSITELIB}/xsdata/codegen/utils.pyc
+${PYSITELIB}/xsdata/codegen/utils.pyo
+${PYSITELIB}/xsdata/codegen/validator.py
+${PYSITELIB}/xsdata/codegen/validator.pyc
+${PYSITELIB}/xsdata/codegen/validator.pyo
+${PYSITELIB}/xsdata/codegen/writer.py
+${PYSITELIB}/xsdata/codegen/writer.pyc
+${PYSITELIB}/xsdata/codegen/writer.pyo
+${PYSITELIB}/xsdata/exceptions.py
+${PYSITELIB}/xsdata/exceptions.pyc
+${PYSITELIB}/xsdata/exceptions.pyo
+${PYSITELIB}/xsdata/formats/__init__.py
+${PYSITELIB}/xsdata/formats/__init__.pyc
+${PYSITELIB}/xsdata/formats/__init__.pyo
+${PYSITELIB}/xsdata/formats/converter.py
+${PYSITELIB}/xsdata/formats/converter.pyc
+${PYSITELIB}/xsdata/formats/converter.pyo
+${PYSITELIB}/xsdata/formats/dataclass/__init__.py
+${PYSITELIB}/xsdata/formats/dataclass/__init__.pyc
+${PYSITELIB}/xsdata/formats/dataclass/__init__.pyo
+${PYSITELIB}/xsdata/formats/dataclass/client.py
+${PYSITELIB}/xsdata/formats/dataclass/client.pyc
+${PYSITELIB}/xsdata/formats/dataclass/client.pyo
+${PYSITELIB}/xsdata/formats/dataclass/compat.py
+${PYSITELIB}/xsdata/formats/dataclass/compat.pyc
+${PYSITELIB}/xsdata/formats/dataclass/compat.pyo
+${PYSITELIB}/xsdata/formats/dataclass/context.py
+${PYSITELIB}/xsdata/formats/dataclass/context.pyc
+${PYSITELIB}/xsdata/formats/dataclass/context.pyo
+${PYSITELIB}/xsdata/formats/dataclass/filters.py
+${PYSITELIB}/xsdata/formats/dataclass/filters.pyc
+${PYSITELIB}/xsdata/formats/dataclass/filters.pyo
+${PYSITELIB}/xsdata/formats/dataclass/generator.py
+${PYSITELIB}/xsdata/formats/dataclass/generator.pyc
+${PYSITELIB}/xsdata/formats/dataclass/generator.pyo
+${PYSITELIB}/xsdata/formats/dataclass/models/__init__.py
+${PYSITELIB}/xsdata/formats/dataclass/models/__init__.pyc
+${PYSITELIB}/xsdata/formats/dataclass/models/__init__.pyo
+${PYSITELIB}/xsdata/formats/dataclass/models/builders.py
+${PYSITELIB}/xsdata/formats/dataclass/models/builders.pyc
+${PYSITELIB}/xsdata/formats/dataclass/models/builders.pyo
+${PYSITELIB}/xsdata/formats/dataclass/models/elements.py
+${PYSITELIB}/xsdata/formats/dataclass/models/elements.pyc
+${PYSITELIB}/xsdata/formats/dataclass/models/elements.pyo
+${PYSITELIB}/xsdata/formats/dataclass/models/generics.py
+${PYSITELIB}/xsdata/formats/dataclass/models/generics.pyc
+${PYSITELIB}/xsdata/formats/dataclass/models/generics.pyo
+${PYSITELIB}/xsdata/formats/dataclass/parsers/__init__.py
+${PYSITELIB}/xsdata/formats/dataclass/parsers/__init__.pyc
+${PYSITELIB}/xsdata/formats/dataclass/parsers/__init__.pyo
+${PYSITELIB}/xsdata/formats/dataclass/parsers/bases.py
+${PYSITELIB}/xsdata/formats/dataclass/parsers/bases.pyc
+${PYSITELIB}/xsdata/formats/dataclass/parsers/bases.pyo
+${PYSITELIB}/xsdata/formats/dataclass/parsers/config.py
+${PYSITELIB}/xsdata/formats/dataclass/parsers/config.pyc
+${PYSITELIB}/xsdata/formats/dataclass/parsers/config.pyo
+${PYSITELIB}/xsdata/formats/dataclass/parsers/dict.py
+${PYSITELIB}/xsdata/formats/dataclass/parsers/dict.pyc
+${PYSITELIB}/xsdata/formats/dataclass/parsers/dict.pyo
+${PYSITELIB}/xsdata/formats/dataclass/parsers/handlers/__init__.py
+${PYSITELIB}/xsdata/formats/dataclass/parsers/handlers/__init__.pyc
+${PYSITELIB}/xsdata/formats/dataclass/parsers/handlers/__init__.pyo
+${PYSITELIB}/xsdata/formats/dataclass/parsers/handlers/lxml.py
+${PYSITELIB}/xsdata/formats/dataclass/parsers/handlers/lxml.pyc
+${PYSITELIB}/xsdata/formats/dataclass/parsers/handlers/lxml.pyo
+${PYSITELIB}/xsdata/formats/dataclass/parsers/handlers/native.py
+${PYSITELIB}/xsdata/formats/dataclass/parsers/handlers/native.pyc
+${PYSITELIB}/xsdata/formats/dataclass/parsers/handlers/native.pyo
+${PYSITELIB}/xsdata/formats/dataclass/parsers/json.py
+${PYSITELIB}/xsdata/formats/dataclass/parsers/json.pyc
+${PYSITELIB}/xsdata/formats/dataclass/parsers/json.pyo
+${PYSITELIB}/xsdata/formats/dataclass/parsers/mixins.py
+${PYSITELIB}/xsdata/formats/dataclass/parsers/mixins.pyc
+${PYSITELIB}/xsdata/formats/dataclass/parsers/mixins.pyo
+${PYSITELIB}/xsdata/formats/dataclass/parsers/nodes/__init__.py
+${PYSITELIB}/xsdata/formats/dataclass/parsers/nodes/__init__.pyc
+${PYSITELIB}/xsdata/formats/dataclass/parsers/nodes/__init__.pyo
+${PYSITELIB}/xsdata/formats/dataclass/parsers/nodes/element.py
+${PYSITELIB}/xsdata/formats/dataclass/parsers/nodes/element.pyc
+${PYSITELIB}/xsdata/formats/dataclass/parsers/nodes/element.pyo
+${PYSITELIB}/xsdata/formats/dataclass/parsers/nodes/primitive.py
+${PYSITELIB}/xsdata/formats/dataclass/parsers/nodes/primitive.pyc
+${PYSITELIB}/xsdata/formats/dataclass/parsers/nodes/primitive.pyo
+${PYSITELIB}/xsdata/formats/dataclass/parsers/nodes/skip.py
+${PYSITELIB}/xsdata/formats/dataclass/parsers/nodes/skip.pyc
+${PYSITELIB}/xsdata/formats/dataclass/parsers/nodes/skip.pyo
+${PYSITELIB}/xsdata/formats/dataclass/parsers/nodes/standard.py
+${PYSITELIB}/xsdata/formats/dataclass/parsers/nodes/standard.pyc
+${PYSITELIB}/xsdata/formats/dataclass/parsers/nodes/standard.pyo
+${PYSITELIB}/xsdata/formats/dataclass/parsers/nodes/union.py
+${PYSITELIB}/xsdata/formats/dataclass/parsers/nodes/union.pyc
+${PYSITELIB}/xsdata/formats/dataclass/parsers/nodes/union.pyo
+${PYSITELIB}/xsdata/formats/dataclass/parsers/nodes/wildcard.py
+${PYSITELIB}/xsdata/formats/dataclass/parsers/nodes/wildcard.pyc
+${PYSITELIB}/xsdata/formats/dataclass/parsers/nodes/wildcard.pyo
+${PYSITELIB}/xsdata/formats/dataclass/parsers/nodes/wrapper.py
+${PYSITELIB}/xsdata/formats/dataclass/parsers/nodes/wrapper.pyc
+${PYSITELIB}/xsdata/formats/dataclass/parsers/nodes/wrapper.pyo
+${PYSITELIB}/xsdata/formats/dataclass/parsers/tree.py
+${PYSITELIB}/xsdata/formats/dataclass/parsers/tree.pyc
+${PYSITELIB}/xsdata/formats/dataclass/parsers/tree.pyo
+${PYSITELIB}/xsdata/formats/dataclass/parsers/utils.py
+${PYSITELIB}/xsdata/formats/dataclass/parsers/utils.pyc
+${PYSITELIB}/xsdata/formats/dataclass/parsers/utils.pyo
+${PYSITELIB}/xsdata/formats/dataclass/parsers/xml.py
+${PYSITELIB}/xsdata/formats/dataclass/parsers/xml.pyc
+${PYSITELIB}/xsdata/formats/dataclass/parsers/xml.pyo
+${PYSITELIB}/xsdata/formats/dataclass/ruff.toml
+${PYSITELIB}/xsdata/formats/dataclass/serializers/__init__.py
+${PYSITELIB}/xsdata/formats/dataclass/serializers/__init__.pyc
+${PYSITELIB}/xsdata/formats/dataclass/serializers/__init__.pyo
+${PYSITELIB}/xsdata/formats/dataclass/serializers/code.py
+${PYSITELIB}/xsdata/formats/dataclass/serializers/code.pyc
+${PYSITELIB}/xsdata/formats/dataclass/serializers/code.pyo
+${PYSITELIB}/xsdata/formats/dataclass/serializers/config.py
+${PYSITELIB}/xsdata/formats/dataclass/serializers/config.pyc
+${PYSITELIB}/xsdata/formats/dataclass/serializers/config.pyo
+${PYSITELIB}/xsdata/formats/dataclass/serializers/dict.py
+${PYSITELIB}/xsdata/formats/dataclass/serializers/dict.pyc
+${PYSITELIB}/xsdata/formats/dataclass/serializers/dict.pyo
+${PYSITELIB}/xsdata/formats/dataclass/serializers/json.py
+${PYSITELIB}/xsdata/formats/dataclass/serializers/json.pyc
+${PYSITELIB}/xsdata/formats/dataclass/serializers/json.pyo
+${PYSITELIB}/xsdata/formats/dataclass/serializers/mixins.py
+${PYSITELIB}/xsdata/formats/dataclass/serializers/mixins.pyc
+${PYSITELIB}/xsdata/formats/dataclass/serializers/mixins.pyo
+${PYSITELIB}/xsdata/formats/dataclass/serializers/tree.py
+${PYSITELIB}/xsdata/formats/dataclass/serializers/tree.pyc
+${PYSITELIB}/xsdata/formats/dataclass/serializers/tree.pyo
+${PYSITELIB}/xsdata/formats/dataclass/serializers/writers/__init__.py
+${PYSITELIB}/xsdata/formats/dataclass/serializers/writers/__init__.pyc
+${PYSITELIB}/xsdata/formats/dataclass/serializers/writers/__init__.pyo
+${PYSITELIB}/xsdata/formats/dataclass/serializers/writers/lxml.py
+${PYSITELIB}/xsdata/formats/dataclass/serializers/writers/lxml.pyc
+${PYSITELIB}/xsdata/formats/dataclass/serializers/writers/lxml.pyo
+${PYSITELIB}/xsdata/formats/dataclass/serializers/writers/native.py
+${PYSITELIB}/xsdata/formats/dataclass/serializers/writers/native.pyc
+${PYSITELIB}/xsdata/formats/dataclass/serializers/writers/native.pyo
+${PYSITELIB}/xsdata/formats/dataclass/serializers/xml.py
+${PYSITELIB}/xsdata/formats/dataclass/serializers/xml.pyc
+${PYSITELIB}/xsdata/formats/dataclass/serializers/xml.pyo
+${PYSITELIB}/xsdata/formats/dataclass/templates/class.jinja2
+${PYSITELIB}/xsdata/formats/dataclass/templates/docstrings.accessible.jinja2
+${PYSITELIB}/xsdata/formats/dataclass/templates/docstrings.blank.jinja2
+${PYSITELIB}/xsdata/formats/dataclass/templates/docstrings.google.jinja2
+${PYSITELIB}/xsdata/formats/dataclass/templates/docstrings.numpy.jinja2
+${PYSITELIB}/xsdata/formats/dataclass/templates/docstrings.rst.jinja2
+${PYSITELIB}/xsdata/formats/dataclass/templates/enum.jinja2
+${PYSITELIB}/xsdata/formats/dataclass/templates/imports.jinja2
+${PYSITELIB}/xsdata/formats/dataclass/templates/module.jinja2
+${PYSITELIB}/xsdata/formats/dataclass/templates/package.jinja2
+${PYSITELIB}/xsdata/formats/dataclass/templates/service.jinja2
+${PYSITELIB}/xsdata/formats/dataclass/transports.py
+${PYSITELIB}/xsdata/formats/dataclass/transports.pyc
+${PYSITELIB}/xsdata/formats/dataclass/transports.pyo
+${PYSITELIB}/xsdata/formats/dataclass/typing.py
+${PYSITELIB}/xsdata/formats/dataclass/typing.pyc
+${PYSITELIB}/xsdata/formats/dataclass/typing.pyo
+${PYSITELIB}/xsdata/formats/mixins.py
+${PYSITELIB}/xsdata/formats/mixins.pyc
+${PYSITELIB}/xsdata/formats/mixins.pyo
+${PYSITELIB}/xsdata/formats/types.py
+${PYSITELIB}/xsdata/formats/types.pyc
+${PYSITELIB}/xsdata/formats/types.pyo
+${PYSITELIB}/xsdata/logger.py
+${PYSITELIB}/xsdata/logger.pyc
+${PYSITELIB}/xsdata/logger.pyo
+${PYSITELIB}/xsdata/models/__init__.py
+${PYSITELIB}/xsdata/models/__init__.pyc
+${PYSITELIB}/xsdata/models/__init__.pyo
+${PYSITELIB}/xsdata/models/config.py
+${PYSITELIB}/xsdata/models/config.pyc
+${PYSITELIB}/xsdata/models/config.pyo
+${PYSITELIB}/xsdata/models/datatype.py
+${PYSITELIB}/xsdata/models/datatype.pyc
+${PYSITELIB}/xsdata/models/datatype.pyo
+${PYSITELIB}/xsdata/models/dtd.py
+${PYSITELIB}/xsdata/models/dtd.pyc
+${PYSITELIB}/xsdata/models/dtd.pyo
+${PYSITELIB}/xsdata/models/enums.py
+${PYSITELIB}/xsdata/models/enums.pyc
+${PYSITELIB}/xsdata/models/enums.pyo
+${PYSITELIB}/xsdata/models/mixins.py
+${PYSITELIB}/xsdata/models/mixins.pyc
+${PYSITELIB}/xsdata/models/mixins.pyo
+${PYSITELIB}/xsdata/models/wsdl.py
+${PYSITELIB}/xsdata/models/wsdl.pyc
+${PYSITELIB}/xsdata/models/wsdl.pyo
+${PYSITELIB}/xsdata/models/xsd.py
+${PYSITELIB}/xsdata/models/xsd.pyc
+${PYSITELIB}/xsdata/models/xsd.pyo
+${PYSITELIB}/xsdata/py.typed
+${PYSITELIB}/xsdata/schemas/mathml3-common.xsd
+${PYSITELIB}/xsdata/schemas/mathml3-content.xsd
+${PYSITELIB}/xsdata/schemas/mathml3-presentation.xsd
+${PYSITELIB}/xsdata/schemas/mathml3-strict-content.xsd
+${PYSITELIB}/xsdata/schemas/mathml3.xsd
+${PYSITELIB}/xsdata/schemas/soapenc.xsd
+${PYSITELIB}/xsdata/schemas/xlink.xsd
+${PYSITELIB}/xsdata/schemas/xml.xsd
+${PYSITELIB}/xsdata/schemas/xsi.xsd
+${PYSITELIB}/xsdata/utils/__init__.py
+${PYSITELIB}/xsdata/utils/__init__.pyc
+${PYSITELIB}/xsdata/utils/__init__.pyo
+${PYSITELIB}/xsdata/utils/click.py
+${PYSITELIB}/xsdata/utils/click.pyc
+${PYSITELIB}/xsdata/utils/click.pyo
+${PYSITELIB}/xsdata/utils/collections.py
+${PYSITELIB}/xsdata/utils/collections.pyc
+${PYSITELIB}/xsdata/utils/collections.pyo
+${PYSITELIB}/xsdata/utils/constants.py
+${PYSITELIB}/xsdata/utils/constants.pyc
+${PYSITELIB}/xsdata/utils/constants.pyo
+${PYSITELIB}/xsdata/utils/dates.py
+${PYSITELIB}/xsdata/utils/dates.pyc
+${PYSITELIB}/xsdata/utils/dates.pyo
+${PYSITELIB}/xsdata/utils/debug.py
+${PYSITELIB}/xsdata/utils/debug.pyc
+${PYSITELIB}/xsdata/utils/debug.pyo
+${PYSITELIB}/xsdata/utils/downloader.py
+${PYSITELIB}/xsdata/utils/downloader.pyc
+${PYSITELIB}/xsdata/utils/downloader.pyo
+${PYSITELIB}/xsdata/utils/graphs.py
+${PYSITELIB}/xsdata/utils/graphs.pyc
+${PYSITELIB}/xsdata/utils/graphs.pyo
+${PYSITELIB}/xsdata/utils/hooks.py
+${PYSITELIB}/xsdata/utils/hooks.pyc
+${PYSITELIB}/xsdata/utils/hooks.pyo
+${PYSITELIB}/xsdata/utils/namespaces.py
+${PYSITELIB}/xsdata/utils/namespaces.pyc
+${PYSITELIB}/xsdata/utils/namespaces.pyo
+${PYSITELIB}/xsdata/utils/objects.py
+${PYSITELIB}/xsdata/utils/objects.pyc
+${PYSITELIB}/xsdata/utils/objects.pyo
+${PYSITELIB}/xsdata/utils/package.py
+${PYSITELIB}/xsdata/utils/package.pyc
+${PYSITELIB}/xsdata/utils/package.pyo
+${PYSITELIB}/xsdata/utils/testing.py
+${PYSITELIB}/xsdata/utils/testing.pyc
+${PYSITELIB}/xsdata/utils/testing.pyo
+${PYSITELIB}/xsdata/utils/text.py
+${PYSITELIB}/xsdata/utils/text.pyc
+${PYSITELIB}/xsdata/utils/text.pyo
diff --git a/py-xsdata/distinfo b/py-xsdata/distinfo
new file mode 100644
index 0000000000..5aef98813a
--- /dev/null
+++ b/py-xsdata/distinfo
@@ -0,0 +1,5 @@
+$NetBSD$
+
+BLAKE2s (xsdata-26.2.tar.gz) = 069daf30f5eddc2cf07357dc8c9b3b5c77829faccc479286a83fbea2cba0d0f6
+SHA512 (xsdata-26.2.tar.gz) = 6d03167cae2d472ad5c276ba8594a0b0547b1a7a75d4e9da5cc27cfeccc9cb83d29e142c24139130e250c70934517c219ace6bf4811501585ca346c50da39ce7
+Size (xsdata-26.2.tar.gz) = 341924 bytes



Home | Main Index | Thread Index | Old Index