[pypy-svn] r12097 - pypy/dist/pypy/lib
pedronis at codespeak.net
pedronis at codespeak.net
Mon May 9 00:29:01 CEST 2005
Author: pedronis
Date: Mon May 9 00:29:01 2005
New Revision: 12097
Added:
pypy/dist/pypy/lib/inprogress__codecs.py
- copied unchanged from r12096, pypy/dist/pypy/lib/_codecs.py
Removed:
pypy/dist/pypy/lib/_codecs.py
Log:
temporarely disable (for the same reasons as binascii) this until we reach consesus on pypy-dev what to do about incomplete
modules and their inprogress testing.
Deleted: /pypy/dist/pypy/lib/_codecs.py
==============================================================================
--- /pypy/dist/pypy/lib/_codecs.py Mon May 9 00:29:01 2005
+++ (empty file)
@@ -1,342 +0,0 @@
-"""
-
- _codecs -- Provides access to the codec registry and the builtin
- codecs.
-
- This module should never be imported directly. The standard library
- module "codecs" wraps this builtin module for use within Python.
-
- The codec registry is accessible via:
-
- register(search_function) -> None
-
- lookup(encoding) -> (encoder, decoder, stream_reader, stream_writer)
-
- The builtin Unicode codecs use the following interface:
-
- <encoding>_encode(Unicode_object[,errors='strict']) ->
- (string object, bytes consumed)
-
- <encoding>_decode(char_buffer_obj[,errors='strict']) ->
- (Unicode object, bytes consumed)
-
- <encoding>_encode() interfaces also accept non-Unicode object as
- input. The objects are then converted to Unicode using
- PyUnicode_FromObject() prior to applying the conversion.
-
- These <encoding>s are available: utf_8, unicode_escape,
- raw_unicode_escape, unicode_internal, latin_1, ascii (7-bit),
- mbcs (on win32).
-
-
-Written by Marc-Andre Lemburg (mal at lemburg.com).
-
-Copyright (c) Corporation for National Research Initiatives.
-
-"""
-from unicodecodec import *
-
-#/* --- Registry ----------------------------------------------------------- */
-codec_search_path = []
-codec_search_cache = {}
-
-def codec_register( search_function ):
- """register(search_function)
-
- Register a codec search function. Search functions are expected to take
- one argument, the encoding name in all lower case letters, and return
- a tuple of functions (encoder, decoder, stream_reader, stream_writer).
- """
-
- if callable(search_function):
- codec_search_path.append(search_function)
-
-register = codec_register
-
-def codec_lookup(encoding):
- """lookup(encoding) -> (encoder, decoder, stream_reader, stream_writer)
- Looks up a codec tuple in the Python codec registry and returns
- a tuple of functions.
- """
-
- result = codec_search_cache.get(encoding,None)
- if not result:
- for search in codec_search_path:
- result=search(encoding)
- if result :
- codec_search_cache[encoding] = result
- break
- return result
-
-lookup = codec_lookup
-
-def encode(v, encoding='defaultencoding',errors='strict'):
- """encode(obj, [encoding[,errors]]) -> object
-
- Encodes obj using the codec registered for encoding. encoding defaults
- to the default encoding. errors may be given to set a different error
- handling scheme. Default is 'strict' meaning that encoding errors raise
- a ValueError. Other possible values are 'ignore', 'replace' and
- 'xmlcharrefreplace' as well as any other name registered with
- codecs.register_error that can handle ValueErrors.
- """
-
- encoder = lookup(encoding)[0]
- if encoder :
- res = encoder(v,errors)
- return res[0]
-
-def decode(obj,encoding='defaultencoding',errors='strict'):
- """decode(obj, [encoding[,errors]]) -> object
-
- Decodes obj using the codec registered for encoding. encoding defaults
- to the default encoding. errors may be given to set a different error
- handling scheme. Default is 'strict' meaning that encoding errors raise
- a ValueError. Other possible values are 'ignore' and 'replace'
- as well as any other name registerd with codecs.register_error that is
- able to handle ValueErrors.
- """
- decoder = lookup(encoding)[1]
- if decoder:
- res = decoder(obj,errors)
- else:
- raise LookupError("No such encoding")
- return res[0]
-
-def latin_1_encode( obj,errors='strict'):
- """None
- """
- res = PyUnicode_EncodeLatin1(obj,len(obj),errors)
- return res, len(res)
-# XXX MBCS codec might involve ctypes ?
-def mbcs_decode():
- """None
- """
- pass
-
-def readbuffer_encode( obj,errors='strict'):
- """None
- """
- res = str(obj)
- return res,len(res)
-
-def escape_encode( obj,errors='strict'):
- """None
- """
- s = repr(obj)
- v = s[1:-1]
- return v,len(v)
-
-def utf_8_decode( data,errors='strict',final=None):
- """None
- """
- res = PyUnicode_DecodeUTF8Stateful(data, len(data), errors, final)
- return res,len(res)
-
-def raw_unicode_escape_decode( data,errors='strict'):
- """None
- """
- res = PyUnicode_DecodeRawUnicodeEscape(data, len(data), errors)
- return res,len(res)
-
-def utf_7_decode( data,errors='strict'):
- """None
- """
- unistr = PyUnicode_DecodeUTF7(data,errors='strict')
- return unistr,len(unistr)
-# XXX unicode_escape_encode
-def unicode_escape_encode( obj,errors='strict'):
- """None
- """
- pass
-# XXX latin_1_decode
-def latin_1_decode( data,errors='strict'):
- """None
- """
- pass
-# XXX utf_16_decode
-def utf_16_decode( data,errors='strict'):
- """None
- """
- pass
-
-def unicode_escape_decode( data,errors='strict'):
- """None
- """
- unistr = PyUnicode_DecodeUnicodeEscape(data,len(data),errors)
- return unistr,len(unistr)
-
-
-def ascii_decode( data,errors='strict'):
- """None
- """
- res = PyUnicode_DecodeASCII(data,len(data),errors)
- return res,len(res)
-
-def charmap_encode(obj,errors='strict',mapping='latin-1'):
- """None
- """
- res = PyUnicode_EncodeCharmap(obj,len(obj),mapping,errors)
- return res,len(res)
-
-def unicode_internal_encode( obj,errors='strict'):
- """None
- """
- if type(obj) == unicode:
- return obj, len(obj)
- else:
- return PyUnicode_FromUnicode(obj,size),size
-# XXX utf_16_ex_decode
-def utf_16_ex_decode( data,errors='strict'):
- """None
- """
- pass
-# XXX escape_decode Check if this is right
-def escape_decode(data,errors='strict'):
- """None
- """
- return data,len(data)
-
-def charbuffer_encode( obj,errors='strict'):
- """None
- """
- res = str(obj)
- return res,len(res)
-
-def charmap_decode( data,errors='strict',mapping=None):
- """None
- """
- res = PyUnicode_DecodeCharmap(data, len(data), mapping, errors)
- return res,len(res)
-
-
-def utf_7_encode( obj,errors='strict'):
- """None
- """
- res = PyUnicode_EncodeUTF7(obj,len(obj),0,0,errors)
- return res,len(res)
-
-def mbcs_encode( obj,errors='strict'):
- """None
- """
- return (PyUnicode_EncodeMBCS(
- PyUnicode_AS_UNICODE(obj),
- PyUnicode_GET_SIZE(obj),
- errors),
- PyUnicode_GET_SIZE(obj));
-
-
-def ascii_encode( obj,errors='strict'):
- """None
- """
- res = PyUnicode_EncodeASCII(obj,len(obj),errors)
- return res,len(res)
-##(PyUnicode_EncodeASCII(
-## PyUnicode_AS_UNICODE(obj),
-## PyUnicode_GET_SIZE(obj),
-## errors),
-## PyUnicode_GET_SIZE(obj))
-
-def utf_16_encode( obj,errors='strict'):
- """None
- """
- u = PyUnicode_EncodeUTF16(obj,len(obj),errors)
- return u,len(u)
-
-def raw_unicode_escape_encode( obj,errors='strict'):
- """None
- """
- res = PyUnicode_EncodeRawUnicodeEscape(obj,len(obj))
- return res,len(res)
-
-def utf_8_encode( obj,errors='strict'):
- """None
- """
- res = PyUnicode_EncodeUTF8(obj,len(obj),errors)
- return res,len(res)
-# XXX utf_16_le_encode
-def utf_16_le_encode( obj,errors='strict'):
- """None
- """
- pass
-# XXX utf_16_be_encode
-def utf_16_be_encode( obj,errors='strict'):
- """None
- """
- pass
-
-def unicode_internal_decode( unistr,errors='strict'):
- """None
- """
- if type(unistr) == unicode:
- return unistr,len(unistr)
- else:
- return unicode(unistr),len(unistr)
-# XXX utf_16_le_decode
-def utf_16_le_decode( data,errors='strict'):
- """None
- """
- pass
-# XXX utf_16_be_decode
-def utf_16_be_decode( data,errors='strict'):
- """None
- """
- pass
-
-def strict_errors(exc):
- if isinstance(exc,Exception):
- raise exc
- else:
- raise TypeError("codec must pass exception instance")
-
-def ignore_errors(exc):
- if isinstance(exc,(UnicodeEncodeError,UnicodeDecodeError,UnicodeTranslateError)):
- return u'',exc.end
- else:
- raise TypeError("don't know how to handle %.400s in error callback"%exc)
-
-Py_UNICODE_REPLACEMENT_CHARACTER = u"\ufffd"
-
-def replace_errors(exc):
- if isinstance(exc,UnicodeEncodeError):
- return u'?'*(exc.end-exc.start),exc.end
- elif isinstance(exc,(UnicodeTranslateError,UnicodeDecodeError)):
- return Py_UNICODE_REPLACEMENT_CHARACTER*(exc.end-exc.start),exc.end
- else:
- raise TypeError("don't know how to handle %.400s in error callback"%exc)
-
-def xmlcharrefreplace_errors(exc):
- if isinstance(exc,UnicodeEncodeError):
- res = []
- for ch in exc.object[exc.start:exc.end]:
- res += '&#'
- res += str(ord(ch))
- res += ';'
- return u''.join(res),exc.end
- else:
- raise TypeError("don't know how to handle %.400s in error callback"%type(exc))
-
-def backslashreplace_errors(exc):
- if isinstance(exc,UnicodeEncodeError):
- p=[]
- for c in exc.object[exc.start:exc.end]:
- p.append('\\')
- oc = ord(c)
- if (oc >= 0x00010000):
- p.append('U')
- p.append("%.8x" % ord(c))
- elif (oc >= 0x100):
- p.append('u')
- p.append("%.4x" % ord(c))
- else:
- p.append('x')
- p.append("%.2x" % ord(c))
- return u''.join(p),exc.end
- else:
- raise TypeError("don't know how to handle %.400s in error callback"%type(exc))
-
-register_error("strict",strict_errors)
-register_error("ignore",ignore_errors)
-register_error("replace",replace_errors)
-register_error("xmlcharrefreplace",xmlcharrefreplace_errors)
-register_error("backslashreplace",backslashreplace_errors)
\ No newline at end of file
More information about the Pypy-commit
mailing list