__init__.py

来自「mallet是自然语言处理、机器学习领域的一个开源项目。」· Python 代码 · 共 98 行

PY
98
字号
""" Standard "encodings" Package    Standard Python encoding modules are stored in this package    directory.    Codec modules must have names corresponding to standard lower-case    encoding names with hyphens mapped to underscores, e.g. 'utf-8' is    implemented by the module 'utf_8.py'.    Each codec module must export the following interface:    * getregentry() -> (encoder, decoder, stream_reader, stream_writer)    The getregentry() API must return callable objects which adhere to    the Python Codec Interface Standard.    In addition, a module may optionally also define the following    APIs which are then used by the package's codec search function:    * getaliases() -> sequence of encoding name strings to use as aliases    Alias names returned by getaliases() must be standard encoding    names as defined above (lower-case, hyphens converted to    underscores).Written by Marc-Andre Lemburg (mal@lemburg.com).(c) Copyright CNRI, All Rights Reserved. NO WARRANTY."""#"import codecs,aliases,exceptions_cache = {}_unknown = '--unknown--'class CodecRegistryError(exceptions.LookupError,                         exceptions.SystemError):    passdef search_function(encoding):        # Cache lookup    entry = _cache.get(encoding,_unknown)    if entry is not _unknown:        return entry    # Import the module    modname = encoding.replace('-', '_')    modname = aliases.aliases.get(modname,modname)    try:        mod = __import__(modname,globals(),locals(),'*')    except ImportError,why:        # cache misses        _cache[encoding] = None        return None    try:        getregentry = mod.getregentry    except AttributeError:        # Not a codec module        _cache[encoding] = None        return None        # Now ask the module for the registry entry    try:        entry = tuple(getregentry())    except AttributeError:        entry = ()    if len(entry) != 4:        raise CodecRegistryError,\              'module "%s" (%s) failed to register' % \              (mod.__name__, mod.__file__)    for obj in entry:        if not callable(obj):            raise CodecRegistryError,\                  'incompatible codecs in module "%s" (%s)' % \                  (mod.__name__, mod.__file__)    # Cache the codec registry entry    _cache[encoding] = entry    # Register its aliases (without overwriting previously registered    # aliases)    try:        codecaliases = mod.getaliases()    except AttributeError:        pass    else:        for alias in codecaliases:            if not aliases.aliases.has_key(alias):                aliases.aliases[alias] = modname    # Return the registry entry    return entry# Register the search_function in the Python codec registrycodecs.register(search_function)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?