|
3 | 3 |
|
4 | 4 | import sqlalchemy as sa |
5 | 5 | import sqlalchemy.orm as orm |
| 6 | +from sqlalchemy.orm import Mapped |
| 7 | + |
6 | 8 | from pypi_org.data.modelbase import SqlAlchemyBase |
7 | 9 | from pypi_org.data.releases import Release |
8 | 10 |
|
9 | 11 |
|
10 | 12 | class Package(SqlAlchemyBase): |
11 | 13 | __tablename__ = 'packages' |
12 | 14 |
|
13 | | - id = sa.Column(sa.String, primary_key=True) |
14 | | - created_date = sa.Column(sa.DateTime, default=datetime.datetime.now, index=True) |
15 | | - summary = sa.Column(sa.String, nullable=False) |
16 | | - description = sa.Column(sa.String, nullable=True) |
| 15 | + id: str = sa.Column(sa.String, primary_key=True) |
| 16 | + created_date: datetime.datetime = sa.Column(sa.DateTime, default=datetime.datetime.now, index=True) |
| 17 | + summary: str = sa.Column(sa.String, nullable=False) |
| 18 | + description: str = sa.Column(sa.String, nullable=True) |
17 | 19 |
|
18 | | - home_page = sa.Column(sa.String) |
19 | | - docs_url = sa.Column(sa.String) |
20 | | - package_url = sa.Column(sa.String) |
| 20 | + home_page: str = sa.Column(sa.String) |
| 21 | + docs_url: str = sa.Column(sa.String) |
| 22 | + package_url: str = sa.Column(sa.String) |
21 | 23 |
|
22 | | - author_name = sa.Column(sa.String) |
23 | | - author_email = sa.Column(sa.String, index=True) |
| 24 | + author_name: str = sa.Column(sa.String) |
| 25 | + author_email: str = sa.Column(sa.String, index=True) |
24 | 26 |
|
25 | | - license = sa.Column(sa.String, index=True) |
| 27 | + license: str = sa.Column(sa.String, index=True) |
26 | 28 |
|
27 | 29 | # releases relationship |
28 | | - releases: List[Release] = orm.relation( |
| 30 | + releases: Mapped[Release] = orm.relationship( |
29 | 31 | 'Release', |
30 | 32 | order_by=[ |
31 | 33 | Release.major_ver.desc(), |
|
0 commit comments