Skip to content

Releases: RDFLib/rdflib

RDFlib 7.0.0

01 Aug 21:17
708aecd
Compare
Choose a tag to compare

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)

Commit 4b96e9d, closes #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)

Commit 1e5f56b, closes #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)

Commit f200722, closes #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)

Commit 81d13d4, closes #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)

Commit 5ee8bd7, closes #2500.

Improved the output of the longturtle serializer.

fix: SPARQL count with optionals (#2448)

Commit 46ff6cf, closes #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)

Commit e94c252, closes #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)

Commit 6981c28, closes #2489.

This gets Sphinx to generate documentation for it, and also clearly
indicates that it can be used from outside the module.

fix: bugs with rdflib.extras.infixowl (#2390)

Commit cd0b442, closes #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)

Commit 7df77cd, closes #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)

Commit ef25896, closes #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)

Commit 4ea1436, closes #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)

Commit ae6b859, closes #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)

Commit 89982f8, closes #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...

Read more

RDFlib 6.3.2

26 Mar 11:51
0593c75
Compare
Choose a tag to compare

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)

Commit af17916, closes #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.

fix: add __hash__ and __eq__ back to rdflib.paths.Path (#2292)

Commit fe1a8f8, closes #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)

Commit d7883eb, closes #2310.

Context.to_dict is used in JSON-LD serialization, but it was not implemented.
This change adds the method.

fix: add the wgs namespace binding back (#2294)

Commit adf8eb2, closes #2294.

#1686 inadvertently removed the wgs prefix.
This change adds it back.

fix: change the prefix for https://schema.org/ back to schema (#2312)

Commit 3faa01b, closes #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)

Commit 394fb50, closes #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)

Commit dfa4054, closes #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.

fix: JSON-LD context construction from a dict (#2306)

Commit 832e693, closes #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.

fix: reference to global inside get_target_namespace_elements (#2311)

Commit 4da67f9, closes #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.

fix: restore the 6.1.1 default bound namespaces (#2313)

Commit 57bb428, closes #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.

test: add webtest marker to tests that use the internet (#2295)

Commit cfe6e37, closes #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.

chore: Update CONTRIBUTORS from commit history (#2305)

Commit 1ab4fc0, closes #2305.

This ensures contributors are credited. Also added .mailmap to fix early misattributed contributions.

docs: fix typo in NamespaceManager documentation (#2291)

Commit 7a05c15, closes #2291.

Changed cdterms to dcterms, see #2196 for more info.

RDFlib 6.3.1

18 Mar 13:21
f3d31b0
Compare
Choose a tag to compare

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)

Commit 334787b, closes #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)

Commit e3884b7, closes #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)

Commit bea782f, closes #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

16 Mar 22:29
309848b
Compare
Choose a tag to compare

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 in ConjunctiveGraph's method get_context().
    The get_context() method will now pass the NamespaceManager of ConjunctiveGraph to the namespace_manager attribute of the newly created context graph, instead of the ConjunctiveGraph object itself. This cleans up an old FIXME comment.
    PR #2073.

  • InfixOWL fixes and cleanup.
    Closed issue #2030.
    PR #2024,
    and PR #2033.

    • rdflib.extras.infixowl.Restriction.__init__ will now raise a ValueError
      if there is no restriction value instead of an AssertionError.
    • 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 in rdflib.plugins.parsers.trix so that it
    no longer tries to import it from xml.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 with lxml installed and with XML documents that
      are not utf-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.
  • Added type hints to the following modules:

  • Removed pre python 3.7 compatibility code.
    PR #2066.

    • Removed fallback in case the shutil module does not have the move
      function.
  • Improve file-URI and path handling in Graph.serialize and Result.serialize to
    address problems with windows path handling in Result.serialize and to make
    the behavior between Graph.serialize and Result.serialie more consistent.
    Closed issue #2067.
    PR #2065.

    • String values for the destination argument will now only be treated as
      file URIs if urllib.parse.urlparse returns their schema as file.
    • Simplified file writing to avoid a temporary file.
  • 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 from Optional[str] to Optional[URIRef] now
    that all non-URIRef str values will be converted to URIRef.
    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 the berkeleydb 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 of rdflib.path.eval_path which is
    PEP-8 compliant. PR #2046

  • Added charset=UTF-8 to the Content-Type header sent when doing an update
    with SPARQLConnector. 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 from SPARQLConnector.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 a GROUP BY clause.
    PR #2188.

  • Fixed a bug that occurred when using SELECT * inside another SELECT *.
    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...

Read more

RDFlib 6.2.0

16 Jul 12:05
7395c57
Compare
Choose a tag to compare

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 and ContextTypeError as these exceptions are not raised by
    RDFLib and their existence will only confuse users which may expect them to be
    used. Also remove corresponding check_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
  • Added an abstract class IdentifiedNode as a superclass of BNode 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 to Store.bind which behaves similarly to
      the override parameter for NamespaceManager.bind.
    • Also fixed handing of support of the override parameter to
      NamespaceManager.bind by passing.
  • Eliminated a DeprecationWarning related to plugin loading issue
    #1631
    , PR
    #1694
    .
  • Removed the rdflib.graph.ContextNode and rdflib.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 a isatty 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 inside BIND 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 and BerkelyDB 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 both Literal.__add__
    and Literal.__sub__. PR #1870.
  • SPARQL: Fix None/undefined handing in GROUP_CONCAT. Closed issue
    #1467
    , PR
    #1887
    .
  • SPARQL: Fixed result handling for SERVICE directive. Closed issue
    #1278
    , PR
    #1894
    ...
Read more

RDFlib 6.1.1

19 Dec 23:36
Compare
Choose a tag to compare

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

10 Oct 12:31
Compare
Choose a tag to compare

Minor release to support some downstream packages' namespace needs

RDFlib 6.0.1

17 Sep 12:09
Compare
Choose a tag to compare

Minor bugfixing release

RDFlib 6.0.0

20 Jul 13:18
Compare
Choose a tag to compare

6.0.0 is a major stable release that drops support for Python 2 and Python 3 < 3.7. Type hinting is now present in much
of the toolkit as a result.

It includes the formerly independent JSON-LD parser/serializer, improvements to Namespaces that allow for IDE namespace
prompting, simplified use of g.serialize() (turtle default, no need to decode()) and many other updates to
documentation, store backends and so on.

Performance of the in-memory store has also improved since Python 3.6 dictionary improvements.

There are numerous supplementary improvements to the toolkit too, such as:

  • inclusion of Docker files for easier CI/CD
  • black config files for standardised code formatting
  • improved testing with mock SPARQL stores, rather than a reliance on DBPedia etc

RDFlib 5.0.0

18 Apr 04:48
Compare
Choose a tag to compare

5.0.0 is a major stable release and is the last release to support Python 2 & 3.4. 5.0.0 is mostly backwards-
compatible with 4.2.2 and is intended for long-term, bug fix only support.

5.0.0 comes two weeks after the 5.0.0RC1 and includes a small number of additional bug fixes. Note that
rdflib-jsonld has released a version 0.5.0 to be compatible with rdflib 5.0.0.

There is a large list of changes since the 4.2.2 release, see the CHANGELOG for details.

See https://rdflib.dev for the proposed future release schedule.