o dc@sdZddlZddlZddlmZiZdZdgZejZGddde e Z d d Z d d Z ee ejd kr@ddZeedSdS)a2 Standard "encodings" Package Standard Python encoding modules are stored in this package directory. Codec modules must have names corresponding to normalized encoding names as defined in the normalize_encoding() function below, e.g. 'utf-8' must be implemented by the module 'utf_8.py'. Each codec module must export the following interface: * getregentry() -> codecs.CodecInfo object The getregentry() API must return a CodecInfo object with encoder, decoder, incrementalencoder, incrementaldecoder, streamwriter and streamreader attributes 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 normalized encoding names as defined by normalize_encoding(). Written by Marc-Andre Lemburg (mal@lemburg.com). (c) Copyright CNRI, All Rights Reserved. NO WARRANTY. N)aliasesz --unknown--*c@s eZdZdS)CodecRegistryErrorN)__name__ __module__ __qualname__r r s/home/lily/lilypond-2.24.1/release/binaries/dependencies/install/Python-3.10.8/lib/python3.10/encodings/__init__.pyr(srcCsnt|tr t|d}g}d}|D]!}|s|dkr/|r#|r#|d|r,||d}qd}qd|S)ae Normalize an encoding name. Normalization works as follows: all non-alphanumeric characters except the dot used for Python package names are collapsed and replaced with a single underscore, e.g. ' -;#' becomes '_'. Leading and trailing underscores are removed. Note that encoding names should be ASCII only. asciiF._T) isinstancebytesstrisalnumappendisasciijoin)encodingZcharsZpunctcr r r normalize_encoding+s    rc CsPt|t}|tur |St|}t|pt|dd}|dur'||g}n|g}|D]}|r4d|vr5q,z td|tdd}Wn tyIYq,wnd}z|j }Wn t y^d}Ynw|duridt|<dS|}t |t j sdt|krdksntd|j|jft|drt|d r|d durt|d r|d durt|d rt|dkr|ddurt|drt|d kr|d durt|d std |j|jft|dks|ddur|ddt||jdd d f7}t j |}|t|<z|}Wn t yY|Sw|D] } | tvr$|t| <q|S)Nr r z encodings.r)fromlistlevelz#module "%s" (%s) failed to registerrz'incompatible codecs in module "%s" (%s))N)_cacheget_unknownr_aliasesreplace __import__ _import_tail ImportError getregentryAttributeErrorrcodecsZ CodecInfolenrr__file__callablesplitZ getaliases) rentryZ norm_encodingZaliased_encodingZmodnamesZmodnamemodr)Z codecaliasesZaliasr r r search_functionGsz        $$ (   r2Zwin32cCsLzddl}d|}||krddl}|jWSWdSty%YdSw)Nrzcp%s)_winapiZGetACPZencodings.mbcsZmbcsr)r()rr3Zansi_code_pageZ encodingsr r r _alias_mbcss   r4)__doc__r+sysrrr!r#r'r$ LookupError SystemErrorrrr2Zregisterplatformr4r r r r s   U