| Server IP : 104.21.25.180 / Your IP : 104.23.197.123 Web Server : Apache/2.4.37 System : Linux almalinux.duckdns.org 4.18.0-553.111.1.el8_10.x86_64 #1 SMP Sun Mar 8 20:06:07 EDT 2026 x86_64 User : ricodeal ( 1046) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /lib/python2.7/site-packages/tld/ |
Upload File : |
# -*- coding: utf-8 -*-
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
from six import with_metaclass as _py_backwards_six_withmetaclass
from codecs import open as codecs_open
try:
from urllib.request import urlopen
except ImportError:
from six.moves.urllib.request import urlopen as urlopen
from .exceptions import TldIOError, TldImproperlyConfigured
from .helpers import project_dir
from .registry import Registry
__author__ = u'Artur Barseghyan'
__copyright__ = u'2013-2019 Artur Barseghyan'
__license__ = u'MPL-1.1 OR GPL-2.0-only OR LGPL-2.1-or-later'
__all__ = (u'BaseTLDSourceParser',)
class BaseTLDSourceParser(
_py_backwards_six_withmetaclass(Registry, *[object])):
u'Base TLD source parser.'
uid = None
source_url = None
local_path = None
@classmethod
def validate(cls):
u'Constructor.'
if (not cls.uid):
raise TldImproperlyConfigured(
u'The `uid` property of the TLD source parser shall be defined.')
@classmethod
def get_tld_names(cls, fail_silently=False, retry_count=0):
u'Get tld names.\n\n :param fail_silently:\n :param retry_count:\n :return:\n '
cls.validate()
raise NotImplementedError(
u'Your TLD source parser shall implement `get_tld_names` method.')
@classmethod
def update_tld_names(cls, fail_silently=False):
u'Update the local copy of the TLD file.\n\n :param fail_silently:\n :return:\n '
try:
remote_file = urlopen(cls.source_url)
local_file = codecs_open(project_dir(
cls.local_path), u'wb', encoding='utf8')
local_file.write(remote_file.read().decode(u'utf8'))
local_file.close()
remote_file.close()
except Exception as err:
if fail_silently:
return False
raise TldIOError(err)
return True