"""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()
"""
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_links_updated", types.String(14, 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()
"""
"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.String(255, convert_unicode='force'), nullable=False),
+ 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=False),
- Column("rev_parent_id", 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 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):
+def text_table(metadata: MetaData) -> Table:
"""Returns the sqlalchemy Table representing the "text" table in MediaWiki.
:param metadata: metadata = sqlalchemy.MetaData()
"""
)
-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()
"""
)
-def user_groups_table(metadata):
+def user_groups_table(metadata: MetaData) -> Table:
"""
Returns the sqlalchemy Table representing the "user_groups" table in MediaWiki.
)
-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()
"""