summaryrefslogtreecommitdiff
path: root/meta
diff options
context:
space:
mode:
authorSefa Eyeoglu <contact@scrumplex.net>2022-04-05 15:10:28 +0200
committerSefa Eyeoglu <contact@scrumplex.net>2022-04-05 15:10:28 +0200
commit1bd80e57aaf2fb063b77a3cb7dce892b4b086bf1 (patch)
tree8ac727ba08ca0b693834c6f518a7c0e343743174 /meta
parent00cbf2073bcae1a9eec60c1440651e5acd74c363 (diff)
downloadProject-Tick-1bd80e57aaf2fb063b77a3cb7dce892b4b086bf1.tar.gz
Project-Tick-1bd80e57aaf2fb063b77a3cb7dce892b4b086bf1.zip
refactor: move GradleSpecifier into model
Diffstat (limited to 'meta')
-rw-r--r--meta/model/__init__.py92
-rw-r--r--meta/model/types.py92
2 files changed, 91 insertions, 93 deletions
diff --git a/meta/model/__init__.py b/meta/model/__init__.py
index 3cc6a3b96e..4371814a11 100644
--- a/meta/model/__init__.py
+++ b/meta/model/__init__.py
@@ -4,12 +4,102 @@ from typing import Optional, List, Dict, Any, Iterator
import pydantic
from pydantic import Field, validator
-from .types import GradleSpecifier
from ..common import serialize_datetime
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"
+ """
+
+ 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
+ self.artifact = artifact
+ self.version = version
+ self.classifier = classifier
+ self.extension = extension
+
+ def __str__(self):
+ 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)
+ 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)
+ 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)
+
+ def path(self):
+ return self.base() + self.filename()
+
+ def __repr__(self):
+ return f"GradleSpecifier('{self}')"
+
+ def is_lwjgl(self):
+ 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"
+
+ def __eq__(self, other):
+ return str(self) == str(other)
+
+ def __lt__(self, other):
+ return str(self) < str(other)
+
+ def __gt__(self, other):
+ return str(self) > str(other)
+
+ def __hash__(self):
+ return hash(str(self))
+
+ @classmethod
+ def __get_validators__(cls):
+ yield cls.validate
+
+ @classmethod
+ def from_string(cls, v: str):
+ ext_split = v.split('@')
+
+ components = ext_split[0].split(':')
+ group = components[0]
+ artifact = components[1]
+ version = components[2]
+
+ extension = None
+ if len(ext_split) == 2:
+ extension = ext_split[1]
+
+ classifier = None
+ if len(components) == 4:
+ classifier = components[3]
+ return cls(group, artifact, version, classifier, extension)
+
+ @classmethod
+ def validate(cls, v):
+ if isinstance(v, cls):
+ return v
+ if isinstance(v, str):
+ return cls.from_string(v)
+ raise TypeError("Invalid type")
+
+
class MetaBase(pydantic.BaseModel):
def dict(self, **kwargs) -> Dict[str, Any]:
for k in ["by_alias"]:
diff --git a/meta/model/types.py b/meta/model/types.py
deleted file mode 100644
index e06bfd615c..0000000000
--- a/meta/model/types.py
+++ /dev/null
@@ -1,92 +0,0 @@
-from typing import Optional
-
-
-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"
- """
-
- 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
- self.artifact = artifact
- self.version = version
- self.classifier = classifier
- self.extension = extension
-
- def __str__(self):
- 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)
- 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)
- 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)
-
- def path(self):
- return self.base() + self.filename()
-
- def __repr__(self):
- return f"GradleSpecifier('{self}')"
-
- def is_lwjgl(self):
- 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"
-
- def __eq__(self, other):
- return str(self) == str(other)
-
- def __lt__(self, other):
- return str(self) < str(other)
-
- def __gt__(self, other):
- return str(self) > str(other)
-
- def __hash__(self):
- return hash(str(self))
-
- @classmethod
- def __get_validators__(cls):
- yield cls.validate
-
- @classmethod
- def from_string(cls, v: str):
- ext_split = v.split('@')
-
- components = ext_split[0].split(':')
- group = components[0]
- artifact = components[1]
- version = components[2]
-
- extension = None
- if len(ext_split) == 2:
- extension = ext_split[1]
-
- classifier = None
- if len(components) == 4:
- classifier = components[3]
- return cls(group, artifact, version, classifier, extension)
-
- @classmethod
- def validate(cls, v):
- if isinstance(v, cls):
- return v
- if isinstance(v, str):
- return cls.from_string(v)
- raise TypeError("Invalid type")