summaryrefslogtreecommitdiffstats
path: root/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code
diff options
context:
space:
mode:
Diffstat (limited to 'FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code')
-rw-r--r--FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/astropy_py3compat.py213
-rw-r--r--FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/django_utils_encoding.py228
-rw-r--r--FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/gevent_py3k.py17
-rw-r--r--FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/ipython_py3compat.py178
-rw-r--r--FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/jinja2_compat.py109
-rw-r--r--FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/numpy_py3k.py71
-rw-r--r--FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/pandas_py3k.py702
-rw-r--r--FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/pycrypto_py3compat.py107
-rw-r--r--FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/statsmodels_py3k.py69
9 files changed, 0 insertions, 1694 deletions
diff --git a/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/astropy_py3compat.py b/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/astropy_py3compat.py
deleted file mode 100644
index d264da8..0000000
--- a/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/astropy_py3compat.py
+++ /dev/null
@@ -1,213 +0,0 @@
-# Licensed under a 3-clause BSD style license - see PYFITS.rst
-
-import sys
-
-PY3 = sys.version_info[0] >= 3
-
-if PY3: # pragma: py3
- # Stuff to do if Python 3
- import builtins
- import io
-
- # Bring back the cmp() function
- builtins.cmp = lambda a, b: (a > b) - (a < b)
-
- # Make the decode_ascii utility function actually work
- from . import util
- import numpy
-
- def encode_ascii(s):
- if isinstance(s, str):
- return s.encode('ascii')
- elif isinstance(s, numpy.ndarray) and \
- issubclass(s.dtype.type, numpy.str_):
- ns = numpy.char.encode(s, 'ascii').view(type(s))
- if ns.dtype.itemsize != s.dtype.itemsize / 4:
- ns = ns.astype((numpy.bytes_, s.dtype.itemsize / 4))
- return ns
- return s
- util.encode_ascii = encode_ascii
-
- def decode_ascii(s):
- if isinstance(s, bytes):
- return s.decode('ascii')
- elif (isinstance(s, numpy.ndarray) and
- issubclass(s.dtype.type, numpy.bytes_)):
- # np.char.encode/decode annoyingly don't preserve the type of the
- # array, hence the view() call
- # It also doesn't necessarily preserve widths of the strings,
- # hence the astype()
- ns = numpy.char.decode(s, 'ascii').view(type(s))
- if ns.dtype.itemsize / 4 != s.dtype.itemsize:
- ns = ns.astype((numpy.str_, s.dtype.itemsize))
- return ns
- return s
- util.decode_ascii = decode_ascii
-
- # Replacements for b and u marks on strings
- def b(s):
- return s.encode('latin-1')
-
- def u(s):
- return s
-
- util.b = b
- util.u = u
-
- # See the docstring for astropy.io.fits.util.fileobj_open for why we need
- # to replace this function
- def fileobj_open(filename, mode):
- return open(filename, mode, buffering=0)
- util.fileobj_open = fileobj_open
-
- # Support the io.IOBase.readable/writable methods
- from .util import isreadable as _isreadable
-
- def isreadable(f):
- if hasattr(f, 'readable'):
- return f.readable()
- return _isreadable(f)
- util.isreadable = isreadable
-
- from .util import iswritable as _iswritable
-
- def iswritable(f):
- if hasattr(f, 'writable'):
- return f.writable()
- return _iswritable(f)
- util.iswritable = iswritable
-
- # isfile needs to support the higher-level wrappers around FileIO
- def isfile(f):
- if isinstance(f, io.FileIO):
- return True
- elif hasattr(f, 'buffer'):
- return isfile(f.buffer)
- elif hasattr(f, 'raw'):
- return isfile(f.raw)
- return False
- util.isfile = isfile
-
- # Here we monkey patch (yes, I know) numpy to fix a few numpy Python 3
- # bugs. The only behavior that's modified is that bugs are fixed, so that
- # should be OK.
-
- # Fix chararrays; this is necessary in numpy 1.5.1 and below--hopefully
- # should not be necessary later. See
- # http://projects.scipy.org/numpy/ticket/1817
- # TODO: Maybe do a version check on numpy for this? (Note: the fix for
- # this hasn't been accepted in Numpy yet, so a version number check would
- # not be helpful yet...)
- from . import file
-
- _chararray = numpy.char.chararray
-
- class chararray(_chararray):
- def __getitem__(self, obj):
- val = numpy.ndarray.__getitem__(self, obj)
- if isinstance(val, numpy.character):
- temp = val.rstrip()
- if numpy.char._len(temp) == 0:
- val = ''
- else:
- val = temp
- return val
- for m in [numpy.char, numpy.core.defchararray, numpy.core.records]:
- m.chararray = chararray
-
- # Fix recarrays with sub-array fields. See
- # http://projects.scipy.org/numpy/ticket/1766
- # TODO: Same as above, though the fix to this problem hasn't made it into
- # any Numpy release yet either, so we'll have to hold off on a version
- # check
- def _fix_dtype(dtype):
- """
- Numpy has a bug (in Python3 only) that causes a segfault when
- accessing the data of arrays containing nested arrays. Specifically,
- this happens if the shape of the subarray is not given as a tuple.
- See http://projects.scipy.org/numpy/ticket/1766.
- """
-
- if not hasattr(dtype, 'fields') or dtype.fields is None:
- return dtype
-
- formats = []
- offsets = []
- titles = []
- for name in dtype.names:
- field = dtype.fields[name]
- shape = field[0].shape
- if not isinstance(shape, tuple):
- shape = (shape,)
- formats.append((field[0].base, shape))
- offsets.append(field[1])
-
- # There seems to be no obvious way to extract the titles from
- # a dtype, so this just searches for duplicate fields
- title = None
- for key, dup in dtype.fields.items():
- if key != name and dup == field:
- title = key
- break
- titles.append(title)
-
- return numpy.dtype({'names': dtype.names, 'formats': formats,
- 'offsets': offsets, 'titles': titles})
-
- _recarray = numpy.recarray
-
- class recarray(_recarray):
- def __new__(subtype, shape, dtype=None, buf=None, offset=0,
- strides=None, formats=None, names=None, titles=None,
- byteorder=None, aligned=False, order='C'):
- if dtype is not None:
- dtype = _fix_dtype(dtype)
-
- if 'order' in _recarray.__new__.__code__.co_varnames:
- return _recarray.__new__(
- subtype, shape, dtype, buf, offset, strides, formats,
- names, titles, byteorder, aligned, order)
- else:
- return _recarray.__new__(
- subtype, shape, dtype, buf, offset, strides, formats,
- names, titles, byteorder, aligned)
- numpy.recarray = numpy.core.records.recarray = recarray
-
- # We also need to patch astropy.io.fits.file._File which can also be
- # affected by the #1766 bug
- old_File = file._File
-
- class _File(old_File):
- def readarray(self, size=None, offset=0, dtype=numpy.uint8,
- shape=None):
- if isinstance(dtype, numpy.dtype):
- dtype = _fix_dtype(dtype)
- return old_File.readarray(self, size, offset, dtype, shape)
- readarray.__doc__ = old_File.readarray.__doc__
- file._File = _File
-
- # Replace astropy.io.fits.util.maketrans and translate with versions that
- # work with Python 3 unicode strings
- util.maketrans = str.maketrans
-
- def translate(s, table, deletechars):
- if deletechars:
- table = table.copy()
- for c in deletechars:
- table[ord(c)] = None
- return s.translate(table)
- util.translate = translate
-else:
- # Stuff to do if not Python 3
- import string
- from . import util
- util.maketrans = string.maketrans
-
- def b(s):
- return s
-
- def u(s):
- return unicode(s, 'unicode_escape')
-
- util.b = b
- util.u = u
diff --git a/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/django_utils_encoding.py b/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/django_utils_encoding.py
deleted file mode 100644
index aa0218c..0000000
--- a/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/django_utils_encoding.py
+++ /dev/null
@@ -1,228 +0,0 @@
-from __future__ import unicode_literals
-
-import codecs
-import datetime
-from decimal import Decimal
-import locale
-try:
- from urllib.parse import quote
-except ImportError: # Python 2
- from urllib import quote
-
-from django.utils.functional import Promise
-from django.utils import six
-
-class DjangoUnicodeDecodeError(UnicodeDecodeError):
- def __init__(self, obj, *args):
- self.obj = obj
- UnicodeDecodeError.__init__(self, *args)
-
- def __str__(self):
- original = UnicodeDecodeError.__str__(self)
- return '%s. You passed in %r (%s)' % (original, self.obj,
- type(self.obj))
-
-def python_2_unicode_compatible(klass):
- """
- A decorator that defines __unicode__ and __str__ methods under Python 2.
- Under Python 3 it does nothing.
-
- To support Python 2 and 3 with a single code base, define a __str__ method
- returning text and apply this decorator to the class.
- """
- if not six.PY3:
- klass.__unicode__ = klass.__str__
- klass.__str__ = lambda self: self.__unicode__().encode('utf-8')
- return klass
-
-def smart_text(s, encoding='utf-8', strings_only=False, errors='strict'):
- """
- Returns a text object representing 's' -- unicode on Python 2 and str on
- Python 3. Treats bytestrings using the 'encoding' codec.
-
- If strings_only is True, don't convert (some) non-string-like objects.
- """
- if isinstance(s, Promise):
- # The input is the result of a gettext_lazy() call.
- return s
- return force_text(s, encoding, strings_only, errors)
-
-def is_protected_type(obj):
- """Determine if the object instance is of a protected type.
-
- Objects of protected types are preserved as-is when passed to
- force_text(strings_only=True).
- """
- return isinstance(obj, six.integer_types + (type(None), float, Decimal,
- datetime.datetime, datetime.date, datetime.time))
-
-def force_text(s, encoding='utf-8', strings_only=False, errors='strict'):
- """
- Similar to smart_text, except that lazy instances are resolved to
- strings, rather than kept as lazy objects.
-
- If strings_only is True, don't convert (some) non-string-like objects.
- """
- # Handle the common case first, saves 30-40% when s is an instance of
- # six.text_type. This function gets called often in that setting.
- if isinstance(s, six.text_type):
- return s
- if strings_only and is_protected_type(s):
- return s
- try:
- if not isinstance(s, six.string_types):
- if hasattr(s, '__unicode__'):
- s = s.__unicode__()
- else:
- if six.PY3:
- if isinstance(s, bytes):
- s = six.text_type(s, encoding, errors)
- else:
- s = six.text_type(s)
- else:
- s = six.text_type(bytes(s), encoding, errors)
- else:
- # Note: We use .decode() here, instead of six.text_type(s, encoding,
- # errors), so that if s is a SafeBytes, it ends up being a
- # SafeText at the end.
- s = s.decode(encoding, errors)
- except UnicodeDecodeError as e:
- if not isinstance(s, Exception):
- raise DjangoUnicodeDecodeError(s, *e.args)
- else:
- # If we get to here, the caller has passed in an Exception
- # subclass populated with non-ASCII bytestring data without a
- # working unicode method. Try to handle this without raising a
- # further exception by individually forcing the exception args
- # to unicode.
- s = ' '.join([force_text(arg, encoding, strings_only,
- errors) for arg in s])
- return s
-
-def smart_bytes(s, encoding='utf-8', strings_only=False, errors='strict'):
- """
- Returns a bytestring version of 's', encoded as specified in 'encoding'.
-
- If strings_only is True, don't convert (some) non-string-like objects.
- """
- if isinstance(s, Promise):
- # The input is the result of a gettext_lazy() call.
- return s
- return force_bytes(s, encoding, strings_only, errors)
-
-
-def force_bytes(s, encoding='utf-8', strings_only=False, errors='strict'):
- """
- Similar to smart_bytes, except that lazy instances are resolved to
- strings, rather than kept as lazy objects.
-
- If strings_only is True, don't convert (some) non-string-like objects.
- """
- if isinstance(s, six.memoryview):
- s = bytes(s)
- if isinstance(s, bytes):
- if encoding == 'utf-8':
- return s
- else:
- return s.decode('utf-8', errors).encode(encoding, errors)
- if strings_only and (s is None or isinstance(s, int)):
- return s
- if isinstance(s, Promise):
- return six.text_type(s).encode(encoding, errors)
- if not isinstance(s, six.string_types):
- try:
- if six.PY3:
- return six.text_type(s).encode(encoding)
- else:
- return bytes(s)
- except UnicodeEncodeError:
- if isinstance(s, Exception):
- # An Exception subclass containing non-ASCII data that doesn't
- # know how to print itself properly. We shouldn't raise a
- # further exception.
- return b' '.join([force_bytes(arg, encoding, strings_only,
- errors) for arg in s])
- return six.text_type(s).encode(encoding, errors)
- else:
- return s.encode(encoding, errors)
-
-if six.PY3:
- smart_str = smart_text
- force_str = force_text
-else:
- smart_str = smart_bytes
- force_str = force_bytes
- # backwards compatibility for Python 2
- smart_unicode = smart_text
- force_unicode = force_text
-
-smart_str.__doc__ = """\
-Apply smart_text in Python 3 and smart_bytes in Python 2.
-
-This is suitable for writing to sys.stdout (for instance).
-"""
-
-force_str.__doc__ = """\
-Apply force_text in Python 3 and force_bytes in Python 2.
-"""
-
-def iri_to_uri(iri):
- """
- Convert an Internationalized Resource Identifier (IRI) portion to a URI
- portion that is suitable for inclusion in a URL.
-
- This is the algorithm from section 3.1 of RFC 3987. However, since we are
- assuming input is either UTF-8 or unicode already, we can simplify things a
- little from the full method.
-
- Returns an ASCII string containing the encoded result.
- """
- # The list of safe characters here is constructed from the "reserved" and
- # "unreserved" characters specified in sections 2.2 and 2.3 of RFC 3986:
- # reserved = gen-delims / sub-delims
- # gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@"
- # sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
- # / "*" / "+" / "," / ";" / "="
- # unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
- # Of the unreserved characters, urllib.quote already considers all but
- # the ~ safe.
- # The % character is also added to the list of safe characters here, as the
- # end of section 3.1 of RFC 3987 specifically mentions that % must not be
- # converted.
- if iri is None:
- return iri
- return quote(force_bytes(iri), safe=b"/#%[]=:;$&()+,!?*@'~")
-
-def filepath_to_uri(path):
- """Convert a file system path to a URI portion that is suitable for
- inclusion in a URL.
-
- We are assuming input is either UTF-8 or unicode already.
-
- This method will encode certain chars that would normally be recognized as
- special chars for URIs. Note that this method does not encode the '
- character, as it is a valid character within URIs. See
- encodeURIComponent() JavaScript function for more details.
-
- Returns an ASCII string containing the encoded result.
- """
- if path is None:
- return path
- # I know about `os.sep` and `os.altsep` but I want to leave
- # some flexibility for hardcoding separators.
- return quote(force_bytes(path).replace(b"\\", b"/"), safe=b"/~!*()'")
-
-def get_system_encoding():
- """
- The encoding of the default system locale but falls back to the given
- fallback encoding if the encoding is unsupported by python or could
- not be determined. See tickets #10335 and #5846
- """
- try:
- encoding = locale.getdefaultlocale()[1] or 'ascii'
- codecs.lookup(encoding)
- except Exception:
- encoding = 'ascii'
- return encoding
-
-DEFAULT_LOCALE_ENCODING = get_system_encoding()
diff --git a/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/gevent_py3k.py b/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/gevent_py3k.py
deleted file mode 100644
index 465cb50..0000000
--- a/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/gevent_py3k.py
+++ /dev/null
@@ -1,17 +0,0 @@
-"""
-From gevent/hub.py
-"""
-PY3 = sys.version_info[0] >= 3
-
-if PY3:
- string_types = str,
- integer_types = int,
-else:
- string_types = basestring,
- integer_types = (int, long)
-
-
-if sys.version_info[0] <= 2:
- import thread
-else:
- import _thread as thread
diff --git a/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/ipython_py3compat.py b/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/ipython_py3compat.py
deleted file mode 100644
index c9fbb2c..0000000
--- a/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/ipython_py3compat.py
+++ /dev/null
@@ -1,178 +0,0 @@
-# coding: utf-8
-"""Compatibility tricks for Python 3. Mainly to do with unicode."""
-import __builtin__
-import functools
-import sys
-import re
-import types
-
-from .encoding import DEFAULT_ENCODING
-
-orig_open = open
-
-def no_code(x, encoding=None):
- return x
-
-def decode(s, encoding=None):
- encoding = encoding or DEFAULT_ENCODING
- return s.decode(encoding, "replace")
-
-def encode(u, encoding=None):
- encoding = encoding or DEFAULT_ENCODING
- return u.encode(encoding, "replace")
-
-
-def cast_unicode(s, encoding=None):
- if isinstance(s, bytes):
- return decode(s, encoding)
- return s
-
-def cast_bytes(s, encoding=None):
- if not isinstance(s, bytes):
- return encode(s, encoding)
- return s
-
-def _modify_str_or_docstring(str_change_func):
- @functools.wraps(str_change_func)
- def wrapper(func_or_str):
- if isinstance(func_or_str, basestring):
- func = None
- doc = func_or_str
- else:
- func = func_or_str
- doc = func.__doc__
-
- doc = str_change_func(doc)
-
- if func:
- func.__doc__ = doc
- return func
- return doc
- return wrapper
-
-if sys.version_info[0] >= 3:
- PY3 = True
-
- input = input
- builtin_mod_name = "builtins"
-
- str_to_unicode = no_code
- unicode_to_str = no_code
- str_to_bytes = encode
- bytes_to_str = decode
- cast_bytes_py2 = no_code
-
- def isidentifier(s, dotted=False):
- if dotted:
- return all(isidentifier(a) for a in s.split("."))
- return s.isidentifier()
-
- open = orig_open
-
- MethodType = types.MethodType
-
- def execfile(fname, glob, loc=None):
- loc = loc if (loc is not None) else glob
- exec compile(open(fname, 'rb').read(), fname, 'exec') in glob, loc
-
- # Refactor print statements in doctests.
- _print_statement_re = re.compile(r"\bprint (?P<expr>.*)$", re.MULTILINE)
- def _print_statement_sub(match):
- expr = match.groups('expr')
- return "print(%s)" % expr
-
- @_modify_str_or_docstring
- def doctest_refactor_print(doc):
- """Refactor 'print x' statements in a doctest to print(x) style. 2to3
- unfortunately doesn't pick up on our doctests.
-
- Can accept a string or a function, so it can be used as a decorator."""
- return _print_statement_re.sub(_print_statement_sub, doc)
-
- # Abstract u'abc' syntax:
- @_modify_str_or_docstring
- def u_format(s):
- """"{u}'abc'" --> "'abc'" (Python 3)
-
- Accepts a string or a function, so it can be used as a decorator."""
- return s.format(u='')
-
-else:
- PY3 = False
-
- input = raw_input
- builtin_mod_name = "__builtin__"
-
- str_to_unicode = decode
- unicode_to_str = encode
- str_to_bytes = no_code
- bytes_to_str = no_code
- cast_bytes_py2 = cast_bytes
-
- import re
- _name_re = re.compile(r"[a-zA-Z_][a-zA-Z0-9_]*$")
- def isidentifier(s, dotted=False):
- if dotted:
- return all(isidentifier(a) for a in s.split("."))
- return bool(_name_re.match(s))
-
- class open(object):
- """Wrapper providing key part of Python 3 open() interface."""
- def __init__(self, fname, mode="r", encoding="utf-8"):
- self.f = orig_open(fname, mode)
- self.enc = encoding
-
- def write(self, s):
- return self.f.write(s.encode(self.enc))
-
- def read(self, size=-1):
- return self.f.read(size).decode(self.enc)
-
- def close(self):
- return self.f.close()
-
- def __enter__(self):
- return self
-
- def __exit__(self, etype, value, traceback):
- self.f.close()
-
- def MethodType(func, instance):
- return types.MethodType(func, instance, type(instance))
-
- # don't override system execfile on 2.x:
- execfile = execfile
-
- def doctest_refactor_print(func_or_str):
- return func_or_str
-
-
- # Abstract u'abc' syntax:
- @_modify_str_or_docstring
- def u_format(s):
- """"{u}'abc'" --> "u'abc'" (Python 2)
-
- Accepts a string or a function, so it can be used as a decorator."""
- return s.format(u='u')
-
- if sys.platform == 'win32':
- def execfile(fname, glob=None, loc=None):
- loc = loc if (loc is not None) else glob
- # The rstrip() is necessary b/c trailing whitespace in files will
- # cause an IndentationError in Python 2.6 (this was fixed in 2.7,
- # but we still support 2.6). See issue 1027.
- scripttext = __builtin__.open(fname).read().rstrip() + '\n'
- # compile converts unicode filename to str assuming
- # ascii. Let's do the conversion before calling compile
- if isinstance(fname, unicode):
- filename = unicode_to_str(fname)
- else:
- filename = fname
- exec compile(scripttext, filename, 'exec') in glob, loc
- else:
- def execfile(fname, *where):
- if isinstance(fname, unicode):
- filename = fname.encode(sys.getfilesystemencoding())
- else:
- filename = fname
- __builtin__.execfile(filename, *where)
diff --git a/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/jinja2_compat.py b/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/jinja2_compat.py
deleted file mode 100644
index 1326cbc..0000000
--- a/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/jinja2_compat.py
+++ /dev/null
@@ -1,109 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- jinja2._compat
- ~~~~~~~~~~~~~~
-
- Some py2/py3 compatibility support based on a stripped down
- version of six so we don't have to depend on a specific version
- of it.
-
- :copyright: Copyright 2013 by the Jinja team, see AUTHORS.
- :license: BSD, see LICENSE for details.
-"""
-import sys
-
-PY2 = sys.version_info[0] == 2
-PYPY = hasattr(sys, 'pypy_translation_info')
-_identity = lambda x: x
-
-
-if not PY2:
- unichr = chr
- range_type = range
- text_type = str
- string_types = (str,)
-
- iterkeys = lambda d: iter(d.keys())
- itervalues = lambda d: iter(d.values())
- iteritems = lambda d: iter(d.items())
-
- import pickle
- from io import BytesIO, StringIO
- NativeStringIO = StringIO
-
- def reraise(tp, value, tb=None):
- if value.__traceback__ is not tb:
- raise value.with_traceback(tb)
- raise value
-
- ifilter = filter
- imap = map
- izip = zip
- intern = sys.intern
-
- implements_iterator = _identity
- implements_to_string = _identity
- encode_filename = _identity
- get_next = lambda x: x.__next__
-
-else:
- unichr = unichr
- text_type = unicode
- range_type = xrange
- string_types = (str, unicode)
-
- iterkeys = lambda d: d.iterkeys()
- itervalues = lambda d: d.itervalues()
- iteritems = lambda d: d.iteritems()
-
- import cPickle as pickle
- from cStringIO import StringIO as BytesIO, StringIO
- NativeStringIO = BytesIO
-
- exec('def reraise(tp, value, tb=None):\n raise tp, value, tb')
-
- from itertools import imap, izip, ifilter
- intern = intern
-
- def implements_iterator(cls):
- cls.next = cls.__next__
- del cls.__next__
- return cls
-
- def implements_to_string(cls):
- cls.__unicode__ = cls.__str__
- cls.__str__ = lambda x: x.__unicode__().encode('utf-8')
- return cls
-
- get_next = lambda x: x.next
-
- def encode_filename(filename):
- if isinstance(filename, unicode):
- return filename.encode('utf-8')
- return filename
-
-
-def with_metaclass(meta, *bases):
- # This requires a bit of explanation: the basic idea is to make a
- # dummy metaclass for one level of class instanciation that replaces
- # itself with the actual metaclass. Because of internal type checks
- # we also need to make sure that we downgrade the custom metaclass
- # for one level to something closer to type (that's why __call__ and
- # __init__ comes back from type etc.).
- #
- # This has the advantage over six.with_metaclass in that it does not
- # introduce dummy classes into the final MRO.
- class metaclass(meta):
- __call__ = type.__call__
- __init__ = type.__init__
- def __new__(cls, name, this_bases, d):
- if this_bases is None:
- return type.__new__(cls, name, (), d)
- return meta(name, bases, d)
- return metaclass('temporary_class', None, {})
-
-
-try:
- from urllib.parse import quote_from_bytes as url_quote
-except ImportError:
- from urllib import quote as url_quote
diff --git a/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/numpy_py3k.py b/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/numpy_py3k.py
deleted file mode 100644
index 0a03929..0000000
--- a/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/numpy_py3k.py
+++ /dev/null
@@ -1,71 +0,0 @@
-"""
-Python 3 compatibility tools.
-
-"""
-
-__all__ = ['bytes', 'asbytes', 'isfileobj', 'getexception', 'strchar',
- 'unicode', 'asunicode', 'asbytes_nested', 'asunicode_nested',
- 'asstr', 'open_latin1']
-
-import sys
-
-if sys.version_info[0] >= 3:
- import io
- bytes = bytes
- unicode = str
-
- def asunicode(s):
- if isinstance(s, bytes):
- return s.decode('latin1')
- return str(s)
-
- def asbytes(s):
- if isinstance(s, bytes):
- return s
- return str(s).encode('latin1')
-
- def asstr(s):
- if isinstance(s, bytes):
- return s.decode('latin1')
- return str(s)
-
- def isfileobj(f):
- return isinstance(f, (io.FileIO, io.BufferedReader))
-
- def open_latin1(filename, mode='r'):
- return open(filename, mode=mode, encoding='iso-8859-1')
-
- strchar = 'U'
-
-else:
- bytes = str
- unicode = unicode
- asbytes = str
- asstr = str
- strchar = 'S'
-
- def isfileobj(f):
- return isinstance(f, file)
-
- def asunicode(s):
- if isinstance(s, unicode):
- return s
- return str(s).decode('ascii')
-
- def open_latin1(filename, mode='r'):
- return open(filename, mode=mode)
-
-def getexception():
- return sys.exc_info()[1]
-
-def asbytes_nested(x):
- if hasattr(x, '__iter__') and not isinstance(x, (bytes, unicode)):
- return [asbytes_nested(y) for y in x]
- else:
- return asbytes(x)
-
-def asunicode_nested(x):
- if hasattr(x, '__iter__') and not isinstance(x, (bytes, unicode)):
- return [asunicode_nested(y) for y in x]
- else:
- return asunicode(x)
diff --git a/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/pandas_py3k.py b/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/pandas_py3k.py
deleted file mode 100644
index 2a8eb5a..0000000
--- a/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/pandas_py3k.py
+++ /dev/null
@@ -1,702 +0,0 @@
-"""
-compat
-======
-
-Cross-compatible functions for Python 2 and 3.
-
-Key items to import for 2/3 compatible code:
-* iterators: range(), map(), zip(), filter(), reduce()
-* lists: lrange(), lmap(), lzip(), lfilter()
-* unicode: u() [u"" is a syntax error in Python 3.0-3.2]
-* longs: long (int in Python 3)
-* callable
-* iterable method compatibility: iteritems, iterkeys, itervalues
- * Uses the original method if available, otherwise uses items, keys, values.
-* types:
- * text_type: unicode in Python 2, str in Python 3
- * binary_type: str in Python 2, bytes in Python 3
- * string_types: basestring in Python 2, str in Python 3
-* bind_method: binds functions to classes
-
-Python 2.6 compatibility:
-* OrderedDict
-* Counter
-
-Other items:
-* OrderedDefaultDict
-"""
-# pylint disable=W0611
-import functools
-import itertools
-from distutils.version import LooseVersion
-from itertools import product
-import sys
-import types
-
-PY3 = (sys.version_info[0] >= 3)
-# import iterator versions of these functions
-
-try:
- import __builtin__ as builtins
- # not writeable when instantiated with string, doesn't handle unicode well
- from cStringIO import StringIO as cStringIO
- # always writeable
- from StringIO import StringIO
- BytesIO = StringIO
- import cPickle
-except ImportError:
- import builtins
- from io import StringIO, BytesIO
- cStringIO = StringIO
- import pickle as cPickle
-
-
-if PY3:
- def isidentifier(s):
- return s.isidentifier()
-
- def str_to_bytes(s, encoding='ascii'):
- return s.encode(encoding)
-
- def bytes_to_str(b, encoding='utf-8'):
- return b.decode(encoding)
-
- # have to explicitly put builtins into the namespace
- range = range
- map = map
- zip = zip
- filter = filter
- reduce = functools.reduce
- long = int
- unichr = chr
-
- # list-producing versions of the major Python iterating functions
- def lrange(*args, **kwargs):
- return list(range(*args, **kwargs))
-
- def lzip(*args, **kwargs):
- return list(zip(*args, **kwargs))
-
- def lmap(*args, **kwargs):
- return list(map(*args, **kwargs))
-
- def lfilter(*args, **kwargs):
- return list(filter(*args, **kwargs))
-else:
- # Python 2
- import re
- _name_re = re.compile(r"[a-zA-Z_][a-zA-Z0-9_]*$")
-
- def isidentifier(s, dotted=False):
- return bool(_name_re.match(s))
-
- def str_to_bytes(s, encoding='ascii'):
- return s
-
- def bytes_to_str(b, encoding='ascii'):
- return b
-
- range = xrange
- zip = itertools.izip
- filter = itertools.ifilter
- map = itertools.imap
- reduce = reduce
- long = long
- unichr = unichr
-
- # Python 2-builtin ranges produce lists
- lrange = builtins.range
- lzip = builtins.zip
- lmap = builtins.map
- lfilter = builtins.filter
-
-
-def iteritems(obj, **kwargs):
- """replacement for six's iteritems for Python2/3 compat
- uses 'iteritems' if available and otherwise uses 'items'.
-
- Passes kwargs to method."""
- func = getattr(obj, "iteritems", None)
- if not func:
- func = obj.items
- return func(**kwargs)
-
-
-def iterkeys(obj, **kwargs):
- func = getattr(obj, "iterkeys", None)
- if not func:
- func = obj.keys
- return func(**kwargs)
-
-
-def itervalues(obj, **kwargs):
- func = getattr(obj, "itervalues", None)
- if not func:
- func = obj.values
- return func(**kwargs)
-
-
-def bind_method(cls, name, func):
- """Bind a method to class, python 2 and python 3 compatible.
-
- Parameters
- ----------
-
- cls : type
- class to receive bound method
- name : basestring
- name of method on class instance
- func : function
- function to be bound as method
-
-
- Returns
- -------
- None
- """
- # only python 2 has bound/unbound method issue
- if not PY3:
- setattr(cls, name, types.MethodType(func, None, cls))
- else:
- setattr(cls, name, func)
-# ----------------------------------------------------------------------------
-# functions largely based / taken from the six module
-
-# Much of the code in this module comes from Benjamin Peterson's six library.
-# The license for this library can be found in LICENSES/SIX and the code can be
-# found at https://bitbucket.org/gutworth/six
-
-if PY3:
- string_types = str,
- integer_types = int,
- class_types = type,
- text_type = str
- binary_type = bytes
-
- def u(s):
- return s
-else:
- string_types = basestring,
- integer_types = (int, long)
- class_types = (type, types.ClassType)
- text_type = unicode
- binary_type = str
-
- def u(s):
- return unicode(s, "unicode_escape")
-
-
-string_and_binary_types = string_types + (binary_type,)
-
-
-try:
- # callable reintroduced in later versions of Python
- callable = callable
-except NameError:
- def callable(obj):
- return any("__call__" in klass.__dict__ for klass in type(obj).__mro__)
-
-# ----------------------------------------------------------------------------
-# Python 2.6 compatibility shims
-#
-
-# OrderedDict Shim from Raymond Hettinger, python core dev
-# http://code.activestate.com/recipes/576693-ordered-dictionary-for-py24/
-# here to support versions before 2.6
-if not PY3:
- # don't need this except in 2.6
- try:
- from thread import get_ident as _get_ident
- except ImportError:
- from dummy_thread import get_ident as _get_ident
-
-try:
- from _abcoll import KeysView, ValuesView, ItemsView
-except ImportError:
- pass
-
-
-class _OrderedDict(dict):
-
- 'Dictionary that remembers insertion order'
- # An inherited dict maps keys to values.
- # The inherited dict provides __getitem__, __len__, __contains__, and get.
- # The remaining methods are order-aware.
- # Big-O running times for all methods are the same as for regular
- # dictionaries.
-
- # The internal self.__map dictionary maps keys to links in a doubly linked
- # list. The circular doubly linked list starts and ends with a sentinel
- # element. The sentinel element never gets deleted (this simplifies the
- # algorithm). Each link is stored as a list of length three: [PREV, NEXT,
- # KEY].
-
- def __init__(self, *args, **kwds):
- '''Initialize an ordered dictionary. Signature is the same as for
- regular dictionaries, but keyword arguments are not recommended
- because their insertion order is arbitrary.
-
- '''
- if len(args) > 1:
- raise TypeError('expected at most 1 arguments, got %d' % len(args))
- try:
- self.__root
- except AttributeError:
- self.__root = root = [] # sentinel node
- root[:] = [root, root, None]
- self.__map = {}
- self.__update(*args, **kwds)
-
- def __setitem__(self, key, value, dict_setitem=dict.__setitem__):
- 'od.__setitem__(i, y) <==> od[i]=y'
- # Setting a new item creates a new link which goes at the end of the
- # linked list, and the inherited dictionary is updated with the new
- # key/value pair.
- if key not in self:
- root = self.__root
- last = root[0]
- last[1] = root[0] = self.__map[key] = [last, root, key]
- dict_setitem(self, key, value)
-
- def __delitem__(self, key, dict_delitem=dict.__delitem__):
- 'od.__delitem__(y) <==> del od[y]'
- # Deleting an existing item uses self.__map to find the link which is
- # then removed by updating the links in the predecessor and successor
- # nodes.
- dict_delitem(self, key)
- link_prev, link_next, key = self.__map.pop(key)
- link_prev[1] = link_next
- link_next[0] = link_prev
-
- def __iter__(self):
- 'od.__iter__() <==> iter(od)'
- root = self.__root
- curr = root[1]
- while curr is not root:
- yield curr[2]
- curr = curr[1]
-
- def __reversed__(self):
- 'od.__reversed__() <==> reversed(od)'
- root = self.__root
- curr = root[0]
- while curr is not root:
- yield curr[2]
- curr = curr[0]
-
- def clear(self):
- 'od.clear() -> None. Remove all items from od.'
- try:
- for node in itervalues(self.__map):
- del node[:]
- root = self.__root
- root[:] = [root, root, None]
- self.__map.clear()
- except AttributeError:
- pass
- dict.clear(self)
-
- def popitem(self, last=True):
- '''od.popitem() -> (k, v), return and remove a (key, value) pair.
- Pairs are returned in LIFO order if last is true or FIFO order if
- false.
- '''
- if not self:
- raise KeyError('dictionary is empty')
- root = self.__root
- if last:
- link = root[0]
- link_prev = link[0]
- link_prev[1] = root
- root[0] = link_prev
- else:
- link = root[1]
- link_next = link[1]
- root[1] = link_next
- link_next[0] = root
- key = link[2]
- del self.__map[key]
- value = dict.pop(self, key)
- return key, value
-
- # -- the following methods do not depend on the internal structure --
-
- def keys(self):
- 'od.keys() -> list of keys in od'
- return list(self)
-
- def values(self):
- 'od.values() -> list of values in od'
- return [self[key] for key in self]
-
- def items(self):
- 'od.items() -> list of (key, value) pairs in od'
- return [(key, self[key]) for key in self]
-
- def iterkeys(self):
- 'od.iterkeys() -> an iterator over the keys in od'
- return iter(self)
-
- def itervalues(self):
- 'od.itervalues -> an iterator over the values in od'
- for k in self:
- yield self[k]
-
- def iteritems(self):
- 'od.iteritems -> an iterator over the (key, value) items in od'
- for k in self:
- yield (k, self[k])
-
- def update(*args, **kwds):
- '''od.update(E, **F) -> None. Update od from dict/iterable E and F.
-
- If E is a dict instance, does: for k in E: od[k] = E[k]
- If E has a .keys() method, does: for k in E.keys(): od[k] = E[k]
- Or if E is an iterable of items, does:for k, v in E: od[k] = v
- In either case, this is followed by: for k, v in F.items(): od[k] = v
- '''
- if len(args) > 2:
- raise TypeError('update() takes at most 2 positional '
- 'arguments (%d given)' % (len(args),))
- elif not args:
- raise TypeError('update() takes at least 1 argument (0 given)')
- self = args[0]
- # Make progressively weaker assumptions about "other"
- other = ()
- if len(args) == 2:
- other = args[1]
- if isinstance(other, dict):
- for key in other:
- self[key] = other[key]
- elif hasattr(other, 'keys'):
- for key in other.keys():
- self[key] = other[key]
- else:
- for key, value in other:
- self[key] = value
- for key, value in kwds.items():
- self[key] = value
- # let subclasses override update without breaking __init__
- __update = update
-
- __marker = object()
-
- def pop(self, key, default=__marker):
- '''od.pop(k[,d]) -> v, remove specified key and return the\
- corresponding value. If key is not found, d is returned if given,
- otherwise KeyError is raised.
- '''
- if key in self:
- result = self[key]
- del self[key]
- return result
- if default is self.__marker:
- raise KeyError(key)
- return default
-
- def setdefault(self, key, default=None):
- 'od.setdefault(k[,d]) -> od.get(k,d), also set od[k]=d if k not in od'
- if key in self:
- return self[key]
- self[key] = default
- return default
-
- def __repr__(self, _repr_running={}):
- 'od.__repr__() <==> repr(od)'
- call_key = id(self), _get_ident()
- if call_key in _repr_running:
- return '...'
- _repr_running[call_key] = 1
- try:
- if not self:
- return '%s()' % (self.__class__.__name__,)
- return '%s(%r)' % (self.__class__.__name__, list(self.items()))
- finally:
- del _repr_running[call_key]
-
- def __reduce__(self):
- 'Return state information for pickling'
- items = [[k, self[k]] for k in self]
- inst_dict = vars(self).copy()
- for k in vars(OrderedDict()):
- inst_dict.pop(k, None)
- if inst_dict:
- return (self.__class__, (items,), inst_dict)
- return self.__class__, (items,)
-
- def copy(self):
- 'od.copy() -> a shallow copy of od'
- return self.__class__(self)
-
- @classmethod
- def fromkeys(cls, iterable, value=None):
- '''OD.fromkeys(S[, v]) -> New ordered dictionary with keys from S and
- values equal to v (which defaults to None).
- '''
- d = cls()
- for key in iterable:
- d[key] = value
- return d
-
- def __eq__(self, other):
- '''od.__eq__(y) <==> od==y. Comparison to another OD is
- order-sensitive while comparison to a regular mapping is
- order-insensitive.
- '''
- if isinstance(other, OrderedDict):
- return (len(self) == len(other) and
- list(self.items()) == list(other.items()))
- return dict.__eq__(self, other)
-
- def __ne__(self, other):
- return not self == other
-
- # -- the following methods are only used in Python 2.7 --
-
- def viewkeys(self):
- "od.viewkeys() -> a set-like object providing a view on od's keys"
- return KeysView(self)
-
- def viewvalues(self):
- "od.viewvalues() -> an object providing a view on od's values"
- return ValuesView(self)
-
- def viewitems(self):
- "od.viewitems() -> a set-like object providing a view on od's items"
- return ItemsView(self)
-
-
-# {{{ http://code.activestate.com/recipes/576611/ (r11)
-
-try:
- from operator import itemgetter
- from heapq import nlargest
-except ImportError:
- pass
-
-
-class _Counter(dict):
-
- '''Dict subclass for counting hashable objects. Sometimes called a bag
- or multiset. Elements are stored as dictionary keys and their counts
- are stored as dictionary values.
-
- >>> Counter('zyzygy')
- Counter({'y': 3, 'z': 2, 'g': 1})
-
- '''
-
- def __init__(self, iterable=None, **kwds):
- '''Create a new, empty Counter object. And if given, count elements
- from an input iterable. Or, initialize the count from another mapping
- of elements to their counts.
-
- >>> c = Counter() # a new, empty counter
- >>> c = Counter('gallahad') # a new counter from an iterable
- >>> c = Counter({'a': 4, 'b': 2}) # a new counter from a mapping
- >>> c = Counter(a=4, b=2) # a new counter from keyword args
-
- '''
- self.update(iterable, **kwds)
-
- def __missing__(self, key):
- return 0
-
- def most_common(self, n=None):
- '''List the n most common elements and their counts from the most
- common to the least. If n is None, then list all element counts.
-
- >>> Counter('abracadabra').most_common(3)
- [('a', 5), ('r', 2), ('b', 2)]
-
- '''
- if n is None:
- return sorted(iteritems(self), key=itemgetter(1), reverse=True)
- return nlargest(n, iteritems(self), key=itemgetter(1))
-
- def elements(self):
- '''Iterator over elements repeating each as many times as its count.
-
- >>> c = Counter('ABCABC')
- >>> sorted(c.elements())
- ['A', 'A', 'B', 'B', 'C', 'C']
-
- If an element's count has been set to zero or is a negative number,
- elements() will ignore it.
-
- '''
- for elem, count in iteritems(self):
- for _ in range(count):
- yield elem
-
- # Override dict methods where the meaning changes for Counter objects.
-
- @classmethod
- def fromkeys(cls, iterable, v=None):
- raise NotImplementedError(
- 'Counter.fromkeys() is undefined. Use Counter(iterable) instead.')
-
- def update(self, iterable=None, **kwds):
- '''Like dict.update() but add counts instead of replacing them.
-
- Source can be an iterable, a dictionary, or another Counter instance.
-
- >>> c = Counter('which')
- >>> c.update('witch') # add elements from another iterable
- >>> d = Counter('watch')
- >>> c.update(d) # add elements from another counter
- >>> c['h'] # four 'h' in which, witch, and watch
- 4
-
- '''
- if iterable is not None:
- if hasattr(iterable, 'iteritems'):
- if self:
- self_get = self.get
- for elem, count in iteritems(iterable):
- self[elem] = self_get(elem, 0) + count
- else:
- dict.update(
- self, iterable) # fast path when counter is empty
- else:
- self_get = self.get
- for elem in iterable:
- self[elem] = self_get(elem, 0) + 1
- if kwds:
- self.update(kwds)
-
- def copy(self):
- 'Like dict.copy() but returns a Counter instance instead of a dict.'
- return Counter(self)
-
- def __delitem__(self, elem):
- '''Like dict.__delitem__() but does not raise KeyError for missing
- values.'''
- if elem in self:
- dict.__delitem__(self, elem)
-
- def __repr__(self):
- if not self:
- return '%s()' % self.__class__.__name__
- items = ', '.join(map('%r: %r'.__mod__, self.most_common()))
- return '%s({%s})' % (self.__class__.__name__, items)
-
- # Multiset-style mathematical operations discussed in:
- # Knuth TAOCP Volume II section 4.6.3 exercise 19
- # and at http://en.wikipedia.org/wiki/Multiset
- #
- # Outputs guaranteed to only include positive counts.
- #
- # To strip negative and zero counts, add-in an empty counter:
- # c += Counter()
-
- def __add__(self, other):
- '''Add counts from two counters.
-
- >>> Counter('abbb') + Counter('bcc')
- Counter({'b': 4, 'c': 2, 'a': 1})
-
-
- '''
- if not isinstance(other, Counter):
- return NotImplemented
- result = Counter()
- for elem in set(self) | set(other):
- newcount = self[elem] + other[elem]
- if newcount > 0:
- result[elem] = newcount
- return result
-
- def __sub__(self, other):
- ''' Subtract count, but keep only results with positive counts.
-
- >>> Counter('abbbc') - Counter('bccd')
- Counter({'b': 2, 'a': 1})
-
- '''
- if not isinstance(other, Counter):
- return NotImplemented
- result = Counter()
- for elem in set(self) | set(other):
- newcount = self[elem] - other[elem]
- if newcount > 0:
- result[elem] = newcount
- return result
-
- def __or__(self, other):
- '''Union is the maximum of value in either of the input counters.
-
- >>> Counter('abbb') | Counter('bcc')
- Counter({'b': 3, 'c': 2, 'a': 1})
-
- '''
- if not isinstance(other, Counter):
- return NotImplemented
- _max = max
- result = Counter()
- for elem in set(self) | set(other):
- newcount = _max(self[elem], other[elem])
- if newcount > 0:
- result[elem] = newcount
- return result
-
- def __and__(self, other):
- ''' Intersection is the minimum of corresponding counts.
-
- >>> Counter('abbb') & Counter('bcc')
- Counter({'b': 1})
-
- '''
- if not isinstance(other, Counter):
- return NotImplemented
- _min = min
- result = Counter()
- if len(self) < len(other):
- self, other = other, self
- for elem in filter(self.__contains__, other):
- newcount = _min(self[elem], other[elem])
- if newcount > 0:
- result[elem] = newcount
- return result
-
-if sys.version_info[:2] < (2, 7):
- OrderedDict = _OrderedDict
- Counter = _Counter
-else:
- from collections import OrderedDict, Counter
-
-# http://stackoverflow.com/questions/4126348
-# Thanks to @martineau at SO
-
-from dateutil import parser as _date_parser
-import dateutil
-if LooseVersion(dateutil.__version__) < '2.0':
- @functools.wraps(_date_parser.parse)
- def parse_date(timestr, *args, **kwargs):
- timestr = bytes(timestr)
- return _date_parser.parse(timestr, *args, **kwargs)
-else:
- parse_date = _date_parser.parse
-
-class OrderedDefaultdict(OrderedDict):
-
- def __init__(self, *args, **kwargs):
- newdefault = None
- newargs = ()
- if args:
- newdefault = args[0]
- if not (newdefault is None or callable(newdefault)):
- raise TypeError('first argument must be callable or None')
- newargs = args[1:]
- self.default_factory = newdefault
- super(self.__class__, self).__init__(*newargs, **kwargs)
-
- def __missing__(self, key):
- if self.default_factory is None:
- raise KeyError(key)
- self[key] = value = self.default_factory()
- return value
-
- def __reduce__(self): # optional, for pickle support
- args = self.default_factory if self.default_factory else tuple()
- return type(self), args, None, None, list(self.items())
diff --git a/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/pycrypto_py3compat.py b/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/pycrypto_py3compat.py
deleted file mode 100644
index 34e5224..0000000
--- a/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/pycrypto_py3compat.py
+++ /dev/null
@@ -1,107 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# Util/py3compat.py : Compatibility code for handling Py3k / Python 2.x
-#
-# Written in 2010 by Thorsten Behrens
-#
-# ===================================================================
-# The contents of this file are dedicated to the public domain. To
-# the extent that dedication to the public domain is not available,
-# everyone is granted a worldwide, perpetual, royalty-free,
-# non-exclusive license to exercise all rights associated with the
-# contents of this file for any purpose whatsoever.
-# No rights are reserved.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
-# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-# ===================================================================
-
-"""Compatibility code for handling string/bytes changes from Python 2.x to Py3k
-
-In Python 2.x, strings (of type ''str'') contain binary data, including encoded
-Unicode text (e.g. UTF-8). The separate type ''unicode'' holds Unicode text.
-Unicode literals are specified via the u'...' prefix. Indexing or slicing
-either type always produces a string of the same type as the original.
-Data read from a file is always of '''str'' type.
-
-In Python 3.x, strings (type ''str'') may only contain Unicode text. The u'...'
-prefix and the ''unicode'' type are now redundant. A new type (called
-''bytes'') has to be used for binary data (including any particular
-''encoding'' of a string). The b'...' prefix allows one to specify a binary
-literal. Indexing or slicing a string produces another string. Slicing a byte
-string produces another byte string, but the indexing operation produces an
-integer. Data read from a file is of '''str'' type if the file was opened in
-text mode, or of ''bytes'' type otherwise.
-
-Since PyCrypto aims at supporting both Python 2.x and 3.x, the following helper
-functions are used to keep the rest of the library as independent as possible
-from the actual Python version.
-
-In general, the code should always deal with binary strings, and use integers
-instead of 1-byte character strings.
-
-b(s)
- Take a text string literal (with no prefix or with u'...' prefix) and
- make a byte string.
-bchr(c)
- Take an integer and make a 1-character byte string.
-bord(c)
- Take the result of indexing on a byte string and make an integer.
-tobytes(s)
- Take a text string, a byte string, or a sequence of character taken from
- a byte string and make a byte string.
-"""
-
-__revision__ = "$Id$"
-
-import sys
-
-if sys.version_info[0] == 2:
- def b(s):
- return s
- def bchr(s):
- return chr(s)
- def bstr(s):
- return str(s)
- def bord(s):
- return ord(s)
- if sys.version_info[1] == 1:
- def tobytes(s):
- try:
- return s.encode('latin-1')
- except:
- return ''.join(s)
- else:
- def tobytes(s):
- if isinstance(s, unicode):
- return s.encode("latin-1")
- else:
- return ''.join(s)
-else:
- def b(s):
- return s.encode("latin-1") # utf-8 would cause some side-effects we don't want
- def bchr(s):
- return bytes([s])
- def bstr(s):
- if isinstance(s,str):
- return bytes(s,"latin-1")
- else:
- return bytes(s)
- def bord(s):
- return s
- def tobytes(s):
- if isinstance(s,bytes):
- return s
- else:
- if isinstance(s,str):
- return s.encode("latin-1")
- else:
- return bytes(s)
-
-# vim:set ts=4 sw=4 sts=4 expandtab:
diff --git a/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/statsmodels_py3k.py b/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/statsmodels_py3k.py
deleted file mode 100644
index aab8807..0000000
--- a/FOSS/Python/Dependencies/future-0.18.2/docs/3rd-party-py3k-compat-code/statsmodels_py3k.py
+++ /dev/null
@@ -1,69 +0,0 @@
-"""
-Python 3 compatibility tools.
-
-"""
-
-__all__ = ['bytes', 'asbytes', 'isfileobj', 'getexception', 'strchar',
- 'unicode', 'asunicode', 'asbytes_nested', 'asunicode_nested',
- 'asstr', 'open_latin1']
-
-import sys
-
-if sys.version_info[0] >= 3:
- import io
- bytes = bytes
- unicode = str
- asunicode = str
- def asbytes(s):
- if isinstance(s, bytes):
- return s
- return s.encode('latin1')
- def asstr(s):
- if isinstance(s, str):
- return s
- return s.decode('latin1')
- def asstr2(s): #added JP, not in numpy version
- if isinstance(s, str):
- return s
- elif isinstance(s, bytes):
- return s.decode('latin1')
- else:
- return str(s)
- def isfileobj(f):
- return isinstance(f, io.FileIO)
- def open_latin1(filename, mode='r'):
- return open(filename, mode=mode, encoding='iso-8859-1')
- strchar = 'U'
- from io import BytesIO, StringIO #statsmodels
-else:
- bytes = str
- unicode = unicode
- asbytes = str
- asstr = str
- asstr2 = str
- strchar = 'S'
- def isfileobj(f):
- return isinstance(f, file)
- def asunicode(s):
- if isinstance(s, unicode):
- return s
- return s.decode('ascii')
- def open_latin1(filename, mode='r'):
- return open(filename, mode=mode)
- from StringIO import StringIO
- BytesIO = StringIO
-
-def getexception():
- return sys.exc_info()[1]
-
-def asbytes_nested(x):
- if hasattr(x, '__iter__') and not isinstance(x, (bytes, unicode)):
- return [asbytes_nested(y) for y in x]
- else:
- return asbytes(x)
-
-def asunicode_nested(x):
- if hasattr(x, '__iter__') and not isinstance(x, (bytes, unicode)):
- return [asunicode_nested(y) for y in x]
- else:
- return asunicode(x)