Remove the _ensure_encodings module.
authorZac Medico <zmedico@gentoo.org>
Thu, 7 Jul 2011 19:10:08 +0000 (12:10 -0700)
committerZac Medico <zmedico@gentoo.org>
Thu, 7 Jul 2011 19:10:08 +0000 (12:10 -0700)
This was only needed for ancient versions of python built with
USE=build since the ebuilds used to remove the encodings module in
that case. Since the StreamWriter and StreamReader classes may be
deprecated in the near future, now would be a good time to stop
using them.

pym/portage/__init__.py
pym/portage/_ensure_encodings.py [deleted file]
pym/portage/tests/lazyimport/test_lazy_import_portage_baseline.py

index bc2eedb183d3b263bbf605274a7ee0674e513637..47e2e48e6c87b7d54caa05b843ac8b007f1806fd 100644 (file)
@@ -327,30 +327,6 @@ _python_interpreter = os.path.realpath(sys.executable)
 _bin_path = PORTAGE_BIN_PATH
 _pym_path = PORTAGE_PYM_PATH
 
-def _ensure_default_encoding():
-
-       default_encoding = sys.getdefaultencoding().lower().replace('-', '_')
-       filesystem_encoding = _encodings['merge'].lower().replace('-', '_')
-       required_encodings = set(['ascii', 'utf_8'])
-       required_encodings.add(default_encoding)
-       required_encodings.add(filesystem_encoding)
-       missing_encodings = set()
-       for codec_name in required_encodings:
-               try:
-                       codecs.lookup(codec_name)
-               except LookupError:
-                       missing_encodings.add(codec_name)
-
-       if not missing_encodings:
-               return
-
-       from portage import _ensure_encodings
-       _ensure_encodings._setup_encodings(default_encoding,
-               filesystem_encoding, missing_encodings)
-
-# Do this ASAP since writemsg() might not work without it.
-_ensure_default_encoding()
-
 def _shell_quote(s):
        """
        Quote a string in double-quotes and use backslashes to
diff --git a/pym/portage/_ensure_encodings.py b/pym/portage/_ensure_encodings.py
deleted file mode 100644 (file)
index 5e62843..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-# Copyright 2010 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-import codecs
-
-_codec_map = None
-
-def _setup_encodings(default_encoding, filesystem_encoding, missing_encodings):
-       """
-       The <python-2.6.4 that's inside stage 1 or 2 is built with a minimal
-       configuration which does not include the /usr/lib/pythonX.Y/encodings
-       directory. This results in error like the following:
-
-         LookupError: no codec search functions registered: can't find encoding
-
-       In order to solve this problem, detect it early and manually register
-       a search function for the ascii and utf_8 codecs. Starting with python-3.0
-       this problem is more noticeable because of stricter handling of encoding
-       and decoding between strings of characters and bytes.
-       """
-
-       global _codec_map
-       _codec_map = _gen_missing_encodings(missing_encodings)
-
-       default_fallback = 'utf_8'
-
-       if default_encoding in missing_encodings and \
-               default_encoding not in _codec_map:
-               # Make the fallback codec correspond to whatever name happens
-               # to be returned by sys.getfilesystemencoding().
-
-               try:
-                       _codec_map[default_encoding] = codecs.lookup(default_fallback)
-               except LookupError:
-                       _codec_map[default_encoding] = _codec_map[default_fallback]
-
-       if filesystem_encoding in missing_encodings and \
-               filesystem_encoding not in _codec_map:
-               # Make the fallback codec correspond to whatever name happens
-               # to be returned by sys.getdefaultencoding().
-
-               try:
-                       _codec_map[filesystem_encoding] = codecs.lookup(default_fallback)
-               except LookupError:
-                       _codec_map[filesystem_encoding] = _codec_map[default_fallback]
-
-       codecs.register(_search_function)
-
-def _gen_missing_encodings(missing_encodings):
-
-       codec_map = {}
-
-       if 'ascii' in missing_encodings:
-
-               class AsciiIncrementalEncoder(codecs.IncrementalEncoder):
-                       def encode(self, input, final=False):
-                               return codecs.ascii_encode(input, self.errors)[0]
-
-               class AsciiIncrementalDecoder(codecs.IncrementalDecoder):
-                       def decode(self, input, final=False):
-                               return codecs.ascii_decode(input, self.errors)[0]
-
-               class AsciiStreamWriter(codecs.StreamWriter):
-                       encode = codecs.ascii_encode
-
-               class AsciiStreamReader(codecs.StreamReader):
-                       decode = codecs.ascii_decode
-
-               codec_info =  codecs.CodecInfo(
-                       name='ascii',
-                       encode=codecs.ascii_encode,
-                       decode=codecs.ascii_decode,
-                       incrementalencoder=AsciiIncrementalEncoder,
-                       incrementaldecoder=AsciiIncrementalDecoder,
-                       streamwriter=AsciiStreamWriter,
-                       streamreader=AsciiStreamReader,
-               )
-
-               for alias in ('ascii', '646', 'ansi_x3.4_1968', 'ansi_x3_4_1968',
-                       'ansi_x3.4_1986', 'cp367', 'csascii', 'ibm367', 'iso646_us',
-                       'iso_646.irv_1991', 'iso_ir_6', 'us', 'us_ascii'):
-                       codec_map[alias] = codec_info
-
-       if 'utf_8' in missing_encodings:
-
-               def utf8decode(input, errors='strict'):
-                       return codecs.utf_8_decode(input, errors, True)
-
-               class Utf8IncrementalEncoder(codecs.IncrementalEncoder):
-                       def encode(self, input, final=False):
-                               return codecs.utf_8_encode(input, self.errors)[0]
-
-               class Utf8IncrementalDecoder(codecs.BufferedIncrementalDecoder):
-                       _buffer_decode = codecs.utf_8_decode
-
-               class Utf8StreamWriter(codecs.StreamWriter):
-                       encode = codecs.utf_8_encode
-
-               class Utf8StreamReader(codecs.StreamReader):
-                       decode = codecs.utf_8_decode
-
-               codec_info = codecs.CodecInfo(
-                       name='utf-8',
-                       encode=codecs.utf_8_encode,
-                       decode=utf8decode,
-                       incrementalencoder=Utf8IncrementalEncoder,
-                       incrementaldecoder=Utf8IncrementalDecoder,
-                       streamreader=Utf8StreamReader,
-                       streamwriter=Utf8StreamWriter,
-               )
-
-               for alias in ('utf_8', 'u8', 'utf', 'utf8', 'utf8_ucs2', 'utf8_ucs4'):
-                       codec_map[alias] = codec_info
-
-       return codec_map
-
-def _search_function(name):
-       global _codec_map
-       name = name.lower()
-       name = name.replace('-', '_')
-       codec_info = _codec_map.get(name)
-       if codec_info is not None:
-               return codecs.CodecInfo(
-                       name=codec_info.name,
-                       encode=codec_info.encode,
-                       decode=codec_info.decode,
-                       incrementalencoder=codec_info.incrementalencoder,
-                       incrementaldecoder=codec_info.incrementaldecoder,
-                       streamreader=codec_info.streamreader,
-                       streamwriter=codec_info.streamwriter,
-               )
-       return None
index 28cf28436fffe49843e049fb17ca1e559126ec81..08ccfa7ffa802c9b54955f1b127097dfad5c6a24 100644 (file)
@@ -18,7 +18,7 @@ class LazyImportPortageBaselineTestCase(TestCase):
        _baseline_imports = frozenset([
                'portage.const', 'portage.localization',
                'portage.proxy', 'portage.proxy.lazyimport',
-               'portage.proxy.objectproxy', 'portage._ensure_encodings',
+               'portage.proxy.objectproxy',
                'portage._selinux',
        ])