Releases: RDFLib/rdflib
2024-10-29 RELEASE 7.1.1
This minor release removes the dependency on some only Python packages, in particular
six which is a problem for some Linux distributions that ship RDFLib.
Other than that, there are a few minor PRs that improve testing and to do with making releases - no
new RDFLib core work.
Merged PRs:
-
2024-10-28 - Replace html5lib with html5rdf, make it an optional dependency
PR #2951 -
2024-10-23 - Prevent crash when comparing ill-typed numeric types.
PR #2949 -
2024-10-23 - Fix parser bug and add test
PR #2943 -
2024-10-23 - Fix import ordering in get_merged_prs.
PR #2947 -
2024-10-17 - post 7.1.0 release PR
PR #2934 -
2024-10-17 - 7.1.0 release
PR #2933 -
2024-10-24 - build(deps): bump poetry from 1.8.3 to 1.8.4 in /devtools
PR #2938 -
2024-10-24 - build(deps-dev): bump poetry from 1.8.3 to 1.8.4
PR #2941 -
2024-10-24 - build(deps): bump orjson from 3.10.7 to 3.10.10
PR #2950 -
2024-10-23 - build(deps-dev): bump ruff from 0.6.9 to 0.7.0
PR #2942
2024-10-17 RELEASE 7.1.0
This minor release incorporates just over 100 substantive PRs - interesting things submitted by people - and around 140 auto-generated update PRs from dependabot and similar.
There are no major changes in this release over 7.0.0 and this release can be used in place of 7.0.0 without much worry about altered behaviour.
Since the previous release, we have updated the way auto-generated PRs are handled to ease the job of maintainers.
Due to the large numbers of PRs contained in this release, an abbreviated listing of them only is provided in the release notes in the Changelog file entry for this release.
RDFlib 7.0.0
2023-08-02 RELEASE 7.0.0
This is a major release with relatively slight breaking changes, new
features and bug fixes.
The most notable breaking change relates to how RDFLib handles the
publicID
parameter of the Graph.parse
and Dataset.parse
methods.
Most users should not be affected by this change.
Instructions on adapting existing code to the breaking changes can be
found in the upgrade guide from Version 6 to Version 7 which should be
available here.
It is likely that the next couple of RDFLib releases will all be major
versions, mostly because there are some more shortcomings of RDFLib's
public interface that should be addressed.
If you use RDFLib, please consider keeping an eye on
discussions,
issues and pull-requests labelled with "feedback
wanted".
A big thanks to everyone who contributed to this release.
BREAKING CHANGE: don't use publicID
as the name for the default graph. (#2406)
When parsing data into a ConjunctiveGraph
or Dataset
, the triples in the
default graphs in the sources were loaded into a graph named publicID
.
This behaviour has been changed, and now the triples from the default graph in
source RDF documents will be loaded into ConjunctiveGraph.default_context
or
Dataset.default_context
.
The publicID
parameter to ConjunctiveGraph.parse
and Dataset.parse
constructors will now only be used as the base URI for relative URI resolution.
BREAKING CHANGE: drop support for python 3.7 (#2436)
Python 3.7 will be end-of-life on the 27th of June 2023 and the next release of
RDFLib will be a new major version.
This changes the minimum supported version of Python to 3.8.1 as some of the
dependencies we use are not too fond of python 3.8.0. This change also removes
all accommodations for older python versions.
feat: add curie
method to NamespaceManager
(#2365)
Added a curie
method to NamespaceManager
, which can be used to generate a
CURIE from a URI.
Other changes:
- Fixed
NamespaceManager.expand_curie
to work with CURIES that have blank
prefixes (e.g.:something
), which are valid according to CURIE Syntax
1.0. - Added a test to confirm #2077.
Fixes #2348.
feat: add optional target_graph
argument to Graph.cbd
and use it for DESCRIBE queries (#2322)
Add optional keyword only target_graph
argument to rdflib.graph.Graph.cbd
and use this new argument in evalDescribeQuery
.
This makes it possible to compute a concise bounded description without creating a new graph to hold the result, and also without potentially having to copy it to another final graph.
feat: Don't generate prefixes for unknown URIs (#2467)
Commit bd797ac.
When serializing RDF graphs, URIs with unknown prefixes were assigned a
namespace like ns1:
. While the result would be smaller files, it does
result in output that is not as readable.
This change removes this automatic assignment of namespace prefixes.
This is somewhat of an aesthetic choice, eventually we should have more
flexibility in this regard so that users can exercise more control over
how URIs in unknown namespaces are handled.
With this change, users can still manually create namespace prefixes for
URIs in unknown namespaces, but before it there was no way to avoid the
undesired behaviour, so this seems like the better default.
feat: Longturtle improvements (#2500)
Improved the output of the longturtle serializer.
fix: SPARQL count with optionals (#2448)
Change SPARQL count aggregate to ignore optional that are unbound
instead of raising an exception when they are encountered.
fix: GROUP_CONCAT
handling of empty separator (issue) (#2474)
GROUP_CONCAT
was handling an empty separator (i.e. ""
) incorrectly,
it would handle it as if the separator were not set, so essentially it was
treated as a single space (i.e. " "
).
This change fixes it so that an empty separator with GROUP_CONCAT
results in a value with nothing between concatenated values.
Fixes #2473
fix: add NORMALIZE_LITERALS
to rdflib.__all__
(#2489)
This gets Sphinx to generate documentation for it, and also clearly
indicates that it can be used from outside the module.
- Fixes #2488
fix: bugs with rdflib.extras.infixowl
(#2390)
Fix the following issues in rdflib.extras.infixowl
:
- getting and setting of max cardinality only considered identifiers and not other RDF terms.
- The return value of
manchesterSyntax
was wrong for some cases. - The way that
BooleanClass
was generating its string representation (i.e.BooleanClass.__repr__
) was wrong for some cases.
Other changes:
- Added an example for using infixowl to create an ontology.
- Updated infixowl tests.
- Updated infixowl documentation.
This code is based on code from:
fix: correct imports and __all__
(#2340)
Disable
implicit_reexport
and eliminate all errors reported by mypy after this.
This helps ensure that import statements import from the right module and that
the __all__
variable is correct.
fix: dbpedia URL to use https instead of http (#2444)
The URL for the service keyword had the http address for the dbpedia endpoint, which no longer works. Changing it to https as that works.
fix: eliminate bare except:
(#2350)
Replace bare except:
with except Exception
, there are some cases where it
can be narrowed further, but this is already an improvement over the current
situation.
This is somewhat pursuant to eliminating
flakeheaven, as it no longer
supports the latest version of flake8
[ref]. But it also is
just the right thing to do as bare exceptions can cause problems.
fix: eliminate file intermediary in translate algebra (#2267)
Previously, rdflib.plugins.sparql.algebra.translateAlgebra()
maintained state via a file, with a fixed filename query.txt
. With this change, use of that file is eliminated; state is now maintained in memory so that multiple concurrent translateAlgebra()
calls, for example, should no longer interfere with each other.
The change is accomplished with no change to the client interface. Basically, the actual functionality has been moved into a class, which is instantiated and used as needed (once per call to algrebra.translateAlgebra()
).
fix: eliminate some mutable default arguments in SPARQL code (#2301)
This change eliminates some situations where a mutable object (i.e., a dictionary) was used as the default value for functions in the rdflib.plugins.sparql.processor
module and related code. It replaces these situations with typing.Optinal
that defaults to None, and is then handled within the function. Luckily, some of the code that the SPARQL Processor relied on already had this style, meaning not a lot of changes had to be made.
This change also makes a small update to the logic in the SPARQL Processor's query function to simplify the if/else statement. This better mirrors the implementation in the UpdateProcessor
.
fix: formatting of SequencePath and AlternativePath (#2504)
Commit [9c73581](https://github.com/RDFLib...
RDFlib 6.3.2
2023-03-26 RELEASE 6.3.2
This is a patch release that fixes some bugs, including regressions introduced in release 6.2.0 and 6.3.0.
fix: ROUND
, ENCODE_FOR_URI
and SECONDS
SPARQL functions (#2314)
ROUND
was not correctly rounding negative numbers towards positive infinity,
ENCODE_FOR_URI
incorrectly treated /
as safe, and SECONDS
did not include
fractional seconds.
This change corrects these issues.
- Closes #2151.
fix: add __hash__
and __eq__
back to rdflib.paths.Path
(#2292)
These methods were removed when @total_ordering
was added, but
@total_ordering
does not add them, so removing them essentially
removes functionality.
This change adds the methods back and adds tests to ensure they work
correctly.
All path related tests are also moved into one file.
fix: Add to_dict
method to the JSON-LD Context
class. (#2310)
Context.to_dict
is used in JSON-LD serialization, but it was not implemented.
This change adds the method.
- Closes #2138.
fix: add the wgs
namespace binding back (#2294)
#1686 inadvertently removed the wgs
prefix.
This change adds it back.
- Closes #2196.
fix: change the prefix for https://schema.org/
back to schema
(#2312)
The default prefix for https://schema.org/
registered with
rdflib.namespace.NamespaceManager
was inadvertently changed to sdo
in 6.2.0,
this however constitutes a breaking change, as code that was using the schema
prefix would no longer have the same behaviour. This change changes the prefix
back to schema
.
fix: include docs and examples in the sdist tarball (#2289)
The sdists generated by setuptools included the docs
and examples
directories, and they are needed for building docs and running tests using the
sdist.
This change includes these directories in the sdist tarball.
A test:sdist
task is also added to Taskfile.yml
which uses the sdists to run
pytest and build docs.
fix: IRI to URI conversion (#2304)
The URI to IRI conversion was percentage-quoting characters that should not have
been quoted, like equals in the query string. It was also not quoting things
that should have been quoted, like the username and password components of a
URI.
This change improves the conversion by only quoting characters that are not
allowed in specific parts of the URI and quoting previously unquoted components.
The safe characters for each segment are taken from
RFC3986.
The new behavior is heavily inspired by
werkzeug.urls.iri_to_uri
though there are some differences.
- Closes #2120.
fix: JSON-LD context construction from a dict
(#2306)
A variable was only being initialized for string-valued inputs, but if a dict
input was passed the variable would still be accessed, resulting in a
UnboundLocalError
.
This change initializes the variable always, instead of only when string-valued
input is used to construct a JSON-LD context.
- Closes #2303.
fix: reference to global inside get_target_namespace_elements
(#2311)
get_target_namespace_elements
references the args
global, which is not
defined if the function is called from outside the module. This commit fixes
that instead referencing the argument passed to the function.
- Closes #2072.
fix: restore the 6.1.1 default bound namespaces (#2313)
The namespaces bound by default by rdflib.graph.Graph
and
rdflib.namespace.NamespaceManager
was reduced in version 6.2.0 of RDFLib,
however, this also would cause code that worked with 6.1.1 to break, so this
constituted a breaking change. This change restores the previous behaviour,
binding the same namespaces as was bound in 6.1.1.
To bind a reduced set of namespaces, the bind_namespaces
parameter of
rdflib.graph.Graph
or rdflib.namespace.NamespaceManager
can be used.
- Closes #2103.
test: add webtest
marker to tests that use the internet (#2295)
This is being done so that it is easier for downstream packagers to run the test
suite without requiring internet access.
To run only tests that does not use the internet, run pytest -m "not webtest"
.
The validation workflow validates that test run without internet access by
running the tests inside firejail --net=none
.
- Closes #2293.
chore: Update CONTRIBUTORS from commit history (#2305)
This ensures contributors are credited. Also added .mailmap to fix early misattributed contributions.
docs: fix typo in NamespaceManager documentation (#2291)
Changed cdterms
to dcterms
, see #2196 for more info.
RDFlib 6.3.1
2023-03-18 RELEASE 6.3.1
This is a patch release that includes a singular user facing fix, which is the
inclusion of the test
directory in the sdist
release artifact.
The following sections describe the changes included in this version.
build: explicitly specify packages
in pyproject.toml
(#2280)
The default behaviour makes it more of a hassle to republish RDFLib to
a separate package, something which I plan to do for testing purposes
and possibly other reasons.
More changes may follow in a similar vein.
build: include test in sdist (#2282)
A perhaps minor regression from earlier versions is that the sdist does not include the test folder, which makes it harder for downstreams to use a single source of truth to build and test a reliable package. This restores the test folder for sdists.
docs: don't use kroki (#2284)
The Kroki server is currently experiencing some issues which breaks our
build, this change eliminates the use of Kroki in favour of directly
using the generated SVG images which is checked into git alongside the
PlantUML sources.
I also added a task to the Taskfile to re-generate the SVG images from
the PlantUML sources by calling docker.
RDFlib 6.3.0
2023-03-16 RELEASE 6.3.0
This is a minor release that includes bug fixes and features.
Important Information
- RDFLib will drop support for Python 3.7 when it becomes EOL on 2023-06-27,
this will not be considered a breaking change, and RDFLib's major version
number will not be changed solely on the basis of Python 3.7 support being
dropped.
User facing changes
This section lists changes that have a potential impact on users of RDFLib,
changes with no user impact are not included in this section.
-
Add chunk serializer that facilitates the encoding of a graph into multiple
N-Triples encoded chunks.
PR #1968. -
Fixes passing
NamespaceManager
inConjunctiveGraph
's methodget_context()
.
Theget_context()
method will now pass theNamespaceManager
ofConjunctiveGraph
to thenamespace_manager
attribute of the newly created context graph, instead of theConjunctiveGraph
object itself. This cleans up an oldFIXME
comment.
PR #2073. -
InfixOWL fixes and cleanup.
Closed issue #2030.
PR #2024,
and PR #2033.rdflib.extras.infixowl.Restriction.__init__
will now raise aValueError
if there is no restriction value instead of anAssertionError
.- Fixed numerous issues with
rdflib.extras.infixowl.Restriction.restrictionKind
which was essentially
not working at all. - Fixed how
rdflib.extras.infixowl.Property.__repr__
uses
rdflib.namespace.OWL
. - Removed
rdflib.extras.infixowl.Infix.__ror__
and
rdflib.extras.infixowl.Infix.__or__
as they were broken. - Removed unused
rdflib.extras.infixowl.termDeletionDecorator
. - Added
rdflib.extras.infixowl.MalformedClassError
which will replace
rdflib.extras.infixowl.MalformedClass
(which is an exception) in the next
major version. - Eliminated the use of mutable data structures in some argument defaults.
-
Fixed some cross-referencing issues in RDFLib documentation.
Closed issue #1878.
PR #2036. -
Fixed import of
xml.sax.handler
inrdflib.plugins.parsers.trix
so that it
no longer tries to import it fromxml.sax.saxutils
.
PR #2041. -
Removed a pre python 3.5 regex related workaround in the REPLACE SPARQL
function.
PR #2042. -
Fixed some issues with SPARQL XML result parsing that caused problems with
lxml
. Closed issue #2035,
issue #1847.
PR #2044.- Result parsing from
TextIO
streams now work correctly withlxml
installed and with XML documents that
are notutf-8
encoded. - Elements inside
<results>
that are not<result>
are now ignored. - Elements inside
<result>
that are not<binding>
are now ignored. - Also added type hints to
rdflib.plugins.sparql.results.xmlresults
.
- Result parsing from
-
Added type hints to the following modules:
rdflib.store
.
PR #2057.rdflib.graph
.
PR #2080.rdflib.plugins.sparql.*
.
PR #2094,
PR #2133,
PR #2265,
PR #2097,
PR #2268.rdflib.query
.
PR #2265.rdflib.parser
andrdflib.plugins.parsers.*
.
PR #2232.rdflib.exceptions
.
PR #2232rdflib.shared.jsonld.*
.
PR #2232.rdflib.collection
.
PR #2263.rdflib.util
.
PR #2262.rdflib.path
.
PR #2261.
-
Removed pre python 3.7 compatibility code.
PR #2066.- Removed fallback in case the
shutil
module does not have themove
function.
- Removed fallback in case the
-
Improve file-URI and path handling in
Graph.serialize
andResult.serialize
to
address problems with windows path handling inResult.serialize
and to make
the behavior betweenGraph.serialize
andResult.serialie
more consistent.
Closed issue #2067.
PR #2065.- String values for the
destination
argument will now only be treated as
file URIs ifurllib.parse.urlparse
returns their schema asfile
. - Simplified file writing to avoid a temporary file.
- String values for the
-
Narrow the type of context-identifiers/graph-names from
rdflib.term.Node
to
rdflib.term.IdentifiedNode
as no supported abstract syntax allows for other
types of context-identifiers.
PR #2069. -
Always parse HexTuple files as utf-8.
PR #2070. -
Fixed handling of
Literal
datatype
to correctly differentiate between
blank string values and undefined values, also changed the datatype of
rdflib.term.Literal.datatype
fromOptional[str]
toOptional[URIRef]
now
that all non-URIRef
str
values will be converted toURIRef
.
PR #2076. -
Fixed the generation of VALUES block for federated queries.
The values block was including non-variable values like BNodes which resulted
in invalid queries. Closed issue #2079.
PR #2084. -
Only register the
rdflib.plugins.stores.berkeleydb.BerkeleyDB
as a store
plugin if theberkeleydb
module is present.
Closed issue #1816.
PR #2096. -
Fixed serialization of BNodes in TriG.
The TriG serializer was only considering BNode references inside a single
graph and not counting the BNodes subjects as references when considering if a
BNode should be serialized as unlabeled blank nodes (i.e.[ ]
), and as a
result it was serializing BNodes as unlabeled if they were in fact referencing
BNodes in other graphs.
PR #2085. -
Deprecated
rdflib.path.evalPath
in favor ofrdflib.path.eval_path
which is
PEP-8 compliant. PR #2046 -
Added
charset=UTF-8
to theContent-Type
header sent when doing an update
withSPARQLConnector
. Closed issue
#2095. PR
#2112. -
Removed the
rdflib.plugins.sparql.parserutils.plist
class as it served no
discernible purpose. PR #2143 -
Changed the TriG serializer to not generate prefixes for empty graph IDs.
Closed issue #2154.
PR #2160. -
Fixed handling of relative context files in the JSON-LD parser.
Closed issue #2164.
PR #2165. -
Improved failure handling in when computing QName for an unbound namespace.
PR #2169. -
Fixed a typo in the default bound namespace for
DCTERMS
.
PR #2173. -
Add support for supplying a custom namespace manager to
n3()
methods.
PR #2174. -
Fixed the query string parameters for
SPARQLConnector
when using POST method.
PR #2180. -
Fixed extra keyword argument and header handling in
SPARQLConnector
that
resulted in headers fromSPARQLConnector.update
polluting headers from
SPARQLConnector.query
vice versa.
PR #2183 -
Added version restrictions for dependencies.
PR #2187 -
Switch to using
importlib
for getting the version of RDFLib instead of
hard-coding it in__version__
.
PR #2187. -
Removed non-runtime extras, for building documentation, running tests and
other development operations the versions and dependencies are now
managed with Poetry.
PR #2187. -
Fixed a bug that occurred when
VALUES
was used outside aGROUP BY
clause.
PR #2188. -
Fixed a bug that occurred when using
SELECT *
inside anotherSELECT *
.
Closed issue #1722.
PR #2190. -
Added SPARQL DESCRIBE query implementation.
Closes issue #479.
PR #2221. -
Fixed a bug in
rdflib.tools.defined_namespace_creator
that occur...
RDFlib 6.2.0
This is a minor release that includes bug fixes and features.
User facing changes
This section lists changes that have a potential impact on users of RDFLib,
changes with no user impact are not included in this section.
- SPARQL: Fixed handing of
HAVING
clause with variable composition. Closed
issue #936 and issue
#935, PR
#1093. - JSON-LD parser: better support for content negotiation. Closed issue
#1423, PR
#1436. - Removed the following functions that were marked as deprecated and scheduled
for removal in version 6.0.0:Graph.load
,Graph.seq
,Graph.comment
,
Graph.label
. PR #1527. - Use
functools.total_ordering
to implement most comparison operations for
rdflib.paths.Path
. Closed issue
#685, PR
#1528. - Fixed error handling for invalid URIs. Closed issue
#821, PR
#1529. - InfixOWL: Fixed handling of cardinality 0. Closed issue
#1453 and issue
#944, PR
#1530. - Added quad support to handling to
rdflib.graph.ReadOnlyGraphAggregate.quads
.
Closed issue #430, PR
#1590 - Fixed base validation used when joining URIs. PR
#1607. - Add GEO defined namespace for GeoSPARQL. Closed issue
#1371, PR
#1622. - Explicitly raise exception when
rdflib.plugins.stores.sparqlstore.SPARQLStore.update
is called. Closed
issue #1032, PR
#1623. - Added
rdflib.plugins.sparql.processor.prepareUpdate
. Closed issue
#272 and discussion
#1581, PR
#1624. - Added
rdflib.namespace.DefinedNamespaceMeta.__dir__
. Closed issue
#1593, PR
#1626. - Removed
TypeCheckError
,SubjectTypeError
,PredicateTypeError
,
ObjectTypeError
andContextTypeError
as these exceptions are not raised by
RDFLib and their existence will only confuse users which may expect them to be
used. Also remove correspondingcheck_context
,check_subject
,
check_predicate
,check_object
,check_statement
,check_pattern
that is
unused. PR #1640. - Improved the population of the
Accept
HTTP header so that it is correctly
populated for all formats. PR
#1643. - Fixed some issues with SPARQL Algebra handling/translation. PR
#1645. - Add
nquads
to recognized file extensions.
PR #1653. - Fixed issues that prevented HexTuples roundtripping.
PR #1656. - Make
rdflib.plugins.sparql.operators.unregister_custom_function
idempotent.
Closed issue #1492,
PR #1659. - Fixed the handling of escape sequences in the N-Triples and N-Quads parsers.
These parsers will now correctly handle strings like"\\r"
. The time it
takes for these parsers to parse strings with escape sequences will be
increased, and the increase will be correlated with the amount of escape
sequences that occur in a string. For strings with many escape sequences the
parsing speed seems to be almost 4 times slower. Closed issue
#1655, PR
#1663.- Also marked
rdflib.compat.decodeStringEscape
as deprecated as this
function is not used anywhere in RDFLib anymore and the utility that it does
provide is not implemented correctly. It will be removed in RDFLib 7.0.0
- Also marked
- Added an abstract class
IdentifiedNode
as a superclass ofBNode
and
URIRef
. Closed issue #1526,
PR #1680. - Fixed turtle serialization of
rdf:type
in subject, object. Closed issue
#1649, PR
#1649. - Fixed turtle serialization of PNames that contain brackets. Closed issue
#1661, PR
#1678. - Added support for selecting which namespace prefixes to bind. Closed issue
#1679 and issue #1880, PR
#1686, PR
#1845 and PR
#2018.- Also added
ConjunctiveGraph.get_graph
. - Also added an
override
argument toStore.bind
which behaves similarly to
theoverride
parameter forNamespaceManager.bind
. - Also fixed handing of support of the
override
parameter to
NamespaceManager.bind
by passing.
- Also added
- Eliminated a
DeprecationWarning
related to plugin loading issue
#1631, PR
#1694. - Removed the
rdflib.graph.ContextNode
andrdflib.graph.DatasetQuad
type
aliases. These were not being widely used in RDFLib and were also not correct.
PR #1695. - Added
DefinedNamespace.as_jsonld_context
. PR
#1706. - Added
rdflib.namespace.WGS
for WGS84. Closed issue
#1709, PR
#1710. - Improved performance of
DefinedNamespace
by caching attribute values. PR
#1718. - Only configure python logging if
sys.stderr
has aisatty
attribute. Closed
issue #1760, PR
#1761. - Removed unused
rdflib.compat.etree_register_namespace
. PR
#1768. - Fixed numeric shortcut handling in
rdflib.util.from_n3
. Closed issue
#1769, PR
#1771. - Add ability to detect and mark ill-typed literals. Closed issue
#1757 and issue
#848, PR
#1773 and PR
#2003. - Optimized
NamespaceManager.compute_qname
by caching validity. PR
#1779. - SPARQL: Fixed the handling of
EXISTS
insideBIND
for SPARQL. This was
raising an exception during evaluation before but is now correctly handled.
Closed issue #1472, PR
#1794. - Propagate exceptions from SPARQL TSV result parser. Closed issue
#1477, PR
#1809 - Eliminate usage of
rdflib.term.RDFLibGenid
as a type as this caused issues
with querying. Closed issue
#1808, PR
#1821 - Fixed handing of
DefinedNamespace
control attributes so that
inspect.signature
works correctly on defined namespaces. PR
#1825. - Fixed namespace rebinding in
Memory
,SimpleMemory
andBerkelyDB
stores.
Closed issue #1826, PR
#1843. - Fixed issues with the N3 serializer. Closed issue
#1701 and issue
#1807, PR
#1858:- The N3 serializer was incorrectly considers a subject as seralized if it is serialized in a quoted graph.
- The N3 serializer does not consider that the predicate of a triple can also
be a graph.
- Added
NamespaceManager.expand_curie
. Closed issue
#1868, PR
#1869. - Added
Literal.__sub__
and support for datetimes to bothLiteral.__add__
andLiteral.__sub__
. PR #1870. - SPARQL: Fix
None
/undefined handing inGROUP_CONCAT
. Closed issue
#1467, PR
#1887. - SPARQL: Fixed result handling for
SERVICE
directive. Closed issue
#1278, PR
#1894...
RDFlib 6.1.1
Better testing and tidier code.
This is a semi-major release that:
- add support for Python 3.10
- updates the test suite to pytest (from nose)
- tidies up a lot of continuous integration
- gets more tests tested, not skipped
- implements lots of mypy tests
- updates several parsers and serializers
- supports the new HexTuples format!
- many bug fixes
This release contains many, many hours of updates from Iwan Aucamp, so thank you Iwan!
RDFlib 6.0.2
Minor release to support some downstream packages' namespace needs
RDFlib 6.0.1
Minor bugfixing release