Skip to content
Snippets Groups Projects
Commit da1dc81c authored by Martin Mareš's avatar Martin Mareš
Browse files

Zkouším si hrát s typováním

parent faa93aa2
No related branches found
No related tags found
No related merge requests found
[mypy]
plugins=sqlmypy
#!/usr/bin/env python3 #!/usr/bin/env python3
from sqlalchemy import create_engine, Column, Integer, String, ForeignKey, Enum from sqlalchemy import create_engine, Column, Integer, String, ForeignKey
from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship, sessionmaker from sqlalchemy.orm import relationship, sessionmaker
from typing import List, TYPE_CHECKING, TypeVar, Type, Any
import sqlalchemy.engine.url import sqlalchemy.engine.url
import config import config
import enum import enum
# HACK: Work-around for https://github.com/dropbox/sqlalchemy-stubs/issues/114
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
engine_url = sqlalchemy.engine.url.URL( engine_url = sqlalchemy.engine.url.URL(
drivername='postgresql', drivername='postgresql',
username=config.DB_USER, username=config.DB_USER,
...@@ -19,11 +30,13 @@ engine = create_engine(engine_url, echo=True) ...@@ -19,11 +30,13 @@ engine = create_engine(engine_url, echo=True)
Base = declarative_base() Base = declarative_base()
class PlaceType(enum.Enum): class PlaceType(enum.Enum):
region = 1 region = 1
school = 2 school = 2
site = 3 site = 3
class Place(Base): class Place(Base):
__tablename__ = 'places' __tablename__ = 'places'
...@@ -37,13 +50,14 @@ class Place(Base): ...@@ -37,13 +50,14 @@ class Place(Base):
children = relationship('Place') children = relationship('Place')
Session = sessionmaker(bind=engine) Session = sessionmaker(bind=engine)
session = Session() session = Session()
session.query(Place).delete() session.query(Place).delete()
with open('db/regions') as reg_list: with open('db/regions') as reg_list:
stack = [] stack: List[Place] = []
for line in reg_list: for line in reg_list:
line = line.rstrip() line = line.rstrip()
cols = line.split('\t') cols = line.split('\t')
...@@ -65,4 +79,5 @@ with open('db/regions') as reg_list: ...@@ -65,4 +79,5 @@ with open('db/regions') as reg_list:
session.flush() session.flush()
stack.append(place) stack.append(place)
session.commit() session.commit()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment