fix: expect strings instead of urls in all models

This commit is contained in:
Sefa Eyeoglu 2022-04-05 00:19:03 +02:00
parent b0810ce299
commit efd1aff147
No known key found for this signature in database
GPG Key ID: C10411294912A422
2 changed files with 11 additions and 10 deletions

View File

@ -2,7 +2,7 @@ from datetime import datetime
from typing import Optional, List, Dict, Any, Iterator
import pydantic
from pydantic import Field, AnyHttpUrl, validator
from pydantic import Field, validator
from .types import GradleSpecifier
from ..common import serialize_datetime
@ -40,7 +40,7 @@ class MetaBase(pydantic.BaseModel):
class Versioned(MetaBase):
@validator("format_version")
def format_version_must_be_supported(cls, v):
assert v > META_FORMAT_VERSION
assert v <= META_FORMAT_VERSION
return v
format_version: int = Field(META_FORMAT_VERSION, alias="formatVersion")
@ -49,7 +49,7 @@ class Versioned(MetaBase):
class MojangArtifactBase(MetaBase):
sha1: Optional[str]
size: Optional[int]
url: AnyHttpUrl
url: str
class MojangAssets(MojangArtifactBase):
@ -129,7 +129,7 @@ class MojangLibrary(MetaBase):
class Library(MojangLibrary):
url: Optional[str]
mmcHint: Optional[AnyHttpUrl] = Field(None, alias="MMC-hint")
mmcHint: Optional[str] = Field(None, alias="MMC-hint")
class Dependency(MetaBase):
@ -167,4 +167,4 @@ class MetaPackage(Versioned):
recommended: Optional[List[str]]
authors: Optional[List[str]]
description: Optional[str]
project_url: Optional[AnyHttpUrl] = Field(alias="projectUrl")
project_url: Optional[str] = Field(alias="projectUrl")

View File

@ -1,7 +1,7 @@
from datetime import datetime
from typing import Optional, List, Dict, Any
from pydantic import AnyHttpUrl, validator, Field
from pydantic import validator, Field
from . import MetaBase, MojangArtifactBase, MojangAssets, MojangLibrary, MojangArtifact, MojangLibraryDownloads, \
Library, MetaVersion, GradleSpecifier
@ -60,8 +60,8 @@ class MojangIndexWrap:
class ExperimentEntry(MetaBase):
id: str
url: AnyHttpUrl
wiki: Optional[AnyHttpUrl]
url: str
wiki: Optional[str]
class ExperimentIndex(MetaBase):
@ -145,13 +145,14 @@ class MojangVersion(MetaBase):
arguments: Optional[MojangArguments]
asset_index: Optional[MojangAssets] = Field(alias="assetIndex")
assets: Optional[str]
downloads: Dict[str, MojangArtifactBase] # TODO improve this?
downloads: Optional[Dict[str, MojangArtifactBase]] # TODO improve this?
libraries: Optional[List[MojangLibrary]] # TODO: optional?
main_class: Optional[str] = Field(alias="mainClass")
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") # TODO: validate validateSupportedMojangVersion
minimum_launcher_version: Optional[int] = Field(
alias="minimumLauncherVersion") # TODO: validate validateSupportedMojangVersion
release_time: Optional[datetime] = Field(alias="releaseTime")
time: Optional[datetime]
type: Optional[str]