]> ToastFreeware Gitweb - philipp/winterrodeln/wrpylib.git/blobdiff - wrpylib/mwdb.py
Nähere Details zu Rodelverleihs.
[philipp/winterrodeln/wrpylib.git] / wrpylib / mwdb.py
index ea0bedf1575e6b9e04ed7ba237e547a08a4872dc..5d560beba3d68ead296392abf4df533de9004957 100644 (file)
 """This module contains code to make the access of MediaWiki tables
 easy. The module uses sqlalchemy to access the database.
 """
-from sqlalchemy import Table, Column, types
+from sqlalchemy import Table, Column, types, MetaData
 
 
-def page_table(metadata):
+def page_table(metadata: MetaData) -> Table:
     """Returns the sqlalchemy Table representing the "page" table in MediaWiki.
     :param metadata: metadata = sqlalchemy.MetaData()
     """
-    return Table("page", metadata,
-    Column("page_id", types.Integer, primary_key=True),
-    Column("page_namespace", types.Integer, nullable=False),
-    Column("page_title", types.String(255, convert_unicode='force'), nullable=False),
-    Column("page_restrictions", types.String, nullable=False), # tinyblob NOT NULL
-    Column("page_is_redirect", types.Integer, nullable=False),
-    Column("page_is_new", types.Integer, nullable=False),
-    Column("page_random", types.Float, nullable=False),
-    Column("page_touched", types.String(14, convert_unicode='force'), nullable=False),
-    Column("page_latest", types.Integer, nullable=False),
-    Column("page_len", types.Integer, nullable=False),
-    Column("page_content_model", types.String(32, convert_unicode='force')),
-    Column("page_links_updated", types.String(14, convert_unicode='force')),
-    Column("page_lang", types.String(35, convert_unicode='force')),
+    return Table(
+        "page", metadata,
+        Column("page_id", types.Integer, primary_key=True),
+        Column("page_namespace", types.Integer, nullable=False),
+        Column("page_title", types.String(255, convert_unicode='force'), nullable=False),
+        Column("page_restrictions", types.String, nullable=False),  # tinyblob NOT NULL
+        Column("page_is_redirect", types.Integer, nullable=False),
+        Column("page_is_new", types.Integer, nullable=False),
+        Column("page_random", types.Float, nullable=False),
+        Column("page_touched", types.String(14, convert_unicode='force'), nullable=False),
+        Column("page_links_updated", types.String(14, convert_unicode='force')),
+        Column("page_latest", types.Integer, nullable=False),
+        Column("page_len", types.Integer, nullable=False),
+        Column("page_content_model", types.String(32, convert_unicode='force')),
+        Column("page_lang", types.String(35, convert_unicode='force')),
     )
 
 
-def revision_table(metadata):
+def revision_table(metadata: MetaData) -> Table:
     """Returns the sqlalchemy Table representing the "revision" table in MediaWiki.
     :param metadata: metadata = sqlalchemy.MetaData()
     """
-    return Table("revision", metadata,
-    Column("rev_id", types.Integer, nullable=False, primary_key=True),
-    Column("rev_page", types.Integer, nullable=False, primary_key=True),
-    Column("rev_text_id", types.Integer, nullable=False),
-    Column("rev_comment", types.String(convert_unicode='force'), nullable=False), # tinyblob NOT NULL
-    Column("rev_user", types.Integer, nullable=False),
-    Column("rev_user_text", types.Unicode(255), nullable=False),
-    Column("rev_timestamp", types.String(14, convert_unicode='force'), nullable=False),
-    Column("rev_minor_edit", types.Integer, nullable=False),
-    Column("rev_deleted", types.Integer, nullable=False),
-    Column("rev_len", types.Integer, nullable=False),
-    Column("rev_parent_id", types.Integer, nullable=False),
+    return Table(
+        "revision", metadata,
+        Column("rev_id", types.Integer, nullable=False, primary_key=True),
+        Column("rev_page", types.Integer, nullable=False, primary_key=True),
+        Column("rev_comment_id", types.Integer, nullable=False),
+        Column("rev_actor", types.Integer, nullable=False),
+        Column("rev_timestamp", types.String(14, convert_unicode='force'), nullable=False),
+        Column("rev_minor_edit", types.Integer, nullable=False),
+        Column("rev_deleted", types.Integer, nullable=False),
+        Column("rev_len", types.Integer, nullable=True),
+        Column("rev_parent_id", types.Integer, nullable=True),
+        Column("rev_sha1", types.String(32), nullable=False),
     )
 
 
-def text_table(metadata):
+def slots_table(metadata: MetaData) -> Table:
+    """Returns the sqlalchemy Table representing the "slots" table in MediaWiki.
+    :param metadata: metadata = sqlalchemy.MetaData()
+    """
+    return Table(
+        "slots", metadata,
+        Column("slot_revision_id", types.Integer, nullable=False, primary_key=True),
+        Column("slot_role_id", types.Integer, nullable=False, primary_key=True),
+        Column("slot_content_id", types.Integer, nullable=False),
+        Column("slot_origin", types.Integer, nullable=False),
+    )
+
+
+def content_table(metadata: MetaData) -> Table:
+    """Returns the sqlalchemy Table representing the "content" table in MediaWiki.
+    :param metadata: metadata = sqlalchemy.MetaData()
+    """
+    return Table(
+        "content", metadata,
+        Column("content_id", types.Integer, nullable=False, primary_key=True),
+        Column("content_size", types.Integer, nullable=False),
+        Column("content_sha1", types.String(32, convert_unicode='force'), nullable=False),
+        Column("content_model", types.Integer, nullable=False),
+        Column("content_address", types.String(255, convert_unicode='force'), nullable=False),
+    )
+
+
+def text_table(metadata: MetaData) -> Table:
     """Returns the sqlalchemy Table representing the "text" table in MediaWiki.
     :param metadata: metadata = sqlalchemy.MetaData()
     """
-    return Table("text", metadata,
-    Column("old_id", types.Integer, primary_key=True),
-    Column("old_text", types.String(convert_unicode='force')),
-    Column("old_flags", types.String(convert_unicode='force')),
+    return Table(
+        "text", metadata,
+        Column("old_id", types.Integer, primary_key=True),
+        Column("old_text", types.String(convert_unicode='force')),
+        Column("old_flags", types.String(convert_unicode='force')),
     )
 
 
-def user_table(metadata):
+def user_table(metadata: MetaData) -> Table:
     """Returns the sqlalchemy Table representing the "user" table in MediaWiki.
     :param metadata: metadata = sqlalchemy.MetaData()
     """
-    return Table('user', metadata,
-    Column("user_id", types.Integer, primary_key=True),
-    Column("user_name", types.Unicode(255), nullable=False),
-    Column("user_real_name", types.Unicode(255), nullable=False),
-    Column("user_password", types.UnicodeText, nullable=False),
-    # "user_newpassword"
-    # "user_newpass_time"
-    Column("user_email", types.Unicode, nullable=False),
-    # "user_touched"
-    # "user_token"
-    # "user_email_authenticated"
-    # "user_email_token"
-    # "user_email_token_expires"
-    # "user_registration"
-    # "user_editcount"
+    return Table(
+        'user', metadata,
+        Column("user_id", types.Integer, primary_key=True),
+        Column("user_name", types.String(255, convert_unicode='force'), nullable=False),
+        Column("user_real_name", types.String(255, convert_unicode='force'), nullable=False),
+        Column("user_password", types.UnicodeText, nullable=False),
+        # "user_newpassword"
+        # "user_newpass_time"
+        Column("user_email", types.String(convert_unicode='force'), nullable=False),
+        # "user_touched"
+        # "user_token"
+        # "user_email_authenticated"
+        # "user_email_token"
+        # "user_email_token_expires"
+        # "user_registration"
+        # "user_editcount"
     )
 
 
-def user_groups_table(metadata):
+def user_groups_table(metadata: MetaData) -> Table:
     """
     Returns the sqlalchemy Table representing the "user_groups" table in MediaWiki.
 
     :param metadata: metadata = sqlalchemy.MetaData()
     """
-    return Table('user_groups', metadata,
+    return Table(
+        'user_groups', metadata,
         Column('ug_user', types.Integer, nullable=False, primary_key=True),
         Column('ug_group', types.String(255, convert_unicode='force'), nullable=False, primary_key=True),
         Column("ug_expiry", types.String(14, convert_unicode='force')),
     )
 
 
-def categorylinks_table(metadata):
+def categorylinks_table(metadata: MetaData) -> Table:
     """Returns the sqlalchemy Table representing the "categorylinks" table in MediaWiki.
     :param metadata: metadata = sqlalchemy.MetaData()
     """
-    return Table("categorylinks", metadata,
-    Column("cl_from", types.Integer, nullable=False, primary_key=True),
-    Column("cl_to", types.Unicode(255), nullable=False, primary_key=True),
-    Column("cl_sortkey", types.String(convert_unicode='force'), nullable=False),
-    Column("cl_timestamp", types.DateTime, nullable=False),
+    return Table(
+        "categorylinks", metadata,
+        Column("cl_from", types.Integer, nullable=False, primary_key=True),
+        Column("cl_to", types.String(255, convert_unicode='force'), nullable=False, primary_key=True),
+        Column("cl_sortkey", types.String(230, convert_unicode='force'), nullable=False),
+        Column("cl_timestamp", types.DateTime, nullable=False),
     )