Fix version parsing

This commit is contained in:
Alex Root Junior 2021-02-07 19:04:26 +02:00
parent 66f0868f45
commit aebccd1139
6 changed files with 27 additions and 11 deletions

View file

@ -70,11 +70,11 @@ clean:
.PHONY: isort .PHONY: isort
isort: isort:
$(py) isort aiogram tests $(py) isort aiogram tests scripts
.PHONY: black .PHONY: black
black: black:
$(py) black aiogram tests $(py) black aiogram tests scripts
.PHONY: flake8 .PHONY: flake8
flake8: flake8:

View file

@ -27,5 +27,5 @@ __all__ = (
"handler", "handler",
) )
__version__ = "3.0.0a6" __version__ = "3.0.0-alpha.6"
__api_version__ = "5.0" __api_version__ = "4.9"

View file

@ -1 +1 @@
3.0.0a5 3.0.0a6

2
poetry.lock generated
View file

@ -1322,7 +1322,7 @@ proxy = ["aiohttp-socks"]
[metadata] [metadata]
lock-version = "1.1" lock-version = "1.1"
python-versions = "^3.7" python-versions = "^3.7"
content-hash = "04fb2562ab4dccbd2b7125670b37a3124c7eeab55dbec4d1e05a7a8d10f97175" content-hash = "ee4cbf4fb0a62ec777bec179dad21e7cea1ced466ab2a5424f54f8764f2955d3"
[metadata.files] [metadata.files]
aiofiles = [ aiofiles = [

View file

@ -84,6 +84,7 @@ furo = "^2020.11.15-beta.17"
sphinx-prompt = "^1.3.0" sphinx-prompt = "^1.3.0"
Sphinx-Substitution-Extensions = "^2020.9.30" Sphinx-Substitution-Extensions = "^2020.9.30"
black = "^20.8b1" black = "^20.8b1"
toml = "^0.10.2"
[tool.poetry.extras] [tool.poetry.extras]
fast = ["uvloop"] fast = ["uvloop"]

View file

@ -1,18 +1,33 @@
import re import re
from pathlib import Path from pathlib import Path
from poetry.factory import Factory import toml
from poetry.masonry.metadata import Metadata
BASE_PATTERN = r'({variable} = ")[a-z0-9.+]+(")' BASE_PATTERN = r'({variable} = ")[a-z0-9.+]+(")'
PACKAGE_VERSION = re.compile(BASE_PATTERN.format(variable="__version__")) PACKAGE_VERSION = re.compile(BASE_PATTERN.format(variable="__version__"))
API_VERSION = re.compile(BASE_PATTERN.format(variable="__api_version__")) API_VERSION = re.compile(BASE_PATTERN.format(variable="__api_version__"))
STAGE_MAPPING = {
"alpha": "a",
"beta": "b",
}
def get_package_version() -> str: def get_package_version() -> str:
poetry_instance = Factory().create_poetry(Path.cwd()) data = toml.load(Path("pyproject.toml").absolute())
meta: Metadata = Metadata.from_package(poetry_instance.package) raw_version: str = data["tool"]["poetry"]["version"]
return meta.version if "-" not in raw_version:
return raw_version
version, stage_build = raw_version.split("-", maxsplit=1)
if stage_build:
stage, build = stage_build.split(".")
if stage_str := STAGE_MAPPING.get(stage):
version += f"{stage_str}{build}"
else:
return raw_version
return version
def get_telegram_api_version() -> str: def get_telegram_api_version() -> str: