mirror of
https://github.com/revanced/revanced-releases-api.git
synced 2025-04-30 06:24:27 +02:00
Upgrade to python 3.10
This commit is contained in:
parent
41d5ae63be
commit
1ee02be65f
@ -1,4 +1,4 @@
|
||||
FROM python:3-slim
|
||||
FROM python:3.10-slim
|
||||
|
||||
ARG GITHUB_TOKEN
|
||||
ENV GITHUB_TOKEN $GITHUB_TOKEN
|
||||
|
6
main.py
6
main.py
@ -47,7 +47,7 @@ async def root(request: Request, response: Response) -> RedirectResponse:
|
||||
"""
|
||||
return RedirectResponse(url="/docs")
|
||||
|
||||
@app.get('/tools', response_model=ResponseModels.LatestTools)
|
||||
@app.get('/tools', response_model=ResponseModels.ToolsResponseModel)
|
||||
@limiter.limit(config['slowapi']['limit'])
|
||||
async def tools(request: Request, response: Response) -> dict:
|
||||
"""Get patching tools' latest version.
|
||||
@ -57,7 +57,7 @@ async def tools(request: Request, response: Response) -> dict:
|
||||
"""
|
||||
return await releases.get_latest_releases(config['app']['repositories'])
|
||||
|
||||
@app.get('/apps', response_model=ResponseModels.SupportedApps)
|
||||
@app.get('/apps', response_model=ResponseModels.AppsResponseModel)
|
||||
@limiter.limit(config['slowapi']['limit'])
|
||||
async def apps(request: Request, response: Response) -> dict:
|
||||
"""Get patchable apps.
|
||||
@ -67,7 +67,7 @@ async def apps(request: Request, response: Response) -> dict:
|
||||
"""
|
||||
return await releases.get_patchable_apps()
|
||||
|
||||
@app.get('/patches', response_model=ResponseModels.Patches)
|
||||
@app.get('/patches', response_model=ResponseModels.PatchesResponseModel)
|
||||
@limiter.limit(config['slowapi']['limit'])
|
||||
async def patches(request: Request, response: Response) -> dict:
|
||||
"""Get latest patches.
|
||||
|
@ -1,28 +1,33 @@
|
||||
from enum import Enum
|
||||
from pydantic import BaseModel
|
||||
|
||||
class LatestToolsFields(str, Enum):
|
||||
class ToolsResponseFields(BaseModel):
|
||||
"""Implements the fields for the /tools endpoint.
|
||||
|
||||
Args:
|
||||
str (str): String
|
||||
Enum (Enum): Enum from pydantic
|
||||
BaseModel (pydantic.BaseModel): BaseModel from pydantic
|
||||
"""
|
||||
repository: str
|
||||
name: str
|
||||
size: str
|
||||
browser_download_url: str
|
||||
content_type: str
|
||||
class CompatiblePackagesResponseFields(BaseModel):
|
||||
"""Implements the fields for compatible packages in the PatchesResponseFields class.
|
||||
|
||||
repository = 'repository'
|
||||
name = 'name'
|
||||
size = 'size'
|
||||
browser_download_url = 'browser_download_url'
|
||||
content_type = 'content_type'
|
||||
|
||||
class SimplifiedPatchesFields(str, Enum):
|
||||
Args:
|
||||
BaseModel (pydantic.BaseModel): BaseModel from pydantic
|
||||
"""
|
||||
name: str
|
||||
verstions: list[ str ] | None
|
||||
class PatchesResponseFields(BaseModel):
|
||||
"""Implements the fields for the /patches endpoint.
|
||||
|
||||
Args:
|
||||
str (str): String
|
||||
Enum (Enum): Enum from pydantic
|
||||
BaseModel (pydantic.BaseModel): BaseModel from pydantic
|
||||
"""
|
||||
|
||||
target_app = "target_app"
|
||||
patch_name = "patch_name"
|
||||
description = "description"
|
||||
target_version = "target_version"
|
||||
name: str
|
||||
description: str
|
||||
version: str
|
||||
excluded: bool
|
||||
dependencies: list[ str ] | None
|
||||
compatiblePackages: list[ CompatiblePackagesResponseFields ]
|
@ -1,5 +1,4 @@
|
||||
import modules.ResponseFields as ResponseFields
|
||||
from typing import Dict, Union, List
|
||||
from pydantic import BaseModel, create_model
|
||||
|
||||
"""Implements pydantic models and model generator for the API's responses."""
|
||||
@ -22,7 +21,7 @@ class ModelGenerator():
|
||||
return create_model(name, **{k: self.__make_model(v, k) for k, v in v.items()}), ...
|
||||
return None, v
|
||||
|
||||
def generate(self, v: Dict, name: str):
|
||||
def generate(self, v: dict, name: str):
|
||||
|
||||
"""Returns a pydantic model from a dictionary.
|
||||
|
||||
@ -35,44 +34,29 @@ class ModelGenerator():
|
||||
"""
|
||||
return self.__make_model(v, name)[0]
|
||||
|
||||
class SupportedApps(BaseModel):
|
||||
class AppsResponseModel(BaseModel):
|
||||
"""Implements the JSON response model for the /apps endpoint.
|
||||
|
||||
Args:
|
||||
BaseModel (pydantic.BaseModel): BaseModel from pydantic
|
||||
"""
|
||||
|
||||
apps: List[str]
|
||||
apps: list[str]
|
||||
|
||||
class LatestTools(BaseModel):
|
||||
class ToolsResponseModel(BaseModel):
|
||||
"""Implements the JSON response model for the /tools endpoint.
|
||||
|
||||
Args:
|
||||
BaseModel (pydantic.BaseModel): BaseModel from pydantic
|
||||
"""
|
||||
|
||||
tools: List[ Dict[ ResponseFields.LatestToolsFields, str ] ]
|
||||
tools: list[ ResponseFields.ToolsResponseFields ]
|
||||
|
||||
class Config:
|
||||
use_enum_values = True
|
||||
|
||||
class SimplifiedPatches(BaseModel):
|
||||
class PatchesResponseModel(BaseModel):
|
||||
"""Implements the JSON response model for the /patches endpoint.
|
||||
|
||||
Args:
|
||||
BaseModel (pydantic.BaseModel): BaseModel from pydantic
|
||||
"""
|
||||
|
||||
patches: List[ Dict[ ResponseFields.SimplifiedPatchesFields, str ] ]
|
||||
|
||||
class Config:
|
||||
use_enum_values = True
|
||||
|
||||
class Patches(BaseModel):
|
||||
"""_summary_
|
||||
|
||||
Args:
|
||||
BaseModel (pydantic.BaseModel): BaseModel from pydantic
|
||||
"""
|
||||
|
||||
__root__ = List[ Dict[ str, Union[str, List[str], Dict, bool] ] ]
|
||||
__root__: list[ ResponseFields.PatchesResponseFields ]
|
Loading…
x
Reference in New Issue
Block a user