mirror of
https://github.com/aiogram/aiogram.git
synced 2025-12-09 09:22:03 +00:00
Oops add Versions util
This commit is contained in:
parent
539d61faa6
commit
84f3b8fdd5
2 changed files with 92 additions and 7 deletions
|
|
@ -1,11 +1,7 @@
|
||||||
|
from aiogram.utils.versions import Version
|
||||||
from .bot import Bot
|
from .bot import Bot
|
||||||
|
|
||||||
|
|
||||||
major_version = 0
|
VERSION = Version(0, 3, 2, build=2)
|
||||||
minor_version = 3
|
|
||||||
major_build = 1
|
|
||||||
build_type = ''
|
|
||||||
build_number = ''
|
|
||||||
|
|
||||||
|
__version__ = VERSION.version
|
||||||
__version__ = f"{major_version}.{minor_version}.{major_build}.{build_type}{build_number}"
|
|
||||||
|
|
|
||||||
89
aiogram/utils/versions.py
Normal file
89
aiogram/utils/versions.py
Normal file
|
|
@ -0,0 +1,89 @@
|
||||||
|
from aiogram.utils.helper import Helper, HelperMode, Item
|
||||||
|
|
||||||
|
|
||||||
|
class Version:
|
||||||
|
def __init__(self, major=0, minor=0, maintenance=0, stage='final', build=0):
|
||||||
|
self.__raw_version = None
|
||||||
|
self.__version = None
|
||||||
|
|
||||||
|
self.version = (major, minor, maintenance, stage, build)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def version(self):
|
||||||
|
if self.__version is None:
|
||||||
|
self.__version = self.get_version()
|
||||||
|
return self.__version
|
||||||
|
|
||||||
|
@version.setter
|
||||||
|
def version(self, version):
|
||||||
|
assert isinstance(version, (tuple, list))
|
||||||
|
self.__raw_version = version
|
||||||
|
self.__version = None
|
||||||
|
|
||||||
|
@property
|
||||||
|
def major(self):
|
||||||
|
return self.__raw_version[0]
|
||||||
|
|
||||||
|
@property
|
||||||
|
def minor(self):
|
||||||
|
return self.__raw_version[1]
|
||||||
|
|
||||||
|
@property
|
||||||
|
def maintenance(self):
|
||||||
|
return self.__raw_version[2]
|
||||||
|
|
||||||
|
@property
|
||||||
|
def stage(self):
|
||||||
|
return self.__raw_version[3]
|
||||||
|
|
||||||
|
@property
|
||||||
|
def build(self):
|
||||||
|
return self.__raw_version[4]
|
||||||
|
|
||||||
|
def get_version(self):
|
||||||
|
"""
|
||||||
|
Returns a PEP 440-compliant version number from VERSION.
|
||||||
|
:param:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
version = self.__raw_version
|
||||||
|
|
||||||
|
# Now build the two parts of the version number:
|
||||||
|
# app = X.Y[.Z]
|
||||||
|
# sub = .devN - for pre-alpha releases
|
||||||
|
# | {a|b|rc}N - for alpha, beta, and rc releases
|
||||||
|
|
||||||
|
main = self.get_main_version()
|
||||||
|
|
||||||
|
sub = ''
|
||||||
|
|
||||||
|
if version[3] != 'final':
|
||||||
|
mapping = {'alpha': 'a', 'beta': 'b', 'rc': 'rc'}
|
||||||
|
sub = mapping[version[3]] + str(version[4])
|
||||||
|
|
||||||
|
return str(main + sub)
|
||||||
|
|
||||||
|
def get_main_version(self):
|
||||||
|
"""
|
||||||
|
Returns app version (X.Y[.Z]) from VERSION.
|
||||||
|
:param:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
version = self.__raw_version
|
||||||
|
parts = 2 if version[2] == 0 else 3
|
||||||
|
return '.'.join(str(x) for x in version[:parts])
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.version
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return '<Version:' + str(self) + '>'
|
||||||
|
|
||||||
|
|
||||||
|
class Stage(Helper):
|
||||||
|
mode = HelperMode.lowercase
|
||||||
|
|
||||||
|
FINAL = Item()
|
||||||
|
ALPHA = Item()
|
||||||
|
BETA = Item()
|
||||||
|
RC = Item()
|
||||||
Loading…
Add table
Add a link
Reference in a new issue