adapt shakespeare models to sqlalchemy 2.0

This commit is contained in:
Jakub Miazek 2023-10-21 15:33:40 +02:00
parent 08b9dee1cb
commit 3291fa784e
3 changed files with 163 additions and 115 deletions

View File

@ -1,154 +1,123 @@
from sqlalchemy import ( from typing import List, Optional
Column,
ForeignKey, from sqlalchemy import Column, ForeignKeyConstraint, Integer, PrimaryKeyConstraint, String, Table, Text, \
ForeignKeyConstraint, UniqueConstraint, select
Integer,
PrimaryKeyConstraint,
String,
Table,
Text,
UniqueConstraint,
select,
)
from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.orm import relationship from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, relationship
from app.models.base import Base class Base(DeclarativeBase):
pass
metadata = Base.metadata
class Character(Base): class Character(Base):
__tablename__ = "character" __tablename__ = 'character'
__table_args__ = ( __table_args__ = (
PrimaryKeyConstraint("id", name="character_pkey"), PrimaryKeyConstraint('id', name='character_pkey'),
{"schema": "shakespeare"}, {'schema': 'shakespeare'}
) )
id = Column(String(32)) id: Mapped[str] = mapped_column(String(32), primary_key=True)
name = Column(String(64), nullable=False) name: Mapped[str] = mapped_column(String(64))
speech_count = Column(Integer, nullable=False) speech_count: Mapped[int] = mapped_column(Integer)
abbrev = Column(String(32)) abbrev: Mapped[str | None] = mapped_column(String(32))
description = Column(String(2056)) description: Mapped[str | None] = mapped_column(String(2056))
work = relationship("Work", secondary="shakespeare.character_work", back_populates="character") work: Mapped[list['Work']] = relationship('Work', secondary='shakespeare.character_work', back_populates='character')
paragraph = relationship("Paragraph", back_populates="character") paragraph: Mapped[list['Paragraph']] = relationship('Paragraph', back_populates='character')
class Wordform(Base): class Wordform(Base):
__tablename__ = "wordform" __tablename__ = 'wordform'
__table_args__ = ( __table_args__ = (
PrimaryKeyConstraint("id", name="wordform_pkey"), PrimaryKeyConstraint('id', name='wordform_pkey'),
{"schema": "shakespeare"}, {'schema': 'shakespeare'}
) )
id = Column(Integer) id: Mapped[int] = mapped_column(Integer, primary_key=True)
plain_text = Column(String(64), nullable=False) plain_text: Mapped[str] = mapped_column(String(64))
phonetic_text = Column(String(64), nullable=False) phonetic_text: Mapped[str] = mapped_column(String(64))
stem_text = Column(String(64), nullable=False) stem_text: Mapped[str] = mapped_column(String(64))
occurences = Column(Integer, nullable=False) occurences: Mapped[int] = mapped_column(Integer)
class Work(Base): class Work(Base):
__tablename__ = "work" __tablename__ = 'work'
__table_args__ = ( __table_args__ = (
PrimaryKeyConstraint("id", name="work_pkey"), PrimaryKeyConstraint('id', name='work_pkey'),
{"schema": "shakespeare"}, {'schema': 'shakespeare'}
) )
id = Column(String(32)) id: Mapped[str] = mapped_column(String(32), primary_key=True)
title = Column(String(32), nullable=False) title: Mapped[str] = mapped_column(String(32))
long_title = Column(String(64), nullable=False) long_title: Mapped[str] = mapped_column(String(64))
year = Column(Integer, nullable=False) year: Mapped[int] = mapped_column(Integer)
genre_type = Column(String(1), nullable=False) genre_type: Mapped[str] = mapped_column(String(1))
source = Column(String(16), nullable=False) source: Mapped[str] = mapped_column(String(16))
total_words = Column(Integer, nullable=False) total_words: Mapped[int] = mapped_column(Integer)
total_paragraphs = Column(Integer, nullable=False) total_paragraphs: Mapped[int] = mapped_column(Integer)
notes = Column(Text) notes: Mapped[str | None] = mapped_column(Text)
character = relationship("Character", secondary="shakespeare.character_work", back_populates="work") character: Mapped[list['Character']] = relationship('Character', secondary='shakespeare.character_work', back_populates='work')
chapter = relationship("Chapter", back_populates="work") chapter: Mapped[list['Chapter']] = relationship('Chapter', back_populates='work')
paragraph = relationship("Paragraph", back_populates="work") paragraph: Mapped[list['Paragraph']] = relationship('Paragraph', back_populates='work')
class Chapter(Base): class Chapter(Base):
__tablename__ = "chapter" __tablename__ = 'chapter'
__table_args__ = ( __table_args__ = (
ForeignKeyConstraint(["work_id"], ["shakespeare.work.id"], name="chapter_work_id_fkey"), ForeignKeyConstraint(['work_id'], ['shakespeare.work.id'], name='chapter_work_id_fkey'),
PrimaryKeyConstraint("id", name="chapter_pkey"), PrimaryKeyConstraint('id', name='chapter_pkey'),
UniqueConstraint( UniqueConstraint('work_id', 'section_number', 'chapter_number', name='chapter_work_id_section_number_chapter_number_key'),
"work_id", {'schema': 'shakespeare'}
"section_number",
"chapter_number",
name="chapter_work_id_section_number_chapter_number_key",
),
{"schema": "shakespeare"},
) )
id = Column(Integer) id: Mapped[int] = mapped_column(Integer, primary_key=True)
work_id = Column(ForeignKey("shakespeare.work.id"), nullable=False) work_id: Mapped[str] = mapped_column(String(32))
section_number = Column(Integer, nullable=False) section_number: Mapped[int] = mapped_column(Integer)
chapter_number = Column(Integer, nullable=False) chapter_number: Mapped[int] = mapped_column(Integer)
description = Column(String(256), nullable=False) description: Mapped[str] = mapped_column(String(256))
work = relationship("Work", back_populates="chapter") work: Mapped['Work'] = relationship('Work', back_populates='chapter')
paragraph = relationship("Paragraph", back_populates="chapter") paragraph: Mapped[list['Paragraph']] = relationship('Paragraph', back_populates='chapter')
t_character_work = Table( t_character_work = Table(
"character_work", 'character_work', Base.metadata,
metadata, Column('character_id', String(32), primary_key=True, nullable=False),
Column("character_id", ForeignKey("shakespeare.character.id"), nullable=False), Column('work_id', String(32), primary_key=True, nullable=False),
Column("work_id", ForeignKey("shakespeare.work.id"), nullable=False), ForeignKeyConstraint(['character_id'], ['shakespeare.character.id'], name='character_work_character_id_fkey'),
ForeignKeyConstraint( ForeignKeyConstraint(['work_id'], ['shakespeare.work.id'], name='character_work_work_id_fkey'),
["character_id"], PrimaryKeyConstraint('character_id', 'work_id', name='character_work_pkey'),
["shakespeare.character.id"], schema='shakespeare'
name="character_work_character_id_fkey",
),
ForeignKeyConstraint(["work_id"], ["shakespeare.work.id"], name="character_work_work_id_fkey"),
PrimaryKeyConstraint("character_id", "work_id", name="character_work_pkey"),
schema="shakespeare",
) )
class Paragraph(Base): class Paragraph(Base):
__tablename__ = "paragraph" __tablename__ = 'paragraph'
__table_args__ = ( __table_args__ = (
ForeignKeyConstraint( ForeignKeyConstraint(['character_id'], ['shakespeare.character.id'], name='paragraph_character_id_fkey'),
["character_id"], ForeignKeyConstraint(['work_id', 'section_number', 'chapter_number'], ['shakespeare.chapter.work_id', 'shakespeare.chapter.section_number', 'shakespeare.chapter.chapter_number'], name='paragraph_chapter_fkey'),
["shakespeare.character.id"], ForeignKeyConstraint(['work_id'], ['shakespeare.work.id'], name='paragraph_work_id_fkey'),
name="paragraph_character_id_fkey", PrimaryKeyConstraint('id', name='paragraph_pkey'),
), {'schema': 'shakespeare'}
ForeignKeyConstraint(
["work_id", "section_number", "chapter_number"],
[
"shakespeare.chapter.work_id",
"shakespeare.chapter.section_number",
"shakespeare.chapter.chapter_number",
],
name="paragraph_chapter_fkey",
),
ForeignKeyConstraint(["work_id"], ["shakespeare.work.id"], name="paragraph_work_id_fkey"),
PrimaryKeyConstraint("id", name="paragraph_pkey"),
{"schema": "shakespeare"},
) )
id = Column(Integer) id: Mapped[int] = mapped_column(Integer, primary_key=True)
work_id = Column(ForeignKey("shakespeare.work.id"), nullable=False) work_id: Mapped[str] = mapped_column(String(32))
paragraph_num = Column(Integer, nullable=False) paragraph_num: Mapped[int] = mapped_column(Integer)
character_id = Column(ForeignKey("shakespeare.character.id"), nullable=False) character_id: Mapped[str] = mapped_column(String(32))
plain_text = Column(Text, nullable=False) plain_text: Mapped[str] = mapped_column(Text)
phonetic_text = Column(Text, nullable=False) phonetic_text: Mapped[str] = mapped_column(Text)
stem_text = Column(Text, nullable=False) stem_text: Mapped[str] = mapped_column(Text)
paragraph_type = Column(String(1), nullable=False) paragraph_type: Mapped[str] = mapped_column(String(1))
section_number = Column(Integer, nullable=False) section_number: Mapped[int] = mapped_column(Integer)
chapter_number = Column(Integer, nullable=False) chapter_number: Mapped[int] = mapped_column(Integer)
char_count = Column(Integer, nullable=False) char_count: Mapped[int] = mapped_column(Integer)
word_count = Column(Integer, nullable=False) word_count: Mapped[int] = mapped_column(Integer)
character = relationship("Character", back_populates="paragraph", lazy="selectin") character: Mapped['Character'] = relationship('Character', back_populates='paragraph')
chapter = relationship("Chapter", back_populates="paragraph", lazy="selectin") chapter: Mapped['Chapter'] = relationship('Chapter', back_populates='paragraph')
work = relationship("Work", back_populates="paragraph", lazy="selectin") work: Mapped['Work'] = relationship('Work', back_populates='paragraph')
@classmethod @classmethod
async def find(cls, db_session: AsyncSession, character: str): async def find(cls, db_session: AsyncSession, character: str):

