diff --git a/.mypy.ini b/.mypy.ini index 33da901535104d8ab2cc632d7c1e70828df61421..fd577c876ac957e0eb680bf6d1e85e12a98557e1 100644 --- a/.mypy.ini +++ b/.mypy.ini @@ -1,3 +1,3 @@ [mypy] -plugins=sqlmypy +plugins=sqlalchemy.ext.mypy.plugin python_executable=venv/bin/python3 diff --git a/constraints.txt b/constraints.txt index f1e61c46479754055c38fd8f622591b8e8d26ff5..b510a27c9fda073bb05db6da5ac65a024f9d54cf 100644 --- a/constraints.txt +++ b/constraints.txt @@ -38,6 +38,7 @@ requests==2.28.1 six==1.16.0 SQLAlchemy==1.4.40 sqlalchemy-stubs==0.4 +sqlalchemy2-stubs==0.0.2a25 tomli==2.0.1 types-bleach==5.0.3 types-Flask-SQLAlchemy==2.5.9 diff --git a/mo/db.py b/mo/db.py index f88b6b617f5f9c1e7edc955869d5618cc47fc46a..cc57d4bf74a22e3fad393a24740d8671c0f82fcd 100644 --- a/mo/db.py +++ b/mo/db.py @@ -8,7 +8,7 @@ import locale import os import re from sqlalchemy import \ - Boolean, Column, DateTime, ForeignKey, Integer, String, Text, UniqueConstraint, \ + Boolean, Column, DateTime, Enum, ForeignKey, Integer, String, Text, UniqueConstraint, \ text, func, \ create_engine, inspect, select from sqlalchemy.engine import Engine @@ -20,23 +20,13 @@ from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.sql.expression import CTE from sqlalchemy.sql.functions import ReturnTypeFromArgs from sqlalchemy.sql.sqltypes import Numeric -from typing import Optional, List, Tuple +from typing import Any, Optional, List, Tuple import mo import mo.config as config from mo.place_level import place_levels, PlaceLevel from mo.util_format import timeformat_short, timedelta, time_and_timedelta -# HACK: Work-around for https://github.com/dropbox/sqlalchemy-stubs/issues/114 -from typing import TYPE_CHECKING, TypeVar, Type, Any -if TYPE_CHECKING: - from sqlalchemy.sql.type_api import TypeEngine - T = TypeVar('T') - class Enum(TypeEngine[T]): - def __init__(self, enum: Type[T], **kwargs: Any) -> None: ... -else: - from sqlalchemy import Enum - # Funkce f_unaccent je definovaná v db.ddl, naučme Alchymii volat ji: class f_unaccent(ReturnTypeFromArgs): diff --git a/setup.py b/setup.py index 50c87e6870b7e06b3c5a38a063d1a18cd81f48c8..41d797367b7b28eac72e96f6a48f0ce357441feb 100644 --- a/setup.py +++ b/setup.py @@ -47,7 +47,7 @@ setuptools.setup( 'python-poppler', 'pyzbar', 'requests', - 'sqlalchemy', + 'sqlalchemy[mypy]', 'uwsgidecorators', # Používáme pro vývoj, ale aby je pylsp našel, musí být ve stejném virtualenvu # jako ostatní knihovny.