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
|
ARG GITHUB_TOKEN
|
||||||
ENV GITHUB_TOKEN $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")
|
return RedirectResponse(url="/docs")
|
||||||
|
|
||||||
@app.get('/tools', response_model=ResponseModels.LatestTools)
|
@app.get('/tools', response_model=ResponseModels.ToolsResponseModel)
|
||||||
@limiter.limit(config['slowapi']['limit'])
|
@limiter.limit(config['slowapi']['limit'])
|
||||||
async def tools(request: Request, response: Response) -> dict:
|
async def tools(request: Request, response: Response) -> dict:
|
||||||
"""Get patching tools' latest version.
|
"""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'])
|
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'])
|
@limiter.limit(config['slowapi']['limit'])
|
||||||
async def apps(request: Request, response: Response) -> dict:
|
async def apps(request: Request, response: Response) -> dict:
|
||||||
"""Get patchable apps.
|
"""Get patchable apps.
|
||||||
@ -67,7 +67,7 @@ async def apps(request: Request, response: Response) -> dict:
|
|||||||
"""
|
"""
|
||||||
return await releases.get_patchable_apps()
|
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'])
|
@limiter.limit(config['slowapi']['limit'])
|
||||||
async def patches(request: Request, response: Response) -> dict:
|
async def patches(request: Request, response: Response) -> dict:
|
||||||
"""Get latest patches.
|
"""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.
|
"""Implements the fields for the /tools endpoint.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
str (str): String
|
BaseModel (pydantic.BaseModel): BaseModel from pydantic
|
||||||
Enum (Enum): Enum 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'
|
Args:
|
||||||
name = 'name'
|
BaseModel (pydantic.BaseModel): BaseModel from pydantic
|
||||||
size = 'size'
|
"""
|
||||||
browser_download_url = 'browser_download_url'
|
name: str
|
||||||
content_type = 'content_type'
|
verstions: list[ str ] | None
|
||||||
|
class PatchesResponseFields(BaseModel):
|
||||||
class SimplifiedPatchesFields(str, Enum):
|
|
||||||
"""Implements the fields for the /patches endpoint.
|
"""Implements the fields for the /patches endpoint.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
str (str): String
|
BaseModel (pydantic.BaseModel): BaseModel from pydantic
|
||||||
Enum (Enum): Enum from pydantic
|
|
||||||
"""
|
"""
|
||||||
|
name: str
|
||||||
target_app = "target_app"
|
description: str
|
||||||
patch_name = "patch_name"
|
version: str
|
||||||
description = "description"
|
excluded: bool
|
||||||
target_version = "target_version"
|
dependencies: list[ str ] | None
|
||||||
|
compatiblePackages: list[ CompatiblePackagesResponseFields ]
|
@ -1,5 +1,4 @@
|
|||||||
import modules.ResponseFields as ResponseFields
|
import modules.ResponseFields as ResponseFields
|
||||||
from typing import Dict, Union, List
|
|
||||||
from pydantic import BaseModel, create_model
|
from pydantic import BaseModel, create_model
|
||||||
|
|
||||||
"""Implements pydantic models and model generator for the API's responses."""
|
"""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 create_model(name, **{k: self.__make_model(v, k) for k, v in v.items()}), ...
|
||||||
return None, v
|
return None, v
|
||||||
|
|
||||||
def generate(self, v: Dict, name: str):
|
def generate(self, v: dict, name: str):
|
||||||
|
|
||||||
"""Returns a pydantic model from a dictionary.
|
"""Returns a pydantic model from a dictionary.
|
||||||
|
|
||||||
@ -35,44 +34,29 @@ class ModelGenerator():
|
|||||||
"""
|
"""
|
||||||
return self.__make_model(v, name)[0]
|
return self.__make_model(v, name)[0]
|
||||||
|
|
||||||
class SupportedApps(BaseModel):
|
class AppsResponseModel(BaseModel):
|
||||||
"""Implements the JSON response model for the /apps endpoint.
|
"""Implements the JSON response model for the /apps endpoint.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
BaseModel (pydantic.BaseModel): BaseModel from pydantic
|
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.
|
"""Implements the JSON response model for the /tools endpoint.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
BaseModel (pydantic.BaseModel): BaseModel from pydantic
|
BaseModel (pydantic.BaseModel): BaseModel from pydantic
|
||||||
"""
|
"""
|
||||||
|
|
||||||
tools: List[ Dict[ ResponseFields.LatestToolsFields, str ] ]
|
tools: list[ ResponseFields.ToolsResponseFields ]
|
||||||
|
|
||||||
class Config:
|
class PatchesResponseModel(BaseModel):
|
||||||
use_enum_values = True
|
|
||||||
|
|
||||||
class SimplifiedPatches(BaseModel):
|
|
||||||
"""Implements the JSON response model for the /patches endpoint.
|
"""Implements the JSON response model for the /patches endpoint.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
BaseModel (pydantic.BaseModel): BaseModel from pydantic
|
BaseModel (pydantic.BaseModel): BaseModel from pydantic
|
||||||
"""
|
"""
|
||||||
|
|
||||||
patches: List[ Dict[ ResponseFields.SimplifiedPatchesFields, str ] ]
|
__root__: list[ ResponseFields.PatchesResponseFields ]
|
||||||
|
|
||||||
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] ] ]
|
|
Loading…
x
Reference in New Issue
Block a user