setting up ORM
This commit is contained in:
@@ -3,9 +3,10 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from pipelines.orm.data_science_dev.posts.failed_ingestion import FailedIngestion
|
||||
from pipelines.orm.data_science_dev.posts.tables import Posts
|
||||
from pipelines.orm.data_science_dev.posts.tables import Posts, PostTopic
|
||||
|
||||
__all__ = [
|
||||
"FailedIngestion",
|
||||
"Posts",
|
||||
"PostTopic",
|
||||
]
|
||||
|
||||
@@ -0,0 +1,195 @@
|
||||
"""Shared language filter constants for post sampling queries."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
ENGLISH_LANGS = (
|
||||
'["", "", ""]',
|
||||
'[""]',
|
||||
"[]",
|
||||
'["", "eng"]',
|
||||
'["eng", "", ""]',
|
||||
'["eng", ""]',
|
||||
'["eng"]',
|
||||
'["eng", "aar"]',
|
||||
'["eng", "abk", "afr"]',
|
||||
'["eng", "afr"]',
|
||||
'["eng", "afr", "abk"]',
|
||||
'["eng", "afr", "anp"]',
|
||||
'["eng", "afr", "ber"]',
|
||||
'["eng", "afr", "dan"]',
|
||||
'["eng", "afr", "deu"]',
|
||||
'["eng", "afr", "est"]',
|
||||
'["eng", "afr", "fra"]',
|
||||
'["eng", "afr", "ind"]',
|
||||
'["eng", "afr", "lat"]',
|
||||
'["eng", "afr", "nld"]',
|
||||
'["eng", "afr", "nor"]',
|
||||
'["eng", "afr", "pol"]',
|
||||
'["eng", "afr", "por"]',
|
||||
'["eng", "afr", "ron"]',
|
||||
'["eng", "afr", "slk"]',
|
||||
'["eng", "afr", "spa"]',
|
||||
'["eng", "afr", "tgl"]',
|
||||
'["eng", "afr", "tuk"]',
|
||||
'["eng", "afr", "tur"]',
|
||||
'["eng", "afr", "ukr"]',
|
||||
'["eng", "afr", "vol"]',
|
||||
'["eng", "agq"]',
|
||||
'["eng", "ain"]',
|
||||
'["eng", "ain", "amh"]',
|
||||
'["eng", "ain", "jpn"]',
|
||||
'["eng", "aka"]',
|
||||
'["eng", "amh"]',
|
||||
'["eng", "amh", "afr"]',
|
||||
'["eng", "amh", "ara"]',
|
||||
'["eng", "amh", "fra"]',
|
||||
'["eng", "anp"]',
|
||||
'["eng", "anp", "hye"]',
|
||||
'["eng", "anp", "sqi"]',
|
||||
'["eng", "", "ara"]',
|
||||
'["eng", "ara", ""]',
|
||||
'["eng", "ara"]',
|
||||
'["eng", "ara", "afr"]',
|
||||
'["eng", "ara", "anp"]',
|
||||
'["eng", "ara", "ars"]',
|
||||
'["eng", "ara", "bul"]',
|
||||
'["eng", "ara", "cat"]',
|
||||
'["eng", "ara", "deu"]',
|
||||
'["eng", "ara", "ell"]',
|
||||
'["eng", "ara", "fas"]',
|
||||
'["eng", "ara", "fra"]',
|
||||
'["eng", "ara", "heb"]',
|
||||
'["eng", "ara", "hin"]',
|
||||
'["eng", "ara", "ind"]',
|
||||
'["eng", "ara", "ita"]',
|
||||
'["eng", "ara", "jpn"]',
|
||||
'["eng", "ara", "kas"]',
|
||||
'["eng", "ara", "kor"]',
|
||||
'["eng", "ara", "nob"]',
|
||||
'["eng", "ara", "nor"]',
|
||||
'["eng", "ara", "rus"]',
|
||||
'["eng", "ara", "spa"]',
|
||||
'["eng", "ara", "swe"]',
|
||||
'["eng", "ara", "tam"]',
|
||||
'["eng", "ara", "tur"]',
|
||||
'["eng", "ara", "urd"]',
|
||||
'["eng", "ara", "zho"]',
|
||||
'["eng", "arg"]',
|
||||
'["eng", "arg", "amh"]',
|
||||
'["eng", "arg", "aze"]',
|
||||
'["eng", "ars"]',
|
||||
'["eng", "ars", "ara"]',
|
||||
'["eng", "asm"]',
|
||||
'["eng", "ava", "sqi"]',
|
||||
'["eng", "ave"]',
|
||||
'["eng", "aze"]',
|
||||
'["eng", "aze", "deu"]',
|
||||
'["eng", "aze", "hye"]',
|
||||
'["eng", "aze", "ita"]',
|
||||
'["eng", "aze", "rus"]',
|
||||
'["eng", "bam", ""]',
|
||||
'["eng", "bel"]',
|
||||
'["eng", "bel", "rus"]',
|
||||
'["eng", "ben"]',
|
||||
'["eng", "ben", "deu"]',
|
||||
'["eng", "ben", "fra"]',
|
||||
'["eng", "ben", "hin"]',
|
||||
'["eng", "ben", "mya"]',
|
||||
'["eng", "ber"]',
|
||||
'["eng", "ber", "afr"]',
|
||||
'["eng", "ber", "deu"]',
|
||||
'["eng", "ber", "est"]',
|
||||
'["eng", "ber", "hun"]',
|
||||
'["eng", "ber", "isl"]',
|
||||
'["eng", "ber", "jpn"]',
|
||||
'["eng", "ber", "lat"]',
|
||||
'["eng", "ber", "nor"]',
|
||||
'["eng", "ber", "pol"]',
|
||||
'["eng", "ber", "por"]',
|
||||
'["eng", "ber", "ron"]',
|
||||
'["eng", "ber", "run"]',
|
||||
'["eng", "ber", "slk"]',
|
||||
'["eng", "ber", "spa"]',
|
||||
'["eng", "ber", "tgl"]',
|
||||
'["eng", "ber", "tlh"]',
|
||||
'["eng", "ber", "tuk"]',
|
||||
'["eng", "bod"]',
|
||||
'["eng", "bod", "nep"]',
|
||||
'["eng", "bos", "hrv"]',
|
||||
'["eng", "bos", "srp"]',
|
||||
'["eng", "bul"]',
|
||||
'["eng", "bul", "deu"]',
|
||||
'["eng", "bul", "fra"]',
|
||||
'["eng", "bul", "jpn"]',
|
||||
'["eng", "bul", "mkd"]',
|
||||
'["eng", "bul", "mri"]',
|
||||
'["eng", "bul", "nld"]',
|
||||
'["eng", "bul", "rus"]',
|
||||
'["eng", "bul", "srp"]',
|
||||
'["eng", "cat"]',
|
||||
'["eng", "cat", "fra"]',
|
||||
'["eng", "cat", "ind"]',
|
||||
'["eng", "cat", "isl"]',
|
||||
'["eng", "cat", "jpn"]',
|
||||
'["eng", "cat", "nld"]',
|
||||
'["eng", "cat", "spa"]',
|
||||
'["eng", "ces"]',
|
||||
'["eng", "ces", "deu"]',
|
||||
'["eng", "ces", "ell"]',
|
||||
'["eng", "ces", "haw"]',
|
||||
'["eng", "ces", "ind"]',
|
||||
'["eng", "ces", "ita"]',
|
||||
'["eng", "ces", "jpn"]',
|
||||
'["eng", "ces", "por"]',
|
||||
'["eng", "ces", "rus"]',
|
||||
'["eng", "ces", "slk"]',
|
||||
'["eng", "ces", "spa"]',
|
||||
'["eng", "ces", "tuk"]',
|
||||
'["eng", "cha"]',
|
||||
'["eng", "chr"]',
|
||||
'["eng", "chr", "ara"]',
|
||||
'["eng", "chr", "deu"]',
|
||||
'["eng", "chr", "ell"]',
|
||||
'["eng", "chr", "fil"]',
|
||||
'["eng", "chr", "isl"]',
|
||||
'["eng", "chr", "kor"]',
|
||||
'["eng", "chr", "rus"]',
|
||||
'["eng", "chr", "spa"]',
|
||||
'["eng", "chr", "zho"]',
|
||||
'["eng", "chu", "oci"]',
|
||||
'["eng", "cor"]',
|
||||
'["eng", "", "cos"]',
|
||||
'["eng", "cos"]',
|
||||
'["eng", "cym"]',
|
||||
'["eng", "cym", "deu"]',
|
||||
'["eng", "cym", "fra"]',
|
||||
'["eng", "cym", "jpn"]',
|
||||
'["eng", "cym", "spa"]',
|
||||
'["eng", "cym", "zho"]',
|
||||
'["eng", "dan"]',
|
||||
'["eng", "dan", "ber"]',
|
||||
'["eng", "dan", "deu"]',
|
||||
'["eng", "dan", "ell"]',
|
||||
'["eng", "dan", "est"]',
|
||||
'["eng", "dan", "fas"]',
|
||||
'["eng", "dan", "fin"]',
|
||||
'["eng", "dan", "fra"]',
|
||||
'["eng", "dan", "gle"]',
|
||||
'["eng", "dan", "hun"]',
|
||||
'["eng", "dan", "isl"]',
|
||||
'["eng", "dan", "ita"]',
|
||||
'["eng", "dan", "jpn"]',
|
||||
'["eng", "dan", "lat"]',
|
||||
'["eng", "dan", "nld"]',
|
||||
'["eng", "dan", "nob"]',
|
||||
'["eng", "dan", "nor"]',
|
||||
'["eng", "dan", "por"]',
|
||||
'["eng", "dan", "rus"]',
|
||||
'["eng", "dan", "slk"]',
|
||||
'["eng", "dan", "spa"]',
|
||||
'["eng", "dan", "swe"]',
|
||||
'["eng", "dan", "tuk"]',
|
||||
'["eng", "dan", "zho"]',
|
||||
'["eng", "deu", ""]',
|
||||
'["eng", "deu"]',
|
||||
)
|
||||
@@ -1,13 +1,36 @@
|
||||
"""Posts parent table with PostgreSQL weekly range partitioning on date column."""
|
||||
"""Posts parent table and PostTopic table for the data_science_dev database."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from pipelines.orm.data_science_dev.base import DataScienceDevBase
|
||||
from pipelines.orm.data_science_dev.base import (
|
||||
DataScienceDevBase,
|
||||
DataScienceDevTableBase,
|
||||
)
|
||||
from pipelines.orm.data_science_dev.posts.columns import PostsColumns
|
||||
|
||||
|
||||
from sqlalchemy import BigInteger, Index, SmallInteger
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
|
||||
|
||||
class Posts(PostsColumns, DataScienceDevBase):
|
||||
"""Parent partitioned table for posts, partitioned by week on `date`."""
|
||||
|
||||
__tablename__ = "posts"
|
||||
__table_args__ = ({"postgresql_partition_by": "RANGE (date)"},)
|
||||
|
||||
|
||||
class PostTopic(DataScienceDevTableBase):
|
||||
"""Stores BERTopic topic assignments for posts.
|
||||
|
||||
post_id references main.posts but without a FK constraint
|
||||
since posts is a partitioned table.
|
||||
"""
|
||||
|
||||
__tablename__ = "post_topic"
|
||||
__table_args__ = (Index("ix_post_topic_post_id", "post_id"),)
|
||||
|
||||
post_id: Mapped[int] = mapped_column(BigInteger)
|
||||
topic_id: Mapped[int] = mapped_column(SmallInteger)
|
||||
topic_label: Mapped[str | None]
|
||||
model_version: Mapped[str | None]
|
||||
|
||||
Reference in New Issue
Block a user