[V3 Audio] Harden Lavalink boot sequence (#1498)

* Do a bit of hardening

* Loop not asyncio

* Don't use new asyncio coolness

* I hate you all

* Muck up everything

* Fix version comparisons
This commit is contained in:
Will
2018-04-15 18:01:56 -04:00
committed by palmtree5
parent d9fa875d84
commit 5be967e8c5
6 changed files with 122 additions and 60 deletions

View File

@@ -1,11 +1,37 @@
import pkg_resources
from .config import Config
from .context import RedContext
__all__ = ["Config", "RedContext", "__version__"]
try:
__version__ = pkg_resources.get_distribution("Red-DiscordBot").version
except pkg_resources.DistributionNotFound:
__version__ = "3.0.0"
class VersionInfo:
def __init__(self, major, minor, micro, releaselevel, serial):
self._levels = ['alpha', 'beta', 'final']
self.major = major
self.minor = minor
self.micro = micro
if releaselevel not in self._levels:
raise TypeError("'releaselevel' must be one of: {}".format(
', '.join(self._levels)
))
self.releaselevel = releaselevel
self.serial = serial
def __lt__(self, other):
my_index = self._levels.index(self.releaselevel)
other_index = self._levels.index(other.releaselevel)
return (self.major, self.minor, self.micro, my_index, self.serial) < \
(other.major, other.minor, other.micro, other_index, other.serial)
def __repr__(self):
return "VersionInfo(major={}, minor={}, micro={}, releaselevel={}, serial={})".format(
self.major, self.minor, self.micro, self.releaselevel, self.serial
)
def to_json(self):
return [self.major, self.minor, self.micro, self.releaselevel, self.serial]
__version__ = "3.0.0b11"
version_info = VersionInfo(3, 0, 0, 'beta', 11)