Skip to content

Commit c1ed1a0

Browse files
edmondchucnicholascarashleysommerdependabot[bot]ajnelson-nist
authored
chore: 7.2.1 to main (#3228)
* 7.1.3 prep (#3036) * 7.1.1 post release (#2953) * Fix Black formatting in ./admin/get_merged_prs.py (#2954) * build(deps-dev): bump ruff from 0.7.0 to 0.7.1 (#2955) Bumps [ruff](https://github.com/astral-sh/ruff) from 0.7.0 to 0.7.1. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.7.0...0.7.1) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ashley Sommer <ashleysommer@gmail.com> * Fix defined namespace warnings (#2964) * Fix defined namespace warnings Current docs-generation tests are polluted by lots of warnings that occur when Sphinx tries to read various parts of DefinedNamespace. * Fix tests that no longer need incorrect exceptions handled. * fix black formatting in test file * Undo typing changes, so this works on current pre-3.9 branch * better handling for any/all double-underscore properties * Don't include __slots__ in dir(). * test: earl test passing * Annotate Serializer.serialize and descendants (#2970) This patch aligns the type signatures on `Serializer` subclasses, including renaming the arbitrary-keywords dictionary to always be `**kwargs`. This is in part to prepare for the possibility of adding `*args` as a positional-argument delimiter. References: * #1890 (comment) Signed-off-by: Alex Nelson <alexander.nelson@nist.gov> * build(deps): bump orjson from 3.10.10 to 3.10.11 (#2966) Bumps [orjson](https://github.com/ijl/orjson) from 3.10.10 to 3.10.11. - [Release notes](https://github.com/ijl/orjson/releases) - [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md) - [Commits](ijl/orjson@3.10.10...3.10.11) --- updated-dependencies: - dependency-name: orjson dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump ruff from 0.7.1 to 0.7.2 (#2969) Bumps [ruff](https://github.com/astral-sh/ruff) from 0.7.1 to 0.7.2. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.7.1...0.7.2) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump ruff from 0.7.2 to 0.7.3 (#2979) Bumps [ruff](https://github.com/astral-sh/ruff) from 0.7.2 to 0.7.3. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.7.2...0.7.3) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump ruff from 0.7.3 to 0.8.0 (#2994) Bumps [ruff](https://github.com/astral-sh/ruff) from 0.7.3 to 0.8.0. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.7.3...0.8.0) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump orjson from 3.10.11 to 3.10.12 (#2991) Bumps [orjson](https://github.com/ijl/orjson) from 3.10.11 to 3.10.12. - [Release notes](https://github.com/ijl/orjson/releases) - [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md) - [Commits](ijl/orjson@3.10.11...3.10.12) --- updated-dependencies: - dependency-name: orjson dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * added Node as an exported name from the root package location. Updated linting commands section in the developer section to use ruff check. (#2981) * build(deps-dev): bump wheel from 0.45.0 to 0.45.1 (#2992) Bumps [wheel](https://github.com/pypa/wheel) from 0.45.0 to 0.45.1. - [Release notes](https://github.com/pypa/wheel/releases) - [Changelog](https://github.com/pypa/wheel/blob/main/docs/news.rst) - [Commits](pypa/wheel@0.45.0...0.45.1) --- updated-dependencies: - dependency-name: wheel dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Nicholas Car <nick@kurrawong.net> * feat: sort longturtle blank nodes (#2997) * feat: sort longturtle blank nodes in the object position by their cbd string * fix: #2767 * build(deps-dev): bump pytest from 8.3.3 to 8.3.4 (#2999) Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.3.3 to 8.3.4. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](pytest-dev/pytest@8.3.3...8.3.4) --- updated-dependencies: - dependency-name: pytest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump poetry from 1.8.4 to 1.8.5 (#3001) Bumps [poetry](https://github.com/python-poetry/poetry) from 1.8.4 to 1.8.5. - [Release notes](https://github.com/python-poetry/poetry/releases) - [Changelog](https://github.com/python-poetry/poetry/blob/1.8.5/CHANGELOG.md) - [Commits](python-poetry/poetry@1.8.4...1.8.5) --- updated-dependencies: - dependency-name: poetry dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump ruff from 0.8.0 to 0.8.2 (#3003) Bumps [ruff](https://github.com/astral-sh/ruff) from 0.8.0 to 0.8.2. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.8.0...0.8.2) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump ruff from 0.8.2 to 0.8.3 (#3010) Bumps [ruff](https://github.com/astral-sh/ruff) from 0.8.2 to 0.8.3. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.8.2...0.8.3) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump berkeleydb from 18.1.11 to 18.1.12 (#3009) Bumps [berkeleydb](https://www.jcea.es/programacion/pybsddb.htm) from 18.1.11 to 18.1.12. --- updated-dependencies: - dependency-name: berkeleydb dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> # Conflicts: # poetry.lock * build(deps): bump orjson from 3.10.12 to 3.10.13 (#3018) Bumps [orjson](https://github.com/ijl/orjson) from 3.10.12 to 3.10.13. - [Release notes](https://github.com/ijl/orjson/releases) - [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md) - [Commits](ijl/orjson@3.10.12...3.10.13) --- updated-dependencies: - dependency-name: orjson dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump ruff from 0.8.4 to 0.8.6 (#3025) Bumps [ruff](https://github.com/astral-sh/ruff) from 0.8.4 to 0.8.6. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.8.4...0.8.6) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat: deterministic longturtle serialisation using RDF canonicalization + n-triples sort (#3008) * feat: use the RGDA1 canonicalization algorithm + lexical n-triples sort to produce deterministic longturtle serialisation * chore: normalise usage of format * chore: apply black * fix: double up of semicolons when subject is a blank node * fix: lint * jsonld: Do not merge nodes with different invalid URIs (#3011) When parsing JSON-LD with invalid URIs in the `@id`, the `generalized_rdf: True` option allows parsing these nodes as blank nodes instead of outright rejecting the document. However, all nodes with invalid URIs were mapped to the same blank node, resulting in incorrect data. For example, without this patch, the new test fails with: ``` AssertionError: Expected: @Prefix schema: <https://schema.org/> . <https://example.org/root-object> schema:author [ schema:familyName "Doe" ; schema:givenName "Jane" ; schema:name "Jane Doe" ], [ schema:familyName "Doe" ; schema:givenName "John" ; schema:name "John Doe" ] . Got: @Prefix schema: <https://schema.org/> . <https://example.org/root-object> schema:author <> . <> schema:familyName "Doe" ; schema:givenName "Jane", "John" ; schema:name "Jane Doe", "John Doe" . ``` * Fixed incorrect ASK behaviour for dataset with one element (#2989) * Pass base uri to serializer when writing to file. (#2977) Co-authored-by: Nicholas Car <nick@kurrawong.net> * Dataset documentation improvements (#3012) * example printout improvements * added BN graph creation * updated tests var names & added one subtest * typos & improved formatting * updated Graph & Dataset docco * typo fix * fix code-in-comment syntax * fix code-in-comment syntax 2 * fix code-in-comment syntax - ellipses * fix code-in-comment syntax - sort print loop output * blacked * ruff fixes * Poetry 2.0.0 pyproject.toml file * move to PEP621 (Poetry 2.0.0) pyproject.toml * require poetry 2.0.0 * require poetry 2.0.0 * add in requirement for poetry-plugin-export * change from --sync to sync command * further pyproject.toml format updates * add poetry plugin to requirements-poetry.in * fix pre-commit poetry version to 2.0.0 * remove testing artifact * update license to 2025 * add me to contributors * remove outdated --check arg * typo * test add back in precommit args * test remove precommit args * match ruff version to pre-commit autoupdate PR #3026; add back in --check * re-remove --check * add David to CONTRIBUTORS * ruff in pyproject.toml to match pre-commit * updates for David's comments * fix Dataset docc ReST formatting * remove ConjunctiveGraph example; add Dataset example; add JSON-LS serialization example * Add RDFLib Path to SHACL path utility and corresponding tests (#2990) * shacl path parser: Add additional test case * shacl utilities: Add new SHACL path building utility with corresponding tests --------- Co-authored-by: Nicholas Car <nick@kurrawong.net> # Conflicts: # rdflib/extras/shacl.py * fix: typing and import issues * fix: line length as int * fix: ruff version conflict * fix: berkeleydb pin to 18.1.10 for python 3.8 compatibility * 3a not 2a --------- Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Alex Nelson <alexander.nelson@nist.gov> Co-authored-by: Nicholas Car <nick@kurrawong.net> Co-authored-by: Ashley Sommer <ashleysommer@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alex Nelson <alexander.nelson@nist.gov> Co-authored-by: joecrowleygaia <142864129+joecrowleygaia@users.noreply.github.com> Co-authored-by: Val Lorentz <vlorentz@softwareheritage.org> Co-authored-by: jcbiddle <114963309+jcbiddle@users.noreply.github.com> Co-authored-by: Sander Van Dooren <sandervd@users.noreply.github.com> Co-authored-by: Nicholas Car <nick@kurrawong.ai> Co-authored-by: Matt Goldberg <59745812+mgberg@users.noreply.github.com> * 7.1.3-pre-release * small docco update (#3053) * 7.1.3-post-release; some updated release info for devs (#3054) * build(deps): bump orjson from 3.10.13 to 3.10.15 (#3055) Bumps [orjson](https://github.com/ijl/orjson) from 3.10.13 to 3.10.15. - [Release notes](https://github.com/ijl/orjson/releases) - [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md) - [Commits](ijl/orjson@3.10.13...3.10.15) --- updated-dependencies: - dependency-name: orjson dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump ruff from 0.8.6 to 0.9.2 (#3047) Bumps [ruff](https://github.com/astral-sh/ruff) from 0.8.6 to 0.9.2. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.8.6...0.9.2) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump html5rdf from 1.2.0 to 1.2.1 in /docker/latest (#3045) Bumps [html5rdf](https://github.com/RDFLib/html5rdf) from 1.2.0 to 1.2.1. - [Release notes](https://github.com/RDFLib/html5rdf/releases) - [Changelog](https://github.com/RDFLib/html5rdf/blob/main/CHANGES.rst) - [Commits](https://github.com/RDFLib/html5rdf/commits/v1.2.1) --- updated-dependencies: - dependency-name: html5rdf dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump html5rdf from 1.2 to 1.2.1 (#3048) Bumps [html5rdf](https://github.com/RDFLib/html5rdf) from 1.2 to 1.2.1. - [Release notes](https://github.com/RDFLib/html5rdf/releases) - [Changelog](https://github.com/RDFLib/html5rdf/blob/main/CHANGES.rst) - [Commits](https://github.com/RDFLib/html5rdf/commits/v1.2.1) --- updated-dependencies: - dependency-name: html5rdf dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump wheel from 0.44.0 to 0.45.1 (#3051) Bumps [wheel](https://github.com/pypa/wheel) from 0.44.0 to 0.45.1. - [Release notes](https://github.com/pypa/wheel/releases) - [Changelog](https://github.com/pypa/wheel/blob/main/docs/news.rst) - [Commits](pypa/wheel@0.44.0...0.45.1) --- updated-dependencies: - dependency-name: wheel dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump ruff 0.9.2 - 0.9.6 + readthedocs conf (#3072) * build(deps-dev): bump ruff from 0.9.2 to 0.9.6 Bumps [ruff](https://github.com/astral-sh/ruff) from 0.9.2 to 0.9.6. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.9.2...0.9.6) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * add readthedocs sphynx.configuration --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Nicholas Car <nick@kurrawong.net> Co-authored-by: Nicholas Car <nick@kurrawong.ai> * build(deps): bump lxml from 5.3.0 to 5.3.1 (#3071) Bumps [lxml](https://github.com/lxml/lxml) from 5.3.0 to 5.3.1. - [Release notes](https://github.com/lxml/lxml/releases) - [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt) - [Commits](lxml/lxml@lxml-5.3.0...lxml-5.3.1) --- updated-dependencies: - dependency-name: lxml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Nicholas Car <nick@kurrawong.net> * Cope with Namespace annotations in Python 3.14 (#3084) The __annotations__ member can be incomplete, use the get_annotations() helper from annotationlib (Python >= 3.14) or inspect (Python >= 3.10) if available. Related: #3083 Signed-off-by: Nils Philippsen <nils@tiptoe.de> Co-authored-by: Nicholas Car <nick@kurrawong.net> * build(deps): bump dorny/test-reporter from 1 to 2 (#3081) Bumps [dorny/test-reporter](https://github.com/dorny/test-reporter) from 1 to 2. - [Release notes](https://github.com/dorny/test-reporter/releases) - [Changelog](https://github.com/dorny/test-reporter/blob/main/CHANGELOG.md) - [Commits](dorny/test-reporter@v1...v2) --- updated-dependencies: - dependency-name: dorny/test-reporter dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump pytest from 8.3.4 to 8.3.5 (#3079) Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.3.4 to 8.3.5. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](pytest-dev/pytest@8.3.4...8.3.5) --- updated-dependencies: - dependency-name: pytest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump library/python in /docker/unstable (#3067) Bumps library/python from 3.12.7-slim to 3.13.2-slim. --- updated-dependencies: - dependency-name: library/python dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Nicholas Car <nick@kurrawong.net> * build(deps): bump library/python in /docker/latest (#3066) Bumps library/python from 3.12.7-slim to 3.13.2-slim. --- updated-dependencies: - dependency-name: library/python dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Nicholas Car <nick@kurrawong.net> * remove old hacks against 2to3 (#3076) This reverts e2fb491 Co-authored-by: Nicholas Car <nick@kurrawong.net> * Downgrade log message about plugin without override argument to debug from warning (#3063) Original issue - #1880 was worked around by providing a fall back call without "override" in - #2018 As a result any user with such a store (in our case just <class 'rdflib.plugins.memory.IOMemory'>) is flooded with such warnings pointing to that issue #1880 and for all means and purposes AFAIK just need to ignore them since there is nothing user can do to address it. That raises the question on why is it a Warning at a user level and not some debug message for developers/troubleshooting etc? Hence I am lowering it to debug level to bring peace of mind to users of the library. Co-authored-by: Nicholas Car <nick@kurrawong.net> * [pre-commit.ci] pre-commit autoupdate (#3056) updates: - [github.com/astral-sh/ruff-pre-commit: v0.5.4 → v0.11.0](astral-sh/ruff-pre-commit@v0.5.4...v0.11.0) - [github.com/psf/black-pre-commit-mirror: 24.4.2 → 25.1.0](psf/black-pre-commit-mirror@24.4.2...25.1.0) - [github.com/python-poetry/poetry: 1.8.3 → 2.1.1](python-poetry/poetry@1.8.3...2.1.1) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Nicholas Car <nick@kurrawong.net> * Reduce warnings (#3085) * build(deps-dev): bump ruff from 0.9.2 to 0.9.6 Bumps [ruff](https://github.com/astral-sh/ruff) from 0.9.2 to 0.9.6. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.9.2...0.9.6) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * add readthedocs sphynx.configuration * replace ConjunctiveGraph() with Dataset() in tests * tidy some notation * align black version * fix black & ruff * poetry --check -> poetry-check --lock * more CG -> Datasets * ruff * GC -> Dataset --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Reduce warnings (#3087) * build(deps-dev): bump ruff from 0.9.2 to 0.9.6 Bumps [ruff](https://github.com/astral-sh/ruff) from 0.9.2 to 0.9.6. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.9.2...0.9.6) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * add readthedocs sphynx.configuration * replace ConjunctiveGraph() with Dataset() in tests * tidy some notation * align black version * fix black & ruff * poetry --check -> poetry-check --lock * more CG -> Datasets * ruff * GC -> Dataset * CG -> D * ruff fixes --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Allow multi subjects & objects in graph funcs (#3086) * subjects() * objects() & tests * blacked * build(deps): bump library/python in /docker/unstable (#3089) Bumps library/python from `ae9f9ac` to `8f3aba4`. --- updated-dependencies: - dependency-name: library/python dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * 7.1.4 pre-release (#3098) * Merge 7-maintenance branch into 7.x (#3222) * 7.1.4 pre-release * fix namespace prefixes in longturtle serialization (#3134) Co-authored-by: Daan de Schepper <d.de.schepper@rijksmuseum.nl> * Fix failing webtest (#3194) * test: fix failing webtest Fixes #3192 * Revert "remove old hacks against 2to3 (#3076)" (#3195) This reverts commit b74c657. * Specify `Optional` parameters in `Graph.triples_choices` (#3075) * Specify `Optional` parameters in `Graph.triples_choices` The two non-list parameters can be `None`, but this is not reflected in the type hint. Also introduces a type alias to simplify method signatures. * style: remove unused imports --------- Co-authored-by: Nicholas Car <nick@kurrawong.net> Co-authored-by: Edmond Chuc <37032744+edmondchuc@users.noreply.github.com> Co-authored-by: Edmond Chuc <edmond@kurrawong.ai> * feat: canonicalization with longturtle serializer now optional (#3197) * feat: canonicalization with longturtle serializer now optional Fixes #3196 * docs: fix docs build error by removing py obj reference to canon --------- Co-authored-by: Nicholas Car <nick@kurrawong.ai> Co-authored-by: Daan de Schepper <d.de.schepper@rijksmuseum.nl> Co-authored-by: Sigmund Lahn <s@lahn.no> Co-authored-by: Nicholas Car <nick@kurrawong.net> * [7.x] notation3.py: don't normalize float representation (#3221) * 7.1.4 pre-release * fix namespace prefixes in longturtle serialization (#3134) Co-authored-by: Daan de Schepper <d.de.schepper@rijksmuseum.nl> * Fix failing webtest (#3194) * test: fix failing webtest Fixes #3192 * Revert "remove old hacks against 2to3 (#3076)" (#3195) This reverts commit b74c657. * Specify `Optional` parameters in `Graph.triples_choices` (#3075) * Specify `Optional` parameters in `Graph.triples_choices` The two non-list parameters can be `None`, but this is not reflected in the type hint. Also introduces a type alias to simplify method signatures. * style: remove unused imports --------- Co-authored-by: Nicholas Car <nick@kurrawong.net> Co-authored-by: Edmond Chuc <37032744+edmondchuc@users.noreply.github.com> Co-authored-by: Edmond Chuc <edmond@kurrawong.ai> * feat: canonicalization with longturtle serializer now optional (#3197) * feat: canonicalization with longturtle serializer now optional Fixes #3196 * docs: fix docs build error by removing py obj reference to canon * added n3 test to check for internal float normalization made as a separate commit to illustrate the old broken behavior priro to the fix in the next commit * notation3.py: don't normalize float representation fix behavior of the n3 parser family to avoid normalizing raw float string representation which makes it impossible to roundtrip the exact original string representation of e.g. 1e10 * test: refactor test_float_no_norm to use pytest parametrization * style: add noqa to sfloat class * chore: remove unused mypy type ignore * docs: fix sfloat reference * fix: sphinx nitpicky reference --------- Co-authored-by: Nicholas Car <nick@kurrawong.ai> Co-authored-by: Daan de Schepper <d.de.schepper@rijksmuseum.nl> Co-authored-by: Sigmund Lahn <s@lahn.no> Co-authored-by: Nicholas Car <nick@kurrawong.net> Co-authored-by: Tom Gillespie <tgbugs@gmail.com> * Fix incorrect deskolemization of literals (#3127) (#3223) * Fix issue 3126 * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: Daan de Schepper <daan@daandeschepper.nl> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * chore: prep 7.2.0 release (#3224) * chore: prep 7.2.0 release * chore: remove mention of charter * chore: remove scratch file * chore: prep 7.2.1 release (#3225) * chore: prep 7.2.1 release * docs: add new step in releasing section * build: update poetry lockfile * docs: fix title underline too short * chore: 7.2.1 post release (#3226) * chore: bump rdflib version in docker image requirements.txt * chore: generate docker requirements.txt using pip-compile task Adding --no-strip-extras to pip-compile command to preserve existing behaviour in pip-tools v8 * chore: update pyproject.toml version with alpha suffix * fix: type issue - probably due to a mistake in the merge * fix: bad merge * fix: bad merge, restore arg to longturtle serializer * chore: delete merged_prs.json --------- Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Alex Nelson <alexander.nelson@nist.gov> Signed-off-by: Nils Philippsen <nils@tiptoe.de> Co-authored-by: Nicholas Car <nick@kurrawong.net> Co-authored-by: Ashley Sommer <ashleysommer@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alex Nelson <alexander.nelson@nist.gov> Co-authored-by: joecrowleygaia <142864129+joecrowleygaia@users.noreply.github.com> Co-authored-by: Val Lorentz <vlorentz@softwareheritage.org> Co-authored-by: jcbiddle <114963309+jcbiddle@users.noreply.github.com> Co-authored-by: Sander Van Dooren <sandervd@users.noreply.github.com> Co-authored-by: Nicholas Car <nick@kurrawong.ai> Co-authored-by: Matt Goldberg <59745812+mgberg@users.noreply.github.com> Co-authored-by: Nils Philippsen <nils@tiptoe.de> Co-authored-by: Alexandre Detiste <alexandre.detiste@gmail.com> Co-authored-by: Yaroslav Halchenko <debian@onerussian.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Daan de Schepper <d.de.schepper@rijksmuseum.nl> Co-authored-by: Sigmund Lahn <s@lahn.no> Co-authored-by: Tom Gillespie <tgbugs@gmail.com> Co-authored-by: Daan de Schepper <daan@daandeschepper.nl>
1 parent 6143ffa commit c1ed1a0

File tree

12 files changed

+172
-21
lines changed

12 files changed

+172
-21
lines changed

CHANGELOG.md

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,129 @@
1+
## 2025-09-19 RELEASE 7.2.1
2+
3+
A tiny clean up release.
4+
5+
Fixes:
6+
- Previous RDFLib releases required all downstream projects to specify <4.0.0. This release relaxes this requirement to allow Python 3.8.1 and later.
7+
8+
## 2025-09-19 RELEASE 7.2.0
9+
10+
This release contains a number of fixes and improvements to RDFLib.
11+
12+
New features:
13+
- Canonicalization is now optional in the longturtle serializer. When serializing with the `longturtle` format, set `canon=True` to enable canonicalization.
14+
- General type hints enhancements
15+
16+
Fixes:
17+
- Fixed deskolemization of literals
18+
- Fixed round-tripping of floats in N3 - floating point and scientific notation handling
19+
- Fixed CI validation workflow, including regressions in tests
20+
- Fixed `Literal.toPython` date conversion for gYear/gYearMonth
21+
- Fixed namespace prefixes in longturtle serialization
22+
- Fixed missing dot in RDF patch serialization
23+
24+
PRs merged:
25+
26+
* 2025-09-18 - [7.x] Fix incorrect deskolemization of literals
27+
[PR #3223](https://github.com/RDFLib/rdflib/pull/3223)
28+
* 2025-09-18 - Fix incorrect deskolemization of literals
29+
[PR #3127](https://github.com/RDFLib/rdflib/pull/3127)
30+
* 2025-09-18 - notation3.py: don't normalize float representation
31+
[PR #3020](https://github.com/RDFLib/rdflib/pull/3020)
32+
* 2025-09-18 - [7.x] notation3.py: don't normalize float representation
33+
[PR #3221](https://github.com/RDFLib/rdflib/pull/3221)
34+
* 2025-09-18 - Merge 7-maintenance branch into 7.x
35+
[PR #3222](https://github.com/RDFLib/rdflib/pull/3222)
36+
* 2025-09-17 - Allow lxml 6
37+
[PR #3219](https://github.com/RDFLib/rdflib/pull/3219)
38+
* 2025-09-16 - ci: fix firejail command for poetry 2.1.0
39+
[PR #3218](https://github.com/RDFLib/rdflib/pull/3218)
40+
* 2025-09-16 - chore: address dependabot security vulnerabilities
41+
[PR #3210](https://github.com/RDFLib/rdflib/pull/3210)
42+
* 2025-09-09 - Merge 7-maintenance changes into main
43+
[PR #3202](https://github.com/RDFLib/rdflib/pull/3202)
44+
* 2025-09-08 - feat: canonicalization with longturtle serializer now optional
45+
[PR #3197](https://github.com/RDFLib/rdflib/pull/3197)
46+
* 2025-09-03 - Specify `Optional` parameters in `Graph.triples_choices`
47+
[PR #3075](https://github.com/RDFLib/rdflib/pull/3075)
48+
* 2025-08-29 - Fix failing webtest
49+
[PR #3194](https://github.com/RDFLib/rdflib/pull/3194)
50+
* 2025-08-29 - Revert "remove old hacks against 2to3 (#3076)"
51+
[PR #3195](https://github.com/RDFLib/rdflib/pull/3195)
52+
* 2025-08-18 - Fix #3181
53+
[PR #3182](https://github.com/RDFLib/rdflib/pull/3182)
54+
* 2025-08-18 - Fix contributing guide link in README.md
55+
[PR #3158](https://github.com/RDFLib/rdflib/pull/3158)
56+
* 2025-08-18 - Creation of an RDFLib Charter
57+
[PR #3178](https://github.com/RDFLib/rdflib/pull/3178)
58+
* 2025-08-11 - Feature: Add Tentris Plugin to docs
59+
[PR #3177](https://github.com/RDFLib/rdflib/pull/3177)
60+
* 2025-06-02 - Replacement for #3125
61+
[PR #3146](https://github.com/RDFLib/rdflib/pull/3146)
62+
* 2025-06-01 - Cope with Namespace annotations in Python 3.14
63+
[PR #3132](https://github.com/RDFLib/rdflib/pull/3132)
64+
* 2025-06-01 - replace PR 3109; improve plugins modules docs; change header colour t…
65+
[PR #3145](https://github.com/RDFLib/rdflib/pull/3145)
66+
* 2025-06-01 - Pr/3143
67+
[PR #3144](https://github.com/RDFLib/rdflib/pull/3144)
68+
* 2025-05-31 - fix: remove Literal.toPython date conversion for gYear/gYearMonth
69+
[PR #3115](https://github.com/RDFLib/rdflib/pull/3115)
70+
* 2025-05-31 - fix: do not automatically generate header id in RDF patch generation and fix missing fullstop
71+
[PR #3141](https://github.com/RDFLib/rdflib/pull/3141)
72+
* 2025-05-31 - fix namespace prefixes in longturtle serialization
73+
[PR #3106](https://github.com/RDFLib/rdflib/pull/3106)
74+
* 2025-05-20 - [7.x] fix namespace prefixes in longturtle serialization
75+
[PR #3134](https://github.com/RDFLib/rdflib/pull/3134)
76+
* 2025-05-20 - List on docs the COTTAS store backend
77+
[PR #3139](https://github.com/RDFLib/rdflib/pull/3139)
78+
* 2025-03-29 - 7.1.4 pre-release
79+
[PR #3098](https://github.com/RDFLib/rdflib/pull/3098)
80+
81+
82+
* 2025-09-16 - build(deps): bump poetry from 2.0.0 to 2.1.4 in /devtools
83+
[PR #3176](https://github.com/RDFLib/rdflib/pull/3176)
84+
* 2025-09-16 - build(deps): bump library/python from `8220cce` to `58c30f5` in /docker/latest
85+
[PR #3217](https://github.com/RDFLib/rdflib/pull/3217)
86+
* 2025-09-16 - build(deps): bump library/python from `8220cce` to `58c30f5` in /docker/unstable
87+
[PR #3216](https://github.com/RDFLib/rdflib/pull/3216)
88+
* 2025-09-16 - build(deps-dev): bump ruff from 0.8.6 to 0.13.0
89+
[PR #3213](https://github.com/RDFLib/rdflib/pull/3213)
90+
* 2025-09-16 - build(deps-dev): bump pip-tools from 7.4.1 to 7.5.0
91+
[PR #3211](https://github.com/RDFLib/rdflib/pull/3211)
92+
* 2025-09-16 - build(deps-dev): bump mkdocstrings from 0.29.1 to 0.30.0
93+
[PR #3214](https://github.com/RDFLib/rdflib/pull/3214)
94+
* 2025-09-12 - build(deps): bump library/python from 3.13.3-slim to 3.13.7-slim in /docker/unstable
95+
[PR #3183](https://github.com/RDFLib/rdflib/pull/3183)
96+
* 2025-09-12 - build(deps): bump actions/checkout from 4 to 5
97+
[PR #3184](https://github.com/RDFLib/rdflib/pull/3184)
98+
* 2025-09-12 - build(deps): bump library/python from 3.13.3-slim to 3.13.7-slim in /docker/latest
99+
[PR #3185](https://github.com/RDFLib/rdflib/pull/3185)
100+
* 2025-09-12 - build(deps): bump actions/setup-java from 4 to 5
101+
[PR #3189](https://github.com/RDFLib/rdflib/pull/3189)
102+
* 2025-09-12 - build(deps-dev): bump pytest-cov from 6.1.1 to 6.3.0
103+
[PR #3203](https://github.com/RDFLib/rdflib/pull/3203)
104+
* 2025-09-12 - build(deps-dev): bump typing-extensions from 4.13.2 to 4.15.0
105+
[PR #3204](https://github.com/RDFLib/rdflib/pull/3204)
106+
* 2025-09-12 - build(deps-dev): bump pytest from 8.3.5 to 8.4.2
107+
[PR #3205](https://github.com/RDFLib/rdflib/pull/3205)
108+
* 2025-09-12 - build(deps-dev): bump mkdocs-include-markdown-plugin from 7.1.5 to 7.1.7
109+
[PR #3207](https://github.com/RDFLib/rdflib/pull/3207)
110+
* 2025-09-12 - build(deps): bump actions/setup-python from 5 to 6
111+
[PR #3206](https://github.com/RDFLib/rdflib/pull/3206)
112+
* 2025-09-12 - build(deps-dev): bump mkdocs-material from 9.6.14 to 9.6.19
113+
[PR #3208](https://github.com/RDFLib/rdflib/pull/3208)
114+
* 2025-09-12 - build(deps-dev): bump coverage from 7.8.2 to 7.10.6
115+
[PR #3209](https://github.com/RDFLib/rdflib/pull/3209)
116+
* 2025-05-31 - build(deps-dev): bump coverage from 7.7.1 to 7.8.2
117+
[PR #3142](https://github.com/RDFLib/rdflib/pull/3142)
118+
* 2025-05-31 - build(deps-dev): bump typing-extensions from 4.13.0 to 4.13.2
119+
[PR #3121](https://github.com/RDFLib/rdflib/pull/3121)
120+
* 2025-05-31 - build(deps): bump library/python from 3.13.1-slim@sha256:1127090f9fff0b8e7c3a1367855ef8a3299472d2c9ed122948a576c39addeaf1 to sha256:34dc8eb488136014caf530ec03a3a2403473a92d67a01a26256c365b5b2fc0d4 in /docker/unstable
121+
[PR #3118](https://github.com/RDFLib/rdflib/pull/3118)
122+
* 2025-05-31 - build(deps): bump library/python from 3.13.1-slim@sha256:1127090f9fff0b8e7c3a1367855ef8a3299472d2c9ed122948a576c39addeaf1 to sha256:34dc8eb488136014caf530ec03a3a2403473a92d67a01a26256c365b5b2fc0d4 in /docker/latest
123+
[PR #3117](https://github.com/RDFLib/rdflib/pull/3117)
124+
* 2025-05-27 - build(deps): bump rdflib from 7.1.2 to 7.1.4 in /docker/latest
125+
[PR #3101](https://github.com/RDFLib/rdflib/pull/3101)
126+
1127
## 2025-03-29 RELEASE 7.1.4
2128

3129
A tidy-up release with no major updates over 7.1.3. This may be the last 7.x

CITATION.cff

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ authors:
7272
- family-names: "Stuart"
7373
given-names: "Veyndan"
7474
title: "RDFLib"
75-
version: 7.1.4
76-
date-released: 2025-03-29
75+
version: 7.2.1
76+
date-released: 2025-09-19
7777
url: "https://github.com/RDFLib/rdflib"
7878
doi: 10.5281/zenodo.6845245

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ Help with maintenance of all of the RDFLib family of packages is always welcome
4545
## Versions & Releases
4646

4747
* `main` branch in this repository is the current unstable release - version 8 alpha
48+
* `7.2.1` tiny clean up release, relaxes Python version requirement
49+
* `7.2.0` general fixes and usability improvements, see changelog for details
4850
* `7.1.4` tidy-up release, possibly last 7.x release
4951
* `7.1.3` current stable release, small improvements to 7.1.1
5052
* `7.1.2` previously deleted release

admin/get_merged_prs.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import urllib.request
66

77
# https://api.github.com/search/issues?q=repo:rdflib/rdflib+is:pr+merged:%3E=2023-08-02&per_page=300&page=1
8-
LAST_RELEASE_DATE = "2025-01-18"
8+
LAST_RELEASE_DATE = "2025-03-29"
99
ISSUES_URL = "https://api.github.com/search/issues"
1010
ITEMS = []
1111
PAGE = 1

docker/latest/requirements.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# This file is used for building a docker image of the latest rdflib release. It
22
# will be updated by dependabot when new releases are made.
3-
rdflib==7.1.4
3+
rdflib==7.2.1
44
html5rdf==1.2.1

docker/latest/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# This file is autogenerated by pip-compile with Python 3.11
33
# by the following command:
44
#
5-
# pip-compile docker/latest/requirements.in
5+
# pip-compile --cert=None --client-cert=None --index-url=None --pip-args=None docker/latest/requirements.in
66
#
77
html5rdf==1.2.1
88
# via -r requirements.in

rdflib/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
__docformat__ = "restructuredtext en"
5555

5656
__version__: str = _DISTRIBUTION_METADATA["Version"]
57-
__date__ = "2025-03-29"
57+
__date__ = "2025-09-19"
5858

5959
__all__ = [
6060
"URIRef",

rdflib/extras/shacl.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818
if TYPE_CHECKING:
1919
from rdflib.term import IdentifiedNode
2020

21+
if TYPE_CHECKING:
22+
from rdflib.term import IdentifiedNode
23+
2124

2225
class SHACLPathError(Exception):
2326
pass

rdflib/plugins/parsers/notation3.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@
7575
"Formula",
7676
"RDFSink",
7777
"SinkParser",
78+
"sfloat",
7879
]
7980

8081
from rdflib.parser import Parser

rdflib/plugins/serializers/longturtle.py

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -39,25 +39,20 @@
3939

4040

4141
class LongTurtleSerializer(RecursiveSerializer):
42-
"""LongTurtle RDF graph serializer."""
42+
"""LongTurtle, a Turtle serialization format.
43+
44+
When the optional parameter ``canon`` is set to :py:obj:`True`, the graph is canonicalized
45+
before serialization. This normalizes blank node identifiers and allows for
46+
deterministic serialization of the graph. Useful when consistent outputs are required.
47+
"""
4348

4449
short_name = "longturtle"
4550
indentString = " "
4651

4752
def __init__(self, store):
4853
self._ns_rewrite = {}
49-
namespace_manager = store.namespace_manager
50-
store = to_canonical_graph(store)
51-
content = store.serialize(format="application/n-triples")
52-
lines = content.split("\n")
53-
lines.sort()
54-
graph = Graph()
55-
graph.parse(
56-
data="\n".join(lines), format="application/n-triples", skolemize=True
57-
)
58-
graph = graph.de_skolemize()
59-
graph.namespace_manager = namespace_manager
60-
super(LongTurtleSerializer, self).__init__(graph)
54+
self._canon = False
55+
super(LongTurtleSerializer, self).__init__(store)
6156
self.keywords = {RDF.type: "a"}
6257
self.reset()
6358
self.stream = None
@@ -87,11 +82,34 @@ def addNamespace(self, prefix, namespace):
8782
super(LongTurtleSerializer, self).addNamespace(prefix, namespace)
8883
return prefix
8984

85+
def canonize(self):
86+
"""Apply canonicalization to the store.
87+
88+
This normalizes blank node identifiers and allows for deterministic
89+
serialization of the graph.
90+
"""
91+
if not self._canon:
92+
return
93+
94+
namespace_manager = self.store.namespace_manager
95+
store = to_canonical_graph(self.store)
96+
content = store.serialize(format="application/n-triples")
97+
lines = content.split("\n")
98+
lines.sort()
99+
graph = Graph()
100+
graph.parse(
101+
data="\n".join(lines), format="application/n-triples", skolemize=True
102+
)
103+
graph = graph.de_skolemize()
104+
graph.namespace_manager = namespace_manager
105+
self.store = graph
106+
90107
def reset(self):
91108
super(LongTurtleSerializer, self).reset()
92109
self._shortNames = {}
93110
self._started = False
94111
self._ns_rewrite = {}
112+
self.canonize()
95113

96114
def serialize(
97115
self,
@@ -101,6 +119,7 @@ def serialize(
101119
spacious: Optional[bool] = None,
102120
**kwargs: Any,
103121
) -> None:
122+
self._canon = kwargs.get("canon", False)
104123
self.reset()
105124
self.stream = stream
106125
# if base is given here, use, if not and a base is set for the graph use that

0 commit comments

Comments
 (0)