diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 805cfeed756f2689dbe825e1e4ec19db7b9cfb28..cf95e1be91c18765a9b8ba98c83dcd77fd91ad93 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -53,5 +53,5 @@ test: - export PGHOST="postgres" - export PGDATABASE=$POSTGRES_DB - export PGUSER=$POSTGRES_USER - - pytest --doctest-modules --cov=querybuilder + - pytest --pyargs querybuilder --doctest-modules --cov=querybuilder coverage: '/TOTAL.*\s+(\d+%)$/' diff --git a/pyproject.toml b/pyproject.toml index ccca77dce3b55e22a695c2efda9345ffac69dff0..010c5214b89d887ea54e5e3bfc8bb0902f3355b3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -71,7 +71,7 @@ include = [ "/querybuilder", ] -[tool.ruff.per-file-ignores] +[tool.ruff.lint.per-file-ignores] #I001 (sort import) #F401 (drop unused imports) "__init__.py" = ["I001", "F401"] diff --git a/querybuilder/drivers/__init__.py b/querybuilder/drivers/__init__.py index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..314e045e4ef33f5f5f3780aefb97e406370905b0 100644 --- a/querybuilder/drivers/__init__.py +++ b/querybuilder/drivers/__init__.py @@ -0,0 +1,3 @@ +from querybuilder.drivers import sqlite +from querybuilder.drivers import sql +from querybuilder.drivers import postgres diff --git a/querybuilder/drivers/sql/connector.py b/querybuilder/drivers/sql/connector.py index f6df43f05f83f17433948c8f2ea0740e3d3230c4..4ddcfa62f4bdc036ce20b7c7003801c7800d6107 100644 --- a/querybuilder/drivers/sql/connector.py +++ b/querybuilder/drivers/sql/connector.py @@ -180,7 +180,7 @@ class Connector: query: qb.queries.queries.Query, parameters: Optional[Mapping[str, Any]] = None, ): - with self.transaction(on_next_context=not query.is_readonly()) as t: + with self.transaction(on_next_context=not query.is_readonly()) as t: # type: ignore return t.execute(query, parameters=parameters) def executemany( diff --git a/querybuilder/utils/logger.py b/querybuilder/utils/logger.py index 5872352ddb12e9f967c87fc4c3a53fa7155d4826..9bab2f9619cd30e20a3d7ca5c829b480b7ae3686 100644 --- a/querybuilder/utils/logger.py +++ b/querybuilder/utils/logger.py @@ -113,7 +113,7 @@ class Logger: The elements of `iterable` are yielded unchanged. """ if not self.active: - return iterable + yield from iterable if self.file.seekable(): seek_pos = self.file.tell() diff --git a/querybuilder/utils/stores.py b/querybuilder/utils/stores.py index c9ce553dce961695156449110cad1bc59a084b85..094e50b627fe307145c3f4d83c12d352132ef096 100644 --- a/querybuilder/utils/stores.py +++ b/querybuilder/utils/stores.py @@ -445,14 +445,17 @@ class UKeyedMappingView(Mapping[str, E]): # Frozenmap class Frozenmap(Mapping[K, V]): __slots__ = ("_keys", "_values") + _keys: tuple[K] + _values: tuple[V] - @wraps(dict[K, V]) + @wraps(dict[K, V].__init__) # type: ignore def __init__(self, E=(), /, **F: V): d = dict(E, **F) if d: self._keys, self._values = zip(*d.items()) else: - self._keys = self._values = () + self._keys = cast(tuple[K], ()) + self._values = cast(tuple[V], ()) def __getitem__(self, key: K) -> V: try: