mirror of
https://github.com/unmojang/meta.git
synced 2025-09-24 03:31:03 -04:00
cleanup: types
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
This commit is contained in:
parent
19b046d235
commit
95223b83cb
@ -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]:
|
||||
|
@ -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
|
||||
|
@ -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]
|
||||
|
||||
|
||||
|
@ -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()
|
||||
|
Loading…
x
Reference in New Issue
Block a user