fix: handling of Literal datatype #2076
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary of changes
Check datatype against
None
instead of checking it's truthiness (i.e.if datatype is not None:
instead ofif datatype:
).Checking truthiness instead of
is not None
causes a blank string tobe treated the same as None. The consequence of this was that
Literal.datatype
could be astr
, aURIRef
orNone
, instead ofjust a
URIRef
orNone
as was seemingly intended.Other changes:
Literal.datatype
to beOptional[URIRef]
instead of
Optional[str]
now thatstr
will always be converted toURIRef
even if it is a blank string.rdflib.util._coalesce
to make it easier and safer to usewith a non-
None
default value.rdflib.util._convert_optional
that makes it easy to convertoptional values while retaining their optional nature.
rdflib.util
to avoid issues with circular imports.Checklist
the same change.
CHANGELOG.md
).so maintainers can fix minor issues and keep your PR up to date.