From 93c61e9e0af3076df2e126aa1b502efc4fd1a7e5 Mon Sep 17 00:00:00 2001 From: Alex Root Junior Date: Thu, 1 Jun 2017 22:53:29 +0300 Subject: [PATCH] Removed the crutch with the user's language --- aiogram/types/__init__.py | 2 + aiogram/types/user.py | 9 +- aiogram/utils/user_language.py | 746 -------------------------------- examples/check_user_language.py | 9 +- 4 files changed, 13 insertions(+), 753 deletions(-) delete mode 100644 aiogram/utils/user_language.py diff --git a/aiogram/types/__init__.py b/aiogram/types/__init__.py index 0a2ddbcf..37206d1b 100644 --- a/aiogram/types/__init__.py +++ b/aiogram/types/__init__.py @@ -63,6 +63,8 @@ class Deserializable: def parent(self, value): setattr(self, '_parent', value) for name, attr in self.__dict__.items(): + if name.startswith('_'): + continue if hasattr(attr, 'de_json'): attr.parent = self diff --git a/aiogram/types/user.py b/aiogram/types/user.py index 99747b4e..10c78745 100644 --- a/aiogram/types/user.py +++ b/aiogram/types/user.py @@ -1,5 +1,6 @@ +import babel + from . import Deserializable -from ..utils.user_language import get_language class User(Deserializable): @@ -45,7 +46,9 @@ class User(Deserializable): return self.full_name @property - def language(self): + def locale(self) -> babel.core.Locale or None: if not self.language_code: return None - return get_language(self.language_code) + if not hasattr(self, '_locale'): + setattr(self, '_locale', babel.core.Locale.parse(self.language_code, sep='-')) + return getattr(self, '_locale') diff --git a/aiogram/utils/user_language.py b/aiogram/utils/user_language.py deleted file mode 100644 index bef95cad..00000000 --- a/aiogram/utils/user_language.py +++ /dev/null @@ -1,746 +0,0 @@ -class Language: - def __init__(self, language_code, territory=None, lang_type=None, title=None): - self.code = language_code - self.territory = territory - self.type = lang_type - self.title = title - - def __str__(self): - s = '