cleanup: types

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
This commit is contained in:
Rachel Powers 2023-05-13 20:44:26 -07:00
parent 19b046d235
commit 95223b83cb
No known key found for this signature in database
GPG Key ID: E10E321EB160949B
4 changed files with 48 additions and 54 deletions

View File

@ -46,17 +46,6 @@ STATIC_DIR = static_path()
ensure_component_dir(JAVA_COMPONENT)
MOJANG_JAVA_OS_NAMES = [
"gamecore",
"linux",
"linux-i386",
"mac-os",
"mac-os-arm64",
"windows-arm64",
"windows-x64",
"windows-x86",
]
MOJANG_OS_ARCHITECTURES = [
"x64",
"x86",
@ -110,22 +99,23 @@ def translate_os(os: str):
def mojang_os_to_java_os(mojang_os: MojangJavaOsName) -> JavaRuntimeOS:
if mojang_os == MojangJavaOsName.Linux:
return JavaRuntimeOS.LinuxX64
elif mojang_os == MojangJavaOsName.Linuxi386:
return JavaRuntimeOS.LinuxX86
elif mojang_os == MojangJavaOsName.MacOs:
return JavaRuntimeOS.MacOsX64
elif mojang_os == MojangJavaOsName.MacOSArm64:
return JavaRuntimeOS.MacOsArm64
elif mojang_os == MojangJavaOsName.WindowsArm64:
return JavaRuntimeOS.WindowsArm64
elif mojang_os == MojangJavaOsName.WindowsX64:
return JavaRuntimeOS.WindowsX64
elif mojang_os == MojangJavaOsName.WindowsX86:
return JavaRuntimeOS.WindowsX86
else:
return JavaRuntimeOS.Unknown
match mojang_os:
case MojangJavaOsName.Linux:
return JavaRuntimeOS.LinuxX64
case MojangJavaOsName.Linuxi386:
return JavaRuntimeOS.LinuxX86
case MojangJavaOsName.MacOs:
return JavaRuntimeOS.MacOsX64
case MojangJavaOsName.MacOSArm64:
return JavaRuntimeOS.MacOsArm64
case MojangJavaOsName.WindowsArm64:
return JavaRuntimeOS.WindowsArm64
case MojangJavaOsName.WindowsX64:
return JavaRuntimeOS.WindowsX64
case MojangJavaOsName.WindowsX86:
return JavaRuntimeOS.WindowsX86
case _:
return JavaRuntimeOS.Unknown
def mojang_runtime_to_java_runtime(
@ -260,12 +250,12 @@ def vendor_priority(vendor: str) -> int:
def pkg_type_priority(pkg_type: JavaPackageType) -> int:
if pkg_type == JavaPackageType.Jre:
return 2
elif pkg_type == JavaPackageType.Jdk:
return 1
else:
return -1
match pkg_type:
case JavaPackageType.Jre:
return 2
case JavaPackageType.Jdk:
return 1
return -1
def ensure_one_recommended(runtimes: list[JavaRuntimeMeta]) -> Optional[JavaRuntimeMeta]:

View File

@ -1,10 +1,11 @@
import os
import datetime
from urllib.parse import urlparse
from typing import Any, Optional
import requests
from cachecontrol import CacheControl
from cachecontrol.caches import FileCache
from cachecontrol import CacheControl # type: ignore
from cachecontrol.caches import FileCache # type: ignore
def serialize_datetime(dt: datetime.datetime):
@ -56,7 +57,7 @@ def replace_old_launchermeta_url(url: str):
return url
def get_all_bases(cls, bases=None):
def get_all_bases(cls: type, bases: Optional[list[type]] = None):
bases = bases or []
bases.append(cls)
for c in cls.__bases__:
@ -64,10 +65,10 @@ def get_all_bases(cls, bases=None):
return tuple(bases)
def merge_dict(base: dict, overlay: dict):
def merge_dict(base: dict[Any, Any], overlay: dict[Any, Any]):
for k, v in base.items():
if isinstance(v, dict):
merge_dict(v, overlay.setdefault(k, {}))
merge_dict(v, overlay.setdefault(k, {})) # type: ignore
else:
if k not in overlay:
overlay[k] = v

View File

@ -3,7 +3,7 @@ from datetime import datetime
from typing import Optional, List, Dict, Any, Iterator
import pydantic
from pydantic import Field, validator
from pydantic import Field, validator # type: ignore
from ..common import (
serialize_datetime,
@ -85,13 +85,16 @@ class GradleSpecifier:
def is_log4j(self):
return self.group == "org.apache.logging.log4j"
def __eq__(self, other):
return str(self) == str(other)
def __eq__(self, other: Any):
if isinstance(other, GradleSpecifier):
return str(self) == str(other)
else:
return False
def __lt__(self, other):
def __lt__(self, other: 'GradleSpecifier'):
return str(self) < str(other)
def __gt__(self, other):
def __gt__(self, other: 'GradleSpecifier'):
return str(self) > str(other)
def __hash__(self):
@ -120,7 +123,7 @@ class GradleSpecifier:
return cls(group, artifact, version, classifier, extension)
@classmethod
def validate(cls, v):
def validate(cls, v: 'str | GradleSpecifier'):
if isinstance(v, cls):
return v
if isinstance(v, str):
@ -149,7 +152,7 @@ class MetaBase(pydantic.BaseModel):
with open(file_path, "w") as f:
f.write(self.json())
def merge(self, other):
def merge(self, other: 'MetaBase'):
"""
Merge other object with self.
- Concatenates lists
@ -173,14 +176,14 @@ class MetaBase(pydantic.BaseModel):
elif isinstance(ours, set):
ours |= theirs
elif isinstance(ours, dict):
result = merge_dict(ours, copy.deepcopy(theirs))
result = merge_dict(ours, copy.deepcopy(theirs)) # type: ignore
setattr(self, key, result)
elif MetaBase in get_all_bases(field.type_):
ours.merge(theirs)
else:
setattr(self, key, theirs)
def __hash__(self):
def __hash__(self): #type: ignore
return hash(self.json())
class Config:
@ -191,7 +194,7 @@ class MetaBase(pydantic.BaseModel):
class Versioned(MetaBase):
@validator("format_version")
def format_version_must_be_supported(cls, v):
def format_version_must_be_supported(cls, v: int):
assert v <= META_FORMAT_VERSION
return v
@ -206,7 +209,7 @@ class MojangArtifactBase(MetaBase):
class MojangAssets(MojangArtifactBase):
@validator("url")
def validate_url(cls, v):
def validate_url(cls, v: str):
return replace_old_launchermeta_url(v)
id: str
@ -242,7 +245,7 @@ class MojangLibraryDownloads(MetaBase):
class OSRule(MetaBase):
@validator("name")
def name_must_be_os(cls, v):
def name_must_be_os(cls, v: str):
assert v in [
"osx",
"linux",
@ -260,7 +263,7 @@ class OSRule(MetaBase):
class MojangRule(MetaBase):
@validator("action")
def action_must_be_allow_disallow(cls, v):
def action_must_be_allow_disallow(cls, v: str):
assert v in ["allow", "disallow"]
return v
@ -271,10 +274,10 @@ class MojangRule(MetaBase):
class MojangRules(MetaBase):
__root__: List[MojangRule]
def __iter__(self) -> Iterator[MojangRule]:
def __iter__(self) -> Iterator[MojangRule]: #type: ignore
return iter(self.__root__)
def __getitem__(self, item) -> MojangRule:
def __getitem__(self, item: int) -> MojangRule:
return self.__root__[item]

View File

@ -118,7 +118,7 @@ class APIQuery(MetaBase):
if isinstance(value, Enum):
set_parts[key] = value.value
elif isinstance(value, list):
if len(value) > 0:
if len(value) > 0: #type: ignore
set_parts[key] = value
elif isinstance(value, datetime):
set_parts[key] = value.isoformat()