diff options
| author | Sefa Eyeoglu <contact@scrumplex.net> | 2023-02-25 00:19:55 +0100 |
|---|---|---|
| committer | Sefa Eyeoglu <contact@scrumplex.net> | 2023-02-25 00:19:55 +0100 |
| commit | 1c838d992edb070f571a8a46b39c3c0341d64b8b (patch) | |
| tree | e408650a097c0b9d921f1d9d0bb3c198dbcfae11 /meta | |
| parent | 7dbe008e416b952376cf94ae416b015e595fc73c (diff) | |
| download | Project-Tick-1c838d992edb070f571a8a46b39c3c0341d64b8b.tar.gz Project-Tick-1c838d992edb070f571a8a46b39c3c0341d64b8b.zip | |
chore: reformat using black
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
Diffstat (limited to 'meta')
| -rw-r--r-- | meta/common/__init__.py | 3 | ||||
| -rw-r--r-- | meta/common/http.py | 2 | ||||
| -rw-r--r-- | meta/model/__init__.py | 99 | ||||
| -rw-r--r-- | meta/model/forge.py | 157 | ||||
| -rw-r--r-- | meta/model/index.py | 2 | ||||
| -rw-r--r-- | meta/model/liteloader.py | 88 | ||||
| -rw-r--r-- | meta/model/mojang.py | 56 |
7 files changed, 263 insertions, 144 deletions
diff --git a/meta/common/__init__.py b/meta/common/__init__.py index 10b35da50d..7a6514b2be 100644 --- a/meta/common/__init__.py +++ b/meta/common/__init__.py @@ -76,10 +76,9 @@ def merge_dict(base: dict, overlay: dict): def default_session(): - forever_cache = FileCache('caches/http_cache', forever=True) + forever_cache = FileCache("caches/http_cache", forever=True) sess = CacheControl(requests.Session(), forever_cache) sess.headers.update({"User-Agent": "PrismLauncherMeta/1.0"}) return sess - diff --git a/meta/common/http.py b/meta/common/http.py index c057e4b06f..20f9d0d135 100644 --- a/meta/common/http.py +++ b/meta/common/http.py @@ -1,5 +1,5 @@ def download_binary_file(sess, path, url): - with open(path, 'wb') as f: + with open(path, "wb") as f: r = sess.get(url) r.raise_for_status() for chunk in r.iter_content(chunk_size=128): diff --git a/meta/model/__init__.py b/meta/model/__init__.py index dc466c3b0b..0246cdb3d1 100644 --- a/meta/model/__init__.py +++ b/meta/model/__init__.py @@ -5,21 +5,32 @@ from typing import Optional, List, Dict, Any, Iterator import pydantic from pydantic import Field, validator -from ..common import serialize_datetime, replace_old_launchermeta_url, get_all_bases, merge_dict +from ..common import ( + serialize_datetime, + replace_old_launchermeta_url, + get_all_bases, + merge_dict, +) META_FORMAT_VERSION = 1 class GradleSpecifier: """ - A gradle specifier - a maven coordinate. Like one of these: - "org.lwjgl.lwjgl:lwjgl:2.9.0" - "net.java.jinput:jinput:2.0.5" - "net.minecraft:launchwrapper:1.5" + A gradle specifier - a maven coordinate. Like one of these: + "org.lwjgl.lwjgl:lwjgl:2.9.0" + "net.java.jinput:jinput:2.0.5" + "net.minecraft:launchwrapper:1.5" """ - def __init__(self, group: str, artifact: str, version: str, classifier: Optional[str] = None, - extension: Optional[str] = None): + def __init__( + self, + group: str, + artifact: str, + version: str, + classifier: Optional[str] = None, + extension: Optional[str] = None, + ): if extension is None: extension = "jar" self.group = group @@ -29,22 +40,33 @@ class GradleSpecifier: self.extension = extension def __str__(self): - ext = '' - if self.extension != 'jar': + ext = "" + if self.extension != "jar": ext = "@%s" % self.extension if self.classifier: - return "%s:%s:%s:%s%s" % (self.group, self.artifact, self.version, self.classifier, ext) + return "%s:%s:%s:%s%s" % ( + self.group, + self.artifact, + self.version, + self.classifier, + ext, + ) else: return "%s:%s:%s%s" % (self.group, self.artifact, self.version, ext) def filename(self): if self.classifier: - return "%s-%s-%s.%s" % (self.artifact, self.version, self.classifier, self.extension) + return "%s-%s-%s.%s" % ( + self.artifact, + self.version, + self.classifier, + self.extension, + ) else: return "%s-%s.%s" % (self.artifact, self.version, self.extension) def base(self): - return "%s/%s/%s/" % (self.group.replace('.', '/'), self.artifact, self.version) + return "%s/%s/%s/" % (self.group.replace(".", "/"), self.artifact, self.version) def path(self): return self.base() + self.filename() @@ -53,7 +75,12 @@ class GradleSpecifier: return f"GradleSpecifier('{self}')" def is_lwjgl(self): - return self.group in ("org.lwjgl", "org.lwjgl.lwjgl", "net.java.jinput", "net.java.jutils") + return self.group in ( + "org.lwjgl", + "org.lwjgl.lwjgl", + "net.java.jinput", + "net.java.jutils", + ) def is_log4j(self): return self.group == "org.apache.logging.log4j" @@ -76,9 +103,9 @@ class GradleSpecifier: @classmethod def from_string(cls, v: str): - ext_split = v.split('@') + ext_split = v.split("@") - components = ext_split[0].split(':') + components = ext_split[0].split(":") group = components[0] artifact = components[1] version = components[2] @@ -114,7 +141,9 @@ class MetaBase(pydantic.BaseModel): if k in kwargs: del kwargs[k] - return super(MetaBase, self).json(exclude_none=True, sort_keys=True, by_alias=True, indent=4, **kwargs) + return super(MetaBase, self).json( + exclude_none=True, sort_keys=True, by_alias=True, indent=4, **kwargs + ) def write(self, file_path): with open(file_path, "w") as f: @@ -157,10 +186,7 @@ class MetaBase(pydantic.BaseModel): class Config: allow_population_by_field_name = True - json_encoders = { - datetime: serialize_datetime, - GradleSpecifier: str - } + json_encoders = {datetime: serialize_datetime, GradleSpecifier: str} class Versioned(MetaBase): @@ -193,18 +219,19 @@ class MojangArtifact(MojangArtifactBase): class MojangLibraryExtractRules(MetaBase): """ - "rules": [ - { - "action": "allow" - }, - { - "action": "disallow", - "os": { - "name": "osx" - } - } - ] + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx" + } + } + ] """ + exclude: List[str] # TODO maybe drop this completely? @@ -216,7 +243,15 @@ class MojangLibraryDownloads(MetaBase): class OSRule(MetaBase): @validator("name") def name_must_be_os(cls, v): - assert v in ["osx", "linux", "windows", "windows-arm64", "osx-arm64", "linux-arm64", "linux-arm32"] + assert v in [ + "osx", + "linux", + "windows", + "windows-arm64", + "osx-arm64", + "linux-arm64", + "linux-arm32", + ] return v name: str diff --git a/meta/model/forge.py b/meta/model/forge.py index 6112023e15..937cc18cb5 100644 --- a/meta/model/forge.py +++ b/meta/model/forge.py @@ -17,7 +17,9 @@ class ForgeFile(MetaBase): def url(self, long_version): return "https://maven.minecraftforge.net/net/minecraftforge/forge/%s/%s" % ( - long_version, self.filename(long_version)) + long_version, + self.filename(long_version), + ) class ForgeEntry(MetaBase): @@ -42,7 +44,9 @@ class DerivedForgeIndex(MetaBase): by_mc_version: Dict[str, ForgeMCVersionInfo] = Field({}, alias="by_mcversion") -class FMLLib(MetaBase): # old ugly stuff. Maybe merge this with Library or MojangLibrary later +class FMLLib( + MetaBase +): # old ugly stuff. Maybe merge this with Library or MojangLibrary later filename: str checksum: str ours: bool @@ -74,6 +78,7 @@ class ForgeInstallerProfileInstallSection(MetaBase): "modList":"none" }, """ + profile_name: str = Field(alias="profileName") target: str path: GradleSpecifier @@ -116,6 +121,7 @@ class ForgeOptional(MetaBase): } ] """ + name: Optional[str] client: Optional[bool] server: Optional[bool] @@ -206,7 +212,9 @@ class ForgeVersion: if (classifier == "installer") and (extension == "jar"): self.installer_filename = filename self.installer_url = url - if (classifier == "universal" or classifier == "client") and (extension == "jar" or extension == "zip"): + if (classifier == "universal" or classifier == "client") and ( + extension == "jar" or extension == "zip" + ): self.universal_filename = filename self.universal_url = url if (classifier == "changelog") and (extension == "txt"): @@ -236,7 +244,7 @@ class ForgeVersion: if self.url() is None: return False - foo = self.rawVersion.split('.') + foo = self.rawVersion.split(".") if len(foo) < 1: return False @@ -252,55 +260,106 @@ class ForgeVersion: def fml_libs_for_version(mc_version: str) -> List[FMLLib]: - argo_2_25 = FMLLib(filename="argo-2.25.jar", - checksum="bb672829fde76cb163004752b86b0484bd0a7f4b", - ours=False) - argo_small_3_2 = FMLLib(filename="argo-small-3.2.jar", - checksum="58912ea2858d168c50781f956fa5b59f0f7c6b51", - ours=False) - guava_12_0_1 = FMLLib(filename="guava-12.0.1.jar", - checksum="b8e78b9af7bf45900e14c6f958486b6ca682195f", - ours=False) - guava_14_0_rc3 = FMLLib(filename="guava-14.0-rc3.jar", - checksum="931ae21fa8014c3ce686aaa621eae565fefb1a6a", - ours=False) - asm_all_4_0 = FMLLib(filename="asm-all-4.0.jar", - checksum="98308890597acb64047f7e896638e0d98753ae82", - ours=False) - asm_all_4_1 = FMLLib(filename="asm-all-4.1.jar", - checksum="054986e962b88d8660ae4566475658469595ef58", - ours=False) - bcprov_jdk15on_147 = FMLLib(filename="bcprov-jdk15on-147.jar", - checksum="b6f5d9926b0afbde9f4dbe3db88c5247be7794bb", - ours=False) - bcprov_jdk15on_148 = FMLLib(filename="bcprov-jdk15on-148.jar", - checksum="960dea7c9181ba0b17e8bab0c06a43f0a5f04e65", - ours=True) - scala_library = FMLLib(filename="scala-library.jar", - checksum="458d046151ad179c85429ed7420ffb1eaf6ddf85", - ours=True) - - deobfuscation_data_1_5 = FMLLib(filename="deobfuscation_data_1.5.zip", - checksum="5f7c142d53776f16304c0bbe10542014abad6af8", - ours=False) - - deobfuscation_data_1_5_1 = FMLLib(filename="deobfuscation_data_1.5.1.zip", - checksum="22e221a0d89516c1f721d6cab056a7e37471d0a6", - ours=False) - deobfuscation_data_1_5_2 = FMLLib(filename="deobfuscation_data_1.5.2.zip", - checksum="446e55cd986582c70fcf12cb27bc00114c5adfd9", - ours=False) + argo_2_25 = FMLLib( + filename="argo-2.25.jar", + checksum="bb672829fde76cb163004752b86b0484bd0a7f4b", + ours=False, + ) + argo_small_3_2 = FMLLib( + filename="argo-small-3.2.jar", + checksum="58912ea2858d168c50781f956fa5b59f0f7c6b51", + ours=False, + ) + guava_12_0_1 = FMLLib( + filename="guava-12.0.1.jar", + checksum="b8e78b9af7bf45900e14c6f958486b6ca682195f", + ours=False, + ) + guava_14_0_rc3 = FMLLib( + filename="guava-14.0-rc3.jar", + checksum="931ae21fa8014c3ce686aaa621eae565fefb1a6a", + ours=False, + ) + asm_all_4_0 = FMLLib( + filename="asm-all-4.0.jar", + checksum="98308890597acb64047f7e896638e0d98753ae82", + ours=False, + ) + asm_all_4_1 = FMLLib( + filename="asm-all-4.1.jar", + checksum="054986e962b88d8660ae4566475658469595ef58", + ours=False, + ) + bcprov_jdk15on_147 = FMLLib( + filename="bcprov-jdk15on-147.jar", + checksum="b6f5d9926b0afbde9f4dbe3db88c5247be7794bb", + ours=False, + ) + bcprov_jdk15on_148 = FMLLib( + filename="bcprov-jdk15on-148.jar", + checksum="960dea7c9181ba0b17e8bab0c06a43f0a5f04e65", + ours=True, + ) + scala_library = FMLLib( + filename="scala-library.jar", + checksum="458d046151ad179c85429ed7420ffb1eaf6ddf85", + ours=True, + ) + + deobfuscation_data_1_5 = FMLLib( + filename="deobfuscation_data_1.5.zip", + checksum="5f7c142d53776f16304c0bbe10542014abad6af8", + ours=False, + ) + + deobfuscation_data_1_5_1 = FMLLib( + filename="deobfuscation_data_1.5.1.zip", + checksum="22e221a0d89516c1f721d6cab056a7e37471d0a6", + ours=False, + ) + deobfuscation_data_1_5_2 = FMLLib( + filename="deobfuscation_data_1.5.2.zip", + checksum="446e55cd986582c70fcf12cb27bc00114c5adfd9", + ours=False, + ) if mc_version == "1.3.2": return [argo_2_25, guava_12_0_1, asm_all_4_0] - elif mc_version in ["1.4", "1.4.1", "1.4.2", "1.4.3", "1.4.4", "1.4.5", "1.4.6", "1.4.7"]: + elif mc_version in [ + "1.4", + "1.4.1", + "1.4.2", + "1.4.3", + "1.4.4", + "1.4.5", + "1.4.6", + "1.4.7", + ]: return [argo_2_25, guava_12_0_1, asm_all_4_0, bcprov_jdk15on_147] elif mc_version == "1.5": - return [argo_small_3_2, guava_14_0_rc3, asm_all_4_1, bcprov_jdk15on_148, deobfuscation_data_1_5, - scala_library] + return [ + argo_small_3_2, + guava_14_0_rc3, + asm_all_4_1, + bcprov_jdk15on_148, + deobfuscation_data_1_5, + scala_library, + ] elif mc_version == "1.5.1": - return [argo_small_3_2, guava_14_0_rc3, asm_all_4_1, bcprov_jdk15on_148, deobfuscation_data_1_5_1, - scala_library] + return [ + argo_small_3_2, + guava_14_0_rc3, + asm_all_4_1, + bcprov_jdk15on_148, + deobfuscation_data_1_5_1, + scala_library, + ] elif mc_version == "1.5.2": - return [argo_small_3_2, guava_14_0_rc3, asm_all_4_1, bcprov_jdk15on_148, deobfuscation_data_1_5_2, - scala_library] + return [ + argo_small_3_2, + guava_14_0_rc3, + asm_all_4_1, + bcprov_jdk15on_148, + deobfuscation_data_1_5_2, + scala_library, + ] return [] diff --git a/meta/model/index.py b/meta/model/index.py index f7cdc36e0f..c6d82e1aff 100644 --- a/meta/model/index.py +++ b/meta/model/index.py @@ -26,7 +26,7 @@ class MetaVersionIndexEntry(MetaBase): conflicts=v.conflicts, recommended=recommended, volatile=v.volatile, - sha256=sha256 + sha256=sha256, ) diff --git a/meta/model/liteloader.py b/meta/model/liteloader.py index 0bd6794773..64cdaadd7e 100644 --- a/meta/model/liteloader.py +++ b/meta/model/liteloader.py @@ -14,13 +14,14 @@ class LiteloaderDev(MetaBase): class LiteloaderRepo(MetaBase): """ - "repo":{ - "stream":"RELEASE", - "type":"m2", - "url":"http://dl.liteloader.com/repo/", - "classifier":"" - }, + "repo":{ + "stream":"RELEASE", + "type":"m2", + "url":"http://dl.liteloader.com/repo/", + "classifier":"" + }, """ + stream: str type: str url: str @@ -29,26 +30,27 @@ class LiteloaderRepo(MetaBase): class LiteloaderArtefact(MetaBase): """ - "53639d52340479ccf206a04f5e16606f":{ - "tweakClass":"com.mumfrey.liteloader.launch.LiteLoaderTweaker", - "libraries":[ - { - "name":"net.minecraft:launchwrapper:1.5" - }, - { - "name":"net.sf.jopt-simple:jopt-simple:4.5" - }, - { - "name":"org.ow2.asm:asm-all:4.1" - } - ], - "stream":"RELEASE", - "file":"liteloader-1.5.2_01.jar", - "version":"1.5.2_01", - "md5":"53639d52340479ccf206a04f5e16606f", - "timestamp":"1367366420" - }, + "53639d52340479ccf206a04f5e16606f":{ + "tweakClass":"com.mumfrey.liteloader.launch.LiteLoaderTweaker", + "libraries":[ + { + "name":"net.minecraft:launchwrapper:1.5" + }, + { + "name":"net.sf.jopt-simple:jopt-simple:4.5" + }, + { + "name":"org.ow2.asm:asm-all:4.1" + } + ], + "stream":"RELEASE", + "file":"liteloader-1.5.2_01.jar", + "version":"1.5.2_01", + "md5":"53639d52340479ccf206a04f5e16606f", + "timestamp":"1367366420" + }, """ + tweakClass: str libraries: List[Library] stream: str @@ -69,17 +71,18 @@ class LiteloaderArtefacts(MetaBase): class LiteloaderEntry(MetaBase): """ - "1.10.2":{ - "dev": { ... }, - "repo":{ ... }, - "artefacts":{ - "com.mumfrey:liteloader":{ }, - ... - }, - "snapshots":{ - ... - } + "1.10.2":{ + "dev": { ... }, + "repo":{ ... }, + "artefacts":{ + "com.mumfrey:liteloader":{ }, + ... + }, + "snapshots":{ + ... + } """ + dev: Optional[LiteloaderDev] repo: LiteloaderRepo artefacts: Optional[LiteloaderArtefacts] @@ -88,14 +91,15 @@ class LiteloaderEntry(MetaBase): class LiteloaderMeta(MetaBase): """ - "meta":{ - "description":"LiteLoader is a lightweight mod bootstrap designed to provide basic loader functionality for mods which don't need to modify game mechanics.", - "authors":"Mumfrey", - "url":"http://dl.liteloader.com", - "updated":"2017-02-22T11:34:07+00:00", - "updatedTime":1487763247 - }, + "meta":{ + "description":"LiteLoader is a lightweight mod bootstrap designed to provide basic loader functionality for mods which don't need to modify game mechanics.", + "authors":"Mumfrey", + "url":"http://dl.liteloader.com", + "updated":"2017-02-22T11:34:07+00:00", + "updatedTime":1487763247 + }, """ + description: str authors: str url: str diff --git a/meta/model/mojang.py b/meta/model/mojang.py index 9f9a29c01a..2e35634008 100644 --- a/meta/model/mojang.py +++ b/meta/model/mojang.py @@ -3,17 +3,24 @@ from typing import Optional, List, Dict, Any, Iterator from pydantic import validator, Field -from . import MetaBase, MojangArtifactBase, MojangAssets, MojangLibrary, MojangArtifact, MojangLibraryDownloads, \ - Library, MetaVersion, GradleSpecifier +from . import ( + MetaBase, + MojangArtifactBase, + MojangAssets, + MojangLibrary, + MojangArtifact, + MojangLibraryDownloads, + Library, + MetaVersion, + GradleSpecifier, +) SUPPORTED_LAUNCHER_VERSION = 21 SUPPORTED_COMPLIANCE_LEVEL = 1 DEFAULT_JAVA_MAJOR = 8 # By default, we should recommend Java 8 if we don't know better -COMPATIBLE_JAVA_MAPPINGS = { - 16: [17] -} +COMPATIBLE_JAVA_MAPPINGS = {16: [17]} -''' +""" Mojang index files look like this: { "latest": { @@ -32,7 +39,7 @@ Mojang index files look like this: ... ] } -''' +""" class MojangLatestVersion(MetaBase): @@ -75,7 +82,9 @@ class ExperimentIndex(MetaBase): class ExperimentIndexWrap: def __init__(self, index: ExperimentIndex): self.index: ExperimentIndex = index - self.versions: Dict[str, ExperimentEntry] = dict((x.id, x) for x in index.experiments) + self.versions: Dict[str, ExperimentEntry] = dict( + (x.id, x) for x in index.experiments + ) class OldSnapshotEntry(MetaBase): @@ -94,7 +103,9 @@ class OldSnapshotIndex(MetaBase): class OldSnapshotIndexWrap: def __init__(self, index: OldSnapshotIndex): self.index: OldSnapshotIndex = index - self.versions: Dict[str, OldSnapshotEntry] = dict((x.id, x) for x in index.old_snapshots) + self.versions: Dict[str, OldSnapshotEntry] = dict( + (x.id, x) for x in index.old_snapshots + ) class LegacyOverrideEntry(MetaBase): @@ -200,8 +211,7 @@ class MojangVersion(MetaBase): applet_class: Optional[str] = Field(alias="appletClass") processArguments: Optional[str] minecraft_arguments: Optional[str] = Field(alias="minecraftArguments") - minimum_launcher_version: Optional[int] = Field( - alias="minimumLauncherVersion") + minimum_launcher_version: Optional[int] = Field(alias="minimumLauncherVersion") release_time: Optional[datetime] = Field(alias="releaseTime") time: Optional[datetime] type: Optional[str] @@ -216,10 +226,17 @@ class MojangVersion(MetaBase): new_type = self.type compatible_java_majors = None if self.id: - client_download = self.downloads['client'] - artifact = MojangArtifact(url=client_download.url, sha1=client_download.sha1, size=client_download.size) + client_download = self.downloads["client"] + artifact = MojangArtifact( + url=client_download.url, + sha1=client_download.sha1, + size=client_download.size, + ) downloads = MojangLibraryDownloads(artifact=artifact) - main_jar = Library(name=GradleSpecifier("com.mojang", "minecraft", self.id, "client"), downloads=downloads) + main_jar = Library( + name=GradleSpecifier("com.mojang", "minecraft", self.id, "client"), + downloads=downloads, + ) if not self.compliance_level: # both == 0 and is None pass @@ -231,11 +248,15 @@ class MojangVersion(MetaBase): raise Exception(f"Unsupported compliance level {self.compliance_level}") major = DEFAULT_JAVA_MAJOR - if self.javaVersion is not None: # some versions don't have this. TODO: maybe maintain manual overrides + if ( + self.javaVersion is not None + ): # some versions don't have this. TODO: maybe maintain manual overrides major = self.javaVersion.major_version compatible_java_majors = [major] - if major in COMPATIBLE_JAVA_MAPPINGS: # add more compatible Java versions, e.g. 16 and 17 both work for MC 1.17 + if ( + major in COMPATIBLE_JAVA_MAPPINGS + ): # add more compatible Java versions, e.g. 16 and 17 both work for MC 1.17 compatible_java_majors += COMPATIBLE_JAVA_MAPPINGS[major] if new_type == "pending": # experiments from upstream are type=pending @@ -253,4 +274,5 @@ class MojangVersion(MetaBase): type=new_type, compatible_java_majors=compatible_java_majors, additional_traits=addn_traits, - main_jar=main_jar) + main_jar=main_jar, + ) |
