Skip to content

Instantly share code, notes, and snippets.

@aucampia
Created August 21, 2022 19:25
Show Gist options
  • Save aucampia/589f1eb5c56115e620ca3892f0275f68 to your computer and use it in GitHub Desktop.
Save aucampia/589f1eb5c56115e620ca3892f0275f68 to your computer and use it in GitHub Desktop.
task run -- python -m pip install --upgrade strip-hints black python-minifier
PYLOGGING_LEVEL=INFO task run -- git difftool -y -x $(readlink -f devtools/diffrtpy.py) origin/iwana-20220821T2011-com2ann..upstream/master | tee /var/tmp/compact.diff
gh gist edit  https://gist.github.com/aucampia/589f1eb5c56115e620ca3892f0275f68 -f compact.diff /var/tmp/compact.diff
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -164,15 +164,12 @@
<!-- CHANGE BARRIER: START PR #2057 -->
<!-- -->
<!-- -->
- Added type hints.
+ [PR #2057](https://github.com/RDFLib/rdflib/pull/2057).
- `rdflib.store` and builtin stores have mostly complete type hints.
- [PR #2057](https://github.com/RDFLib/rdflib/pull/2057).
- - `rdflib.plugins.sparql.algebra` amd `rdflib.plugins.sparql.operators` have
- mostly complete type hints.
- [PR #2094](https://github.com/RDFLib/rdflib/pull/2094).
<!-- -->
<!-- -->
<!-- CHANGE BARRIER: END PR #2057 -->
<!-- -->
--- a/Taskfile.yml
+++ b/Taskfile.yml
@@ -129,21 +129,16 @@
TOXENV: '{{if .TOX_PYTHON_VERSION}}py{{mustRegexReplaceAll "^([0-9]+)[.]([0-9]+).*" .TOX_PYTHON_VERSION "${1}${2}"}}{{if (mustFromJson .EXTENSIVE)}}-extensive{{end}}{{.TOXENV_SUFFIX | default ""}}{{end}}'
test:
desc: Run tests
cmds:
- '{{.TEST_HARNESS}}{{print .VENV_BINPREFIX "pytest" | shellQuote}} {{if (mustFromJson .WITH_COVERAGE)}}--cov --cov-report={{end}} {{.CLI_ARGS}}'
+
flake8:
desc: Run flake8
cmds:
- - |
- if {{._PYTHON | shellQuote}} -c 'import importlib; exit(0 if importlib.util.find_spec("flakeheaven") is not None else 1)'
- then
- 1>&2 echo "running flakeheaven"
- {{._PYTHON | shellQuote}} -m flakeheaven lint {{.CLI_ARGS}}
- else
- 1>&2 echo "skipping flakeheaven as it is not installed, likely because python version is older than 3.8"
- fi
+ - "{{._PYTHON | shellQuote}} -m flakeheaven lint {{.CLI_ARGS}}"
+
black:
desc: Run black
cmds:
- '{{._PYTHON | shellQuote}} -m black {{if (mustFromJson (.CHECK | default "false"))}}--check --diff {{end}}{{.CLI_ARGS | default "."}}'
isort:
--- a/rdflib/plugins/sparql/algebra.py
+++ b/rdflib/plugins/sparql/algebra.py
@@ -1,6 +1,5 @@
-from __future__ import annotations
import collections
import functools
import operator
import typing
from functools import reduce
--- a/rdflib/plugins/sparql/operators.py
+++ b/rdflib/plugins/sparql/operators.py
@@ -1,43 +1,28 @@
-from __future__ import annotations
import datetime as py_datetime
import hashlib
import math
import operator as pyop
import random
import re
import uuid
import warnings
from decimal import ROUND_HALF_UP, Decimal, InvalidOperation
from functools import reduce
-from typing import Any, Callable, Dict, NoReturn, Optional, Tuple, Union, overload
from urllib.parse import quote
import isodate
from pyparsing import ParseResults
-from rdflib.namespace import RDF, XSD
+from rdflib import RDF, XSD, BNode, Literal, URIRef, Variable
from rdflib.plugins.sparql.datatypes import (
XSD_DateTime_DTs,
XSD_DTs,
XSD_Duration_DTs,
type_promotion,
)
from rdflib.plugins.sparql.parserutils import CompValue, Expr
-from rdflib.plugins.sparql.sparql import (
- FrozenBindings,
- QueryContext,
- SPARQLError,
- SPARQLTypeError,
-)
-from rdflib.term import (
- BNode,
- IdentifiedNode,
- Identifier,
- Literal,
- Node,
- URIRef,
- Variable,
-)
+from rdflib.plugins.sparql.sparql import SPARQLError, SPARQLTypeError
+from rdflib.term import Node
def Builtin_IRI(expr, ctx):
a = expr.arg
if isinstance(a, URIRef):
@@ -389,11 +374,10 @@
for x in evalPart(ctx, e.graph):
return Literal(exists)
return Literal(not exists)
-_CustomFunction = Callable[[Expr, FrozenBindings], Node]
_CUSTOM_FUNCTIONS = {}
def register_custom_function(uri, func, override=False, raw=False):
if not override and uri in _CUSTOM_FUNCTIONS:
@@ -788,25 +772,10 @@
return Literal(ans, datatype=dt1)
else:
raise SPARQLError("Incompatible Data types to DateTime Operations")
-@overload
-def EBV(rt):
- ...
-
-
-@overload
-def EBV(rt):
- ...
-
-
-@overload
-def EBV(rt):
- ...
-
-
def EBV(rt):
if isinstance(rt, Literal):
if rt.datatype == XSD.boolean:
return rt.toPython()
elif rt.datatype == XSD.string or rt.datatype is None:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment