Pin to python 3.9

Since our execution environment requires this

Signed-off-by: Will Beason <willbeason@gmail.com>
This commit is contained in:
Will Beason
2025-06-17 11:37:20 -05:00
parent 84d464ea38
commit 390499dd90
4 changed files with 21 additions and 20 deletions

View File

@@ -2,7 +2,7 @@ import sys
from abc import abstractmethod, ABC
from datetime import datetime, timezone
from hashlib import sha1
from typing import Generic, TypeVar
from typing import Generic, TypeVar, Union
import mwreverts
import mwtypes
@@ -89,10 +89,10 @@ class RevisionArticleId(RevisionField[int]):
return page.id
class RevisionEditorId(RevisionField[int | None]):
class RevisionEditorId(RevisionField[Union[int, None]]):
field = pa.field("editorid", pa.int64(), nullable=True)
def extract(self, page: mwtypes.Page, revisions: list[mwxml.Revision]) -> int | None:
def extract(self, page: mwtypes.Page, revisions: list[mwxml.Revision]) -> Union[int, None]:
revision = revisions[-1]
if revision.deleted.user:
return None
@@ -100,10 +100,10 @@ class RevisionEditorId(RevisionField[int | None]):
return revision.user.id
class RevisionIsAnon(RevisionField[bool | None]):
class RevisionIsAnon(RevisionField[Union[bool, None]]):
field = pa.field("anon", pa.bool_(), nullable=True)
def extract(self, page: mwtypes.Page, revisions: list[mwxml.Revision]) -> bool | None:
def extract(self, page: mwtypes.Page, revisions: list[mwxml.Revision]) -> Union[bool, None]:
revision = revisions[-1]
if revision.deleted.user:
return None
@@ -111,10 +111,10 @@ class RevisionIsAnon(RevisionField[bool | None]):
return revision.user.id is None
class RevisionEditorText(RevisionField[str | None]):
class RevisionEditorText(RevisionField[Union[str, None]]):
field = pa.field("editor", pa.string(), nullable=True)
def extract(self, page: mwtypes.Page, revisions: list[mwxml.Revision]) -> str | None:
def extract(self, page: mwtypes.Page, revisions: list[mwxml.Revision]) -> Union[str, None]:
revision = revisions[-1]
if revision.deleted.user:
return None
@@ -152,10 +152,10 @@ class RevisionSha1(RevisionField[str]):
return revision.sha1
class RevisionTextChars(RevisionField[int | None]):
class RevisionTextChars(RevisionField[Union[int, None]]):
field = pa.field("text_chars", pa.int32(), nullable=True)
def extract(self, page: mwtypes.Page, revisions: list[mwxml.Revision]) -> int | None:
def extract(self, page: mwtypes.Page, revisions: list[mwxml.Revision]) -> Union[int, None]:
revision = revisions[-1]
if not revision.deleted.text:
return len(revision.text)
@@ -179,14 +179,14 @@ class RevisionIsMinor(RevisionField[bool]):
return revision.minor
class RevisionReverts(RevisionField[str | None]):
class RevisionReverts(RevisionField[Union[str, None]]):
def __init__(self):
super().__init__()
self.rev_detector: mwreverts.Detector | None = None
self.rev_detector: Union[mwreverts.Detector, None] = None
field = pa.field("reverteds", pa.string(), nullable=True)
def extract(self, page: mwtypes.Page, revisions: list[mwxml.Revision]) -> str | None:
def extract(self, page: mwtypes.Page, revisions: list[mwxml.Revision]) -> Union[str, None]:
if self.rev_detector is None:
return None