86
poetry.lock generated
View File

@ -1085,6 +1085,84 @@ files = [
[package.dependencies] [package.dependencies]
wcwidth = "*" wcwidth = "*"
[[package]]
name = "psycopg2-binary"
version = "2.9.9"
description = "psycopg2 - Python-PostgreSQL Database Adapter"
optional = false
python-versions = ">=3.7"
files = [
{file = "psycopg2-binary-2.9.9.tar.gz", hash = "sha256:7f01846810177d829c7692f1f5ada8096762d9172af1b1a28d4ab5b77c923c1c"},
{file = "psycopg2_binary-2.9.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c2470da5418b76232f02a2fcd2229537bb2d5a7096674ce61859c3229f2eb202"},
{file = "psycopg2_binary-2.9.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c6af2a6d4b7ee9615cbb162b0738f6e1fd1f5c3eda7e5da17861eacf4c717ea7"},
{file = "psycopg2_binary-2.9.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:75723c3c0fbbf34350b46a3199eb50638ab22a0228f93fb472ef4d9becc2382b"},
{file = "psycopg2_binary-2.9.9-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:83791a65b51ad6ee6cf0845634859d69a038ea9b03d7b26e703f94c7e93dbcf9"},
{file = "psycopg2_binary-2.9.9-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0ef4854e82c09e84cc63084a9e4ccd6d9b154f1dbdd283efb92ecd0b5e2b8c84"},
{file = "psycopg2_binary-2.9.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed1184ab8f113e8d660ce49a56390ca181f2981066acc27cf637d5c1e10ce46e"},
{file = "psycopg2_binary-2.9.9-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d2997c458c690ec2bc6b0b7ecbafd02b029b7b4283078d3b32a852a7ce3ddd98"},
{file = "psycopg2_binary-2.9.9-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:b58b4710c7f4161b5e9dcbe73bb7c62d65670a87df7bcce9e1faaad43e715245"},
{file = "psycopg2_binary-2.9.9-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:0c009475ee389757e6e34611d75f6e4f05f0cf5ebb76c6037508318e1a1e0d7e"},
{file = "psycopg2_binary-2.9.9-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8dbf6d1bc73f1d04ec1734bae3b4fb0ee3cb2a493d35ede9badbeb901fb40f6f"},
{file = "psycopg2_binary-2.9.9-cp310-cp310-win32.whl", hash = "sha256:3f78fd71c4f43a13d342be74ebbc0666fe1f555b8837eb113cb7416856c79682"},
{file = "psycopg2_binary-2.9.9-cp310-cp310-win_amd64.whl", hash = "sha256:876801744b0dee379e4e3c38b76fc89f88834bb15bf92ee07d94acd06ec890a0"},
{file = "psycopg2_binary-2.9.9-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ee825e70b1a209475622f7f7b776785bd68f34af6e7a46e2e42f27b659b5bc26"},
{file = "psycopg2_binary-2.9.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1ea665f8ce695bcc37a90ee52de7a7980be5161375d42a0b6c6abedbf0d81f0f"},
{file = "psycopg2_binary-2.9.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:143072318f793f53819048fdfe30c321890af0c3ec7cb1dfc9cc87aa88241de2"},
{file = "psycopg2_binary-2.9.9-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c332c8d69fb64979ebf76613c66b985414927a40f8defa16cf1bc028b7b0a7b0"},
{file = "psycopg2_binary-2.9.9-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7fc5a5acafb7d6ccca13bfa8c90f8c51f13d8fb87d95656d3950f0158d3ce53"},
{file = "psycopg2_binary-2.9.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:977646e05232579d2e7b9c59e21dbe5261f403a88417f6a6512e70d3f8a046be"},
{file = "psycopg2_binary-2.9.9-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b6356793b84728d9d50ead16ab43c187673831e9d4019013f1402c41b1db9b27"},
{file = "psycopg2_binary-2.9.9-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:bc7bb56d04601d443f24094e9e31ae6deec9ccb23581f75343feebaf30423359"},
{file = "psycopg2_binary-2.9.9-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:77853062a2c45be16fd6b8d6de2a99278ee1d985a7bd8b103e97e41c034006d2"},
{file = "psycopg2_binary-2.9.9-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:78151aa3ec21dccd5cdef6c74c3e73386dcdfaf19bced944169697d7ac7482fc"},
{file = "psycopg2_binary-2.9.9-cp311-cp311-win32.whl", hash = "sha256:dc4926288b2a3e9fd7b50dc6a1909a13bbdadfc67d93f3374d984e56f885579d"},
{file = "psycopg2_binary-2.9.9-cp311-cp311-win_amd64.whl", hash = "sha256:b76bedd166805480ab069612119ea636f5ab8f8771e640ae103e05a4aae3e417"},
{file = "psycopg2_binary-2.9.9-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:8532fd6e6e2dc57bcb3bc90b079c60de896d2128c5d9d6f24a63875a95a088cf"},
{file = "psycopg2_binary-2.9.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f8544b092a29a6ddd72f3556a9fcf249ec412e10ad28be6a0c0d948924f2212"},
{file = "psycopg2_binary-2.9.9-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2d423c8d8a3c82d08fe8af900ad5b613ce3632a1249fd6a223941d0735fce493"},
{file = "psycopg2_binary-2.9.9-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e5afae772c00980525f6d6ecf7cbca55676296b580c0e6abb407f15f3706996"},
{file = "psycopg2_binary-2.9.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e6f98446430fdf41bd36d4faa6cb409f5140c1c2cf58ce0bbdaf16af7d3f119"},
{file = "psycopg2_binary-2.9.9-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c77e3d1862452565875eb31bdb45ac62502feabbd53429fdc39a1cc341d681ba"},
{file = "psycopg2_binary-2.9.9-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:cb16c65dcb648d0a43a2521f2f0a2300f40639f6f8c1ecbc662141e4e3e1ee07"},
{file = "psycopg2_binary-2.9.9-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:911dda9c487075abd54e644ccdf5e5c16773470a6a5d3826fda76699410066fb"},
{file = "psycopg2_binary-2.9.9-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:57fede879f08d23c85140a360c6a77709113efd1c993923c59fde17aa27599fe"},
{file = "psycopg2_binary-2.9.9-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2293b001e319ab0d869d660a704942c9e2cce19745262a8aba2115ef41a0a42a"},
{file = "psycopg2_binary-2.9.9-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03ef7df18daf2c4c07e2695e8cfd5ee7f748a1d54d802330985a78d2a5a6dca9"},
{file = "psycopg2_binary-2.9.9-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a602ea5aff39bb9fac6308e9c9d82b9a35c2bf288e184a816002c9fae930b77"},
{file = "psycopg2_binary-2.9.9-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8359bf4791968c5a78c56103702000105501adb557f3cf772b2c207284273984"},
{file = "psycopg2_binary-2.9.9-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:275ff571376626195ab95a746e6a04c7df8ea34638b99fc11160de91f2fef503"},
{file = "psycopg2_binary-2.9.9-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:f9b5571d33660d5009a8b3c25dc1db560206e2d2f89d3df1cb32d72c0d117d52"},
{file = "psycopg2_binary-2.9.9-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:420f9bbf47a02616e8554e825208cb947969451978dceb77f95ad09c37791dae"},
{file = "psycopg2_binary-2.9.9-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:4154ad09dac630a0f13f37b583eae260c6aa885d67dfbccb5b02c33f31a6d420"},
{file = "psycopg2_binary-2.9.9-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:a148c5d507bb9b4f2030a2025c545fccb0e1ef317393eaba42e7eabd28eb6041"},
{file = "psycopg2_binary-2.9.9-cp37-cp37m-win32.whl", hash = "sha256:68fc1f1ba168724771e38bee37d940d2865cb0f562380a1fb1ffb428b75cb692"},
{file = "psycopg2_binary-2.9.9-cp37-cp37m-win_amd64.whl", hash = "sha256:281309265596e388ef483250db3640e5f414168c5a67e9c665cafce9492eda2f"},
{file = "psycopg2_binary-2.9.9-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:60989127da422b74a04345096c10d416c2b41bd7bf2a380eb541059e4e999980"},
{file = "psycopg2_binary-2.9.9-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:246b123cc54bb5361588acc54218c8c9fb73068bf227a4a531d8ed56fa3ca7d6"},
{file = "psycopg2_binary-2.9.9-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34eccd14566f8fe14b2b95bb13b11572f7c7d5c36da61caf414d23b91fcc5d94"},
{file = "psycopg2_binary-2.9.9-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18d0ef97766055fec15b5de2c06dd8e7654705ce3e5e5eed3b6651a1d2a9a152"},
{file = "psycopg2_binary-2.9.9-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d3f82c171b4ccd83bbaf35aa05e44e690113bd4f3b7b6cc54d2219b132f3ae55"},
{file = "psycopg2_binary-2.9.9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ead20f7913a9c1e894aebe47cccf9dc834e1618b7aa96155d2091a626e59c972"},
{file = "psycopg2_binary-2.9.9-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ca49a8119c6cbd77375ae303b0cfd8c11f011abbbd64601167ecca18a87e7cdd"},
{file = "psycopg2_binary-2.9.9-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:323ba25b92454adb36fa425dc5cf6f8f19f78948cbad2e7bc6cdf7b0d7982e59"},
{file = "psycopg2_binary-2.9.9-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:1236ed0952fbd919c100bc839eaa4a39ebc397ed1c08a97fc45fee2a595aa1b3"},
{file = "psycopg2_binary-2.9.9-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:729177eaf0aefca0994ce4cffe96ad3c75e377c7b6f4efa59ebf003b6d398716"},
{file = "psycopg2_binary-2.9.9-cp38-cp38-win32.whl", hash = "sha256:804d99b24ad523a1fe18cc707bf741670332f7c7412e9d49cb5eab67e886b9b5"},
{file = "psycopg2_binary-2.9.9-cp38-cp38-win_amd64.whl", hash = "sha256:a6cdcc3ede532f4a4b96000b6362099591ab4a3e913d70bcbac2b56c872446f7"},
{file = "psycopg2_binary-2.9.9-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:72dffbd8b4194858d0941062a9766f8297e8868e1dd07a7b36212aaa90f49472"},
{file = "psycopg2_binary-2.9.9-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:30dcc86377618a4c8f3b72418df92e77be4254d8f89f14b8e8f57d6d43603c0f"},
{file = "psycopg2_binary-2.9.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:31a34c508c003a4347d389a9e6fcc2307cc2150eb516462a7a17512130de109e"},
{file = "psycopg2_binary-2.9.9-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:15208be1c50b99203fe88d15695f22a5bed95ab3f84354c494bcb1d08557df67"},
{file = "psycopg2_binary-2.9.9-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1873aade94b74715be2246321c8650cabf5a0d098a95bab81145ffffa4c13876"},
{file = "psycopg2_binary-2.9.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a58c98a7e9c021f357348867f537017057c2ed7f77337fd914d0bedb35dace7"},
{file = "psycopg2_binary-2.9.9-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4686818798f9194d03c9129a4d9a702d9e113a89cb03bffe08c6cf799e053291"},
{file = "psycopg2_binary-2.9.9-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:ebdc36bea43063116f0486869652cb2ed7032dbc59fbcb4445c4862b5c1ecf7f"},
{file = "psycopg2_binary-2.9.9-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:ca08decd2697fdea0aea364b370b1249d47336aec935f87b8bbfd7da5b2ee9c1"},
{file = "psycopg2_binary-2.9.9-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ac05fb791acf5e1a3e39402641827780fe44d27e72567a000412c648a85ba860"},
{file = "psycopg2_binary-2.9.9-cp39-cp39-win32.whl", hash = "sha256:9dba73be7305b399924709b91682299794887cbbd88e38226ed9f6712eabee90"},
{file = "psycopg2_binary-2.9.9-cp39-cp39-win_amd64.whl", hash = "sha256:f7ae5d65ccfbebdfa761585228eb4d0df3a8b15cfb53bd953e713e09fbb12957"},
]
[[package]] [[package]]
name = "ptyprocess" name = "ptyprocess"
version = "0.7.0" version = "0.7.0"
@ -1510,13 +1588,13 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"]
[[package]] [[package]]
name = "ruamel-yaml" name = "ruamel-yaml"
version = "0.17.39" version = "0.17.40"
description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order" description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order"
optional = false optional = false
python-versions = ">=3" python-versions = ">=3"
files = [ files = [
{file = "ruamel.yaml-0.17.39-py3-none-any.whl", hash = "sha256:8df81a51384f2e6af73d88bede63ec437df4854a5a74841f40e7622471298457"}, {file = "ruamel.yaml-0.17.40-py3-none-any.whl", hash = "sha256:b16b6c3816dff0a93dca12acf5e70afd089fa5acb80604afd1ffa8b465b7722c"},
{file = "ruamel.yaml-0.17.39.tar.gz", hash = "sha256:ee9a9178a231306d2b260e67ba497c136d4639d58b08775ab67f5fb0f21e73f0"}, {file = "ruamel.yaml-0.17.40.tar.gz", hash = "sha256:6024b986f06765d482b5b07e086cc4b4cd05dd22ddcbc758fa23d54873cf313d"},
] ]
[package.dependencies] [package.dependencies]
@ -2137,4 +2215,4 @@ files = [
[metadata] [metadata]
lock-version = "2.0" lock-version = "2.0"
python-versions = "^3.11" python-versions = "^3.11"
content-hash = "6a1bf308aba21a38faa460dc2f91552c36a2acbc2fd478eecde7ba97bde7120a" content-hash = "77377f6cea6f03aaa316a51480462192197a443edf87fa4d67123cb824d4ac4b"

View File

@ -32,6 +32,7 @@ safety = "*"
pyupgrade = "*" pyupgrade = "*"
ipython = "*" ipython = "*"
ruff = "*" ruff = "*"
psycopg2-binary = "*"
sqlacodegen = "3.0.0rc3" sqlacodegen = "3.0.0rc3"