Full Code of nwcell/psycopg2-windows for AI

master 569884428600 cached
5759 files
76.3 MB
20.3M tokens
83552 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (81,293K chars total). Download the full file to get everything.
Repository: nwcell/psycopg2-windows
Branch: master
Commit: 569884428600
Files: 5759
Total size: 76.3 MB

Directory structure:
gitextract_wdv7kkpc/

├── .gitignore
├── README.md
├── psycopg2/
│   ├── __init__.py
│   ├── _json.py
│   ├── _psycopg.pyd
│   ├── _range.py
│   ├── errorcodes.py
│   ├── extensions.py
│   ├── extras.py
│   ├── pool.py
│   ├── psycopg1.py
│   ├── tests/
│   │   ├── __init__.py
│   │   ├── dbapi20.py
│   │   ├── dbapi20_tpc.py
│   │   ├── test_async.py
│   │   ├── test_bugX000.py
│   │   ├── test_bug_gc.py
│   │   ├── test_cancel.py
│   │   ├── test_connection.py
│   │   ├── test_copy.py
│   │   ├── test_cursor.py
│   │   ├── test_dates.py
│   │   ├── test_extras_dictcursor.py
│   │   ├── test_green.py
│   │   ├── test_lobject.py
│   │   ├── test_module.py
│   │   ├── test_notify.py
│   │   ├── test_psycopg2_dbapi20.py
│   │   ├── test_quote.py
│   │   ├── test_transaction.py
│   │   ├── test_types_basic.py
│   │   ├── test_types_extras.py
│   │   ├── test_with.py
│   │   ├── testconfig.py
│   │   └── testutils.py
│   └── tz.py
├── setup.py
├── src/
│   └── psycopg2-2.5.2-py2.7.egg-info
└── tests/
    ├── pythons/
    │   ├── win32-py27/
    │   │   ├── DLLs/
    │   │   │   ├── _bsddb.pyd
    │   │   │   ├── _ctypes.pyd
    │   │   │   ├── _ctypes_test.pyd
    │   │   │   ├── _elementtree.pyd
    │   │   │   ├── _hashlib.pyd
    │   │   │   ├── _msi.pyd
    │   │   │   ├── _multiprocessing.pyd
    │   │   │   ├── _socket.pyd
    │   │   │   ├── _sqlite3.pyd
    │   │   │   ├── _ssl.pyd
    │   │   │   ├── _testcapi.pyd
    │   │   │   ├── bz2.pyd
    │   │   │   ├── pyexpat.pyd
    │   │   │   ├── select.pyd
    │   │   │   ├── unicodedata.pyd
    │   │   │   └── winsound.pyd
    │   │   ├── LICENSE.txt
    │   │   ├── Lib/
    │   │   │   ├── BaseHTTPServer.py
    │   │   │   ├── Bastion.py
    │   │   │   ├── CGIHTTPServer.py
    │   │   │   ├── ConfigParser.py
    │   │   │   ├── Cookie.py
    │   │   │   ├── DocXMLRPCServer.py
    │   │   │   ├── HTMLParser.py
    │   │   │   ├── MimeWriter.py
    │   │   │   ├── Queue.py
    │   │   │   ├── SimpleHTTPServer.py
    │   │   │   ├── SimpleXMLRPCServer.py
    │   │   │   ├── SocketServer.py
    │   │   │   ├── StringIO.py
    │   │   │   ├── UserDict.py
    │   │   │   ├── UserList.py
    │   │   │   ├── UserString.py
    │   │   │   ├── _LWPCookieJar.py
    │   │   │   ├── _MozillaCookieJar.py
    │   │   │   ├── __future__.py
    │   │   │   ├── __phello__.foo.py
    │   │   │   ├── _abcoll.py
    │   │   │   ├── _osx_support.py
    │   │   │   ├── _pyio.py
    │   │   │   ├── _strptime.py
    │   │   │   ├── _threading_local.py
    │   │   │   ├── _weakrefset.py
    │   │   │   ├── abc.py
    │   │   │   ├── aifc.py
    │   │   │   ├── antigravity.py
    │   │   │   ├── anydbm.py
    │   │   │   ├── argparse.py
    │   │   │   ├── ast.py
    │   │   │   ├── asynchat.py
    │   │   │   ├── asyncore.py
    │   │   │   ├── atexit.py
    │   │   │   ├── audiodev.py
    │   │   │   ├── base64.py
    │   │   │   ├── bdb.py
    │   │   │   ├── binhex.py
    │   │   │   ├── bisect.py
    │   │   │   ├── bsddb/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── db.py
    │   │   │   │   ├── dbobj.py
    │   │   │   │   ├── dbrecio.py
    │   │   │   │   ├── dbshelve.py
    │   │   │   │   ├── dbtables.py
    │   │   │   │   └── dbutils.py
    │   │   │   ├── cProfile.py
    │   │   │   ├── calendar.py
    │   │   │   ├── cgi.py
    │   │   │   ├── cgitb.py
    │   │   │   ├── chunk.py
    │   │   │   ├── cmd.py
    │   │   │   ├── code.py
    │   │   │   ├── codecs.py
    │   │   │   ├── codeop.py
    │   │   │   ├── collections.py
    │   │   │   ├── colorsys.py
    │   │   │   ├── commands.py
    │   │   │   ├── compileall.py
    │   │   │   ├── compiler/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── ast.py
    │   │   │   │   ├── consts.py
    │   │   │   │   ├── future.py
    │   │   │   │   ├── misc.py
    │   │   │   │   ├── pyassem.py
    │   │   │   │   ├── pycodegen.py
    │   │   │   │   ├── symbols.py
    │   │   │   │   ├── syntax.py
    │   │   │   │   ├── transformer.py
    │   │   │   │   └── visitor.py
    │   │   │   ├── contextlib.py
    │   │   │   ├── cookielib.py
    │   │   │   ├── copy.py
    │   │   │   ├── copy_reg.py
    │   │   │   ├── csv.py
    │   │   │   ├── ctypes/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _endian.py
    │   │   │   │   ├── macholib/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── dyld.py
    │   │   │   │   │   ├── dylib.py
    │   │   │   │   │   └── framework.py
    │   │   │   │   ├── util.py
    │   │   │   │   └── wintypes.py
    │   │   │   ├── curses/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── ascii.py
    │   │   │   │   ├── has_key.py
    │   │   │   │   ├── panel.py
    │   │   │   │   ├── textpad.py
    │   │   │   │   └── wrapper.py
    │   │   │   ├── dbhash.py
    │   │   │   ├── decimal.py
    │   │   │   ├── difflib.py
    │   │   │   ├── dircache.py
    │   │   │   ├── dis.py
    │   │   │   ├── distutils/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── archive_util.py
    │   │   │   │   ├── bcppcompiler.py
    │   │   │   │   ├── ccompiler.py
    │   │   │   │   ├── cmd.py
    │   │   │   │   ├── command/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── bdist.py
    │   │   │   │   │   ├── bdist_dumb.py
    │   │   │   │   │   ├── bdist_msi.py
    │   │   │   │   │   ├── bdist_rpm.py
    │   │   │   │   │   ├── bdist_wininst.py
    │   │   │   │   │   ├── build.py
    │   │   │   │   │   ├── build_clib.py
    │   │   │   │   │   ├── build_ext.py
    │   │   │   │   │   ├── build_py.py
    │   │   │   │   │   ├── build_scripts.py
    │   │   │   │   │   ├── check.py
    │   │   │   │   │   ├── clean.py
    │   │   │   │   │   ├── config.py
    │   │   │   │   │   ├── install.py
    │   │   │   │   │   ├── install_data.py
    │   │   │   │   │   ├── install_egg_info.py
    │   │   │   │   │   ├── install_headers.py
    │   │   │   │   │   ├── install_lib.py
    │   │   │   │   │   ├── install_scripts.py
    │   │   │   │   │   ├── register.py
    │   │   │   │   │   ├── sdist.py
    │   │   │   │   │   └── upload.py
    │   │   │   │   ├── config.py
    │   │   │   │   ├── core.py
    │   │   │   │   ├── cygwinccompiler.py
    │   │   │   │   ├── debug.py
    │   │   │   │   ├── dep_util.py
    │   │   │   │   ├── dir_util.py
    │   │   │   │   ├── dist.py
    │   │   │   │   ├── emxccompiler.py
    │   │   │   │   ├── errors.py
    │   │   │   │   ├── extension.py
    │   │   │   │   ├── fancy_getopt.py
    │   │   │   │   ├── file_util.py
    │   │   │   │   ├── filelist.py
    │   │   │   │   ├── log.py
    │   │   │   │   ├── msvc9compiler.py
    │   │   │   │   ├── msvccompiler.py
    │   │   │   │   ├── spawn.py
    │   │   │   │   ├── sysconfig.py
    │   │   │   │   ├── text_file.py
    │   │   │   │   ├── unixccompiler.py
    │   │   │   │   ├── util.py
    │   │   │   │   ├── version.py
    │   │   │   │   └── versionpredicate.py
    │   │   │   ├── doctest.py
    │   │   │   ├── dumbdbm.py
    │   │   │   ├── dummy_thread.py
    │   │   │   ├── dummy_threading.py
    │   │   │   ├── email/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _parseaddr.py
    │   │   │   │   ├── base64mime.py
    │   │   │   │   ├── charset.py
    │   │   │   │   ├── encoders.py
    │   │   │   │   ├── errors.py
    │   │   │   │   ├── feedparser.py
    │   │   │   │   ├── generator.py
    │   │   │   │   ├── header.py
    │   │   │   │   ├── iterators.py
    │   │   │   │   ├── message.py
    │   │   │   │   ├── mime/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── application.py
    │   │   │   │   │   ├── audio.py
    │   │   │   │   │   ├── base.py
    │   │   │   │   │   ├── image.py
    │   │   │   │   │   ├── message.py
    │   │   │   │   │   ├── multipart.py
    │   │   │   │   │   ├── nonmultipart.py
    │   │   │   │   │   └── text.py
    │   │   │   │   ├── parser.py
    │   │   │   │   ├── quoprimime.py
    │   │   │   │   └── utils.py
    │   │   │   ├── encodings/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── aliases.py
    │   │   │   │   ├── ascii.py
    │   │   │   │   ├── base64_codec.py
    │   │   │   │   ├── big5.py
    │   │   │   │   ├── big5hkscs.py
    │   │   │   │   ├── bz2_codec.py
    │   │   │   │   ├── charmap.py
    │   │   │   │   ├── cp037.py
    │   │   │   │   ├── cp1006.py
    │   │   │   │   ├── cp1026.py
    │   │   │   │   ├── cp1140.py
    │   │   │   │   ├── cp1250.py
    │   │   │   │   ├── cp1251.py
    │   │   │   │   ├── cp1252.py
    │   │   │   │   ├── cp1253.py
    │   │   │   │   ├── cp1254.py
    │   │   │   │   ├── cp1255.py
    │   │   │   │   ├── cp1256.py
    │   │   │   │   ├── cp1257.py
    │   │   │   │   ├── cp1258.py
    │   │   │   │   ├── cp424.py
    │   │   │   │   ├── cp437.py
    │   │   │   │   ├── cp500.py
    │   │   │   │   ├── cp720.py
    │   │   │   │   ├── cp737.py
    │   │   │   │   ├── cp775.py
    │   │   │   │   ├── cp850.py
    │   │   │   │   ├── cp852.py
    │   │   │   │   ├── cp855.py
    │   │   │   │   ├── cp856.py
    │   │   │   │   ├── cp857.py
    │   │   │   │   ├── cp858.py
    │   │   │   │   ├── cp860.py
    │   │   │   │   ├── cp861.py
    │   │   │   │   ├── cp862.py
    │   │   │   │   ├── cp863.py
    │   │   │   │   ├── cp864.py
    │   │   │   │   ├── cp865.py
    │   │   │   │   ├── cp866.py
    │   │   │   │   ├── cp869.py
    │   │   │   │   ├── cp874.py
    │   │   │   │   ├── cp875.py
    │   │   │   │   ├── cp932.py
    │   │   │   │   ├── cp949.py
    │   │   │   │   ├── cp950.py
    │   │   │   │   ├── euc_jis_2004.py
    │   │   │   │   ├── euc_jisx0213.py
    │   │   │   │   ├── euc_jp.py
    │   │   │   │   ├── euc_kr.py
    │   │   │   │   ├── gb18030.py
    │   │   │   │   ├── gb2312.py
    │   │   │   │   ├── gbk.py
    │   │   │   │   ├── hex_codec.py
    │   │   │   │   ├── hp_roman8.py
    │   │   │   │   ├── hz.py
    │   │   │   │   ├── idna.py
    │   │   │   │   ├── iso2022_jp.py
    │   │   │   │   ├── iso2022_jp_1.py
    │   │   │   │   ├── iso2022_jp_2.py
    │   │   │   │   ├── iso2022_jp_2004.py
    │   │   │   │   ├── iso2022_jp_3.py
    │   │   │   │   ├── iso2022_jp_ext.py
    │   │   │   │   ├── iso2022_kr.py
    │   │   │   │   ├── iso8859_1.py
    │   │   │   │   ├── iso8859_10.py
    │   │   │   │   ├── iso8859_11.py
    │   │   │   │   ├── iso8859_13.py
    │   │   │   │   ├── iso8859_14.py
    │   │   │   │   ├── iso8859_15.py
    │   │   │   │   ├── iso8859_16.py
    │   │   │   │   ├── iso8859_2.py
    │   │   │   │   ├── iso8859_3.py
    │   │   │   │   ├── iso8859_4.py
    │   │   │   │   ├── iso8859_5.py
    │   │   │   │   ├── iso8859_6.py
    │   │   │   │   ├── iso8859_7.py
    │   │   │   │   ├── iso8859_8.py
    │   │   │   │   ├── iso8859_9.py
    │   │   │   │   ├── johab.py
    │   │   │   │   ├── koi8_r.py
    │   │   │   │   ├── koi8_u.py
    │   │   │   │   ├── latin_1.py
    │   │   │   │   ├── mac_arabic.py
    │   │   │   │   ├── mac_centeuro.py
    │   │   │   │   ├── mac_croatian.py
    │   │   │   │   ├── mac_cyrillic.py
    │   │   │   │   ├── mac_farsi.py
    │   │   │   │   ├── mac_greek.py
    │   │   │   │   ├── mac_iceland.py
    │   │   │   │   ├── mac_latin2.py
    │   │   │   │   ├── mac_roman.py
    │   │   │   │   ├── mac_romanian.py
    │   │   │   │   ├── mac_turkish.py
    │   │   │   │   ├── mbcs.py
    │   │   │   │   ├── palmos.py
    │   │   │   │   ├── ptcp154.py
    │   │   │   │   ├── punycode.py
    │   │   │   │   ├── quopri_codec.py
    │   │   │   │   ├── raw_unicode_escape.py
    │   │   │   │   ├── rot_13.py
    │   │   │   │   ├── shift_jis.py
    │   │   │   │   ├── shift_jis_2004.py
    │   │   │   │   ├── shift_jisx0213.py
    │   │   │   │   ├── string_escape.py
    │   │   │   │   ├── tis_620.py
    │   │   │   │   ├── undefined.py
    │   │   │   │   ├── unicode_escape.py
    │   │   │   │   ├── unicode_internal.py
    │   │   │   │   ├── utf_16.py
    │   │   │   │   ├── utf_16_be.py
    │   │   │   │   ├── utf_16_le.py
    │   │   │   │   ├── utf_32.py
    │   │   │   │   ├── utf_32_be.py
    │   │   │   │   ├── utf_32_le.py
    │   │   │   │   ├── utf_7.py
    │   │   │   │   ├── utf_8.py
    │   │   │   │   ├── utf_8_sig.py
    │   │   │   │   ├── uu_codec.py
    │   │   │   │   └── zlib_codec.py
    │   │   │   ├── filecmp.py
    │   │   │   ├── fileinput.py
    │   │   │   ├── fnmatch.py
    │   │   │   ├── formatter.py
    │   │   │   ├── fpformat.py
    │   │   │   ├── fractions.py
    │   │   │   ├── ftplib.py
    │   │   │   ├── functools.py
    │   │   │   ├── genericpath.py
    │   │   │   ├── getopt.py
    │   │   │   ├── getpass.py
    │   │   │   ├── gettext.py
    │   │   │   ├── glob.py
    │   │   │   ├── gzip.py
    │   │   │   ├── hashlib.py
    │   │   │   ├── heapq.py
    │   │   │   ├── hmac.py
    │   │   │   ├── hotshot/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── log.py
    │   │   │   │   ├── stats.py
    │   │   │   │   └── stones.py
    │   │   │   ├── htmlentitydefs.py
    │   │   │   ├── htmllib.py
    │   │   │   ├── httplib.py
    │   │   │   ├── idlelib/
    │   │   │   │   └── idle_test/
    │   │   │   │       ├── README.txt
    │   │   │   │       ├── __init__.py
    │   │   │   │       ├── mock_idle.py
    │   │   │   │       ├── mock_tk.py
    │   │   │   │       ├── test_calltips.py
    │   │   │   │       ├── test_config_name.py
    │   │   │   │       ├── test_delegator.py
    │   │   │   │       ├── test_formatparagraph.py
    │   │   │   │       ├── test_grep.py
    │   │   │   │       ├── test_idlehistory.py
    │   │   │   │       ├── test_pathbrowser.py
    │   │   │   │       ├── test_rstrip.py
    │   │   │   │       ├── test_searchengine.py
    │   │   │   │       ├── test_text.py
    │   │   │   │       └── test_warning.py
    │   │   │   ├── ihooks.py
    │   │   │   ├── imaplib.py
    │   │   │   ├── imghdr.py
    │   │   │   ├── importlib/
    │   │   │   │   └── __init__.py
    │   │   │   ├── imputil.py
    │   │   │   ├── inspect.py
    │   │   │   ├── io.py
    │   │   │   ├── json/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── decoder.py
    │   │   │   │   ├── encoder.py
    │   │   │   │   ├── scanner.py
    │   │   │   │   └── tool.py
    │   │   │   ├── keyword.py
    │   │   │   ├── lib-tk/
    │   │   │   │   └── test/
    │   │   │   │       ├── test_tkinter/
    │   │   │   │       │   ├── __init__.py
    │   │   │   │       │   ├── test_loadtk.py
    │   │   │   │       │   └── test_text.py
    │   │   │   │       └── test_ttk/
    │   │   │   │           ├── __init__.py
    │   │   │   │           ├── support.py
    │   │   │   │           ├── test_extensions.py
    │   │   │   │           ├── test_functions.py
    │   │   │   │           ├── test_style.py
    │   │   │   │           └── test_widgets.py
    │   │   │   ├── lib2to3/
    │   │   │   │   ├── Grammar.txt
    │   │   │   │   ├── PatternGrammar.txt
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── __main__.py
    │   │   │   │   ├── btm_matcher.py
    │   │   │   │   ├── btm_utils.py
    │   │   │   │   ├── fixer_base.py
    │   │   │   │   ├── fixer_util.py
    │   │   │   │   ├── fixes/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── fix_apply.py
    │   │   │   │   │   ├── fix_basestring.py
    │   │   │   │   │   ├── fix_buffer.py
    │   │   │   │   │   ├── fix_callable.py
    │   │   │   │   │   ├── fix_dict.py
    │   │   │   │   │   ├── fix_except.py
    │   │   │   │   │   ├── fix_exec.py
    │   │   │   │   │   ├── fix_execfile.py
    │   │   │   │   │   ├── fix_exitfunc.py
    │   │   │   │   │   ├── fix_filter.py
    │   │   │   │   │   ├── fix_funcattrs.py
    │   │   │   │   │   ├── fix_future.py
    │   │   │   │   │   ├── fix_getcwdu.py
    │   │   │   │   │   ├── fix_has_key.py
    │   │   │   │   │   ├── fix_idioms.py
    │   │   │   │   │   ├── fix_import.py
    │   │   │   │   │   ├── fix_imports.py
    │   │   │   │   │   ├── fix_imports2.py
    │   │   │   │   │   ├── fix_input.py
    │   │   │   │   │   ├── fix_intern.py
    │   │   │   │   │   ├── fix_isinstance.py
    │   │   │   │   │   ├── fix_itertools.py
    │   │   │   │   │   ├── fix_itertools_imports.py
    │   │   │   │   │   ├── fix_long.py
    │   │   │   │   │   ├── fix_map.py
    │   │   │   │   │   ├── fix_metaclass.py
    │   │   │   │   │   ├── fix_methodattrs.py
    │   │   │   │   │   ├── fix_ne.py
    │   │   │   │   │   ├── fix_next.py
    │   │   │   │   │   ├── fix_nonzero.py
    │   │   │   │   │   ├── fix_numliterals.py
    │   │   │   │   │   ├── fix_operator.py
    │   │   │   │   │   ├── fix_paren.py
    │   │   │   │   │   ├── fix_print.py
    │   │   │   │   │   ├── fix_raise.py
    │   │   │   │   │   ├── fix_raw_input.py
    │   │   │   │   │   ├── fix_reduce.py
    │   │   │   │   │   ├── fix_renames.py
    │   │   │   │   │   ├── fix_repr.py
    │   │   │   │   │   ├── fix_set_literal.py
    │   │   │   │   │   ├── fix_standarderror.py
    │   │   │   │   │   ├── fix_sys_exc.py
    │   │   │   │   │   ├── fix_throw.py
    │   │   │   │   │   ├── fix_tuple_params.py
    │   │   │   │   │   ├── fix_types.py
    │   │   │   │   │   ├── fix_unicode.py
    │   │   │   │   │   ├── fix_urllib.py
    │   │   │   │   │   ├── fix_ws_comma.py
    │   │   │   │   │   ├── fix_xrange.py
    │   │   │   │   │   ├── fix_xreadlines.py
    │   │   │   │   │   └── fix_zip.py
    │   │   │   │   ├── main.py
    │   │   │   │   ├── patcomp.py
    │   │   │   │   ├── pgen2/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── conv.py
    │   │   │   │   │   ├── driver.py
    │   │   │   │   │   ├── grammar.py
    │   │   │   │   │   ├── literals.py
    │   │   │   │   │   ├── parse.py
    │   │   │   │   │   ├── pgen.py
    │   │   │   │   │   ├── token.py
    │   │   │   │   │   └── tokenize.py
    │   │   │   │   ├── pygram.py
    │   │   │   │   ├── pytree.py
    │   │   │   │   ├── refactor.py
    │   │   │   │   └── tests/
    │   │   │   │       └── data/
    │   │   │   │           └── fixers/
    │   │   │   │               ├── bad_order.py
    │   │   │   │               ├── myfixes/
    │   │   │   │               │   ├── __init__.py
    │   │   │   │               │   ├── fix_explicit.py
    │   │   │   │               │   ├── fix_first.py
    │   │   │   │               │   ├── fix_last.py
    │   │   │   │               │   ├── fix_parrot.py
    │   │   │   │               │   └── fix_preorder.py
    │   │   │   │               ├── no_fixer_cls.py
    │   │   │   │               └── parrot_example.py
    │   │   │   ├── linecache.py
    │   │   │   ├── locale.py
    │   │   │   ├── logging/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── config.py
    │   │   │   │   └── handlers.py
    │   │   │   ├── macpath.py
    │   │   │   ├── macurl2path.py
    │   │   │   ├── mailbox.py
    │   │   │   ├── mailcap.py
    │   │   │   ├── markupbase.py
    │   │   │   ├── md5.py
    │   │   │   ├── mhlib.py
    │   │   │   ├── mimetools.py
    │   │   │   ├── mimetypes.py
    │   │   │   ├── mimify.py
    │   │   │   ├── modulefinder.py
    │   │   │   ├── msilib/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── schema.py
    │   │   │   │   ├── sequence.py
    │   │   │   │   └── text.py
    │   │   │   ├── multifile.py
    │   │   │   ├── multiprocessing/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── connection.py
    │   │   │   │   ├── dummy/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── connection.py
    │   │   │   │   ├── forking.py
    │   │   │   │   ├── heap.py
    │   │   │   │   ├── managers.py
    │   │   │   │   ├── pool.py
    │   │   │   │   ├── process.py
    │   │   │   │   ├── queues.py
    │   │   │   │   ├── reduction.py
    │   │   │   │   ├── sharedctypes.py
    │   │   │   │   ├── synchronize.py
    │   │   │   │   └── util.py
    │   │   │   ├── mutex.py
    │   │   │   ├── netrc.py
    │   │   │   ├── new.py
    │   │   │   ├── nntplib.py
    │   │   │   ├── ntpath.py
    │   │   │   ├── nturl2path.py
    │   │   │   ├── numbers.py
    │   │   │   ├── opcode.py
    │   │   │   ├── optparse.py
    │   │   │   ├── os.py
    │   │   │   ├── os2emxpath.py
    │   │   │   ├── pdb.py
    │   │   │   ├── pickle.py
    │   │   │   ├── pickletools.py
    │   │   │   ├── pipes.py
    │   │   │   ├── pkgutil.py
    │   │   │   ├── platform.py
    │   │   │   ├── plistlib.py
    │   │   │   ├── popen2.py
    │   │   │   ├── poplib.py
    │   │   │   ├── posixfile.py
    │   │   │   ├── posixpath.py
    │   │   │   ├── pprint.py
    │   │   │   ├── profile.py
    │   │   │   ├── pstats.py
    │   │   │   ├── pty.py
    │   │   │   ├── py_compile.py
    │   │   │   ├── pyclbr.py
    │   │   │   ├── pydoc.py
    │   │   │   ├── pydoc_data/
    │   │   │   │   ├── __init__.py
    │   │   │   │   └── topics.py
    │   │   │   ├── quopri.py
    │   │   │   ├── random.py
    │   │   │   ├── re.py
    │   │   │   ├── repr.py
    │   │   │   ├── rexec.py
    │   │   │   ├── rfc822.py
    │   │   │   ├── rlcompleter.py
    │   │   │   ├── robotparser.py
    │   │   │   ├── runpy.py
    │   │   │   ├── sched.py
    │   │   │   ├── sets.py
    │   │   │   ├── sgmllib.py
    │   │   │   ├── sha.py
    │   │   │   ├── shelve.py
    │   │   │   ├── shlex.py
    │   │   │   ├── shutil.py
    │   │   │   ├── site-packages/
    │   │   │   │   ├── README.txt
    │   │   │   │   ├── _markerlib/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── markers.py
    │   │   │   │   ├── easy_install.py
    │   │   │   │   ├── pip/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── __main__.py
    │   │   │   │   │   ├── _vendor/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── _markerlib/
    │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   └── markers.py
    │   │   │   │   │   │   ├── colorama/
    │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   ├── ansi.py
    │   │   │   │   │   │   │   ├── ansitowin32.py
    │   │   │   │   │   │   │   ├── initialise.py
    │   │   │   │   │   │   │   ├── win32.py
    │   │   │   │   │   │   │   └── winterm.py
    │   │   │   │   │   │   ├── distlib/
    │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   ├── _backport/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   ├── misc.py
    │   │   │   │   │   │   │   │   ├── shutil.py
    │   │   │   │   │   │   │   │   ├── sysconfig.cfg
    │   │   │   │   │   │   │   │   ├── sysconfig.py
    │   │   │   │   │   │   │   │   └── tarfile.py
    │   │   │   │   │   │   │   ├── compat.py
    │   │   │   │   │   │   │   ├── database.py
    │   │   │   │   │   │   │   ├── index.py
    │   │   │   │   │   │   │   ├── locators.py
    │   │   │   │   │   │   │   ├── manifest.py
    │   │   │   │   │   │   │   ├── markers.py
    │   │   │   │   │   │   │   ├── metadata.py
    │   │   │   │   │   │   │   ├── resources.py
    │   │   │   │   │   │   │   ├── scripts.py
    │   │   │   │   │   │   │   ├── util.py
    │   │   │   │   │   │   │   ├── version.py
    │   │   │   │   │   │   │   └── wheel.py
    │   │   │   │   │   │   ├── html5lib/
    │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   ├── constants.py
    │   │   │   │   │   │   │   ├── filters/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   ├── _base.py
    │   │   │   │   │   │   │   │   ├── alphabeticalattributes.py
    │   │   │   │   │   │   │   │   ├── inject_meta_charset.py
    │   │   │   │   │   │   │   │   ├── lint.py
    │   │   │   │   │   │   │   │   ├── optionaltags.py
    │   │   │   │   │   │   │   │   ├── sanitizer.py
    │   │   │   │   │   │   │   │   └── whitespace.py
    │   │   │   │   │   │   │   ├── html5parser.py
    │   │   │   │   │   │   │   ├── ihatexml.py
    │   │   │   │   │   │   │   ├── inputstream.py
    │   │   │   │   │   │   │   ├── sanitizer.py
    │   │   │   │   │   │   │   ├── serializer/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   └── htmlserializer.py
    │   │   │   │   │   │   │   ├── tokenizer.py
    │   │   │   │   │   │   │   ├── treebuilders/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   ├── _base.py
    │   │   │   │   │   │   │   │   ├── dom.py
    │   │   │   │   │   │   │   │   ├── etree.py
    │   │   │   │   │   │   │   │   └── etree_lxml.py
    │   │   │   │   │   │   │   ├── treewalkers/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   ├── _base.py
    │   │   │   │   │   │   │   │   ├── dom.py
    │   │   │   │   │   │   │   │   ├── etree.py
    │   │   │   │   │   │   │   │   ├── genshistream.py
    │   │   │   │   │   │   │   │   ├── lxmletree.py
    │   │   │   │   │   │   │   │   └── pulldom.py
    │   │   │   │   │   │   │   ├── trie/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   ├── _base.py
    │   │   │   │   │   │   │   │   ├── datrie.py
    │   │   │   │   │   │   │   │   └── py.py
    │   │   │   │   │   │   │   └── utils.py
    │   │   │   │   │   │   ├── pkg_resources.py
    │   │   │   │   │   │   ├── re-vendor.py
    │   │   │   │   │   │   ├── requests/
    │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   ├── adapters.py
    │   │   │   │   │   │   │   ├── api.py
    │   │   │   │   │   │   │   ├── auth.py
    │   │   │   │   │   │   │   ├── cacert.pem
    │   │   │   │   │   │   │   ├── certs.py
    │   │   │   │   │   │   │   ├── compat.py
    │   │   │   │   │   │   │   ├── cookies.py
    │   │   │   │   │   │   │   ├── exceptions.py
    │   │   │   │   │   │   │   ├── hooks.py
    │   │   │   │   │   │   │   ├── models.py
    │   │   │   │   │   │   │   ├── packages/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   ├── charade/
    │   │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   │   ├── __main__.py
    │   │   │   │   │   │   │   │   │   ├── big5freq.py
    │   │   │   │   │   │   │   │   │   ├── big5prober.py
    │   │   │   │   │   │   │   │   │   ├── chardistribution.py
    │   │   │   │   │   │   │   │   │   ├── charsetgroupprober.py
    │   │   │   │   │   │   │   │   │   ├── charsetprober.py
    │   │   │   │   │   │   │   │   │   ├── codingstatemachine.py
    │   │   │   │   │   │   │   │   │   ├── compat.py
    │   │   │   │   │   │   │   │   │   ├── constants.py
    │   │   │   │   │   │   │   │   │   ├── cp949prober.py
    │   │   │   │   │   │   │   │   │   ├── escprober.py
    │   │   │   │   │   │   │   │   │   ├── escsm.py
    │   │   │   │   │   │   │   │   │   ├── eucjpprober.py
    │   │   │   │   │   │   │   │   │   ├── euckrfreq.py
    │   │   │   │   │   │   │   │   │   ├── euckrprober.py
    │   │   │   │   │   │   │   │   │   ├── euctwfreq.py
    │   │   │   │   │   │   │   │   │   ├── euctwprober.py
    │   │   │   │   │   │   │   │   │   ├── gb2312freq.py
    │   │   │   │   │   │   │   │   │   ├── gb2312prober.py
    │   │   │   │   │   │   │   │   │   ├── hebrewprober.py
    │   │   │   │   │   │   │   │   │   ├── jisfreq.py
    │   │   │   │   │   │   │   │   │   ├── jpcntx.py
    │   │   │   │   │   │   │   │   │   ├── langbulgarianmodel.py
    │   │   │   │   │   │   │   │   │   ├── langcyrillicmodel.py
    │   │   │   │   │   │   │   │   │   ├── langgreekmodel.py
    │   │   │   │   │   │   │   │   │   ├── langhebrewmodel.py
    │   │   │   │   │   │   │   │   │   ├── langhungarianmodel.py
    │   │   │   │   │   │   │   │   │   ├── langthaimodel.py
    │   │   │   │   │   │   │   │   │   ├── latin1prober.py
    │   │   │   │   │   │   │   │   │   ├── mbcharsetprober.py
    │   │   │   │   │   │   │   │   │   ├── mbcsgroupprober.py
    │   │   │   │   │   │   │   │   │   ├── mbcssm.py
    │   │   │   │   │   │   │   │   │   ├── sbcharsetprober.py
    │   │   │   │   │   │   │   │   │   ├── sbcsgroupprober.py
    │   │   │   │   │   │   │   │   │   ├── sjisprober.py
    │   │   │   │   │   │   │   │   │   ├── universaldetector.py
    │   │   │   │   │   │   │   │   │   └── utf8prober.py
    │   │   │   │   │   │   │   │   ├── chardet/
    │   │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   │   ├── big5freq.py
    │   │   │   │   │   │   │   │   │   ├── big5prober.py
    │   │   │   │   │   │   │   │   │   ├── chardetect.py
    │   │   │   │   │   │   │   │   │   ├── chardistribution.py
    │   │   │   │   │   │   │   │   │   ├── charsetgroupprober.py
    │   │   │   │   │   │   │   │   │   ├── charsetprober.py
    │   │   │   │   │   │   │   │   │   ├── codingstatemachine.py
    │   │   │   │   │   │   │   │   │   ├── compat.py
    │   │   │   │   │   │   │   │   │   ├── constants.py
    │   │   │   │   │   │   │   │   │   ├── cp949prober.py
    │   │   │   │   │   │   │   │   │   ├── escprober.py
    │   │   │   │   │   │   │   │   │   ├── escsm.py
    │   │   │   │   │   │   │   │   │   ├── eucjpprober.py
    │   │   │   │   │   │   │   │   │   ├── euckrfreq.py
    │   │   │   │   │   │   │   │   │   ├── euckrprober.py
    │   │   │   │   │   │   │   │   │   ├── euctwfreq.py
    │   │   │   │   │   │   │   │   │   ├── euctwprober.py
    │   │   │   │   │   │   │   │   │   ├── gb2312freq.py
    │   │   │   │   │   │   │   │   │   ├── gb2312prober.py
    │   │   │   │   │   │   │   │   │   ├── hebrewprober.py
    │   │   │   │   │   │   │   │   │   ├── jisfreq.py
    │   │   │   │   │   │   │   │   │   ├── jpcntx.py
    │   │   │   │   │   │   │   │   │   ├── langbulgarianmodel.py
    │   │   │   │   │   │   │   │   │   ├── langcyrillicmodel.py
    │   │   │   │   │   │   │   │   │   ├── langgreekmodel.py
    │   │   │   │   │   │   │   │   │   ├── langhebrewmodel.py
    │   │   │   │   │   │   │   │   │   ├── langhungarianmodel.py
    │   │   │   │   │   │   │   │   │   ├── langthaimodel.py
    │   │   │   │   │   │   │   │   │   ├── latin1prober.py
    │   │   │   │   │   │   │   │   │   ├── mbcharsetprober.py
    │   │   │   │   │   │   │   │   │   ├── mbcsgroupprober.py
    │   │   │   │   │   │   │   │   │   ├── mbcssm.py
    │   │   │   │   │   │   │   │   │   ├── sbcharsetprober.py
    │   │   │   │   │   │   │   │   │   ├── sbcsgroupprober.py
    │   │   │   │   │   │   │   │   │   ├── sjisprober.py
    │   │   │   │   │   │   │   │   │   ├── universaldetector.py
    │   │   │   │   │   │   │   │   │   └── utf8prober.py
    │   │   │   │   │   │   │   │   └── urllib3/
    │   │   │   │   │   │   │   │       ├── __init__.py
    │   │   │   │   │   │   │   │       ├── _collections.py
    │   │   │   │   │   │   │   │       ├── connection.py
    │   │   │   │   │   │   │   │       ├── connectionpool.py
    │   │   │   │   │   │   │   │       ├── contrib/
    │   │   │   │   │   │   │   │       │   ├── __init__.py
    │   │   │   │   │   │   │   │       │   ├── ntlmpool.py
    │   │   │   │   │   │   │   │       │   └── pyopenssl.py
    │   │   │   │   │   │   │   │       ├── exceptions.py
    │   │   │   │   │   │   │   │       ├── fields.py
    │   │   │   │   │   │   │   │       ├── filepost.py
    │   │   │   │   │   │   │   │       ├── packages/
    │   │   │   │   │   │   │   │       │   ├── __init__.py
    │   │   │   │   │   │   │   │       │   ├── ordered_dict.py
    │   │   │   │   │   │   │   │       │   ├── six.py
    │   │   │   │   │   │   │   │       │   └── ssl_match_hostname/
    │   │   │   │   │   │   │   │       │       ├── __init__.py
    │   │   │   │   │   │   │   │       │       └── _implementation.py
    │   │   │   │   │   │   │   │       ├── poolmanager.py
    │   │   │   │   │   │   │   │       ├── request.py
    │   │   │   │   │   │   │   │       ├── response.py
    │   │   │   │   │   │   │   │       └── util.py
    │   │   │   │   │   │   │   ├── sessions.py
    │   │   │   │   │   │   │   ├── status_codes.py
    │   │   │   │   │   │   │   ├── structures.py
    │   │   │   │   │   │   │   └── utils.py
    │   │   │   │   │   │   └── six.py
    │   │   │   │   │   ├── backwardcompat/
    │   │   │   │   │   │   └── __init__.py
    │   │   │   │   │   ├── basecommand.py
    │   │   │   │   │   ├── baseparser.py
    │   │   │   │   │   ├── cmdoptions.py
    │   │   │   │   │   ├── commands/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── bundle.py
    │   │   │   │   │   │   ├── completion.py
    │   │   │   │   │   │   ├── freeze.py
    │   │   │   │   │   │   ├── help.py
    │   │   │   │   │   │   ├── install.py
    │   │   │   │   │   │   ├── list.py
    │   │   │   │   │   │   ├── search.py
    │   │   │   │   │   │   ├── show.py
    │   │   │   │   │   │   ├── uninstall.py
    │   │   │   │   │   │   ├── unzip.py
    │   │   │   │   │   │   ├── wheel.py
    │   │   │   │   │   │   └── zip.py
    │   │   │   │   │   ├── download.py
    │   │   │   │   │   ├── exceptions.py
    │   │   │   │   │   ├── index.py
    │   │   │   │   │   ├── locations.py
    │   │   │   │   │   ├── log.py
    │   │   │   │   │   ├── pep425tags.py
    │   │   │   │   │   ├── req.py
    │   │   │   │   │   ├── runner.py
    │   │   │   │   │   ├── status_codes.py
    │   │   │   │   │   ├── util.py
    │   │   │   │   │   ├── vcs/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── bazaar.py
    │   │   │   │   │   │   ├── git.py
    │   │   │   │   │   │   ├── mercurial.py
    │   │   │   │   │   │   └── subversion.py
    │   │   │   │   │   └── wheel.py
    │   │   │   │   ├── pip-1.5.4.dist-info/
    │   │   │   │   │   ├── DESCRIPTION.rst
    │   │   │   │   │   ├── METADATA
    │   │   │   │   │   ├── RECORD
    │   │   │   │   │   ├── WHEEL
    │   │   │   │   │   ├── entry_points.txt
    │   │   │   │   │   ├── pydist.json
    │   │   │   │   │   └── top_level.txt
    │   │   │   │   ├── pkg_resources.py
    │   │   │   │   ├── setuptools/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── archive_util.py
    │   │   │   │   │   ├── command/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── alias.py
    │   │   │   │   │   │   ├── bdist_egg.py
    │   │   │   │   │   │   ├── bdist_rpm.py
    │   │   │   │   │   │   ├── bdist_wininst.py
    │   │   │   │   │   │   ├── build_ext.py
    │   │   │   │   │   │   ├── build_py.py
    │   │   │   │   │   │   ├── develop.py
    │   │   │   │   │   │   ├── easy_install.py
    │   │   │   │   │   │   ├── egg_info.py
    │   │   │   │   │   │   ├── install.py
    │   │   │   │   │   │   ├── install_egg_info.py
    │   │   │   │   │   │   ├── install_lib.py
    │   │   │   │   │   │   ├── install_scripts.py
    │   │   │   │   │   │   ├── launcher manifest.xml
    │   │   │   │   │   │   ├── register.py
    │   │   │   │   │   │   ├── rotate.py
    │   │   │   │   │   │   ├── saveopts.py
    │   │   │   │   │   │   ├── sdist.py
    │   │   │   │   │   │   ├── setopt.py
    │   │   │   │   │   │   ├── test.py
    │   │   │   │   │   │   └── upload_docs.py
    │   │   │   │   │   ├── compat.py
    │   │   │   │   │   ├── depends.py
    │   │   │   │   │   ├── dist.py
    │   │   │   │   │   ├── extension.py
    │   │   │   │   │   ├── lib2to3_ex.py
    │   │   │   │   │   ├── package_index.py
    │   │   │   │   │   ├── py26compat.py
    │   │   │   │   │   ├── py27compat.py
    │   │   │   │   │   ├── py31compat.py
    │   │   │   │   │   ├── sandbox.py
    │   │   │   │   │   ├── script template (dev).py
    │   │   │   │   │   ├── script template.py
    │   │   │   │   │   ├── site-patch.py
    │   │   │   │   │   ├── ssl_support.py
    │   │   │   │   │   ├── svn_utils.py
    │   │   │   │   │   ├── tests/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── doctest.py
    │   │   │   │   │   │   ├── environment.py
    │   │   │   │   │   │   ├── py26compat.py
    │   │   │   │   │   │   ├── script-with-bom.py
    │   │   │   │   │   │   ├── server.py
    │   │   │   │   │   │   ├── test_bdist_egg.py
    │   │   │   │   │   │   ├── test_build_ext.py
    │   │   │   │   │   │   ├── test_develop.py
    │   │   │   │   │   │   ├── test_dist_info.py
    │   │   │   │   │   │   ├── test_easy_install.py
    │   │   │   │   │   │   ├── test_egg_info.py
    │   │   │   │   │   │   ├── test_find_packages.py
    │   │   │   │   │   │   ├── test_markerlib.py
    │   │   │   │   │   │   ├── test_packageindex.py
    │   │   │   │   │   │   ├── test_resources.py
    │   │   │   │   │   │   ├── test_sandbox.py
    │   │   │   │   │   │   ├── test_sdist.py
    │   │   │   │   │   │   ├── test_svn.py
    │   │   │   │   │   │   ├── test_test.py
    │   │   │   │   │   │   └── test_upload_docs.py
    │   │   │   │   │   └── version.py
    │   │   │   │   └── setuptools-3.3.dist-info/
    │   │   │   │       ├── DESCRIPTION.rst
    │   │   │   │       ├── METADATA
    │   │   │   │       ├── RECORD
    │   │   │   │       ├── WHEEL
    │   │   │   │       ├── dependency_links.txt
    │   │   │   │       ├── dependency_links.txt.orig
    │   │   │   │       ├── entry_points.txt
    │   │   │   │       ├── entry_points.txt.orig
    │   │   │   │       ├── pydist.json
    │   │   │   │       ├── requires.txt.orig
    │   │   │   │       ├── top_level.txt
    │   │   │   │       └── zip-safe
    │   │   │   ├── site.py
    │   │   │   ├── smtpd.py
    │   │   │   ├── smtplib.py
    │   │   │   ├── sndhdr.py
    │   │   │   ├── socket.py
    │   │   │   ├── sqlite3/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── dbapi2.py
    │   │   │   │   └── dump.py
    │   │   │   ├── sre.py
    │   │   │   ├── sre_compile.py
    │   │   │   ├── sre_constants.py
    │   │   │   ├── sre_parse.py
    │   │   │   ├── ssl.py
    │   │   │   ├── stat.py
    │   │   │   ├── statvfs.py
    │   │   │   ├── string.py
    │   │   │   ├── stringold.py
    │   │   │   ├── stringprep.py
    │   │   │   ├── struct.py
    │   │   │   ├── subprocess.py
    │   │   │   ├── sunau.py
    │   │   │   ├── sunaudio.py
    │   │   │   ├── symbol.py
    │   │   │   ├── symtable.py
    │   │   │   ├── sysconfig.py
    │   │   │   ├── tabnanny.py
    │   │   │   ├── tarfile.py
    │   │   │   ├── telnetlib.py
    │   │   │   ├── tempfile.py
    │   │   │   ├── test/
    │   │   │   │   ├── cjkencodings/
    │   │   │   │   │   ├── big5-utf8.txt
    │   │   │   │   │   ├── big5.txt
    │   │   │   │   │   ├── big5hkscs-utf8.txt
    │   │   │   │   │   ├── big5hkscs.txt
    │   │   │   │   │   ├── cp949-utf8.txt
    │   │   │   │   │   ├── cp949.txt
    │   │   │   │   │   ├── euc_jisx0213-utf8.txt
    │   │   │   │   │   ├── euc_jisx0213.txt
    │   │   │   │   │   ├── euc_jp-utf8.txt
    │   │   │   │   │   ├── euc_jp.txt
    │   │   │   │   │   ├── euc_kr-utf8.txt
    │   │   │   │   │   ├── euc_kr.txt
    │   │   │   │   │   ├── gb18030-utf8.txt
    │   │   │   │   │   ├── gb18030.txt
    │   │   │   │   │   ├── gb2312-utf8.txt
    │   │   │   │   │   ├── gb2312.txt
    │   │   │   │   │   ├── gbk-utf8.txt
    │   │   │   │   │   ├── gbk.txt
    │   │   │   │   │   ├── hz-utf8.txt
    │   │   │   │   │   ├── hz.txt
    │   │   │   │   │   ├── iso2022_jp-utf8.txt
    │   │   │   │   │   ├── iso2022_jp.txt
    │   │   │   │   │   ├── iso2022_kr-utf8.txt
    │   │   │   │   │   ├── iso2022_kr.txt
    │   │   │   │   │   ├── johab-utf8.txt
    │   │   │   │   │   ├── johab.txt
    │   │   │   │   │   ├── shift_jis-utf8.txt
    │   │   │   │   │   ├── shift_jis.txt
    │   │   │   │   │   ├── shift_jisx0213-utf8.txt
    │   │   │   │   │   └── shift_jisx0213.txt
    │   │   │   │   ├── crashers/
    │   │   │   │   │   ├── bogus_code_obj.py
    │   │   │   │   │   ├── borrowed_ref_1.py
    │   │   │   │   │   ├── borrowed_ref_2.py
    │   │   │   │   │   ├── buffer_mutate.py
    │   │   │   │   │   ├── compiler_recursion.py
    │   │   │   │   │   ├── decref_before_assignment.py
    │   │   │   │   │   ├── gc_has_finalizer.py
    │   │   │   │   │   ├── gc_inspection.py
    │   │   │   │   │   ├── infinite_loop_re.py
    │   │   │   │   │   ├── loosing_mro_ref.py
    │   │   │   │   │   ├── mutation_inside_cyclegc.py
    │   │   │   │   │   ├── nasty_eq_vs_dict.py
    │   │   │   │   │   ├── recursion_limit_too_high.py
    │   │   │   │   │   └── recursive_call.py
    │   │   │   │   ├── decimaltestdata/
    │   │   │   │   │   ├── abs.decTest
    │   │   │   │   │   ├── add.decTest
    │   │   │   │   │   ├── and.decTest
    │   │   │   │   │   ├── base.decTest
    │   │   │   │   │   ├── clamp.decTest
    │   │   │   │   │   ├── class.decTest
    │   │   │   │   │   ├── compare.decTest
    │   │   │   │   │   ├── comparetotal.decTest
    │   │   │   │   │   ├── comparetotmag.decTest
    │   │   │   │   │   ├── copy.decTest
    │   │   │   │   │   ├── copyabs.decTest
    │   │   │   │   │   ├── copynegate.decTest
    │   │   │   │   │   ├── copysign.decTest
    │   │   │   │   │   ├── ddAbs.decTest
    │   │   │   │   │   ├── ddAdd.decTest
    │   │   │   │   │   ├── ddAnd.decTest
    │   │   │   │   │   ├── ddBase.decTest
    │   │   │   │   │   ├── ddCanonical.decTest
    │   │   │   │   │   ├── ddClass.decTest
    │   │   │   │   │   ├── ddCompare.decTest
    │   │   │   │   │   ├── ddCompareSig.decTest
    │   │   │   │   │   ├── ddCompareTotal.decTest
    │   │   │   │   │   ├── ddCompareTotalMag.decTest
    │   │   │   │   │   ├── ddCopy.decTest
    │   │   │   │   │   ├── ddCopyAbs.decTest
    │   │   │   │   │   ├── ddCopyNegate.decTest
    │   │   │   │   │   ├── ddCopySign.decTest
    │   │   │   │   │   ├── ddDivide.decTest
    │   │   │   │   │   ├── ddDivideInt.decTest
    │   │   │   │   │   ├── ddEncode.decTest
    │   │   │   │   │   ├── ddFMA.decTest
    │   │   │   │   │   ├── ddInvert.decTest
    │   │   │   │   │   ├── ddLogB.decTest
    │   │   │   │   │   ├── ddMax.decTest
    │   │   │   │   │   ├── ddMaxMag.decTest
    │   │   │   │   │   ├── ddMin.decTest
    │   │   │   │   │   ├── ddMinMag.decTest
    │   │   │   │   │   ├── ddMinus.decTest
    │   │   │   │   │   ├── ddMultiply.decTest
    │   │   │   │   │   ├── ddNextMinus.decTest
    │   │   │   │   │   ├── ddNextPlus.decTest
    │   │   │   │   │   ├── ddNextToward.decTest
    │   │   │   │   │   ├── ddOr.decTest
    │   │   │   │   │   ├── ddPlus.decTest
    │   │   │   │   │   ├── ddQuantize.decTest
    │   │   │   │   │   ├── ddReduce.decTest
    │   │   │   │   │   ├── ddRemainder.decTest
    │   │   │   │   │   ├── ddRemainderNear.decTest
    │   │   │   │   │   ├── ddRotate.decTest
    │   │   │   │   │   ├── ddSameQuantum.decTest
    │   │   │   │   │   ├── ddScaleB.decTest
    │   │   │   │   │   ├── ddShift.decTest
    │   │   │   │   │   ├── ddSubtract.decTest
    │   │   │   │   │   ├── ddToIntegral.decTest
    │   │   │   │   │   ├── ddXor.decTest
    │   │   │   │   │   ├── decDouble.decTest
    │   │   │   │   │   ├── decQuad.decTest
    │   │   │   │   │   ├── decSingle.decTest
    │   │   │   │   │   ├── divide.decTest
    │   │   │   │   │   ├── divideint.decTest
    │   │   │   │   │   ├── dqAbs.decTest
    │   │   │   │   │   ├── dqAdd.decTest
    │   │   │   │   │   ├── dqAnd.decTest
    │   │   │   │   │   ├── dqBase.decTest
    │   │   │   │   │   ├── dqCanonical.decTest
    │   │   │   │   │   ├── dqClass.decTest
    │   │   │   │   │   ├── dqCompare.decTest
    │   │   │   │   │   ├── dqCompareSig.decTest
    │   │   │   │   │   ├── dqCompareTotal.decTest
    │   │   │   │   │   ├── dqCompareTotalMag.decTest
    │   │   │   │   │   ├── dqCopy.decTest
    │   │   │   │   │   ├── dqCopyAbs.decTest
    │   │   │   │   │   ├── dqCopyNegate.decTest
    │   │   │   │   │   ├── dqCopySign.decTest
    │   │   │   │   │   ├── dqDivide.decTest
    │   │   │   │   │   ├── dqDivideInt.decTest
    │   │   │   │   │   ├── dqEncode.decTest
    │   │   │   │   │   ├── dqFMA.decTest
    │   │   │   │   │   ├── dqInvert.decTest
    │   │   │   │   │   ├── dqLogB.decTest
    │   │   │   │   │   ├── dqMax.decTest
    │   │   │   │   │   ├── dqMaxMag.decTest
    │   │   │   │   │   ├── dqMin.decTest
    │   │   │   │   │   ├── dqMinMag.decTest
    │   │   │   │   │   ├── dqMinus.decTest
    │   │   │   │   │   ├── dqMultiply.decTest
    │   │   │   │   │   ├── dqNextMinus.decTest
    │   │   │   │   │   ├── dqNextPlus.decTest
    │   │   │   │   │   ├── dqNextToward.decTest
    │   │   │   │   │   ├── dqOr.decTest
    │   │   │   │   │   ├── dqPlus.decTest
    │   │   │   │   │   ├── dqQuantize.decTest
    │   │   │   │   │   ├── dqReduce.decTest
    │   │   │   │   │   ├── dqRemainder.decTest
    │   │   │   │   │   ├── dqRemainderNear.decTest
    │   │   │   │   │   ├── dqRotate.decTest
    │   │   │   │   │   ├── dqSameQuantum.decTest
    │   │   │   │   │   ├── dqScaleB.decTest
    │   │   │   │   │   ├── dqShift.decTest
    │   │   │   │   │   ├── dqSubtract.decTest
    │   │   │   │   │   ├── dqToIntegral.decTest
    │   │   │   │   │   ├── dqXor.decTest
    │   │   │   │   │   ├── dsBase.decTest
    │   │   │   │   │   ├── dsEncode.decTest
    │   │   │   │   │   ├── exp.decTest
    │   │   │   │   │   ├── extra.decTest
    │   │   │   │   │   ├── fma.decTest
    │   │   │   │   │   ├── inexact.decTest
    │   │   │   │   │   ├── invert.decTest
    │   │   │   │   │   ├── ln.decTest
    │   │   │   │   │   ├── log10.decTest
    │   │   │   │   │   ├── logb.decTest
    │   │   │   │   │   ├── max.decTest
    │   │   │   │   │   ├── maxmag.decTest
    │   │   │   │   │   ├── min.decTest
    │   │   │   │   │   ├── minmag.decTest
    │   │   │   │   │   ├── minus.decTest
    │   │   │   │   │   ├── multiply.decTest
    │   │   │   │   │   ├── nextminus.decTest
    │   │   │   │   │   ├── nextplus.decTest
    │   │   │   │   │   ├── nexttoward.decTest
    │   │   │   │   │   ├── or.decTest
    │   │   │   │   │   ├── plus.decTest
    │   │   │   │   │   ├── power.decTest
    │   │   │   │   │   ├── powersqrt.decTest
    │   │   │   │   │   ├── quantize.decTest
    │   │   │   │   │   ├── randomBound32.decTest
    │   │   │   │   │   ├── randoms.decTest
    │   │   │   │   │   ├── reduce.decTest
    │   │   │   │   │   ├── remainder.decTest
    │   │   │   │   │   ├── remainderNear.decTest
    │   │   │   │   │   ├── rescale.decTest
    │   │   │   │   │   ├── rotate.decTest
    │   │   │   │   │   ├── rounding.decTest
    │   │   │   │   │   ├── samequantum.decTest
    │   │   │   │   │   ├── scaleb.decTest
    │   │   │   │   │   ├── shift.decTest
    │   │   │   │   │   ├── squareroot.decTest
    │   │   │   │   │   ├── subtract.decTest
    │   │   │   │   │   ├── testall.decTest
    │   │   │   │   │   ├── tointegral.decTest
    │   │   │   │   │   ├── tointegralx.decTest
    │   │   │   │   │   └── xor.decTest
    │   │   │   │   ├── leakers/
    │   │   │   │   │   ├── README.txt
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── test_ctypes.py
    │   │   │   │   │   ├── test_dictself.py
    │   │   │   │   │   ├── test_gestalt.py
    │   │   │   │   │   └── test_selftype.py
    │   │   │   │   ├── subprocessdata/
    │   │   │   │   │   └── sigchild_ignore.py
    │   │   │   │   ├── tracedmodules/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── testmod.py
    │   │   │   │   └── xmltestdata/
    │   │   │   │       ├── simple-ns.xml
    │   │   │   │       ├── simple.xml
    │   │   │   │       ├── test.xml
    │   │   │   │       └── test.xml.out
    │   │   │   ├── textwrap.py
    │   │   │   ├── this.py
    │   │   │   ├── threading.py
    │   │   │   ├── timeit.py
    │   │   │   ├── toaiff.py
    │   │   │   ├── token.py
    │   │   │   ├── tokenize.py
    │   │   │   ├── trace.py
    │   │   │   ├── traceback.py
    │   │   │   ├── tty.py
    │   │   │   ├── types.py
    │   │   │   ├── unittest/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── __main__.py
    │   │   │   │   ├── case.py
    │   │   │   │   ├── loader.py
    │   │   │   │   ├── main.py
    │   │   │   │   ├── result.py
    │   │   │   │   ├── runner.py
    │   │   │   │   ├── signals.py
    │   │   │   │   ├── suite.py
    │   │   │   │   └── util.py
    │   │   │   ├── urllib.py
    │   │   │   ├── urllib2.py
    │   │   │   ├── urlparse.py
    │   │   │   ├── user.py
    │   │   │   ├── uu.py
    │   │   │   ├── uuid.py
    │   │   │   ├── warnings.py
    │   │   │   ├── wave.py
    │   │   │   ├── weakref.py
    │   │   │   ├── webbrowser.py
    │   │   │   ├── whichdb.py
    │   │   │   ├── wsgiref/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── handlers.py
    │   │   │   │   ├── headers.py
    │   │   │   │   ├── simple_server.py
    │   │   │   │   ├── util.py
    │   │   │   │   └── validate.py
    │   │   │   ├── xdrlib.py
    │   │   │   ├── xml/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── dom/
    │   │   │   │   │   ├── NodeFilter.py
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── domreg.py
    │   │   │   │   │   ├── expatbuilder.py
    │   │   │   │   │   ├── minicompat.py
    │   │   │   │   │   ├── minidom.py
    │   │   │   │   │   ├── pulldom.py
    │   │   │   │   │   └── xmlbuilder.py
    │   │   │   │   ├── etree/
    │   │   │   │   │   ├── ElementInclude.py
    │   │   │   │   │   ├── ElementPath.py
    │   │   │   │   │   ├── ElementTree.py
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── cElementTree.py
    │   │   │   │   ├── parsers/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── expat.py
    │   │   │   │   └── sax/
    │   │   │   │       ├── __init__.py
    │   │   │   │       ├── _exceptions.py
    │   │   │   │       ├── expatreader.py
    │   │   │   │       ├── handler.py
    │   │   │   │       ├── saxutils.py
    │   │   │   │       └── xmlreader.py
    │   │   │   ├── xmllib.py
    │   │   │   ├── xmlrpclib.py
    │   │   │   └── zipfile.py
    │   │   ├── NEWS.txt
    │   │   ├── README.txt
    │   │   ├── include/
    │   │   │   ├── Python-ast.h
    │   │   │   ├── Python.h
    │   │   │   ├── abstract.h
    │   │   │   ├── asdl.h
    │   │   │   ├── ast.h
    │   │   │   ├── bitset.h
    │   │   │   ├── boolobject.h
    │   │   │   ├── bufferobject.h
    │   │   │   ├── bytearrayobject.h
    │   │   │   ├── bytes_methods.h
    │   │   │   ├── bytesobject.h
    │   │   │   ├── cStringIO.h
    │   │   │   ├── cellobject.h
    │   │   │   ├── ceval.h
    │   │   │   ├── classobject.h
    │   │   │   ├── cobject.h
    │   │   │   ├── code.h
    │   │   │   ├── codecs.h
    │   │   │   ├── compile.h
    │   │   │   ├── complexobject.h
    │   │   │   ├── datetime.h
    │   │   │   ├── descrobject.h
    │   │   │   ├── dictobject.h
    │   │   │   ├── dtoa.h
    │   │   │   ├── enumobject.h
    │   │   │   ├── errcode.h
    │   │   │   ├── eval.h
    │   │   │   ├── fileobject.h
    │   │   │   ├── floatobject.h
    │   │   │   ├── frameobject.h
    │   │   │   ├── funcobject.h
    │   │   │   ├── genobject.h
    │   │   │   ├── graminit.h
    │   │   │   ├── grammar.h
    │   │   │   ├── import.h
    │   │   │   ├── intobject.h
    │   │   │   ├── intrcheck.h
    │   │   │   ├── iterobject.h
    │   │   │   ├── listobject.h
    │   │   │   ├── longintrepr.h
    │   │   │   ├── longobject.h
    │   │   │   ├── marshal.h
    │   │   │   ├── memoryobject.h
    │   │   │   ├── metagrammar.h
    │   │   │   ├── methodobject.h
    │   │   │   ├── modsupport.h
    │   │   │   ├── moduleobject.h
    │   │   │   ├── node.h
    │   │   │   ├── object.h
    │   │   │   ├── objimpl.h
    │   │   │   ├── opcode.h
    │   │   │   ├── osdefs.h
    │   │   │   ├── parsetok.h
    │   │   │   ├── patchlevel.h
    │   │   │   ├── pgen.h
    │   │   │   ├── pgenheaders.h
    │   │   │   ├── py_curses.h
    │   │   │   ├── pyarena.h
    │   │   │   ├── pycapsule.h
    │   │   │   ├── pyconfig.h
    │   │   │   ├── pyctype.h
    │   │   │   ├── pydebug.h
    │   │   │   ├── pyerrors.h
    │   │   │   ├── pyexpat.h
    │   │   │   ├── pyfpe.h
    │   │   │   ├── pygetopt.h
    │   │   │   ├── pymacconfig.h
    │   │   │   ├── pymactoolbox.h
    │   │   │   ├── pymath.h
    │   │   │   ├── pymem.h
    │   │   │   ├── pyport.h
    │   │   │   ├── pystate.h
    │   │   │   ├── pystrcmp.h
    │   │   │   ├── pystrtod.h
    │   │   │   ├── pythonrun.h
    │   │   │   ├── pythread.h
    │   │   │   ├── rangeobject.h
    │   │   │   ├── setobject.h
    │   │   │   ├── sliceobject.h
    │   │   │   ├── stringobject.h
    │   │   │   ├── structmember.h
    │   │   │   ├── structseq.h
    │   │   │   ├── symtable.h
    │   │   │   ├── sysmodule.h
    │   │   │   ├── timefuncs.h
    │   │   │   ├── token.h
    │   │   │   ├── traceback.h
    │   │   │   ├── tupleobject.h
    │   │   │   ├── ucnhash.h
    │   │   │   ├── unicodeobject.h
    │   │   │   ├── warnings.h
    │   │   │   └── weakrefobject.h
    │   │   └── libs/
    │   │       └── libpython27.a
    │   ├── win32-py32/
    │   │   ├── DLLs/
    │   │   │   ├── _ctypes.pyd
    │   │   │   ├── _ctypes_test.pyd
    │   │   │   ├── _elementtree.pyd
    │   │   │   ├── _hashlib.pyd
    │   │   │   ├── _msi.pyd
    │   │   │   ├── _multiprocessing.pyd
    │   │   │   ├── _socket.pyd
    │   │   │   ├── _sqlite3.pyd
    │   │   │   ├── _ssl.pyd
    │   │   │   ├── _testcapi.pyd
    │   │   │   ├── bz2.pyd
    │   │   │   ├── pyexpat.pyd
    │   │   │   ├── select.pyd
    │   │   │   ├── unicodedata.pyd
    │   │   │   └── winsound.pyd
    │   │   ├── LICENSE.txt
    │   │   ├── Lib/
    │   │   │   ├── __future__.py
    │   │   │   ├── __phello__.foo.py
    │   │   │   ├── _abcoll.py
    │   │   │   ├── _compat_pickle.py
    │   │   │   ├── _dummy_thread.py
    │   │   │   ├── _markupbase.py
    │   │   │   ├── _osx_support.py
    │   │   │   ├── _pyio.py
    │   │   │   ├── _strptime.py
    │   │   │   ├── _threading_local.py
    │   │   │   ├── _weakrefset.py
    │   │   │   ├── abc.py
    │   │   │   ├── aifc.py
    │   │   │   ├── antigravity.py
    │   │   │   ├── argparse.py
    │   │   │   ├── ast.py
    │   │   │   ├── asynchat.py
    │   │   │   ├── asyncore.py
    │   │   │   ├── base64.py
    │   │   │   ├── bdb.py
    │   │   │   ├── binhex.py
    │   │   │   ├── bisect.py
    │   │   │   ├── cProfile.py
    │   │   │   ├── calendar.py
    │   │   │   ├── cgi.py
    │   │   │   ├── cgitb.py
    │   │   │   ├── chunk.py
    │   │   │   ├── cmd.py
    │   │   │   ├── code.py
    │   │   │   ├── codecs.py
    │   │   │   ├── codeop.py
    │   │   │   ├── collections.py
    │   │   │   ├── colorsys.py
    │   │   │   ├── compileall.py
    │   │   │   ├── concurrent/
    │   │   │   │   ├── __init__.py
    │   │   │   │   └── futures/
    │   │   │   │       ├── __init__.py
    │   │   │   │       ├── _base.py
    │   │   │   │       ├── process.py
    │   │   │   │       └── thread.py
    │   │   │   ├── configparser.py
    │   │   │   ├── contextlib.py
    │   │   │   ├── copy.py
    │   │   │   ├── copyreg.py
    │   │   │   ├── csv.py
    │   │   │   ├── ctypes/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _endian.py
    │   │   │   │   ├── macholib/
    │   │   │   │   │   ├── README.ctypes
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── dyld.py
    │   │   │   │   │   ├── dylib.py
    │   │   │   │   │   ├── fetch_macholib
    │   │   │   │   │   ├── fetch_macholib.bat
    │   │   │   │   │   └── framework.py
    │   │   │   │   ├── util.py
    │   │   │   │   └── wintypes.py
    │   │   │   ├── curses/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── ascii.py
    │   │   │   │   ├── has_key.py
    │   │   │   │   ├── panel.py
    │   │   │   │   ├── textpad.py
    │   │   │   │   └── wrapper.py
    │   │   │   ├── datetime.py
    │   │   │   ├── dbm/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── dumb.py
    │   │   │   │   ├── gnu.py
    │   │   │   │   └── ndbm.py
    │   │   │   ├── decimal.py
    │   │   │   ├── difflib.py
    │   │   │   ├── dis.py
    │   │   │   ├── distutils/
    │   │   │   │   ├── README
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── archive_util.py
    │   │   │   │   ├── bcppcompiler.py
    │   │   │   │   ├── ccompiler.py
    │   │   │   │   ├── cmd.py
    │   │   │   │   ├── command/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── bdist.py
    │   │   │   │   │   ├── bdist_dumb.py
    │   │   │   │   │   ├── bdist_msi.py
    │   │   │   │   │   ├── bdist_rpm.py
    │   │   │   │   │   ├── bdist_wininst.py
    │   │   │   │   │   ├── build.py
    │   │   │   │   │   ├── build_clib.py
    │   │   │   │   │   ├── build_ext.py
    │   │   │   │   │   ├── build_py.py
    │   │   │   │   │   ├── build_scripts.py
    │   │   │   │   │   ├── check.py
    │   │   │   │   │   ├── clean.py
    │   │   │   │   │   ├── command_template
    │   │   │   │   │   ├── config.py
    │   │   │   │   │   ├── install.py
    │   │   │   │   │   ├── install_data.py
    │   │   │   │   │   ├── install_egg_info.py
    │   │   │   │   │   ├── install_headers.py
    │   │   │   │   │   ├── install_lib.py
    │   │   │   │   │   ├── install_scripts.py
    │   │   │   │   │   ├── register.py
    │   │   │   │   │   ├── sdist.py
    │   │   │   │   │   └── upload.py
    │   │   │   │   ├── config.py
    │   │   │   │   ├── core.py
    │   │   │   │   ├── cygwinccompiler.py
    │   │   │   │   ├── debug.py
    │   │   │   │   ├── dep_util.py
    │   │   │   │   ├── dir_util.py
    │   │   │   │   ├── dist.py
    │   │   │   │   ├── emxccompiler.py
    │   │   │   │   ├── errors.py
    │   │   │   │   ├── extension.py
    │   │   │   │   ├── fancy_getopt.py
    │   │   │   │   ├── file_util.py
    │   │   │   │   ├── filelist.py
    │   │   │   │   ├── log.py
    │   │   │   │   ├── msvc9compiler.py
    │   │   │   │   ├── msvccompiler.py
    │   │   │   │   ├── spawn.py
    │   │   │   │   ├── sysconfig.py
    │   │   │   │   ├── text_file.py
    │   │   │   │   ├── unixccompiler.py
    │   │   │   │   ├── util.py
    │   │   │   │   ├── version.py
    │   │   │   │   └── versionpredicate.py
    │   │   │   ├── doctest.py
    │   │   │   ├── dummy_threading.py
    │   │   │   ├── email/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _parseaddr.py
    │   │   │   │   ├── base64mime.py
    │   │   │   │   ├── charset.py
    │   │   │   │   ├── encoders.py
    │   │   │   │   ├── errors.py
    │   │   │   │   ├── feedparser.py
    │   │   │   │   ├── generator.py
    │   │   │   │   ├── header.py
    │   │   │   │   ├── iterators.py
    │   │   │   │   ├── message.py
    │   │   │   │   ├── mime/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── application.py
    │   │   │   │   │   ├── audio.py
    │   │   │   │   │   ├── base.py
    │   │   │   │   │   ├── image.py
    │   │   │   │   │   ├── message.py
    │   │   │   │   │   ├── multipart.py
    │   │   │   │   │   ├── nonmultipart.py
    │   │   │   │   │   └── text.py
    │   │   │   │   ├── parser.py
    │   │   │   │   ├── quoprimime.py
    │   │   │   │   └── utils.py
    │   │   │   ├── encodings/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── aliases.py
    │   │   │   │   ├── ascii.py
    │   │   │   │   ├── base64_codec.py
    │   │   │   │   ├── big5.py
    │   │   │   │   ├── big5hkscs.py
    │   │   │   │   ├── bz2_codec.py
    │   │   │   │   ├── charmap.py
    │   │   │   │   ├── cp037.py
    │   │   │   │   ├── cp1006.py
    │   │   │   │   ├── cp1026.py
    │   │   │   │   ├── cp1140.py
    │   │   │   │   ├── cp1250.py
    │   │   │   │   ├── cp1251.py
    │   │   │   │   ├── cp1252.py
    │   │   │   │   ├── cp1253.py
    │   │   │   │   ├── cp1254.py
    │   │   │   │   ├── cp1255.py
    │   │   │   │   ├── cp1256.py
    │   │   │   │   ├── cp1257.py
    │   │   │   │   ├── cp1258.py
    │   │   │   │   ├── cp424.py
    │   │   │   │   ├── cp437.py
    │   │   │   │   ├── cp500.py
    │   │   │   │   ├── cp720.py
    │   │   │   │   ├── cp737.py
    │   │   │   │   ├── cp775.py
    │   │   │   │   ├── cp850.py
    │   │   │   │   ├── cp852.py
    │   │   │   │   ├── cp855.py
    │   │   │   │   ├── cp856.py
    │   │   │   │   ├── cp857.py
    │   │   │   │   ├── cp858.py
    │   │   │   │   ├── cp860.py
    │   │   │   │   ├── cp861.py
    │   │   │   │   ├── cp862.py
    │   │   │   │   ├── cp863.py
    │   │   │   │   ├── cp864.py
    │   │   │   │   ├── cp865.py
    │   │   │   │   ├── cp866.py
    │   │   │   │   ├── cp869.py
    │   │   │   │   ├── cp874.py
    │   │   │   │   ├── cp875.py
    │   │   │   │   ├── cp932.py
    │   │   │   │   ├── cp949.py
    │   │   │   │   ├── cp950.py
    │   │   │   │   ├── euc_jis_2004.py
    │   │   │   │   ├── euc_jisx0213.py
    │   │   │   │   ├── euc_jp.py
    │   │   │   │   ├── euc_kr.py
    │   │   │   │   ├── gb18030.py
    │   │   │   │   ├── gb2312.py
    │   │   │   │   ├── gbk.py
    │   │   │   │   ├── hex_codec.py
    │   │   │   │   ├── hp_roman8.py
    │   │   │   │   ├── hz.py
    │   │   │   │   ├── idna.py
    │   │   │   │   ├── iso2022_jp.py
    │   │   │   │   ├── iso2022_jp_1.py
    │   │   │   │   ├── iso2022_jp_2.py
    │   │   │   │   ├── iso2022_jp_2004.py
    │   │   │   │   ├── iso2022_jp_3.py
    │   │   │   │   ├── iso2022_jp_ext.py
    │   │   │   │   ├── iso2022_kr.py
    │   │   │   │   ├── iso8859_1.py
    │   │   │   │   ├── iso8859_10.py
    │   │   │   │   ├── iso8859_11.py
    │   │   │   │   ├── iso8859_13.py
    │   │   │   │   ├── iso8859_14.py
    │   │   │   │   ├── iso8859_15.py
    │   │   │   │   ├── iso8859_16.py
    │   │   │   │   ├── iso8859_2.py
    │   │   │   │   ├── iso8859_3.py
    │   │   │   │   ├── iso8859_4.py
    │   │   │   │   ├── iso8859_5.py
    │   │   │   │   ├── iso8859_6.py
    │   │   │   │   ├── iso8859_7.py
    │   │   │   │   ├── iso8859_8.py
    │   │   │   │   ├── iso8859_9.py
    │   │   │   │   ├── johab.py
    │   │   │   │   ├── koi8_r.py
    │   │   │   │   ├── koi8_u.py
    │   │   │   │   ├── latin_1.py
    │   │   │   │   ├── mac_arabic.py
    │   │   │   │   ├── mac_centeuro.py
    │   │   │   │   ├── mac_croatian.py
    │   │   │   │   ├── mac_cyrillic.py
    │   │   │   │   ├── mac_farsi.py
    │   │   │   │   ├── mac_greek.py
    │   │   │   │   ├── mac_iceland.py
    │   │   │   │   ├── mac_latin2.py
    │   │   │   │   ├── mac_roman.py
    │   │   │   │   ├── mac_romanian.py
    │   │   │   │   ├── mac_turkish.py
    │   │   │   │   ├── mbcs.py
    │   │   │   │   ├── palmos.py
    │   │   │   │   ├── ptcp154.py
    │   │   │   │   ├── punycode.py
    │   │   │   │   ├── quopri_codec.py
    │   │   │   │   ├── raw_unicode_escape.py
    │   │   │   │   ├── rot_13.py
    │   │   │   │   ├── shift_jis.py
    │   │   │   │   ├── shift_jis_2004.py
    │   │   │   │   ├── shift_jisx0213.py
    │   │   │   │   ├── tis_620.py
    │   │   │   │   ├── undefined.py
    │   │   │   │   ├── unicode_escape.py
    │   │   │   │   ├── unicode_internal.py
    │   │   │   │   ├── utf_16.py
    │   │   │   │   ├── utf_16_be.py
    │   │   │   │   ├── utf_16_le.py
    │   │   │   │   ├── utf_32.py
    │   │   │   │   ├── utf_32_be.py
    │   │   │   │   ├── utf_32_le.py
    │   │   │   │   ├── utf_7.py
    │   │   │   │   ├── utf_8.py
    │   │   │   │   ├── utf_8_sig.py
    │   │   │   │   ├── uu_codec.py
    │   │   │   │   └── zlib_codec.py
    │   │   │   ├── filecmp.py
    │   │   │   ├── fileinput.py
    │   │   │   ├── fnmatch.py
    │   │   │   ├── formatter.py
    │   │   │   ├── fractions.py
    │   │   │   ├── ftplib.py
    │   │   │   ├── functools.py
    │   │   │   ├── genericpath.py
    │   │   │   ├── getopt.py
    │   │   │   ├── getpass.py
    │   │   │   ├── gettext.py
    │   │   │   ├── glob.py
    │   │   │   ├── gzip.py
    │   │   │   ├── hashlib.py
    │   │   │   ├── heapq.py
    │   │   │   ├── hmac.py
    │   │   │   ├── html/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── entities.py
    │   │   │   │   └── parser.py
    │   │   │   ├── http/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── client.py
    │   │   │   │   ├── cookiejar.py
    │   │   │   │   ├── cookies.py
    │   │   │   │   └── server.py
    │   │   │   ├── imaplib.py
    │   │   │   ├── imghdr.py
    │   │   │   ├── importlib/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _bootstrap.py
    │   │   │   │   ├── abc.py
    │   │   │   │   ├── machinery.py
    │   │   │   │   ├── test/
    │   │   │   │   │   ├── builtin/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── test_finder.py
    │   │   │   │   │   │   ├── test_loader.py
    │   │   │   │   │   │   └── util.py
    │   │   │   │   │   ├── extension/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── test_case_sensitivity.py
    │   │   │   │   │   │   ├── test_finder.py
    │   │   │   │   │   │   ├── test_loader.py
    │   │   │   │   │   │   ├── test_path_hook.py
    │   │   │   │   │   │   └── util.py
    │   │   │   │   │   ├── frozen/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── test_finder.py
    │   │   │   │   │   │   └── test_loader.py
    │   │   │   │   │   ├── import_/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── test___package__.py
    │   │   │   │   │   │   ├── test_api.py
    │   │   │   │   │   │   ├── test_caching.py
    │   │   │   │   │   │   ├── test_fromlist.py
    │   │   │   │   │   │   ├── test_meta_path.py
    │   │   │   │   │   │   ├── test_packages.py
    │   │   │   │   │   │   ├── test_path.py
    │   │   │   │   │   │   ├── test_relative_imports.py
    │   │   │   │   │   │   └── util.py
    │   │   │   │   │   └── source/
    │   │   │   │   │       ├── __init__.py
    │   │   │   │   │       ├── test_abc_loader.py
    │   │   │   │   │       ├── test_case_sensitivity.py
    │   │   │   │   │       ├── test_file_loader.py
    │   │   │   │   │       ├── test_finder.py
    │   │   │   │   │       ├── test_path_hook.py
    │   │   │   │   │       ├── test_source_encoding.py
    │   │   │   │   │       └── util.py
    │   │   │   │   └── util.py
    │   │   │   ├── inspect.py
    │   │   │   ├── io.py
    │   │   │   ├── json/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── decoder.py
    │   │   │   │   ├── encoder.py
    │   │   │   │   ├── scanner.py
    │   │   │   │   └── tool.py
    │   │   │   ├── keyword.py
    │   │   │   ├── lib2to3/
    │   │   │   │   ├── Grammar.txt
    │   │   │   │   ├── Grammar3.2.5.final.0.pickle
    │   │   │   │   ├── PatternGrammar.txt
    │   │   │   │   ├── PatternGrammar3.2.5.final.0.pickle
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── btm_matcher.py
    │   │   │   │   ├── btm_utils.py
    │   │   │   │   ├── fixer_base.py
    │   │   │   │   ├── fixer_util.py
    │   │   │   │   ├── fixes/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── fix_apply.py
    │   │   │   │   │   ├── fix_basestring.py
    │   │   │   │   │   ├── fix_buffer.py
    │   │   │   │   │   ├── fix_callable.py
    │   │   │   │   │   ├── fix_dict.py
    │   │   │   │   │   ├── fix_except.py
    │   │   │   │   │   ├── fix_exec.py
    │   │   │   │   │   ├── fix_execfile.py
    │   │   │   │   │   ├── fix_exitfunc.py
    │   │   │   │   │   ├── fix_filter.py
    │   │   │   │   │   ├── fix_funcattrs.py
    │   │   │   │   │   ├── fix_future.py
    │   │   │   │   │   ├── fix_getcwdu.py
    │   │   │   │   │   ├── fix_has_key.py
    │   │   │   │   │   ├── fix_idioms.py
    │   │   │   │   │   ├── fix_import.py
    │   │   │   │   │   ├── fix_imports.py
    │   │   │   │   │   ├── fix_imports2.py
    │   │   │   │   │   ├── fix_input.py
    │   │   │   │   │   ├── fix_intern.py
    │   │   │   │   │   ├── fix_isinstance.py
    │   │   │   │   │   ├── fix_itertools.py
    │   │   │   │   │   ├── fix_itertools_imports.py
    │   │   │   │   │   ├── fix_long.py
    │   │   │   │   │   ├── fix_map.py
    │   │   │   │   │   ├── fix_metaclass.py
    │   │   │   │   │   ├── fix_methodattrs.py
    │   │   │   │   │   ├── fix_ne.py
    │   │   │   │   │   ├── fix_next.py
    │   │   │   │   │   ├── fix_nonzero.py
    │   │   │   │   │   ├── fix_numliterals.py
    │   │   │   │   │   ├── fix_operator.py
    │   │   │   │   │   ├── fix_paren.py
    │   │   │   │   │   ├── fix_print.py
    │   │   │   │   │   ├── fix_raise.py
    │   │   │   │   │   ├── fix_raw_input.py
    │   │   │   │   │   ├── fix_reduce.py
    │   │   │   │   │   ├── fix_renames.py
    │   │   │   │   │   ├── fix_repr.py
    │   │   │   │   │   ├── fix_set_literal.py
    │   │   │   │   │   ├── fix_standarderror.py
    │   │   │   │   │   ├── fix_sys_exc.py
    │   │   │   │   │   ├── fix_throw.py
    │   │   │   │   │   ├── fix_tuple_params.py
    │   │   │   │   │   ├── fix_types.py
    │   │   │   │   │   ├── fix_unicode.py
    │   │   │   │   │   ├── fix_urllib.py
    │   │   │   │   │   ├── fix_ws_comma.py
    │   │   │   │   │   ├── fix_xrange.py
    │   │   │   │   │   ├── fix_xreadlines.py
    │   │   │   │   │   └── fix_zip.py
    │   │   │   │   ├── main.py
    │   │   │   │   ├── patcomp.py
    │   │   │   │   ├── pgen2/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── conv.py
    │   │   │   │   │   ├── driver.py
    │   │   │   │   │   ├── grammar.py
    │   │   │   │   │   ├── literals.py
    │   │   │   │   │   ├── parse.py
    │   │   │   │   │   ├── pgen.py
    │   │   │   │   │   ├── token.py
    │   │   │   │   │   └── tokenize.py
    │   │   │   │   ├── pygram.py
    │   │   │   │   ├── pytree.py
    │   │   │   │   ├── refactor.py
    │   │   │   │   └── tests/
    │   │   │   │       └── data/
    │   │   │   │           └── fixers/
    │   │   │   │               ├── bad_order.py
    │   │   │   │               ├── myfixes/
    │   │   │   │               │   ├── __init__.py
    │   │   │   │               │   ├── fix_explicit.py
    │   │   │   │               │   ├── fix_first.py
    │   │   │   │               │   ├── fix_last.py
    │   │   │   │               │   ├── fix_parrot.py
    │   │   │   │               │   └── fix_preorder.py
    │   │   │   │               ├── no_fixer_cls.py
    │   │   │   │               └── parrot_example.py
    │   │   │   ├── linecache.py
    │   │   │   ├── locale.py
    │   │   │   ├── logging/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── config.py
    │   │   │   │   └── handlers.py
    │   │   │   ├── macpath.py
    │   │   │   ├── macurl2path.py
    │   │   │   ├── mailbox.py
    │   │   │   ├── mailcap.py
    │   │   │   ├── mimetypes.py
    │   │   │   ├── modulefinder.py
    │   │   │   ├── msilib/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── schema.py
    │   │   │   │   ├── sequence.py
    │   │   │   │   └── text.py
    │   │   │   ├── multiprocessing/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── connection.py
    │   │   │   │   ├── dummy/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── connection.py
    │   │   │   │   ├── forking.py
    │   │   │   │   ├── heap.py
    │   │   │   │   ├── managers.py
    │   │   │   │   ├── pool.py
    │   │   │   │   ├── process.py
    │   │   │   │   ├── queues.py
    │   │   │   │   ├── reduction.py
    │   │   │   │   ├── sharedctypes.py
    │   │   │   │   ├── synchronize.py
    │   │   │   │   └── util.py
    │   │   │   ├── netrc.py
    │   │   │   ├── nntplib.py
    │   │   │   ├── ntpath.py
    │   │   │   ├── nturl2path.py
    │   │   │   ├── numbers.py
    │   │   │   ├── opcode.py
    │   │   │   ├── optparse.py
    │   │   │   ├── os.py
    │   │   │   ├── os2emxpath.py
    │   │   │   ├── pdb.py
    │   │   │   ├── pickle.py
    │   │   │   ├── pickletools.py
    │   │   │   ├── pipes.py
    │   │   │   ├── pkgutil.py
    │   │   │   ├── platform.py
    │   │   │   ├── plistlib.py
    │   │   │   ├── poplib.py
    │   │   │   ├── posixpath.py
    │   │   │   ├── pprint.py
    │   │   │   ├── profile.py
    │   │   │   ├── pstats.py
    │   │   │   ├── pty.py
    │   │   │   ├── py_compile.py
    │   │   │   ├── pyclbr.py
    │   │   │   ├── pydoc.py
    │   │   │   ├── pydoc_data/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _pydoc.css
    │   │   │   │   └── topics.py
    │   │   │   ├── queue.py
    │   │   │   ├── quopri.py
    │   │   │   ├── random.py
    │   │   │   ├── re.py
    │   │   │   ├── reprlib.py
    │   │   │   ├── rlcompleter.py
    │   │   │   ├── runpy.py
    │   │   │   ├── sched.py
    │   │   │   ├── shelve.py
    │   │   │   ├── shlex.py
    │   │   │   ├── shutil.py
    │   │   │   ├── site-packages/
    │   │   │   │   ├── README.txt
    │   │   │   │   ├── _markerlib/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── markers.py
    │   │   │   │   ├── easy_install.py
    │   │   │   │   ├── pip/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── __main__.py
    │   │   │   │   │   ├── _vendor/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── _markerlib/
    │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   └── markers.py
    │   │   │   │   │   │   ├── colorama/
    │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   ├── ansi.py
    │   │   │   │   │   │   │   ├── ansitowin32.py
    │   │   │   │   │   │   │   ├── initialise.py
    │   │   │   │   │   │   │   ├── win32.py
    │   │   │   │   │   │   │   └── winterm.py
    │   │   │   │   │   │   ├── distlib/
    │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   ├── _backport/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   ├── misc.py
    │   │   │   │   │   │   │   │   ├── shutil.py
    │   │   │   │   │   │   │   │   ├── sysconfig.cfg
    │   │   │   │   │   │   │   │   ├── sysconfig.py
    │   │   │   │   │   │   │   │   └── tarfile.py
    │   │   │   │   │   │   │   ├── compat.py
    │   │   │   │   │   │   │   ├── database.py
    │   │   │   │   │   │   │   ├── index.py
    │   │   │   │   │   │   │   ├── locators.py
    │   │   │   │   │   │   │   ├── manifest.py
    │   │   │   │   │   │   │   ├── markers.py
    │   │   │   │   │   │   │   ├── metadata.py
    │   │   │   │   │   │   │   ├── resources.py
    │   │   │   │   │   │   │   ├── scripts.py
    │   │   │   │   │   │   │   ├── util.py
    │   │   │   │   │   │   │   ├── version.py
    │   │   │   │   │   │   │   └── wheel.py
    │   │   │   │   │   │   ├── html5lib/
    │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   ├── constants.py
    │   │   │   │   │   │   │   ├── filters/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   ├── _base.py
    │   │   │   │   │   │   │   │   ├── alphabeticalattributes.py
    │   │   │   │   │   │   │   │   ├── inject_meta_charset.py
    │   │   │   │   │   │   │   │   ├── lint.py
    │   │   │   │   │   │   │   │   ├── optionaltags.py
    │   │   │   │   │   │   │   │   ├── sanitizer.py
    │   │   │   │   │   │   │   │   └── whitespace.py
    │   │   │   │   │   │   │   ├── html5parser.py
    │   │   │   │   │   │   │   ├── ihatexml.py
    │   │   │   │   │   │   │   ├── inputstream.py
    │   │   │   │   │   │   │   ├── sanitizer.py
    │   │   │   │   │   │   │   ├── serializer/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   └── htmlserializer.py
    │   │   │   │   │   │   │   ├── tokenizer.py
    │   │   │   │   │   │   │   ├── treebuilders/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   ├── _base.py
    │   │   │   │   │   │   │   │   ├── dom.py
    │   │   │   │   │   │   │   │   ├── etree.py
    │   │   │   │   │   │   │   │   └── etree_lxml.py
    │   │   │   │   │   │   │   ├── treewalkers/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   ├── _base.py
    │   │   │   │   │   │   │   │   ├── dom.py
    │   │   │   │   │   │   │   │   ├── etree.py
    │   │   │   │   │   │   │   │   ├── genshistream.py
    │   │   │   │   │   │   │   │   ├── lxmletree.py
    │   │   │   │   │   │   │   │   └── pulldom.py
    │   │   │   │   │   │   │   ├── trie/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   ├── _base.py
    │   │   │   │   │   │   │   │   ├── datrie.py
    │   │   │   │   │   │   │   │   └── py.py
    │   │   │   │   │   │   │   └── utils.py
    │   │   │   │   │   │   ├── pkg_resources.py
    │   │   │   │   │   │   ├── re-vendor.py
    │   │   │   │   │   │   ├── requests/
    │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   ├── adapters.py
    │   │   │   │   │   │   │   ├── api.py
    │   │   │   │   │   │   │   ├── auth.py
    │   │   │   │   │   │   │   ├── cacert.pem
    │   │   │   │   │   │   │   ├── certs.py
    │   │   │   │   │   │   │   ├── compat.py
    │   │   │   │   │   │   │   ├── cookies.py
    │   │   │   │   │   │   │   ├── exceptions.py
    │   │   │   │   │   │   │   ├── hooks.py
    │   │   │   │   │   │   │   ├── models.py
    │   │   │   │   │   │   │   ├── packages/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   ├── charade/
    │   │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   │   ├── __main__.py
    │   │   │   │   │   │   │   │   │   ├── big5freq.py
    │   │   │   │   │   │   │   │   │   ├── big5prober.py
    │   │   │   │   │   │   │   │   │   ├── chardistribution.py
    │   │   │   │   │   │   │   │   │   ├── charsetgroupprober.py
    │   │   │   │   │   │   │   │   │   ├── charsetprober.py
    │   │   │   │   │   │   │   │   │   ├── codingstatemachine.py
    │   │   │   │   │   │   │   │   │   ├── compat.py
    │   │   │   │   │   │   │   │   │   ├── constants.py
    │   │   │   │   │   │   │   │   │   ├── cp949prober.py
    │   │   │   │   │   │   │   │   │   ├── escprober.py
    │   │   │   │   │   │   │   │   │   ├── escsm.py
    │   │   │   │   │   │   │   │   │   ├── eucjpprober.py
    │   │   │   │   │   │   │   │   │   ├── euckrfreq.py
    │   │   │   │   │   │   │   │   │   ├── euckrprober.py
    │   │   │   │   │   │   │   │   │   ├── euctwfreq.py
    │   │   │   │   │   │   │   │   │   ├── euctwprober.py
    │   │   │   │   │   │   │   │   │   ├── gb2312freq.py
    │   │   │   │   │   │   │   │   │   ├── gb2312prober.py
    │   │   │   │   │   │   │   │   │   ├── hebrewprober.py
    │   │   │   │   │   │   │   │   │   ├── jisfreq.py
    │   │   │   │   │   │   │   │   │   ├── jpcntx.py
    │   │   │   │   │   │   │   │   │   ├── langbulgarianmodel.py
    │   │   │   │   │   │   │   │   │   ├── langcyrillicmodel.py
    │   │   │   │   │   │   │   │   │   ├── langgreekmodel.py
    │   │   │   │   │   │   │   │   │   ├── langhebrewmodel.py
    │   │   │   │   │   │   │   │   │   ├── langhungarianmodel.py
    │   │   │   │   │   │   │   │   │   ├── langthaimodel.py
    │   │   │   │   │   │   │   │   │   ├── latin1prober.py
    │   │   │   │   │   │   │   │   │   ├── mbcharsetprober.py
    │   │   │   │   │   │   │   │   │   ├── mbcsgroupprober.py
    │   │   │   │   │   │   │   │   │   ├── mbcssm.py
    │   │   │   │   │   │   │   │   │   ├── sbcharsetprober.py
    │   │   │   │   │   │   │   │   │   ├── sbcsgroupprober.py
    │   │   │   │   │   │   │   │   │   ├── sjisprober.py
    │   │   │   │   │   │   │   │   │   ├── universaldetector.py
    │   │   │   │   │   │   │   │   │   └── utf8prober.py
    │   │   │   │   │   │   │   │   ├── chardet/
    │   │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   │   ├── big5freq.py
    │   │   │   │   │   │   │   │   │   ├── big5prober.py
    │   │   │   │   │   │   │   │   │   ├── chardetect.py
    │   │   │   │   │   │   │   │   │   ├── chardistribution.py
    │   │   │   │   │   │   │   │   │   ├── charsetgroupprober.py
    │   │   │   │   │   │   │   │   │   ├── charsetprober.py
    │   │   │   │   │   │   │   │   │   ├── codingstatemachine.py
    │   │   │   │   │   │   │   │   │   ├── compat.py
    │   │   │   │   │   │   │   │   │   ├── constants.py
    │   │   │   │   │   │   │   │   │   ├── cp949prober.py
    │   │   │   │   │   │   │   │   │   ├── escprober.py
    │   │   │   │   │   │   │   │   │   ├── escsm.py
    │   │   │   │   │   │   │   │   │   ├── eucjpprober.py
    │   │   │   │   │   │   │   │   │   ├── euckrfreq.py
    │   │   │   │   │   │   │   │   │   ├── euckrprober.py
    │   │   │   │   │   │   │   │   │   ├── euctwfreq.py
    │   │   │   │   │   │   │   │   │   ├── euctwprober.py
    │   │   │   │   │   │   │   │   │   ├── gb2312freq.py
    │   │   │   │   │   │   │   │   │   ├── gb2312prober.py
    │   │   │   │   │   │   │   │   │   ├── hebrewprober.py
    │   │   │   │   │   │   │   │   │   ├── jisfreq.py
    │   │   │   │   │   │   │   │   │   ├── jpcntx.py
    │   │   │   │   │   │   │   │   │   ├── langbulgarianmodel.py
    │   │   │   │   │   │   │   │   │   ├── langcyrillicmodel.py
    │   │   │   │   │   │   │   │   │   ├── langgreekmodel.py
    │   │   │   │   │   │   │   │   │   ├── langhebrewmodel.py
    │   │   │   │   │   │   │   │   │   ├── langhungarianmodel.py
    │   │   │   │   │   │   │   │   │   ├── langthaimodel.py
    │   │   │   │   │   │   │   │   │   ├── latin1prober.py
    │   │   │   │   │   │   │   │   │   ├── mbcharsetprober.py
    │   │   │   │   │   │   │   │   │   ├── mbcsgroupprober.py
    │   │   │   │   │   │   │   │   │   ├── mbcssm.py
    │   │   │   │   │   │   │   │   │   ├── sbcharsetprober.py
    │   │   │   │   │   │   │   │   │   ├── sbcsgroupprober.py
    │   │   │   │   │   │   │   │   │   ├── sjisprober.py
    │   │   │   │   │   │   │   │   │   ├── universaldetector.py
    │   │   │   │   │   │   │   │   │   └── utf8prober.py
    │   │   │   │   │   │   │   │   └── urllib3/
    │   │   │   │   │   │   │   │       ├── __init__.py
    │   │   │   │   │   │   │   │       ├── _collections.py
    │   │   │   │   │   │   │   │       ├── connection.py
    │   │   │   │   │   │   │   │       ├── connectionpool.py
    │   │   │   │   │   │   │   │       ├── contrib/
    │   │   │   │   │   │   │   │       │   ├── __init__.py
    │   │   │   │   │   │   │   │       │   ├── ntlmpool.py
    │   │   │   │   │   │   │   │       │   └── pyopenssl.py
    │   │   │   │   │   │   │   │       ├── exceptions.py
    │   │   │   │   │   │   │   │       ├── fields.py
    │   │   │   │   │   │   │   │       ├── filepost.py
    │   │   │   │   │   │   │   │       ├── packages/
    │   │   │   │   │   │   │   │       │   ├── __init__.py
    │   │   │   │   │   │   │   │       │   ├── ordered_dict.py
    │   │   │   │   │   │   │   │       │   ├── six.py
    │   │   │   │   │   │   │   │       │   └── ssl_match_hostname/
    │   │   │   │   │   │   │   │       │       ├── __init__.py
    │   │   │   │   │   │   │   │       │       └── _implementation.py
    │   │   │   │   │   │   │   │       ├── poolmanager.py
    │   │   │   │   │   │   │   │       ├── request.py
    │   │   │   │   │   │   │   │       ├── response.py
    │   │   │   │   │   │   │   │       └── util.py
    │   │   │   │   │   │   │   ├── sessions.py
    │   │   │   │   │   │   │   ├── status_codes.py
    │   │   │   │   │   │   │   ├── structures.py
    │   │   │   │   │   │   │   └── utils.py
    │   │   │   │   │   │   └── six.py
    │   │   │   │   │   ├── backwardcompat/
    │   │   │   │   │   │   └── __init__.py
    │   │   │   │   │   ├── basecommand.py
    │   │   │   │   │   ├── baseparser.py
    │   │   │   │   │   ├── cmdoptions.py
    │   │   │   │   │   ├── commands/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── bundle.py
    │   │   │   │   │   │   ├── completion.py
    │   │   │   │   │   │   ├── freeze.py
    │   │   │   │   │   │   ├── help.py
    │   │   │   │   │   │   ├── install.py
    │   │   │   │   │   │   ├── list.py
    │   │   │   │   │   │   ├── search.py
    │   │   │   │   │   │   ├── show.py
    │   │   │   │   │   │   ├── uninstall.py
    │   │   │   │   │   │   ├── unzip.py
    │   │   │   │   │   │   ├── wheel.py
    │   │   │   │   │   │   └── zip.py
    │   │   │   │   │   ├── download.py
    │   │   │   │   │   ├── exceptions.py
    │   │   │   │   │   ├── index.py
    │   │   │   │   │   ├── locations.py
    │   │   │   │   │   ├── log.py
    │   │   │   │   │   ├── pep425tags.py
    │   │   │   │   │   ├── req.py
    │   │   │   │   │   ├── runner.py
    │   │   │   │   │   ├── status_codes.py
    │   │   │   │   │   ├── util.py
    │   │   │   │   │   ├── vcs/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── bazaar.py
    │   │   │   │   │   │   ├── git.py
    │   │   │   │   │   │   ├── mercurial.py
    │   │   │   │   │   │   └── subversion.py
    │   │   │   │   │   └── wheel.py
    │   │   │   │   ├── pip-1.5.4.dist-info/
    │   │   │   │   │   ├── DESCRIPTION.rst
    │   │   │   │   │   ├── METADATA
    │   │   │   │   │   ├── RECORD
    │   │   │   │   │   ├── WHEEL
    │   │   │   │   │   ├── entry_points.txt
    │   │   │   │   │   ├── pydist.json
    │   │   │   │   │   └── top_level.txt
    │   │   │   │   ├── pkg_resources.py
    │   │   │   │   ├── setuptools/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── archive_util.py
    │   │   │   │   │   ├── command/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── alias.py
    │   │   │   │   │   │   ├── bdist_egg.py
    │   │   │   │   │   │   ├── bdist_rpm.py
    │   │   │   │   │   │   ├── bdist_wininst.py
    │   │   │   │   │   │   ├── build_ext.py
    │   │   │   │   │   │   ├── build_py.py
    │   │   │   │   │   │   ├── develop.py
    │   │   │   │   │   │   ├── easy_install.py
    │   │   │   │   │   │   ├── egg_info.py
    │   │   │   │   │   │   ├── install.py
    │   │   │   │   │   │   ├── install_egg_info.py
    │   │   │   │   │   │   ├── install_lib.py
    │   │   │   │   │   │   ├── install_scripts.py
    │   │   │   │   │   │   ├── launcher manifest.xml
    │   │   │   │   │   │   ├── register.py
    │   │   │   │   │   │   ├── rotate.py
    │   │   │   │   │   │   ├── saveopts.py
    │   │   │   │   │   │   ├── sdist.py
    │   │   │   │   │   │   ├── setopt.py
    │   │   │   │   │   │   ├── test.py
    │   │   │   │   │   │   └── upload_docs.py
    │   │   │   │   │   ├── compat.py
    │   │   │   │   │   ├── depends.py
    │   │   │   │   │   ├── dist.py
    │   │   │   │   │   ├── extension.py
    │   │   │   │   │   ├── lib2to3_ex.py
    │   │   │   │   │   ├── package_index.py
    │   │   │   │   │   ├── py26compat.py
    │   │   │   │   │   ├── py27compat.py
    │   │   │   │   │   ├── py31compat.py
    │   │   │   │   │   ├── sandbox.py
    │   │   │   │   │   ├── script template (dev).py
    │   │   │   │   │   ├── script template.py
    │   │   │   │   │   ├── site-patch.py
    │   │   │   │   │   ├── ssl_support.py
    │   │   │   │   │   ├── svn_utils.py
    │   │   │   │   │   ├── tests/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── doctest.py
    │   │   │   │   │   │   ├── environment.py
    │   │   │   │   │   │   ├── py26compat.py
    │   │   │   │   │   │   ├── script-with-bom.py
    │   │   │   │   │   │   ├── server.py
    │   │   │   │   │   │   ├── test_bdist_egg.py
    │   │   │   │   │   │   ├── test_build_ext.py
    │   │   │   │   │   │   ├── test_develop.py
    │   │   │   │   │   │   ├── test_dist_info.py
    │   │   │   │   │   │   ├── test_easy_install.py
    │   │   │   │   │   │   ├── test_egg_info.py
    │   │   │   │   │   │   ├── test_find_packages.py
    │   │   │   │   │   │   ├── test_markerlib.py
    │   │   │   │   │   │   ├── test_packageindex.py
    │   │   │   │   │   │   ├── test_resources.py
    │   │   │   │   │   │   ├── test_sandbox.py
    │   │   │   │   │   │   ├── test_sdist.py
    │   │   │   │   │   │   ├── test_svn.py
    │   │   │   │   │   │   ├── test_test.py
    │   │   │   │   │   │   └── test_upload_docs.py
    │   │   │   │   │   └── version.py
    │   │   │   │   └── setuptools-3.3.dist-info/
    │   │   │   │       ├── DESCRIPTION.rst
    │   │   │   │       ├── METADATA
    │   │   │   │       ├── RECORD
    │   │   │   │       ├── WHEEL
    │   │   │   │       ├── dependency_links.txt
    │   │   │   │       ├── dependency_links.txt.orig
    │   │   │   │       ├── entry_points.txt
    │   │   │   │       ├── entry_points.txt.orig
    │   │   │   │       ├── pydist.json
    │   │   │   │       ├── requires.txt.orig
    │   │   │   │       ├── top_level.txt
    │   │   │   │       └── zip-safe
    │   │   │   ├── site.py
    │   │   │   ├── smtpd.py
    │   │   │   ├── smtplib.py
    │   │   │   ├── sndhdr.py
    │   │   │   ├── socket.py
    │   │   │   ├── socketserver.py
    │   │   │   ├── sqlite3/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── dbapi2.py
    │   │   │   │   └── dump.py
    │   │   │   ├── sre_compile.py
    │   │   │   ├── sre_constants.py
    │   │   │   ├── sre_parse.py
    │   │   │   ├── ssl.py
    │   │   │   ├── stat.py
    │   │   │   ├── string.py
    │   │   │   ├── stringprep.py
    │   │   │   ├── struct.py
    │   │   │   ├── subprocess.py
    │   │   │   ├── sunau.py
    │   │   │   ├── symbol.py
    │   │   │   ├── symtable.py
    │   │   │   ├── sysconfig.py
    │   │   │   ├── tabnanny.py
    │   │   │   ├── tarfile.py
    │   │   │   ├── telnetlib.py
    │   │   │   ├── tempfile.py
    │   │   │   ├── test/
    │   │   │   │   ├── capath/
    │   │   │   │   │   ├── 4e1295a3.0
    │   │   │   │   │   ├── 5ed36f99.0
    │   │   │   │   │   ├── 6e88d7b8.0
    │   │   │   │   │   └── 99d0fa06.0
    │   │   │   │   ├── cjkencodings/
    │   │   │   │   │   ├── big5-utf8.txt
    │   │   │   │   │   ├── big5.txt
    │   │   │   │   │   ├── big5hkscs-utf8.txt
    │   │   │   │   │   ├── big5hkscs.txt
    │   │   │   │   │   ├── cp949-utf8.txt
    │   │   │   │   │   ├── cp949.txt
    │   │   │   │   │   ├── euc_jisx0213-utf8.txt
    │   │   │   │   │   ├── euc_jisx0213.txt
    │   │   │   │   │   ├── euc_jp-utf8.txt
    │   │   │   │   │   ├── euc_jp.txt
    │   │   │   │   │   ├── euc_kr-utf8.txt
    │   │   │   │   │   ├── euc_kr.txt
    │   │   │   │   │   ├── gb18030-utf8.txt
    │   │   │   │   │   ├── gb18030.txt
    │   │   │   │   │   ├── gb2312-utf8.txt
    │   │   │   │   │   ├── gb2312.txt
    │   │   │   │   │   ├── gbk-utf8.txt
    │   │   │   │   │   ├── gbk.txt
    │   │   │   │   │   ├── hz-utf8.txt
    │   │   │   │   │   ├── hz.txt
    │   │   │   │   │   ├── iso2022_jp-utf8.txt
    │   │   │   │   │   ├── iso2022_jp.txt
    │   │   │   │   │   ├── iso2022_kr-utf8.txt
    │   │   │   │   │   ├── iso2022_kr.txt
    │   │   │   │   │   ├── johab-utf8.txt
    │   │   │   │   │   ├── johab.txt
    │   │   │   │   │   ├── shift_jis-utf8.txt
    │   │   │   │   │   ├── shift_jis.txt
    │   │   │   │   │   ├── shift_jisx0213-utf8.txt
    │   │   │   │   │   └── shift_jisx0213.txt
    │   │   │   │   ├── crashers/
    │   │   │   │   │   ├── README
    │   │   │   │   │   ├── bogus_code_obj.py
    │   │   │   │   │   ├── borrowed_ref_1.py
    │   │   │   │   │   ├── borrowed_ref_2.py
    │   │   │   │   │   ├── compiler_recursion.py
    │   │   │   │   │   ├── gc_inspection.py
    │   │   │   │   │   ├── infinite_loop_re.py
    │   │   │   │   │   ├── loosing_mro_ref.py
    │   │   │   │   │   ├── mutation_inside_cyclegc.py
    │   │   │   │   │   ├── nasty_eq_vs_dict.py
    │   │   │   │   │   ├── recursion_limit_too_high.py
    │   │   │   │   │   ├── recursive_call.py
    │   │   │   │   │   ├── trace_at_recursion_limit.py
    │   │   │   │   │   └── underlying_dict.py
    │   │   │   │   ├── decimaltestdata/
    │   │   │   │   │   ├── abs.decTest
    │   │   │   │   │   ├── add.decTest
    │   │   │   │   │   ├── and.decTest
    │   │   │   │   │   ├── base.decTest
    │   │   │   │   │   ├── clamp.decTest
    │   │   │   │   │   ├── class.decTest
    │   │   │   │   │   ├── compare.decTest
    │   │   │   │   │   ├── comparetotal.decTest
    │   │   │   │   │   ├── comparetotmag.decTest
    │   │   │   │   │   ├── copy.decTest
    │   │   │   │   │   ├── copyabs.decTest
    │   │   │   │   │   ├── copynegate.decTest
    │   │   │   │   │   ├── copysign.decTest
    │   │   │   │   │   ├── ddAbs.decTest
    │   │   │   │   │   ├── ddAdd.decTest
    │   │   │   │   │   ├── ddAnd.decTest
    │   │   │   │   │   ├── ddBase.decTest
    │   │   │   │   │   ├── ddCanonical.decTest
    │   │   │   │   │   ├── ddClass.decTest
    │   │   │   │   │   ├── ddCompare.decTest
    │   │   │   │   │   ├── ddCompareSig.decTest
    │   │   │   │   │   ├── ddCompareTotal.decTest
    │   │   │   │   │   ├── ddCompareTotalMag.decTest
    │   │   │   │   │   ├── ddCopy.decTest
    │   │   │   │   │   ├── ddCopyAbs.decTest
    │   │   │   │   │   ├── ddCopyNegate.decTest
    │   │   │   │   │   ├── ddCopySign.decTest
    │   │   │   │   │   ├── ddDivide.decTest
    │   │   │   │   │   ├── ddDivideInt.decTest
    │   │   │   │   │   ├── ddEncode.decTest
    │   │   │   │   │   ├── ddFMA.decTest
    │   │   │   │   │   ├── ddInvert.decTest
    │   │   │   │   │   ├── ddLogB.decTest
    │   │   │   │   │   ├── ddMax.decTest
    │   │   │   │   │   ├── ddMaxMag.decTest
    │   │   │   │   │   ├── ddMin.decTest
    │   │   │   │   │   ├── ddMinMag.decTest
    │   │   │   │   │   ├── ddMinus.decTest
    │   │   │   │   │   ├── ddMultiply.decTest
    │   │   │   │   │   ├── ddNextMinus.decTest
    │   │   │   │   │   ├── ddNextPlus.decTest
    │   │   │   │   │   ├── ddNextToward.decTest
    │   │   │   │   │   ├── ddOr.decTest
    │   │   │   │   │   ├── ddPlus.decTest
    │   │   │   │   │   ├── ddQuantize.decTest
    │   │   │   │   │   ├── ddReduce.decTest
    │   │   │   │   │   ├── ddRemainder.decTest
    │   │   │   │   │   ├── ddRemainderNear.decTest
    │   │   │   │   │   ├── ddRotate.decTest
    │   │   │   │   │   ├── ddSameQuantum.decTest
    │   │   │   │   │   ├── ddScaleB.decTest
    │   │   │   │   │   ├── ddShift.decTest
    │   │   │   │   │   ├── ddSubtract.decTest
    │   │   │   │   │   ├── ddToIntegral.decTest
    │   │   │   │   │   ├── ddXor.decTest
    │   │   │   │   │   ├── decDouble.decTest
    │   │   │   │   │   ├── decQuad.decTest
    │   │   │   │   │   ├── decSingle.decTest
    │   │   │   │   │   ├── divide.decTest
    │   │   │   │   │   ├── divideint.decTest
    │   │   │   │   │   ├── dqAbs.decTest
    │   │   │   │   │   ├── dqAdd.decTest
    │   │   │   │   │   ├── dqAnd.decTest
    │   │   │   │   │   ├── dqBase.decTest
    │   │   │   │   │   ├── dqCanonical.decTest
    │   │   │   │   │   ├── dqClass.decTest
    │   │   │   │   │   ├── dqCompare.decTest
    │   │   │   │   │   ├── dqCompareSig.decTest
    │   │   │   │   │   ├── dqCompareTotal.decTest
    │   │   │   │   │   ├── dqCompareTotalMag.decTest
    │   │   │   │   │   ├── dqCopy.decTest
    │   │   │   │   │   ├── dqCopyAbs.decTest
    │   │   │   │   │   ├── dqCopyNegate.decTest
    │   │   │   │   │   ├── dqCopySign.decTest
    │   │   │   │   │   ├── dqDivide.decTest
    │   │   │   │   │   ├── dqDivideInt.decTest
    │   │   │   │   │   ├── dqEncode.decTest
    │   │   │   │   │   ├── dqFMA.decTest
    │   │   │   │   │   ├── dqInvert.decTest
    │   │   │   │   │   ├── dqLogB.decTest
    │   │   │   │   │   ├── dqMax.decTest
    │   │   │   │   │   ├── dqMaxMag.decTest
    │   │   │   │   │   ├── dqMin.decTest
    │   │   │   │   │   ├── dqMinMag.decTest
    │   │   │   │   │   ├── dqMinus.decTest
    │   │   │   │   │   ├── dqMultiply.decTest
    │   │   │   │   │   ├── dqNextMinus.decTest
    │   │   │   │   │   ├── dqNextPlus.decTest
    │   │   │   │   │   ├── dqNextToward.decTest
    │   │   │   │   │   ├── dqOr.decTest
    │   │   │   │   │   ├── dqPlus.decTest
    │   │   │   │   │   ├── dqQuantize.decTest
    │   │   │   │   │   ├── dqReduce.decTest
    │   │   │   │   │   ├── dqRemainder.decTest
    │   │   │   │   │   ├── dqRemainderNear.decTest
    │   │   │   │   │   ├── dqRotate.decTest
    │   │   │   │   │   ├── dqSameQuantum.decTest
    │   │   │   │   │   ├── dqScaleB.decTest
    │   │   │   │   │   ├── dqShift.decTest
    │   │   │   │   │   ├── dqSubtract.decTest
    │   │   │   │   │   ├── dqToIntegral.decTest
    │   │   │   │   │   ├── dqXor.decTest
    │   │   │   │   │   ├── dsBase.decTest
    │   │   │   │   │   ├── dsEncode.decTest
    │   │   │   │   │   ├── exp.decTest
    │   │   │   │   │   ├── extra.decTest
    │   │   │   │   │   ├── fma.decTest
    │   │   │   │   │   ├── inexact.decTest
    │   │   │   │   │   ├── invert.decTest
    │   │   │   │   │   ├── ln.decTest
    │   │   │   │   │   ├── log10.decTest
    │   │   │   │   │   ├── logb.decTest
    │   │   │   │   │   ├── max.decTest
    │   │   │   │   │   ├── maxmag.decTest
    │   │   │   │   │   ├── min.decTest
    │   │   │   │   │   ├── minmag.decTest
    │   │   │   │   │   ├── minus.decTest
    │   │   │   │   │   ├── multiply.decTest
    │   │   │   │   │   ├── nextminus.decTest
    │   │   │   │   │   ├── nextplus.decTest
    │   │   │   │   │   ├── nexttoward.decTest
    │   │   │   │   │   ├── or.decTest
    │   │   │   │   │   ├── plus.decTest
    │   │   │   │   │   ├── power.decTest
    │   │   │   │   │   ├── powersqrt.decTest
    │   │   │   │   │   ├── quantize.decTest
    │   │   │   │   │   ├── randomBound32.decTest
    │   │   │   │   │   ├── randoms.decTest
    │   │   │   │   │   ├── reduce.decTest
    │   │   │   │   │   ├── remainder.decTest
    │   │   │   │   │   ├── remainderNear.decTest
    │   │   │   │   │   ├── rescale.decTest
    │   │   │   │   │   ├── rotate.decTest
    │   │   │   │   │   ├── rounding.decTest
    │   │   │   │   │   ├── samequantum.decTest
    │   │   │   │   │   ├── scaleb.decTest
    │   │   │   │   │   ├── shift.decTest
    │   │   │   │   │   ├── squareroot.decTest
    │   │   │   │   │   ├── subtract.decTest
    │   │   │   │   │   ├── testall.decTest
    │   │   │   │   │   ├── tointegral.decTest
    │   │   │   │   │   ├── tointegralx.decTest
    │   │   │   │   │   └── xor.decTest
    │   │   │   │   ├── encoded_modules/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── module_iso_8859_1.py
    │   │   │   │   │   └── module_koi8_r.py
    │   │   │   │   ├── json_tests/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── test_decode.py
    │   │   │   │   │   ├── test_default.py
    │   │   │   │   │   ├── test_dump.py
    │   │   │   │   │   ├── test_encode_basestring_ascii.py
    │   │   │   │   │   ├── test_fail.py
    │   │   │   │   │   ├── test_float.py
    │   │   │   │   │   ├── test_indent.py
    │   │   │   │   │   ├── test_pass1.py
    │   │   │   │   │   ├── test_pass2.py
    │   │   │   │   │   ├── test_pass3.py
    │   │   │   │   │   ├── test_recursion.py
    │   │   │   │   │   ├── test_scanstring.py
    │   │   │   │   │   ├── test_separators.py
    │   │   │   │   │   ├── test_speedups.py
    │   │   │   │   │   ├── test_tool.py
    │   │   │   │   │   └── test_unicode.py
    │   │   │   │   ├── leakers/
    │   │   │   │   │   ├── README.txt
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── test_ctypes.py
    │   │   │   │   │   ├── test_gestalt.py
    │   │   │   │   │   └── test_selftype.py
    │   │   │   │   ├── sndhdrdata/
    │   │   │   │   │   ├── README
    │   │   │   │   │   ├── sndhdr.8svx
    │   │   │   │   │   ├── sndhdr.aifc
    │   │   │   │   │   ├── sndhdr.aiff
    │   │   │   │   │   ├── sndhdr.au
    │   │   │   │   │   ├── sndhdr.hcom
    │   │   │   │   │   ├── sndhdr.sndt
    │   │   │   │   │   └── sndhdr.voc
    │   │   │   │   ├── subprocessdata/
    │   │   │   │   │   ├── fd_status.py
    │   │   │   │   │   ├── input_reader.py
    │   │   │   │   │   ├── qcat.py
    │   │   │   │   │   ├── qgrep.py
    │   │   │   │   │   └── sigchild_ignore.py
    │   │   │   │   ├── tracedmodules/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── testmod.py
    │   │   │   │   └── xmltestdata/
    │   │   │   │       ├── simple-ns.xml
    │   │   │   │       ├── simple.xml
    │   │   │   │       ├── test.xml
    │   │   │   │       └── test.xml.out
    │   │   │   ├── textwrap.py
    │   │   │   ├── this.py
    │   │   │   ├── threading.py
    │   │   │   ├── timeit.py
    │   │   │   ├── tkinter/
    │   │   │   │   └── test/
    │   │   │   │       ├── test_tkinter/
    │   │   │   │       │   ├── __init__.py
    │   │   │   │       │   ├── test_font.py
    │   │   │   │       │   ├── test_loadtk.py
    │   │   │   │       │   ├── test_misc.py
    │   │   │   │       │   └── test_text.py
    │   │   │   │       └── test_ttk/
    │   │   │   │           ├── __init__.py
    │   │   │   │           ├── test_extensions.py
    │   │   │   │           ├── test_functions.py
    │   │   │   │           ├── test_style.py
    │   │   │   │           └── test_widgets.py
    │   │   │   ├── token.py
    │   │   │   ├── tokenize.py
    │   │   │   ├── trace.py
    │   │   │   ├── traceback.py
    │   │   │   ├── tty.py
    │   │   │   ├── turtle.py
    │   │   │   ├── turtledemo/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── __main__.py
    │   │   │   │   ├── about_turtle.txt
    │   │   │   │   ├── about_turtledemo.txt
    │   │   │   │   ├── bytedesign.py
    │   │   │   │   ├── chaos.py
    │   │   │   │   ├── clock.py
    │   │   │   │   ├── colormixer.py
    │   │   │   │   ├── demohelp.txt
    │   │   │   │   ├── forest.py
    │   │   │   │   ├── fractalcurves.py
    │   │   │   │   ├── lindenmayer.py
    │   │   │   │   ├── minimal_hanoi.py
    │   │   │   │   ├── nim.py
    │   │   │   │   ├── paint.py
    │   │   │   │   ├── peace.py
    │   │   │   │   ├── penrose.py
    │   │   │   │   ├── planet_and_moon.py
    │   │   │   │   ├── round_dance.py
    │   │   │   │   ├── tree.py
    │   │   │   │   ├── turtle.cfg
    │   │   │   │   ├── two_canvases.py
    │   │   │   │   ├── wikipedia.py
    │   │   │   │   └── yinyang.py
    │   │   │   ├── types.py
    │   │   │   ├── unittest/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── __main__.py
    │   │   │   │   ├── case.py
    │   │   │   │   ├── loader.py
    │   │   │   │   ├── main.py
    │   │   │   │   ├── result.py
    │   │   │   │   ├── runner.py
    │   │   │   │   ├── signals.py
    │   │   │   │   ├── suite.py
    │   │   │   │   └── util.py
    │   │   │   ├── urllib/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── error.py
    │   │   │   │   ├── parse.py
    │   │   │   │   ├── request.py
    │   │   │   │   ├── response.py
    │   │   │   │   └── robotparser.py
    │   │   │   ├── uu.py
    │   │   │   ├── uuid.py
    │   │   │   ├── warnings.py
    │   │   │   ├── wave.py
    │   │   │   ├── weakref.py
    │   │   │   ├── webbrowser.py
    │   │   │   ├── wsgiref/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── handlers.py
    │   │   │   │   ├── headers.py
    │   │   │   │   ├── simple_server.py
    │   │   │   │   ├── util.py
    │   │   │   │   └── validate.py
    │   │   │   ├── wsgiref.egg-info
    │   │   │   ├── xdrlib.py
    │   │   │   ├── xml/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── dom/
    │   │   │   │   │   ├── NodeFilter.py
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── domreg.py
    │   │   │   │   │   ├── expatbuilder.py
    │   │   │   │   │   ├── minicompat.py
    │   │   │   │   │   ├── minidom.py
    │   │   │   │   │   ├── pulldom.py
    │   │   │   │   │   └── xmlbuilder.py
    │   │   │   │   ├── etree/
    │   │   │   │   │   ├── ElementInclude.py
    │   │   │   │   │   ├── ElementPath.py
    │   │   │   │   │   ├── ElementTree.py
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── cElementTree.py
    │   │   │   │   ├── parsers/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── expat.py
    │   │   │   │   └── sax/
    │   │   │   │       ├── __init__.py
    │   │   │   │       ├── _exceptions.py
    │   │   │   │       ├── expatreader.py
    │   │   │   │       ├── handler.py
    │   │   │   │       ├── saxutils.py
    │   │   │   │       └── xmlreader.py
    │   │   │   ├── xmlrpc/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── client.py
    │   │   │   │   └── server.py
    │   │   │   └── zipfile.py
    │   │   ├── NEWS.txt
    │   │   ├── README.txt
    │   │   ├── include/
    │   │   │   ├── Python-ast.h
    │   │   │   ├── Python.h
    │   │   │   ├── abstract.h
    │   │   │   ├── accu.h
    │   │   │   ├── asdl.h
    │   │   │   ├── ast.h
    │   │   │   ├── bitset.h
    │   │   │   ├── bltinmodule.h
    │   │   │   ├── boolobject.h
    │   │   │   ├── bytearrayobject.h
    │   │   │   ├── bytes_methods.h
    │   │   │   ├── bytesobject.h
    │   │   │   ├── cellobject.h
    │   │   │   ├── ceval.h
    │   │   │   ├── classobject.h
    │   │   │   ├── code.h
    │   │   │   ├── codecs.h
    │   │   │   ├── compile.h
    │   │   │   ├── complexobject.h
    │   │   │   ├── datetime.h
    │   │   │   ├── descrobject.h
    │   │   │   ├── dictobject.h
    │   │   │   ├── dtoa.h
    │   │   │   ├── dynamic_annotations.h
    │   │   │   ├── enumobject.h
    │   │   │   ├── errcode.h
    │   │   │   ├── eval.h
    │   │   │   ├── fileobject.h
    │   │   │   ├── fileutils.h
    │   │   │   ├── floatobject.h
    │   │   │   ├── frameobject.h
    │   │   │   ├── funcobject.h
    │   │   │   ├── genobject.h
    │   │   │   ├── graminit.h
    │   │   │   ├── grammar.h
    │   │   │   ├── import.h
    │   │   │   ├── intrcheck.h
    │   │   │   ├── iterobject.h
    │   │   │   ├── listobject.h
    │   │   │   ├── longintrepr.h
    │   │   │   ├── longobject.h
    │   │   │   ├── marshal.h
    │   │   │   ├── memoryobject.h
    │   │   │   ├── metagrammar.h
    │   │   │   ├── methodobject.h
    │   │   │   ├── modsupport.h
    │   │   │   ├── moduleobject.h
    │   │   │   ├── node.h
    │   │   │   ├── object.h
    │   │   │   ├── objimpl.h
    │   │   │   ├── opcode.h
    │   │   │   ├── osdefs.h
    │   │   │   ├── parsetok.h
    │   │   │   ├── patchlevel.h
    │   │   │   ├── pgen.h
    │   │   │   ├── pgenheaders.h
    │   │   │   ├── py_curses.h
    │   │   │   ├── pyarena.h
    │   │   │   ├── pyatomic.h
    │   │   │   ├── pycapsule.h
    │   │   │   ├── pyconfig.h
    │   │   │   ├── pyctype.h
    │   │   │   ├── pydebug.h
    │   │   │   ├── pyerrors.h
    │   │   │   ├── pyexpat.h
    │   │   │   ├── pyfpe.h
    │   │   │   ├── pygetopt.h
    │   │   │   ├── pymacconfig.h
    │   │   │   ├── pymath.h
    │   │   │   ├── pymem.h
    │   │   │   ├── pyport.h
    │   │   │   ├── pystate.h
    │   │   │   ├── pystrcmp.h
    │   │   │   ├── pystrtod.h
    │   │   │   ├── pythonrun.h
    │   │   │   ├── pythread.h
    │   │   │   ├── pytime.h
    │   │   │   ├── rangeobject.h
    │   │   │   ├── setobject.h
    │   │   │   ├── sliceobject.h
    │   │   │   ├── structmember.h
    │   │   │   ├── structseq.h
    │   │   │   ├── symtable.h
    │   │   │   ├── sysmodule.h
    │   │   │   ├── timefuncs.h
    │   │   │   ├── token.h
    │   │   │   ├── traceback.h
    │   │   │   ├── tupleobject.h
    │   │   │   ├── typeslots.h
    │   │   │   ├── ucnhash.h
    │   │   │   ├── unicodeobject.h
    │   │   │   ├── warnings.h
    │   │   │   └── weakrefobject.h
    │   │   └── libs/
    │   │       └── libpython32.a
    │   ├── win32-py33/
    │   │   ├── DLLs/
    │   │   │   ├── _bz2.pyd
    │   │   │   ├── _ctypes.pyd
    │   │   │   ├── _ctypes_test.pyd
    │   │   │   ├── _decimal.pyd
    │   │   │   ├── _elementtree.pyd
    │   │   │   ├── _hashlib.pyd
    │   │   │   ├── _lzma.pyd
    │   │   │   ├── _msi.pyd
    │   │   │   ├── _multiprocessing.pyd
    │   │   │   ├── _socket.pyd
    │   │   │   ├── _sqlite3.pyd
    │   │   │   ├── _ssl.pyd
    │   │   │   ├── _testbuffer.pyd
    │   │   │   ├── _testcapi.pyd
    │   │   │   ├── pyexpat.pyd
    │   │   │   ├── select.pyd
    │   │   │   ├── unicodedata.pyd
    │   │   │   └── winsound.pyd
    │   │   ├── LICENSE.txt
    │   │   ├── Lib/
    │   │   │   ├── __future__.py
    │   │   │   ├── __phello__.foo.py
    │   │   │   ├── _compat_pickle.py
    │   │   │   ├── _dummy_thread.py
    │   │   │   ├── _markupbase.py
    │   │   │   ├── _osx_support.py
    │   │   │   ├── _pyio.py
    │   │   │   ├── _strptime.py
    │   │   │   ├── _threading_local.py
    │   │   │   ├── _weakrefset.py
    │   │   │   ├── abc.py
    │   │   │   ├── aifc.py
    │   │   │   ├── antigravity.py
    │   │   │   ├── argparse.py
    │   │   │   ├── ast.py
    │   │   │   ├── asynchat.py
    │   │   │   ├── asyncore.py
    │   │   │   ├── base64.py
    │   │   │   ├── bdb.py
    │   │   │   ├── binhex.py
    │   │   │   ├── bisect.py
    │   │   │   ├── bz2.py
    │   │   │   ├── cProfile.py
    │   │   │   ├── calendar.py
    │   │   │   ├── cgi.py
    │   │   │   ├── cgitb.py
    │   │   │   ├── chunk.py
    │   │   │   ├── cmd.py
    │   │   │   ├── code.py
    │   │   │   ├── codecs.py
    │   │   │   ├── codeop.py
    │   │   │   ├── collections/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── __main__.py
    │   │   │   │   └── abc.py
    │   │   │   ├── colorsys.py
    │   │   │   ├── compileall.py
    │   │   │   ├── concurrent/
    │   │   │   │   ├── __init__.py
    │   │   │   │   └── futures/
    │   │   │   │       ├── __init__.py
    │   │   │   │       ├── _base.py
    │   │   │   │       ├── process.py
    │   │   │   │       └── thread.py
    │   │   │   ├── configparser.py
    │   │   │   ├── contextlib.py
    │   │   │   ├── copy.py
    │   │   │   ├── copyreg.py
    │   │   │   ├── crypt.py
    │   │   │   ├── csv.py
    │   │   │   ├── ctypes/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _endian.py
    │   │   │   │   ├── macholib/
    │   │   │   │   │   ├── README.ctypes
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── dyld.py
    │   │   │   │   │   ├── dylib.py
    │   │   │   │   │   ├── fetch_macholib
    │   │   │   │   │   ├── fetch_macholib.bat
    │   │   │   │   │   └── framework.py
    │   │   │   │   ├── util.py
    │   │   │   │   └── wintypes.py
    │   │   │   ├── curses/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── ascii.py
    │   │   │   │   ├── has_key.py
    │   │   │   │   ├── panel.py
    │   │   │   │   └── textpad.py
    │   │   │   ├── datetime.py
    │   │   │   ├── dbm/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── dumb.py
    │   │   │   │   ├── gnu.py
    │   │   │   │   └── ndbm.py
    │   │   │   ├── decimal.py
    │   │   │   ├── difflib.py
    │   │   │   ├── dis.py
    │   │   │   ├── distutils/
    │   │   │   │   ├── README.txt
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── archive_util.py
    │   │   │   │   ├── bcppcompiler.py
    │   │   │   │   ├── ccompiler.py
    │   │   │   │   ├── cmd.py
    │   │   │   │   ├── command/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── bdist.py
    │   │   │   │   │   ├── bdist_dumb.py
    │   │   │   │   │   ├── bdist_msi.py
    │   │   │   │   │   ├── bdist_rpm.py
    │   │   │   │   │   ├── bdist_wininst.py
    │   │   │   │   │   ├── build.py
    │   │   │   │   │   ├── build_clib.py
    │   │   │   │   │   ├── build_ext.py
    │   │   │   │   │   ├── build_py.py
    │   │   │   │   │   ├── build_scripts.py
    │   │   │   │   │   ├── check.py
    │   │   │   │   │   ├── clean.py
    │   │   │   │   │   ├── command_template
    │   │   │   │   │   ├── config.py
    │   │   │   │   │   ├── install.py
    │   │   │   │   │   ├── install_data.py
    │   │   │   │   │   ├── install_egg_info.py
    │   │   │   │   │   ├── install_headers.py
    │   │   │   │   │   ├── install_lib.py
    │   │   │   │   │   ├── install_scripts.py
    │   │   │   │   │   ├── register.py
    │   │   │   │   │   ├── sdist.py
    │   │   │   │   │   └── upload.py
    │   │   │   │   ├── config.py
    │   │   │   │   ├── core.py
    │   │   │   │   ├── cygwinccompiler.py
    │   │   │   │   ├── debug.py
    │   │   │   │   ├── dep_util.py
    │   │   │   │   ├── dir_util.py
    │   │   │   │   ├── dist.py
    │   │   │   │   ├── emxccompiler.py
    │   │   │   │   ├── errors.py
    │   │   │   │   ├── extension.py
    │   │   │   │   ├── fancy_getopt.py
    │   │   │   │   ├── file_util.py
    │   │   │   │   ├── filelist.py
    │   │   │   │   ├── log.py
    │   │   │   │   ├── msvc9compiler.py
    │   │   │   │   ├── msvccompiler.py
    │   │   │   │   ├── spawn.py
    │   │   │   │   ├── sysconfig.py
    │   │   │   │   ├── text_file.py
    │   │   │   │   ├── unixccompiler.py
    │   │   │   │   ├── util.py
    │   │   │   │   ├── version.py
    │   │   │   │   └── versionpredicate.py
    │   │   │   ├── doctest.py
    │   │   │   ├── dummy_threading.py
    │   │   │   ├── email/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _encoded_words.py
    │   │   │   │   ├── _header_value_parser.py
    │   │   │   │   ├── _parseaddr.py
    │   │   │   │   ├── _policybase.py
    │   │   │   │   ├── architecture.rst
    │   │   │   │   ├── base64mime.py
    │   │   │   │   ├── charset.py
    │   │   │   │   ├── encoders.py
    │   │   │   │   ├── errors.py
    │   │   │   │   ├── feedparser.py
    │   │   │   │   ├── generator.py
    │   │   │   │   ├── header.py
    │   │   │   │   ├── headerregistry.py
    │   │   │   │   ├── iterators.py
    │   │   │   │   ├── message.py
    │   │   │   │   ├── mime/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── application.py
    │   │   │   │   │   ├── audio.py
    │   │   │   │   │   ├── base.py
    │   │   │   │   │   ├── image.py
    │   │   │   │   │   ├── message.py
    │   │   │   │   │   ├── multipart.py
    │   │   │   │   │   ├── nonmultipart.py
    │   │   │   │   │   └── text.py
    │   │   │   │   ├── parser.py
    │   │   │   │   ├── policy.py
    │   │   │   │   ├── quoprimime.py
    │   │   │   │   └── utils.py
    │   │   │   ├── encodings/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── aliases.py
    │   │   │   │   ├── ascii.py
    │   │   │   │   ├── base64_codec.py
    │   │   │   │   ├── big5.py
    │   │   │   │   ├── big5hkscs.py
    │   │   │   │   ├── bz2_codec.py
    │   │   │   │   ├── charmap.py
    │   │   │   │   ├── cp037.py
    │   │   │   │   ├── cp1006.py
    │   │   │   │   ├── cp1026.py
    │   │   │   │   ├── cp1140.py
    │   │   │   │   ├── cp1250.py
    │   │   │   │   ├── cp1251.py
    │   │   │   │   ├── cp1252.py
    │   │   │   │   ├── cp1253.py
    │   │   │   │   ├── cp1254.py
    │   │   │   │   ├── cp1255.py
    │   │   │   │   ├── cp1256.py
    │   │   │   │   ├── cp1257.py
    │   │   │   │   ├── cp1258.py
    │   │   │   │   ├── cp424.py
    │   │   │   │   ├── cp437.py
    │   │   │   │   ├── cp500.py
    │   │   │   │   ├── cp65001.py
    │   │   │   │   ├── cp720.py
    │   │   │   │   ├── cp737.py
    │   │   │   │   ├── cp775.py
    │   │   │   │   ├── cp850.py
    │   │   │   │   ├── cp852.py
    │   │   │   │   ├── cp855.py
    │   │   │   │   ├── cp856.py
    │   │   │   │   ├── cp857.py
    │   │   │   │   ├── cp858.py
    │   │   │   │   ├── cp860.py
    │   │   │   │   ├── cp861.py
    │   │   │   │   ├── cp862.py
    │   │   │   │   ├── cp863.py
    │   │   │   │   ├── cp864.py
    │   │   │   │   ├── cp865.py
    │   │   │   │   ├── cp866.py
    │   │   │   │   ├── cp869.py
    │   │   │   │   ├── cp874.py
    │   │   │   │   ├── cp875.py
    │   │   │   │   ├── cp932.py
    │   │   │   │   ├── cp949.py
    │   │   │   │   ├── cp950.py
    │   │   │   │   ├── euc_jis_2004.py
    │   │   │   │   ├── euc_jisx0213.py
    │   │   │   │   ├── euc_jp.py
    │   │   │   │   ├── euc_kr.py
    │   │   │   │   ├── gb18030.py
    │   │   │   │   ├── gb2312.py
    │   │   │   │   ├── gbk.py
    │   │   │   │   ├── hex_codec.py
    │   │   │   │   ├── hp_roman8.py
    │   │   │   │   ├── hz.py
    │   │   │   │   ├── idna.py
    │   │   │   │   ├── iso2022_jp.py
    │   │   │   │   ├── iso2022_jp_1.py
    │   │   │   │   ├── iso2022_jp_2.py
    │   │   │   │   ├── iso2022_jp_2004.py
    │   │   │   │   ├── iso2022_jp_3.py
    │   │   │   │   ├── iso2022_jp_ext.py
    │   │   │   │   ├── iso2022_kr.py
    │   │   │   │   ├── iso8859_1.py
    │   │   │   │   ├── iso8859_10.py
    │   │   │   │   ├── iso8859_11.py
    │   │   │   │   ├── iso8859_13.py
    │   │   │   │   ├── iso8859_14.py
    │   │   │   │   ├── iso8859_15.py
    │   │   │   │   ├── iso8859_16.py
    │   │   │   │   ├── iso8859_2.py
    │   │   │   │   ├── iso8859_3.py
    │   │   │   │   ├── iso8859_4.py
    │   │   │   │   ├── iso8859_5.py
    │   │   │   │   ├── iso8859_6.py
    │   │   │   │   ├── iso8859_7.py
    │   │   │   │   ├── iso8859_8.py
    │   │   │   │   ├── iso8859_9.py
    │   │   │   │   ├── johab.py
    │   │   │   │   ├── koi8_r.py
    │   │   │   │   ├── koi8_u.py
    │   │   │   │   ├── latin_1.py
    │   │   │   │   ├── mac_arabic.py
    │   │   │   │   ├── mac_centeuro.py
    │   │   │   │   ├── mac_croatian.py
    │   │   │   │   ├── mac_cyrillic.py
    │   │   │   │   ├── mac_farsi.py
    │   │   │   │   ├── mac_greek.py
    │   │   │   │   ├── mac_iceland.py
    │   │   │   │   ├── mac_latin2.py
    │   │   │   │   ├── mac_roman.py
    │   │   │   │   ├── mac_romanian.py
    │   │   │   │   ├── mac_turkish.py
    │   │   │   │   ├── mbcs.py
    │   │   │   │   ├── palmos.py
    │   │   │   │   ├── ptcp154.py
    │   │   │   │   ├── punycode.py
    │   │   │   │   ├── quopri_codec.py
    │   │   │   │   ├── raw_unicode_escape.py
    │   │   │   │   ├── rot_13.py
    │   │   │   │   ├── shift_jis.py
    │   │   │   │   ├── shift_jis_2004.py
    │   │   │   │   ├── shift_jisx0213.py
    │   │   │   │   ├── tis_620.py
    │   │   │   │   ├── undefined.py
    │   │   │   │   ├── unicode_escape.py
    │   │   │   │   ├── unicode_internal.py
    │   │   │   │   ├── utf_16.py
    │   │   │   │   ├── utf_16_be.py
    │   │   │   │   ├── utf_16_le.py
    │   │   │   │   ├── utf_32.py
    │   │   │   │   ├── utf_32_be.py
    │   │   │   │   ├── utf_32_le.py
    │   │   │   │   ├── utf_7.py
    │   │   │   │   ├── utf_8.py
    │   │   │   │   ├── utf_8_sig.py
    │   │   │   │   ├── uu_codec.py
    │   │   │   │   └── zlib_codec.py
    │   │   │   ├── filecmp.py
    │   │   │   ├── fileinput.py
    │   │   │   ├── fnmatch.py
    │   │   │   ├── formatter.py
    │   │   │   ├── fractions.py
    │   │   │   ├── ftplib.py
    │   │   │   ├── functools.py
    │   │   │   ├── genericpath.py
    │   │   │   ├── getopt.py
    │   │   │   ├── getpass.py
    │   │   │   ├── gettext.py
    │   │   │   ├── glob.py
    │   │   │   ├── gzip.py
    │   │   │   ├── hashlib.py
    │   │   │   ├── heapq.py
    │   │   │   ├── hmac.py
    │   │   │   ├── html/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── entities.py
    │   │   │   │   └── parser.py
    │   │   │   ├── http/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── client.py
    │   │   │   │   ├── cookiejar.py
    │   │   │   │   ├── cookies.py
    │   │   │   │   └── server.py
    │   │   │   ├── imaplib.py
    │   │   │   ├── imghdr.py
    │   │   │   ├── imp.py
    │   │   │   ├── importlib/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _bootstrap.py
    │   │   │   │   ├── abc.py
    │   │   │   │   ├── machinery.py
    │   │   │   │   └── util.py
    │   │   │   ├── inspect.py
    │   │   │   ├── io.py
    │   │   │   ├── ipaddress.py
    │   │   │   ├── json/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── decoder.py
    │   │   │   │   ├── encoder.py
    │   │   │   │   ├── scanner.py
    │   │   │   │   └── tool.py
    │   │   │   ├── keyword.py
    │   │   │   ├── lib2to3/
    │   │   │   │   ├── Grammar.txt
    │   │   │   │   ├── Grammar3.3.5.final.0.pickle
    │   │   │   │   ├── PatternGrammar.txt
    │   │   │   │   ├── PatternGrammar3.3.5.final.0.pickle
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── __main__.py
    │   │   │   │   ├── btm_matcher.py
    │   │   │   │   ├── btm_utils.py
    │   │   │   │   ├── fixer_base.py
    │   │   │   │   ├── fixer_util.py
    │   │   │   │   ├── fixes/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── fix_apply.py
    │   │   │   │   │   ├── fix_basestring.py
    │   │   │   │   │   ├── fix_buffer.py
    │   │   │   │   │   ├── fix_callable.py
    │   │   │   │   │   ├── fix_dict.py
    │   │   │   │   │   ├── fix_except.py
    │   │   │   │   │   ├── fix_exec.py
    │   │   │   │   │   ├── fix_execfile.py
    │   │   │   │   │   ├── fix_exitfunc.py
    │   │   │   │   │   ├── fix_filter.py
    │   │   │   │   │   ├── fix_funcattrs.py
    │   │   │   │   │   ├── fix_future.py
    │   │   │   │   │   ├── fix_getcwdu.py
    │   │   │   │   │   ├── fix_has_key.py
    │   │   │   │   │   ├── fix_idioms.py
    │   │   │   │   │   ├── fix_import.py
    │   │   │   │   │   ├── fix_imports.py
    │   │   │   │   │   ├── fix_imports2.py
    │   │   │   │   │   ├── fix_input.py
    │   │   │   │   │   ├── fix_intern.py
    │   │   │   │   │   ├── fix_isinstance.py
    │   │   │   │   │   ├── fix_itertools.py
    │   │   │   │   │   ├── fix_itertools_imports.py
    │   │   │   │   │   ├── fix_long.py
    │   │   │   │   │   ├── fix_map.py
    │   │   │   │   │   ├── fix_metaclass.py
    │   │   │   │   │   ├── fix_methodattrs.py
    │   │   │   │   │   ├── fix_ne.py
    │   │   │   │   │   ├── fix_next.py
    │   │   │   │   │   ├── fix_nonzero.py
    │   │   │   │   │   ├── fix_numliterals.py
    │   │   │   │   │   ├── fix_operator.py
    │   │   │   │   │   ├── fix_paren.py
    │   │   │   │   │   ├── fix_print.py
    │   │   │   │   │   ├── fix_raise.py
    │   │   │   │   │   ├── fix_raw_input.py
    │   │   │   │   │   ├── fix_reduce.py
    │   │   │   │   │   ├── fix_renames.py
    │   │   │   │   │   ├── fix_repr.py
    │   │   │   │   │   ├── fix_set_literal.py
    │   │   │   │   │   ├── fix_standarderror.py
    │   │   │   │   │   ├── fix_sys_exc.py
    │   │   │   │   │   ├── fix_throw.py
    │   │   │   │   │   ├── fix_tuple_params.py
    │   │   │   │   │   ├── fix_types.py
    │   │   │   │   │   ├── fix_unicode.py
    │   │   │   │   │   ├── fix_urllib.py
    │   │   │   │   │   ├── fix_ws_comma.py
    │   │   │   │   │   ├── fix_xrange.py
    │   │   │   │   │   ├── fix_xreadlines.py
    │   │   │   │   │   └── fix_zip.py
    │   │   │   │   ├── main.py
    │   │   │   │   ├── patcomp.py
    │   │   │   │   ├── pgen2/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── conv.py
    │   │   │   │   │   ├── driver.py
    │   │   │   │   │   ├── grammar.py
    │   │   │   │   │   ├── literals.py
    │   │   │   │   │   ├── parse.py
    │   │   │   │   │   ├── pgen.py
    │   │   │   │   │   ├── token.py
    │   │   │   │   │   └── tokenize.py
    │   │   │   │   ├── pygram.py
    │   │   │   │   ├── pytree.py
    │   │   │   │   └── refactor.py
    │   │   │   ├── linecache.py
    │   │   │   ├── locale.py
    │   │   │   ├── logging/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── config.py
    │   │   │   │   └── handlers.py
    │   │   │   ├── lzma.py
    │   │   │   ├── macpath.py
    │   │   │   ├── macurl2path.py
    │   │   │   ├── mailbox.py
    │   │   │   ├── mailcap.py
    │   │   │   ├── mimetypes.py
    │   │   │   ├── modulefinder.py
    │   │   │   ├── msilib/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── schema.py
    │   │   │   │   ├── sequence.py
    │   │   │   │   └── text.py
    │   │   │   ├── multiprocessing/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── connection.py
    │   │   │   │   ├── dummy/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── connection.py
    │   │   │   │   ├── forking.py
    │   │   │   │   ├── heap.py
    │   │   │   │   ├── managers.py
    │   │   │   │   ├── pool.py
    │   │   │   │   ├── process.py
    │   │   │   │   ├── queues.py
    │   │   │   │   ├── reduction.py
    │   │   │   │   ├── sharedctypes.py
    │   │   │   │   ├── synchronize.py
    │   │   │   │   └── util.py
    │   │   │   ├── netrc.py
    │   │   │   ├── nntplib.py
    │   │   │   ├── ntpath.py
    │   │   │   ├── nturl2path.py
    │   │   │   ├── numbers.py
    │   │   │   ├── opcode.py
    │   │   │   ├── optparse.py
    │   │   │   ├── os.py
    │   │   │   ├── os2emxpath.py
    │   │   │   ├── pdb.py
    │   │   │   ├── pickle.py
    │   │   │   ├── pickletools.py
    │   │   │   ├── pipes.py
    │   │   │   ├── pkgutil.py
    │   │   │   ├── platform.py
    │   │   │   ├── plistlib.py
    │   │   │   ├── poplib.py
    │   │   │   ├── posixpath.py
    │   │   │   ├── pprint.py
    │   │   │   ├── profile.py
    │   │   │   ├── pstats.py
    │   │   │   ├── pty.py
    │   │   │   ├── py_compile.py
    │   │   │   ├── pyclbr.py
    │   │   │   ├── pydoc.py
    │   │   │   ├── pydoc_data/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _pydoc.css
    │   │   │   │   └── topics.py
    │   │   │   ├── queue.py
    │   │   │   ├── quopri.py
    │   │   │   ├── random.py
    │   │   │   ├── re.py
    │   │   │   ├── reprlib.py
    │   │   │   ├── rlcompleter.py
    │   │   │   ├── runpy.py
    │   │   │   ├── sched.py
    │   │   │   ├── shelve.py
    │   │   │   ├── shlex.py
    │   │   │   ├── shutil.py
    │   │   │   ├── site-packages/
    │   │   │   │   └── README.txt
    │   │   │   ├── site.py
    │   │   │   ├── smtpd.py
    │   │   │   ├── smtplib.py
    │   │   │   ├── sndhdr.py
    │   │   │   ├── socket.py
    │   │   │   ├── socketserver.py
    │   │   │   ├── sqlite3/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── dbapi2.py
    │   │   │   │   └── dump.py
    │   │   │   ├── sre_compile.py
    │   │   │   ├── sre_constants.py
    │   │   │   ├── sre_parse.py
    │   │   │   ├── ssl.py
    │   │   │   ├── stat.py
    │   │   │   ├── string.py
    │   │   │   ├── stringprep.py
    │   │   │   ├── struct.py
    │   │   │   ├── subprocess.py
    │   │   │   ├── sunau.py
    │   │   │   ├── symbol.py
    │   │   │   ├── symtable.py
    │   │   │   ├── sysconfig.py
    │   │   │   ├── tabnanny.py
    │   │   │   ├── tarfile.py
    │   │   │   ├── telnetlib.py
    │   │   │   ├── tempfile.py
    │   │   │   ├── textwrap.py
    │   │   │   ├── this.py
    │   │   │   ├── threading.py
    │   │   │   ├── timeit.py
    │   │   │   ├── token.py
    │   │   │   ├── tokenize.py
    │   │   │   ├── trace.py
    │   │   │   ├── traceback.py
    │   │   │   ├── tty.py
    │   │   │   ├── turtle.py
    │   │   │   ├── types.py
    │   │   │   ├── unittest/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── __main__.py
    │   │   │   │   ├── case.py
    │   │   │   │   ├── loader.py
    │   │   │   │   ├── main.py
    │   │   │   │   ├── mock.py
    │   │   │   │   ├── result.py
    │   │   │   │   ├── runner.py
    │   │   │   │   ├── signals.py
    │   │   │   │   ├── suite.py
    │   │   │   │   └── util.py
    │   │   │   ├── urllib/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── error.py
    │   │   │   │   ├── parse.py
    │   │   │   │   ├── request.py
    │   │   │   │   ├── response.py
    │   │   │   │   └── robotparser.py
    │   │   │   ├── uu.py
    │   │   │   ├── uuid.py
    │   │   │   ├── venv/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── __main__.py
    │   │   │   │   └── scripts/
    │   │   │   │       ├── nt/
    │   │   │   │       │   ├── Activate.ps1
    │   │   │   │       │   ├── Deactivate.ps1
    │   │   │   │       │   ├── activate.bat
    │   │   │   │       │   └── deactivate.bat
    │   │   │   │       └── posix/
    │   │   │   │           └── activate
    │   │   │   ├── warnings.py
    │   │   │   ├── wave.py
    │   │   │   ├── weakref.py
    │   │   │   ├── webbrowser.py
    │   │   │   ├── wsgiref/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── handlers.py
    │   │   │   │   ├── headers.py
    │   │   │   │   ├── simple_server.py
    │   │   │   │   ├── util.py
    │   │   │   │   └── validate.py
    │   │   │   ├── xdrlib.py
    │   │   │   ├── xml/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── dom/
    │   │   │   │   │   ├── NodeFilter.py
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── domreg.py
    │   │   │   │   │   ├── expatbuilder.py
    │   │   │   │   │   ├── minicompat.py
    │   │   │   │   │   ├── minidom.py
    │   │   │   │   │   ├── pulldom.py
    │   │   │   │   │   └── xmlbuilder.py
    │   │   │   │   ├── etree/
    │   │   │   │   │   ├── ElementInclude.py
    │   │   │   │   │   ├── ElementPath.py
    │   │   │   │   │   ├── ElementTree.py
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── cElementTree.py
    │   │   │   │   ├── parsers/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── expat.py
    │   │   │   │   └── sax/
    │   │   │   │       ├── __init__.py
    │   │   │   │       ├── _exceptions.py
    │   │   │   │       ├── expatreader.py
    │   │   │   │       ├── handler.py
    │   │   │   │       ├── saxutils.py
    │   │   │   │       └── xmlreader.py
    │   │   │   ├── xmlrpc/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── client.py
    │   │   │   │   └── server.py
    │   │   │   └── zipfile.py
    │   │   ├── NEWS.txt
    │   │   ├── README.txt
    │   │   ├── include/
    │   │   │   ├── Python-ast.h
    │   │   │   ├── Python.h
    │   │   │   ├── abstract.h
    │   │   │   ├── accu.h
    │   │   │   ├── asdl.h
    │   │   │   ├── ast.h
    │   │   │   ├── bitset.h
    │   │   │   ├── bltinmodule.h
    │   │   │   ├── boolobject.h
    │   │   │   ├── bytearrayobject.h
    │   │   │   ├── bytes_methods.h
    │   │   │   ├── bytesobject.h
    │   │   │   ├── cellobject.h
    │   │   │   ├── ceval.h
    │   │   │   ├── classobject.h
    │   │   │   ├── code.h
    │   │   │   ├── codecs.h
    │   │   │   ├── compile.h
    │   │   │   ├── complexobject.h
    │   │   │   ├── datetime.h
    │   │   │   ├── descrobject.h
    │   │   │   ├── dictobject.h
    │   │   │   ├── dtoa.h
    │   │   │   ├── dynamic_annotations.h
    │   │   │   ├── enumobject.h
    │   │   │   ├── errcode.h
    │   │   │   ├── eval.h
    │   │   │   ├── fileobject.h
    │   │   │   ├── fileutils.h
    │   │   │   ├── floatobject.h
    │   │   │   ├── frameobject.h
    │   │   │   ├── funcobject.h
    │   │   │   ├── genobject.h
    │   │   │   ├── graminit.h
    │   │   │   ├── grammar.h
    │   │   │   ├── import.h
    │   │   │   ├── intrcheck.h
    │   │   │   ├── iterobject.h
    │   │   │   ├── listobject.h
    │   │   │   ├── longintrepr.h
    │   │   │   ├── longobject.h
    │   │   │   ├── marshal.h
    │   │   │   ├── memoryobject.h
    │   │   │   ├── metagrammar.h
    │   │   │   ├── methodobject.h
    │   │   │   ├── modsupport.h
    │   │   │   ├── moduleobject.h
    │   │   │   ├── namespaceobject.h
    │   │   │   ├── node.h
    │   │   │   ├── object.h
    │   │   │   ├── objimpl.h
    │   │   │   ├── opcode.h
    │   │   │   ├── osdefs.h
    │   │   │   ├── parsetok.h
    │   │   │   ├── patchlevel.h
    │   │   │   ├── pgen.h
    │   │   │   ├── pgenheaders.h
    │   │   │   ├── py_curses.h
    │   │   │   ├── pyarena.h
    │   │   │   ├── pyatomic.h
    │   │   │   ├── pycapsule.h
    │   │   │   ├── pyconfig.h
    │   │   │   ├── pyctype.h
    │   │   │   ├── pydebug.h
    │   │   │   ├── pyerrors.h
    │   │   │   ├── pyexpat.h
    │   │   │   ├── pyfpe.h
    │   │   │   ├── pygetopt.h
    │   │   │   ├── pymacconfig.h
    │   │   │   ├── pymacro.h
    │   │   │   ├── pymath.h
    │   │   │   ├── pymem.h
    │   │   │   ├── pyport.h
    │   │   │   ├── pystate.h
    │   │   │   ├── pystrcmp.h
    │   │   │   ├── pystrtod.h
    │   │   │   ├── pythonrun.h
    │   │   │   ├── pythread.h
    │   │   │   ├── pytime.h
    │   │   │   ├── rangeobject.h
    │   │   │   ├── setobject.h
    │   │   │   ├── sliceobject.h
    │   │   │   ├── structmember.h
    │   │   │   ├── structseq.h
    │   │   │   ├── symtable.h
    │   │   │   ├── sysmodule.h
    │   │   │   ├── token.h
    │   │   │   ├── traceback.h
    │   │   │   ├── tupleobject.h
    │   │   │   ├── typeslots.h
    │   │   │   ├── ucnhash.h
    │   │   │   ├── unicodeobject.h
    │   │   │   ├── warnings.h
    │   │   │   └── weakrefobject.h
    │   │   └── libs/
    │   │       └── libpython33.a
    │   ├── win64-py27/
    │   │   ├── DLLs/
    │   │   │   ├── _bsddb.pyd
    │   │   │   ├── _ctypes.pyd
    │   │   │   ├── _ctypes_test.pyd
    │   │   │   ├── _elementtree.pyd
    │   │   │   ├── _hashlib.pyd
    │   │   │   ├── _msi.pyd
    │   │   │   ├── _multiprocessing.pyd
    │   │   │   ├── _socket.pyd
    │   │   │   ├── _sqlite3.pyd
    │   │   │   ├── _ssl.pyd
    │   │   │   ├── _testcapi.pyd
    │   │   │   ├── bz2.pyd
    │   │   │   ├── pyexpat.pyd
    │   │   │   ├── select.pyd
    │   │   │   ├── unicodedata.pyd
    │   │   │   └── winsound.pyd
    │   │   ├── LICENSE.txt
    │   │   ├── Lib/
    │   │   │   ├── BaseHTTPServer.py
    │   │   │   ├── Bastion.py
    │   │   │   ├── CGIHTTPServer.py
    │   │   │   ├── ConfigParser.py
    │   │   │   ├── Cookie.py
    │   │   │   ├── DocXMLRPCServer.py
    │   │   │   ├── HTMLParser.py
    │   │   │   ├── MimeWriter.py
    │   │   │   ├── Queue.py
    │   │   │   ├── SimpleHTTPServer.py
    │   │   │   ├── SimpleXMLRPCServer.py
    │   │   │   ├── SocketServer.py
    │   │   │   ├── StringIO.py
    │   │   │   ├── UserDict.py
    │   │   │   ├── UserList.py
    │   │   │   ├── UserString.py
    │   │   │   ├── _LWPCookieJar.py
    │   │   │   ├── _MozillaCookieJar.py
    │   │   │   ├── __future__.py
    │   │   │   ├── __phello__.foo.py
    │   │   │   ├── _abcoll.py
    │   │   │   ├── _osx_support.py
    │   │   │   ├── _pyio.py
    │   │   │   ├── _strptime.py
    │   │   │   ├── _threading_local.py
    │   │   │   ├── _weakrefset.py
    │   │   │   ├── abc.py
    │   │   │   ├── aifc.py
    │   │   │   ├── antigravity.py
    │   │   │   ├── anydbm.py
    │   │   │   ├── argparse.py
    │   │   │   ├── ast.py
    │   │   │   ├── asynchat.py
    │   │   │   ├── asyncore.py
    │   │   │   ├── atexit.py
    │   │   │   ├── audiodev.py
    │   │   │   ├── base64.py
    │   │   │   ├── bdb.py
    │   │   │   ├── binhex.py
    │   │   │   ├── bisect.py
    │   │   │   ├── bsddb/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── db.py
    │   │   │   │   ├── dbobj.py
    │   │   │   │   ├── dbrecio.py
    │   │   │   │   ├── dbshelve.py
    │   │   │   │   ├── dbtables.py
    │   │   │   │   └── dbutils.py
    │   │   │   ├── cProfile.py
    │   │   │   ├── calendar.py
    │   │   │   ├── cgi.py
    │   │   │   ├── cgitb.py
    │   │   │   ├── chunk.py
    │   │   │   ├── cmd.py
    │   │   │   ├── code.py
    │   │   │   ├── codecs.py
    │   │   │   ├── codeop.py
    │   │   │   ├── collections.py
    │   │   │   ├── colorsys.py
    │   │   │   ├── commands.py
    │   │   │   ├── compileall.py
    │   │   │   ├── compiler/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── ast.py
    │   │   │   │   ├── consts.py
    │   │   │   │   ├── future.py
    │   │   │   │   ├── misc.py
    │   │   │   │   ├── pyassem.py
    │   │   │   │   ├── pycodegen.py
    │   │   │   │   ├── symbols.py
    │   │   │   │   ├── syntax.py
    │   │   │   │   ├── transformer.py
    │   │   │   │   └── visitor.py
    │   │   │   ├── contextlib.py
    │   │   │   ├── cookielib.py
    │   │   │   ├── copy.py
    │   │   │   ├── copy_reg.py
    │   │   │   ├── csv.py
    │   │   │   ├── ctypes/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _endian.py
    │   │   │   │   ├── macholib/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── dyld.py
    │   │   │   │   │   ├── dylib.py
    │   │   │   │   │   └── framework.py
    │   │   │   │   ├── util.py
    │   │   │   │   └── wintypes.py
    │   │   │   ├── curses/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── ascii.py
    │   │   │   │   ├── has_key.py
    │   │   │   │   ├── panel.py
    │   │   │   │   ├── textpad.py
    │   │   │   │   └── wrapper.py
    │   │   │   ├── dbhash.py
    │   │   │   ├── decimal.py
    │   │   │   ├── difflib.py
    │   │   │   ├── dircache.py
    │   │   │   ├── dis.py
    │   │   │   ├── distutils/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── archive_util.py
    │   │   │   │   ├── bcppcompiler.py
    │   │   │   │   ├── ccompiler.py
    │   │   │   │   ├── cmd.py
    │   │   │   │   ├── command/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── bdist.py
    │   │   │   │   │   ├── bdist_dumb.py
    │   │   │   │   │   ├── bdist_msi.py
    │   │   │   │   │   ├── bdist_rpm.py
    │   │   │   │   │   ├── bdist_wininst.py
    │   │   │   │   │   ├── build.py
    │   │   │   │   │   ├── build_clib.py
    │   │   │   │   │   ├── build_ext.py
    │   │   │   │   │   ├── build_py.py
    │   │   │   │   │   ├── build_scripts.py
    │   │   │   │   │   ├── check.py
    │   │   │   │   │   ├── clean.py
    │   │   │   │   │   ├── config.py
    │   │   │   │   │   ├── install.py
    │   │   │   │   │   ├── install_data.py
    │   │   │   │   │   ├── install_egg_info.py
    │   │   │   │   │   ├── install_headers.py
    │   │   │   │   │   ├── install_lib.py
    │   │   │   │   │   ├── install_scripts.py
    │   │   │   │   │   ├── register.py
    │   │   │   │   │   ├── sdist.py
    │   │   │   │   │   └── upload.py
    │   │   │   │   ├── config.py
    │   │   │   │   ├── core.py
    │   │   │   │   ├── cygwinccompiler.py
    │   │   │   │   ├── debug.py
    │   │   │   │   ├── dep_util.py
    │   │   │   │   ├── dir_util.py
    │   │   │   │   ├── dist.py
    │   │   │   │   ├── emxccompiler.py
    │   │   │   │   ├── errors.py
    │   │   │   │   ├── extension.py
    │   │   │   │   ├── fancy_getopt.py
    │   │   │   │   ├── file_util.py
    │   │   │   │   ├── filelist.py
    │   │   │   │   ├── log.py
    │   │   │   │   ├── msvc9compiler.py
    │   │   │   │   ├── msvccompiler.py
    │   │   │   │   ├── spawn.py
    │   │   │   │   ├── sysconfig.py
    │   │   │   │   ├── text_file.py
    │   │   │   │   ├── unixccompiler.py
    │   │   │   │   ├── util.py
    │   │   │   │   ├── version.py
    │   │   │   │   └── versionpredicate.py
    │   │   │   ├── doctest.py
    │   │   │   ├── dumbdbm.py
    │   │   │   ├── dummy_thread.py
    │   │   │   ├── dummy_threading.py
    │   │   │   ├── email/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _parseaddr.py
    │   │   │   │   ├── base64mime.py
    │   │   │   │   ├── charset.py
    │   │   │   │   ├── encoders.py
    │   │   │   │   ├── errors.py
    │   │   │   │   ├── feedparser.py
    │   │   │   │   ├── generator.py
    │   │   │   │   ├── header.py
    │   │   │   │   ├── iterators.py
    │   │   │   │   ├── message.py
    │   │   │   │   ├── mime/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── application.py
    │   │   │   │   │   ├── audio.py
    │   │   │   │   │   ├── base.py
    │   │   │   │   │   ├── image.py
    │   │   │   │   │   ├── message.py
    │   │   │   │   │   ├── multipart.py
    │   │   │   │   │   ├── nonmultipart.py
    │   │   │   │   │   └── text.py
    │   │   │   │   ├── parser.py
    │   │   │   │   ├── quoprimime.py
    │   │   │   │   └── utils.py
    │   │   │   ├── encodings/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── aliases.py
    │   │   │   │   ├── ascii.py
    │   │   │   │   ├── base64_codec.py
    │   │   │   │   ├── big5.py
    │   │   │   │   ├── big5hkscs.py
    │   │   │   │   ├── bz2_codec.py
    │   │   │   │   ├── charmap.py
    │   │   │   │   ├── cp037.py
    │   │   │   │   ├── cp1006.py
    │   │   │   │   ├── cp1026.py
    │   │   │   │   ├── cp1140.py
    │   │   │   │   ├── cp1250.py
    │   │   │   │   ├── cp1251.py
    │   │   │   │   ├── cp1252.py
    │   │   │   │   ├── cp1253.py
    │   │   │   │   ├── cp1254.py
    │   │   │   │   ├── cp1255.py
    │   │   │   │   ├── cp1256.py
    │   │   │   │   ├── cp1257.py
    │   │   │   │   ├── cp1258.py
    │   │   │   │   ├── cp424.py
    │   │   │   │   ├── cp437.py
    │   │   │   │   ├── cp500.py
    │   │   │   │   ├── cp720.py
    │   │   │   │   ├── cp737.py
    │   │   │   │   ├── cp775.py
    │   │   │   │   ├── cp850.py
    │   │   │   │   ├── cp852.py
    │   │   │   │   ├── cp855.py
    │   │   │   │   ├── cp856.py
    │   │   │   │   ├── cp857.py
    │   │   │   │   ├── cp858.py
    │   │   │   │   ├── cp860.py
    │   │   │   │   ├── cp861.py
    │   │   │   │   ├── cp862.py
    │   │   │   │   ├── cp863.py
    │   │   │   │   ├── cp864.py
    │   │   │   │   ├── cp865.py
    │   │   │   │   ├── cp866.py
    │   │   │   │   ├── cp869.py
    │   │   │   │   ├── cp874.py
    │   │   │   │   ├── cp875.py
    │   │   │   │   ├── cp932.py
    │   │   │   │   ├── cp949.py
    │   │   │   │   ├── cp950.py
    │   │   │   │   ├── euc_jis_2004.py
    │   │   │   │   ├── euc_jisx0213.py
    │   │   │   │   ├── euc_jp.py
    │   │   │   │   ├── euc_kr.py
    │   │   │   │   ├── gb18030.py
    │   │   │   │   ├── gb2312.py
    │   │   │   │   ├── gbk.py
    │   │   │   │   ├── hex_codec.py
    │   │   │   │   ├── hp_roman8.py
    │   │   │   │   ├── hz.py
    │   │   │   │   ├── idna.py
    │   │   │   │   ├── iso2022_jp.py
    │   │   │   │   ├── iso2022_jp_1.py
    │   │   │   │   ├── iso2022_jp_2.py
    │   │   │   │   ├── iso2022_jp_2004.py
    │   │   │   │   ├── iso2022_jp_3.py
    │   │   │   │   ├── iso2022_jp_ext.py
    │   │   │   │   ├── iso2022_kr.py
    │   │   │   │   ├── iso8859_1.py
    │   │   │   │   ├── iso8859_10.py
    │   │   │   │   ├── iso8859_11.py
    │   │   │   │   ├── iso8859_13.py
    │   │   │   │   ├── iso8859_14.py
    │   │   │   │   ├── iso8859_15.py
    │   │   │   │   ├── iso8859_16.py
    │   │   │   │   ├── iso8859_2.py
    │   │   │   │   ├── iso8859_3.py
    │   │   │   │   ├── iso8859_4.py
    │   │   │   │   ├── iso8859_5.py
    │   │   │   │   ├── iso8859_6.py
    │   │   │   │   ├── iso8859_7.py
    │   │   │   │   ├── iso8859_8.py
    │   │   │   │   ├── iso8859_9.py
    │   │   │   │   ├── johab.py
    │   │   │   │   ├── koi8_r.py
    │   │   │   │   ├── koi8_u.py
    │   │   │   │   ├── latin_1.py
    │   │   │   │   ├── mac_arabic.py
    │   │   │   │   ├── mac_centeuro.py
    │   │   │   │   ├── mac_croatian.py
    │   │   │   │   ├── mac_cyrillic.py
    │   │   │   │   ├── mac_farsi.py
    │   │   │   │   ├── mac_greek.py
    │   │   │   │   ├── mac_iceland.py
    │   │   │   │   ├── mac_latin2.py
    │   │   │   │   ├── mac_roman.py
    │   │   │   │   ├── mac_romanian.py
    │   │   │   │   ├── mac_turkish.py
    │   │   │   │   ├── mbcs.py
    │   │   │   │   ├── palmos.py
    │   │   │   │   ├── ptcp154.py
    │   │   │   │   ├── punycode.py
    │   │   │   │   ├── quopri_codec.py
    │   │   │   │   ├── raw_unicode_escape.py
    │   │   │   │   ├── rot_13.py
    │   │   │   │   ├── shift_jis.py
    │   │   │   │   ├── shift_jis_2004.py
    │   │   │   │   ├── shift_jisx0213.py
    │   │   │   │   ├── string_escape.py
    │   │   │   │   ├── tis_620.py
    │   │   │   │   ├── undefined.py
    │   │   │   │   ├── unicode_escape.py
    │   │   │   │   ├── unicode_internal.py
    │   │   │   │   ├── utf_16.py
    │   │   │   │   ├── utf_16_be.py
    │   │   │   │   ├── utf_16_le.py
    │   │   │   │   ├── utf_32.py
    │   │   │   │   ├── utf_32_be.py
    │   │   │   │   ├── utf_32_le.py
    │   │   │   │   ├── utf_7.py
    │   │   │   │   ├── utf_8.py
    │   │   │   │   ├── utf_8_sig.py
    │   │   │   │   ├── uu_codec.py
    │   │   │   │   └── zlib_codec.py
    │   │   │   ├── filecmp.py
    │   │   │   ├── fileinput.py
    │   │   │   ├── fnmatch.py
    │   │   │   ├── formatter.py
    │   │   │   ├── fpformat.py
    │   │   │   ├── fractions.py
    │   │   │   ├── ftplib.py
    │   │   │   ├── functools.py
    │   │   │   ├── genericpath.py
    │   │   │   ├── getopt.py
    │   │   │   ├── getpass.py
    │   │   │   ├── gettext.py
    │   │   │   ├── glob.py
    │   │   │   ├── gzip.py
    │   │   │   ├── hashlib.py
    │   │   │   ├── heapq.py
    │   │   │   ├── hmac.py
    │   │   │   ├── hotshot/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── log.py
    │   │   │   │   ├── stats.py
    │   │   │   │   └── stones.py
    │   │   │   ├── htmlentitydefs.py
    │   │   │   ├── htmllib.py
    │   │   │   ├── httplib.py
    │   │   │   ├── idlelib/
    │   │   │   │   └── idle_test/
    │   │   │   │       ├── README.txt
    │   │   │   │       ├── __init__.py
    │   │   │   │       ├── mock_idle.py
    │   │   │   │       ├── mock_tk.py
    │   │   │   │       ├── test_calltips.py
    │   │   │   │       ├── test_config_name.py
    │   │   │   │       ├── test_delegator.py
    │   │   │   │       ├── test_formatparagraph.py
    │   │   │   │       ├── test_grep.py
    │   │   │   │       ├── test_idlehistory.py
    │   │   │   │       ├── test_pathbrowser.py
    │   │   │   │       ├── test_rstrip.py
    │   │   │   │       ├── test_searchengine.py
    │   │   │   │       ├── test_text.py
    │   │   │   │       └── test_warning.py
    │   │   │   ├── ihooks.py
    │   │   │   ├── imaplib.py
    │   │   │   ├── imghdr.py
    │   │   │   ├── importlib/
    │   │   │   │   └── __init__.py
    │   │   │   ├── imputil.py
    │   │   │   ├── inspect.py
    │   │   │   ├── io.py
    │   │   │   ├── json/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── decoder.py
    │   │   │   │   ├── encoder.py
    │   │   │   │   ├── scanner.py
    │   │   │   │   └── tool.py
    │   │   │   ├── keyword.py
    │   │   │   ├── lib-tk/
    │   │   │   │   └── test/
    │   │   │   │       ├── test_tkinter/
    │   │   │   │       │   ├── __init__.py
    │   │   │   │       │   ├── test_loadtk.py
    │   │   │   │       │   └── test_text.py
    │   │   │   │       └── test_ttk/
    │   │   │   │           ├── __init__.py
    │   │   │   │           ├── support.py
    │   │   │   │           ├── test_extensions.py
    │   │   │   │           ├── test_functions.py
    │   │   │   │           ├── test_style.py
    │   │   │   │           └── test_widgets.py
    │   │   │   ├── lib2to3/
    │   │   │   │   ├── Grammar.txt
    │   │   │   │   ├── PatternGrammar.txt
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── __main__.py
    │   │   │   │   ├── btm_matcher.py
    │   │   │   │   ├── btm_utils.py
    │   │   │   │   ├── fixer_base.py
    │   │   │   │   ├── fixer_util.py
    │   │   │   │   ├── fixes/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── fix_apply.py
    │   │   │   │   │   ├── fix_basestring.py
    │   │   │   │   │   ├── fix_buffer.py
    │   │   │   │   │   ├── fix_callable.py
    │   │   │   │   │   ├── fix_dict.py
    │   │   │   │   │   ├── fix_except.py
    │   │   │   │   │   ├── fix_exec.py
    │   │   │   │   │   ├── fix_execfile.py
    │   │   │   │   │   ├── fix_exitfunc.py
    │   │   │   │   │   ├── fix_filter.py
    │   │   │   │   │   ├── fix_funcattrs.py
    │   │   │   │   │   ├── fix_future.py
    │   │   │   │   │   ├── fix_getcwdu.py
    │   │   │   │   │   ├── fix_has_key.py
    │   │   │   │   │   ├── fix_idioms.py
    │   │   │   │   │   ├── fix_import.py
    │   │   │   │   │   ├── fix_imports.py
    │   │   │   │   │   ├── fix_imports2.py
    │   │   │   │   │   ├── fix_input.py
    │   │   │   │   │   ├── fix_intern.py
    │   │   │   │   │   ├── fix_isinstance.py
    │   │   │   │   │   ├── fix_itertools.py
    │   │   │   │   │   ├── fix_itertools_imports.py
    │   │   │   │   │   ├── fix_long.py
    │   │   │   │   │   ├── fix_map.py
    │   │   │   │   │   ├── fix_metaclass.py
    │   │   │   │   │   ├── fix_methodattrs.py
    │   │   │   │   │   ├── fix_ne.py
    │   │   │   │   │   ├── fix_next.py
    │   │   │   │   │   ├── fix_nonzero.py
    │   │   │   │   │   ├── fix_numliterals.py
    │   │   │   │   │   ├── fix_operator.py
    │   │   │   │   │   ├── fix_paren.py
    │   │   │   │   │   ├── fix_print.py
    │   │   │   │   │   ├── fix_raise.py
    │   │   │   │   │   ├── fix_raw_input.py
    │   │   │   │   │   ├── fix_reduce.py
    │   │   │   │   │   ├── fix_renames.py
    │   │   │   │   │   ├── fix_repr.py
    │   │   │   │   │   ├── fix_set_literal.py
    │   │   │   │   │   ├── fix_standarderror.py
    │   │   │   │   │   ├── fix_sys_exc.py
    │   │   │   │   │   ├── fix_throw.py
    │   │   │   │   │   ├── fix_tuple_params.py
    │   │   │   │   │   ├── fix_types.py
    │   │   │   │   │   ├── fix_unicode.py
    │   │   │   │   │   ├── fix_urllib.py
    │   │   │   │   │   ├── fix_ws_comma.py
    │   │   │   │   │   ├── fix_xrange.py
    │   │   │   │   │   ├── fix_xreadlines.py
    │   │   │   │   │   └── fix_zip.py
    │   │   │   │   ├── main.py
    │   │   │   │   ├── patcomp.py
    │   │   │   │   ├── pgen2/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── conv.py
    │   │   │   │   │   ├── driver.py
    │   │   │   │   │   ├── grammar.py
    │   │   │   │   │   ├── literals.py
    │   │   │   │   │   ├── parse.py
    │   │   │   │   │   ├── pgen.py
    │   │   │   │   │   ├── token.py
    │   │   │   │   │   └── tokenize.py
    │   │   │   │   ├── pygram.py
    │   │   │   │   ├── pytree.py
    │   │   │   │   ├── refactor.py
    │   │   │   │   └── tests/
    │   │   │   │       └── data/
    │   │   │   │           └── fixers/
    │   │   │   │               ├── bad_order.py
    │   │   │   │               ├── myfixes/
    │   │   │   │               │   ├── __init__.py
    │   │   │   │               │   ├── fix_explicit.py
    │   │   │   │               │   ├── fix_first.py
    │   │   │   │               │   ├── fix_last.py
    │   │   │   │               │   ├── fix_parrot.py
    │   │   │   │               │   └── fix_preorder.py
    │   │   │   │               ├── no_fixer_cls.py
    │   │   │   │               └── parrot_example.py
    │   │   │   ├── linecache.py
    │   │   │   ├── locale.py
    │   │   │   ├── logging/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── config.py
    │   │   │   │   └── handlers.py
    │   │   │   ├── macpath.py
    │   │   │   ├── macurl2path.py
    │   │   │   ├── mailbox.py
    │   │   │   ├── mailcap.py
    │   │   │   ├── markupbase.py
    │   │   │   ├── md5.py
    │   │   │   ├── mhlib.py
    │   │   │   ├── mimetools.py
    │   │   │   ├── mimetypes.py
    │   │   │   ├── mimify.py
    │   │   │   ├── modulefinder.py
    │   │   │   ├── msilib/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── schema.py
    │   │   │   │   ├── sequence.py
    │   │   │   │   └── text.py
    │   │   │   ├── multifile.py
    │   │   │   ├── multiprocessing/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── connection.py
    │   │   │   │   ├── dummy/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── connection.py
    │   │   │   │   ├── forking.py
    │   │   │   │   ├── heap.py
    │   │   │   │   ├── managers.py
    │   │   │   │   ├── pool.py
    │   │   │   │   ├── process.py
    │   │   │   │   ├── queues.py
    │   │   │   │   ├── reduction.py
    │   │   │   │   ├── sharedctypes.py
    │   │   │   │   ├── synchronize.py
    │   │   │   │   └── util.py
    │   │   │   ├── mutex.py
    │   │   │   ├── netrc.py
    │   │   │   ├── new.py
    │   │   │   ├── nntplib.py
    │   │   │   ├── ntpath.py
    │   │   │   ├── nturl2path.py
    │   │   │   ├── numbers.py
    │   │   │   ├── opcode.py
    │   │   │   ├── optparse.py
    │   │   │   ├── os.py
    │   │   │   ├── os2emxpath.py
    │   │   │   ├── pdb.py
    │   │   │   ├── pickle.py
    │   │   │   ├── pickletools.py
    │   │   │   ├── pipes.py
    │   │   │   ├── pkgutil.py
    │   │   │   ├── platform.py
    │   │   │   ├── plistlib.py
    │   │   │   ├── popen2.py
    │   │   │   ├── poplib.py
    │   │   │   ├── posixfile.py
    │   │   │   ├── posixpath.py
    │   │   │   ├── pprint.py
    │   │   │   ├── profile.py
    │   │   │   ├── pstats.py
    │   │   │   ├── pty.py
    │   │   │   ├── py_compile.py
    │   │   │   ├── pyclbr.py
    │   │   │   ├── pydoc.py
    │   │   │   ├── pydoc_data/
    │   │   │   │   ├── __init__.py
    │   │   │   │   └── topics.py
    │   │   │   ├── quopri.py
    │   │   │   ├── random.py
    │   │   │   ├── re.py
    │   │   │   ├── repr.py
    │   │   │   ├── rexec.py
    │   │   │   ├── rfc822.py
    │   │   │   ├── rlcompleter.py
    │   │   │   ├── robotparser.py
    │   │   │   ├── runpy.py
    │   │   │   ├── sched.py
    │   │   │   ├── sets.py
    │   │   │   ├── sgmllib.py
    │   │   │   ├── sha.py
    │   │   │   ├── shelve.py
    │   │   │   ├── shlex.py
    │   │   │   ├── shutil.py
    │   │   │   ├── site-packages/
    │   │   │   │   └── README.txt
    │   │   │   ├── site.py
    │   │   │   ├── smtpd.py
    │   │   │   ├── smtplib.py
    │   │   │   ├── sndhdr.py
    │   │   │   ├── socket.py
    │   │   │   ├── sqlite3/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── dbapi2.py
    │   │   │   │   └── dump.py
    │   │   │   ├── sre.py
    │   │   │   ├── sre_compile.py
    │   │   │   ├── sre_constants.py
    │   │   │   ├── sre_parse.py
    │   │   │   ├── ssl.py
    │   │   │   ├── stat.py
    │   │   │   ├── statvfs.py
    │   │   │   ├── string.py
    │   │   │   ├── stringold.py
    │   │   │   ├── stringprep.py
    │   │   │   ├── struct.py
    │   │   │   ├── subprocess.py
    │   │   │   ├── sunau.py
    │   │   │   ├── sunaudio.py
    │   │   │   ├── symbol.py
    │   │   │   ├── symtable.py
    │   │   │   ├── sysconfig.py
    │   │   │   ├── tabnanny.py
    │   │   │   ├── tarfile.py
    │   │   │   ├── telnetlib.py
    │   │   │   ├── tempfile.py
    │   │   │   ├── test/
    │   │   │   │   ├── cjkencodings/
    │   │   │   │   │   ├── big5-utf8.txt
    │   │   │   │   │   ├── big5.txt
    │   │   │   │   │   ├── big5hkscs-utf8.txt
    │   │   │   │   │   ├── big5hkscs.txt
    │   │   │   │   │   ├── cp949-utf8.txt
    │   │   │   │   │   ├── cp949.txt
    │   │   │   │   │   ├── euc_jisx0213-utf8.txt
    │   │   │   │   │   ├── euc_jisx0213.txt
    │   │   │   │   │   ├── euc_jp-utf8.txt
    │   │   │   │   │   ├── euc_jp.txt
    │   │   │   │   │   ├── euc_kr-utf8.txt
    │   │   │   │   │   ├── euc_kr.txt
    │   │   │   │   │   ├── gb18030-utf8.txt
    │   │   │   │   │   ├── gb18030.txt
    │   │   │   │   │   ├── gb2312-utf8.txt
    │   │   │   │   │   ├── gb2312.txt
    │   │   │   │   │   ├── gbk-utf8.txt
    │   │   │   │   │   ├── gbk.txt
    │   │   │   │   │   ├── hz-utf8.txt
    │   │   │   │   │   ├── hz.txt
    │   │   │   │   │   ├── iso2022_jp-utf8.txt
    │   │   │   │   │   ├── iso2022_jp.txt
    │   │   │   │   │   ├── iso2022_kr-utf8.txt
    │   │   │   │   │   ├── iso2022_kr.txt
    │   │   │   │   │   ├── johab-utf8.txt
    │   │   │   │   │   ├── johab.txt
    │   │   │   │   │   ├── shift_jis-utf8.txt
    │   │   │   │   │   ├── shift_jis.txt
    │   │   │   │   │   ├── shift_jisx0213-utf8.txt
    │   │   │   │   │   └── shift_jisx0213.txt
    │   │   │   │   ├── crashers/
    │   │   │   │   │   ├── bogus_code_obj.py
    │   │   │   │   │   ├── borrowed_ref_1.py
    │   │   │   │   │   ├── borrowed_ref_2.py
    │   │   │   │   │   ├── buffer_mutate.py
    │   │   │   │   │   ├── compiler_recursion.py
    │   │   │   │   │   ├── decref_before_assignment.py
    │   │   │   │   │   ├── gc_has_finalizer.py
    │   │   │   │   │   ├── gc_inspection.py
    │   │   │   │   │   ├── infinite_loop_re.py
    │   │   │   │   │   ├── loosing_mro_ref.py
    │   │   │   │   │   ├── mutation_inside_cyclegc.py
    │   │   │   │   │   ├── nasty_eq_vs_dict.py
    │   │   │   │   │   ├── recursion_limit_too_high.py
    │   │   │   │   │   └── recursive_call.py
    │   │   │   │   ├── decimaltestdata/
    │   │   │   │   │   ├── abs.decTest
    │   │   │   │   │   ├── add.decTest
    │   │   │   │   │   ├── and.decTest
    │   │   │   │   │   ├── base.decTest
    │   │   │   │   │   ├── clamp.decTest
    │   │   │   │   │   ├── class.decTest
    │   │   │   │   │   ├── compare.decTest
    │   │   │   │   │   ├── comparetotal.decTest
    │   │   │   │   │   ├── comparetotmag.decTest
    │   │   │   │   │   ├── copy.decTest
    │   │   │   │   │   ├── copyabs.decTest
    │   │   │   │   │   ├── copynegate.decTest
    │   │   │   │   │   ├── copysign.decTest
    │   │   │   │   │   ├── ddAbs.decTest
    │   │   │   │   │   ├── ddAdd.decTest
    │   │   │   │   │   ├── ddAnd.decTest
    │   │   │   │   │   ├── ddBase.decTest
    │   │   │   │   │   ├── ddCanonical.decTest
    │   │   │   │   │   ├── ddClass.decTest
    │   │   │   │   │   ├── ddCompare.decTest
    │   │   │   │   │   ├── ddCompareSig.decTest
    │   │   │   │   │   ├── ddCompareTotal.decTest
    │   │   │   │   │   ├── ddCompareTotalMag.decTest
    │   │   │   │   │   ├── ddCopy.decTest
    │   │   │   │   │   ├── ddCopyAbs.decTest
    │   │   │   │   │   ├── ddCopyNegate.decTest
    │   │   │   │   │   ├── ddCopySign.decTest
    │   │   │   │   │   ├── ddDivide.decTest
    │   │   │   │   │   ├── ddDivideInt.decTest
    │   │   │   │   │   ├── ddEncode.decTest
    │   │   │   │   │   ├── ddFMA.decTest
    │   │   │   │   │   ├── ddInvert.decTest
    │   │   │   │   │   ├── ddLogB.decTest
    │   │   │   │   │   ├── ddMax.decTest
    │   │   │   │   │   ├── ddMaxMag.decTest
    │   │   │   │   │   ├── ddMin.decTest
    │   │   │   │   │   ├── ddMinMag.decTest
    │   │   │   │   │   ├── ddMinus.decTest
    │   │   │   │   │   ├── ddMultiply.decTest
    │   │   │   │   │   ├── ddNextMinus.decTest
    │   │   │   │   │   ├── ddNextPlus.decTest
    │   │   │   │   │   ├── ddNextToward.decTest
    │   │   │   │   │   ├── ddOr.decTest
    │   │   │   │   │   ├── ddPlus.decTest
    │   │   │   │   │   ├── ddQuantize.decTest
    │   │   │   │   │   ├── ddReduce.decTest
    │   │   │   │   │   ├── ddRemainder.decTest
    │   │   │   │   │   ├── ddRemainderNear.decTest
    │   │   │   │   │   ├── ddRotate.decTest
    │   │   │   │   │   ├── ddSameQuantum.decTest
    │   │   │   │   │   ├── ddScaleB.decTest
    │   │   │   │   │   ├── ddShift.decTest
    │   │   │   │   │   ├── ddSubtract.decTest
    │   │   │   │   │   ├── ddToIntegral.decTest
    │   │   │   │   │   ├── ddXor.decTest
    │   │   │   │   │   ├── decDouble.decTest
    │   │   │   │   │   ├── decQuad.decTest
    │   │   │   │   │   ├── decSingle.decTest
    │   │   │   │   │   ├── divide.decTest
    │   │   │   │   │   ├── divideint.decTest
    │   │   │   │   │   ├── dqAbs.decTest
    │   │   │   │   │   ├── dqAdd.decTest
    │   │   │   │   │   ├── dqAnd.decTest
    │   │   │   │   │   ├── dqBase.decTest
    │   │   │   │   │   ├── dqCanonical.decTest
    │   │   │   │   │   ├── dqClass.decTest
    │   │   │   │   │   ├── dqCompare.decTest
    │   │   │   │   │   ├── dqCompareSig.decTest
    │   │   │   │   │   ├── dqCompareTotal.decTest
    │   │   │   │   │   ├── dqCompareTotalMag.decTest
    │   │   │   │   │   ├── dqCopy.decTest
    │   │   │   │   │   ├── dqCopyAbs.decTest
    │   │   │   │   │   ├── dqCopyNegate.decTest
    │   │   │   │   │   ├── dqCopySign.decTest
    │   │   │   │   │   ├── dqDivide.decTest
    │   │   │   │   │   ├── dqDivideInt.decTest
    │   │   │   │   │   ├── dqEncode.decTest
    │   │   │   │   │   ├── dqFMA.decTest
    │   │   │   │   │   ├── dqInvert.decTest
    │   │   │   │   │   ├── dqLogB.decTest
    │   │   │   │   │   ├── dqMax.decTest
    │   │   │   │   │   ├── dqMaxMag.decTest
    │   │   │   │   │   ├── dqMin.decTest
    │   │   │   │   │   ├── dqMinMag.decTest
    │   │   │   │   │   ├── dqMinus.decTest
    │   │   │   │   │   ├── dqMultiply.decTest
    │   │   │   │   │   ├── dqNextMinus.decTest
    │   │   │   │   │   ├── dqNextPlus.decTest
    │   │   │   │   │   ├── dqNextToward.decTest
    │   │   │   │   │   ├── dqOr.decTest
    │   │   │   │   │   ├── dqPlus.decTest
    │   │   │   │   │   ├── dqQuantize.decTest
    │   │   │   │   │   ├── dqReduce.decTest
    │   │   │   │   │   ├── dqRemainder.decTest
    │   │   │   │   │   ├── dqRemainderNear.decTest
    │   │   │   │   │   ├── dqRotate.decTest
    │   │   │   │   │   ├── dqSameQuantum.decTest
    │   │   │   │   │   ├── dqScaleB.decTest
    │   │   │   │   │   ├── dqShift.decTest
    │   │   │   │   │   ├── dqSubtract.decTest
    │   │   │   │   │   ├── dqToIntegral.decTest
    │   │   │   │   │   ├── dqXor.decTest
    │   │   │   │   │   ├── dsBase.decTest
    │   │   │   │   │   ├── dsEncode.decTest
    │   │   │   │   │   ├── exp.decTest
    │   │   │   │   │   ├── extra.decTest
    │   │   │   │   │   ├── fma.decTest
    │   │   │   │   │   ├── inexact.decTest
    │   │   │   │   │   ├── invert.decTest
    │   │   │   │   │   ├── ln.decTest
    │   │   │   │   │   ├── log10.decTest
    │   │   │   │   │   ├── logb.decTest
    │   │   │   │   │   ├── max.decTest
    │   │   │   │   │   ├── maxmag.decTest
    │   │   │   │   │   ├── min.decTest
    │   │   │   │   │   ├── minmag.decTest
    │   │   │   │   │   ├── minus.decTest
    │   │   │   │   │   ├── multiply.decTest
    │   │   │   │   │   ├── nextminus.decTest
    │   │   │   │   │   ├── nextplus.decTest
    │   │   │   │   │   ├── nexttoward.decTest
    │   │   │   │   │   ├── or.decTest
    │   │   │   │   │   ├── plus.decTest
    │   │   │   │   │   ├── power.decTest
    │   │   │   │   │   ├── powersqrt.decTest
    │   │   │   │   │   ├── quantize.decTest
    │   │   │   │   │   ├── randomBound32.decTest
    │   │   │   │   │   ├── randoms.decTest
    │   │   │   │   │   ├── reduce.decTest
    │   │   │   │   │   ├── remainder.decTest
    │   │   │   │   │   ├── remainderNear.decTest
    │   │   │   │   │   ├── rescale.decTest
    │   │   │   │   │   ├── rotate.decTest
    │   │   │   │   │   ├── rounding.decTest
    │   │   │   │   │   ├── samequantum.decTest
    │   │   │   │   │   ├── scaleb.decTest
    │   │   │   │   │   ├── shift.decTest
    │   │   │   │   │   ├── squareroot.decTest
    │   │   │   │   │   ├── subtract.decTest
    │   │   │   │   │   ├── testall.decTest
    │   │   │   │   │   ├── tointegral.decTest
    │   │   │   │   │   ├── tointegralx.decTest
    │   │   │   │   │   └── xor.decTest
    │   │   │   │   ├── leakers/
    │   │   │   │   │   ├── README.txt
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── test_ctypes.py
    │   │   │   │   │   ├── test_dictself.py
    │   │   │   │   │   ├── test_gestalt.py
    │   │   │   │   │   └── test_selftype.py
    │   │   │   │   ├── subprocessdata/
    │   │   │   │   │   └── sigchild_ignore.py
    │   │   │   │   ├── tracedmodules/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── testmod.py
    │   │   │   │   └── xmltestdata/
    │   │   │   │       ├── simple-ns.xml
    │   │   │   │       ├── simple.xml
    │   │   │   │       ├── test.xml
    │   │   │   │       └── test.xml.out
    │   │   │   ├── textwrap.py
    │   │   │   ├── this.py
    │   │   │   ├── threading.py
    │   │   │   ├── timeit.py
    │   │   │   ├── toaiff.py
    │   │   │   ├── token.py
    │   │   │   ├── tokenize.py
    │   │   │   ├── trace.py
    │   │   │   ├── traceback.py
    │   │   │   ├── tty.py
    │   │   │   ├── types.py
    │   │   │   ├── unittest/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── __main__.py
    │   │   │   │   ├── case.py
    │   │   │   │   ├── loader.py
    │   │   │   │   ├── main.py
    │   │   │   │   ├── result.py
    │   │   │   │   ├── runner.py
    │   │   │   │   ├── signals.py
    │   │   │   │   ├── suite.py
    │   │   │   │   └── util.py
    │   │   │   ├── urllib.py
    │   │   │   ├── urllib2.py
    │   │   │   ├── urlparse.py
    │   │   │   ├── user.py
    │   │   │   ├── uu.py
    │   │   │   ├── uuid.py
    │   │   │   ├── warnings.py
    │   │   │   ├── wave.py
    │   │   │   ├── weakref.py
    │   │   │   ├── webbrowser.py
    │   │   │   ├── whichdb.py
    │   │   │   ├── wsgiref/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── handlers.py
    │   │   │   │   ├── headers.py
    │   │   │   │   ├── simple_server.py
    │   │   │   │   ├── util.py
    │   │   │   │   └── validate.py
    │   │   │   ├── xdrlib.py
    │   │   │   ├── xml/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── dom/
    │   │   │   │   │   ├── NodeFilter.py
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── domreg.py
    │   │   │   │   │   ├── expatbuilder.py
    │   │   │   │   │   ├── minicompat.py
    │   │   │   │   │   ├── minidom.py
    │   │   │   │   │   ├── pulldom.py
    │   │   │   │   │   └── xmlbuilder.py
    │   │   │   │   ├── etree/
    │   │   │   │   │   ├── ElementInclude.py
    │   │   │   │   │   ├── ElementPath.py
    │   │   │   │   │   ├── ElementTree.py
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── cElementTree.py
    │   │   │   │   ├── parsers/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── expat.py
    │   │   │   │   └── sax/
    │   │   │   │       ├── __init__.py
    │   │   │   │       ├── _exceptions.py
    │   │   │   │       ├── expatreader.py
    │   │   │   │       ├── handler.py
    │   │   │   │       ├── saxutils.py
    │   │   │   │       └── xmlreader.py
    │   │   │   ├── xmllib.py
    │   │   │   ├── xmlrpclib.py
    │   │   │   └── zipfile.py
    │   │   ├── NEWS.txt
    │   │   ├── README.txt
    │   │   └── include/
    │   │       ├── Python-ast.h
    │   │       ├── Python.h
    │   │       ├── abstract.h
    │   │       ├── asdl.h
    │   │       ├── ast.h
    │   │       ├── bitset.h
    │   │       ├── boolobject.h
    │   │       ├── bufferobject.h
    │   │       ├── bytearrayobject.h
    │   │       ├── bytes_methods.h
    │   │       ├── bytesobject.h
    │   │       ├── cStringIO.h
    │   │       ├── cellobject.h
    │   │       ├── ceval.h
    │   │       ├── classobject.h
    │   │       ├── cobject.h
    │   │       ├── code.h
    │   │       ├── codecs.h
    │   │       ├── compile.h
    │   │       ├── complexobject.h
    │   │       ├── datetime.h
    │   │       ├── descrobject.h
    │   │       ├── dictobject.h
    │   │       ├── dtoa.h
    │   │       ├── enumobject.h
    │   │       ├── errcode.h
    │   │       ├── eval.h
    │   │       ├── fileobject.h
    │   │       ├── floatobject.h
    │   │       ├── frameobject.h
    │   │       ├── funcobject.h
    │   │       ├── genobject.h
    │   │       ├── graminit.h
    │   │       ├── grammar.h
    │   │       ├── import.h
    │   │       ├── intobject.h
    │   │       ├── intrcheck.h
    │   │       ├── iterobject.h
    │   │       ├── listobject.h
    │   │       ├── longintrepr.h
    │   │       ├── longobject.h
    │   │       ├── marshal.h
    │   │       ├── memoryobject.h
    │   │       ├── metagrammar.h
    │   │       ├── methodobject.h
    │   │       ├── modsupport.h
    │   │       ├── moduleobject.h
    │   │       ├── node.h
    │   │       ├── object.h
    │   │       ├── objimpl.h
    │   │       ├── opcode.h
    │   │       ├── osdefs.h
    │   │       ├── parsetok.h
    │   │       ├── patchlevel.h
    │   │       ├── pgen.h
    │   │       ├── pgenheaders.h
    │   │       ├── py_curses.h
    │   │       ├── pyarena.h
    │   │       ├── pycapsule.h
    │   │       ├── pyconfig.h
    │   │       ├── pyctype.h
    │   │       ├── pydebug.h
    │   │       ├── pyerrors.h
    │   │       ├── pyexpat.h
    │   │       ├── pyfpe.h
    │   │       ├── pygetopt.h
    │   │       ├── pymacconfig.h
    │   │       ├── pymactoolbox.h
    │   │       ├── pymath.h
    │   │       ├── pymem.h
    │   │       ├── pyport.h
    │   │       ├── pystate.h
    │   │       ├── pystrcmp.h
    │   │       ├── pystrtod.h
    │   │       ├── pythonrun.h
    │   │       ├── pythread.h
    │   │       ├── rangeobject.h
    │   │       ├── setobject.h
    │   │       ├── sliceobject.h
    │   │       ├── stringobject.h
    │   │       ├── structmember.h
    │   │       ├── structseq.h
    │   │       ├── symtable.h
    │   │       ├── sysmodule.h
    │   │       ├── timefuncs.h
    │   │       ├── token.h
    │   │       ├── traceback.h
    │   │       ├── tupleobject.h
    │   │       ├── ucnhash.h
    │   │       ├── unicodeobject.h
    │   │       ├── warnings.h
    │   │       └── weakrefobject.h
    │   ├── win64-py32/
    │   │   ├── DLLs/
    │   │   │   ├── _ctypes.pyd
    │   │   │   ├── _ctypes_test.pyd
    │   │   │   ├── _elementtree.pyd
    │   │   │   ├── _hashlib.pyd
    │   │   │   ├── _msi.pyd
    │   │   │   ├── _multiprocessing.pyd
    │   │   │   ├── _socket.pyd
    │   │   │   ├── _sqlite3.pyd
    │   │   │   ├── _ssl.pyd
    │   │   │   ├── _testcapi.pyd
    │   │   │   ├── bz2.pyd
    │   │   │   ├── pyexpat.pyd
    │   │   │   ├── select.pyd
    │   │   │   ├── unicodedata.pyd
    │   │   │   └── winsound.pyd
    │   │   ├── LICENSE.txt
    │   │   ├── Lib/
    │   │   │   ├── __future__.py
    │   │   │   ├── __phello__.foo.py
    │   │   │   ├── _abcoll.py
    │   │   │   ├── _compat_pickle.py
    │   │   │   ├── _dummy_thread.py
    │   │   │   ├── _markupbase.py
    │   │   │   ├── _osx_support.py
    │   │   │   ├── _pyio.py
    │   │   │   ├── _strptime.py
    │   │   │   ├── _threading_local.py
    │   │   │   ├── _weakrefset.py
    │   │   │   ├── abc.py
    │   │   │   ├── aifc.py
    │   │   │   ├── antigravity.py
    │   │   │   ├── argparse.py
    │   │   │   ├── ast.py
    │   │   │   ├── asynchat.py
    │   │   │   ├── asyncore.py
    │   │   │   ├── base64.py
    │   │   │   ├── bdb.py
    │   │   │   ├── binhex.py
    │   │   │   ├── bisect.py
    │   │   │   ├── cProfile.py
    │   │   │   ├── calendar.py
    │   │   │   ├── cgi.py
    │   │   │   ├── cgitb.py
    │   │   │   ├── chunk.py
    │   │   │   ├── cmd.py
    │   │   │   ├── code.py
    │   │   │   ├── codecs.py
    │   │   │   ├── codeop.py
    │   │   │   ├── collections.py
    │   │   │   ├── colorsys.py
    │   │   │   ├── compileall.py
    │   │   │   ├── concurrent/
    │   │   │   │   ├── __init__.py
    │   │   │   │   └── futures/
    │   │   │   │       ├── __init__.py
    │   │   │   │       ├── _base.py
    │   │   │   │       ├── process.py
    │   │   │   │       └── thread.py
    │   │   │   ├── configparser.py
    │   │   │   ├── contextlib.py
    │   │   │   ├── copy.py
    │   │   │   ├── copyreg.py
    │   │   │   ├── csv.py
    │   │   │   ├── ctypes/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _endian.py
    │   │   │   │   ├── macholib/
    │   │   │   │   │   ├── README.ctypes
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── dyld.py
    │   │   │   │   │   ├── dylib.py
    │   │   │   │   │   ├── fetch_macholib
    │   │   │   │   │   ├── fetch_macholib.bat
    │   │   │   │   │   └── framework.py
    │   │   │   │   ├── util.py
    │   │   │   │   └── wintypes.py
    │   │   │   ├── curses/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── ascii.py
    │   │   │   │   ├── has_key.py
    │   │   │   │   ├── panel.py
    │   │   │   │   ├── textpad.py
    │   │   │   │   └── wrapper.py
    │   │   │   ├── datetime.py
    │   │   │   ├── dbm/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── dumb.py
    │   │   │   │   ├── gnu.py
    │   │   │   │   └── ndbm.py
    │   │   │   ├── decimal.py
    │   │   │   ├── difflib.py
    │   │   │   ├── dis.py
    │   │   │   ├── distutils/
    │   │   │   │   ├── README
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── archive_util.py
    │   │   │   │   ├── bcppcompiler.py
    │   │   │   │   ├── ccompiler.py
    │   │   │   │   ├── cmd.py
    │   │   │   │   ├── command/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── bdist.py
    │   │   │   │   │   ├── bdist_dumb.py
    │   │   │   │   │   ├── bdist_msi.py
    │   │   │   │   │   ├── bdist_rpm.py
    │   │   │   │   │   ├── bdist_wininst.py
    │   │   │   │   │   ├── build.py
    │   │   │   │   │   ├── build_clib.py
    │   │   │   │   │   ├── build_ext.py
    │   │   │   │   │   ├── build_py.py
    │   │   │   │   │   ├── build_scripts.py
    │   │   │   │   │   ├── check.py
    │   │   │   │   │   ├── clean.py
    │   │   │   │   │   ├── command_template
    │   │   │   │   │   ├── config.py
    │   │   │   │   │   ├── install.py
    │   │   │   │   │   ├── install_data.py
    │   │   │   │   │   ├── install_egg_info.py
    │   │   │   │   │   ├── install_headers.py
    │   │   │   │   │   ├── install_lib.py
    │   │   │   │   │   ├── install_scripts.py
    │   │   │   │   │   ├── register.py
    │   │   │   │   │   ├── sdist.py
    │   │   │   │   │   └── upload.py
    │   │   │   │   ├── config.py
    │   │   │   │   ├── core.py
    │   │   │   │   ├── cygwinccompiler.py
    │   │   │   │   ├── debug.py
    │   │   │   │   ├── dep_util.py
    │   │   │   │   ├── dir_util.py
    │   │   │   │   ├── dist.py
    │   │   │   │   ├── emxccompiler.py
    │   │   │   │   ├── errors.py
    │   │   │   │   ├── extension.py
    │   │   │   │   ├── fancy_getopt.py
    │   │   │   │   ├── file_util.py
    │   │   │   │   ├── filelist.py
    │   │   │   │   ├── log.py
    │   │   │   │   ├── msvc9compiler.py
    │   │   │   │   ├── msvccompiler.py
    │   │   │   │   ├── spawn.py
    │   │   │   │   ├── sysconfig.py
    │   │   │   │   ├── text_file.py
    │   │   │   │   ├── unixccompiler.py
    │   │   │   │   ├── util.py
    │   │   │   │   ├── version.py
    │   │   │   │   └── versionpredicate.py
    │   │   │   ├── doctest.py
    │   │   │   ├── dummy_threading.py
    │   │   │   ├── email/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _parseaddr.py
    │   │   │   │   ├── base64mime.py
    │   │   │   │   ├── charset.py
    │   │   │   │   ├── encoders.py
    │   │   │   │   ├── errors.py
    │   │   │   │   ├── feedparser.py
    │   │   │   │   ├── generator.py
    │   │   │   │   ├── header.py
    │   │   │   │   ├── iterators.py
    │   │   │   │   ├── message.py
    │   │   │   │   ├── mime/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── application.py
    │   │   │   │   │   ├── audio.py
    │   │   │   │   │   ├── base.py
    │   │   │   │   │   ├── image.py
    │   │   │   │   │   ├── message.py
    │   │   │   │   │   ├── multipart.py
    │   │   │   │   │   ├── nonmultipart.py
    │   │   │   │   │   └── text.py
    │   │   │   │   ├── parser.py
    │   │   │   │   ├── quoprimime.py
    │   │   │   │   └── utils.py
    │   │   │   ├── encodings/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── aliases.py
    │   │   │   │   ├── ascii.py
    │   │   │   │   ├── base64_codec.py
    │   │   │   │   ├── big5.py
    │   │   │   │   ├── big5hkscs.py
    │   │   │   │   ├── bz2_codec.py
    │   │   │   │   ├── charmap.py
    │   │   │   │   ├── cp037.py
    │   │   │   │   ├── cp1006.py
    │   │   │   │   ├── cp1026.py
    │   │   │   │   ├── cp1140.py
    │   │   │   │   ├── cp1250.py
    │   │   │   │   ├── cp1251.py
    │   │   │   │   ├── cp1252.py
    │   │   │   │   ├── cp1253.py
    │   │   │   │   ├── cp1254.py
    │   │   │   │   ├── cp1255.py
    │   │   │   │   ├── cp1256.py
    │   │   │   │   ├── cp1257.py
    │   │   │   │   ├── cp1258.py
    │   │   │   │   ├── cp424.py
    │   │   │   │   ├── cp437.py
    │   │   │   │   ├── cp500.py
    │   │   │   │   ├── cp720.py
    │   │   │   │   ├── cp737.py
    │   │   │   │   ├── cp775.py
    │   │   │   │   ├── cp850.py
    │   │   │   │   ├── cp852.py
    │   │   │   │   ├── cp855.py
    │   │   │   │   ├── cp856.py
    │   │   │   │   ├── cp857.py
    │   │   │   │   ├── cp858.py
    │   │   │   │   ├── cp860.py
    │   │   │   │   ├── cp861.py
    │   │   │   │   ├── cp862.py
    │   │   │   │   ├── cp863.py
    │   │   │   │   ├── cp864.py
    │   │   │   │   ├── cp865.py
    │   │   │   │   ├── cp866.py
    │   │   │   │   ├── cp869.py
    │   │   │   │   ├── cp874.py
    │   │   │   │   ├── cp875.py
    │   │   │   │   ├── cp932.py
    │   │   │   │   ├── cp949.py
    │   │   │   │   ├── cp950.py
    │   │   │   │   ├── euc_jis_2004.py
    │   │   │   │   ├── euc_jisx0213.py
    │   │   │   │   ├── euc_jp.py
    │   │   │   │   ├── euc_kr.py
    │   │   │   │   ├── gb18030.py
    │   │   │   │   ├── gb2312.py
    │   │   │   │   ├── gbk.py
    │   │   │   │   ├── hex_codec.py
    │   │   │   │   ├── hp_roman8.py
    │   │   │   │   ├── hz.py
    │   │   │   │   ├── idna.py
    │   │   │   │   ├── iso2022_jp.py
    │   │   │   │   ├── iso2022_jp_1.py
    │   │   │   │   ├── iso2022_jp_2.py
    │   │   │   │   ├── iso2022_jp_2004.py
    │   │   │   │   ├── iso2022_jp_3.py
    │   │   │   │   ├── iso2022_jp_ext.py
    │   │   │   │   ├── iso2022_kr.py
    │   │   │   │   ├── iso8859_1.py
    │   │   │   │   ├── iso8859_10.py
    │   │   │   │   ├── iso8859_11.py
    │   │   │   │   ├── iso8859_13.py
    │   │   │   │   ├── iso8859_14.py
    │   │   │   │   ├── iso8859_15.py
    │   │   │   │   ├── iso8859_16.py
    │   │   │   │   ├── iso8859_2.py
    │   │   │   │   ├── iso8859_3.py
    │   │   │   │   ├── iso8859_4.py
    │   │   │   │   ├── iso8859_5.py
    │   │   │   │   ├── iso8859_6.py
    │   │   │   │   ├── iso8859_7.py
    │   │   │   │   ├── iso8859_8.py
    │   │   │   │   ├── iso8859_9.py
    │   │   │   │   ├── johab.py
    │   │   │   │   ├── koi8_r.py
    │   │   │   │   ├── koi8_u.py
    │   │   │   │   ├── latin_1.py
    │   │   │   │   ├── mac_arabic.py
    │   │   │   │   ├── mac_centeuro.py
    │   │   │   │   ├── mac_croatian.py
    │   │   │   │   ├── mac_cyrillic.py
    │   │   │   │   ├── mac_farsi.py
    │   │   │   │   ├── mac_greek.py
    │   │   │   │   ├── mac_iceland.py
    │   │   │   │   ├── mac_latin2.py
    │   │   │   │   ├── mac_roman.py
    │   │   │   │   ├── mac_romanian.py
    │   │   │   │   ├── mac_turkish.py
    │   │   │   │   ├── mbcs.py
    │   │   │   │   ├── palmos.py
    │   │   │   │   ├── ptcp154.py
    │   │   │   │   ├── punycode.py
    │   │   │   │   ├── quopri_codec.py
    │   │   │   │   ├── raw_unicode_escape.py
    │   │   │   │   ├── rot_13.py
    │   │   │   │   ├── shift_jis.py
    │   │   │   │   ├── shift_jis_2004.py
    │   │   │   │   ├── shift_jisx0213.py
    │   │   │   │   ├── tis_620.py
    │   │   │   │   ├── undefined.py
    │   │   │   │   ├── unicode_escape.py
    │   │   │   │   ├── unicode_internal.py
    │   │   │   │   ├── utf_16.py
    │   │   │   │   ├── utf_16_be.py
    │   │   │   │   ├── utf_16_le.py
    │   │   │   │   ├── utf_32.py
    │   │   │   │   ├── utf_32_be.py
    │   │   │   │   ├── utf_32_le.py
    │   │   │   │   ├── utf_7.py
    │   │   │   │   ├── utf_8.py
    │   │   │   │   ├── utf_8_sig.py
    │   │   │   │   ├── uu_codec.py
    │   │   │   │   └── zlib_codec.py
    │   │   │   ├── filecmp.py
    │   │   │   ├── fileinput.py
    │   │   │   ├── fnmatch.py
    │   │   │   ├── formatter.py
    │   │   │   ├── fractions.py
    │   │   │   ├── ftplib.py
    │   │   │   ├── functools.py
    │   │   │   ├── genericpath.py
    │   │   │   ├── getopt.py
    │   │   │   ├── getpass.py
    │   │   │   ├── gettext.py
    │   │   │   ├── glob.py
    │   │   │   ├── gzip.py
    │   │   │   ├── hashlib.py
    │   │   │   ├── heapq.py
    │   │   │   ├── hmac.py
    │   │   │   ├── html/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── entities.py
    │   │   │   │   └── parser.py
    │   │   │   ├── http/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── client.py
    │   │   │   │   ├── cookiejar.py
    │   │   │   │   ├── cookies.py
    │   │   │   │   └── server.py
    │   │   │   ├── imaplib.py
    │   │   │   ├── imghdr.py
    │   │   │   ├── importlib/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _bootstrap.py
    │   │   │   │   ├── abc.py
    │   │   │   │   ├── machinery.py
    │   │   │   │   ├── test/
    │   │   │   │   │   ├── builtin/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── test_finder.py
    │   │   │   │   │   │   ├── test_loader.py
    │   │   │   │   │   │   └── util.py
    │   │   │   │   │   ├── extension/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── test_case_sensitivity.py
    │   │   │   │   │   │   ├── test_finder.py
    │   │   │   │   │   │   ├── test_loader.py
    │   │   │   │   │   │   ├── test_path_hook.py
    │   │   │   │   │   │   └── util.py
    │   │   │   │   │   ├── frozen/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── test_finder.py
    │   │   │   │   │   │   └── test_loader.py
    │   │   │   │   │   ├── import_/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── test___package__.py
    │   │   │   │   │   │   ├── test_api.py
    │   │   │   │   │   │   ├── test_caching.py
    │   │   │   │   │   │   ├── test_fromlist.py
    │   │   │   │   │   │   ├── test_meta_path.py
    │   │   │   │   │   │   ├── test_packages.py
    │   │   │   │   │   │   ├── test_path.py
    │   │   │   │   │   │   ├── test_relative_imports.py
    │   │   │   │   │   │   └── util.py
    │   │   │   │   │   └── source/
    │   │   │   │   │       ├── __init__.py
    │   │   │   │   │       ├── test_abc_loader.py
    │   │   │   │   │       ├── test_case_sensitivity.py
    │   │   │   │   │       ├── test_file_loader.py
    │   │   │   │   │       ├── test_finder.py
    │   │   │   │   │       ├── test_path_hook.py
    │   │   │   │   │       ├── test_source_encoding.py
    │   │   │   │   │       └── util.py
    │   │   │   │   └── util.py
    │   │   │   ├── inspect.py
    │   │   │   ├── io.py
    │   │   │   ├── json/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── decoder.py
    │   │   │   │   ├── encoder.py
    │   │   │   │   ├── scanner.py
    │   │   │   │   └── tool.py
    │   │   │   ├── keyword.py
    │   │   │   ├── lib2to3/
    │   │   │   │   ├── Grammar.txt
    │   │   │   │   ├── Grammar3.2.5.final.0.pickle
    │   │   │   │   ├── PatternGrammar.txt
    │   │   │   │   ├── PatternGrammar3.2.5.final.0.pickle
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── btm_matcher.py
    │   │   │   │   ├── btm_utils.py
    │   │   │   │   ├── fixer_base.py
    │   │   │   │   ├── fixer_util.py
    │   │   │   │   ├── fixes/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── fix_apply.py
    │   │   │   │   │   ├── fix_basestring.py
    │   │   │   │   │   ├── fix_buffer.py
    │   │   │   │   │   ├── fix_callable.py
    │   │   │   │   │   ├── fix_dict.py
    │   │   │   │   │   ├── fix_except.py
    │   │   │   │   │   ├── fix_exec.py
    │   │   │   │   │   ├── fix_execfile.py
    │   │   │   │   │   ├── fix_exitfunc.py
    │   │   │   │   │   ├── fix_filter.py
    │   │   │   │   │   ├── fix_funcattrs.py
    │   │   │   │   │   ├── fix_future.py
    │   │   │   │   │   ├── fix_getcwdu.py
    │   │   │   │   │   ├── fix_has_key.py
    │   │   │   │   │   ├── fix_idioms.py
    │   │   │   │   │   ├── fix_import.py
    │   │   │   │   │   ├── fix_imports.py
    │   │   │   │   │   ├── fix_imports2.py
    │   │   │   │   │   ├── fix_input.py
    │   │   │   │   │   ├── fix_intern.py
    │   │   │   │   │   ├── fix_isinstance.py
    │   │   │   │   │   ├── fix_itertools.py
    │   │   │   │   │   ├── fix_itertools_imports.py
    │   │   │   │   │   ├── fix_long.py
    │   │   │   │   │   ├── fix_map.py
    │   │   │   │   │   ├── fix_metaclass.py
    │   │   │   │   │   ├── fix_methodattrs.py
    │   │   │   │   │   ├── fix_ne.py
    │   │   │   │   │   ├── fix_next.py
    │   │   │   │   │   ├── fix_nonzero.py
    │   │   │   │   │   ├── fix_numliterals.py
    │   │   │   │   │   ├── fix_operator.py
    │   │   │   │   │   ├── fix_paren.py
    │   │   │   │   │   ├── fix_print.py
    │   │   │   │   │   ├── fix_raise.py
    │   │   │   │   │   ├── fix_raw_input.py
    │   │   │   │   │   ├── fix_reduce.py
    │   │   │   │   │   ├── fix_renames.py
    │   │   │   │   │   ├── fix_repr.py
    │   │   │   │   │   ├── fix_set_literal.py
    │   │   │   │   │   ├── fix_standarderror.py
    │   │   │   │   │   ├── fix_sys_exc.py
    │   │   │   │   │   ├── fix_throw.py
    │   │   │   │   │   ├── fix_tuple_params.py
    │   │   │   │   │   ├── fix_types.py
    │   │   │   │   │   ├── fix_unicode.py
    │   │   │   │   │   ├── fix_urllib.py
    │   │   │   │   │   ├── fix_ws_comma.py
    │   │   │   │   │   ├── fix_xrange.py
    │   │   │   │   │   ├── fix_xreadlines.py
    │   │   │   │   │   └── fix_zip.py
    │   │   │   │   ├── main.py
    │   │   │   │   ├── patcomp.py
    │   │   │   │   ├── pgen2/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── conv.py
    │   │   │   │   │   ├── driver.py
    │   │   │   │   │   ├── grammar.py
    │   │   │   │   │   ├── literals.py
    │   │   │   │   │   ├── parse.py
    │   │   │   │   │   ├── pgen.py
    │   │   │   │   │   ├── token.py
    │   │   │   │   │   └── tokenize.py
    │   │   │   │   ├── pygram.py
    │   │   │   │   ├── pytree.py
    │   │   │   │   ├── refactor.py
    │   │   │   │   └── tests/
    │   │   │   │       └── data/
    │   │   │   │           └── fixers/
    │   │   │   │               ├── bad_order.py
    │   │   │   │               ├── myfixes/
    │   │   │   │               │   ├── __init__.py
    │   │   │   │               │   ├── fix_explicit.py
    │   │   │   │               │   ├── fix_first.py
    │   │   │   │               │   ├── fix_last.py
    │   │   │   │               │   ├── fix_parrot.py
    │   │   │   │               │   └── fix_preorder.py
    │   │   │   │               ├── no_fixer_cls.py
    │   │   │   │               └── parrot_example.py
    │   │   │   ├── linecache.py
    │   │   │   ├── locale.py
    │   │   │   ├── logging/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── config.py
    │   │   │   │   └── handlers.py
    │   │   │   ├── macpath.py
    │   │   │   ├── macurl2path.py
    │   │   │   ├── mailbox.py
    │   │   │   ├── mailcap.py
    │   │   │   ├── mimetypes.py
    │   │   │   ├── modulefinder.py
    │   │   │   ├── msilib/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── schema.py
    │   │   │   │   ├── sequence.py
    │   │   │   │   └── text.py
    │   │   │   ├── multiprocessing/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── connection.py
    │   │   │   │   ├── dummy/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── connection.py
    │   │   │   │   ├── forking.py
    │   │   │   │   ├── heap.py
    │   │   │   │   ├── managers.py
    │   │   │   │   ├── pool.py
    │   │   │   │   ├── process.py
    │   │   │   │   ├── queues.py
    │   │   │   │   ├── reduction.py
    │   │   │   │   ├── sharedctypes.py
    │   │   │   │   ├── synchronize.py
    │   │   │   │   └── util.py
    │   │   │   ├── netrc.py
    │   │   │   ├── nntplib.py
    │   │   │   ├── ntpath.py
    │   │   │   ├── nturl2path.py
    │   │   │   ├── numbers.py
    │   │   │   ├── opcode.py
    │   │   │   ├── optparse.py
    │   │   │   ├── os.py
    │   │   │   ├── os2emxpath.py
    │   │   │   ├── pdb.py
    │   │   │   ├── pickle.py
    │   │   │   ├── pickletools.py
    │   │   │   ├── pipes.py
    │   │   │   ├── pkgutil.py
    │   │   │   ├── platform.py
    │   │   │   ├── plistlib.py
    │   │   │   ├── poplib.py
    │   │   │   ├── posixpath.py
    │   │   │   ├── pprint.py
    │   │   │   ├── profile.py
    │   │   │   ├── pstats.py
    │   │   │   ├── pty.py
    │   │   │   ├── py_compile.py
    │   │   │   ├── pyclbr.py
    │   │   │   ├── pydoc.py
    │   │   │   ├── pydoc_data/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _pydoc.css
    │   │   │   │   └── topics.py
    │   │   │   ├── queue.py
    │   │   │   ├── quopri.py
    │   │   │   ├── random.py
    │   │   │   ├── re.py
    │   │   │   ├── reprlib.py
    │   │   │   ├── rlcompleter.py
    │   │   │   ├── runpy.py
    │   │   │   ├── sched.py
    │   │   │   ├── shelve.py
    │   │   │   ├── shlex.py
    │   │   │   ├── shutil.py
    │   │   │   ├── site-packages/
    │   │   │   │   └── README.txt
    │   │   │   ├── site.py
    │   │   │   ├── smtpd.py
    │   │   │   ├── smtplib.py
    │   │   │   ├── sndhdr.py
    │   │   │   ├── socket.py
    │   │   │   ├── socketserver.py
    │   │   │   ├── sqlite3/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── dbapi2.py
    │   │   │   │   └── dump.py
    │   │   │   ├── sre_compile.py
    │   │   │   ├── sre_constants.py
    │   │   │   ├── sre_parse.py
    │   │   │   ├── ssl.py
    │   │   │   ├── stat.py
    │   │   │   ├── string.py
    │   │   │   ├── stringprep.py
    │   │   │   ├── struct.py
    │   │   │   ├── subprocess.py
    │   │   │   ├── sunau.py
    │   │   │   ├── symbol.py
    │   │   │   ├── symtable.py
    │   │   │   ├── sysconfig.py
    │   │   │   ├── tabnanny.py
    │   │   │   ├── tarfile.py
    │   │   │   ├── telnetlib.py
    │   │   │   ├── tempfile.py
    │   │   │   ├── test/
    │   │   │   │   ├── capath/
    │   │   │   │   │   ├── 4e1295a3.0
    │   │   │   │   │   ├── 5ed36f99.0
    │   │   │   │   │   ├── 6e88d7b8.0
    │   │   │   │   │   └── 99d0fa06.0
    │   │   │   │   ├── cjkencodings/
    │   │   │   │   │   ├── big5-utf8.txt
    │   │   │   │   │   ├── big5.txt
    │   │   │   │   │   ├── big5hkscs-utf8.txt
    │   │   │   │   │   ├── big5hkscs.txt
    │   │   │   │   │   ├── cp949-utf8.txt
    │   │   │   │   │   ├── cp949.txt
    │   │   │   │   │   ├── euc_jisx0213-utf8.txt
    │   │   │   │   │   ├── euc_jisx0213.txt
    │   │   │   │   │   ├── euc_jp-utf8.txt
    │   │   │   │   │   ├── euc_jp.txt
    │   │   │   │   │   ├── euc_kr-utf8.txt
    │   │   │   │   │   ├── euc_kr.txt
    │   │   │   │   │   ├── gb18030-utf8.txt
    │   │   │   │   │   ├── gb18030.txt
    │   │   │   │   │   ├── gb2312-utf8.txt
    │   │   │   │   │   ├── gb2312.txt
    │   │   │   │   │   ├── gbk-utf8.txt
    │   │   │   │   │   ├── gbk.txt
    │   │   │   │   │   ├── hz-utf8.txt
    │   │   │   │   │   ├── hz.txt
    │   │   │   │   │   ├── iso2022_jp-utf8.txt
    │   │   │   │   │   ├── iso2022_jp.txt
    │   │   │   │   │   ├── iso2022_kr-utf8.txt
    │   │   │   │   │   ├── iso2022_kr.txt
    │   │   │   │   │   ├── johab-utf8.txt
    │   │   │   │   │   ├── johab.txt
    │   │   │   │   │   ├── shift_jis-utf8.txt
    │   │   │   │   │   ├── shift_jis.txt
    │   │   │   │   │   ├── shift_jisx0213-utf8.txt
    │   │   │   │   │   └── shift_jisx0213.txt
    │   │   │   │   ├── crashers/
    │   │   │   │   │   ├── README
    │   │   │   │   │   ├── bogus_code_obj.py
    │   │   │   │   │   ├── borrowed_ref_1.py
    │   │   │   │   │   ├── borrowed_ref_2.py
    │   │   │   │   │   ├── compiler_recursion.py
    │   │   │   │   │   ├── gc_inspection.py
    │   │   │   │   │   ├── infinite_loop_re.py
    │   │   │   │   │   ├── loosing_mro_ref.py
    │   │   │   │   │   ├── mutation_inside_cyclegc.py
    │   │   │   │   │   ├── nasty_eq_vs_dict.py
    │   │   │   │   │   ├── recursion_limit_too_high.py
    │   │   │   │   │   ├── recursive_call.py
    │   │   │   │   │   ├── trace_at_recursion_limit.py
    │   │   │   │   │   └── underlying_dict.py
    │   │   │   │   ├── decimaltestdata/
    │   │   │   │   │   ├── abs.decTest
    │   │   │   │   │   ├── add.decTest
    │   │   │   │   │   ├── and.decTest
    │   │   │   │   │   ├── base.decTest
    │   │   │   │   │   ├── clamp.decTest
    │   │   │   │   │   ├── class.decTest
    │   │   │   │   │   ├── compare.decTest
    │   │   │   │   │   ├── comparetotal.decTest
    │   │   │   │   │   ├── comparetotmag.decTest
    │   │   │   │   │   ├── copy.decTest
    │   │   │   │   │   ├── copyabs.decTest
    │   │   │   │   │   ├── copynegate.decTest
    │   │   │   │   │   ├── copysign.decTest
    │   │   │   │   │   ├── ddAbs.decTest
    │   │   │   │   │   ├── ddAdd.decTest
    │   │   │   │   │   ├── ddAnd.decTest
    │   │   │   │   │   ├── ddBase.decTest
    │   │   │   │   │   ├── ddCanonical.decTest
    │   │   │   │   │   ├── ddClass.decTest
    │   │   │   │   │   ├── ddCompare.decTest
    │   │   │   │   │   ├── ddCompareSig.decTest
    │   │   │   │   │   ├── ddCompareTotal.decTest
    │   │   │   │   │   ├── ddCompareTotalMag.decTest
    │   │   │   │   │   ├── ddCopy.decTest
    │   │   │   │   │   ├── ddCopyAbs.decTest
    │   │   │   │   │   ├── ddCopyNegate.decTest
    │   │   │   │   │   ├── ddCopySign.decTest
    │   │   │   │   │   ├── ddDivide.decTest
    │   │   │   │   │   ├── ddDivideInt.decTest
    │   │   │   │   │   ├── ddEncode.decTest
    │   │   │   │   │   ├── ddFMA.decTest
    │   │   │   │   │   ├── ddInvert.decTest
    │   │   │   │   │   ├── ddLogB.decTest
    │   │   │   │   │   ├── ddMax.decTest
    │   │   │   │   │   ├── ddMaxMag.decTest
    │   │   │   │   │   ├── ddMin.decTest
    │   │   │   │   │   ├── ddMinMag.decTest
    │   │   │   │   │   ├── ddMinus.decTest
    │   │   │   │   │   ├── ddMultiply.decTest
    │   │   │   │   │   ├── ddNextMinus.decTest
    │   │   │   │   │   ├── ddNextPlus.decTest
    │   │   │   │   │   ├── ddNextToward.decTest
    │   │   │   │   │   ├── ddOr.decTest
    │   │   │   │   │   ├── ddPlus.decTest
    │   │   │   │   │   ├── ddQuantize.decTest
    │   │   │   │   │   ├── ddReduce.decTest
    │   │   │   │   │   ├── ddRemainder.decTest
    │   │   │   │   │   ├── ddRemainderNear.decTest
    │   │   │   │   │   ├── ddRotate.decTest
    │   │   │   │   │   ├── ddSameQuantum.decTest
    │   │   │   │   │   ├── ddScaleB.decTest
    │   │   │   │   │   ├── ddShift.decTest
    │   │   │   │   │   ├── ddSubtract.decTest
    │   │   │   │   │   ├── ddToIntegral.decTest
    │   │   │   │   │   ├── ddXor.decTest
    │   │   │   │   │   ├── decDouble.decTest
    │   │   │   │   │   ├── decQuad.decTest
    │   │   │   │   │   ├── decSingle.decTest
    │   │   │   │   │   ├── divide.decTest
    │   │   │   │   │   ├── divideint.decTest
    │   │   │   │   │   ├── dqAbs.decTest
    │   │   │   │   │   ├── dqAdd.decTest
    │   │   │   │   │   ├── dqAnd.decTest
    │   │   │   │   │   ├── dqBase.decTest
    │   │   │   │   │   ├── dqCanonical.decTest
    │   │   │   │   │   ├── dqClass.decTest
    │   │   │   │   │   ├── dqCompare.decTest
    │   │   │   │   │   ├── dqCompareSig.decTest
    │   │   │   │   │   ├── dqCompareTotal.decTest
    │   │   │   │   │   ├── dqCompareTotalMag.decTest
    │   │   │   │   │   ├── dqCopy.decTest
    │   │   │   │   │   ├── dqCopyAbs.decTest
    │   │   │   │   │   ├── dqCopyNegate.decTest
    │   │   │   │   │   ├── dqCopySign.decTest
    │   │   │   │   │   ├── dqDivide.decTest
    │   │   │   │   │   ├── dqDivideInt.decTest
    │   │   │   │   │   ├── dqEncode.decTest
    │   │   │   │   │   ├── dqFMA.decTest
    │   │   │   │   │   ├── dqInvert.decTest
    │   │   │   │   │   ├── dqLogB.decTest
    │   │   │   │   │   ├── dqMax.decTest
    │   │   │   │   │   ├── dqMaxMag.decTest
    │   │   │   │   │   ├── dqMin.decTest
    │   │   │   │   │   ├── dqMinMag.decTest
    │   │   │   │   │   ├── dqMinus.decTest
    │   │   │   │   │   ├── dqMultiply.decTest
    │   │   │   │   │   ├── dqNextMinus.decTest
    │   │   │   │   │   ├── dqNextPlus.decTest
    │   │   │   │   │   ├── dqNextToward.decTest
    │   │   │   │   │   ├── dqOr.decTest
    │   │   │   │   │   ├── dqPlus.decTest
    │   │   │   │   │   ├── dqQuantize.decTest
    │   │   │   │   │   ├── dqReduce.decTest
    │   │   │   │   │   ├── dqRemainder.decTest
    │   │   │   │   │   ├── dqRemainderNear.decTest
    │   │   │   │   │   ├── dqRotate.decTest
    │   │   │   │   │   ├── dqSameQuantum.decTest
    │   │   │   │   │   ├── dqScaleB.decTest
    │   │   │   │   │   ├── dqShift.decTest
    │   │   │   │   │   ├── dqSubtract.decTest
    │   │   │   │   │   ├── dqToIntegral.decTest
    │   │   │   │   │   ├── dqXor.decTest
    │   │   │   │   │   ├── dsBase.decTest
    │   │   │   │   │   ├── dsEncode.decTest
    │   │   │   │   │   ├── exp.decTest
    │   │   │   │   │   ├── extra.decTest
    │   │   │   │   │   ├── fma.decTest
    │   │   │   │   │   ├── inexact.decTest
    │   │   │   │   │   ├── invert.decTest
    │   │   │   │   │   ├── ln.decTest
    │   │   │   │   │   ├── log10.decTest
    │   │   │   │   │   ├── logb.decTest
    │   │   │   │   │   ├── max.decTest
    │   │   │   │   │   ├── maxmag.decTest
    │   │   │   │   │   ├── min.decTest
    │   │   │   │   │   ├── minmag.decTest
    │   │   │   │   │   ├── minus.decTest
    │   │   │   │   │   ├── multiply.decTest
    │   │   │   │   │   ├── nextminus.decTest
    │   │   │   │   │   ├── nextplus.decTest
    │   │   │   │   │   ├── nexttoward.decTest
    │   │   │   │   │   ├── or.decTest
    │   │   │   │   │   ├── plus.decTest
    │   │   │   │   │   ├── power.decTest
    │   │   │   │   │   ├── powersqrt.decTest
    │   │   │   │   │   ├── quantize.decTest
    │   │   │   │   │   ├── randomBound32.decTest
    │   │   │   │   │   ├── randoms.decTest
    │   │   │   │   │   ├── reduce.decTest
    │   │   │   │   │   ├── remainder.decTest
    │   │   │   │   │   ├── remainderNear.decTest
    │   │   │   │   │   ├── rescale.decTest
    │   │   │   │   │   ├── rotate.decTest
    │   │   │   │   │   ├── rounding.decTest
    │   │   │   │   │   ├── samequantum.decTest
    │   │   │   │   │   ├── scaleb.decTest
    │   │   │   │   │   ├── shift.decTest
    │   │   │   │   │   ├── squareroot.decTest
    │   │   │   │   │   ├── subtract.decTest
    │   │   │   │   │   ├── testall.decTest
    │   │   │   │   │   ├── tointegral.decTest
    │   │   │   │   │   ├── tointegralx.decTest
    │   │   │   │   │   └── xor.decTest
    │   │   │   │   ├── encoded_modules/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── module_iso_8859_1.py
    │   │   │   │   │   └── module_koi8_r.py
    │   │   │   │   ├── json_tests/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── test_decode.py
    │   │   │   │   │   ├── test_default.py
    │   │   │   │   │   ├── test_dump.py
    │   │   │   │   │   ├── test_encode_basestring_ascii.py
    │   │   │   │   │   ├── test_fail.py
    │   │   │   │   │   ├── test_float.py
    │   │   │   │   │   ├── test_indent.py
    │   │   │   │   │   ├── test_pass1.py
    │   │   │   │   │   ├── test_pass2.py
    │   │   │   │   │   ├── test_pass3.py
    │   │   │   │   │   ├── test_recursion.py
    │   │   │   │   │   ├── test_scanstring.py
    │   │   │   │   │   ├── test_separators.py
    │   │   │   │   │   ├── test_speedups.py
    │   │   │   │   │   ├── test_tool.py
    │   │   │   │   │   └── test_unicode.py
    │   │   │   │   ├── leakers/
    │   │   │   │   │   ├── README.txt
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── test_ctypes.py
    │   │  

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
###SublimeText###
*.pyc

# SublimeText project files
*.sublime-workspace
*.sublime-project

================================================
FILE: README.md
================================================
psycopg2-windows
=========
Pip, windows, AND **virtualenv** friendly versions of psycopg2!!!!!   This works because everything is pre-compiled and beautiful.

##### Cool Stuff
* Easy installation of psycopg2 on windows
* Pip install works for windows
* Virtualenv friendly
* No .exe to wrangle with

Why
----
Every time I need to set up psycopg2 on windows, I wind up wanting to shoot something. For years, I've been managing my virtualenv with Jason Erickson's awesome set of pre-compiled [libraries](http://www.stickpeople.com/projects/python/win-psycopg/).  Recently, I decided to quit making my like so difficult and just pipify everything for windows.



Installation Scripts
----
Depending on your environment, you'll want to use the appropriate script.  All branches are using **version 2.5.3 of psycopg2**.  Since psycopg2 is for PostgreSQL, you'll obviousely want to have that installed first.

#### Windows 32 bit
###### Python 2.5
```
pip install git+https://github.com/nwcell/psycopg2-windows.git@win32-py25#egg=psycopg2
```
###### Python 2.6
```
pip install git+https://github.com/nwcell/psycopg2-windows.git@win32-py26#egg=psycopg2
```
###### Python 2.7
```
pip install git+https://github.com/nwcell/psycopg2-windows.git@win32-py27#egg=psycopg2
```
###### Python 3.2
```
pip install git+https://github.com/nwcell/psycopg2-windows.git@win32-py32#egg=psycopg2
```
###### Python 3.3
```
pip install git+https://github.com/nwcell/psycopg2-windows.git@win32-py33#egg=psycopg2
```
###### Python 3.4
```
pip install git+https://github.com/nwcell/psycopg2-windows.git@win32-py34#egg=psycopg2
```
#### Windows 64 bit
###### Python 2.6
```
pip install git+https://github.com/nwcell/psycopg2-windows.git@win64-py26#egg=psycopg2
```
###### Python 2.7
```
pip install git+https://github.com/nwcell/psycopg2-windows.git@win64-py27#egg=psycopg2
```
###### Python 3.2
```
pip install git+https://github.com/nwcell/psycopg2-windows.git@win64-py32#egg=psycopg2
```
###### Python 3.3
```
pip install git+https://github.com/nwcell/psycopg2-windows.git@win64-py33#egg=psycopg2
```
###### Python 3.4
```
pip install git+https://github.com/nwcell/psycopg2-windows.git@win64-py34#egg=psycopg2
```

Versions
--------
If you want to specify your version, you may do so by installing by tag instead of branch.  The naming convention is identical to branches, except you append the psycopg2 version (eg. @win32-py25-psycopg2-253).  The following psycopg2 versions are available:

 - **2.5.2**
 - **2.5.3**

Tests
----
I've built a primitive test suite that builds python python virtual enviroments and then pip installs psycopg2.  Pip becomes difficult to install starting with python 2.6 and I can't find MSI installs for 2.5.  Because of this, I've not fully tested either of those python versions.  That said, I've put together a .bat file that builds 32 and 63 bit virtualenvs for pythons 2.7, 3.2, and 3.3.  It then installs psycopg2 into each virtualenv.  To keep testing easy, I've included python installations in the tests folder.  I realize that this is not very space sensitive, so the test directory is *only* in the master branch.  Since each compiled version of psycopg2 is kept in a separate branch, installing via pip will not download 6 python installations.

If you *do* want to run the tests themselves, simply clone/checkout master and run tests\scrapt.bat.  From there you may read the scripts output and also check each virtualenv to ensure that the psycopg2 was installed successfully.  If you wan't to help out and have a different environment, please help with the tests.  If you want to help expand the test suite, feel free to help and/or ask any questions.

The test suite assumes that you have a primary python installation with virtualenv already installed.

##### Successfully tested with virtualenv on Windows 7 64 bit:
 - **Windows 32 bit:** Python 2.7
 - **Windows 32 bit:** Python 3.2
 - **Windows 32 bit:** Python 3.3
 - **Windows 64 bit:** Python 2.7
 - **Windows 64 bit:** Python 3.2
 - **Windows 64 bit:** Python 3.3

Credits
-------
 - [Me (AKA: Travis Krause)](http://codeforemen.com): Pipified stuff....  Wrote these docs too...
 - [Jason Erickson](http://www.stickpeople.com): Did the legwork and compiled everything

Liscense
--------
Same as [Psycopg2](http://initd.org/psycopg/license/)


================================================
FILE: psycopg2/__init__.py
================================================
"""A Python driver for PostgreSQL

psycopg is a PostgreSQL_ database adapter for the Python_ programming
language. This is version 2, a complete rewrite of the original code to
provide new-style classes for connection and cursor objects and other sweet
candies. Like the original, psycopg 2 was written with the aim of being very
small and fast, and stable as a rock.

Homepage: http://initd.org/projects/psycopg2

.. _PostgreSQL: http://www.postgresql.org/
.. _Python: http://www.python.org/

:Groups:
  * `Connections creation`: connect
  * `Value objects constructors`: Binary, Date, DateFromTicks, Time,
    TimeFromTicks, Timestamp, TimestampFromTicks
"""
# psycopg/__init__.py - initialization of the psycopg module
#
# Copyright (C) 2003-2010 Federico Di Gregorio  <fog@debian.org>
#
# psycopg2 is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# In addition, as a special exception, the copyright holders give
# permission to link this program with the OpenSSL library (or with
# modified versions of OpenSSL that use the same license as OpenSSL),
# and distribute linked combinations including the two.
#
# You must obey the GNU Lesser General Public License in all respects for
# all of the code used other than OpenSSL.
#
# psycopg2 is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
# License for more details.

# Import modules needed by _psycopg to allow tools like py2exe to do
# their work without bothering about the module dependencies.

# Note: the first internal import should be _psycopg, otherwise the real cause
# of a failed loading of the C module may get hidden, see
# http://archives.postgresql.org/psycopg/2011-02/msg00044.php

# Import the DBAPI-2.0 stuff into top-level module.

from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID

from psycopg2._psycopg import Binary, Date, Time, Timestamp
from psycopg2._psycopg import DateFromTicks, TimeFromTicks, TimestampFromTicks

from psycopg2._psycopg import Error, Warning, DataError, DatabaseError, ProgrammingError
from psycopg2._psycopg import IntegrityError, InterfaceError, InternalError
from psycopg2._psycopg import NotSupportedError, OperationalError

from psycopg2._psycopg import _connect, apilevel, threadsafety, paramstyle
from psycopg2._psycopg import __version__

from psycopg2 import tz


# Register default adapters.

import psycopg2.extensions as _ext
_ext.register_adapter(tuple, _ext.SQL_IN)
_ext.register_adapter(type(None), _ext.NoneAdapter)

# Register the Decimal adapter here instead of in the C layer.
# This way a new class is registered for each sub-interpreter.
# See ticket #52
try:
    from decimal import Decimal
except ImportError:
    pass
else:
    from psycopg2._psycopg import Decimal as Adapter
    _ext.register_adapter(Decimal, Adapter)
    del Decimal, Adapter

import re

def _param_escape(s,
        re_escape=re.compile(r"([\\'])"),
        re_space=re.compile(r'\s')):
    """
    Apply the escaping rule required by PQconnectdb
    """
    if not s: return "''"

    s = re_escape.sub(r'\\\1', s)
    if re_space.search(s):
        s = "'" + s + "'"

    return s

del re


def connect(dsn=None,
        database=None, user=None, password=None, host=None, port=None,
        connection_factory=None, cursor_factory=None, async=False, **kwargs):
    """
    Create a new database connection.

    The connection parameters can be specified either as a string:

        conn = psycopg2.connect("dbname=test user=postgres password=secret")

    or using a set of keyword arguments:

        conn = psycopg2.connect(database="test", user="postgres", password="secret")

    The basic connection parameters are:

    - *dbname*: the database name (only in dsn string)
    - *database*: the database name (only as keyword argument)
    - *user*: user name used to authenticate
    - *password*: password used to authenticate
    - *host*: database host address (defaults to UNIX socket if not provided)
    - *port*: connection port number (defaults to 5432 if not provided)

    Using the *connection_factory* parameter a different class or connections
    factory can be specified. It should be a callable object taking a dsn
    argument.

    Using the *cursor_factory* parameter, a new default cursor factory will be
    used by cursor().

    Using *async*=True an asynchronous connection will be created.

    Any other keyword parameter will be passed to the underlying client
    library: the list of supported parameters depends on the library version.

    """
    items = []
    if database is not None:
        items.append(('dbname', database))
    if user is not None:
        items.append(('user', user))
    if password is not None:
        items.append(('password', password))
    if host is not None:
        items.append(('host', host))
    if port is not None:
        items.append(('port', port))

    items.extend([(k, v) for (k, v) in kwargs.items() if v is not None])

    if dsn is not None and items:
        raise TypeError(
            "'%s' is an invalid keyword argument when the dsn is specified"
                % items[0][0])

    if dsn is None:
        if not items:
            raise TypeError('missing dsn and no parameters')
        else:
            dsn = " ".join(["%s=%s" % (k, _param_escape(str(v)))
                for (k, v) in items])

    conn = _connect(dsn, connection_factory=connection_factory, async=async)
    if cursor_factory is not None:
        conn.cursor_factory = cursor_factory

    return conn


================================================
FILE: psycopg2/_json.py
================================================
"""Implementation of the JSON adaptation objects

This module exists to avoid a circular import problem: pyscopg2.extras depends
on psycopg2.extension, so I can't create the default JSON typecasters in
extensions importing register_json from extras.
"""

# psycopg/_json.py - Implementation of the JSON adaptation objects
#
# Copyright (C) 2012 Daniele Varrazzo  <daniele.varrazzo@gmail.com>
#
# psycopg2 is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# In addition, as a special exception, the copyright holders give
# permission to link this program with the OpenSSL library (or with
# modified versions of OpenSSL that use the same license as OpenSSL),
# and distribute linked combinations including the two.
#
# You must obey the GNU Lesser General Public License in all respects for
# all of the code used other than OpenSSL.
#
# psycopg2 is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
# License for more details.

import sys

from psycopg2._psycopg import ISQLQuote, QuotedString
from psycopg2._psycopg import new_type, new_array_type, register_type


# import the best json implementation available
if sys.version_info[:2] >= (2,6):
    import json
else:
    try:
        import simplejson as json
    except ImportError:
        json = None


# oids from PostgreSQL 9.2
JSON_OID = 114
JSONARRAY_OID = 199

class Json(object):
    """
    An `~psycopg2.extensions.ISQLQuote` wrapper to adapt a Python object to
    :sql:`json` data type.

    `!Json` can be used to wrap any object supported by the provided *dumps*
    function.  If none is provided, the standard :py:func:`json.dumps()` is
    used (`!simplejson` for Python < 2.6;
    `~psycopg2.extensions.ISQLQuote.getquoted()` will raise `!ImportError` if
    the module is not available).

    """
    def __init__(self, adapted, dumps=None):
        self.adapted = adapted

        if dumps is not None:
            self._dumps = dumps
        elif json is not None:
            self._dumps = json.dumps
        else:
            self._dumps = None

    def __conform__(self, proto):
        if proto is ISQLQuote:
            return self

    def dumps(self, obj):
        """Serialize *obj* in JSON format.

        The default is to call `!json.dumps()` or the *dumps* function
        provided in the constructor. You can override this method to create a
        customized JSON wrapper.
        """
        dumps = self._dumps
        if dumps is not None:
            return dumps(obj)
        else:
            raise ImportError(
                "json module not available: "
                "you should provide a dumps function")

    def getquoted(self):
        s = self.dumps(self.adapted)
        return QuotedString(s).getquoted()


def register_json(conn_or_curs=None, globally=False, loads=None,
        oid=None, array_oid=None):
    """Create and register typecasters converting :sql:`json` type to Python objects.

    :param conn_or_curs: a connection or cursor used to find the :sql:`json`
        and :sql:`json[]` oids; the typecasters are registered in a scope
        limited to this object, unless *globally* is set to `!True`. It can be
        `!None` if the oids are provided
    :param globally: if `!False` register the typecasters only on
        *conn_or_curs*, otherwise register them globally
    :param loads: the function used to parse the data into a Python object. If
        `!None` use `!json.loads()`, where `!json` is the module chosen
        according to the Python version (see above)
    :param oid: the OID of the :sql:`json` type if known; If not, it will be
        queried on *conn_or_curs*
    :param array_oid: the OID of the :sql:`json[]` array type if known;
        if not, it will be queried on *conn_or_curs*

    The connection or cursor passed to the function will be used to query the
    database and look for the OID of the :sql:`json` type. No query is
    performed if *oid* and *array_oid* are provided.  Raise
    `~psycopg2.ProgrammingError` if the type is not found.

    """
    if oid is None:
        oid, array_oid = _get_json_oids(conn_or_curs)

    JSON, JSONARRAY = _create_json_typecasters(oid, array_oid, loads)

    register_type(JSON, not globally and conn_or_curs or None)

    if JSONARRAY is not None:
        register_type(JSONARRAY, not globally and conn_or_curs or None)

    return JSON, JSONARRAY

def register_default_json(conn_or_curs=None, globally=False, loads=None):
    """
    Create and register :sql:`json` typecasters for PostgreSQL 9.2 and following.

    Since PostgreSQL 9.2 :sql:`json` is a builtin type, hence its oid is known
    and fixed. This function allows specifying a customized *loads* function
    for the default :sql:`json` type without querying the database.
    All the parameters have the same meaning of `register_json()`.
    """
    return register_json(conn_or_curs=conn_or_curs, globally=globally,
        loads=loads, oid=JSON_OID, array_oid=JSONARRAY_OID)

def _create_json_typecasters(oid, array_oid, loads=None):
    """Create typecasters for json data type."""
    if loads is None:
        if json is None:
            raise ImportError("no json module available")
        else:
            loads = json.loads

    def typecast_json(s, cur):
        if s is None:
            return None
        return loads(s)

    JSON = new_type((oid, ), 'JSON', typecast_json)
    if array_oid is not None:
        JSONARRAY = new_array_type((array_oid, ), "JSONARRAY", JSON)
    else:
        JSONARRAY = None

    return JSON, JSONARRAY

def _get_json_oids(conn_or_curs):
    # lazy imports
    from psycopg2.extensions import STATUS_IN_TRANSACTION
    from psycopg2.extras import _solve_conn_curs

    conn, curs = _solve_conn_curs(conn_or_curs)

    # Store the transaction status of the connection to revert it after use
    conn_status = conn.status

    # column typarray not available before PG 8.3
    typarray = conn.server_version >= 80300 and "typarray" or "NULL"

    # get the oid for the hstore
    curs.execute(
        "SELECT t.oid, %s FROM pg_type t WHERE t.typname = 'json';"
            % typarray)
    r = curs.fetchone()

    # revert the status of the connection as before the command
    if (conn_status != STATUS_IN_TRANSACTION and not conn.autocommit):
        conn.rollback()

    if not r:
        raise conn.ProgrammingError("json data type not found")

    return r





================================================
FILE: psycopg2/_range.py
================================================
"""Implementation of the Range type and adaptation

"""

# psycopg/_range.py - Implementation of the Range type and adaptation
#
# Copyright (C) 2012 Daniele Varrazzo  <daniele.varrazzo@gmail.com>
#
# psycopg2 is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# In addition, as a special exception, the copyright holders give
# permission to link this program with the OpenSSL library (or with
# modified versions of OpenSSL that use the same license as OpenSSL),
# and distribute linked combinations including the two.
#
# You must obey the GNU Lesser General Public License in all respects for
# all of the code used other than OpenSSL.
#
# psycopg2 is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
# License for more details.

import re

from psycopg2._psycopg import ProgrammingError, InterfaceError
from psycopg2.extensions import ISQLQuote, adapt, register_adapter, b
from psycopg2.extensions import new_type, new_array_type, register_type

class Range(object):
    """Python representation for a PostgreSQL |range|_ type.

    :param lower: lower bound for the range. `!None` means unbound
    :param upper: upper bound for the range. `!None` means unbound
    :param bounds: one of the literal strings ``()``, ``[)``, ``(]``, ``[]``,
        representing whether the lower or upper bounds are included
    :param empty: if `!True`, the range is empty

    """
    __slots__ = ('_lower', '_upper', '_bounds')

    def __init__(self, lower=None, upper=None, bounds='[)', empty=False):
        if not empty:
            if bounds not in ('[)', '(]', '()', '[]'):
                raise ValueError("bound flags not valid: %r" % bounds)

            self._lower = lower
            self._upper = upper
            self._bounds = bounds
        else:
            self._lower = self._upper = self._bounds = None

    def __repr__(self):
        if self._bounds is None:
            return "%s(empty=True)" % self.__class__.__name__
        else:
            return "%s(%r, %r, %r)" % (self.__class__.__name__,
                self._lower, self._upper, self._bounds)

    @property
    def lower(self):
        """The lower bound of the range. `!None` if empty or unbound."""
        return self._lower

    @property
    def upper(self):
        """The upper bound of the range. `!None` if empty or unbound."""
        return self._upper

    @property
    def isempty(self):
        """`!True` if the range is empty."""
        return self._bounds is None

    @property
    def lower_inf(self):
        """`!True` if the range doesn't have a lower bound."""
        if self._bounds is None: return False
        return self._lower is None

    @property
    def upper_inf(self):
        """`!True` if the range doesn't have an upper bound."""
        if self._bounds is None: return False
        return self._upper is None

    @property
    def lower_inc(self):
        """`!True` if the lower bound is included in the range."""
        if self._bounds is None: return False
        if self._lower is None: return False
        return self._bounds[0] == '['

    @property
    def upper_inc(self):
        """`!True` if the upper bound is included in the range."""
        if self._bounds is None: return False
        if self._upper is None: return False
        return self._bounds[1] == ']'

    def __contains__(self, x):
        if self._bounds is None: return False
        if self._lower is not None:
            if self._bounds[0] == '[':
                if x < self._lower: return False
            else:
                if x <= self._lower: return False

        if self._upper is not None:
            if self._bounds[1] == ']':
                if x > self._upper: return False
            else:
                if x >= self._upper: return False

        return True

    def __bool__(self):
        return self._bounds is not None

    def __eq__(self, other):
        if not isinstance(other, Range):
            return False
        return (self._lower == other._lower
            and self._upper == other._upper
            and self._bounds == other._bounds)

    def __ne__(self, other):
        return not self.__eq__(other)

    def __hash__(self):
        return hash((self._lower, self._upper, self._bounds))

    # as the postgres docs describe for the server-side stuff,
    # ordering is rather arbitrary, but will remain stable
    # and consistent.

    def __lt__(self, other):
        if not isinstance(other, Range):
            return NotImplemented
        for attr in ('_lower', '_upper', '_bounds'):
            self_value = getattr(self, attr)
            other_value = getattr(other, attr)
            if self_value == other_value:
                pass
            elif self_value is None:
                return True
            elif other_value is None:
                return False
            else:
                return self_value < other_value
        return False

    def __le__(self, other):
        if self == other:
            return True
        else:
            return self.__lt__(other)

    def __gt__(self, other):
        if isinstance(other, Range):
            return other.__lt__(self)
        else:
            return NotImplemented

    def __ge__(self, other):
        if self == other:
            return True
        else:
            return self.__gt__(other)


def register_range(pgrange, pyrange, conn_or_curs, globally=False):
    """Create and register an adapter and the typecasters to convert between
    a PostgreSQL |range|_ type and a PostgreSQL `Range` subclass.

    :param pgrange: the name of the PostgreSQL |range| type. Can be
        schema-qualified
    :param pyrange: a `Range` strict subclass, or just a name to give to a new
        class
    :param conn_or_curs: a connection or cursor used to find the oid of the
        range and its subtype; the typecaster is registered in a scope limited
        to this object, unless *globally* is set to `!True`
    :param globally: if `!False` (default) register the typecaster only on
        *conn_or_curs*, otherwise register it globally
    :return: `RangeCaster` instance responsible for the conversion

    If a string is passed to *pyrange*, a new `Range` subclass is created
    with such name and will be available as the `~RangeCaster.range` attribute
    of the returned `RangeCaster` object.

    The function queries the database on *conn_or_curs* to inspect the
    *pgrange* type and raises `~psycopg2.ProgrammingError` if the type is not
    found.  If querying the database is not advisable, use directly the
    `RangeCaster` class and register the adapter and typecasters using the
    provided functions.

    """
    caster = RangeCaster._from_db(pgrange, pyrange, conn_or_curs)
    caster._register(not globally and conn_or_curs or None)
    return caster


class RangeAdapter(object):
    """`ISQLQuote` adapter for `Range` subclasses.

    This is an abstract class: concrete classes must set a `name` class
    attribute or override `getquoted()`.
    """
    name = None

    def __init__(self, adapted):
        self.adapted = adapted

    def __conform__(self, proto):
        if self._proto is ISQLQuote:
            return self

    def prepare(self, conn):
        self._conn = conn

    def getquoted(self):
        if self.name is None:
            raise NotImplementedError(
                'RangeAdapter must be subclassed overriding its name '
                'or the getquoted() method')

        r = self.adapted
        if r.isempty:
            return b("'empty'::" + self.name)

        if r.lower is not None:
            a = adapt(r.lower)
            if hasattr(a, 'prepare'):
                a.prepare(self._conn)
            lower = a.getquoted()
        else:
            lower = b'NULL'

        if r.upper is not None:
            a = adapt(r.upper)
            if hasattr(a, 'prepare'):
                a.prepare(self._conn)
            upper = a.getquoted()
        else:
            upper = b'NULL'

        return b(self.name + '(') + lower + b', ' + upper \
                + b(", '%s')" % r._bounds)


class RangeCaster(object):
    """Helper class to convert between `Range` and PostgreSQL range types.

    Objects of this class are usually created by `register_range()`. Manual
    creation could be useful if querying the database is not advisable: in
    this case the oids must be provided.
    """
    def __init__(self, pgrange, pyrange, oid, subtype_oid, array_oid=None):
        self.subtype_oid = subtype_oid
        self._create_ranges(pgrange, pyrange)

        name = self.adapter.name or self.adapter.__class__.__name__

        self.typecaster = new_type((oid,), name, self.parse)

        if array_oid is not None:
            self.array_typecaster = new_array_type(
                (array_oid,), name + "ARRAY", self.typecaster)
        else:
            self.array_typecaster = None

    def _create_ranges(self, pgrange, pyrange):
        """Create Range and RangeAdapter classes if needed."""
        # if got a string create a new RangeAdapter concrete type (with a name)
        # else take it as an adapter. Passing an adapter should be considered
        # an implementation detail and is not documented. It is currently used
        # for the numeric ranges.
        self.adapter = None
        if isinstance(pgrange, str):
            self.adapter = type(pgrange, (RangeAdapter,), {})
            self.adapter.name = pgrange
        else:
            try:
                if issubclass(pgrange, RangeAdapter) and pgrange is not RangeAdapter:
                    self.adapter = pgrange
            except TypeError:
                pass

        if self.adapter is None:
            raise TypeError(
                'pgrange must be a string or a RangeAdapter strict subclass')

        self.range = None
        try:
            if isinstance(pyrange, str):
                self.range = type(pyrange, (Range,), {})
            if issubclass(pyrange, Range) and pyrange is not Range:
                self.range = pyrange
        except TypeError:
            pass

        if self.range is None:
            raise TypeError(
                'pyrange must be a type or a Range strict subclass')

    @classmethod
    def _from_db(self, name, pyrange, conn_or_curs):
        """Return a `RangeCaster` instance for the type *pgrange*.

        Raise `ProgrammingError` if the type is not found.
        """
        from psycopg2.extensions import STATUS_IN_TRANSACTION
        from psycopg2.extras import _solve_conn_curs
        conn, curs = _solve_conn_curs(conn_or_curs)

        if conn.server_version < 90200:
            raise ProgrammingError("range types not available in version %s"
                % conn.server_version)

        # Store the transaction status of the connection to revert it after use
        conn_status = conn.status

        # Use the correct schema
        if '.' in name:
            schema, tname = name.split('.', 1)
        else:
            tname = name
            schema = 'public'

        # get the type oid and attributes
        try:
            curs.execute("""\
select rngtypid, rngsubtype,
    (select typarray from pg_type where oid = rngtypid)
from pg_range r
join pg_type t on t.oid = rngtypid
join pg_namespace ns on ns.oid = typnamespace
where typname = %s and ns.nspname = %s;
""", (tname, schema))

        except ProgrammingError:
            if not conn.autocommit:
                conn.rollback()
            raise
        else:
            rec = curs.fetchone()

            # revert the status of the connection as before the command
            if (conn_status != STATUS_IN_TRANSACTION
            and not conn.autocommit):
                conn.rollback()

        if not rec:
            raise ProgrammingError(
                "PostgreSQL type '%s' not found" % name)

        type, subtype, array = rec

        return RangeCaster(name, pyrange,
            oid=type, subtype_oid=subtype, array_oid=array)

    _re_range = re.compile(r"""
        ( \(|\[ )                   # lower bound flag
        (?:                         # lower bound:
          " ( (?: [^"] | "")* ) "   #   - a quoted string
          | ( [^",]+ )              #   - or an unquoted string
        )?                          #   - or empty (not catched)
        ,
        (?:                         # upper bound:
          " ( (?: [^"] | "")* ) "   #   - a quoted string
          | ( [^"\)\]]+ )           #   - or an unquoted string
        )?                          #   - or empty (not catched)
        ( \)|\] )                   # upper bound flag
        """, re.VERBOSE)

    _re_undouble = re.compile(r'(["\\])\1')

    def parse(self, s, cur=None):
        if s is None:
            return None

        if s == 'empty':
            return self.range(empty=True)

        m = self._re_range.match(s)
        if m is None:
            raise InterfaceError("failed to parse range: '%s'" % s)

        lower = m.group(3)
        if lower is None:
            lower = m.group(2)
            if lower is not None:
                lower = self._re_undouble.sub(r"\1", lower)

        upper = m.group(5)
        if upper is None:
            upper = m.group(4)
            if upper is not None:
                upper = self._re_undouble.sub(r"\1", upper)

        if cur is not None:
            lower = cur.cast(self.subtype_oid, lower)
            upper = cur.cast(self.subtype_oid, upper)

        bounds = m.group(1) + m.group(6)

        return self.range(lower, upper, bounds)

    def _register(self, scope=None):
        register_type(self.typecaster, scope)
        if self.array_typecaster is not None:
            register_type(self.array_typecaster, scope)

        register_adapter(self.range, self.adapter)


class NumericRange(Range):
    """A `Range` suitable to pass Python numeric types to a PostgreSQL range.

    PostgreSQL types :sql:`int4range`, :sql:`int8range`, :sql:`numrange` are
    casted into `!NumericRange` instances.
    """
    pass

class DateRange(Range):
    """Represents :sql:`daterange` values."""
    pass

class DateTimeRange(Range):
    """Represents :sql:`tsrange` values."""
    pass

class DateTimeTZRange(Range):
    """Represents :sql:`tstzrange` values."""
    pass


# Special adaptation for NumericRange. Allows to pass number range regardless
# of whether they are ints, floats and what size of ints are, which are
# pointless in Python world. On the way back, no numeric range is casted to
# NumericRange, but only to their subclasses

class NumberRangeAdapter(RangeAdapter):
    """Adapt a range if the subtype doesn't need quotes."""
    def getquoted(self):
        r = self.adapted
        if r.isempty:
            return b"'empty'"

        if not r.lower_inf:
            # not exactly: we are relying that none of these object is really
            # quoted (they are numbers). Also, I'm lazy and not preparing the
            # adapter because I assume encoding doesn't matter for these
            # objects.
            lower = adapt(r.lower).getquoted().decode('ascii')
        else:
            lower = ''

        if not r.upper_inf:
            upper = adapt(r.upper).getquoted().decode('ascii')
        else:
            upper = ''

        return ("'%s%s,%s%s'" % (
            r._bounds[0], lower, upper, r._bounds[1])).encode('ascii')

# TODO: probably won't work with infs, nans and other tricky cases.
register_adapter(NumericRange, NumberRangeAdapter)


# Register globally typecasters and adapters for builtin range types.

# note: the adapter is registered more than once, but this is harmless.
int4range_caster = RangeCaster(NumberRangeAdapter, NumericRange,
    oid=3904, subtype_oid=23, array_oid=3905)
int4range_caster._register()

int8range_caster = RangeCaster(NumberRangeAdapter, NumericRange,
    oid=3926, subtype_oid=20, array_oid=3927)
int8range_caster._register()

numrange_caster = RangeCaster(NumberRangeAdapter, NumericRange,
    oid=3906, subtype_oid=1700, array_oid=3907)
numrange_caster._register()

daterange_caster = RangeCaster('daterange', DateRange,
    oid=3912, subtype_oid=1082, array_oid=3913)
daterange_caster._register()

tsrange_caster = RangeCaster('tsrange', DateTimeRange,
    oid=3908, subtype_oid=1114, array_oid=3909)
tsrange_caster._register()

tstzrange_caster = RangeCaster('tstzrange', DateTimeTZRange,
    oid=3910, subtype_oid=1184, array_oid=3911)
tstzrange_caster._register()




================================================
FILE: psycopg2/errorcodes.py
================================================
"""Error codes for PostgresSQL

This module contains symbolic names for all PostgreSQL error codes.
"""
# psycopg2/errorcodes.py - PostgreSQL error codes
#
# Copyright (C) 2006-2010 Johan Dahlin  <jdahlin@async.com.br>
#
# psycopg2 is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# In addition, as a special exception, the copyright holders give
# permission to link this program with the OpenSSL library (or with
# modified versions of OpenSSL that use the same license as OpenSSL),
# and distribute linked combinations including the two.
#
# You must obey the GNU Lesser General Public License in all respects for
# all of the code used other than OpenSSL.
#
# psycopg2 is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
# License for more details.
#
# Based on:
#
#   http://www.postgresql.org/docs/current/static/errcodes-appendix.html
#

def lookup(code, _cache={}):
    """Lookup an error code or class code and return its symbolic name.

    Raise `KeyError` if the code is not found.
    """
    if _cache:
        return _cache[code]

    # Generate the lookup map at first usage.
    for k, v in globals().items():
        if isinstance(v, str) and len(v) in (2, 5):
            _cache[v] = k

    return lookup(code)


# autogenerated data: do not edit below this point.

# Error classes
CLASS_SUCCESSFUL_COMPLETION = '00'
CLASS_WARNING = '01'
CLASS_NO_DATA = '02'
CLASS_SQL_STATEMENT_NOT_YET_COMPLETE = '03'
CLASS_CONNECTION_EXCEPTION = '08'
CLASS_TRIGGERED_ACTION_EXCEPTION = '09'
CLASS_FEATURE_NOT_SUPPORTED = '0A'
CLASS_INVALID_TRANSACTION_INITIATION = '0B'
CLASS_LOCATOR_EXCEPTION = '0F'
CLASS_INVALID_GRANTOR = '0L'
CLASS_INVALID_ROLE_SPECIFICATION = '0P'
CLASS_DIAGNOSTICS_EXCEPTION = '0Z'
CLASS_CASE_NOT_FOUND = '20'
CLASS_CARDINALITY_VIOLATION = '21'
CLASS_DATA_EXCEPTION = '22'
CLASS_INTEGRITY_CONSTRAINT_VIOLATION = '23'
CLASS_INVALID_CURSOR_STATE = '24'
CLASS_INVALID_TRANSACTION_STATE = '25'
CLASS_INVALID_SQL_STATEMENT_NAME = '26'
CLASS_TRIGGERED_DATA_CHANGE_VIOLATION = '27'
CLASS_INVALID_AUTHORIZATION_SPECIFICATION = '28'
CLASS_DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST = '2B'
CLASS_INVALID_TRANSACTION_TERMINATION = '2D'
CLASS_SQL_ROUTINE_EXCEPTION = '2F'
CLASS_INVALID_CURSOR_NAME = '34'
CLASS_EXTERNAL_ROUTINE_EXCEPTION = '38'
CLASS_EXTERNAL_ROUTINE_INVOCATION_EXCEPTION = '39'
CLASS_SAVEPOINT_EXCEPTION = '3B'
CLASS_INVALID_CATALOG_NAME = '3D'
CLASS_INVALID_SCHEMA_NAME = '3F'
CLASS_TRANSACTION_ROLLBACK = '40'
CLASS_SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION = '42'
CLASS_WITH_CHECK_OPTION_VIOLATION = '44'
CLASS_INSUFFICIENT_RESOURCES = '53'
CLASS_PROGRAM_LIMIT_EXCEEDED = '54'
CLASS_OBJECT_NOT_IN_PREREQUISITE_STATE = '55'
CLASS_OPERATOR_INTERVENTION = '57'
CLASS_SYSTEM_ERROR = '58'
CLASS_CONFIGURATION_FILE_ERROR = 'F0'
CLASS_FOREIGN_DATA_WRAPPER_ERROR = 'HV'
CLASS_PL_PGSQL_ERROR = 'P0'
CLASS_INTERNAL_ERROR = 'XX'

# Class 00 - Successful Completion
SUCCESSFUL_COMPLETION = '00000'

# Class 01 - Warning
WARNING = '01000'
NULL_VALUE_ELIMINATED_IN_SET_FUNCTION = '01003'
STRING_DATA_RIGHT_TRUNCATION = '01004'
PRIVILEGE_NOT_REVOKED = '01006'
PRIVILEGE_NOT_GRANTED = '01007'
IMPLICIT_ZERO_BIT_PADDING = '01008'
DYNAMIC_RESULT_SETS_RETURNED = '0100C'
DEPRECATED_FEATURE = '01P01'

# Class 02 - No Data (this is also a warning class per the SQL standard)
NO_DATA = '02000'
NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED = '02001'

# Class 03 - SQL Statement Not Yet Complete
SQL_STATEMENT_NOT_YET_COMPLETE = '03000'

# Class 08 - Connection Exception
CONNECTION_EXCEPTION = '08000'
SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION = '08001'
CONNECTION_DOES_NOT_EXIST = '08003'
SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION = '08004'
CONNECTION_FAILURE = '08006'
TRANSACTION_RESOLUTION_UNKNOWN = '08007'
PROTOCOL_VIOLATION = '08P01'

# Class 09 - Triggered Action Exception
TRIGGERED_ACTION_EXCEPTION = '09000'

# Class 0A - Feature Not Supported
FEATURE_NOT_SUPPORTED = '0A000'

# Class 0B - Invalid Transaction Initiation
INVALID_TRANSACTION_INITIATION = '0B000'

# Class 0F - Locator Exception
LOCATOR_EXCEPTION = '0F000'
INVALID_LOCATOR_SPECIFICATION = '0F001'

# Class 0L - Invalid Grantor
INVALID_GRANTOR = '0L000'
INVALID_GRANT_OPERATION = '0LP01'

# Class 0P - Invalid Role Specification
INVALID_ROLE_SPECIFICATION = '0P000'

# Class 0Z - Diagnostics Exception
DIAGNOSTICS_EXCEPTION = '0Z000'
STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER = '0Z002'

# Class 20 - Case Not Found
CASE_NOT_FOUND = '20000'

# Class 21 - Cardinality Violation
CARDINALITY_VIOLATION = '21000'

# Class 22 - Data Exception
DATA_EXCEPTION = '22000'
STRING_DATA_RIGHT_TRUNCATION = '22001'
NULL_VALUE_NO_INDICATOR_PARAMETER = '22002'
NUMERIC_VALUE_OUT_OF_RANGE = '22003'
NULL_VALUE_NOT_ALLOWED = '22004'
ERROR_IN_ASSIGNMENT = '22005'
INVALID_DATETIME_FORMAT = '22007'
DATETIME_FIELD_OVERFLOW = '22008'
INVALID_TIME_ZONE_DISPLACEMENT_VALUE = '22009'
ESCAPE_CHARACTER_CONFLICT = '2200B'
INVALID_USE_OF_ESCAPE_CHARACTER = '2200C'
INVALID_ESCAPE_OCTET = '2200D'
ZERO_LENGTH_CHARACTER_STRING = '2200F'
MOST_SPECIFIC_TYPE_MISMATCH = '2200G'
NOT_AN_XML_DOCUMENT = '2200L'
INVALID_XML_DOCUMENT = '2200M'
INVALID_XML_CONTENT = '2200N'
INVALID_XML_COMMENT = '2200S'
INVALID_XML_PROCESSING_INSTRUCTION = '2200T'
INVALID_INDICATOR_PARAMETER_VALUE = '22010'
SUBSTRING_ERROR = '22011'
DIVISION_BY_ZERO = '22012'
INVALID_ARGUMENT_FOR_NTILE_FUNCTION = '22014'
INTERVAL_FIELD_OVERFLOW = '22015'
INVALID_ARGUMENT_FOR_NTH_VALUE_FUNCTION = '22016'
INVALID_CHARACTER_VALUE_FOR_CAST = '22018'
INVALID_ESCAPE_CHARACTER = '22019'
INVALID_REGULAR_EXPRESSION = '2201B'
INVALID_ARGUMENT_FOR_LOGARITHM = '2201E'
INVALID_ARGUMENT_FOR_POWER_FUNCTION = '2201F'
INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION = '2201G'
INVALID_ROW_COUNT_IN_LIMIT_CLAUSE = '2201W'
INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE = '2201X'
INVALID_LIMIT_VALUE = '22020'
CHARACTER_NOT_IN_REPERTOIRE = '22021'
INDICATOR_OVERFLOW = '22022'
INVALID_PARAMETER_VALUE = '22023'
UNTERMINATED_C_STRING = '22024'
INVALID_ESCAPE_SEQUENCE = '22025'
STRING_DATA_LENGTH_MISMATCH = '22026'
TRIM_ERROR = '22027'
ARRAY_SUBSCRIPT_ERROR = '2202E'
FLOATING_POINT_EXCEPTION = '22P01'
INVALID_TEXT_REPRESENTATION = '22P02'
INVALID_BINARY_REPRESENTATION = '22P03'
BAD_COPY_FILE_FORMAT = '22P04'
UNTRANSLATABLE_CHARACTER = '22P05'
NONSTANDARD_USE_OF_ESCAPE_CHARACTER = '22P06'

# Class 23 - Integrity Constraint Violation
INTEGRITY_CONSTRAINT_VIOLATION = '23000'
RESTRICT_VIOLATION = '23001'
NOT_NULL_VIOLATION = '23502'
FOREIGN_KEY_VIOLATION = '23503'
UNIQUE_VIOLATION = '23505'
CHECK_VIOLATION = '23514'
EXCLUSION_VIOLATION = '23P01'

# Class 24 - Invalid Cursor State
INVALID_CURSOR_STATE = '24000'

# Class 25 - Invalid Transaction State
INVALID_TRANSACTION_STATE = '25000'
ACTIVE_SQL_TRANSACTION = '25001'
BRANCH_TRANSACTION_ALREADY_ACTIVE = '25002'
INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION = '25003'
INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION = '25004'
NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION = '25005'
READ_ONLY_SQL_TRANSACTION = '25006'
SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED = '25007'
HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL = '25008'
NO_ACTIVE_SQL_TRANSACTION = '25P01'
IN_FAILED_SQL_TRANSACTION = '25P02'

# Class 26 - Invalid SQL Statement Name
INVALID_SQL_STATEMENT_NAME = '26000'

# Class 27 - Triggered Data Change Violation
TRIGGERED_DATA_CHANGE_VIOLATION = '27000'

# Class 28 - Invalid Authorization Specification
INVALID_AUTHORIZATION_SPECIFICATION = '28000'
INVALID_PASSWORD = '28P01'

# Class 2B - Dependent Privilege Descriptors Still Exist
DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST = '2B000'
DEPENDENT_OBJECTS_STILL_EXIST = '2BP01'

# Class 2D - Invalid Transaction Termination
INVALID_TRANSACTION_TERMINATION = '2D000'

# Class 2F - SQL Routine Exception
SQL_ROUTINE_EXCEPTION = '2F000'
MODIFYING_SQL_DATA_NOT_PERMITTED = '2F002'
PROHIBITED_SQL_STATEMENT_ATTEMPTED = '2F003'
READING_SQL_DATA_NOT_PERMITTED = '2F004'
FUNCTION_EXECUTED_NO_RETURN_STATEMENT = '2F005'

# Class 34 - Invalid Cursor Name
INVALID_CURSOR_NAME = '34000'

# Class 38 - External Routine Exception
EXTERNAL_ROUTINE_EXCEPTION = '38000'
CONTAINING_SQL_NOT_PERMITTED = '38001'
MODIFYING_SQL_DATA_NOT_PERMITTED = '38002'
PROHIBITED_SQL_STATEMENT_ATTEMPTED = '38003'
READING_SQL_DATA_NOT_PERMITTED = '38004'

# Class 39 - External Routine Invocation Exception
EXTERNAL_ROUTINE_INVOCATION_EXCEPTION = '39000'
INVALID_SQLSTATE_RETURNED = '39001'
NULL_VALUE_NOT_ALLOWED = '39004'
TRIGGER_PROTOCOL_VIOLATED = '39P01'
SRF_PROTOCOL_VIOLATED = '39P02'

# Class 3B - Savepoint Exception
SAVEPOINT_EXCEPTION = '3B000'
INVALID_SAVEPOINT_SPECIFICATION = '3B001'

# Class 3D - Invalid Catalog Name
INVALID_CATALOG_NAME = '3D000'

# Class 3F - Invalid Schema Name
INVALID_SCHEMA_NAME = '3F000'

# Class 40 - Transaction Rollback
TRANSACTION_ROLLBACK = '40000'
SERIALIZATION_FAILURE = '40001'
TRANSACTION_INTEGRITY_CONSTRAINT_VIOLATION = '40002'
STATEMENT_COMPLETION_UNKNOWN = '40003'
DEADLOCK_DETECTED = '40P01'

# Class 42 - Syntax Error or Access Rule Violation
SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION = '42000'
INSUFFICIENT_PRIVILEGE = '42501'
SYNTAX_ERROR = '42601'
INVALID_NAME = '42602'
INVALID_COLUMN_DEFINITION = '42611'
NAME_TOO_LONG = '42622'
DUPLICATE_COLUMN = '42701'
AMBIGUOUS_COLUMN = '42702'
UNDEFINED_COLUMN = '42703'
UNDEFINED_OBJECT = '42704'
DUPLICATE_OBJECT = '42710'
DUPLICATE_ALIAS = '42712'
DUPLICATE_FUNCTION = '42723'
AMBIGUOUS_FUNCTION = '42725'
GROUPING_ERROR = '42803'
DATATYPE_MISMATCH = '42804'
WRONG_OBJECT_TYPE = '42809'
INVALID_FOREIGN_KEY = '42830'
CANNOT_COERCE = '42846'
UNDEFINED_FUNCTION = '42883'
RESERVED_NAME = '42939'
UNDEFINED_TABLE = '42P01'
UNDEFINED_PARAMETER = '42P02'
DUPLICATE_CURSOR = '42P03'
DUPLICATE_DATABASE = '42P04'
DUPLICATE_PREPARED_STATEMENT = '42P05'
DUPLICATE_SCHEMA = '42P06'
DUPLICATE_TABLE = '42P07'
AMBIGUOUS_PARAMETER = '42P08'
AMBIGUOUS_ALIAS = '42P09'
INVALID_COLUMN_REFERENCE = '42P10'
INVALID_CURSOR_DEFINITION = '42P11'
INVALID_DATABASE_DEFINITION = '42P12'
INVALID_FUNCTION_DEFINITION = '42P13'
INVALID_PREPARED_STATEMENT_DEFINITION = '42P14'
INVALID_SCHEMA_DEFINITION = '42P15'
INVALID_TABLE_DEFINITION = '42P16'
INVALID_OBJECT_DEFINITION = '42P17'
INDETERMINATE_DATATYPE = '42P18'
INVALID_RECURSION = '42P19'
WINDOWING_ERROR = '42P20'
COLLATION_MISMATCH = '42P21'
INDETERMINATE_COLLATION = '42P22'

# Class 44 - WITH CHECK OPTION Violation
WITH_CHECK_OPTION_VIOLATION = '44000'

# Class 53 - Insufficient Resources
INSUFFICIENT_RESOURCES = '53000'
DISK_FULL = '53100'
OUT_OF_MEMORY = '53200'
TOO_MANY_CONNECTIONS = '53300'
CONFIGURATION_LIMIT_EXCEEDED = '53400'

# Class 54 - Program Limit Exceeded
PROGRAM_LIMIT_EXCEEDED = '54000'
STATEMENT_TOO_COMPLEX = '54001'
TOO_MANY_COLUMNS = '54011'
TOO_MANY_ARGUMENTS = '54023'

# Class 55 - Object Not In Prerequisite State
OBJECT_NOT_IN_PREREQUISITE_STATE = '55000'
OBJECT_IN_USE = '55006'
CANT_CHANGE_RUNTIME_PARAM = '55P02'
LOCK_NOT_AVAILABLE = '55P03'

# Class 57 - Operator Intervention
OPERATOR_INTERVENTION = '57000'
QUERY_CANCELED = '57014'
ADMIN_SHUTDOWN = '57P01'
CRASH_SHUTDOWN = '57P02'
CANNOT_CONNECT_NOW = '57P03'
DATABASE_DROPPED = '57P04'

# Class 58 - System Error (errors external to PostgreSQL itself)
SYSTEM_ERROR = '58000'
IO_ERROR = '58030'
UNDEFINED_FILE = '58P01'
DUPLICATE_FILE = '58P02'

# Class F0 - Configuration File Error
CONFIG_FILE_ERROR = 'F0000'
LOCK_FILE_EXISTS = 'F0001'

# Class HV - Foreign Data Wrapper Error (SQL/MED)
FDW_ERROR = 'HV000'
FDW_OUT_OF_MEMORY = 'HV001'
FDW_DYNAMIC_PARAMETER_VALUE_NEEDED = 'HV002'
FDW_INVALID_DATA_TYPE = 'HV004'
FDW_COLUMN_NAME_NOT_FOUND = 'HV005'
FDW_INVALID_DATA_TYPE_DESCRIPTORS = 'HV006'
FDW_INVALID_COLUMN_NAME = 'HV007'
FDW_INVALID_COLUMN_NUMBER = 'HV008'
FDW_INVALID_USE_OF_NULL_POINTER = 'HV009'
FDW_INVALID_STRING_FORMAT = 'HV00A'
FDW_INVALID_HANDLE = 'HV00B'
FDW_INVALID_OPTION_INDEX = 'HV00C'
FDW_INVALID_OPTION_NAME = 'HV00D'
FDW_OPTION_NAME_NOT_FOUND = 'HV00J'
FDW_REPLY_HANDLE = 'HV00K'
FDW_UNABLE_TO_CREATE_EXECUTION = 'HV00L'
FDW_UNABLE_TO_CREATE_REPLY = 'HV00M'
FDW_UNABLE_TO_ESTABLISH_CONNECTION = 'HV00N'
FDW_NO_SCHEMAS = 'HV00P'
FDW_SCHEMA_NOT_FOUND = 'HV00Q'
FDW_TABLE_NOT_FOUND = 'HV00R'
FDW_FUNCTION_SEQUENCE_ERROR = 'HV010'
FDW_TOO_MANY_HANDLES = 'HV014'
FDW_INCONSISTENT_DESCRIPTOR_INFORMATION = 'HV021'
FDW_INVALID_ATTRIBUTE_VALUE = 'HV024'
FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH = 'HV090'
FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER = 'HV091'

# Class P0 - PL/pgSQL Error
PLPGSQL_ERROR = 'P0000'
RAISE_EXCEPTION = 'P0001'
NO_DATA_FOUND = 'P0002'
TOO_MANY_ROWS = 'P0003'

# Class XX - Internal Error
INTERNAL_ERROR = 'XX000'
DATA_CORRUPTED = 'XX001'
INDEX_CORRUPTED = 'XX002'


================================================
FILE: psycopg2/extensions.py
================================================
"""psycopg extensions to the DBAPI-2.0

This module holds all the extensions to the DBAPI-2.0 provided by psycopg.

- `connection` -- the new-type inheritable connection class
- `cursor` -- the new-type inheritable cursor class
- `lobject` -- the new-type inheritable large object class
- `adapt()` -- exposes the PEP-246_ compatible adapting mechanism used
  by psycopg to adapt Python types to PostgreSQL ones
  
.. _PEP-246: http://www.python.org/peps/pep-0246.html
"""
# psycopg/extensions.py - DBAPI-2.0 extensions specific to psycopg
#
# Copyright (C) 2003-2010 Federico Di Gregorio  <fog@debian.org>
#
# psycopg2 is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# In addition, as a special exception, the copyright holders give
# permission to link this program with the OpenSSL library (or with
# modified versions of OpenSSL that use the same license as OpenSSL),
# and distribute linked combinations including the two.
#
# You must obey the GNU Lesser General Public License in all respects for
# all of the code used other than OpenSSL.
#
# psycopg2 is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
# License for more details.

from psycopg2._psycopg import UNICODE, INTEGER, LONGINTEGER, BOOLEAN, FLOAT
from psycopg2._psycopg import TIME, DATE, INTERVAL, DECIMAL
from psycopg2._psycopg import BINARYARRAY, BOOLEANARRAY, DATEARRAY, DATETIMEARRAY
from psycopg2._psycopg import DECIMALARRAY, FLOATARRAY, INTEGERARRAY, INTERVALARRAY
from psycopg2._psycopg import LONGINTEGERARRAY, ROWIDARRAY, STRINGARRAY, TIMEARRAY
from psycopg2._psycopg import UNICODEARRAY

from psycopg2._psycopg import Binary, Boolean, Int, Float, QuotedString, AsIs
try:
    from psycopg2._psycopg import MXDATE, MXDATETIME, MXINTERVAL, MXTIME
    from psycopg2._psycopg import MXDATEARRAY, MXDATETIMEARRAY, MXINTERVALARRAY, MXTIMEARRAY
    from psycopg2._psycopg import DateFromMx, TimeFromMx, TimestampFromMx
    from psycopg2._psycopg import IntervalFromMx
except ImportError:
    pass

try:
    from psycopg2._psycopg import PYDATE, PYDATETIME, PYINTERVAL, PYTIME
    from psycopg2._psycopg import PYDATEARRAY, PYDATETIMEARRAY, PYINTERVALARRAY, PYTIMEARRAY
    from psycopg2._psycopg import DateFromPy, TimeFromPy, TimestampFromPy
    from psycopg2._psycopg import IntervalFromPy
except ImportError:
    pass

from psycopg2._psycopg import adapt, adapters, encodings, connection, cursor, lobject, Xid
from psycopg2._psycopg import string_types, binary_types, new_type, new_array_type, register_type
from psycopg2._psycopg import ISQLQuote, Notify, Diagnostics

from psycopg2._psycopg import QueryCanceledError, TransactionRollbackError

try:
    from psycopg2._psycopg import set_wait_callback, get_wait_callback
except ImportError:
    pass

"""Isolation level values."""
ISOLATION_LEVEL_AUTOCOMMIT          = 0
ISOLATION_LEVEL_READ_UNCOMMITTED    = 4
ISOLATION_LEVEL_READ_COMMITTED      = 1
ISOLATION_LEVEL_REPEATABLE_READ     = 2
ISOLATION_LEVEL_SERIALIZABLE        = 3

"""psycopg connection status values."""
STATUS_SETUP    = 0
STATUS_READY    = 1
STATUS_BEGIN    = 2
STATUS_SYNC     = 3  # currently unused
STATUS_ASYNC    = 4  # currently unused
STATUS_PREPARED = 5

# This is a useful mnemonic to check if the connection is in a transaction
STATUS_IN_TRANSACTION = STATUS_BEGIN

"""psycopg asynchronous connection polling values"""
POLL_OK    = 0
POLL_READ  = 1
POLL_WRITE = 2
POLL_ERROR = 3

"""Backend transaction status values."""
TRANSACTION_STATUS_IDLE    = 0
TRANSACTION_STATUS_ACTIVE  = 1
TRANSACTION_STATUS_INTRANS = 2
TRANSACTION_STATUS_INERROR = 3
TRANSACTION_STATUS_UNKNOWN = 4

import sys as _sys

# Return bytes from a string
if _sys.version_info[0] < 3:
    def b(s):
        return s
else:
    def b(s):
        return s.encode('utf8')

def register_adapter(typ, callable):
    """Register 'callable' as an ISQLQuote adapter for type 'typ'."""
    adapters[(typ, ISQLQuote)] = callable


# The SQL_IN class is the official adapter for tuples starting from 2.0.6.
class SQL_IN(object):
    """Adapt any iterable to an SQL quotable object."""
    def __init__(self, seq):
        self._seq = seq
        self._conn = None

    def prepare(self, conn):
        self._conn = conn

    def getquoted(self):
        # this is the important line: note how every object in the
        # list is adapted and then how getquoted() is called on it
        pobjs = [adapt(o) for o in self._seq]
        if self._conn is not None:
            for obj in pobjs:
                if hasattr(obj, 'prepare'):
                    obj.prepare(self._conn)
        qobjs = [o.getquoted() for o in pobjs]
        return b'(' + b', '.join(qobjs) + b')'

    def __str__(self):
        return str(self.getquoted())


class NoneAdapter(object):
    """Adapt None to NULL.

    This adapter is not used normally as a fast path in mogrify uses NULL,
    but it makes easier to adapt composite types.
    """
    def __init__(self, obj):
        pass

    def getquoted(self, _null=b"NULL"):
        return _null


# Create default json typecasters for PostgreSQL 9.2 oids
from psycopg2._json import register_default_json

try:
    JSON, JSONARRAY = register_default_json()
except ImportError:
    pass

del register_default_json


# Create default Range typecasters
from psycopg2. _range import Range
del Range

# Add the "cleaned" version of the encodings to the key.
# When the encoding is set its name is cleaned up from - and _ and turned
# uppercase, so an encoding not respecting these rules wouldn't be found in the
# encodings keys and would raise an exception with the unicode typecaster
for k, v in list(encodings.items()):
    k = k.replace('_', '').replace('-', '').upper()
    encodings[k] = v

del k, v


================================================
FILE: psycopg2/extras.py
================================================
"""Miscellaneous goodies for psycopg2

This module is a generic place used to hold little helper functions
and classes until a better place in the distribution is found.
"""
# psycopg/extras.py - miscellaneous extra goodies for psycopg
#
# Copyright (C) 2003-2010 Federico Di Gregorio  <fog@debian.org>
#
# psycopg2 is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# In addition, as a special exception, the copyright holders give
# permission to link this program with the OpenSSL library (or with
# modified versions of OpenSSL that use the same license as OpenSSL),
# and distribute linked combinations including the two.
#
# You must obey the GNU Lesser General Public License in all respects for
# all of the code used other than OpenSSL.
#
# psycopg2 is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
# License for more details.

import os as _os
import sys as _sys
import time as _time
import re as _re

try:
    import logging as _logging
except:
    _logging = None

import psycopg2
from psycopg2 import extensions as _ext
from psycopg2.extensions import cursor as _cursor
from psycopg2.extensions import connection as _connection
from psycopg2.extensions import adapt as _A
from psycopg2.extensions import b


class DictCursorBase(_cursor):
    """Base class for all dict-like cursors."""

    def __init__(self, *args, **kwargs):
        if 'row_factory' in kwargs:
            row_factory = kwargs['row_factory']
            del kwargs['row_factory']
        else:
            raise NotImplementedError(
                "DictCursorBase can't be instantiated without a row factory.")
        super(DictCursorBase, self).__init__(*args, **kwargs)
        self._query_executed = 0
        self._prefetch = 0
        self.row_factory = row_factory

    def fetchone(self):
        if self._prefetch:
            res = super(DictCursorBase, self).fetchone()
        if self._query_executed:
            self._build_index()
        if not self._prefetch:
            res = super(DictCursorBase, self).fetchone()
        return res

    def fetchmany(self, size=None):
        if self._prefetch:
            res = super(DictCursorBase, self).fetchmany(size)
        if self._query_executed:
            self._build_index()
        if not self._prefetch:
            res = super(DictCursorBase, self).fetchmany(size)
        return res

    def fetchall(self):
        if self._prefetch:
            res = super(DictCursorBase, self).fetchall()
        if self._query_executed:
            self._build_index()
        if not self._prefetch:
            res = super(DictCursorBase, self).fetchall()
        return res

    def __iter__(self):
        if self._prefetch:
            res = super(DictCursorBase, self).__iter__()
            first = next(res)
        if self._query_executed:
            self._build_index()
        if not self._prefetch:
            res = super(DictCursorBase, self).__iter__()
            first = next(res)

        yield first
        while 1:
            yield next(res)


class DictConnection(_connection):
    """A connection that uses `DictCursor` automatically."""
    def cursor(self, *args, **kwargs):
        kwargs.setdefault('cursor_factory', DictCursor)
        return super(DictConnection, self).cursor(*args, **kwargs)

class DictCursor(DictCursorBase):
    """A cursor that keeps a list of column name -> index mappings."""

    def __init__(self, *args, **kwargs):
        kwargs['row_factory'] = DictRow
        super(DictCursor, self).__init__(*args, **kwargs)
        self._prefetch = 1

    def execute(self, query, vars=None):
        self.index = {}
        self._query_executed = 1
        return super(DictCursor, self).execute(query, vars)

    def callproc(self, procname, vars=None):
        self.index = {}
        self._query_executed = 1
        return super(DictCursor, self).callproc(procname, vars)

    def _build_index(self):
        if self._query_executed == 1 and self.description:
            for i in range(len(self.description)):
                self.index[self.description[i][0]] = i
            self._query_executed = 0

class DictRow(list):
    """A row object that allow by-column-name access to data."""

    __slots__ = ('_index',)

    def __init__(self, cursor):
        self._index = cursor.index
        self[:] = [None] * len(cursor.description)

    def __getitem__(self, x):
        if not isinstance(x, (int, slice)):
            x = self._index[x]
        return list.__getitem__(self, x)

    def __setitem__(self, x, v):
        if not isinstance(x, (int, slice)):
            x = self._index[x]
        list.__setitem__(self, x, v)

    def items(self):
        return list(self.items())

    def keys(self):
        return list(self._index.keys())

    def values(self):
        return tuple(self[:])

    def has_key(self, x):
        return x in self._index

    def get(self, x, default=None):
        try:
            return self[x]
        except:
            return default

    def iteritems(self):
        for n, v in self._index.items():
            yield n, list.__getitem__(self, v)

    def iterkeys(self):
        return iter(self._index.keys())

    def itervalues(self):
        return list.__iter__(self)

    def copy(self):
        return dict(iter(self.items()))

    def __contains__(self, x):
        return x in self._index

    def __getstate__(self):
        return self[:], self._index.copy()

    def __setstate__(self, data):
        self[:] = data[0]
        self._index = data[1]

    # drop the crusty Py2 methods
    if _sys.version_info[0] > 2:
        items = iteritems; del iteritems
        keys = iterkeys; del iterkeys
        values = itervalues; del itervalues
        del has_key


class RealDictConnection(_connection):
    """A connection that uses `RealDictCursor` automatically."""
    def cursor(self, *args, **kwargs):
        kwargs.setdefault('cursor_factory', RealDictCursor)
        return super(RealDictConnection, self).cursor(*args, **kwargs)

class RealDictCursor(DictCursorBase):
    """A cursor that uses a real dict as the base type for rows.

    Note that this cursor is extremely specialized and does not allow
    the normal access (using integer indices) to fetched data. If you need
    to access database rows both as a dictionary and a list, then use
    the generic `DictCursor` instead of `!RealDictCursor`.
    """
    def __init__(self, *args, **kwargs):
        kwargs['row_factory'] = RealDictRow
        super(RealDictCursor, self).__init__(*args, **kwargs)
        self._prefetch = 0

    def execute(self, query, vars=None):
        self.column_mapping = []
        self._query_executed = 1
        return super(RealDictCursor, self).execute(query, vars)

    def callproc(self, procname, vars=None):
        self.column_mapping = []
        self._query_executed = 1
        return super(RealDictCursor, self).callproc(procname, vars)

    def _build_index(self):
        if self._query_executed == 1 and self.description:
            for i in range(len(self.description)):
                self.column_mapping.append(self.description[i][0])
            self._query_executed = 0

class RealDictRow(dict):
    """A `!dict` subclass representing a data record."""

    __slots__ = ('_column_mapping')

    def __init__(self, cursor):
        dict.__init__(self)
        # Required for named cursors
        if cursor.description and not cursor.column_mapping:
            cursor._build_index()

        self._column_mapping = cursor.column_mapping

    def __setitem__(self, name, value):
        if type(name) == int:
            name = self._column_mapping[name]
        return dict.__setitem__(self, name, value)

    def __getstate__(self):
        return (self.copy(), self._column_mapping[:])

    def __setstate__(self, data):
        self.update(data[0])
        self._column_mapping = data[1]


class NamedTupleConnection(_connection):
    """A connection that uses `NamedTupleCursor` automatically."""
    def cursor(self, *args, **kwargs):
        kwargs.setdefault('cursor_factory', NamedTupleCursor)
        return super(NamedTupleConnection, self).cursor(*args, **kwargs)

class NamedTupleCursor(_cursor):
    """A cursor that generates results as `~collections.namedtuple`.

    `!fetch*()` methods will return named tuples instead of regular tuples, so
    their elements can be accessed both as regular numeric items as well as
    attributes.

        >>> nt_cur = conn.cursor(cursor_factory=psycopg2.extras.NamedTupleCursor)
        >>> rec = nt_cur.fetchone()
        >>> rec
        Record(id=1, num=100, data="abc'def")
        >>> rec[1]
        100
        >>> rec.data
        "abc'def"
    """
    Record = None

    def execute(self, query, vars=None):
        self.Record = None
        return super(NamedTupleCursor, self).execute(query, vars)

    def executemany(self, query, vars):
        self.Record = None
        return super(NamedTupleCursor, self).executemany(query, vars)

    def callproc(self, procname, vars=None):
        self.Record = None
        return super(NamedTupleCursor, self).callproc(procname, vars)

    def fetchone(self):
        t = super(NamedTupleCursor, self).fetchone()
        if t is not None:
            nt = self.Record
            if nt is None:
                nt = self.Record = self._make_nt()
            return nt._make(t)

    def fetchmany(self, size=None):
        ts = super(NamedTupleCursor, self).fetchmany(size)
        nt = self.Record
        if nt is None:
            nt = self.Record = self._make_nt()
        return list(map(nt._make, ts))

    def fetchall(self):
        ts = super(NamedTupleCursor, self).fetchall()
        nt = self.Record
        if nt is None:
            nt = self.Record = self._make_nt()
        return list(map(nt._make, ts))

    def __iter__(self):
        it = super(NamedTupleCursor, self).__iter__()
        t = next(it)

        nt = self.Record
        if nt is None:
            nt = self.Record = self._make_nt()

        yield nt._make(t)

        while 1:
            yield nt._make(next(it))

    try:
        from collections import namedtuple
    except ImportError as _exc:
        def _make_nt(self):
            raise self._exc
    else:
        def _make_nt(self, namedtuple=namedtuple):
            return namedtuple("Record", [d[0] for d in self.description or ()])


class LoggingConnection(_connection):
    """A connection that logs all queries to a file or logger__ object.

    .. __: http://docs.python.org/library/logging.html
    """

    def initialize(self, logobj):
        """Initialize the connection to log to `!logobj`.

        The `!logobj` parameter can be an open file object or a Logger
        instance from the standard logging module.
        """
        self._logobj = logobj
        if _logging and isinstance(logobj, _logging.Logger):
            self.log = self._logtologger
        else:
            self.log = self._logtofile

    def filter(self, msg, curs):
        """Filter the query before logging it.

        This is the method to overwrite to filter unwanted queries out of the
        log or to add some extra data to the output. The default implementation
        just does nothing.
        """
        return msg

    def _logtofile(self, msg, curs):
        msg = self.filter(msg, curs)
        if msg: self._logobj.write(msg + _os.linesep)

    def _logtologger(self, msg, curs):
        msg = self.filter(msg, curs)
        if msg: self._logobj.debug(msg)

    def _check(self):
        if not hasattr(self, '_logobj'):
            raise self.ProgrammingError(
                "LoggingConnection object has not been initialize()d")

    def cursor(self, *args, **kwargs):
        self._check()
        kwargs.setdefault('cursor_factory', LoggingCursor)
        return super(LoggingConnection, self).cursor(*args, **kwargs)

class LoggingCursor(_cursor):
    """A cursor that logs queries using its connection logging facilities."""

    def execute(self, query, vars=None):
        try:
            return super(LoggingCursor, self).execute(query, vars)
        finally:
            self.connection.log(self.query, self)

    def callproc(self, procname, vars=None):
        try:
            return super(LoggingCursor, self).callproc(procname, vars)
        finally:
            self.connection.log(self.query, self)


class MinTimeLoggingConnection(LoggingConnection):
    """A connection that logs queries based on execution time.

    This is just an example of how to sub-class `LoggingConnection` to
    provide some extra filtering for the logged queries. Both the
    `initialize()` and `filter()` methods are overwritten to make sure
    that only queries executing for more than ``mintime`` ms are logged.

    Note that this connection uses the specialized cursor
    `MinTimeLoggingCursor`.
    """
    def initialize(self, logobj, mintime=0):
        LoggingConnection.initialize(self, logobj)
        self._mintime = mintime

    def filter(self, msg, curs):
        t = (_time.time() - curs.timestamp) * 1000
        if t > self._mintime:
            return msg + _os.linesep + "  (execution time: %d ms)" % t

    def cursor(self, *args, **kwargs):
        kwargs.setdefault('cursor_factory', MinTimeLoggingCursor)
        return LoggingConnection.cursor(self, *args, **kwargs)

class MinTimeLoggingCursor(LoggingCursor):
    """The cursor sub-class companion to `MinTimeLoggingConnection`."""

    def execute(self, query, vars=None):
        self.timestamp = _time.time()
        return LoggingCursor.execute(self, query, vars)

    def callproc(self, procname, vars=None):
        self.timestamp = _time.time()
        return LoggingCursor.execute(self, procname, vars)


# a dbtype and adapter for Python UUID type

class UUID_adapter(object):
    """Adapt Python's uuid.UUID__ type to PostgreSQL's uuid__.

    .. __: http://docs.python.org/library/uuid.html
    .. __: http://www.postgresql.org/docs/current/static/datatype-uuid.html
    """

    def __init__(self, uuid):
        self._uuid = uuid

    def __conform__(self, proto):
        if proto is _ext.ISQLQuote:
            return self

    def getquoted(self):
        return b("'%s'::uuid" % self._uuid)

    def __str__(self):
        return "'%s'::uuid" % self._uuid

def register_uuid(oids=None, conn_or_curs=None):
    """Create the UUID type and an uuid.UUID adapter.

    :param oids: oid for the PostgreSQL :sql:`uuid` type, or 2-items sequence
        with oids of the type and the array. If not specified, use PostgreSQL
        standard oids.
    :param conn_or_curs: where to register the typecaster. If not specified,
        register it globally.
    """

    import uuid

    if not oids:
        oid1 = 2950
        oid2 = 2951
    elif isinstance(oids, (list, tuple)):
        oid1, oid2 = oids
    else:
        oid1 = oids
        oid2 = 2951

    _ext.UUID = _ext.new_type((oid1, ), "UUID",
            lambda data, cursor: data and uuid.UUID(data) or None)
    _ext.UUIDARRAY = _ext.new_array_type((oid2,), "UUID[]", _ext.UUID)

    _ext.register_type(_ext.UUID, conn_or_curs)
    _ext.register_type(_ext.UUIDARRAY, conn_or_curs)
    _ext.register_adapter(uuid.UUID, UUID_adapter)

    return _ext.UUID


# a type, dbtype and adapter for PostgreSQL inet type

class Inet(object):
    """Wrap a string to allow for correct SQL-quoting of inet values.

    Note that this adapter does NOT check the passed value to make
    sure it really is an inet-compatible address but DOES call adapt()
    on it to make sure it is impossible to execute an SQL-injection
    by passing an evil value to the initializer.
    """
    def __init__(self, addr):
        self.addr = addr

    def __repr__(self):
        return "%s(%r)" % (self.__class__.__name__, self.addr)

    def prepare(self, conn):
        self._conn = conn

    def getquoted(self):
        obj = _A(self.addr)
        if hasattr(obj, 'prepare'):
            obj.prepare(self._conn)
        return obj.getquoted() + b"::inet"

    def __conform__(self, proto):
        if proto is _ext.ISQLQuote:
            return self

    def __str__(self):
        return str(self.addr)

def register_inet(oid=None, conn_or_curs=None):
    """Create the INET type and an Inet adapter.

    :param oid: oid for the PostgreSQL :sql:`inet` type, or 2-items sequence
        with oids of the type and the array. If not specified, use PostgreSQL
        standard oids.
    :param conn_or_curs: where to register the typecaster. If not specified,
        register it globally.
    """
    if not oid:
        oid1 = 869
        oid2 = 1041
    elif isinstance(oid, (list, tuple)):
        oid1, oid2 = oid
    else:
        oid1 = oid
        oid2 = 1041

    _ext.INET = _ext.new_type((oid1, ), "INET",
            lambda data, cursor: data and Inet(data) or None)
    _ext.INETARRAY = _ext.new_array_type((oid2, ), "INETARRAY", _ext.INET)

    _ext.register_type(_ext.INET, conn_or_curs)
    _ext.register_type(_ext.INETARRAY, conn_or_curs)

    return _ext.INET


def register_tstz_w_secs(oids=None, conn_or_curs=None):
    """The function used to register an alternate type caster for
    :sql:`TIMESTAMP WITH TIME ZONE` to deal with historical time zones with
    seconds in the UTC offset.

    These are now correctly handled by the default type caster, so currently
    the function doesn't do anything.
    """
    import warnings
    warnings.warn("deprecated", DeprecationWarning)


def wait_select(conn):
    """Wait until a connection or cursor has data available.

    The function is an example of a wait callback to be registered with
    `~psycopg2.extensions.set_wait_callback()`. This function uses
    :py:func:`~select.select()` to wait for data available.

    """
    import select
    from psycopg2.extensions import POLL_OK, POLL_READ, POLL_WRITE

    while 1:
        state = conn.poll()
        if state == POLL_OK:
            break
        elif state == POLL_READ:
            select.select([conn.fileno()], [], [])
        elif state == POLL_WRITE:
            select.select([], [conn.fileno()], [])
        else:
            raise conn.OperationalError("bad state from poll: %s" % state)


def _solve_conn_curs(conn_or_curs):
    """Return the connection and a DBAPI cursor from a connection or cursor."""
    if conn_or_curs is None:
        raise psycopg2.ProgrammingError("no connection or cursor provided")

    if hasattr(conn_or_curs, 'execute'):
        conn = conn_or_curs.connection
        curs = conn.cursor(cursor_factory=_cursor)
    else:
        conn = conn_or_curs
        curs = conn.cursor(cursor_factory=_cursor)

    return conn, curs


class HstoreAdapter(object):
    """Adapt a Python dict to the hstore syntax."""
    def __init__(self, wrapped):
        self.wrapped = wrapped

    def prepare(self, conn):
        self.conn = conn

        # use an old-style getquoted implementation if required
        if conn.server_version < 90000:
            self.getquoted = self._getquoted_8

    def _getquoted_8(self):
        """Use the operators available in PG pre-9.0."""
        if not self.wrapped:
            return b"''::hstore"

        adapt = _ext.adapt
        rv = []
        for k, v in self.wrapped.items():
            k = adapt(k)
            k.prepare(self.conn)
            k = k.getquoted()

            if v is not None:
                v = adapt(v)
                v.prepare(self.conn)
                v = v.getquoted()
            else:
                v = b'NULL'

            # XXX this b'ing is painfully inefficient!
            rv.append(b"(" + k + b" => " + v + b")")

        return b"(" + b'||'.join(rv) + b")"

    def _getquoted_9(self):
        """Use the hstore(text[], text[]) function."""
        if not self.wrapped:
            return b"''::hstore"

        k = _ext.adapt(list(self.wrapped.keys()))
        k.prepare(self.conn)
        v = _ext.adapt(list(self.wrapped.values()))
        v.prepare(self.conn)
        return b"hstore(" + k.getquoted() + b", " + v.getquoted() + b")"

    getquoted = _getquoted_9

    _re_hstore = _re.compile(r"""
        # hstore key:
        # a string of normal or escaped chars
        "((?: [^"\\] | \\. )*)"
        \s*=>\s* # hstore value
        (?:
            NULL # the value can be null - not catched
            # or a quoted string like the key
            | "((?: [^"\\] | \\. )*)"
        )
        (?:\s*,\s*|$) # pairs separated by comma or end of string.
    """, _re.VERBOSE)

    @classmethod
    def parse(self, s, cur, _bsdec=_re.compile(r"\\(.)")):
        """Parse an hstore representation in a Python string.

        The hstore is represented as something like::

            "a"=>"1", "b"=>"2"

        with backslash-escaped strings.
        """
        if s is None:
            return None

        rv = {}
        start = 0
        for m in self._re_hstore.finditer(s):
            if m is None or m.start() != start:
                raise psycopg2.InterfaceError(
                    "error parsing hstore pair at char %d" % start)
            k = _bsdec.sub(r'\1', m.group(1))
            v = m.group(2)
            if v is not None:
                v = _bsdec.sub(r'\1', v)

            rv[k] = v
            start = m.end()

        if start < len(s):
            raise psycopg2.InterfaceError(
                "error parsing hstore: unparsed data after char %d" % start)

        return rv

    @classmethod
    def parse_unicode(self, s, cur):
        """Parse an hstore returning unicode keys and values."""
        if s is None:
            return None

        s = s.decode(_ext.encodings[cur.connection.encoding])
        return self.parse(s, cur)

    @classmethod
    def get_oids(self, conn_or_curs):
        """Return the lists of OID of the hstore and hstore[] types.
        """
        conn, curs = _solve_conn_curs(conn_or_curs)

        # Store the transaction status of the connection to revert it after use
        conn_status = conn.status

        # column typarray not available before PG 8.3
        typarray = conn.server_version >= 80300 and "typarray" or "NULL"

        rv0, rv1 = [], []

        # get the oid for the hstore
        curs.execute("""\
SELECT t.oid, %s
FROM pg_type t JOIN pg_namespace ns
    ON typnamespace = ns.oid
WHERE typname = 'hstore';
""" % typarray)
        for oids in curs:
            rv0.append(oids[0])
            rv1.append(oids[1])

        # revert the status of the connection as before the command
        if (conn_status != _ext.STATUS_IN_TRANSACTION
        and not conn.autocommit):
            conn.rollback()

        return tuple(rv0), tuple(rv1)

def register_hstore(conn_or_curs, globally=False, str=False,
        oid=None, array_oid=None):
    """Register adapter and typecaster for `!dict`\-\ |hstore| conversions.

    :param conn_or_curs: a connection or cursor: the typecaster will be
        registered only on this object unless *globally* is set to `!True`
    :param globally: register the adapter globally, not only on *conn_or_curs*
    :param unicode: if `!True`, keys and values returned from the database
        will be `!unicode` instead of `!str`. The option is not available on
        Python 3
    :param oid: the OID of the |hstore| type if known. If not, it will be
        queried on *conn_or_curs*.
    :param array_oid: the OID of the |hstore| array type if known. If not, it
        will be queried on *conn_or_curs*.

    The connection or cursor passed to the function will be used to query the
    database and look for the OID of the |hstore| type (which may be different
    across databases). If querying is not desirable (e.g. with
    :ref:`asynchronous connections <async-support>`) you may specify it in the
    *oid* parameter, which can be found using a query such as :sql:`SELECT
    'hstore'::regtype::oid`. Analogously you can obtain a value for *array_oid*
    using a query such as :sql:`SELECT 'hstore[]'::regtype::oid`.

    Note that, when passing a dictionary from Python to the database, both
    strings and unicode keys and values are supported. Dictionaries returned
    from the database have keys/values according to the *unicode* parameter.

    The |hstore| contrib module must be already installed in the database
    (executing the ``hstore.sql`` script in your ``contrib`` directory).
    Raise `~psycopg2.ProgrammingError` if the type is not found.
    """
    if oid is None:
        oid = HstoreAdapter.get_oids(conn_or_curs)
        if oid is None or not oid[0]:
            raise psycopg2.ProgrammingError(
                "hstore type not found in the database. "
                "please install it from your 'contrib/hstore.sql' file")
        else:
            array_oid = oid[1]
            oid = oid[0]

    if isinstance(oid, int):
        oid = (oid,)

    if array_oid is not None:
        if isinstance(array_oid, int):
            array_oid = (array_oid,)
        else:
            array_oid = tuple([x for x in array_oid if x])

    # create and register the typecaster
    if _sys.version_info[0] < 3 and str:
        cast = HstoreAdapter.parse_unicode
    else:
        cast = HstoreAdapter.parse

    HSTORE = _ext.new_type(oid, "HSTORE", cast)
    _ext.register_type(HSTORE, not globally and conn_or_curs or None)
    _ext.register_adapter(dict, HstoreAdapter)

    if array_oid:
        HSTOREARRAY = _ext.new_array_type(array_oid, "HSTOREARRAY", HSTORE)
        _ext.register_type(HSTOREARRAY, not globally and conn_or_curs or None)


class CompositeCaster(object):
    """Helps conversion of a PostgreSQL composite type into a Python object.

    The class is usually created by the `register_composite()` function.
    You may want to create and register manually instances of the class if
    querying the database at registration time is not desirable (such as when
    using an :ref:`asynchronous connections <async-support>`).

    """
    def __init__(self, name, oid, attrs, array_oid=None, schema=None):
        self.name = name
        self.schema = schema
        self.oid = oid
        self.array_oid = array_oid

        self.attnames = [ a[0] for a in attrs ]
        self.atttypes = [ a[1] for a in attrs ]
        self._create_type(name, self.attnames)
        self.typecaster = _ext.new_type((oid,), name, self.parse)
        if array_oid:
            self.array_typecaster = _ext.new_array_type(
                (array_oid,), "%sARRAY" % name, self.typecaster)
        else:
            self.array_typecaster = None

    def parse(self, s, curs):
        if s is None:
            return None

        tokens = self.tokenize(s)
        if len(tokens) != len(self.atttypes):
            raise psycopg2.DataError(
                "expecting %d components for the type %s, %d found instead" %
                (len(self.atttypes), self.name, len(tokens)))

        values = [ curs.cast(oid, token)
            for oid, token in zip(self.atttypes, tokens) ]

        return self.make(values)

    def make(self, values):
        """Return a new Python object representing the data being casted.

        *values* is the list of attributes, already casted into their Python
        representation.

        You can subclass this method to :ref:`customize the composite cast
        <custom-composite>`.
        """

        return self._ctor(values)

    _re_tokenize = _re.compile(r"""
  \(? ([,)])                        # an empty token, representing NULL
| \(? " ((?: [^"] | "")*) " [,)]    # or a quoted string
| \(? ([^",)]+) [,)]                # or an unquoted string
    """, _re.VERBOSE)

    _re_undouble = _re.compile(r'(["\\])\1')

    @classmethod
    def tokenize(self, s):
        rv = []
        for m in self._re_tokenize.finditer(s):
            if m is None:
                raise psycopg2.InterfaceError("can't parse type: %r" % s)
            if m.group(1) is not None:
                rv.append(None)
            elif m.group(2) is not None:
                rv.append(self._re_undouble.sub(r"\1", m.group(2)))
            else:
                rv.append(m.group(3))

        return rv

    def _create_type(self, name, attnames):
        try:
            from collections import namedtuple
        except ImportError:
            self.type = tuple
            self._ctor = self.type
        else:
            self.type = namedtuple(name, attnames)
            self._ctor = self.type._make

    @classmethod
    def _from_db(self, name, conn_or_curs):
        """Return a `CompositeCaster` instance for the type *name*.

        Raise `ProgrammingError` if the type is not found.
        """
        conn, curs = _solve_conn_curs(conn_or_curs)

        # Store the transaction status of the connection to revert it after use
        conn_status = conn.status

        # Use the correct schema
        if '.' in name:
            schema, tname = name.split('.', 1)
        else:
            tname = name
            schema = 'public'

        # column typarray not available before PG 8.3
        typarray = conn.server_version >= 80300 and "typarray" or "NULL"

        # get the type oid and attributes
        curs.execute("""\
SELECT t.oid, %s, attname, atttypid
FROM pg_type t
JOIN pg_namespace ns ON typnamespace = ns.oid
JOIN pg_attribute a ON attrelid = typrelid
WHERE typname = %%s AND nspname = %%s
    AND attnum > 0 AND NOT attisdropped
ORDER BY attnum;
""" % typarray, (tname, schema))

        recs = curs.fetchall()

        # revert the status of the connection as before the command
        if (conn_status != _ext.STATUS_IN_TRANSACTION
        and not conn.autocommit):
            conn.rollback()

        if not recs:
            raise psycopg2.ProgrammingError(
                "PostgreSQL type '%s' not found" % name)

        type_oid = recs[0][0]
        array_oid = recs[0][1]
        type_attrs = [ (r[2], r[3]) for r in recs ]

        return self(tname, type_oid, type_attrs,
            array_oid=array_oid, schema=schema)

def register_composite(name, conn_or_curs, globally=False, factory=None):
    """Register a typecaster to convert a composite type into a tuple.

    :param name: the name of a PostgreSQL composite type, e.g. created using
        the |CREATE TYPE|_ command
    :param conn_or_curs: a connection or cursor used to find the type oid and
        components; the typecaster is registered in a scope limited to this
        object, unless *globally* is set to `!True`
    :param globally: if `!False` (default) register the typecaster only on
        *conn_or_curs*, otherwise register it globally
    :param factory: if specified it should be a `CompositeCaster` subclass: use
        it to :ref:`customize how to cast composite types <custom-composite>`
    :return: the registered `CompositeCaster` or *factory* instance
        responsible for the conversion
    """
    if factory is None:
        factory = CompositeCaster

    caster = factory._from_db(name, conn_or_curs)
    _ext.register_type(caster.typecaster, not globally and conn_or_curs or None)

    if caster.array_typecaster is not None:
        _ext.register_type(caster.array_typecaster, not globally and conn_or_curs or None)

    return caster


# expose the json adaptation stuff into the module
from psycopg2._json import json, Json, register_json, register_default_json


# Expose range-related objects
from psycopg2._range import Range, NumericRange
from psycopg2._range import DateRange, DateTimeRange, DateTimeTZRange
from psycopg2._range import register_range, RangeAdapter, RangeCaster


================================================
FILE: psycopg2/pool.py
================================================
"""Connection pooling for psycopg2

This module implements thread-safe (and not) connection pools.
"""
# psycopg/pool.py - pooling code for psycopg
#
# Copyright (C) 2003-2010 Federico Di Gregorio  <fog@debian.org>
#
# psycopg2 is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# In addition, as a special exception, the copyright holders give
# permission to link this program with the OpenSSL library (or with
# modified versions of OpenSSL that use the same license as OpenSSL),
# and distribute linked combinations including the two.
#
# You must obey the GNU Lesser General Public License in all respects for
# all of the code used other than OpenSSL.
#
# psycopg2 is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
# License for more details.

import psycopg2
import psycopg2.extensions as _ext


class PoolError(psycopg2.Error):
    pass


class AbstractConnectionPool(object):
    """Generic key-based pooling code."""

    def __init__(self, minconn, maxconn, *args, **kwargs):
        """Initialize the connection pool.

        New 'minconn' connections are created immediately calling 'connfunc'
        with given parameters. The connection pool will support a maximum of
        about 'maxconn' connections.        
        """
        self.minconn = minconn
        self.maxconn = maxconn
        self.closed = False
        
        self._args = args
        self._kwargs = kwargs

        self._pool = []
        self._used = {}
        self._rused = {} # id(conn) -> key map
        self._keys = 0

        for i in range(self.minconn):
            self._connect()

    def _connect(self, key=None):
        """Create a new connection and assign it to 'key' if not None."""
        conn = psycopg2.connect(*self._args, **self._kwargs)
        if key is not None:
            self._used[key] = conn
            self._rused[id(conn)] = key
        else:
            self._pool.append(conn)
        return conn

    def _getkey(self):
        """Return a new unique key."""
        self._keys += 1
        return self._keys
            
    def _getconn(self, key=None):
        """Get a free connection and assign it to 'key' if not None."""
        if self.closed: raise PoolError("connection pool is closed")
        if key is None: key = self._getkey()
	
        if key in self._used:
            return self._used[key]

        if self._pool:
            self._used[key] = conn = self._pool.pop()
            self._rused[id(conn)] = key
            return conn
        else:
            if len(self._used) == self.maxconn:
                raise PoolError("connection pool exausted")
            return self._connect(key)
		 
    def _putconn(self, conn, key=None, close=False):
        """Put away a connection."""
        if self.closed: raise PoolError("connection pool is closed")
        if key is None: key = self._rused.get(id(conn))

        if not key:
            raise PoolError("trying to put unkeyed connection")

        if len(self._pool) < self.minconn and not close:
            # Return the connection into a consistent state before putting
            # it back into the pool
            if not conn.closed:
                status = conn.get_transaction_status()
                if status == _ext.TRANSACTION_STATUS_UNKNOWN:
                    # server connection lost
                    conn.close()
                elif status != _ext.TRANSACTION_STATUS_IDLE:
                    # connection in error or in transaction
                    conn.rollback()
                    self._pool.append(conn)
                else:
                    # regular idle connection
                    self._pool.append(conn)
            # If the connection is closed, we just discard it.
        else:
            conn.close()

        # here we check for the presence of key because it can happen that a
        # thread tries to put back a connection after a call to close
        if not self.closed or key in self._used:
            del self._used[key]
            del self._rused[id(conn)]

    def _closeall(self):
        """Close all connections.

        Note that this can lead to some code fail badly when trying to use
        an already closed connection. If you call .closeall() make sure
        your code can deal with it.
        """
        if self.closed: raise PoolError("connection pool is closed")
        for conn in self._pool + list(self._used.values()):
            try:
                conn.close()
            except:
                pass
        self.closed = True
        

class SimpleConnectionPool(AbstractConnectionPool):
    """A connection pool that can't be shared across different threads."""

    getconn = AbstractConnectionPool._getconn
    putconn = AbstractConnectionPool._putconn
    closeall   = AbstractConnectionPool._closeall


class ThreadedConnectionPool(AbstractConnectionPool):
    """A connection pool that works with the threading module."""

    def __init__(self, minconn, maxconn, *args, **kwargs):
        """Initialize the threading lock."""
        import threading
        AbstractConnectionPool.__init__(
            self, minconn, maxconn, *args, **kwargs)
        self._lock = threading.Lock()

    def getconn(self, key=None):
        """Get a free connection and assign it to 'key' if not None."""
        self._lock.acquire()
        try:
            return self._getconn(key)
        finally:
            self._lock.release()

    def putconn(self, conn=None, key=None, close=False):
        """Put away an unused connection."""
        self._lock.acquire()
        try:
            self._putconn(conn, key, close)
        finally:
            self._lock.release()

    def closeall(self):
        """Close all connections (even the one currently in use.)"""
        self._lock.acquire()
        try:
            self._closeall()
        finally:
            self._lock.release()


class PersistentConnectionPool(AbstractConnectionPool):
    """A pool that assigns persistent connections to different threads. 

    Note that this connection pool generates by itself the required keys
    using the current thread id.  This means that until a thread puts away
    a connection it will always get the same connection object by successive
    `!getconn()` calls. This also means that a thread can't use more than one
    single connection from the pool.
    """

    def __init__(self, minconn, maxconn, *args, **kwargs):
        """Initialize the threading lock."""
        import warnings
        warnings.warn("deprecated: use ZPsycopgDA.pool implementation",
            DeprecationWarning)

        import threading
        AbstractConnectionPool.__init__(
            self, minconn, maxconn, *args, **kwargs)
        self._lock = threading.Lock()

        # we we'll need the thread module, to determine thread ids, so we
        # import it here and copy it in an instance variable
        import _thread
        self.__thread = thread

    def getconn(self):
        """Generate thread id and return a connection."""
        key = self.__thread.get_ident()
        self._lock.acquire()
        try:
            return self._getconn(key)
        finally:
            self._lock.release()

    def putconn(self, conn=None, close=False):
        """Put away an unused connection."""
        key = self.__thread.get_ident()
        self._lock.acquire()
        try:
            if not conn: conn = self._used[key]
            self._putconn(conn, key, close)
        finally:
            self._lock.release()

    def closeall(self):
        """Close all connections (even the one currently in use.)"""
        self._lock.acquire()
        try:
            self._closeall()
        finally:
            self._lock.release()


================================================
FILE: psycopg2/psycopg1.py
================================================
"""psycopg 1.1.x compatibility module

This module uses the new style connection and cursor types to build a psycopg
1.1.1.x compatibility layer. It should be considered a temporary hack to run
old code while porting to psycopg 2. Import it as follows::

    from psycopg2 import psycopg1 as psycopg
"""
# psycopg/psycopg1.py - psycopg 1.1.x compatibility module
#
# Copyright (C) 2003-2010 Federico Di Gregorio  <fog@debian.org>
#
# psycopg2 is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# In addition, as a special exception, the copyright holders give
# permission to link this program with the OpenSSL library (or with
# modified versions of OpenSSL that use the same license as OpenSSL),
# and distribute linked combinations including the two.
#
# You must obey the GNU Lesser General Public License in all respects for
# all of the code used other than OpenSSL.
#
# psycopg2 is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
# License for more details.

from . import _psycopg as _2psycopg
from psycopg2.extensions import cursor as _2cursor
from psycopg2.extensions import connection as _2connection

from psycopg2 import *
import psycopg2.extensions as _ext
_2connect = connect

def connect(*args, **kwargs):
    """connect(dsn, ...) -> new psycopg 1.1.x compatible connection object"""
    kwargs['connection_factory'] = connection
    conn = _2connect(*args, **kwargs)
    conn.set_isolation_level(_ext.ISOLATION_LEVEL_READ_COMMITTED)
    return conn
    
class connection(_2connection):
    """psycopg 1.1.x connection."""
    
    def cursor(self):
        """cursor() -> new psycopg 1.1.x compatible cursor object"""
        return _2connection.cursor(self, cursor_factory=cursor)

    def autocommit(self, on_off=1):
        """autocommit(on_off=1) -> switch autocommit on (1) or off (0)"""
        if on_off > 0:
            self.set_isolation_level(_ext.ISOLATION_LEVEL_AUTOCOMMIT)
        else:
            self.set_isolation_level(_ext.ISOLATION_LEVEL_READ_COMMITTED)
            

class cursor(_2cursor):
    """psycopg 1.1.x cursor.

    Note that this cursor implements the exact procedure used by psycopg 1 to
    build dictionaries out of result rows. The DictCursor in the
    psycopg.extras modules implements a much better and faster algorithm.
    """

    def __build_dict(self, row):
        res = {}
        for i in range(len(self.description)):
            res[self.description[i][0]] = row[i]
        return res
    
    def dictfetchone(self):
        row = _2cursor.fetchone(self)
        if row:
            return self.__build_dict(row)
        else:
            return row
            
    def dictfetchmany(self, size):
        res = []
        rows = _2cursor.fetchmany(self, size)
        for row in rows:
            res.append(self.__build_dict(row))
        return res
    
    def dictfetchall(self):
        res = []
        rows = _2cursor.fetchall(self)
        for row in rows:
            res.append(self.__build_dict(row))
        return res



================================================
FILE: psycopg2/tests/__init__.py
================================================
#!/usr/bin/env python

# psycopg2 test suite
#
# Copyright (C) 2007-2011 Federico Di Gregorio  <fog@debian.org>
#
# psycopg2 is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# In addition, as a special exception, the copyright holders give
# permission to link this program with the OpenSSL library (or with
# modified versions of OpenSSL that use the same license as OpenSSL),
# and distribute linked combinations including the two.
#
# You must obey the GNU Lesser General Public License in all respects for
# all of the code used other than OpenSSL.
#
# psycopg2 is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
# License for more details.

import sys
from .testconfig import dsn
from .testutils import unittest

from . import test_async
from . import test_bugX000
from . import test_bug_gc
from . import test_cancel
from . import test_connection
from . import test_copy
from . import test_cursor
from . import test_dates
from . import test_extras_dictcursor
from . import test_green
from . import test_lobject
from . import test_module
from . import test_notify
from . import test_psycopg2_dbapi20
from . import test_quote
from . import test_transaction
from . import test_types_basic
from . import test_types_extras

if sys.version_info[:2] >= (2, 5):
    from . import test_with
else:
    test_with = None

def test_suite():
    # If connection to test db fails, bail out early.
    import psycopg2
    try:
        cnn = psycopg2.connect(dsn)
    except Exception as e:
        print("Failed connection to test db:", e.__class__.__name__, e)
        print("Please set env vars 'PSYCOPG2_TESTDB*' to valid values.")
        sys.exit(1)
    else:
        cnn.close()

    suite = unittest.TestSuite()
    suite.addTest(test_async.test_suite())
    suite.addTest(test_bugX000.test_suite())
    suite.addTest(test_bug_gc.test_suite())
    suite.addTest(test_cancel.test_suite())
    suite.addTest(test_connection.test_suite())
    suite.addTest(test_copy.test_suite())
    suite.addTest(test_cursor.test_suite())
    suite.addTest(test_dates.test_suite())
    suite.addTest(test_extras_dictcursor.test_suite())
    suite.addTest(test_green.test_suite())
    suite.addTest(test_lobject.test_suite())
    suite.addTest(test_module.test_suite())
    suite.addTest(test_notify.test_suite())
    suite.addTest(test_psycopg2_dbapi20.test_suite())
    suite.addTest(test_quote.test_suite())
    suite.addTest(test_transaction.test_suite())
    suite.addTest(test_types_basic.test_suite())
    suite.addTest(test_types_extras.test_suite())
    if test_with:
        suite.addTest(test_with.test_suite())
    return suite

if __name__ == '__main__':
    unittest.main(defaultTest='test_suite')


================================================
FILE: psycopg2/tests/dbapi20.py
================================================
#!/usr/bin/env python
''' Python DB API 2.0 driver compliance unit test suite. 
    
    This software is Public Domain and may be used without restrictions.

 "Now we have booze and barflies entering the discussion, plus rumours of
  DBAs on drugs... and I won't tell you what flashes through my mind each
  time I read the subject line with 'Anal Compliance' in it.  All around
  this is turning out to be a thoroughly unwholesome unit test."

    -- Ian Bicking
'''

__rcs_id__  = '$Id: dbapi20.py,v 1.11 2005/01/02 02:41:01 zenzen Exp $'
__version__ = '$Revision: 1.12 $'[11:-2]
__author__ = 'Stuart Bishop <stuart@stuartbishop.net>'

import unittest
import time
import sys


# Revision 1.12  2009/02/06 03:35:11  kf7xm
# Tested okay with Python 3.0, includes last minute patches from Mark H.
#
# Revision 1.1.1.1.2.1  2008/09/20 19:54:59  rupole
# Include latest changes from main branch
# Updates for py3k
#
# Revision 1.11  2005/01/02 02:41:01  zenzen
# Update author email address
#
# Revision 1.10  2003/10/09 03:14:14  zenzen
# Add test for DB API 2.0 optional extension, where database exceptions
# are exposed as attributes on the Connection object.
#
# Revision 1.9  2003/08/13 01:16:36  zenzen
# Minor tweak from Stefan Fleiter
#
# Revision 1.8  2003/04/10 00:13:25  zenzen
# Changes, as per suggestions by M.-A. Lemburg
# - Add a table prefix, to ensure namespace collisions can always be avoided
#
# Revision 1.7  2003/02/26 23:33:37  zenzen
# Break out DDL into helper functions, as per request by David Rushby
#
# Revision 1.6  2003/02/21 03:04:33  zenzen
# Stuff from Henrik Ekelund:
#     added test_None
#     added test_nextset & hooks
#
# Revision 1.5  2003/02/17 22:08:43  zenzen
# Implement suggestions and code from Henrik Eklund - test that cursor.arraysize
# defaults to 1 & generic cursor.callproc test added
#
# Revision 1.4  2003/02/15 00:16:33  zenzen
# Changes, as per suggestions and bug reports by M.-A. Lemburg,
# Matthew T. Kromer, Federico Di Gregorio and Daniel Dittmar
# - Class renamed
# - Now a subclass of TestCase, to avoid requiring the driver stub
#   to use multiple inheritance
# - Reversed the polarity of buggy test in test_description
# - Test exception hierarchy correctly
# - self.populate is now self._populate(), so if a driver stub
#   overrides self.ddl1 this change propogates
# - VARCHAR columns now have a width, which will hopefully make the
#   DDL even more portible (this will be reversed if it causes more problems)
# - cursor.rowcount being checked after various execute and fetchXXX methods
# - Check for fetchall and fetchmany returning empty lists after results
#   are exhausted (already checking for empty lists if select retrieved
#   nothing
# - Fix bugs in test_setoutputsize_basic and test_setinputsizes
#
def str2bytes(sval):
    if sys.version_info < (3,0) and isinstance(sval, str):
        sval = sval.decode("latin1")
    return sval.encode("latin1")

class DatabaseAPI20Test(unittest.TestCase):
    ''' Test a database self.driver for DB API 2.0 compatibility.
        This implementation tests Gadfly, but the TestCase
        is structured so that other self.drivers can subclass this 
        test case to ensure compiliance with the DB-API. It is 
        expected that this TestCase may be expanded in the future
        if ambiguities or edge conditions are discovered.

        The 'Optional Extensions' are not yet being tested.

        self.drivers should subclass this test, overriding setUp, tearDown,
        self.driver, connect_args and connect_kw_args. Class specification
        should be as follows:

        import dbapi20 
        class mytest(dbapi20.DatabaseAPI20Test):
           [...] 

        Don't 'import DatabaseAPI20Test from dbapi20', or you will
        confuse the unit tester - just 'import dbapi20'.
    '''

    # The self.driver module. This should be the module where the 'connect'
    # method is to be found
    driver = None
    connect_args = () # List of arguments to pass to connect
    connect_kw_args = {} # Keyword arguments for connect
    table_prefix = 'dbapi20test_' # If you need to specify a prefix for tables

    ddl1 = 'create table %sbooze (name varchar(20))' % table_prefix
    ddl2 = 'create table %sbarflys (name varchar(20))' % table_prefix
    xddl1 = 'drop table %sbooze' % table_prefix
    xddl2 = 'drop table %sbarflys' % table_prefix

    lowerfunc = 'lower' # Name of stored procedure to convert string->lowercase
        
    # Some drivers may need to override these helpers, for example adding
    # a 'commit' after the execute.
    def executeDDL1(self,cursor):
        cursor.execute(self.ddl1)

    def executeDDL2(self,cursor):
        cursor.execute(self.ddl2)

    def setUp(self):
        ''' self.drivers should override this method to perform required setup
            if any is necessary, such as creating the database.
        '''
        pass

    def tearDown(self):
        ''' self.drivers should override this method to perform required cleanup
            if any is necessary, such as deleting the test database.
            The default drops the tables that may be created.
        '''
        con = self._connect()
        try:
            cur = con.cursor()
            for ddl in (self.xddl1,self.xddl2):
                try: 
                    cur.execute(ddl)
                    con.commit()
                except self.driver.Error: 
                    # Assume table didn't exist. Other tests will check if
                    # execute is busted.
                    pass
        finally:
            con.close()

    def _connect(self):
        try:
            return self.driver.connect(
                *self.connect_args,**self.connect_kw_args
                )
        except AttributeError:
            self.fail("No connect method found in self.driver module")

    def test_connect(self):
        con = self._connect()
        con.close()

    def test_apilevel(self):
        try:
            # Must exist
            apilevel = self.driver.apilevel
            # Must equal 2.0
            self.assertEqual(apilevel,'2.0')
        except AttributeError:
            self.fail("Driver doesn't define apilevel")

    def test_threadsafety(self):
        try:
            # Must exist
            threadsafety = self.driver.threadsafety
            # Must be a valid value
            self.assertTrue(threadsafety in (0,1,2,3))
        except AttributeError:
            self.fail("Driver doesn't define threadsafety")

    def test_paramstyle(self):
        try:
            # Must exist
            paramstyle = self.driver.paramstyle
            # Must be a valid value
            self.assertTrue(paramstyle in (
                'qmark','numeric','named','format','pyformat'
                ))
        except AttributeError:
            self.fail("Driver doesn't define paramstyle")

    def test_Exceptions(self):
        # Make sure required exceptions exist, and are in the
        # defined hierarchy.
        if sys.version[0] == '3': #under Python 3 StardardError no longer exists
            self.assertTrue(issubclass(self.driver.Warning,Exception))
            self.assertTrue(issubclass(self.driver.Error,Exception))
        else:
            self.assertTrue(issubclass(self.driver.Warning,Exception))
            self.assertTrue(issubclass(self.driver.Error,Exception))

        self.assertTrue(
            issubclass(self.driver.InterfaceError,self.driver.Error)
            )
        self.assertTrue(
            issubclass(self.driver.DatabaseError,self.driver.Error)
            )
        self.assertTrue(
            issubclass(self.driver.OperationalError,self.driver.Error)
            )
        self.assertTrue(
            issubclass(self.driver.IntegrityError,self.driver.Error)
            )
        self.assertTrue(
            issubclass(self.driver.InternalError,self.driver.Error)
            )
        self.assertTrue(
            issubclass(self.driver.ProgrammingError,self.driver.Error)
            )
        self.assertTrue(
            issubclass(self.driver.NotSupportedError,self.driver.Error)
            )

    def test_ExceptionsAsConnectionAttributes(self):
        # OPTIONAL EXTENSION
        # Test for the optional DB API 2.0 extension, where the exceptions
        # are exposed as attributes on the Connection object
        # I figure this optional extension will be implemented by any
        # driver author who is using this test suite, so it is enabled
        # by default.
        con = self._connect()
        drv = self.driver
        self.assertTrue(con.Warning is drv.Warning)
        self.assertTrue(con.Error is drv.Error)
        self.assertTrue(con.InterfaceError is drv.InterfaceError)
        self.assertTrue(con.DatabaseError is drv.DatabaseError)
        self.assertTrue(con.OperationalError is drv.OperationalError)
        self.assertTrue(con.IntegrityError is drv.IntegrityError)
        self.assertTrue(con.InternalError is drv.InternalError)
        self.assertTrue(con.ProgrammingError is drv.ProgrammingError)
        self.assertTrue(con.NotSupportedError is drv.NotSupportedError)


    def test_commit(self):
        con = self._connect()
        try:
            # Commit must work, even if it doesn't do anything
            con.commit()
        finally:
            con.close()

    def test_rollback(self):
        con = self._connect()
        # If rollback is defined, it should either work or throw
        # the documented exception
        if hasattr(con,'rollback'):
            try:
                con.rollback()
            except self.driver.NotSupportedError:
                pass
    
    def test_cursor(self):
        con = self._connect()
        try:
            cur = con.cursor()
        finally:
            con.close()

    def test_cursor_isolation(self):
        con = self._connect()
        try:
            # Make sure cursors created from the same connection have
            # the documented transaction isolation level
            cur1 = con.cursor()
            cur2 = con.cursor()
            self.executeDDL1(cur1)
            cur1.execute("insert into %sbooze values ('Victoria Bitter')" % (
                self.table_prefix
                ))
            cur2.execute("select name from %sbooze" % self.table_prefix)
            booze = cur2.fetchall()
            self.assertEqual(len(booze),1)
            self.assertEqual(len(booze[0]),1)
            self.assertEqual(booze[0][0],'Victoria Bitter')
        finally:
            con.close()

    def test_description(self):
        con = self._connect()
        try:
            cur = con.cursor()
            self.executeDDL1(cur)
            self.assertEqual(cur.description,None,
                'cursor.description should be none after executing a '
                'statement that can return no rows (such as DDL)'
                )
            cur.execute('select name from %sbooze' % self.table_prefix)
            self.assertEqual(len(cur.description),1,
                'cursor.description describes too many columns'
                )
            self.assertEqual(len(cur.description[0]),7,
                'cursor.description[x] tuples must have 7 elements'
                )
            self.assertEqual(cur.description[0][0].lower(),'name',
                'cursor.description[x][0] must return column name'
                )
            self.assertEqual(cur.description[0][1],self.driver.STRING,
                'cursor.description[x][1] must return column type. Got %r'
                    % cur.description[0][1]
                )

            # Make sure self.description gets reset
            self.executeDDL2(cur)
            self.assertEqual(cur.description,None,
                'cursor.description not being set to None when executing '
                'no-result statements (eg. DDL)'
                )
        finally:
            con.close()

    def test_rowcount(self):
        con = self._connect()
        try:
            cur = con.cursor()
            self.executeDDL1(cur)
            self.assertEqual(cur.rowcount,-1,
                'cursor.rowcount should be -1 after executing no-result '
                'statements'
                )
            cur.execute("insert into %sbooze values ('Victoria Bitter')" % (
                self.table_prefix
                ))
            self.assertTrue(cur.rowcount in (-1,1),
                'cursor.rowcount should == number or rows inserted, or '
                'set to -1 after executing an insert statement'
                )
            cur.execute("select name from %sbooze" % self.table_prefix)
            self.assertTrue(cur.rowcount in (-1,1),
                'cursor.rowcount should == number of rows returned, or '
                'set to -1 after executing a select statement'
                )
            self.executeDDL2(cur)
            self.assertEqual(cur.rowcount,-1,
                'cursor.rowcount not being reset to -1 after executing '
                'no-result statements'
                )
        finally:
            con.close()

    lower_func = 'lower'
    def test_callproc(self):
        con = self._connect()
        try:
            cur = con.cursor()
            if self.lower_func and hasattr(cur,'callproc'):
                r = cur.callproc(self.lower_func,('FOO',))
                self.assertEqual(len(r),1)
                self.assertEqual(r[0],'FOO')
                r = cur.fetchall()
                self.assertEqual(len(r),1,'callproc produced no result set')
                self.assertEqual(len(r[0]),1,
                    'callproc produced invalid result set'
                    )
                self.assertEqual(r[0][0],'foo',
                    'callproc produced invalid results'
                    )
        finally:
            con.close()

    def test_close(self):
        con = self._connect()
        try:
            cur = con.cursor()
        finally:
            con.close()

        # cursor.execute should raise an Error if called after connection
        # closed
        self.assertRaises(self.driver.Error,self.executeDDL1,cur)

        # connection.commit should raise an Error if called after connection'
        # closed.'
        self.assertRaises(self.driver.Error,con.commit)

        # connection.close should raise an Error if called more than once
        # Issue discussed on DB-SIG: consensus seem that close() should not
        # raised if called on closed objects. Issue reported back to Stuart.
        # self.assertRaises(self.driver.Error,con.close)

    def test_execute(self):
        con = self._connect()
        try:
            cur = con.cursor()
            self._paraminsert(cur)
        finally:
            con.close()

    def _paraminsert(self,cur):
        self.executeDDL1(cur)
        cur.execute("insert into %sbooze values ('Victoria Bitter')" % (
            self.table_prefix
            ))
        self.assertTrue(cur.rowcount in (-1,1))

        if self.driver.paramstyle == 'qmark':
            cur.execute(
                'insert into %sbooze values (?)' % self.table_prefix,
                ("Cooper's",)
                )
        elif self.driver.paramstyle == 'numeric':
            cur.execute(
                'insert into %sbooze values (:1)' % self.table_prefix,
                ("Cooper's",)
                )
        elif self.driver.paramstyle == 'named':
            cur.execute(
                'insert into %sbooze values (:beer)' % self.table_prefix, 
                {'beer':"Cooper's"}
                )
        elif self.driver.paramstyle == 'format':
            cur.execute(
                'insert into %sbooze values (%%s)' % self.table_prefix,
                ("Cooper's",)
                )
        elif self.driver.paramstyle == 'pyformat':
            cur.execute(
                'insert into %sbooze values (%%(beer)s)' % self.table_prefix,
                {'beer':"Cooper's"}
                )
        else:
            self.fail('Invalid paramstyle')
        self.assertTrue(cur.rowcount in (-1,1))

        cur.execute('select name from %sbooze' % self.table_prefix)
        res = cur.fetchall()
        self.assertEqual(len(res),2,'cursor.fetchall returned too few rows')
        beers = [res[0][0],res[1][0]]
        beers.sort()
        self.assertEqual(beers[0],"Cooper's",
            'cursor.fetchall retrieved incorrect data, or data inserted '
            'incorrectly'
            )
        self.assertEqual(beers[1],"Victoria Bitter",
            'cursor.fetchall retrieved incorrect data, or data inserted '
            'incorrectly'
            )

    def test_executemany(self):
        con = self._connect()
        try:
            cur = con.cursor()
            self.executeDDL1(cur)
            largs = [ ("Cooper's",) , ("Boag's",) ]
            margs = [ {'beer': "Cooper's"}, {'beer': "Boag's"} ]
            if self.driver.paramstyle == 'qmark':
                cur.executemany(
                    'insert into %sbooze values (?)' % self.table_prefix,
                    largs
                    )
            elif self.driver.paramstyle == 'numeric':
                cur.executemany(
                    'insert into %sbooze values (:1)' % self.table_prefix,
                    largs
                    )
            elif self.driver.paramstyle == 'named':
                cur.executemany(
                    'insert into %sbooze values (:beer)' % self.table_prefix,
                    margs
                    )
            elif self.driver.paramstyle == 'format':
                cur.executemany(
                    'insert into %sbooze values (%%s)' % self.table_prefix,
                    largs
                    )
            elif self.driver.paramstyle == 'pyformat':
                cur.executemany(
                    'insert into %sbooze values (%%(beer)s)' % (
                        self.table_prefix
                        ),
                    margs
                    )
            else:
                self.fail('Unknown paramstyle')
            self.assertTrue(cur.rowcount in (-1,2),
                'insert using cursor.executemany set cursor.rowcount to '
                'incorrect value %r' % cur.rowcount
                )
            cur.execute('select name from %sbooze' % self.table_prefix)
            res = cur.fetchall()
            self.assertEqual(len(res),2,
                'cursor.fetchall retrieved incorrect number of rows'
                )
            beers = [res[0][0],res[1][0]]
            beers.sort()
            self.assertEqual(beers[0],"Boag's",'incorrect data retrieved')
            self.assertEqual(beers[1],"Cooper's",'incorrect data retrieved')
        finally:
            con.close()

    def test_fetchone(self):
        con = self._connect()
        try:
            cur = con.cursor()

            # cursor.fetchone should raise an Error if called before
            # executing a select-type query
            self.assertRaises(self.driver.Error,cur.fetchone)

            # cursor.fetchone should raise an Error if called after
            # executing a query that cannot return rows
            self.executeDDL1(cur)
            self.assertRaises(self.driver.Error,cur.fetchone)

            cur.execute('select name from %sbooze' % self.table_prefix)
            self.assertEqual(cur.fetchone(),None,
                'cursor.fetchone should return None if a query retrieves '
                'no rows'
                )
            self.assertTrue(cur.rowcount in (-1,0))

            # cursor.fetchone should raise an Error if called after
            # executing a query that cannot return rows
            cur.execute("insert into %sbooze values ('Victoria Bitter')" % (
                self.table_prefix
                ))
            self.assertRaises(self.driver.Error,cur.fetchone)

            cur.execute('select name from %sbooze' % self.table_prefix)
            r = cur.fetchone()
            self.assertEqual(len(r),1,
                'cursor.fetchone should have retrieved a single row'
                )
            self.assertEqual(r[0],'Victoria Bitter',
                'cursor.fetchone retrieved incorrect data'
                )
            self.assertEqual(cur.fetchone(),None,
                'cursor.fetchone should return None if no more rows available'
                )
            self.assertTrue(cur.rowcount in (-1,1))
        finally:
            con.close()

    samples = [
        'Carlton Cold',
        'Carlton Draft',
        'Mountain Goat',
        'Redback',
        'Victoria Bitter',
        'XXXX'
        ]

    def _populate(self):
        ''' Return a list of sql commands to setup the DB for the fetch
            tests.
        '''
        populate = [
            "insert into %sbooze values ('%s')" % (self.table_prefix,s) 
                for s in self.samples
            ]
        return populate

    def test_fetchmany(self):
        con = self._connect()
        try:
            cur = con.cursor()

            # cursor.fetchmany should raise an Error if called without
            #issuing a query
            self.assertRaises(self.driver.Error,cur.fetchmany,4)

            self.executeDDL1(cur)
            for sql in self._populate():
                cur.execute(sql)

            cur.execute('select name from %sbooze' % self.table_prefix)
            r = cur.fetchmany()
            self.assertEqual(len(r),1,
                'cursor.fetchmany retrieved incorrect number of rows, '
                'default of arraysize is one.'
                )
            cur.arraysize=10
            r = cur.fetchmany(3) # Should get 3 rows
            self.assertEqual(len(r),3,
                'cursor.fetchmany retrieved incorrect number of rows'
                )
            r = cur.fetchmany(4) # Should get 2 more
            self.assertEqual(len(r),2,
                'cursor.fetchmany retrieved incorrect number of rows'
                )
            r = cur.fetchmany(4) # Should be an empty sequence
            self.assertEqual(len(r),0,
                'cursor.fetchmany should return an empty sequence after '
                'results are exhausted'
            )
            self.assertTrue(cur.rowcount in (-1,6))

            # Same as above, using cursor.arraysize
            cur.arraysize=4
            cur.execute('select name from %sbooze' % self.table_prefix)
            r = cur.fetchmany() # Should get 4 rows
            self.assertEqual(len(r),4,
                'cursor.arraysize not being honoured by fetchmany'
                )
            r = cur.fetchmany() # Should get 2 more
            self.assertEqual(len(r),2)
            r = cur.fetchmany() # Should be an empty sequence
            self.assertEqual(len(r),0)
            self.assertTrue(cur.rowcount in (-1,6))

            cur.arraysize=6
            cur.execute('select name from %sbooze' % self.table_prefix)
            rows = cur.fetchmany() # Should get all rows
            self.assertTrue(cur.rowcount in (-1,6))
            self.assertEqual(len(rows),6)
            self.assertEqual(len(rows),6)
            rows = [r[0] for r in rows]
            rows.sort()
          
            # Make sure we get the right data back out
            for i in range(0,6):
                self.assertEqual(rows[i],self.samples[i],
                    'incorrect data retrieved by cursor.fetchmany'
                    )

            rows = cur.fetchmany() # Should return an empty list
            self.assertEqual(len(rows),0,
                'cursor.fetchmany should return an empty sequence if '
                'called after the whole result set has been fetched'
                )
            self.assertTrue(cur.rowcount in (-1,6))

            self.executeDDL2(cur)
            cur.execute('select name from %sbarflys' % self.table_prefix)
            r = cur.fetchmany() # Should get empty sequence
            self.assertEqual(len(r),0,
                'cursor.fetchmany should return an empty sequence if '
                'query retrieved no rows'
                )
            self.assertTrue(cur.rowcount in (-1,0))

        finally:
            con.close()

    def test_fetchall(self):
        con = self._connect()
        try:
            cur = con.cursor()
            # cursor.fetchall should raise an Error if called
            # without executing a query that may return rows (such
            # as a select)
            self.assertRaises(self.driver.Error, cur.fetchall)

            self.executeDDL1(cur)
            for sql in self._populate():
                cur.execute(sql)

            # cursor.fetchall should raise an Error if called
            # after executing a a statement that cannot return rows
            self.assertRaises(self.driver.Error,cur.fetchall)

            cur.execute('select name from %sbooze' % self.table_prefix)
            rows = cur.fetchall()
            self.assertTrue(cur.rowcount in (-1,len(self.samples)))
            self.assertEqual(len(rows),len(self.samples),
                'cursor.fetchall did not retrieve all rows'
                )
            rows = [r[0] for r in rows]
            rows.sort()
            for i in range(0,len(self.samples)):
                self.assertEqual(rows[i],self.samples[i],
                'cursor.fetchall retrieved incorrect rows'
                )
            rows = cur.fetchall()
            self.assertEqual(
                len(rows),0,
                'cursor.fetchall should return an empty list if called '
                'after the whole result set has been fetched'
                )
            self.assertTrue(cur.rowcount in (-1,len(self.samples)))

            self.executeDDL2(cur)
            cur.execute('select name from %sbarflys' % self.table_prefix)
            rows = cur.fetchall()
            self.assertTrue(cur.rowcount in (-1,0))
            self.assertEqual(len(rows),0,
                'cursor.fetchall should return an empty list if '
                'a select query returns no rows'
                )
            
        finally:
            con.close()
    
    def test_mixedfetch(self):
        con = self._connect()
        try:
            cur = con.cursor()
            self.executeDDL1(cur)
            for sql in self._populate():
                cur.execute(sql)

            cur.execute('select name from %sbooze' % self.table_prefix)
            rows1  = cur.fetchone()
            rows23 = cur.fetchmany(2)
            rows4  = cur.fetchone()
            rows56 = cur.fetchall()
            self.assertTrue(cur.rowcount in (-1,6))
            self.assertEqual(len(rows23),2,
                'fetchmany returned incorrect number of rows'
                )
            self.assertEqual(len(rows56),2,
                'fetchall returned incorrect number of rows'
                )

            rows = [rows1[0]]
            rows.extend([rows23[0][0],rows23[1][0]])
            rows.append(rows4[0])
            rows.extend([rows56[0][0],rows56[1][0]])
            rows.sort()
            for i in range(0,len(self.samples)):
                self.assertEqual(rows[i],self.samples[i],
                    'incorrect data retrieved or inserted'
                    )
        finally:
            con.close()

    def help_nextset_setUp(self,cur):
        ''' Should create a procedure called deleteme
            that returns two result sets, first the 
	    number of rows in booze then "name from booze"
        '''
        raise NotImplementedError('Helper not implemented')
        #sql="""
        #    create procedure deleteme as
        #    begin
        #        select count(*) from booze
        #        select name from booze
        #    end
        #"""
        #cur.execute(sql)

    def help_nextset_tearDown(self,cur):
        'If cleaning up is needed after nextSetTest'
        raise NotImplementedError('Helper not implemented')
        #cur.execute("drop procedure deleteme")

    def test_nextset(self):
        con = self._connect()
        try:
            cur = con.cursor()
            if not hasattr(cur,'nextset'):
                return

            try:
                self.executeDDL1(cur)
                sql=self._populate()
                for sql in self._populate():
                    cur.execute(sql)

                self.help_nextset_setUp(cur)

                cur.callproc('deleteme')
                numberofrows=cur.fetchone()
                assert numberofrows[0]== len(self.samples)
                assert cur.nextset()
                names=cur.fetchall()
                assert len(names) == len(self.samples)
                s=cur.nextset()
                assert s == None,'No more return sets, should return None'
            finally:
                self.help_nextset_tearDown(cur)

        finally:
            con.close()

    def test_nextset(self):
        raise NotImplementedError('Drivers need to override this test')

    def test_arraysize(self):
        # Not much here - rest of the tests for this are in test_fetchmany
        con = self._connect()
        try:
            cur = con.cursor()
            self.assertTrue(hasattr(cur,'arraysize'),
                'cursor.arraysize must be defined'
                )
        finally:
            con.close()

    def test_setinputsizes(self):
        con = self._connect()
        try:
            cur = con.cursor()
            cur.setinputsizes( (25,) )
            self._paraminsert(cur) # Make sure cursor still works
        finally:
            con.close()

    def test_setoutputsize_basic(self):
        # Basic test is to make sure setoutputsize doesn't blow up
        con = self._connect()
        try:
            cur = con.cursor()
            cur.setoutputsize(1000)
            cur.setoutputsize(2000,0)
            self._paraminsert(cur) # Make sure the cursor still works
        finally:
            con.close()

    def test_setoutputsize(self):
        # Real test for setoutputsize is driver dependant
        raise NotImplementedError('Driver needed to override this test')

    def test_None(self):
        con = self._connect()
        try:
            cur = con.cursor()
            self.executeDDL1(cur)
            cur.execute('insert into %sbooze values (NULL)' % self.table_prefix)
            cur.execute('select name from %sbooze' % self.table_prefix)
            r = cur.fetchall()
            self.assertEqual(len(r),1)
            self.assertEqual(len(r[0]),1)
            self.assertEqual(r[0][0],None,'NULL value not returned as None')
        finally:
            con.close()

    def test_Date(self):
        d1 = self.driver.Date(2002,12,25)
        d2 = self.driver.DateFromTicks(time.mktime((2002,12,25,0,0,0,0,0,0)))
        # Can we assume this? API doesn't specify, but it seems implied
        # self.assertEqual(str(d1),str(d2))

    def test_Time(self):
        t1 = self.driver.Time(13,45,30)
        t2 = self.driver.TimeFromTicks(time.mktime((2001,1,1,13,45,30,0,0,0)))
        # Can we assume this? API doesn't specify, but it seems implied
        # self.assertEqual(str(t1),str(t2))

    def test_Timestamp(self):
        t1 = self.driver.Timestamp(2002,12,25,13,45,30)
        t2 = self.driver.TimestampFromTicks(
            time.mktime((2002,12,25,13,45,30,0,0,0))
            )
        # Can we assume this? API doesn't specify, but it seems implied
        # self.assertEqual(str(t1),str(t2))

    def test_Binary(self):
        b = self.driver.Binary(str2bytes('Something'))
        b = self.driver.Binary(str2bytes(''))

    def test_STRING(self):
        self.assertTrue(hasattr(self.driver,'STRING'),
            'module.STRING must be defined'
            )

    def test_BINARY(self):
        self.assertTrue(hasattr(self.driver,'BINARY'),
            'module.BINARY must be defined.'
            )

    def test_NUMBER(self):
        self.assertTrue(hasattr(self.driver,'NUMBER'),
            'module.NUMBER must be defined.'
            )

    def test_DATETIME(self):
        self.assertTrue(hasattr(self.driver,'DATETIME'),
            'module.DATETIME must be defined.'
            )

    def test_ROWID(self):
        self.assertTrue(hasattr(self.driver,'ROWID'),
            'module.ROWID must be defined.'
            )



================================================
FILE: psycopg2/tests/dbapi20_tpc.py
================================================
""" Python DB API 2.0 driver Two Phase Commit compliance test suite.

"""

import unittest


class TwoPhaseCommitTests(unittest.TestCase):

    driver = None

    def connect(self):
        """Make a database connection."""
        raise NotImplementedError

    _last_id = 0
    _global_id_prefix = "dbapi20_tpc:"

    def make_xid(self, con):
        id = TwoPhaseCommitTests._last_id
        TwoPhaseCommitTests._last_id += 1
        return con.xid(42, "%s%d" % (self._global_id_prefix, id), "qualifier")

    def test_xid(self):
        con = self.connect()
        try:
            xid = con.xid(42, "global", "bqual")
        except self.driver.NotSupportedError:
            self.fail("Driver does not support transaction IDs.")

        self.assertEqual(xid[0], 42)
        self.assertEqual(xid[1], "global")
        self.assertEqual(xid[2], "bqual")

        # Try some extremes for the transaction ID:
        xid = con.xid(0, "", "")
        self.assertEqual(tuple(xid), (0, "", ""))
        xid = con.xid(0x7fffffff, "a" * 64, "b" * 64)
        self.assertEqual(tuple(xid), (0x7fffffff, "a" * 64, "b" * 64))

    def test_tpc_begin(self):
        con = self.connect()
        try:
            xid = self.make_xid(con)
            try:
                con.tpc_begin(xid)
            except self.driver.NotSupportedError:
                self.fail("Driver does not support tpc_begin()")
        finally:
            con.close()

    def test_tpc_commit_without_prepare(self):
        con = self.connect()
        try:
            xid = self.make_xid(con)
            con.tpc_begin(xid)
            cursor = con.cursor()
            cursor.execute("SELECT 1")
            con.tpc_commit()
        finally:
            con.close()

    def test_tpc_rollback_without_prepare(self):
        con = self.connect()
        try:
            xid = self.make_xid(con)
            con.tpc_begin(xid)
            cursor = con.cursor()
            cursor.execute("SELECT 1")
            con.tpc_rollback()
        finally:
            con.close()

    def test_tpc_commit_with_prepare(self):
        con = self.connect()
        try:
            xid = self.make_xid(con)
            con.tpc_begin(xid)
            cursor = con.cursor()
            cursor.execute("SELECT 1")
            con.tpc_prepare()
            con.tpc_commit()
        finally:
            con.close()

    def test_tpc_rollback_with_prepare(self):
        con = self.connect()
        try:
            xid = self.make_xid(con)
            con.tpc_begin(xid)
            cursor = con.cursor()
            cursor.execute("SELECT 1")
            con.tpc_prepare()
            con.tpc_rollback()
        finally:
            con.close()

    def test_tpc_begin_in_transaction_fails(self):
        con = self.connect()
        try:
            xid = self.make_xid(con)

            cursor = con.cursor()
            cursor.execute("SELECT 1")
            self.assertRaises(self.driver.ProgrammingError,
                              con.tpc_begin, xid)
        finally:
            con.close()

    def test_tpc_begin_in_tpc_transaction_fails(self):
        con = self.connect()
        try:
            xid = self.make_xid(con)

            cursor = con.cursor()
            cursor.execute("SELECT 1")
            self.assertRaises(self.driver.ProgrammingError,
                              con.tpc_begin, xid)
        finally:
            con.close()

    def test_commit_in_tpc_fails(self):
        # calling commit() within a TPC transaction fails with
        # ProgrammingError.
        con = self.connect()
        try:
            xid = self.make_xid(con)
            con.tpc_begin(xid)

            self.assertRaises(self.driver.ProgrammingError, con.commit)
        finally:
            con.close()

    def test_rollback_in_tpc_fails(self):
        # calling rollback() within a TPC transaction fails with
        # ProgrammingError.
        con = self.connect()
        try:
            xid = self.make_xid(con)
            con.tpc_begin(xid)

            self.assertRaises(self.driver.ProgrammingError, con.rollback)
        finally:
            con.close()


================================================
FILE: psycopg2/tests/test_async.py
================================================
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# test_async.py - unit test for asynchronous API
#
# Copyright (C) 2010-2011 Jan Urbański  <wulczer@wulczer.org>
#
# psycopg2 is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# In addition, as a special exception, the copyright holders give
# permission to link this program with the OpenSSL library (or with
# modified versions of OpenSSL that use the same license as OpenSSL),
# and distribute linked combinations including the two.
#
# You must obey the GNU Lesser General Public License in all respects for
# all of the code used other than OpenSSL.
#
# psycopg2 is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
# License for more details.

from .testutils import unittest, skip_before_postgres

import psycopg2
from psycopg2 import extensions

import time
import select
import io

from .testutils import ConnectingTestCase

class PollableStub(object):
    """A 'pollable' wrapper allowing analysis of the `poll()` calls."""
    def __init__(self, pollable):
        self.pollable = pollable
        self.polls = []

    def fileno(self):
        return self.pollable.fileno()

    def poll(self):
        rv = self.pollable.poll()
        self.polls.append(rv)
        return rv


class AsyncTests(ConnectingTestCase):

    def setUp(self):
        ConnectingTestCase.setUp(self)

        self.sync_conn = self.conn
        self.conn = self.connect(async=True)

        self.wait(self.conn)

        curs = self.conn.cursor()
        curs.execute('''
            CREATE TEMPORARY TABLE table1 (
              id int PRIMARY KEY
            )''')
        self.wait(curs)

    def wait(self, cur_or_conn):
        pollable = cur_or_conn
        if not hasattr(pollable, 'poll'):
            pollable = cur_or_conn.connection
        while True:
            state = pollable.poll()
            if state == psycopg2.extensions.POLL_OK:
                break
            elif state == psycopg2.extensions.POLL_READ:
                select.select([pollable], [], [])
            elif state == psycopg2.extensions.POLL_WRITE:
                select.select([], [pollable], [])
            else:
                raise Exception("Unexpected result from poll: %r", state)

    def test_connection_setup(self):
        cur = self.conn.cursor()
        sync_cur = self.sync_conn.cursor()

        self.assertTrue(self.conn.async)
        self.assertTrue(not self.sync_conn.async)

        # the async connection should be in isolevel 0
        self.assertEqual(self.conn.isolation_level, 0)

        # check other properties to be found on the connection
        self.assertTrue(self.conn.server_version)
        self.assertTrue(self.conn.protocol_version in (2,3))
        self.assertTrue(self.conn.encoding in psycopg2.extensions.encodings)

    def test_async_named_cursor(self):
        self.assertRaises(psycopg2.ProgrammingError,
                          self.conn.cursor, "name")

    def test_async_select(self):
        cur = self.conn.cursor()
        self.assertFalse(self.conn.isexecuting())
        cur.execute("select 'a'")
        self.assertTrue(self.conn.isexecuting())

        self.wait(cur)

        self.assertFalse(self.conn.isexecuting())
        self.assertEqual(cur.fetchone()[0], "a")

    @skip_before_postgres(8, 2)
    def test_async_callproc(self):
        cur = self.conn.cursor()
        cur.callproc("pg_sleep", (0.1, ))
        self.assertTrue(self.conn.isexecuting())

        self.wait(cur)
        self.assertFalse(self.conn.isexecuting())
        self.assertEqual(cur.fetchall()[0][0], '')

    def test_async_after_async(self):
        cur = self.conn.cursor()
        cur2 = self.conn.cursor()

        cur.execute("insert into table1 values (1)")

        # an async execute after an async one raises an exception
        self.assertRaises(psycopg2.ProgrammingError,
                          cur.execute, "select * from table1")
        # same for callproc
        self.assertRaises(psycopg2.ProgrammingError,
                          cur.callproc, "version")
        # but after you've waited it should be good
        self.wait(cur)
        cur.execute("select * from table1")
        self.wait(cur)

        self.assertEqual(cur.fetchall()[0][0], 1)

        cur.execute("delete from table1")
        self.wait(cur)

        cur.execute("select * from table1")
        self.wait(cur)

        self.assertEqual(cur.fetchone(), None)

    def test_fetch_after_async(self):
        cur = self.conn.cursor()
        cur.execute("select 'a'")

        # a fetch after an asynchronous query should raise an error
        self.assertRaises(psycopg2.ProgrammingError,
                          cur.fetchall)
        # but after waiting it should work
        self.wait(cur)
        self.assertEqual(cur.fetchall()[0][0], "a")

    def test_rollback_while_async(self):
        cur = self.conn.cursor()

        cur.execute("select 'a'")

        # a rollback should not work in asynchronous mode
        self.assertRaises(psycopg2.ProgrammingError, self.conn.rollback)

    def test_commit_while_async(self):
        cur = self.conn.cursor()

        cur.execute("begin")
        self.wait(cur)

        cur.execute("insert into table1 values (1)")

        # a commit should not work in asynchronous mode
        self.assertRaises(psycopg2.ProgrammingError, self.conn.commit)
        self.assertTrue(self.conn.isexecuting())

        # but a manual commit should
        self.wait(cur)
        cur.execute("commit")
        self.wait(cur)

        cur.execute("select * from table1")
        self.wait(cur)
        self.assertEqual(cur.fetchall()[0][0], 1)

        cur.execute("delete from table1")
        self.wait(cur)

        cur.execute("select * from table1")
        self.wait(cur)
        self.assertEqual(cur.fetchone(), None)

    def test_set_parameters_while_async(self):
        cur = self.conn.cursor()

        cur.execute("select 'c'")
        self.assertTrue(self.conn.isexecuting())

        # getting transaction status works
        self.assertEqual(self.conn.get_transaction_status(),
                          extensions.TRANSACTION_STATUS_ACTIVE)
        self.assertTrue(self.conn.isexecuting())

        # setting connection encoding should fail
        self.assertRaises(psycopg2.ProgrammingError,
                          self.conn.set_client_encoding, "LATIN1")

        # same for transaction isolation
        self.assertRaises(psycopg2.ProgrammingError,
                          self.conn.set_isolation_level, 1)

    def test_reset_while_async(self):
        cur = self.conn.cursor()
        cur.execute("select 'c'")
        self.assertTrue(self.conn.isexecuting())

        # a reset should fail
        self.assertRaises(psycopg2.ProgrammingError, self.conn.reset)

    def test_async_iter(self):
        cur = self.conn.cursor()

        cur.execute("begin")
        self.wait(cur)
        cur.execute("""
            insert into table1 values (1);
            insert into table1 values (2);
            insert into table1 values (3);
        """)
        self.wait(cur)
        cur.execute("select id from table1 order by id")

        # iteration fails if a query is underway
        self.assertRaises(psycopg2.ProgrammingError, list, cur)

        # but after it's done it should work
        self.wait(cur)
        self.assertEqual(list(cur), [(1, ), (2, ), (3, )])
        self.assertFalse(self.conn.isexecuting())

    def test_copy_while_async(self):
        cur = self.conn.cursor()
        cur.execute("select 'a'")

        # copy should fail
        self.assertRaises(psycopg2.ProgrammingError,
                          cur.copy_from,
                          io.StringIO("1\n3\n5\n\\.\n"), "table1")

    def test_lobject_while_async(self):
        # large objects should be prohibited
        self.assertRaises(psycopg2.ProgrammingError,
                          self.conn.lobject)

    def test_async_executemany(self):
        cur = self.conn.cursor()
        self.assertRaises(
            psycopg2.ProgrammingError,
            cur.executemany, "insert into table1 values (%s)", [1, 2, 3])

    def test_async_scroll(self):
        cur = self.conn.cursor()
        cur.execute("""
            insert into table1 values (1);
            insert into table1 values (2);
            insert into table1 values (3);
        """)
        self.wait(cur)
        cur.execute("select id from table1 order by id")

        # scroll should fail if a query is underway
        self.assertRaises(psycopg2.ProgrammingError, cur.scroll, 1)
        self.assertTrue(self.conn.isexecuting())

        # but after it's done it should work
        self.wait(cur)
        cur.scroll(1)
        self.assertEqual(cur.fetchall(), [(2, ), (3, )])

        cur = self.conn.cursor()
        cur.execute("select id from table1 order by id")
        self.wait(cur)

        cur2 = self.conn.cursor()
        self.assertRaises(psycopg2.ProgrammingError, cur2.scroll, 1)

        self.assertRaises(psycopg2.ProgrammingError, cur.scroll, 4)

        cur = self.conn.cursor()
        cur.execute("select id from table1 order by id")
        self.wait(cur)
        cur.scroll(2)
        cur.scroll(-1)
        self.assertEqual(cur.fetchall(), [(2, ), (3, )])

    def test_scroll(self):
        cur = self.sync_conn.cursor()
        cur.execute("create table table1 (id int)")
        cur.execute("""
            insert into table1 values (1);
            insert into table1 values (2);
            insert into table1 values (3);
        """)
        cur.execute("select id from table1 order by id")
        cur.scroll(2)
        cur.scroll(-1)
        self.assertEqual(cur.fetchall(), [(2, ), (3, )])

    def test_async_dont_read_all(self):
        cur = self.conn.cursor()
        cur.execute("select repeat('a', 10000); select repeat('b', 10000)")

        # fetch the result
        self.wait(cur)

        # it should be the result of the second query
        self.assertEqual(cur.fetchone()[0], "b" * 10000)

    def test_async_subclass(self):
        class MyConn(psycopg2.extensions.connection):
            def __init__(self, dsn, async=0):
                psycopg2.extensions.connection.__init__(self, dsn, async=async)

        conn = self.connect(connection_factory=MyConn, async=True)
        self.assertTrue(isinstance(conn, MyConn))
        self.assertTrue(conn.async)
        conn.close()

    def test_flush_on_write(self):
        # a very large query requires a flush loop to be sent to the backend
        curs = self.conn.cursor()
        for mb in 1, 5, 10, 20, 50:
            size = mb * 1024 * 1024
            stub = PollableStub(self.conn)
            curs.execute("select %s;", ('x' * size,))
            self.wait(stub)
            self.assertEqual(size, len(curs.fetchone()[0]))
            if stub.polls.count(psycopg2.extensions.POLL_WRITE) > 1:
                return

        # This is more a testing glitch than an error: it happens
        # on high load on linux: probably because the kernel has more
        # buffers ready. A warning may be useful during development,
        # but an error is bad during regression testing.
        import warnings
        warnings.warn("sending a large query didn't trigger block on write.")

    def test_sync_poll(self):
        cur = self.sync_conn.cursor()
        cur.execute("select 1")
        # polling with a sync query works
        cur.connection.poll()
        self.assertEqual(cur.fetchone()[0], 1)

    def test_notify(self):
        cur = self.conn.cursor()
        sync_cur = self.sync_conn.cursor()

        sync_cur.execute("listen test_notify")
        self.sync_conn.commit()
        cur.execute("notify test_notify")
        self.wait(cur)

        self.assertEqual(self.sync_conn.notifies, [])

        pid = self.conn.get_backend_pid()
        for _ in range(5):
            self.wait(self.sync_conn)
            if not self.sync_conn.notifies:
                time.sleep(0.5)
                continue
            self.assertEqual(len(self.sync_conn.notifies), 1)
            self.assertEqual(self.sync_conn.notifies.pop(),
                              (pid, "test_notify"))
            return
        self.fail("No NOTIFY in 2.5 seconds")

    def test_async_fetch_wrong_cursor(self):
        cur1 = self.conn.cursor()
        cur2 = self.conn.cursor()
        cur1.execute("select 1")

        self.wait(cur1)
        self.assertFalse(self.conn.isexecuting())
        # fetching from a cursor with no results is an error
        self.assertRaises(psycopg2.ProgrammingError, cur2.fetchone)
        # fetching from the correct cursor works
        self.assertEqual(cur1.fetchone()[0], 1)

    def test_error(self):
        cur = self.conn.cursor()
        cur.execute("insert into table1 values (%s)", (1, ))
        self.wait(cur)
        cur.execute("insert into table1 values (%s)", (1, ))
        # this should fail
        self.assertRaises(psycopg2.IntegrityError, self.wait, cur)
        cur.execute("insert into table1 values (%s); "
                    "insert into table1 values (%s)", (2, 2))
        # this should fail as well
        self.assertRaises(psycopg2.IntegrityError, self.wait, cur)
        # but this should work
        cur.execute("insert into table1 values (%s)", (2, ))
        self.wait(cur)
        # and the cursor should be usable afterwards
        cur.execute("insert into table1 values (%s)", (3, ))
        self.wait(cur)
        cur.execute("select * from table1 order by id")
        self.wait(cur)
        self.assertEqual(cur.fetchall(), [(1, ), (2, ), (3, )])
        cur.execute("delete from table1")
        self.wait(cur)

    def test_error_two_cursors(self):
        cur = self.conn.cursor()
        cur2 = self.conn.cursor()
        cur.execute("select * from no_such_table")
        self.assertRaises(psycopg2.ProgrammingError, self.wait, cur)
        cur2.execute("select 1")
        self.wait(cur2)
        self.assertEqual(cur2.fetchone()[0], 1)

    def test_notices(self):
        del self.conn.notices[:]
        cur = self.conn.cursor()
        if self.conn.server_version >= 90300:
            cur.execute("set client_min_messages=debug1")
            self.wait(cur)
        cur.execute("create temp table chatty (id serial primary key);")
        self.wait(cur)
        self.assertEqual("CREATE TABLE", cur.statusmessage)
        self.assertTrue(self.conn.notices)

    def test_async_cursor_gone(self):
        import gc
        cur = self.conn.cursor()
        cur.execute("select 42;");
        del cur
        gc.collect()
        self.assertRaises(psycopg2.InterfaceError, self.wait, self.conn)

        # The connection is still usable
        cur = self.conn.cursor()
        cur.execute("select 42;");
        self.wait(self.conn)
        self.assertEqual(cur.fetchone(), (42,))

    def test_async_connection_error_message(self):
        try:
            cnn = psycopg2.connect('dbname=thisdatabasedoesntexist', async=True)
            self.wait(cnn)
        except psycopg2.Error as e:
            self.assertNotEqual(str(e), "asynchronous connection failed",
                "connection error reason lost")
        else:
            self.fail("no exception raised")


def test_suite():
    return unittest.TestLoader().loadTestsFromName(__name__)

if __name__ == "__main__":
    unittest.main()



================================================
FILE: psycopg2/tests/test_bugX000.py
================================================
#!/usr/bin/env python

# bugX000.py - test for DateTime object allocation bug
#
# Copyright (C) 2007-2011 Federico Di Gregorio  <fog@debian.org>
#
# psycopg2 is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# In addition, as a special exception, the copyright holders give
# permission to link this program with the OpenSSL library (or with
# modified versions of OpenSSL that use the same license as OpenSSL),
# and distribute linked combinations including the two.
#
# You must obey the GNU Lesser General Public License in all respects for
# all of the code used other than OpenSSL.
#
# psycopg2 is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
# License for more details.

import psycopg2
import time
import unittest

class DateTimeAllocationBugTestCase(unittest.TestCase):
    def test_date_time_allocation_bug(self):
        d1 = psycopg2.Date(2002,12,25)
        d2 = psycopg2.DateFromTicks(time.mktime((2002,12,25,0,0,0,0,0,0)))
        t1 = psycopg2.Time(13,45,30)
        t2 = psycopg2.TimeFromTicks(time.mktime((2001,1,1,13,45,30,0,0,0)))
        t1 = psycopg2.Timestamp(2002,12,25,13,45,30)
        t2 = psycopg2.TimestampFromTicks(
            time.mktime((2002,12,25,13,45,30,0,0,0)))


def test_suite():
    return unittest.TestLoader().loadTestsFromName(__name__)

if __name__ == "__main__":
    unittest.main()


================================================
FILE: psycopg2/tests/test_bug_gc.py
================================================
#!/usr/bin/env python

# bug_gc.py - test for refcounting/GC bug
#
# Copyright (C) 2010-2011 Federico Di Gregorio  <fog@debian.org>
#
# psycopg2 is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# In addition, as a special exception, the copyright holders give
# permission to link this program with the OpenSSL library (or with
# modified versions of OpenSSL that use the same license as OpenSSL),
# and distribute linked combinations including the two.
#
# You must obey the GNU Lesser General Public License in all respects for
# all of the code used other than OpenSSL.
#
# psycopg2 is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
# License for more details.

import psycopg2
import psycopg2.extensions
import unittest
import gc

from .testutils import ConnectingTestCase, skip_if_no_uuid

class StolenReferenceTestCase(ConnectingTestCase):
    @skip_if_no_uuid
    def test_stolen_reference_bug(self):
        def fish(val, cur):
            gc.collect()
            return 42
        UUID = psycopg2.extensions.new_type((2950,), "UUID", fish)
        psycopg2.extensions.register_type(UUID, self.conn)
        curs = self.conn.cursor()
        curs.execute("select 'b5219e01-19ab-4994-b71e-149225dc51e4'::uuid")
        curs.fetchone()

def test_suite():
    return unittest.TestLoader().loadTestsFromName(__name__)

if __name__ == "__main__":
    unittest.main()


================================================
FILE: psycopg2/tests/test_cancel.py
================================================
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# test_cancel.py - unit test for query cancellation
#
# Copyright (C) 2010-2011 Jan Urbański  <wulczer@wulczer.org>
#
# psycopg2 is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# In addition, as a special exception, the copyright holders give
# permission to link this program with the OpenSSL library (or with
# modified versions of OpenSSL that use the same license as OpenSSL),
# and distribute linked combinations including the two.
#
# You must obey the GNU Lesser General Public License in all respects for
# all of the code used other than OpenSSL.
#
# psycopg2 is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
# License for more details.

import threading

import psycopg2
import psycopg2.extensions
from psycopg2 import extras

from .testconfig import dsn
from .testutils import unittest, ConnectingTestCase, skip_before_postgres

class CancelTests(ConnectingTestCase):

    def setUp(self):
        ConnectingTestCase.setUp(self)

        cur = self.conn.cursor()
        cur.execute('''
            CREATE TEMPORARY TABLE table1 (
              id int PRIMARY KEY
            )''')
        self.conn.commit()

    def test_empty_cancel(self):
        self.conn.cancel()

    @skip_before_postgres(8, 2)
    def test_cancel(self):
        errors = []

        def neverending(conn):
            cur = conn.cursor()
            try:
                self.assertRaises(psycopg2.extensions.QueryCanceledError,
                                  cur.execute, "select pg_sleep(60)")
            # make sure the connection still works
                conn.rollback()
                cur.execute("select 1")
                self.assertEqual(cur.fetchall(), [(1, )])
            except Exception as e:
                errors.append(e)
                raise

        def canceller(conn):
            cur = conn.cursor()
            try:
                conn.cancel()
            except Exception as e:
                errors.append(e)
                raise

        thread1 = threading.Thread(target=neverending, args=(self.conn, ))
        # wait a bit to make sure that the other thread is already in
        # pg_sleep -- ugly and racy, but the chances are ridiculously low
        thread2 = threading.Timer(0.3, canceller, args=(self.conn, ))
        thread1.start()
        thread2.start()
        thread1.join()
        thread2.join()

        self.assertEqual(errors, [])

    @skip_before_postgres(8, 2)
    def test_async_cancel(self):
        async_conn = psycopg2.connect(dsn, async=True)
        self.assertRaises(psycopg2.OperationalError, async_conn.cancel)
        extras.wait_select(async_conn)
        cur = async_conn.cursor()
        cur.execute("select pg_sleep(10000)")
        self.assertTrue(async_conn.isexecuting())
        async_conn.cancel()
        self.assertRaises(psycopg2.extensions.QueryCanceledError,
                          extras.wait_select, async_conn)
        cur.execute("select 1")
        extras.wait_select(async_conn)
        self.assertEqual(cur.fetchall(), [(1, )])

    def test_async_connection_cancel(self):
        async_conn = psycopg2.connect(dsn, async=True)
        async_conn.close()
        self.assertTrue(async_conn.closed)


def test_suite():
    return unittest.TestLoader().loadTestsFromName(__name__)

if __name__ == "__main__":
    unittest.main()


================================================
FILE: psycopg2/tests/test_connection.py
================================================
#!/usr/bin/env python

# test_connection.py - unit test for connection attributes
#
# Copyright (C) 2008-2011 James Henstridge  <james@jamesh.id.au>
#
# psycopg2 is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# In addition, as a special exception, the copyright holders give
# permission to link this program with the OpenSSL library (or with
# modified versions of OpenSSL that use the same license as OpenSSL),
# and distribute linked combinations including the two.
#
# You must obey the GNU Lesser General Public License in all respects for
# all of the code used other than OpenSSL.
#
# psycopg2 is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
# License for more details.

import os
import time
import threading
from operator import attrgetter

import psycopg2
import psycopg2.errorcodes
import psycopg2.extensions

from .testutils import unittest, decorate_all_tests, skip_if_no_superuser
from .testutils import skip_before_postgres, skip_after_postgres
from .testutils import ConnectingTestCase, skip_if_tpc_disabled
from .testconfig import dsn, dbname


class ConnectionTests(ConnectingTestCase):
    def test_closed_attribute(self):
        conn = self.conn
        self.assertEqual(conn.closed, False)
        conn.close()
        self.assertEqual(conn.closed, True)

    def test_close_idempotent(self):
        conn = self.conn
        conn.close()
        conn.close()
        self.assertTrue(conn.closed)

    def test_cursor_closed_attribute(self):
        conn = self.conn
        curs = conn.cursor()
        self.assertEqual(curs.closed, False)
        curs.close()
        self.assertEqual(curs.closed, True)

        # Closing the connection closes the cursor:
        curs = conn.cursor()
        conn.close()
        self.assertEqual(curs.closed, True)

    @skip_before_postgres(8, 4)
    @skip_if_no_superuser
    def test_cleanup_on_badconn_close(self):
        # ticket #148
        conn = self.conn
        cur = conn.cursor()
        try:
            cur.execute("select pg_terminate_backend(pg_backend_pid())")
        except psycopg2.OperationalError as e:
            if e.pgcode != psycopg2.errorcodes.ADMIN_SHUTDOWN:
                raise
        except psycopg2.DatabaseError as e:
            # curiously when disconnected in green mode we get a DatabaseError
            # without pgcode.
            if e.pgcode is not None:
                raise

        self.assertEqual(conn.closed, 2)
        conn.close()
        self.assertEqual(conn.closed, 1)

    def test_reset(self):
        conn = self.conn
        # switch isolation level, then reset
        level = conn.isolation_level
        conn.set_isolation_level(0)
        self.assertEqual(conn.isolation_level, 0)
        conn.reset()
        # now the isolation level should be equal to saved one
        self.assertEqual(conn.isolation_level, level)

    def test_notices(self):
        conn = self.conn
        cur = conn.cursor()
        if self.conn.server_version >= 90300:
            cur.execute("set client_min_messages=debug1")
        cur.execute("create temp table chatty (id serial primary key);")
        self.assertEqual("CREATE TABLE", cur.statusmessage)
        self.assertTrue(conn.notices)

    def test_notices_consistent_order(self):
        conn = self.conn
        cur = conn.cursor()
        if self.conn.server_version >= 90300:
            cur.execute("set client_min_messages=debug1")
        cur.execute("create temp table table1 (id serial); create temp table table2 (id serial);")
        cur.execute("create temp table table3 (id serial); create temp table table4 (id serial);")
        self.assertEqual(4, len(conn.notices))
        self.assertTrue('table1' in conn.notices[0])
        self.assertTrue('table2' in conn.notices[1])
        self.assertTrue('table3' in conn.notices[2])
        self.assertTrue('table4' in conn.notices[3])

    def test_notices_limited(self):
        conn = self.conn
        cur = conn.cursor()
        if self.conn.server_version >= 90300:
            cur.execute("set client_min_messages=debug1")
        for i in range(0, 100, 10):
            sql = " ".join(["create temp table table%d (id serial);" % j for j in range(i, i+10)])
            cur.execute(sql)

        self.assertEqual(50, len(conn.notices))
        self.assertTrue('table50' in conn.notices[0], conn.notices[0])
        self.assertTrue('table51' in conn.notices[1], conn.notices[1])
        self.assertTrue('table98' in conn.notices[-2], conn.notices[-2])
        self.assertTrue('table99' in conn.notices[-1], conn.notices[-1])

    def test_server_version(self):
        self.assertTrue(self.conn.server_version)

    def test_protocol_version(self):
        self.assertTrue(self.conn.protocol_version in (2,3),
            self.conn.protocol_version)

    def test_tpc_unsupported(self):
        cnn = self.conn
        if cnn.server_version >= 80100:
            return self.skipTest("tpc is supported")

        self.assertRaises(psycopg2.NotSupportedError,
            cnn.xid, 42, "foo", "bar")

    @skip_before_postgres(8, 2)
    def test_concurrent_execution(self):
        def slave():
            cnn = self.connect()
            cur = cnn.cursor()
            cur.execute("select pg_sleep(4)")
            cur.close()
            cnn.close()

        t1 = threading.Thread(target=slave)
        t2 = threading.Thread(target=slave)
        t0 = time.time()
        t1.start()
        t2.start()
        t1.join()
        t2.join()
        self.assertTrue(time.time() - t0 < 7,
            "something broken in concurrency")

    def test_encoding_name(self):
        self.conn.set_client_encoding("EUC_JP")
        # conn.encoding is 'EUCJP' now.
        cur = self.conn.cursor()
        psycopg2.extensions.register_type(psycopg2.extensions.UNICODE, cur)
        cur.execute("select 'foo'::text;")
        self.assertEqual(cur.fetchone()[0], 'foo')

    def test_connect_nonnormal_envvar(self):
        # We must perform encoding normalization at connection time
        self.conn.close()
        oldenc = os.environ.get('PGCLIENTENCODING')
        os.environ['PGCLIENTENCODING'] = 'utf-8'    # malformed spelling
        try:
            self.conn = self.connect()
        finally:
            if oldenc is not None:
                os.environ['PGCLIENTENCODING'] = oldenc
            else:
                del os.environ['PGCLIENTENCODING']

    def test_weakref(self):
        from weakref import ref
        import gc
        conn = psycopg2.connect(dsn)
        w = ref(conn)
        conn.close()
        del conn
        gc.collect()
        self.assertTrue(w() is None)

    def test_commit_concurrency(self):
        # The problem is the one reported in ticket #103. Because of bad
        # status check, we commit even when a commit is already on its way.
        # We can detect this condition by the warnings.
        conn = self.conn
        notices = []
        stop = []

        def committer():
            while not stop:
                conn.commit()
                while conn.notices:
                    notices.append((2, conn.notices.pop()))

        cur = conn.cursor()
        t1 = threading.Thread(target=committer)
        t1.start()
        i = 1
        for i in range(1000):
            cur.execute("select %s;",(i,))
            conn.commit()
            while conn.notices:
                notices.append((1, conn.notices.pop()))

        # Stop the committer thread
        stop.append(True)

        self.assertTrue(not notices, "%d notices raised" % len(notices))

    def test_connect_cursor_factory(self):
        import psycopg2.extras
        conn = self.connect(cursor_factory=psycopg2.extras.DictCursor)
        cur = conn.cursor()
        cur.execute("select 1 as a")
        self.assertEqual(cur.fetchone()['a'], 1)

    def test_cursor_factory(self):
        self.assertEqual(self.conn.cursor_factory, None)
        cur = self.conn.cursor()
        cur.execute("select 1 as a")
        self.assertRaises(TypeError, (lambda r: r['a']), cur.fetchone())

        self.conn.cursor_factory = psycopg2.extras.DictCursor
        self.assertEqual(self.conn.cursor_factory, psycopg2.extras.DictCursor)
        cur = self.conn.cursor()
        cur.execute("select 1 as a")
        self.assertEqual(cur.fetchone()['a'], 1)

        self.conn.cursor_factory = None
        self.assertEqual(self.conn.cursor_factory, None)
        cur = self.conn.cursor()
        cur.execute("select 1 as a")
        self.assertRaises(TypeError, (lambda r: r['a']), cur.fetchone())

    def test_cursor_factory_none(self):
        # issue #210
        conn = self.connect()
        cur = conn.cursor(cursor_factory=None)
        self.assertEqual(type(cur), psycopg2.extensions.cursor)

        conn = self.connect(cursor_factory=psycopg2.extras.DictCursor)
        cur = conn.cursor(cursor_factory=None)
        self.assertEqual(type(cur), psycopg2.extras.DictCursor)

    def test_failed_init_status(self):
        class SubConnection(psycopg2.extensions.connection):
            def __init__(self, dsn):
                try:
                    super(SubConnection, self).__init__(dsn)
                except Exception:
                    pass

        c = SubConnection("dbname=thereisnosuchdatabasemate password=foobar")
        self.assertTrue(c.closed, "connection failed so it must be closed")
        self.assertTrue('foobar' not in c.dsn, "password was not obscured")


class IsolationLevelsTestCase(ConnectingTestCase):

    def setUp(self):
        ConnectingTestCase.setUp(self)

        conn = self.connect()
        cur = conn.cursor()
        try:
            cur.execute("drop table isolevel;")
        except psycopg2.ProgrammingError:
            conn.rollback()
        cur.execute("create table isolevel (id integer);")
        conn.commit()
        conn.close()

    def test_isolation_level(self):
        conn = self.connect()
        self.assertEqual(
            conn.isolation_level,
            psycopg2.extensions.ISOLATION_LEVEL_READ_COMMITTED)

    def test_encoding(self):
        conn = self.connect()
        self.assertTrue(conn.encoding in psycopg2.extensions.encodings)

    def test_set_isolation_level(self):
        conn = self.connect()
        curs = conn.cursor()

        levels = [
            (None, psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT),
            ('read uncommitted', psycopg2.extensions.ISOLATION_LEVEL_READ_UNCOMMITTED),
            ('read committed', psycopg2.extensions.ISOLATION_LEVEL_READ_COMMITTED),
            ('repeatable read', psycopg2.extensions.ISOLATION_LEVEL_REPEATABLE_READ),
            ('serializable', psycopg2.extensions.ISOLATION_LEVEL_SERIALIZABLE),
        ]
        for name, level in levels:
            conn.set_isolation_level(level)

            # the only values available on prehistoric PG versions
            if conn.server_version < 80000:
                if level in (
                        psycopg2.extensions.ISOLATION_LEVEL_READ_UNCOMMITTED,
                        psycopg2.extensions.ISOLATION_LEVEL_REPEATABLE_READ):
                    name, level = levels[levels.index((name, level)) + 1]

            self.assertEqual(conn.isolation_level, level)

            curs.execute('show transaction_isolation;')
            got_name = curs.fetchone()[0]

            if name is None:
                curs.execute('show default_transaction_isolation;')
                name = curs.fetchone()[0]

            self.assertEqual(name, got_name)
            conn.commit()

        self.assertRaises(ValueError, conn.set_isolation_level, -1)
        self.assertRaises(ValueError, conn.set_isolation_level, 5)

    def test_set_isolation_level_abort(self):
        conn = self.connect()
        cur = conn.cursor()

        self.assertEqual(psycopg2.extensions.TRANSACTION_STATUS_IDLE,
            conn.get_transaction_status())
        cur.execute("insert into isolevel values (10);")
        self.assertEqual(psycopg2.extensions.TRANSACTION_STATUS_INTRANS,
            conn.get_transaction_status())

        conn.set_isolation_level(
            psycopg2.extensions.ISOLATION_LEVEL_SERIALIZABLE)
        self.assertEqual(psycopg2.extensions.TRANSACTION_STATUS_IDLE,
            conn.get_transaction_status())
        cur.execute("select count(*) from isolevel;")
        self.assertEqual(0, cur.fetchone()[0])

        cur.execute("insert into isolevel values (10);")
        self.assertEqual(psycopg2.extensions.TRANSACTION_STATUS_INTRANS,
            conn.get_transaction_status())
        conn.set_isolation_level(
            psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT)
        self.assertEqual(psycopg2.extensions.TRANSACTION_STATUS_IDLE,
            conn.get_transaction_status())
        cur.execute("select count(*) from isolevel;")
        self.assertEqual(0, cur.fetchone()[0])

        cur.execute("insert into isolevel values (10);")
        self.assertEqual(psycopg2.extensions.TRANSACTION_STATUS_IDLE,
            conn.get_transaction_status())
        conn.set_isolation_level(
            psycopg2.extensions.ISOLATION_LEVEL_READ_COMMITTED)
        self.assertEqual(psycopg2.extensions.TRANSACTION_STATUS_IDLE,
            conn.get_transaction_status())
        cur.execute("select count(*) from isolevel;")
        self.assertEqual(1, cur.fetchone()[0])

    def test_isolation_level_autocommit(self):
        cnn1 = self.connect()
        cnn2 = self.connect()
        cnn2.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT)

        cur1 = cnn1.cursor()
        cur1.execute("select count(*) from isolevel;")
        self.assertEqual(0, cur1.fetchone()[0])
        cnn1.commit()

        cur2 = cnn2.cursor()
        cur2.execute("insert into isolevel values (10);")

        cur1.execute("select count(*) from isolevel;")
        self.assertEqual(1, cur1.fetchone()[0])

    def test_isolation_level_read_committed(self):
        cnn1 = self.connect()
        cnn2 = self.connect()
        cnn2.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_READ_COMMITTED)

        cur1 = cnn1.cursor()
        cur1.execute("select count(*) from isolevel;")
        self.assertEqual(0, cur1.fetchone()[0])
        cnn1.commit()

        cur2 = cnn2.cursor()
        cur2.execute("insert into isolevel values (10);")
        cur1.execute("insert into isolevel values (20);")

        cur2.execute("select count(*) from isolevel;")
        self.assertEqual(1, cur2.fetchone()[0])
        cnn1.commit()
        cur2.execute("select count(*) from isolevel;")
        self.assertEqual(2, cur2.fetchone()[0])

        cur1.execute("select count(*) from isolevel;")
        self.assertEqual(1, cur1.fetchone()[0])
        cnn2.commit()
        cur1.execute("select count(*) from isolevel;")
        self.assertEqual(2, cur1.fetchone()[0])

    def test_isolation_level_serializable(self):
        cnn1 = self.connect()
        cnn2 = self.connect()
        cnn2.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_SERIALIZABLE)

        cur1 = cnn1.cursor()
        cur1.execute("select count(*) from isolevel;")
        self.assertEqual(0, cur1.fetchone()[0])
        cnn1.commit()

        cur2 = cnn2.cursor()
        cur2.execute("insert into isolevel values (10);")
        cur1.execute("insert into isolevel values (20);")

        cur2.execute("select count(*) from isolevel;")
        self.assertEqual(1, cur2.fetchone()[0])
        cnn1.commit()
        cur2.execute("select count(*) from isolevel;")
        self.assertEqual(1, cur2.fetchone()[0])

        cur1.execute("select count(*) from isolevel;")
        self.assertEqual(1, cur1.fetchone()[0])
        cnn2.commit()
        cur1.execute("select count(*) from isolevel;")
        self.assertEqual(2, cur1.fetchone()[0])

        cur2.execute("select count(*) from isolevel;")
        self.assertEqual(2, cur2.fetchone()[0])

    def test_isolation_level_closed(self):
        cnn = self.connect()
        cnn.close()
        self.assertRaises(psycopg2.InterfaceError, getattr,
            cnn, 'isolation_level')
        self.assertRaises(psycopg2.InterfaceError,
            cnn.set_isolation_level, 0)
        self.assertRaises(psycopg2.InterfaceError,
            cnn.set_isolation_level, 1)


class ConnectionTwoPhaseTests(ConnectingTestCase):
    def setUp(self):
        ConnectingTestCase.setUp(self)

        self.make_test_table()
        self.clear_test_xacts()

    def tearDown(self):
        self.clear_test_xacts()
        ConnectingTestCase.tearDown(self)

    def clear_test_xacts(self):
        """Rollback all the prepared transaction in the testing db."""
        cnn = self.connect()
        cnn.set_isolation_level(0)
        cur = cnn.cursor()
        try:
            cur.execute(
                "select gid from pg_prepared_xacts where database = %s",
                (dbname,))
        except psycopg2.ProgrammingError:
            cnn.rollback()
            cnn.close()
            return

        gids = [ r[0] for r in cur ]
        for gid in gids:
            cur.execute("rollback prepared %s;", (gid,))
        cnn.close()

    def make_test_table(self):
        cnn = self.connect()
        cur = cnn.cursor()
        try:
            cur.execute("DROP TABLE test_tpc;")
        except psycopg2.ProgrammingError:
            cnn.rollback()
        cur.execute("CREATE TABLE test_tpc (data text);")
        cnn.commit()
        cnn.close()

    def count_xacts(self):
        """Return the number of prepared xacts currently in the test db."""
        cnn = self.connect()
        cur = cnn.cursor()
        cur.execute("""
            select count(*) from pg_prepared_xacts
            where database = %s;""",
            (dbname,))
        rv = cur.fetchone()[0]
        cnn.close()
        return rv

    def count_test_records(self):
        """Return the number of records in the test table."""
        cnn = self.connect()
        cur = cnn.cursor()
        cur.execute("select count(*) from test_tpc;")
        rv = cur.fetchone()[0]
        cnn.close()
        return rv

    def test_tpc_commit(self):
        cnn = self.connect()
        xid = cnn.xid(1, "gtrid", "bqual")
        self.assertEqual(cnn.status, psycopg2.extensions.STATUS_READY)

        cnn.tpc_begin(xid)
        self.assertEqual(cnn.status, psycopg2.extensions.STATUS_BEGIN)

        cur = cnn.cursor()
        cur.execute("insert into test_tpc values ('test_tpc_commit');")
        self.assertEqual(0, self.count_xacts())
        self.assertEqual(0, self.count_test_records())

        cnn.tpc_prepare()
        self.assertEqual(cnn.status, psycopg2.extensions.STATUS_PREPARED)
        self.assertEqual(1, self.count_xacts())
        self.assertEqual(0, self.count_test_records())

        cnn.tpc_commit()
        self.assertEqual(cnn.status, psycopg2.extensions.STATUS_READY)
        self.assertEqual(0, self.count_xacts())
        self.assertEqual(1, self.count_test_records())

    def test_tpc_commit_one_phase(self):
        cnn = self.connect()
        xid = cnn.xid(1, "gtrid", "bqual")
        self.assertEqual(cnn.status, psycopg2.extensions.STATUS_READY)

        cnn.tpc_begin(xid)
        self.assertEqual(cnn.status, psycopg2.extensions.STATUS_BEGIN)

        cur = cnn.cursor()
        cur.execute("insert into test_tpc values ('test_tpc_commit_1p');")
        self.assertEqual(0, self.count_xacts())
        self.assertEqual(0, self.count_test_records())

        cnn.tpc_commit()
        self.assertEqual(cnn.status, psycopg2.extensions.STATUS_READY)
        self.assertEqual(0, self.count_xacts())
        self.assertEqual(1, self.count_test_records())

    def test_tpc_commit_recovered(self):
        cnn = self.connect()
        xid = cnn.xid(1, "gtrid", "bqual")
        self.assertEqual(cnn.status, psycopg2.extensions.STATUS_READY)

        cnn.tpc_begin(xid)
        self.assertEqual(cnn.status, psycopg2.extensions.STATUS_BEGIN)

        cur = cnn.cursor()
        cur.execute("insert into test_tpc values ('test_tpc_commit_rec');")
        self.assertEqual(0, self.count_xacts())
        self.assertEqual(0, self.count_test_records())

        cnn.tpc_prepare()
        cnn.close()
        self.assertEqual(1, self.count_xacts())
        self.assertEqual(0, self.count_test_records())

        cnn = self.connect()
        xid = cnn.xid(1, "gtrid", "bqual")
        cnn.tpc_commit(xid)

        self.assertEqual(cnn.status, psycopg2.extensions.STATUS_READY)
        self.assertEqual(0, self.count_xacts())
        self.assertEqual(1, self.count_test_records())

    def test_tpc_rollback(self):
        cnn = self.connect()
        xid = cnn.xid(1, "gtrid", "bqual")
        self.assertEqual(cnn.status, psycopg2.extensions.STATUS_READY)

        cnn.tpc_begin(xid)
        self.assertEqual(cnn.status, psycopg2.extensions.STATUS_BEGIN)

        cur = cnn.cursor()
        cur.execute("insert into test_tpc values ('test_tpc_rollback');")
        self.assertEqual(0, self.count_xacts())
        self.assertEqual(0, self.count_test_records())

        cnn.tpc_prepare()
        self.assertEqual(cnn.status, psycopg2.extensions.STATUS_PREPARED)
        self.assertEqual(1, self.count_xacts())
        self.assertEqual(0, self.count_test_records())

        cnn.tpc_rollback()
        self.assertEqual(cnn.status, psycopg2.extensions.STATUS_READY)
        self.assertEqual(0, self.count_xacts())
        self.assertEqual(0, self.count_test_records())

    def test_tpc_rollback_one_phase(self):
        cnn = self.connect()
        xid = cnn.xid(1, "gtrid", "bqual")
        self.assertEqual(cnn.status, psycopg2.extensions.STATUS_READY)

        cnn.tpc_begin(xid)
        self.assertEqual(cnn.status, psycopg2.extensions.STATUS_BEGIN)

        cur = cnn.cursor()
        cur.execute("insert into test_tpc values ('test_tpc_rollback_1p');")
        self.assertEqual(0, self.count_xacts())
        self.assertEqual(0, self.count_test_records())

        cnn.tpc_rollback()
        self.assertEqual(cnn.status, psycopg2.extensions.STATUS_READY)
        self.assertEqual(0, self.count_xacts())
        self.assertEqual(0, self.count_test_records())

    def test_tpc_rollback_recovered(self):
        cnn = self.connect()
        xid = cnn.xid(1, "gtrid", "bqual")
        self.assertEqual(cnn.status, psycopg2.extensions.STATUS_READY)

        cnn.tpc_begin(xid)
        self.assertEqual(cnn.status, psycopg2.extensions.STATUS_BEGIN)

        cur = cnn.cursor()
        cur.execute("insert into test_tpc values ('test_tpc_commit_rec');")
        self.assertEqual(0, self.count_xacts())
        self.assertEqual(0, self.count_test_records())

        cnn.tpc_prepare()
        cnn.close()
        self.assertEqual(1, self.count_xacts())
        self.assertEqual(0, self.count_test_records())

        cnn = self.connect()
        xid = cnn.xid(1, "gtrid", "bqual")
        cnn.tpc_rollback(xid)

        self.assertEqual(cnn.status, psycopg2.extensions.STATUS_READY)
        self.assertEqual(0, self.count_xacts())
        self.assertEqual(0, self.count_test_records())

    def test_status_after_recover(self):
        cnn = self.connect()
        self.assertEqual(psycopg2.extensions.STATUS_READY, cnn.status)
        xns = cnn.tpc_recover()
        self.assertEqual(psycopg2.extensions.STATUS_READY, cnn.status)

        cur = cnn.cursor()
        cur.execute("select 1")
        self.assertEqual(psycopg2.extensions.STATUS_BEGIN, cnn.status)
        xns = cnn.tpc_recover()
        self.assertEqual(psycopg2.extensions.STATUS_BEGIN, cnn.status)

    def test_recovered_xids(self):
        # insert a few test xns
        cnn = self.connect()
        cnn.set_isolation_level(0)
        cur = cnn.cursor()
        cur.execute("begin; prepare transaction '1-foo';")
        cur.execute("begin; prepare transaction '2-bar';")

        # read the values to return
        cur.execute("""
            select gid, prepared, owner, database
            from pg_prepared_xacts
            where database = %s;""",
            (dbname,))
        okvals = cur.fetchall()
        okvals.sort()

        cnn = self.connect()
        xids = cnn.tpc_recover()
        xids = [ xid for xid in xids if xid.database == dbname ]
        xids.sort(key=attrgetter('gtrid'))

        # check the values returned
        self.assertEqual(len(okvals), len(xids))
        for (xid, (gid, prepared, owner, database)) in zip (xids, okvals):
            self.assertEqual(xid.gtrid, gid)
            self.assertEqual(xid.prepared, prepared)
            self.assertEqual(xid.owner, owner)
            self.assertEqual(xid.database, database)

    def test_xid_encoding(self):
        cnn = self.connect()
        xid = cnn.xid(42, "gtrid", "bqual")
        cnn.tpc_begin(xid)
        cnn.tpc_prepare()

        cnn = self.connect()
        cur = cnn.cursor()
        cur.execute("select gid from pg_prepared_xacts where database = %s;",
            (dbname,))
        self.assertEqual('42_Z3RyaWQ=_YnF1YWw=', cur.fetchone()[0])

    def test_xid_roundtrip(self):
        for fid, gtrid, bqual in [
            (0, "", ""),
            (42, "gtrid", "bqual"),
            (0x7fffffff, "x" * 64, "y" * 64),
        ]:
            cnn = self.connect()
            xid = cnn.xid(fid, gtrid, bqual)
            cnn.tpc_begin(xid)
            cnn.tpc_prepare()
            cnn.close()

            cnn = self.connect()
            xids = [ xid for xid in cnn.tpc_recover()
                if xid.database == dbname ]
            self.assertEqual(1, len(xids))
            xid = xids[0]
            self.assertEqual(xid.format_id, fid)
            self.assertEqual(xid.gtrid, gtrid)
            self.assertEqual(xid.bqual, bqual)

            cnn.tpc_rollback(xid)

    def test_unparsed_roundtrip(self):
        for tid in [
            '',
            'hello, world!',
            'x' * 199,  # PostgreSQL's limit in transaction id length
        ]:
            cnn = self.connect()
            cnn.tpc_begin(tid)
            cnn.tpc_prepare()
            cnn.close()

            cnn = self.connect()
            xids = [ xid for xid in cnn.tpc_recover()
                if xid.database == dbname ]
            self.assertEqual(1, len(xids))
            xid = xids[0]
            self.assertEqual(xid.format_id, None)
            self.assertEqual(xid.gtrid, tid)
            self.assertEqual(xid.bqual, None)

            cnn.tpc_rollback(xid)

    def test_xid_construction(self):
        from psycopg2.extensions import Xid

        x1 = Xid(74, 'foo', 'bar')
        self.assertEqual(74, x1.format_id)
        self.assertEqual('foo', x1.gtrid)
        self.assertEqual('bar', x1.bqual)

    def test_xid_from_string(self):
        from psycopg2.extensions import Xid

        x2 = Xid.from_string('42_Z3RyaWQ=_YnF1YWw=')
        self.assertEqual(42, x2.format_id)
        self.assertEqual('gtrid', x2.gtrid)
        self.assertEqual('bqual', x2.bqual)

        x3 = Xid.from_string('99_xxx_yyy')
        self.assertEqual(None, x3.format_id)
        self.assertEqual('99_xxx_yyy', x3.gtrid)
        self.assertEqual(None, x3.bqual)

    def test_xid_to_string(self):
        from psycopg2.extensions import Xid

        x1 = Xid.from_string('42_Z3RyaWQ=_YnF1YWw=')
        self.assertEqual(str(x1), '42_Z3RyaWQ=_YnF1YWw=')

        x2 = Xid.from_string('99_xxx_yyy')
        self.assertEqual(str(x2), '99_xxx_yyy')

    def test_xid_unicode(self):
        cnn = self.connect()
        x1 = cnn.xid(10, 'uni', 'code')
        cnn.tpc_begin(x1)
        cnn.tpc_prepare()
        cnn.reset()
        xid = [ xid for xid in cnn.tpc_recover()
            if xid.database == dbname ][0]
        self.assertEqual(10, xid.format_id)
        self.assertEqual('uni', xid.gtrid)
        self.assertEqual('code', xid.bqual)

    def test_xid_unicode_unparsed(self):
        # We don't expect people shooting snowmen as transaction ids,
        # so if something explodes in an encode error I don't mind.
        # Let's just check uniconde is accepted as type.
        cnn = self.connect()
        cnn.set_client_encoding('utf8')
        cnn.tpc_begin("transaction-id")
        cnn.tpc_prepare()
        cnn.reset()

        xid = [ xid for xid in cnn.tpc_recover()
            if xid.database == dbname ][0]
        self.assertEqual(None, xid.format_id)
        self.assertEqual('transaction-id', xid.gtrid)
        self.assertEqual(None, xid.bqual)

    def test_cancel_fails_prepared(self):
        cnn = self.connect()
        cnn.tpc_begin('cancel')
        cnn.tpc_prepare()
        self.assertRaises(psycopg2.ProgrammingError, cnn.cancel)

    def test_tpc_recover_non_dbapi_connection(self):
        from psycopg2.extras import RealDictConnection
        cnn = self.connect(connection_factory=RealDictConnection)
        cnn.tpc_begin('dict-connection')
        cnn.tpc_prepare()
        cnn.reset()

        xids = cnn.tpc_recover()
        xid = [ xid for xid in xids if xid.database == dbname ][0]
        self.assertEqual(None, xid.format_id)
        self.assertEqual('dict-connection', xid.gtrid)
        self.assertEqual(None, xid.bqual)


decorate_all_tests(ConnectionTwoPhaseTests, skip_if_tpc_disabled)


class TransactionControlTests(ConnectingTestCase):
    def test_closed(self):
        self.conn.close()
        self.assertRaises(psycopg2.InterfaceError,
            self.conn.set_session,
            psycopg2.extensions.ISOLATION_LEVEL_SERIALIZABLE)

    def test_not_in_transaction(self):
        cur = self.conn.cursor()
        cur.execute("select 1")
        self.assertRaises(psycopg2.ProgrammingError,
            self.conn.set_session,
            psycopg2.extensions.ISOLATION_LEVEL_SERIALIZABLE)

    def test_set_isolation_level(self):
        cur = self.conn.cursor()
        self.conn.set_session(
            psycopg2.extensions.ISOLATION_LEVEL_SERIALIZABLE)
        cur.execute("SHOW default_transaction_isolation;")
        self.assertEqual(cur.fetchone()[0], 'serializable')
        self.conn.rollback()

        self.conn.set_session(
            psycopg2.extensions.ISOLATION_LEVEL_REPEATABLE_READ)
        cur.execute("SHOW default_transaction_isolation;")
        if self.conn.server_version > 80000:
            self.assertEqual(cur.fetchone()[0], 'repeatable read')
        else:
            self.assertEqual(cur.fetchone()[0], 'serializable')
        self.conn.rollback()

        self.conn.set_session(
            isolation_level=psycopg2.extensions.ISOLATION_LEVEL_READ_COMMITTED)
        cur.execute("SHOW default_transaction_isolation;")
        self.assertEqual(cur.fetchone()[0], 'read committed')
        self.conn.rollback()

        self.conn.set_session(
            isolation_level=psycopg2.extensions.ISOLATION_LEVEL_READ_UNCOMMITTED)
        cur.execute("SHOW default_transaction_isolation;")
        if self.conn.server_version > 80000:
            self.assertEqual(cur.fetchone()[0], 'read uncommitted')
        else:
            self.assertEqual(cur.fetchone()[0], 'read committed')
        self.conn.rollback()

    def test_set_isolation_level_str(self):
        cur = self.conn.cursor()
        self.conn.set_session("serializable")
        cur.execute("SHOW default_transaction_isolation;")
        self.assertEqual(cur.fetchone()[0], 'serializable')
        self.conn.rollback()

        self.conn.set_session("repeatable read")
        cur.execute("SHOW default_transaction_isolation;")
        if self.conn.server_version > 80000:
            self.assertEqual(cur.fetchone()[0], 'repeatable read')
        else:
            self.assertEqual(cur.fetchone()[0], 'serializable')
        self.conn.rollback()

        self.conn.set_session("read committed")
        cur.execute("SHOW default_transaction_isolation;")
        self.assertEqual(cur.fetchone()[0], 'read committed')
        self.conn.rollback()

        self.conn.set_session("read uncommitted")
        cur.execute("SHOW default_transaction_isolation;")
        if self.conn.server_version > 80000:
            self.assertEqual(cur.fetchone()[0], 'read uncommitted')
        else:
            self.assertEqual(cur.fetchone()[0], 'read committed')
        self.conn.rollback()

    def test_bad_isolation_level(self):
        self.assertRaises(ValueError, self.conn.set_session, 0)
        self.assertRaises(ValueError, self.conn.set_session, 5)
        self.assertRaises(ValueError, self.conn.set_session, 'whatever')

    def test_set_read_only(self):
        cur = self.conn.cursor()
        self.conn.set_session(readonly=True)
        cur.execute("SHOW default_transaction_read_only;")
        self.assertEqual(cur.fetchone()[0], 'on')
        self.conn.rollback()
        cur.execute("SHOW default_transaction_read_only;")
        self.assertEqual(cur.fetchone()[0], 'on')
        self.conn.rollback()

        cur = self.conn.cursor()
        self.conn.set_session(readonly=None)
        cur.execute("SHOW default_transaction_read_only;")
        self.assertEqual(cur.fetchone()[0], 'on')
        self.conn.rollback()

        self.conn.set_session(readonly=False)
        cur.execute("SHOW default_transaction_read_only;")
        self.assertEqual(cur.fetchone()[0], 'off')
        self.conn.rollback()

    def test_set_default(self):
        cur = self.conn.cursor()
        cur.execute("SHOW default_transaction_isolation;")
        default_isolevel = cur.fetchone()[0]
        cur.execute("SHOW default_transaction_read_only;")
        default_readonly = cur.fetchone()[0]
        self.conn.rollback()

        self.conn.set_session(isolation_level='serializable', readonly=True)
        self.conn.set_session(isolation_level='default', readonly='default')

        cur.execute("SHOW default_transaction_isolation;")
        self.assertEqual(cur.fetchone()[0], default_isolevel)
        cur.execute("SHOW default_transaction_read_only;")
        self.assertEqual(cur.fetchone()[0], default_readonly)

    @skip_before_postgres(9, 1)
    def test_set_deferrable(self):
        cur = self.conn.cursor()
        self.conn.set_session(readonly=True, deferrable=True)
        cur.execute("SHOW default_transaction_read_only;")
        self.assertEqual(cur.fetchone()[0], 'on')
        cur.execute("SHOW default_transaction_deferrable;")
        self.assertEqual(cur.fetchone()[0], 'on')
        self.conn.rollback()
        cur.execute("SHOW default_transaction_deferrable;")
        self.assertEqual(cur.fetchone()[0], 'on')
        self.conn.rollback()

        self.conn.set_session(deferrable=False)
        cur.execute("SHOW default_transaction_read_only;")
        self.assertEqual(cur.fetchone()[0], 'on')
        cur.execute("SHOW default_transaction_deferrable;")
        self.assertEqual(cur.fetchone()[0], 'off')
        self.conn.rollback()

    @skip_after_postgres(9, 1)
    def test_set_deferrable_error(self):
        self.assertRaises(psycopg2.ProgrammingError,
            self.conn.set_session, readonly=True, deferrable=True)


class AutocommitTests(ConnectingTestCase):
    def test_closed(self):
        self.conn.close()
        self.assertRaises(psycopg2.InterfaceError,
            setattr, self.conn, 'autocommit', True)

        # The getter doesn't have a guard. We may change this in future
        # to make it consistent with other methods; meanwhile let's just check
        # it doesn't explode.
        try:
            self.assertTrue(self.conn.autocommit in (True, False))
        except psycopg2.InterfaceError:
            pass

    def test_default_no_autocommit(self):
        self.assertTrue(not self.conn.autocommit)
        self.assertEqual(self.conn.status, psycopg2.extensions.STATUS_READY)
        self.assertEqual(self.conn.get_transaction_status(),
            psycopg2.extensions.TRANSACTION_STATUS_IDLE)

        cur = self.conn.cursor()
        cur.execute('select 1;')
        self.assertEqual(self.conn.status, psycopg2.extensions.STATUS_BEGIN)
        self.assertEqual(self.conn.get_transaction_status(),
            psycopg2.extensions.TRANSACTION_STATUS_INTRANS)

        self.conn.rollback()
        self.assertEqual(self.conn.status, psycopg2.extensions.STATUS_READY)
        self.assertEqual(self.conn.get_transaction_status(),
            psycopg2.extensions.TRANSACTION_STATUS_IDLE)

    def test_set_autocommit(self):
        self.conn.autocommit = True
        self.assertTrue(self.conn.autocommit)
        self.assertEqual(self.conn.status, psycopg2.extensions.STATUS_READY)
        self.assertEqual(self.conn.get_transaction_status(),
            psycopg2.extensions.TRANSACTION_STATUS_IDLE)

        cur = self.conn.cursor()
        cur.execute('select 1;')
        self.assertEqual(self.conn.status, psycopg2.extensions.STATUS_READY)
        self.assertEqual(self.conn.get_transaction_status(),
            psycopg2.extensions.TRANSACTION_STATUS_IDLE)

        self.conn.autocommit = False
        self.assertTrue(not self.conn.autocommit)
        self.assertEqual(self.conn.status, psycopg2.extensions.STATUS_READY)
        self.assertEqual(self.conn.get_transaction_status(),
            psycopg2.extensions.TRANSACTION_STATUS_IDLE)

        cur.execute('select 1;')
        self.assertEqual(self.conn.status, psycopg2.extensions.STATUS_BEGIN)
        self.assertEqual(self.conn.get_transaction_status(),
            psycopg2.extensions.TRANSACTION_STATUS_INTRANS)

    def test_set_intrans_error(self):
        cur = self.conn.cursor()
        cur.execute('select 1;')
        self.assertRaises(psycopg2.ProgrammingError,
            setattr, self.conn, 'autocommit', True)

    def test_set_session_autocommit(self):
        self.conn.set_session(autocommit=True)
        self.assertTrue(self.conn.autocommit)
        self.assertEqual(self.conn.status, psycopg2.extensions.STATUS_READY)
        self.assertEqual(self.conn.get_transaction_status(),
            psycopg2.extensions.TRANSACTION_STATUS_IDLE)

        cur = self.conn.cursor()
        cur.execute('select 1;')
        self.assertEqual(self.conn.status, psycopg2.extensions.STATUS_READY)
        self.assertEqual(self.conn.get_transaction_status(),
            psycopg2.extensions.TRANSACTION_STATUS_IDLE)

        self.conn.set_session(autocommit=False)
        self.assertTrue(not self.conn.autocommit)
        self.assertEqual(self.conn.status, psycopg2.extensions.STATUS_READY)
        self.assertEqual(self.conn.get_transaction_status(),
            psycopg2.extensions.TRANSACTION_STATUS_IDLE)

        cur.execute('select 1;')
        self.assertEqual(self.conn.status, psycopg2.extensions.STATUS_BEGIN)
        self.assertEqual(self.conn.get_transaction_status(),
            psycopg2.extensions.TRANSACTION_STATUS_INTRANS)
        self.conn.rollback()

        self.conn.set_session('serializable', readonly=True, autocommit=True)
        self.assertTrue(self.conn.autocommit)
        cur.execute('select 1;')
        self.assertEqual(self.conn.status, psycopg2.extensions.STATUS_READY)
        self.assertEqual
Download .txt
Showing preview only (320K chars total). Download the full file or copy to clipboard to get everything.
gitextract_wdv7kkpc/

├── .gitignore
├── README.md
├── psycopg2/
│   ├── __init__.py
│   ├── _json.py
│   ├── _psycopg.pyd
│   ├── _range.py
│   ├── errorcodes.py
│   ├── extensions.py
│   ├── extras.py
│   ├── pool.py
│   ├── psycopg1.py
│   ├── tests/
│   │   ├── __init__.py
│   │   ├── dbapi20.py
│   │   ├── dbapi20_tpc.py
│   │   ├── test_async.py
│   │   ├── test_bugX000.py
│   │   ├── test_bug_gc.py
│   │   ├── test_cancel.py
│   │   ├── test_connection.py
│   │   ├── test_copy.py
│   │   ├── test_cursor.py
│   │   ├── test_dates.py
│   │   ├── test_extras_dictcursor.py
│   │   ├── test_green.py
│   │   ├── test_lobject.py
│   │   ├── test_module.py
│   │   ├── test_notify.py
│   │   ├── test_psycopg2_dbapi20.py
│   │   ├── test_quote.py
│   │   ├── test_transaction.py
│   │   ├── test_types_basic.py
│   │   ├── test_types_extras.py
│   │   ├── test_with.py
│   │   ├── testconfig.py
│   │   └── testutils.py
│   └── tz.py
├── setup.py
├── src/
│   └── psycopg2-2.5.2-py2.7.egg-info
└── tests/
    ├── pythons/
    │   ├── win32-py27/
    │   │   ├── DLLs/
    │   │   │   ├── _bsddb.pyd
    │   │   │   ├── _ctypes.pyd
    │   │   │   ├── _ctypes_test.pyd
    │   │   │   ├── _elementtree.pyd
    │   │   │   ├── _hashlib.pyd
    │   │   │   ├── _msi.pyd
    │   │   │   ├── _multiprocessing.pyd
    │   │   │   ├── _socket.pyd
    │   │   │   ├── _sqlite3.pyd
    │   │   │   ├── _ssl.pyd
    │   │   │   ├── _testcapi.pyd
    │   │   │   ├── bz2.pyd
    │   │   │   ├── pyexpat.pyd
    │   │   │   ├── select.pyd
    │   │   │   ├── unicodedata.pyd
    │   │   │   └── winsound.pyd
    │   │   ├── LICENSE.txt
    │   │   ├── Lib/
    │   │   │   ├── BaseHTTPServer.py
    │   │   │   ├── Bastion.py
    │   │   │   ├── CGIHTTPServer.py
    │   │   │   ├── ConfigParser.py
    │   │   │   ├── Cookie.py
    │   │   │   ├── DocXMLRPCServer.py
    │   │   │   ├── HTMLParser.py
    │   │   │   ├── MimeWriter.py
    │   │   │   ├── Queue.py
    │   │   │   ├── SimpleHTTPServer.py
    │   │   │   ├── SimpleXMLRPCServer.py
    │   │   │   ├── SocketServer.py
    │   │   │   ├── StringIO.py
    │   │   │   ├── UserDict.py
    │   │   │   ├── UserList.py
    │   │   │   ├── UserString.py
    │   │   │   ├── _LWPCookieJar.py
    │   │   │   ├── _MozillaCookieJar.py
    │   │   │   ├── __future__.py
    │   │   │   ├── __phello__.foo.py
    │   │   │   ├── _abcoll.py
    │   │   │   ├── _osx_support.py
    │   │   │   ├── _pyio.py
    │   │   │   ├── _strptime.py
    │   │   │   ├── _threading_local.py
    │   │   │   ├── _weakrefset.py
    │   │   │   ├── abc.py
    │   │   │   ├── aifc.py
    │   │   │   ├── antigravity.py
    │   │   │   ├── anydbm.py
    │   │   │   ├── argparse.py
    │   │   │   ├── ast.py
    │   │   │   ├── asynchat.py
    │   │   │   ├── asyncore.py
    │   │   │   ├── atexit.py
    │   │   │   ├── audiodev.py
    │   │   │   ├── base64.py
    │   │   │   ├── bdb.py
    │   │   │   ├── binhex.py
    │   │   │   ├── bisect.py
    │   │   │   ├── bsddb/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── db.py
    │   │   │   │   ├── dbobj.py
    │   │   │   │   ├── dbrecio.py
    │   │   │   │   ├── dbshelve.py
    │   │   │   │   ├── dbtables.py
    │   │   │   │   └── dbutils.py
    │   │   │   ├── cProfile.py
    │   │   │   ├── calendar.py
    │   │   │   ├── cgi.py
    │   │   │   ├── cgitb.py
    │   │   │   ├── chunk.py
    │   │   │   ├── cmd.py
    │   │   │   ├── code.py
    │   │   │   ├── codecs.py
    │   │   │   ├── codeop.py
    │   │   │   ├── collections.py
    │   │   │   ├── colorsys.py
    │   │   │   ├── commands.py
    │   │   │   ├── compileall.py
    │   │   │   ├── compiler/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── ast.py
    │   │   │   │   ├── consts.py
    │   │   │   │   ├── future.py
    │   │   │   │   ├── misc.py
    │   │   │   │   ├── pyassem.py
    │   │   │   │   ├── pycodegen.py
    │   │   │   │   ├── symbols.py
    │   │   │   │   ├── syntax.py
    │   │   │   │   ├── transformer.py
    │   │   │   │   └── visitor.py
    │   │   │   ├── contextlib.py
    │   │   │   ├── cookielib.py
    │   │   │   ├── copy.py
    │   │   │   ├── copy_reg.py
    │   │   │   ├── csv.py
    │   │   │   ├── ctypes/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _endian.py
    │   │   │   │   ├── macholib/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── dyld.py
    │   │   │   │   │   ├── dylib.py
    │   │   │   │   │   └── framework.py
    │   │   │   │   ├── util.py
    │   │   │   │   └── wintypes.py
    │   │   │   ├── curses/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── ascii.py
    │   │   │   │   ├── has_key.py
    │   │   │   │   ├── panel.py
    │   │   │   │   ├── textpad.py
    │   │   │   │   └── wrapper.py
    │   │   │   ├── dbhash.py
    │   │   │   ├── decimal.py
    │   │   │   ├── difflib.py
    │   │   │   ├── dircache.py
    │   │   │   ├── dis.py
    │   │   │   ├── distutils/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── archive_util.py
    │   │   │   │   ├── bcppcompiler.py
    │   │   │   │   ├── ccompiler.py
    │   │   │   │   ├── cmd.py
    │   │   │   │   ├── command/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── bdist.py
    │   │   │   │   │   ├── bdist_dumb.py
    │   │   │   │   │   ├── bdist_msi.py
    │   │   │   │   │   ├── bdist_rpm.py
    │   │   │   │   │   ├── bdist_wininst.py
    │   │   │   │   │   ├── build.py
    │   │   │   │   │   ├── build_clib.py
    │   │   │   │   │   ├── build_ext.py
    │   │   │   │   │   ├── build_py.py
    │   │   │   │   │   ├── build_scripts.py
    │   │   │   │   │   ├── check.py
    │   │   │   │   │   ├── clean.py
    │   │   │   │   │   ├── config.py
    │   │   │   │   │   ├── install.py
    │   │   │   │   │   ├── install_data.py
    │   │   │   │   │   ├── install_egg_info.py
    │   │   │   │   │   ├── install_headers.py
    │   │   │   │   │   ├── install_lib.py
    │   │   │   │   │   ├── install_scripts.py
    │   │   │   │   │   ├── register.py
    │   │   │   │   │   ├── sdist.py
    │   │   │   │   │   └── upload.py
    │   │   │   │   ├── config.py
    │   │   │   │   ├── core.py
    │   │   │   │   ├── cygwinccompiler.py
    │   │   │   │   ├── debug.py
    │   │   │   │   ├── dep_util.py
    │   │   │   │   ├── dir_util.py
    │   │   │   │   ├── dist.py
    │   │   │   │   ├── emxccompiler.py
    │   │   │   │   ├── errors.py
    │   │   │   │   ├── extension.py
    │   │   │   │   ├── fancy_getopt.py
    │   │   │   │   ├── file_util.py
    │   │   │   │   ├── filelist.py
    │   │   │   │   ├── log.py
    │   │   │   │   ├── msvc9compiler.py
    │   │   │   │   ├── msvccompiler.py
    │   │   │   │   ├── spawn.py
    │   │   │   │   ├── sysconfig.py
    │   │   │   │   ├── text_file.py
    │   │   │   │   ├── unixccompiler.py
    │   │   │   │   ├── util.py
    │   │   │   │   ├── version.py
    │   │   │   │   └── versionpredicate.py
    │   │   │   ├── doctest.py
    │   │   │   ├── dumbdbm.py
    │   │   │   ├── dummy_thread.py
    │   │   │   ├── dummy_threading.py
    │   │   │   ├── email/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _parseaddr.py
    │   │   │   │   ├── base64mime.py
    │   │   │   │   ├── charset.py
    │   │   │   │   ├── encoders.py
    │   │   │   │   ├── errors.py
    │   │   │   │   ├── feedparser.py
    │   │   │   │   ├── generator.py
    │   │   │   │   ├── header.py
    │   │   │   │   ├── iterators.py
    │   │   │   │   ├── message.py
    │   │   │   │   ├── mime/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── application.py
    │   │   │   │   │   ├── audio.py
    │   │   │   │   │   ├── base.py
    │   │   │   │   │   ├── image.py
    │   │   │   │   │   ├── message.py
    │   │   │   │   │   ├── multipart.py
    │   │   │   │   │   ├── nonmultipart.py
    │   │   │   │   │   └── text.py
    │   │   │   │   ├── parser.py
    │   │   │   │   ├── quoprimime.py
    │   │   │   │   └── utils.py
    │   │   │   ├── encodings/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── aliases.py
    │   │   │   │   ├── ascii.py
    │   │   │   │   ├── base64_codec.py
    │   │   │   │   ├── big5.py
    │   │   │   │   ├── big5hkscs.py
    │   │   │   │   ├── bz2_codec.py
    │   │   │   │   ├── charmap.py
    │   │   │   │   ├── cp037.py
    │   │   │   │   ├── cp1006.py
    │   │   │   │   ├── cp1026.py
    │   │   │   │   ├── cp1140.py
    │   │   │   │   ├── cp1250.py
    │   │   │   │   ├── cp1251.py
    │   │   │   │   ├── cp1252.py
    │   │   │   │   ├── cp1253.py
    │   │   │   │   ├── cp1254.py
    │   │   │   │   ├── cp1255.py
    │   │   │   │   ├── cp1256.py
    │   │   │   │   ├── cp1257.py
    │   │   │   │   ├── cp1258.py
    │   │   │   │   ├── cp424.py
    │   │   │   │   ├── cp437.py
    │   │   │   │   ├── cp500.py
    │   │   │   │   ├── cp720.py
    │   │   │   │   ├── cp737.py
    │   │   │   │   ├── cp775.py
    │   │   │   │   ├── cp850.py
    │   │   │   │   ├── cp852.py
    │   │   │   │   ├── cp855.py
    │   │   │   │   ├── cp856.py
    │   │   │   │   ├── cp857.py
    │   │   │   │   ├── cp858.py
    │   │   │   │   ├── cp860.py
    │   │   │   │   ├── cp861.py
    │   │   │   │   ├── cp862.py
    │   │   │   │   ├── cp863.py
    │   │   │   │   ├── cp864.py
    │   │   │   │   ├── cp865.py
    │   │   │   │   ├── cp866.py
    │   │   │   │   ├── cp869.py
    │   │   │   │   ├── cp874.py
    │   │   │   │   ├── cp875.py
    │   │   │   │   ├── cp932.py
    │   │   │   │   ├── cp949.py
    │   │   │   │   ├── cp950.py
    │   │   │   │   ├── euc_jis_2004.py
    │   │   │   │   ├── euc_jisx0213.py
    │   │   │   │   ├── euc_jp.py
    │   │   │   │   ├── euc_kr.py
    │   │   │   │   ├── gb18030.py
    │   │   │   │   ├── gb2312.py
    │   │   │   │   ├── gbk.py
    │   │   │   │   ├── hex_codec.py
    │   │   │   │   ├── hp_roman8.py
    │   │   │   │   ├── hz.py
    │   │   │   │   ├── idna.py
    │   │   │   │   ├── iso2022_jp.py
    │   │   │   │   ├── iso2022_jp_1.py
    │   │   │   │   ├── iso2022_jp_2.py
    │   │   │   │   ├── iso2022_jp_2004.py
    │   │   │   │   ├── iso2022_jp_3.py
    │   │   │   │   ├── iso2022_jp_ext.py
    │   │   │   │   ├── iso2022_kr.py
    │   │   │   │   ├── iso8859_1.py
    │   │   │   │   ├── iso8859_10.py
    │   │   │   │   ├── iso8859_11.py
    │   │   │   │   ├── iso8859_13.py
    │   │   │   │   ├── iso8859_14.py
    │   │   │   │   ├── iso8859_15.py
    │   │   │   │   ├── iso8859_16.py
    │   │   │   │   ├── iso8859_2.py
    │   │   │   │   ├── iso8859_3.py
    │   │   │   │   ├── iso8859_4.py
    │   │   │   │   ├── iso8859_5.py
    │   │   │   │   ├── iso8859_6.py
    │   │   │   │   ├── iso8859_7.py
    │   │   │   │   ├── iso8859_8.py
    │   │   │   │   ├── iso8859_9.py
    │   │   │   │   ├── johab.py
    │   │   │   │   ├── koi8_r.py
    │   │   │   │   ├── koi8_u.py
    │   │   │   │   ├── latin_1.py
    │   │   │   │   ├── mac_arabic.py
    │   │   │   │   ├── mac_centeuro.py
    │   │   │   │   ├── mac_croatian.py
    │   │   │   │   ├── mac_cyrillic.py
    │   │   │   │   ├── mac_farsi.py
    │   │   │   │   ├── mac_greek.py
    │   │   │   │   ├── mac_iceland.py
    │   │   │   │   ├── mac_latin2.py
    │   │   │   │   ├── mac_roman.py
    │   │   │   │   ├── mac_romanian.py
    │   │   │   │   ├── mac_turkish.py
    │   │   │   │   ├── mbcs.py
    │   │   │   │   ├── palmos.py
    │   │   │   │   ├── ptcp154.py
    │   │   │   │   ├── punycode.py
    │   │   │   │   ├── quopri_codec.py
    │   │   │   │   ├── raw_unicode_escape.py
    │   │   │   │   ├── rot_13.py
    │   │   │   │   ├── shift_jis.py
    │   │   │   │   ├── shift_jis_2004.py
    │   │   │   │   ├── shift_jisx0213.py
    │   │   │   │   ├── string_escape.py
    │   │   │   │   ├── tis_620.py
    │   │   │   │   ├── undefined.py
    │   │   │   │   ├── unicode_escape.py
    │   │   │   │   ├── unicode_internal.py
    │   │   │   │   ├── utf_16.py
    │   │   │   │   ├── utf_16_be.py
    │   │   │   │   ├── utf_16_le.py
    │   │   │   │   ├── utf_32.py
    │   │   │   │   ├── utf_32_be.py
    │   │   │   │   ├── utf_32_le.py
    │   │   │   │   ├── utf_7.py
    │   │   │   │   ├── utf_8.py
    │   │   │   │   ├── utf_8_sig.py
    │   │   │   │   ├── uu_codec.py
    │   │   │   │   └── zlib_codec.py
    │   │   │   ├── filecmp.py
    │   │   │   ├── fileinput.py
    │   │   │   ├── fnmatch.py
    │   │   │   ├── formatter.py
    │   │   │   ├── fpformat.py
    │   │   │   ├── fractions.py
    │   │   │   ├── ftplib.py
    │   │   │   ├── functools.py
    │   │   │   ├── genericpath.py
    │   │   │   ├── getopt.py
    │   │   │   ├── getpass.py
    │   │   │   ├── gettext.py
    │   │   │   ├── glob.py
    │   │   │   ├── gzip.py
    │   │   │   ├── hashlib.py
    │   │   │   ├── heapq.py
    │   │   │   ├── hmac.py
    │   │   │   ├── hotshot/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── log.py
    │   │   │   │   ├── stats.py
    │   │   │   │   └── stones.py
    │   │   │   ├── htmlentitydefs.py
    │   │   │   ├── htmllib.py
    │   │   │   ├── httplib.py
    │   │   │   ├── idlelib/
    │   │   │   │   └── idle_test/
    │   │   │   │       ├── README.txt
    │   │   │   │       ├── __init__.py
    │   │   │   │       ├── mock_idle.py
    │   │   │   │       ├── mock_tk.py
    │   │   │   │       ├── test_calltips.py
    │   │   │   │       ├── test_config_name.py
    │   │   │   │       ├── test_delegator.py
    │   │   │   │       ├── test_formatparagraph.py
    │   │   │   │       ├── test_grep.py
    │   │   │   │       ├── test_idlehistory.py
    │   │   │   │       ├── test_pathbrowser.py
    │   │   │   │       ├── test_rstrip.py
    │   │   │   │       ├── test_searchengine.py
    │   │   │   │       ├── test_text.py
    │   │   │   │       └── test_warning.py
    │   │   │   ├── ihooks.py
    │   │   │   ├── imaplib.py
    │   │   │   ├── imghdr.py
    │   │   │   ├── importlib/
    │   │   │   │   └── __init__.py
    │   │   │   ├── imputil.py
    │   │   │   ├── inspect.py
    │   │   │   ├── io.py
    │   │   │   ├── json/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── decoder.py
    │   │   │   │   ├── encoder.py
    │   │   │   │   ├── scanner.py
    │   │   │   │   └── tool.py
    │   │   │   ├── keyword.py
    │   │   │   ├── lib-tk/
    │   │   │   │   └── test/
    │   │   │   │       ├── test_tkinter/
    │   │   │   │       │   ├── __init__.py
    │   │   │   │       │   ├── test_loadtk.py
    │   │   │   │       │   └── test_text.py
    │   │   │   │       └── test_ttk/
    │   │   │   │           ├── __init__.py
    │   │   │   │           ├── support.py
    │   │   │   │           ├── test_extensions.py
    │   │   │   │           ├── test_functions.py
    │   │   │   │           ├── test_style.py
    │   │   │   │           └── test_widgets.py
    │   │   │   ├── lib2to3/
    │   │   │   │   ├── Grammar.txt
    │   │   │   │   ├── PatternGrammar.txt
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── __main__.py
    │   │   │   │   ├── btm_matcher.py
    │   │   │   │   ├── btm_utils.py
    │   │   │   │   ├── fixer_base.py
    │   │   │   │   ├── fixer_util.py
    │   │   │   │   ├── fixes/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── fix_apply.py
    │   │   │   │   │   ├── fix_basestring.py
    │   │   │   │   │   ├── fix_buffer.py
    │   │   │   │   │   ├── fix_callable.py
    │   │   │   │   │   ├── fix_dict.py
    │   │   │   │   │   ├── fix_except.py
    │   │   │   │   │   ├── fix_exec.py
    │   │   │   │   │   ├── fix_execfile.py
    │   │   │   │   │   ├── fix_exitfunc.py
    │   │   │   │   │   ├── fix_filter.py
    │   │   │   │   │   ├── fix_funcattrs.py
    │   │   │   │   │   ├── fix_future.py
    │   │   │   │   │   ├── fix_getcwdu.py
    │   │   │   │   │   ├── fix_has_key.py
    │   │   │   │   │   ├── fix_idioms.py
    │   │   │   │   │   ├── fix_import.py
    │   │   │   │   │   ├── fix_imports.py
    │   │   │   │   │   ├── fix_imports2.py
    │   │   │   │   │   ├── fix_input.py
    │   │   │   │   │   ├── fix_intern.py
    │   │   │   │   │   ├── fix_isinstance.py
    │   │   │   │   │   ├── fix_itertools.py
    │   │   │   │   │   ├── fix_itertools_imports.py
    │   │   │   │   │   ├── fix_long.py
    │   │   │   │   │   ├── fix_map.py
    │   │   │   │   │   ├── fix_metaclass.py
    │   │   │   │   │   ├── fix_methodattrs.py
    │   │   │   │   │   ├── fix_ne.py
    │   │   │   │   │   ├── fix_next.py
    │   │   │   │   │   ├── fix_nonzero.py
    │   │   │   │   │   ├── fix_numliterals.py
    │   │   │   │   │   ├── fix_operator.py
    │   │   │   │   │   ├── fix_paren.py
    │   │   │   │   │   ├── fix_print.py
    │   │   │   │   │   ├── fix_raise.py
    │   │   │   │   │   ├── fix_raw_input.py
    │   │   │   │   │   ├── fix_reduce.py
    │   │   │   │   │   ├── fix_renames.py
    │   │   │   │   │   ├── fix_repr.py
    │   │   │   │   │   ├── fix_set_literal.py
    │   │   │   │   │   ├── fix_standarderror.py
    │   │   │   │   │   ├── fix_sys_exc.py
    │   │   │   │   │   ├── fix_throw.py
    │   │   │   │   │   ├── fix_tuple_params.py
    │   │   │   │   │   ├── fix_types.py
    │   │   │   │   │   ├── fix_unicode.py
    │   │   │   │   │   ├── fix_urllib.py
    │   │   │   │   │   ├── fix_ws_comma.py
    │   │   │   │   │   ├── fix_xrange.py
    │   │   │   │   │   ├── fix_xreadlines.py
    │   │   │   │   │   └── fix_zip.py
    │   │   │   │   ├── main.py
    │   │   │   │   ├── patcomp.py
    │   │   │   │   ├── pgen2/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── conv.py
    │   │   │   │   │   ├── driver.py
    │   │   │   │   │   ├── grammar.py
    │   │   │   │   │   ├── literals.py
    │   │   │   │   │   ├── parse.py
    │   │   │   │   │   ├── pgen.py
    │   │   │   │   │   ├── token.py
    │   │   │   │   │   └── tokenize.py
    │   │   │   │   ├── pygram.py
    │   │   │   │   ├── pytree.py
    │   │   │   │   ├── refactor.py
    │   │   │   │   └── tests/
    │   │   │   │       └── data/
    │   │   │   │           └── fixers/
    │   │   │   │               ├── bad_order.py
    │   │   │   │               ├── myfixes/
    │   │   │   │               │   ├── __init__.py
    │   │   │   │               │   ├── fix_explicit.py
    │   │   │   │               │   ├── fix_first.py
    │   │   │   │               │   ├── fix_last.py
    │   │   │   │               │   ├── fix_parrot.py
    │   │   │   │               │   └── fix_preorder.py
    │   │   │   │               ├── no_fixer_cls.py
    │   │   │   │               └── parrot_example.py
    │   │   │   ├── linecache.py
    │   │   │   ├── locale.py
    │   │   │   ├── logging/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── config.py
    │   │   │   │   └── handlers.py
    │   │   │   ├── macpath.py
    │   │   │   ├── macurl2path.py
    │   │   │   ├── mailbox.py
    │   │   │   ├── mailcap.py
    │   │   │   ├── markupbase.py
    │   │   │   ├── md5.py
    │   │   │   ├── mhlib.py
    │   │   │   ├── mimetools.py
    │   │   │   ├── mimetypes.py
    │   │   │   ├── mimify.py
    │   │   │   ├── modulefinder.py
    │   │   │   ├── msilib/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── schema.py
    │   │   │   │   ├── sequence.py
    │   │   │   │   └── text.py
    │   │   │   ├── multifile.py
    │   │   │   ├── multiprocessing/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── connection.py
    │   │   │   │   ├── dummy/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── connection.py
    │   │   │   │   ├── forking.py
    │   │   │   │   ├── heap.py
    │   │   │   │   ├── managers.py
    │   │   │   │   ├── pool.py
    │   │   │   │   ├── process.py
    │   │   │   │   ├── queues.py
    │   │   │   │   ├── reduction.py
    │   │   │   │   ├── sharedctypes.py
    │   │   │   │   ├── synchronize.py
    │   │   │   │   └── util.py
    │   │   │   ├── mutex.py
    │   │   │   ├── netrc.py
    │   │   │   ├── new.py
    │   │   │   ├── nntplib.py
    │   │   │   ├── ntpath.py
    │   │   │   ├── nturl2path.py
    │   │   │   ├── numbers.py
    │   │   │   ├── opcode.py
    │   │   │   ├── optparse.py
    │   │   │   ├── os.py
    │   │   │   ├── os2emxpath.py
    │   │   │   ├── pdb.py
    │   │   │   ├── pickle.py
    │   │   │   ├── pickletools.py
    │   │   │   ├── pipes.py
    │   │   │   ├── pkgutil.py
    │   │   │   ├── platform.py
    │   │   │   ├── plistlib.py
    │   │   │   ├── popen2.py
    │   │   │   ├── poplib.py
    │   │   │   ├── posixfile.py
    │   │   │   ├── posixpath.py
    │   │   │   ├── pprint.py
    │   │   │   ├── profile.py
    │   │   │   ├── pstats.py
    │   │   │   ├── pty.py
    │   │   │   ├── py_compile.py
    │   │   │   ├── pyclbr.py
    │   │   │   ├── pydoc.py
    │   │   │   ├── pydoc_data/
    │   │   │   │   ├── __init__.py
    │   │   │   │   └── topics.py
    │   │   │   ├── quopri.py
    │   │   │   ├── random.py
    │   │   │   ├── re.py
    │   │   │   ├── repr.py
    │   │   │   ├── rexec.py
    │   │   │   ├── rfc822.py
    │   │   │   ├── rlcompleter.py
    │   │   │   ├── robotparser.py
    │   │   │   ├── runpy.py
    │   │   │   ├── sched.py
    │   │   │   ├── sets.py
    │   │   │   ├── sgmllib.py
    │   │   │   ├── sha.py
    │   │   │   ├── shelve.py
    │   │   │   ├── shlex.py
    │   │   │   ├── shutil.py
    │   │   │   ├── site-packages/
    │   │   │   │   ├── README.txt
    │   │   │   │   ├── _markerlib/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── markers.py
    │   │   │   │   ├── easy_install.py
    │   │   │   │   ├── pip/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── __main__.py
    │   │   │   │   │   ├── _vendor/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── _markerlib/
    │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   └── markers.py
    │   │   │   │   │   │   ├── colorama/
    │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   ├── ansi.py
    │   │   │   │   │   │   │   ├── ansitowin32.py
    │   │   │   │   │   │   │   ├── initialise.py
    │   │   │   │   │   │   │   ├── win32.py
    │   │   │   │   │   │   │   └── winterm.py
    │   │   │   │   │   │   ├── distlib/
    │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   ├── _backport/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   ├── misc.py
    │   │   │   │   │   │   │   │   ├── shutil.py
    │   │   │   │   │   │   │   │   ├── sysconfig.cfg
    │   │   │   │   │   │   │   │   ├── sysconfig.py
    │   │   │   │   │   │   │   │   └── tarfile.py
    │   │   │   │   │   │   │   ├── compat.py
    │   │   │   │   │   │   │   ├── database.py
    │   │   │   │   │   │   │   ├── index.py
    │   │   │   │   │   │   │   ├── locators.py
    │   │   │   │   │   │   │   ├── manifest.py
    │   │   │   │   │   │   │   ├── markers.py
    │   │   │   │   │   │   │   ├── metadata.py
    │   │   │   │   │   │   │   ├── resources.py
    │   │   │   │   │   │   │   ├── scripts.py
    │   │   │   │   │   │   │   ├── util.py
    │   │   │   │   │   │   │   ├── version.py
    │   │   │   │   │   │   │   └── wheel.py
    │   │   │   │   │   │   ├── html5lib/
    │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   ├── constants.py
    │   │   │   │   │   │   │   ├── filters/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   ├── _base.py
    │   │   │   │   │   │   │   │   ├── alphabeticalattributes.py
    │   │   │   │   │   │   │   │   ├── inject_meta_charset.py
    │   │   │   │   │   │   │   │   ├── lint.py
    │   │   │   │   │   │   │   │   ├── optionaltags.py
    │   │   │   │   │   │   │   │   ├── sanitizer.py
    │   │   │   │   │   │   │   │   └── whitespace.py
    │   │   │   │   │   │   │   ├── html5parser.py
    │   │   │   │   │   │   │   ├── ihatexml.py
    │   │   │   │   │   │   │   ├── inputstream.py
    │   │   │   │   │   │   │   ├── sanitizer.py
    │   │   │   │   │   │   │   ├── serializer/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   └── htmlserializer.py
    │   │   │   │   │   │   │   ├── tokenizer.py
    │   │   │   │   │   │   │   ├── treebuilders/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   ├── _base.py
    │   │   │   │   │   │   │   │   ├── dom.py
    │   │   │   │   │   │   │   │   ├── etree.py
    │   │   │   │   │   │   │   │   └── etree_lxml.py
    │   │   │   │   │   │   │   ├── treewalkers/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   ├── _base.py
    │   │   │   │   │   │   │   │   ├── dom.py
    │   │   │   │   │   │   │   │   ├── etree.py
    │   │   │   │   │   │   │   │   ├── genshistream.py
    │   │   │   │   │   │   │   │   ├── lxmletree.py
    │   │   │   │   │   │   │   │   └── pulldom.py
    │   │   │   │   │   │   │   ├── trie/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   ├── _base.py
    │   │   │   │   │   │   │   │   ├── datrie.py
    │   │   │   │   │   │   │   │   └── py.py
    │   │   │   │   │   │   │   └── utils.py
    │   │   │   │   │   │   ├── pkg_resources.py
    │   │   │   │   │   │   ├── re-vendor.py
    │   │   │   │   │   │   ├── requests/
    │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   ├── adapters.py
    │   │   │   │   │   │   │   ├── api.py
    │   │   │   │   │   │   │   ├── auth.py
    │   │   │   │   │   │   │   ├── cacert.pem
    │   │   │   │   │   │   │   ├── certs.py
    │   │   │   │   │   │   │   ├── compat.py
    │   │   │   │   │   │   │   ├── cookies.py
    │   │   │   │   │   │   │   ├── exceptions.py
    │   │   │   │   │   │   │   ├── hooks.py
    │   │   │   │   │   │   │   ├── models.py
    │   │   │   │   │   │   │   ├── packages/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   ├── charade/
    │   │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   │   ├── __main__.py
    │   │   │   │   │   │   │   │   │   ├── big5freq.py
    │   │   │   │   │   │   │   │   │   ├── big5prober.py
    │   │   │   │   │   │   │   │   │   ├── chardistribution.py
    │   │   │   │   │   │   │   │   │   ├── charsetgroupprober.py
    │   │   │   │   │   │   │   │   │   ├── charsetprober.py
    │   │   │   │   │   │   │   │   │   ├── codingstatemachine.py
    │   │   │   │   │   │   │   │   │   ├── compat.py
    │   │   │   │   │   │   │   │   │   ├── constants.py
    │   │   │   │   │   │   │   │   │   ├── cp949prober.py
    │   │   │   │   │   │   │   │   │   ├── escprober.py
    │   │   │   │   │   │   │   │   │   ├── escsm.py
    │   │   │   │   │   │   │   │   │   ├── eucjpprober.py
    │   │   │   │   │   │   │   │   │   ├── euckrfreq.py
    │   │   │   │   │   │   │   │   │   ├── euckrprober.py
    │   │   │   │   │   │   │   │   │   ├── euctwfreq.py
    │   │   │   │   │   │   │   │   │   ├── euctwprober.py
    │   │   │   │   │   │   │   │   │   ├── gb2312freq.py
    │   │   │   │   │   │   │   │   │   ├── gb2312prober.py
    │   │   │   │   │   │   │   │   │   ├── hebrewprober.py
    │   │   │   │   │   │   │   │   │   ├── jisfreq.py
    │   │   │   │   │   │   │   │   │   ├── jpcntx.py
    │   │   │   │   │   │   │   │   │   ├── langbulgarianmodel.py
    │   │   │   │   │   │   │   │   │   ├── langcyrillicmodel.py
    │   │   │   │   │   │   │   │   │   ├── langgreekmodel.py
    │   │   │   │   │   │   │   │   │   ├── langhebrewmodel.py
    │   │   │   │   │   │   │   │   │   ├── langhungarianmodel.py
    │   │   │   │   │   │   │   │   │   ├── langthaimodel.py
    │   │   │   │   │   │   │   │   │   ├── latin1prober.py
    │   │   │   │   │   │   │   │   │   ├── mbcharsetprober.py
    │   │   │   │   │   │   │   │   │   ├── mbcsgroupprober.py
    │   │   │   │   │   │   │   │   │   ├── mbcssm.py
    │   │   │   │   │   │   │   │   │   ├── sbcharsetprober.py
    │   │   │   │   │   │   │   │   │   ├── sbcsgroupprober.py
    │   │   │   │   │   │   │   │   │   ├── sjisprober.py
    │   │   │   │   │   │   │   │   │   ├── universaldetector.py
    │   │   │   │   │   │   │   │   │   └── utf8prober.py
    │   │   │   │   │   │   │   │   ├── chardet/
    │   │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   │   ├── big5freq.py
    │   │   │   │   │   │   │   │   │   ├── big5prober.py
    │   │   │   │   │   │   │   │   │   ├── chardetect.py
    │   │   │   │   │   │   │   │   │   ├── chardistribution.py
    │   │   │   │   │   │   │   │   │   ├── charsetgroupprober.py
    │   │   │   │   │   │   │   │   │   ├── charsetprober.py
    │   │   │   │   │   │   │   │   │   ├── codingstatemachine.py
    │   │   │   │   │   │   │   │   │   ├── compat.py
    │   │   │   │   │   │   │   │   │   ├── constants.py
    │   │   │   │   │   │   │   │   │   ├── cp949prober.py
    │   │   │   │   │   │   │   │   │   ├── escprober.py
    │   │   │   │   │   │   │   │   │   ├── escsm.py
    │   │   │   │   │   │   │   │   │   ├── eucjpprober.py
    │   │   │   │   │   │   │   │   │   ├── euckrfreq.py
    │   │   │   │   │   │   │   │   │   ├── euckrprober.py
    │   │   │   │   │   │   │   │   │   ├── euctwfreq.py
    │   │   │   │   │   │   │   │   │   ├── euctwprober.py
    │   │   │   │   │   │   │   │   │   ├── gb2312freq.py
    │   │   │   │   │   │   │   │   │   ├── gb2312prober.py
    │   │   │   │   │   │   │   │   │   ├── hebrewprober.py
    │   │   │   │   │   │   │   │   │   ├── jisfreq.py
    │   │   │   │   │   │   │   │   │   ├── jpcntx.py
    │   │   │   │   │   │   │   │   │   ├── langbulgarianmodel.py
    │   │   │   │   │   │   │   │   │   ├── langcyrillicmodel.py
    │   │   │   │   │   │   │   │   │   ├── langgreekmodel.py
    │   │   │   │   │   │   │   │   │   ├── langhebrewmodel.py
    │   │   │   │   │   │   │   │   │   ├── langhungarianmodel.py
    │   │   │   │   │   │   │   │   │   ├── langthaimodel.py
    │   │   │   │   │   │   │   │   │   ├── latin1prober.py
    │   │   │   │   │   │   │   │   │   ├── mbcharsetprober.py
    │   │   │   │   │   │   │   │   │   ├── mbcsgroupprober.py
    │   │   │   │   │   │   │   │   │   ├── mbcssm.py
    │   │   │   │   │   │   │   │   │   ├── sbcharsetprober.py
    │   │   │   │   │   │   │   │   │   ├── sbcsgroupprober.py
    │   │   │   │   │   │   │   │   │   ├── sjisprober.py
    │   │   │   │   │   │   │   │   │   ├── universaldetector.py
    │   │   │   │   │   │   │   │   │   └── utf8prober.py
    │   │   │   │   │   │   │   │   └── urllib3/
    │   │   │   │   │   │   │   │       ├── __init__.py
    │   │   │   │   │   │   │   │       ├── _collections.py
    │   │   │   │   │   │   │   │       ├── connection.py
    │   │   │   │   │   │   │   │       ├── connectionpool.py
    │   │   │   │   │   │   │   │       ├── contrib/
    │   │   │   │   │   │   │   │       │   ├── __init__.py
    │   │   │   │   │   │   │   │       │   ├── ntlmpool.py
    │   │   │   │   │   │   │   │       │   └── pyopenssl.py
    │   │   │   │   │   │   │   │       ├── exceptions.py
    │   │   │   │   │   │   │   │       ├── fields.py
    │   │   │   │   │   │   │   │       ├── filepost.py
    │   │   │   │   │   │   │   │       ├── packages/
    │   │   │   │   │   │   │   │       │   ├── __init__.py
    │   │   │   │   │   │   │   │       │   ├── ordered_dict.py
    │   │   │   │   │   │   │   │       │   ├── six.py
    │   │   │   │   │   │   │   │       │   └── ssl_match_hostname/
    │   │   │   │   │   │   │   │       │       ├── __init__.py
    │   │   │   │   │   │   │   │       │       └── _implementation.py
    │   │   │   │   │   │   │   │       ├── poolmanager.py
    │   │   │   │   │   │   │   │       ├── request.py
    │   │   │   │   │   │   │   │       ├── response.py
    │   │   │   │   │   │   │   │       └── util.py
    │   │   │   │   │   │   │   ├── sessions.py
    │   │   │   │   │   │   │   ├── status_codes.py
    │   │   │   │   │   │   │   ├── structures.py
    │   │   │   │   │   │   │   └── utils.py
    │   │   │   │   │   │   └── six.py
    │   │   │   │   │   ├── backwardcompat/
    │   │   │   │   │   │   └── __init__.py
    │   │   │   │   │   ├── basecommand.py
    │   │   │   │   │   ├── baseparser.py
    │   │   │   │   │   ├── cmdoptions.py
    │   │   │   │   │   ├── commands/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── bundle.py
    │   │   │   │   │   │   ├── completion.py
    │   │   │   │   │   │   ├── freeze.py
    │   │   │   │   │   │   ├── help.py
    │   │   │   │   │   │   ├── install.py
    │   │   │   │   │   │   ├── list.py
    │   │   │   │   │   │   ├── search.py
    │   │   │   │   │   │   ├── show.py
    │   │   │   │   │   │   ├── uninstall.py
    │   │   │   │   │   │   ├── unzip.py
    │   │   │   │   │   │   ├── wheel.py
    │   │   │   │   │   │   └── zip.py
    │   │   │   │   │   ├── download.py
    │   │   │   │   │   ├── exceptions.py
    │   │   │   │   │   ├── index.py
    │   │   │   │   │   ├── locations.py
    │   │   │   │   │   ├── log.py
    │   │   │   │   │   ├── pep425tags.py
    │   │   │   │   │   ├── req.py
    │   │   │   │   │   ├── runner.py
    │   │   │   │   │   ├── status_codes.py
    │   │   │   │   │   ├── util.py
    │   │   │   │   │   ├── vcs/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── bazaar.py
    │   │   │   │   │   │   ├── git.py
    │   │   │   │   │   │   ├── mercurial.py
    │   │   │   │   │   │   └── subversion.py
    │   │   │   │   │   └── wheel.py
    │   │   │   │   ├── pip-1.5.4.dist-info/
    │   │   │   │   │   ├── DESCRIPTION.rst
    │   │   │   │   │   ├── METADATA
    │   │   │   │   │   ├── RECORD
    │   │   │   │   │   ├── WHEEL
    │   │   │   │   │   ├── entry_points.txt
    │   │   │   │   │   ├── pydist.json
    │   │   │   │   │   └── top_level.txt
    │   │   │   │   ├── pkg_resources.py
    │   │   │   │   ├── setuptools/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── archive_util.py
    │   │   │   │   │   ├── command/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── alias.py
    │   │   │   │   │   │   ├── bdist_egg.py
    │   │   │   │   │   │   ├── bdist_rpm.py
    │   │   │   │   │   │   ├── bdist_wininst.py
    │   │   │   │   │   │   ├── build_ext.py
    │   │   │   │   │   │   ├── build_py.py
    │   │   │   │   │   │   ├── develop.py
    │   │   │   │   │   │   ├── easy_install.py
    │   │   │   │   │   │   ├── egg_info.py
    │   │   │   │   │   │   ├── install.py
    │   │   │   │   │   │   ├── install_egg_info.py
    │   │   │   │   │   │   ├── install_lib.py
    │   │   │   │   │   │   ├── install_scripts.py
    │   │   │   │   │   │   ├── launcher manifest.xml
    │   │   │   │   │   │   ├── register.py
    │   │   │   │   │   │   ├── rotate.py
    │   │   │   │   │   │   ├── saveopts.py
    │   │   │   │   │   │   ├── sdist.py
    │   │   │   │   │   │   ├── setopt.py
    │   │   │   │   │   │   ├── test.py
    │   │   │   │   │   │   └── upload_docs.py
    │   │   │   │   │   ├── compat.py
    │   │   │   │   │   ├── depends.py
    │   │   │   │   │   ├── dist.py
    │   │   │   │   │   ├── extension.py
    │   │   │   │   │   ├── lib2to3_ex.py
    │   │   │   │   │   ├── package_index.py
    │   │   │   │   │   ├── py26compat.py
    │   │   │   │   │   ├── py27compat.py
    │   │   │   │   │   ├── py31compat.py
    │   │   │   │   │   ├── sandbox.py
    │   │   │   │   │   ├── script template (dev).py
    │   │   │   │   │   ├── script template.py
    │   │   │   │   │   ├── site-patch.py
    │   │   │   │   │   ├── ssl_support.py
    │   │   │   │   │   ├── svn_utils.py
    │   │   │   │   │   ├── tests/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── doctest.py
    │   │   │   │   │   │   ├── environment.py
    │   │   │   │   │   │   ├── py26compat.py
    │   │   │   │   │   │   ├── script-with-bom.py
    │   │   │   │   │   │   ├── server.py
    │   │   │   │   │   │   ├── test_bdist_egg.py
    │   │   │   │   │   │   ├── test_build_ext.py
    │   │   │   │   │   │   ├── test_develop.py
    │   │   │   │   │   │   ├── test_dist_info.py
    │   │   │   │   │   │   ├── test_easy_install.py
    │   │   │   │   │   │   ├── test_egg_info.py
    │   │   │   │   │   │   ├── test_find_packages.py
    │   │   │   │   │   │   ├── test_markerlib.py
    │   │   │   │   │   │   ├── test_packageindex.py
    │   │   │   │   │   │   ├── test_resources.py
    │   │   │   │   │   │   ├── test_sandbox.py
    │   │   │   │   │   │   ├── test_sdist.py
    │   │   │   │   │   │   ├── test_svn.py
    │   │   │   │   │   │   ├── test_test.py
    │   │   │   │   │   │   └── test_upload_docs.py
    │   │   │   │   │   └── version.py
    │   │   │   │   └── setuptools-3.3.dist-info/
    │   │   │   │       ├── DESCRIPTION.rst
    │   │   │   │       ├── METADATA
    │   │   │   │       ├── RECORD
    │   │   │   │       ├── WHEEL
    │   │   │   │       ├── dependency_links.txt
    │   │   │   │       ├── dependency_links.txt.orig
    │   │   │   │       ├── entry_points.txt
    │   │   │   │       ├── entry_points.txt.orig
    │   │   │   │       ├── pydist.json
    │   │   │   │       ├── requires.txt.orig
    │   │   │   │       ├── top_level.txt
    │   │   │   │       └── zip-safe
    │   │   │   ├── site.py
    │   │   │   ├── smtpd.py
    │   │   │   ├── smtplib.py
    │   │   │   ├── sndhdr.py
    │   │   │   ├── socket.py
    │   │   │   ├── sqlite3/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── dbapi2.py
    │   │   │   │   └── dump.py
    │   │   │   ├── sre.py
    │   │   │   ├── sre_compile.py
    │   │   │   ├── sre_constants.py
    │   │   │   ├── sre_parse.py
    │   │   │   ├── ssl.py
    │   │   │   ├── stat.py
    │   │   │   ├── statvfs.py
    │   │   │   ├── string.py
    │   │   │   ├── stringold.py
    │   │   │   ├── stringprep.py
    │   │   │   ├── struct.py
    │   │   │   ├── subprocess.py
    │   │   │   ├── sunau.py
    │   │   │   ├── sunaudio.py
    │   │   │   ├── symbol.py
    │   │   │   ├── symtable.py
    │   │   │   ├── sysconfig.py
    │   │   │   ├── tabnanny.py
    │   │   │   ├── tarfile.py
    │   │   │   ├── telnetlib.py
    │   │   │   ├── tempfile.py
    │   │   │   ├── test/
    │   │   │   │   ├── cjkencodings/
    │   │   │   │   │   ├── big5-utf8.txt
    │   │   │   │   │   ├── big5.txt
    │   │   │   │   │   ├── big5hkscs-utf8.txt
    │   │   │   │   │   ├── big5hkscs.txt
    │   │   │   │   │   ├── cp949-utf8.txt
    │   │   │   │   │   ├── cp949.txt
    │   │   │   │   │   ├── euc_jisx0213-utf8.txt
    │   │   │   │   │   ├── euc_jisx0213.txt
    │   │   │   │   │   ├── euc_jp-utf8.txt
    │   │   │   │   │   ├── euc_jp.txt
    │   │   │   │   │   ├── euc_kr-utf8.txt
    │   │   │   │   │   ├── euc_kr.txt
    │   │   │   │   │   ├── gb18030-utf8.txt
    │   │   │   │   │   ├── gb18030.txt
    │   │   │   │   │   ├── gb2312-utf8.txt
    │   │   │   │   │   ├── gb2312.txt
    │   │   │   │   │   ├── gbk-utf8.txt
    │   │   │   │   │   ├── gbk.txt
    │   │   │   │   │   ├── hz-utf8.txt
    │   │   │   │   │   ├── hz.txt
    │   │   │   │   │   ├── iso2022_jp-utf8.txt
    │   │   │   │   │   ├── iso2022_jp.txt
    │   │   │   │   │   ├── iso2022_kr-utf8.txt
    │   │   │   │   │   ├── iso2022_kr.txt
    │   │   │   │   │   ├── johab-utf8.txt
    │   │   │   │   │   ├── johab.txt
    │   │   │   │   │   ├── shift_jis-utf8.txt
    │   │   │   │   │   ├── shift_jis.txt
    │   │   │   │   │   ├── shift_jisx0213-utf8.txt
    │   │   │   │   │   └── shift_jisx0213.txt
    │   │   │   │   ├── crashers/
    │   │   │   │   │   ├── bogus_code_obj.py
    │   │   │   │   │   ├── borrowed_ref_1.py
    │   │   │   │   │   ├── borrowed_ref_2.py
    │   │   │   │   │   ├── buffer_mutate.py
    │   │   │   │   │   ├── compiler_recursion.py
    │   │   │   │   │   ├── decref_before_assignment.py
    │   │   │   │   │   ├── gc_has_finalizer.py
    │   │   │   │   │   ├── gc_inspection.py
    │   │   │   │   │   ├── infinite_loop_re.py
    │   │   │   │   │   ├── loosing_mro_ref.py
    │   │   │   │   │   ├── mutation_inside_cyclegc.py
    │   │   │   │   │   ├── nasty_eq_vs_dict.py
    │   │   │   │   │   ├── recursion_limit_too_high.py
    │   │   │   │   │   └── recursive_call.py
    │   │   │   │   ├── decimaltestdata/
    │   │   │   │   │   ├── abs.decTest
    │   │   │   │   │   ├── add.decTest
    │   │   │   │   │   ├── and.decTest
    │   │   │   │   │   ├── base.decTest
    │   │   │   │   │   ├── clamp.decTest
    │   │   │   │   │   ├── class.decTest
    │   │   │   │   │   ├── compare.decTest
    │   │   │   │   │   ├── comparetotal.decTest
    │   │   │   │   │   ├── comparetotmag.decTest
    │   │   │   │   │   ├── copy.decTest
    │   │   │   │   │   ├── copyabs.decTest
    │   │   │   │   │   ├── copynegate.decTest
    │   │   │   │   │   ├── copysign.decTest
    │   │   │   │   │   ├── ddAbs.decTest
    │   │   │   │   │   ├── ddAdd.decTest
    │   │   │   │   │   ├── ddAnd.decTest
    │   │   │   │   │   ├── ddBase.decTest
    │   │   │   │   │   ├── ddCanonical.decTest
    │   │   │   │   │   ├── ddClass.decTest
    │   │   │   │   │   ├── ddCompare.decTest
    │   │   │   │   │   ├── ddCompareSig.decTest
    │   │   │   │   │   ├── ddCompareTotal.decTest
    │   │   │   │   │   ├── ddCompareTotalMag.decTest
    │   │   │   │   │   ├── ddCopy.decTest
    │   │   │   │   │   ├── ddCopyAbs.decTest
    │   │   │   │   │   ├── ddCopyNegate.decTest
    │   │   │   │   │   ├── ddCopySign.decTest
    │   │   │   │   │   ├── ddDivide.decTest
    │   │   │   │   │   ├── ddDivideInt.decTest
    │   │   │   │   │   ├── ddEncode.decTest
    │   │   │   │   │   ├── ddFMA.decTest
    │   │   │   │   │   ├── ddInvert.decTest
    │   │   │   │   │   ├── ddLogB.decTest
    │   │   │   │   │   ├── ddMax.decTest
    │   │   │   │   │   ├── ddMaxMag.decTest
    │   │   │   │   │   ├── ddMin.decTest
    │   │   │   │   │   ├── ddMinMag.decTest
    │   │   │   │   │   ├── ddMinus.decTest
    │   │   │   │   │   ├── ddMultiply.decTest
    │   │   │   │   │   ├── ddNextMinus.decTest
    │   │   │   │   │   ├── ddNextPlus.decTest
    │   │   │   │   │   ├── ddNextToward.decTest
    │   │   │   │   │   ├── ddOr.decTest
    │   │   │   │   │   ├── ddPlus.decTest
    │   │   │   │   │   ├── ddQuantize.decTest
    │   │   │   │   │   ├── ddReduce.decTest
    │   │   │   │   │   ├── ddRemainder.decTest
    │   │   │   │   │   ├── ddRemainderNear.decTest
    │   │   │   │   │   ├── ddRotate.decTest
    │   │   │   │   │   ├── ddSameQuantum.decTest
    │   │   │   │   │   ├── ddScaleB.decTest
    │   │   │   │   │   ├── ddShift.decTest
    │   │   │   │   │   ├── ddSubtract.decTest
    │   │   │   │   │   ├── ddToIntegral.decTest
    │   │   │   │   │   ├── ddXor.decTest
    │   │   │   │   │   ├── decDouble.decTest
    │   │   │   │   │   ├── decQuad.decTest
    │   │   │   │   │   ├── decSingle.decTest
    │   │   │   │   │   ├── divide.decTest
    │   │   │   │   │   ├── divideint.decTest
    │   │   │   │   │   ├── dqAbs.decTest
    │   │   │   │   │   ├── dqAdd.decTest
    │   │   │   │   │   ├── dqAnd.decTest
    │   │   │   │   │   ├── dqBase.decTest
    │   │   │   │   │   ├── dqCanonical.decTest
    │   │   │   │   │   ├── dqClass.decTest
    │   │   │   │   │   ├── dqCompare.decTest
    │   │   │   │   │   ├── dqCompareSig.decTest
    │   │   │   │   │   ├── dqCompareTotal.decTest
    │   │   │   │   │   ├── dqCompareTotalMag.decTest
    │   │   │   │   │   ├── dqCopy.decTest
    │   │   │   │   │   ├── dqCopyAbs.decTest
    │   │   │   │   │   ├── dqCopyNegate.decTest
    │   │   │   │   │   ├── dqCopySign.decTest
    │   │   │   │   │   ├── dqDivide.decTest
    │   │   │   │   │   ├── dqDivideInt.decTest
    │   │   │   │   │   ├── dqEncode.decTest
    │   │   │   │   │   ├── dqFMA.decTest
    │   │   │   │   │   ├── dqInvert.decTest
    │   │   │   │   │   ├── dqLogB.decTest
    │   │   │   │   │   ├── dqMax.decTest
    │   │   │   │   │   ├── dqMaxMag.decTest
    │   │   │   │   │   ├── dqMin.decTest
    │   │   │   │   │   ├── dqMinMag.decTest
    │   │   │   │   │   ├── dqMinus.decTest
    │   │   │   │   │   ├── dqMultiply.decTest
    │   │   │   │   │   ├── dqNextMinus.decTest
    │   │   │   │   │   ├── dqNextPlus.decTest
    │   │   │   │   │   ├── dqNextToward.decTest
    │   │   │   │   │   ├── dqOr.decTest
    │   │   │   │   │   ├── dqPlus.decTest
    │   │   │   │   │   ├── dqQuantize.decTest
    │   │   │   │   │   ├── dqReduce.decTest
    │   │   │   │   │   ├── dqRemainder.decTest
    │   │   │   │   │   ├── dqRemainderNear.decTest
    │   │   │   │   │   ├── dqRotate.decTest
    │   │   │   │   │   ├── dqSameQuantum.decTest
    │   │   │   │   │   ├── dqScaleB.decTest
    │   │   │   │   │   ├── dqShift.decTest
    │   │   │   │   │   ├── dqSubtract.decTest
    │   │   │   │   │   ├── dqToIntegral.decTest
    │   │   │   │   │   ├── dqXor.decTest
    │   │   │   │   │   ├── dsBase.decTest
    │   │   │   │   │   ├── dsEncode.decTest
    │   │   │   │   │   ├── exp.decTest
    │   │   │   │   │   ├── extra.decTest
    │   │   │   │   │   ├── fma.decTest
    │   │   │   │   │   ├── inexact.decTest
    │   │   │   │   │   ├── invert.decTest
    │   │   │   │   │   ├── ln.decTest
    │   │   │   │   │   ├── log10.decTest
    │   │   │   │   │   ├── logb.decTest
    │   │   │   │   │   ├── max.decTest
    │   │   │   │   │   ├── maxmag.decTest
    │   │   │   │   │   ├── min.decTest
    │   │   │   │   │   ├── minmag.decTest
    │   │   │   │   │   ├── minus.decTest
    │   │   │   │   │   ├── multiply.decTest
    │   │   │   │   │   ├── nextminus.decTest
    │   │   │   │   │   ├── nextplus.decTest
    │   │   │   │   │   ├── nexttoward.decTest
    │   │   │   │   │   ├── or.decTest
    │   │   │   │   │   ├── plus.decTest
    │   │   │   │   │   ├── power.decTest
    │   │   │   │   │   ├── powersqrt.decTest
    │   │   │   │   │   ├── quantize.decTest
    │   │   │   │   │   ├── randomBound32.decTest
    │   │   │   │   │   ├── randoms.decTest
    │   │   │   │   │   ├── reduce.decTest
    │   │   │   │   │   ├── remainder.decTest
    │   │   │   │   │   ├── remainderNear.decTest
    │   │   │   │   │   ├── rescale.decTest
    │   │   │   │   │   ├── rotate.decTest
    │   │   │   │   │   ├── rounding.decTest
    │   │   │   │   │   ├── samequantum.decTest
    │   │   │   │   │   ├── scaleb.decTest
    │   │   │   │   │   ├── shift.decTest
    │   │   │   │   │   ├── squareroot.decTest
    │   │   │   │   │   ├── subtract.decTest
    │   │   │   │   │   ├── testall.decTest
    │   │   │   │   │   ├── tointegral.decTest
    │   │   │   │   │   ├── tointegralx.decTest
    │   │   │   │   │   └── xor.decTest
    │   │   │   │   ├── leakers/
    │   │   │   │   │   ├── README.txt
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── test_ctypes.py
    │   │   │   │   │   ├── test_dictself.py
    │   │   │   │   │   ├── test_gestalt.py
    │   │   │   │   │   └── test_selftype.py
    │   │   │   │   ├── subprocessdata/
    │   │   │   │   │   └── sigchild_ignore.py
    │   │   │   │   ├── tracedmodules/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── testmod.py
    │   │   │   │   └── xmltestdata/
    │   │   │   │       ├── simple-ns.xml
    │   │   │   │       ├── simple.xml
    │   │   │   │       ├── test.xml
    │   │   │   │       └── test.xml.out
    │   │   │   ├── textwrap.py
    │   │   │   ├── this.py
    │   │   │   ├── threading.py
    │   │   │   ├── timeit.py
    │   │   │   ├── toaiff.py
    │   │   │   ├── token.py
    │   │   │   ├── tokenize.py
    │   │   │   ├── trace.py
    │   │   │   ├── traceback.py
    │   │   │   ├── tty.py
    │   │   │   ├── types.py
    │   │   │   ├── unittest/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── __main__.py
    │   │   │   │   ├── case.py
    │   │   │   │   ├── loader.py
    │   │   │   │   ├── main.py
    │   │   │   │   ├── result.py
    │   │   │   │   ├── runner.py
    │   │   │   │   ├── signals.py
    │   │   │   │   ├── suite.py
    │   │   │   │   └── util.py
    │   │   │   ├── urllib.py
    │   │   │   ├── urllib2.py
    │   │   │   ├── urlparse.py
    │   │   │   ├── user.py
    │   │   │   ├── uu.py
    │   │   │   ├── uuid.py
    │   │   │   ├── warnings.py
    │   │   │   ├── wave.py
    │   │   │   ├── weakref.py
    │   │   │   ├── webbrowser.py
    │   │   │   ├── whichdb.py
    │   │   │   ├── wsgiref/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── handlers.py
    │   │   │   │   ├── headers.py
    │   │   │   │   ├── simple_server.py
    │   │   │   │   ├── util.py
    │   │   │   │   └── validate.py
    │   │   │   ├── xdrlib.py
    │   │   │   ├── xml/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── dom/
    │   │   │   │   │   ├── NodeFilter.py
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── domreg.py
    │   │   │   │   │   ├── expatbuilder.py
    │   │   │   │   │   ├── minicompat.py
    │   │   │   │   │   ├── minidom.py
    │   │   │   │   │   ├── pulldom.py
    │   │   │   │   │   └── xmlbuilder.py
    │   │   │   │   ├── etree/
    │   │   │   │   │   ├── ElementInclude.py
    │   │   │   │   │   ├── ElementPath.py
    │   │   │   │   │   ├── ElementTree.py
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── cElementTree.py
    │   │   │   │   ├── parsers/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── expat.py
    │   │   │   │   └── sax/
    │   │   │   │       ├── __init__.py
    │   │   │   │       ├── _exceptions.py
    │   │   │   │       ├── expatreader.py
    │   │   │   │       ├── handler.py
    │   │   │   │       ├── saxutils.py
    │   │   │   │       └── xmlreader.py
    │   │   │   ├── xmllib.py
    │   │   │   ├── xmlrpclib.py
    │   │   │   └── zipfile.py
    │   │   ├── NEWS.txt
    │   │   ├── README.txt
    │   │   ├── include/
    │   │   │   ├── Python-ast.h
    │   │   │   ├── Python.h
    │   │   │   ├── abstract.h
    │   │   │   ├── asdl.h
    │   │   │   ├── ast.h
    │   │   │   ├── bitset.h
    │   │   │   ├── boolobject.h
    │   │   │   ├── bufferobject.h
    │   │   │   ├── bytearrayobject.h
    │   │   │   ├── bytes_methods.h
    │   │   │   ├── bytesobject.h
    │   │   │   ├── cStringIO.h
    │   │   │   ├── cellobject.h
    │   │   │   ├── ceval.h
    │   │   │   ├── classobject.h
    │   │   │   ├── cobject.h
    │   │   │   ├── code.h
    │   │   │   ├── codecs.h
    │   │   │   ├── compile.h
    │   │   │   ├── complexobject.h
    │   │   │   ├── datetime.h
    │   │   │   ├── descrobject.h
    │   │   │   ├── dictobject.h
    │   │   │   ├── dtoa.h
    │   │   │   ├── enumobject.h
    │   │   │   ├── errcode.h
    │   │   │   ├── eval.h
    │   │   │   ├── fileobject.h
    │   │   │   ├── floatobject.h
    │   │   │   ├── frameobject.h
    │   │   │   ├── funcobject.h
    │   │   │   ├── genobject.h
    │   │   │   ├── graminit.h
    │   │   │   ├── grammar.h
    │   │   │   ├── import.h
    │   │   │   ├── intobject.h
    │   │   │   ├── intrcheck.h
    │   │   │   ├── iterobject.h
    │   │   │   ├── listobject.h
    │   │   │   ├── longintrepr.h
    │   │   │   ├── longobject.h
    │   │   │   ├── marshal.h
    │   │   │   ├── memoryobject.h
    │   │   │   ├── metagrammar.h
    │   │   │   ├── methodobject.h
    │   │   │   ├── modsupport.h
    │   │   │   ├── moduleobject.h
    │   │   │   ├── node.h
    │   │   │   ├── object.h
    │   │   │   ├── objimpl.h
    │   │   │   ├── opcode.h
    │   │   │   ├── osdefs.h
    │   │   │   ├── parsetok.h
    │   │   │   ├── patchlevel.h
    │   │   │   ├── pgen.h
    │   │   │   ├── pgenheaders.h
    │   │   │   ├── py_curses.h
    │   │   │   ├── pyarena.h
    │   │   │   ├── pycapsule.h
    │   │   │   ├── pyconfig.h
    │   │   │   ├── pyctype.h
    │   │   │   ├── pydebug.h
    │   │   │   ├── pyerrors.h
    │   │   │   ├── pyexpat.h
    │   │   │   ├── pyfpe.h
    │   │   │   ├── pygetopt.h
    │   │   │   ├── pymacconfig.h
    │   │   │   ├── pymactoolbox.h
    │   │   │   ├── pymath.h
    │   │   │   ├── pymem.h
    │   │   │   ├── pyport.h
    │   │   │   ├── pystate.h
    │   │   │   ├── pystrcmp.h
    │   │   │   ├── pystrtod.h
    │   │   │   ├── pythonrun.h
    │   │   │   ├── pythread.h
    │   │   │   ├── rangeobject.h
    │   │   │   ├── setobject.h
    │   │   │   ├── sliceobject.h
    │   │   │   ├── stringobject.h
    │   │   │   ├── structmember.h
    │   │   │   ├── structseq.h
    │   │   │   ├── symtable.h
    │   │   │   ├── sysmodule.h
    │   │   │   ├── timefuncs.h
    │   │   │   ├── token.h
    │   │   │   ├── traceback.h
    │   │   │   ├── tupleobject.h
    │   │   │   ├── ucnhash.h
    │   │   │   ├── unicodeobject.h
    │   │   │   ├── warnings.h
    │   │   │   └── weakrefobject.h
    │   │   └── libs/
    │   │       └── libpython27.a
    │   ├── win32-py32/
    │   │   ├── DLLs/
    │   │   │   ├── _ctypes.pyd
    │   │   │   ├── _ctypes_test.pyd
    │   │   │   ├── _elementtree.pyd
    │   │   │   ├── _hashlib.pyd
    │   │   │   ├── _msi.pyd
    │   │   │   ├── _multiprocessing.pyd
    │   │   │   ├── _socket.pyd
    │   │   │   ├── _sqlite3.pyd
    │   │   │   ├── _ssl.pyd
    │   │   │   ├── _testcapi.pyd
    │   │   │   ├── bz2.pyd
    │   │   │   ├── pyexpat.pyd
    │   │   │   ├── select.pyd
    │   │   │   ├── unicodedata.pyd
    │   │   │   └── winsound.pyd
    │   │   ├── LICENSE.txt
    │   │   ├── Lib/
    │   │   │   ├── __future__.py
    │   │   │   ├── __phello__.foo.py
    │   │   │   ├── _abcoll.py
    │   │   │   ├── _compat_pickle.py
    │   │   │   ├── _dummy_thread.py
    │   │   │   ├── _markupbase.py
    │   │   │   ├── _osx_support.py
    │   │   │   ├── _pyio.py
    │   │   │   ├── _strptime.py
    │   │   │   ├── _threading_local.py
    │   │   │   ├── _weakrefset.py
    │   │   │   ├── abc.py
    │   │   │   ├── aifc.py
    │   │   │   ├── antigravity.py
    │   │   │   ├── argparse.py
    │   │   │   ├── ast.py
    │   │   │   ├── asynchat.py
    │   │   │   ├── asyncore.py
    │   │   │   ├── base64.py
    │   │   │   ├── bdb.py
    │   │   │   ├── binhex.py
    │   │   │   ├── bisect.py
    │   │   │   ├── cProfile.py
    │   │   │   ├── calendar.py
    │   │   │   ├── cgi.py
    │   │   │   ├── cgitb.py
    │   │   │   ├── chunk.py
    │   │   │   ├── cmd.py
    │   │   │   ├── code.py
    │   │   │   ├── codecs.py
    │   │   │   ├── codeop.py
    │   │   │   ├── collections.py
    │   │   │   ├── colorsys.py
    │   │   │   ├── compileall.py
    │   │   │   ├── concurrent/
    │   │   │   │   ├── __init__.py
    │   │   │   │   └── futures/
    │   │   │   │       ├── __init__.py
    │   │   │   │       ├── _base.py
    │   │   │   │       ├── process.py
    │   │   │   │       └── thread.py
    │   │   │   ├── configparser.py
    │   │   │   ├── contextlib.py
    │   │   │   ├── copy.py
    │   │   │   ├── copyreg.py
    │   │   │   ├── csv.py
    │   │   │   ├── ctypes/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _endian.py
    │   │   │   │   ├── macholib/
    │   │   │   │   │   ├── README.ctypes
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── dyld.py
    │   │   │   │   │   ├── dylib.py
    │   │   │   │   │   ├── fetch_macholib
    │   │   │   │   │   ├── fetch_macholib.bat
    │   │   │   │   │   └── framework.py
    │   │   │   │   ├── util.py
    │   │   │   │   └── wintypes.py
    │   │   │   ├── curses/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── ascii.py
    │   │   │   │   ├── has_key.py
    │   │   │   │   ├── panel.py
    │   │   │   │   ├── textpad.py
    │   │   │   │   └── wrapper.py
    │   │   │   ├── datetime.py
    │   │   │   ├── dbm/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── dumb.py
    │   │   │   │   ├── gnu.py
    │   │   │   │   └── ndbm.py
    │   │   │   ├── decimal.py
    │   │   │   ├── difflib.py
    │   │   │   ├── dis.py
    │   │   │   ├── distutils/
    │   │   │   │   ├── README
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── archive_util.py
    │   │   │   │   ├── bcppcompiler.py
    │   │   │   │   ├── ccompiler.py
    │   │   │   │   ├── cmd.py
    │   │   │   │   ├── command/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── bdist.py
    │   │   │   │   │   ├── bdist_dumb.py
    │   │   │   │   │   ├── bdist_msi.py
    │   │   │   │   │   ├── bdist_rpm.py
    │   │   │   │   │   ├── bdist_wininst.py
    │   │   │   │   │   ├── build.py
    │   │   │   │   │   ├── build_clib.py
    │   │   │   │   │   ├── build_ext.py
    │   │   │   │   │   ├── build_py.py
    │   │   │   │   │   ├── build_scripts.py
    │   │   │   │   │   ├── check.py
    │   │   │   │   │   ├── clean.py
    │   │   │   │   │   ├── command_template
    │   │   │   │   │   ├── config.py
    │   │   │   │   │   ├── install.py
    │   │   │   │   │   ├── install_data.py
    │   │   │   │   │   ├── install_egg_info.py
    │   │   │   │   │   ├── install_headers.py
    │   │   │   │   │   ├── install_lib.py
    │   │   │   │   │   ├── install_scripts.py
    │   │   │   │   │   ├── register.py
    │   │   │   │   │   ├── sdist.py
    │   │   │   │   │   └── upload.py
    │   │   │   │   ├── config.py
    │   │   │   │   ├── core.py
    │   │   │   │   ├── cygwinccompiler.py
    │   │   │   │   ├── debug.py
    │   │   │   │   ├── dep_util.py
    │   │   │   │   ├── dir_util.py
    │   │   │   │   ├── dist.py
    │   │   │   │   ├── emxccompiler.py
    │   │   │   │   ├── errors.py
    │   │   │   │   ├── extension.py
    │   │   │   │   ├── fancy_getopt.py
    │   │   │   │   ├── file_util.py
    │   │   │   │   ├── filelist.py
    │   │   │   │   ├── log.py
    │   │   │   │   ├── msvc9compiler.py
    │   │   │   │   ├── msvccompiler.py
    │   │   │   │   ├── spawn.py
    │   │   │   │   ├── sysconfig.py
    │   │   │   │   ├── text_file.py
    │   │   │   │   ├── unixccompiler.py
    │   │   │   │   ├── util.py
    │   │   │   │   ├── version.py
    │   │   │   │   └── versionpredicate.py
    │   │   │   ├── doctest.py
    │   │   │   ├── dummy_threading.py
    │   │   │   ├── email/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _parseaddr.py
    │   │   │   │   ├── base64mime.py
    │   │   │   │   ├── charset.py
    │   │   │   │   ├── encoders.py
    │   │   │   │   ├── errors.py
    │   │   │   │   ├── feedparser.py
    │   │   │   │   ├── generator.py
    │   │   │   │   ├── header.py
    │   │   │   │   ├── iterators.py
    │   │   │   │   ├── message.py
    │   │   │   │   ├── mime/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── application.py
    │   │   │   │   │   ├── audio.py
    │   │   │   │   │   ├── base.py
    │   │   │   │   │   ├── image.py
    │   │   │   │   │   ├── message.py
    │   │   │   │   │   ├── multipart.py
    │   │   │   │   │   ├── nonmultipart.py
    │   │   │   │   │   └── text.py
    │   │   │   │   ├── parser.py
    │   │   │   │   ├── quoprimime.py
    │   │   │   │   └── utils.py
    │   │   │   ├── encodings/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── aliases.py
    │   │   │   │   ├── ascii.py
    │   │   │   │   ├── base64_codec.py
    │   │   │   │   ├── big5.py
    │   │   │   │   ├── big5hkscs.py
    │   │   │   │   ├── bz2_codec.py
    │   │   │   │   ├── charmap.py
    │   │   │   │   ├── cp037.py
    │   │   │   │   ├── cp1006.py
    │   │   │   │   ├── cp1026.py
    │   │   │   │   ├── cp1140.py
    │   │   │   │   ├── cp1250.py
    │   │   │   │   ├── cp1251.py
    │   │   │   │   ├── cp1252.py
    │   │   │   │   ├── cp1253.py
    │   │   │   │   ├── cp1254.py
    │   │   │   │   ├── cp1255.py
    │   │   │   │   ├── cp1256.py
    │   │   │   │   ├── cp1257.py
    │   │   │   │   ├── cp1258.py
    │   │   │   │   ├── cp424.py
    │   │   │   │   ├── cp437.py
    │   │   │   │   ├── cp500.py
    │   │   │   │   ├── cp720.py
    │   │   │   │   ├── cp737.py
    │   │   │   │   ├── cp775.py
    │   │   │   │   ├── cp850.py
    │   │   │   │   ├── cp852.py
    │   │   │   │   ├── cp855.py
    │   │   │   │   ├── cp856.py
    │   │   │   │   ├── cp857.py
    │   │   │   │   ├── cp858.py
    │   │   │   │   ├── cp860.py
    │   │   │   │   ├── cp861.py
    │   │   │   │   ├── cp862.py
    │   │   │   │   ├── cp863.py
    │   │   │   │   ├── cp864.py
    │   │   │   │   ├── cp865.py
    │   │   │   │   ├── cp866.py
    │   │   │   │   ├── cp869.py
    │   │   │   │   ├── cp874.py
    │   │   │   │   ├── cp875.py
    │   │   │   │   ├── cp932.py
    │   │   │   │   ├── cp949.py
    │   │   │   │   ├── cp950.py
    │   │   │   │   ├── euc_jis_2004.py
    │   │   │   │   ├── euc_jisx0213.py
    │   │   │   │   ├── euc_jp.py
    │   │   │   │   ├── euc_kr.py
    │   │   │   │   ├── gb18030.py
    │   │   │   │   ├── gb2312.py
    │   │   │   │   ├── gbk.py
    │   │   │   │   ├── hex_codec.py
    │   │   │   │   ├── hp_roman8.py
    │   │   │   │   ├── hz.py
    │   │   │   │   ├── idna.py
    │   │   │   │   ├── iso2022_jp.py
    │   │   │   │   ├── iso2022_jp_1.py
    │   │   │   │   ├── iso2022_jp_2.py
    │   │   │   │   ├── iso2022_jp_2004.py
    │   │   │   │   ├── iso2022_jp_3.py
    │   │   │   │   ├── iso2022_jp_ext.py
    │   │   │   │   ├── iso2022_kr.py
    │   │   │   │   ├── iso8859_1.py
    │   │   │   │   ├── iso8859_10.py
    │   │   │   │   ├── iso8859_11.py
    │   │   │   │   ├── iso8859_13.py
    │   │   │   │   ├── iso8859_14.py
    │   │   │   │   ├── iso8859_15.py
    │   │   │   │   ├── iso8859_16.py
    │   │   │   │   ├── iso8859_2.py
    │   │   │   │   ├── iso8859_3.py
    │   │   │   │   ├── iso8859_4.py
    │   │   │   │   ├── iso8859_5.py
    │   │   │   │   ├── iso8859_6.py
    │   │   │   │   ├── iso8859_7.py
    │   │   │   │   ├── iso8859_8.py
    │   │   │   │   ├── iso8859_9.py
    │   │   │   │   ├── johab.py
    │   │   │   │   ├── koi8_r.py
    │   │   │   │   ├── koi8_u.py
    │   │   │   │   ├── latin_1.py
    │   │   │   │   ├── mac_arabic.py
    │   │   │   │   ├── mac_centeuro.py
    │   │   │   │   ├── mac_croatian.py
    │   │   │   │   ├── mac_cyrillic.py
    │   │   │   │   ├── mac_farsi.py
    │   │   │   │   ├── mac_greek.py
    │   │   │   │   ├── mac_iceland.py
    │   │   │   │   ├── mac_latin2.py
    │   │   │   │   ├── mac_roman.py
    │   │   │   │   ├── mac_romanian.py
    │   │   │   │   ├── mac_turkish.py
    │   │   │   │   ├── mbcs.py
    │   │   │   │   ├── palmos.py
    │   │   │   │   ├── ptcp154.py
    │   │   │   │   ├── punycode.py
    │   │   │   │   ├── quopri_codec.py
    │   │   │   │   ├── raw_unicode_escape.py
    │   │   │   │   ├── rot_13.py
    │   │   │   │   ├── shift_jis.py
    │   │   │   │   ├── shift_jis_2004.py
    │   │   │   │   ├── shift_jisx0213.py
    │   │   │   │   ├── tis_620.py
    │   │   │   │   ├── undefined.py
    │   │   │   │   ├── unicode_escape.py
    │   │   │   │   ├── unicode_internal.py
    │   │   │   │   ├── utf_16.py
    │   │   │   │   ├── utf_16_be.py
    │   │   │   │   ├── utf_16_le.py
    │   │   │   │   ├── utf_32.py
    │   │   │   │   ├── utf_32_be.py
    │   │   │   │   ├── utf_32_le.py
    │   │   │   │   ├── utf_7.py
    │   │   │   │   ├── utf_8.py
    │   │   │   │   ├── utf_8_sig.py
    │   │   │   │   ├── uu_codec.py
    │   │   │   │   └── zlib_codec.py
    │   │   │   ├── filecmp.py
    │   │   │   ├── fileinput.py
    │   │   │   ├── fnmatch.py
    │   │   │   ├── formatter.py
    │   │   │   ├── fractions.py
    │   │   │   ├── ftplib.py
    │   │   │   ├── functools.py
    │   │   │   ├── genericpath.py
    │   │   │   ├── getopt.py
    │   │   │   ├── getpass.py
    │   │   │   ├── gettext.py
    │   │   │   ├── glob.py
    │   │   │   ├── gzip.py
    │   │   │   ├── hashlib.py
    │   │   │   ├── heapq.py
    │   │   │   ├── hmac.py
    │   │   │   ├── html/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── entities.py
    │   │   │   │   └── parser.py
    │   │   │   ├── http/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── client.py
    │   │   │   │   ├── cookiejar.py
    │   │   │   │   ├── cookies.py
    │   │   │   │   └── server.py
    │   │   │   ├── imaplib.py
    │   │   │   ├── imghdr.py
    │   │   │   ├── importlib/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _bootstrap.py
    │   │   │   │   ├── abc.py
    │   │   │   │   ├── machinery.py
    │   │   │   │   ├── test/
    │   │   │   │   │   ├── builtin/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── test_finder.py
    │   │   │   │   │   │   ├── test_loader.py
    │   │   │   │   │   │   └── util.py
    │   │   │   │   │   ├── extension/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── test_case_sensitivity.py
    │   │   │   │   │   │   ├── test_finder.py
    │   │   │   │   │   │   ├── test_loader.py
    │   │   │   │   │   │   ├── test_path_hook.py
    │   │   │   │   │   │   └── util.py
    │   │   │   │   │   ├── frozen/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── test_finder.py
    │   │   │   │   │   │   └── test_loader.py
    │   │   │   │   │   ├── import_/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── test___package__.py
    │   │   │   │   │   │   ├── test_api.py
    │   │   │   │   │   │   ├── test_caching.py
    │   │   │   │   │   │   ├── test_fromlist.py
    │   │   │   │   │   │   ├── test_meta_path.py
    │   │   │   │   │   │   ├── test_packages.py
    │   │   │   │   │   │   ├── test_path.py
    │   │   │   │   │   │   ├── test_relative_imports.py
    │   │   │   │   │   │   └── util.py
    │   │   │   │   │   └── source/
    │   │   │   │   │       ├── __init__.py
    │   │   │   │   │       ├── test_abc_loader.py
    │   │   │   │   │       ├── test_case_sensitivity.py
    │   │   │   │   │       ├── test_file_loader.py
    │   │   │   │   │       ├── test_finder.py
    │   │   │   │   │       ├── test_path_hook.py
    │   │   │   │   │       ├── test_source_encoding.py
    │   │   │   │   │       └── util.py
    │   │   │   │   └── util.py
    │   │   │   ├── inspect.py
    │   │   │   ├── io.py
    │   │   │   ├── json/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── decoder.py
    │   │   │   │   ├── encoder.py
    │   │   │   │   ├── scanner.py
    │   │   │   │   └── tool.py
    │   │   │   ├── keyword.py
    │   │   │   ├── lib2to3/
    │   │   │   │   ├── Grammar.txt
    │   │   │   │   ├── Grammar3.2.5.final.0.pickle
    │   │   │   │   ├── PatternGrammar.txt
    │   │   │   │   ├── PatternGrammar3.2.5.final.0.pickle
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── btm_matcher.py
    │   │   │   │   ├── btm_utils.py
    │   │   │   │   ├── fixer_base.py
    │   │   │   │   ├── fixer_util.py
    │   │   │   │   ├── fixes/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── fix_apply.py
    │   │   │   │   │   ├── fix_basestring.py
    │   │   │   │   │   ├── fix_buffer.py
    │   │   │   │   │   ├── fix_callable.py
    │   │   │   │   │   ├── fix_dict.py
    │   │   │   │   │   ├── fix_except.py
    │   │   │   │   │   ├── fix_exec.py
    │   │   │   │   │   ├── fix_execfile.py
    │   │   │   │   │   ├── fix_exitfunc.py
    │   │   │   │   │   ├── fix_filter.py
    │   │   │   │   │   ├── fix_funcattrs.py
    │   │   │   │   │   ├── fix_future.py
    │   │   │   │   │   ├── fix_getcwdu.py
    │   │   │   │   │   ├── fix_has_key.py
    │   │   │   │   │   ├── fix_idioms.py
    │   │   │   │   │   ├── fix_import.py
    │   │   │   │   │   ├── fix_imports.py
    │   │   │   │   │   ├── fix_imports2.py
    │   │   │   │   │   ├── fix_input.py
    │   │   │   │   │   ├── fix_intern.py
    │   │   │   │   │   ├── fix_isinstance.py
    │   │   │   │   │   ├── fix_itertools.py
    │   │   │   │   │   ├── fix_itertools_imports.py
    │   │   │   │   │   ├── fix_long.py
    │   │   │   │   │   ├── fix_map.py
    │   │   │   │   │   ├── fix_metaclass.py
    │   │   │   │   │   ├── fix_methodattrs.py
    │   │   │   │   │   ├── fix_ne.py
    │   │   │   │   │   ├── fix_next.py
    │   │   │   │   │   ├── fix_nonzero.py
    │   │   │   │   │   ├── fix_numliterals.py
    │   │   │   │   │   ├── fix_operator.py
    │   │   │   │   │   ├── fix_paren.py
    │   │   │   │   │   ├── fix_print.py
    │   │   │   │   │   ├── fix_raise.py
    │   │   │   │   │   ├── fix_raw_input.py
    │   │   │   │   │   ├── fix_reduce.py
    │   │   │   │   │   ├── fix_renames.py
    │   │   │   │   │   ├── fix_repr.py
    │   │   │   │   │   ├── fix_set_literal.py
    │   │   │   │   │   ├── fix_standarderror.py
    │   │   │   │   │   ├── fix_sys_exc.py
    │   │   │   │   │   ├── fix_throw.py
    │   │   │   │   │   ├── fix_tuple_params.py
    │   │   │   │   │   ├── fix_types.py
    │   │   │   │   │   ├── fix_unicode.py
    │   │   │   │   │   ├── fix_urllib.py
    │   │   │   │   │   ├── fix_ws_comma.py
    │   │   │   │   │   ├── fix_xrange.py
    │   │   │   │   │   ├── fix_xreadlines.py
    │   │   │   │   │   └── fix_zip.py
    │   │   │   │   ├── main.py
    │   │   │   │   ├── patcomp.py
    │   │   │   │   ├── pgen2/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── conv.py
    │   │   │   │   │   ├── driver.py
    │   │   │   │   │   ├── grammar.py
    │   │   │   │   │   ├── literals.py
    │   │   │   │   │   ├── parse.py
    │   │   │   │   │   ├── pgen.py
    │   │   │   │   │   ├── token.py
    │   │   │   │   │   └── tokenize.py
    │   │   │   │   ├── pygram.py
    │   │   │   │   ├── pytree.py
    │   │   │   │   ├── refactor.py
    │   │   │   │   └── tests/
    │   │   │   │       └── data/
    │   │   │   │           └── fixers/
    │   │   │   │               ├── bad_order.py
    │   │   │   │               ├── myfixes/
    │   │   │   │               │   ├── __init__.py
    │   │   │   │               │   ├── fix_explicit.py
    │   │   │   │               │   ├── fix_first.py
    │   │   │   │               │   ├── fix_last.py
    │   │   │   │               │   ├── fix_parrot.py
    │   │   │   │               │   └── fix_preorder.py
    │   │   │   │               ├── no_fixer_cls.py
    │   │   │   │               └── parrot_example.py
    │   │   │   ├── linecache.py
    │   │   │   ├── locale.py
    │   │   │   ├── logging/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── config.py
    │   │   │   │   └── handlers.py
    │   │   │   ├── macpath.py
    │   │   │   ├── macurl2path.py
    │   │   │   ├── mailbox.py
    │   │   │   ├── mailcap.py
    │   │   │   ├── mimetypes.py
    │   │   │   ├── modulefinder.py
    │   │   │   ├── msilib/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── schema.py
    │   │   │   │   ├── sequence.py
    │   │   │   │   └── text.py
    │   │   │   ├── multiprocessing/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── connection.py
    │   │   │   │   ├── dummy/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── connection.py
    │   │   │   │   ├── forking.py
    │   │   │   │   ├── heap.py
    │   │   │   │   ├── managers.py
    │   │   │   │   ├── pool.py
    │   │   │   │   ├── process.py
    │   │   │   │   ├── queues.py
    │   │   │   │   ├── reduction.py
    │   │   │   │   ├── sharedctypes.py
    │   │   │   │   ├── synchronize.py
    │   │   │   │   └── util.py
    │   │   │   ├── netrc.py
    │   │   │   ├── nntplib.py
    │   │   │   ├── ntpath.py
    │   │   │   ├── nturl2path.py
    │   │   │   ├── numbers.py
    │   │   │   ├── opcode.py
    │   │   │   ├── optparse.py
    │   │   │   ├── os.py
    │   │   │   ├── os2emxpath.py
    │   │   │   ├── pdb.py
    │   │   │   ├── pickle.py
    │   │   │   ├── pickletools.py
    │   │   │   ├── pipes.py
    │   │   │   ├── pkgutil.py
    │   │   │   ├── platform.py
    │   │   │   ├── plistlib.py
    │   │   │   ├── poplib.py
    │   │   │   ├── posixpath.py
    │   │   │   ├── pprint.py
    │   │   │   ├── profile.py
    │   │   │   ├── pstats.py
    │   │   │   ├── pty.py
    │   │   │   ├── py_compile.py
    │   │   │   ├── pyclbr.py
    │   │   │   ├── pydoc.py
    │   │   │   ├── pydoc_data/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _pydoc.css
    │   │   │   │   └── topics.py
    │   │   │   ├── queue.py
    │   │   │   ├── quopri.py
    │   │   │   ├── random.py
    │   │   │   ├── re.py
    │   │   │   ├── reprlib.py
    │   │   │   ├── rlcompleter.py
    │   │   │   ├── runpy.py
    │   │   │   ├── sched.py
    │   │   │   ├── shelve.py
    │   │   │   ├── shlex.py
    │   │   │   ├── shutil.py
    │   │   │   ├── site-packages/
    │   │   │   │   ├── README.txt
    │   │   │   │   ├── _markerlib/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── markers.py
    │   │   │   │   ├── easy_install.py
    │   │   │   │   ├── pip/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── __main__.py
    │   │   │   │   │   ├── _vendor/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── _markerlib/
    │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   └── markers.py
    │   │   │   │   │   │   ├── colorama/
    │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   ├── ansi.py
    │   │   │   │   │   │   │   ├── ansitowin32.py
    │   │   │   │   │   │   │   ├── initialise.py
    │   │   │   │   │   │   │   ├── win32.py
    │   │   │   │   │   │   │   └── winterm.py
    │   │   │   │   │   │   ├── distlib/
    │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   ├── _backport/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   ├── misc.py
    │   │   │   │   │   │   │   │   ├── shutil.py
    │   │   │   │   │   │   │   │   ├── sysconfig.cfg
    │   │   │   │   │   │   │   │   ├── sysconfig.py
    │   │   │   │   │   │   │   │   └── tarfile.py
    │   │   │   │   │   │   │   ├── compat.py
    │   │   │   │   │   │   │   ├── database.py
    │   │   │   │   │   │   │   ├── index.py
    │   │   │   │   │   │   │   ├── locators.py
    │   │   │   │   │   │   │   ├── manifest.py
    │   │   │   │   │   │   │   ├── markers.py
    │   │   │   │   │   │   │   ├── metadata.py
    │   │   │   │   │   │   │   ├── resources.py
    │   │   │   │   │   │   │   ├── scripts.py
    │   │   │   │   │   │   │   ├── util.py
    │   │   │   │   │   │   │   ├── version.py
    │   │   │   │   │   │   │   └── wheel.py
    │   │   │   │   │   │   ├── html5lib/
    │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   ├── constants.py
    │   │   │   │   │   │   │   ├── filters/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   ├── _base.py
    │   │   │   │   │   │   │   │   ├── alphabeticalattributes.py
    │   │   │   │   │   │   │   │   ├── inject_meta_charset.py
    │   │   │   │   │   │   │   │   ├── lint.py
    │   │   │   │   │   │   │   │   ├── optionaltags.py
    │   │   │   │   │   │   │   │   ├── sanitizer.py
    │   │   │   │   │   │   │   │   └── whitespace.py
    │   │   │   │   │   │   │   ├── html5parser.py
    │   │   │   │   │   │   │   ├── ihatexml.py
    │   │   │   │   │   │   │   ├── inputstream.py
    │   │   │   │   │   │   │   ├── sanitizer.py
    │   │   │   │   │   │   │   ├── serializer/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   └── htmlserializer.py
    │   │   │   │   │   │   │   ├── tokenizer.py
    │   │   │   │   │   │   │   ├── treebuilders/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   ├── _base.py
    │   │   │   │   │   │   │   │   ├── dom.py
    │   │   │   │   │   │   │   │   ├── etree.py
    │   │   │   │   │   │   │   │   └── etree_lxml.py
    │   │   │   │   │   │   │   ├── treewalkers/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   ├── _base.py
    │   │   │   │   │   │   │   │   ├── dom.py
    │   │   │   │   │   │   │   │   ├── etree.py
    │   │   │   │   │   │   │   │   ├── genshistream.py
    │   │   │   │   │   │   │   │   ├── lxmletree.py
    │   │   │   │   │   │   │   │   └── pulldom.py
    │   │   │   │   │   │   │   ├── trie/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   ├── _base.py
    │   │   │   │   │   │   │   │   ├── datrie.py
    │   │   │   │   │   │   │   │   └── py.py
    │   │   │   │   │   │   │   └── utils.py
    │   │   │   │   │   │   ├── pkg_resources.py
    │   │   │   │   │   │   ├── re-vendor.py
    │   │   │   │   │   │   ├── requests/
    │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   ├── adapters.py
    │   │   │   │   │   │   │   ├── api.py
    │   │   │   │   │   │   │   ├── auth.py
    │   │   │   │   │   │   │   ├── cacert.pem
    │   │   │   │   │   │   │   ├── certs.py
    │   │   │   │   │   │   │   ├── compat.py
    │   │   │   │   │   │   │   ├── cookies.py
    │   │   │   │   │   │   │   ├── exceptions.py
    │   │   │   │   │   │   │   ├── hooks.py
    │   │   │   │   │   │   │   ├── models.py
    │   │   │   │   │   │   │   ├── packages/
    │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   ├── charade/
    │   │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   │   ├── __main__.py
    │   │   │   │   │   │   │   │   │   ├── big5freq.py
    │   │   │   │   │   │   │   │   │   ├── big5prober.py
    │   │   │   │   │   │   │   │   │   ├── chardistribution.py
    │   │   │   │   │   │   │   │   │   ├── charsetgroupprober.py
    │   │   │   │   │   │   │   │   │   ├── charsetprober.py
    │   │   │   │   │   │   │   │   │   ├── codingstatemachine.py
    │   │   │   │   │   │   │   │   │   ├── compat.py
    │   │   │   │   │   │   │   │   │   ├── constants.py
    │   │   │   │   │   │   │   │   │   ├── cp949prober.py
    │   │   │   │   │   │   │   │   │   ├── escprober.py
    │   │   │   │   │   │   │   │   │   ├── escsm.py
    │   │   │   │   │   │   │   │   │   ├── eucjpprober.py
    │   │   │   │   │   │   │   │   │   ├── euckrfreq.py
    │   │   │   │   │   │   │   │   │   ├── euckrprober.py
    │   │   │   │   │   │   │   │   │   ├── euctwfreq.py
    │   │   │   │   │   │   │   │   │   ├── euctwprober.py
    │   │   │   │   │   │   │   │   │   ├── gb2312freq.py
    │   │   │   │   │   │   │   │   │   ├── gb2312prober.py
    │   │   │   │   │   │   │   │   │   ├── hebrewprober.py
    │   │   │   │   │   │   │   │   │   ├── jisfreq.py
    │   │   │   │   │   │   │   │   │   ├── jpcntx.py
    │   │   │   │   │   │   │   │   │   ├── langbulgarianmodel.py
    │   │   │   │   │   │   │   │   │   ├── langcyrillicmodel.py
    │   │   │   │   │   │   │   │   │   ├── langgreekmodel.py
    │   │   │   │   │   │   │   │   │   ├── langhebrewmodel.py
    │   │   │   │   │   │   │   │   │   ├── langhungarianmodel.py
    │   │   │   │   │   │   │   │   │   ├── langthaimodel.py
    │   │   │   │   │   │   │   │   │   ├── latin1prober.py
    │   │   │   │   │   │   │   │   │   ├── mbcharsetprober.py
    │   │   │   │   │   │   │   │   │   ├── mbcsgroupprober.py
    │   │   │   │   │   │   │   │   │   ├── mbcssm.py
    │   │   │   │   │   │   │   │   │   ├── sbcharsetprober.py
    │   │   │   │   │   │   │   │   │   ├── sbcsgroupprober.py
    │   │   │   │   │   │   │   │   │   ├── sjisprober.py
    │   │   │   │   │   │   │   │   │   ├── universaldetector.py
    │   │   │   │   │   │   │   │   │   └── utf8prober.py
    │   │   │   │   │   │   │   │   ├── chardet/
    │   │   │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   │   │   ├── big5freq.py
    │   │   │   │   │   │   │   │   │   ├── big5prober.py
    │   │   │   │   │   │   │   │   │   ├── chardetect.py
    │   │   │   │   │   │   │   │   │   ├── chardistribution.py
    │   │   │   │   │   │   │   │   │   ├── charsetgroupprober.py
    │   │   │   │   │   │   │   │   │   ├── charsetprober.py
    │   │   │   │   │   │   │   │   │   ├── codingstatemachine.py
    │   │   │   │   │   │   │   │   │   ├── compat.py
    │   │   │   │   │   │   │   │   │   ├── constants.py
    │   │   │   │   │   │   │   │   │   ├── cp949prober.py
    │   │   │   │   │   │   │   │   │   ├── escprober.py
    │   │   │   │   │   │   │   │   │   ├── escsm.py
    │   │   │   │   │   │   │   │   │   ├── eucjpprober.py
    │   │   │   │   │   │   │   │   │   ├── euckrfreq.py
    │   │   │   │   │   │   │   │   │   ├── euckrprober.py
    │   │   │   │   │   │   │   │   │   ├── euctwfreq.py
    │   │   │   │   │   │   │   │   │   ├── euctwprober.py
    │   │   │   │   │   │   │   │   │   ├── gb2312freq.py
    │   │   │   │   │   │   │   │   │   ├── gb2312prober.py
    │   │   │   │   │   │   │   │   │   ├── hebrewprober.py
    │   │   │   │   │   │   │   │   │   ├── jisfreq.py
    │   │   │   │   │   │   │   │   │   ├── jpcntx.py
    │   │   │   │   │   │   │   │   │   ├── langbulgarianmodel.py
    │   │   │   │   │   │   │   │   │   ├── langcyrillicmodel.py
    │   │   │   │   │   │   │   │   │   ├── langgreekmodel.py
    │   │   │   │   │   │   │   │   │   ├── langhebrewmodel.py
    │   │   │   │   │   │   │   │   │   ├── langhungarianmodel.py
    │   │   │   │   │   │   │   │   │   ├── langthaimodel.py
    │   │   │   │   │   │   │   │   │   ├── latin1prober.py
    │   │   │   │   │   │   │   │   │   ├── mbcharsetprober.py
    │   │   │   │   │   │   │   │   │   ├── mbcsgroupprober.py
    │   │   │   │   │   │   │   │   │   ├── mbcssm.py
    │   │   │   │   │   │   │   │   │   ├── sbcharsetprober.py
    │   │   │   │   │   │   │   │   │   ├── sbcsgroupprober.py
    │   │   │   │   │   │   │   │   │   ├── sjisprober.py
    │   │   │   │   │   │   │   │   │   ├── universaldetector.py
    │   │   │   │   │   │   │   │   │   └── utf8prober.py
    │   │   │   │   │   │   │   │   └── urllib3/
    │   │   │   │   │   │   │   │       ├── __init__.py
    │   │   │   │   │   │   │   │       ├── _collections.py
    │   │   │   │   │   │   │   │       ├── connection.py
    │   │   │   │   │   │   │   │       ├── connectionpool.py
    │   │   │   │   │   │   │   │       ├── contrib/
    │   │   │   │   │   │   │   │       │   ├── __init__.py
    │   │   │   │   │   │   │   │       │   ├── ntlmpool.py
    │   │   │   │   │   │   │   │       │   └── pyopenssl.py
    │   │   │   │   │   │   │   │       ├── exceptions.py
    │   │   │   │   │   │   │   │       ├── fields.py
    │   │   │   │   │   │   │   │       ├── filepost.py
    │   │   │   │   │   │   │   │       ├── packages/
    │   │   │   │   │   │   │   │       │   ├── __init__.py
    │   │   │   │   │   │   │   │       │   ├── ordered_dict.py
    │   │   │   │   │   │   │   │       │   ├── six.py
    │   │   │   │   │   │   │   │       │   └── ssl_match_hostname/
    │   │   │   │   │   │   │   │       │       ├── __init__.py
    │   │   │   │   │   │   │   │       │       └── _implementation.py
    │   │   │   │   │   │   │   │       ├── poolmanager.py
    │   │   │   │   │   │   │   │       ├── request.py
    │   │   │   │   │   │   │   │       ├── response.py
    │   │   │   │   │   │   │   │       └── util.py
    │   │   │   │   │   │   │   ├── sessions.py
    │   │   │   │   │   │   │   ├── status_codes.py
    │   │   │   │   │   │   │   ├── structures.py
    │   │   │   │   │   │   │   └── utils.py
    │   │   │   │   │   │   └── six.py
    │   │   │   │   │   ├── backwardcompat/
    │   │   │   │   │   │   └── __init__.py
    │   │   │   │   │   ├── basecommand.py
    │   │   │   │   │   ├── baseparser.py
    │   │   │   │   │   ├── cmdoptions.py
    │   │   │   │   │   ├── commands/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── bundle.py
    │   │   │   │   │   │   ├── completion.py
    │   │   │   │   │   │   ├── freeze.py
    │   │   │   │   │   │   ├── help.py
    │   │   │   │   │   │   ├── install.py
    │   │   │   │   │   │   ├── list.py
    │   │   │   │   │   │   ├── search.py
    │   │   │   │   │   │   ├── show.py
    │   │   │   │   │   │   ├── uninstall.py
    │   │   │   │   │   │   ├── unzip.py
    │   │   │   │   │   │   ├── wheel.py
    │   │   │   │   │   │   └── zip.py
    │   │   │   │   │   ├── download.py
    │   │   │   │   │   ├── exceptions.py
    │   │   │   │   │   ├── index.py
    │   │   │   │   │   ├── locations.py
    │   │   │   │   │   ├── log.py
    │   │   │   │   │   ├── pep425tags.py
    │   │   │   │   │   ├── req.py
    │   │   │   │   │   ├── runner.py
    │   │   │   │   │   ├── status_codes.py
    │   │   │   │   │   ├── util.py
    │   │   │   │   │   ├── vcs/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── bazaar.py
    │   │   │   │   │   │   ├── git.py
    │   │   │   │   │   │   ├── mercurial.py
    │   │   │   │   │   │   └── subversion.py
    │   │   │   │   │   └── wheel.py
    │   │   │   │   ├── pip-1.5.4.dist-info/
    │   │   │   │   │   ├── DESCRIPTION.rst
    │   │   │   │   │   ├── METADATA
    │   │   │   │   │   ├── RECORD
    │   │   │   │   │   ├── WHEEL
    │   │   │   │   │   ├── entry_points.txt
    │   │   │   │   │   ├── pydist.json
    │   │   │   │   │   └── top_level.txt
    │   │   │   │   ├── pkg_resources.py
    │   │   │   │   ├── setuptools/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── archive_util.py
    │   │   │   │   │   ├── command/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── alias.py
    │   │   │   │   │   │   ├── bdist_egg.py
    │   │   │   │   │   │   ├── bdist_rpm.py
    │   │   │   │   │   │   ├── bdist_wininst.py
    │   │   │   │   │   │   ├── build_ext.py
    │   │   │   │   │   │   ├── build_py.py
    │   │   │   │   │   │   ├── develop.py
    │   │   │   │   │   │   ├── easy_install.py
    │   │   │   │   │   │   ├── egg_info.py
    │   │   │   │   │   │   ├── install.py
    │   │   │   │   │   │   ├── install_egg_info.py
    │   │   │   │   │   │   ├── install_lib.py
    │   │   │   │   │   │   ├── install_scripts.py
    │   │   │   │   │   │   ├── launcher manifest.xml
    │   │   │   │   │   │   ├── register.py
    │   │   │   │   │   │   ├── rotate.py
    │   │   │   │   │   │   ├── saveopts.py
    │   │   │   │   │   │   ├── sdist.py
    │   │   │   │   │   │   ├── setopt.py
    │   │   │   │   │   │   ├── test.py
    │   │   │   │   │   │   └── upload_docs.py
    │   │   │   │   │   ├── compat.py
    │   │   │   │   │   ├── depends.py
    │   │   │   │   │   ├── dist.py
    │   │   │   │   │   ├── extension.py
    │   │   │   │   │   ├── lib2to3_ex.py
    │   │   │   │   │   ├── package_index.py
    │   │   │   │   │   ├── py26compat.py
    │   │   │   │   │   ├── py27compat.py
    │   │   │   │   │   ├── py31compat.py
    │   │   │   │   │   ├── sandbox.py
    │   │   │   │   │   ├── script template (dev).py
    │   │   │   │   │   ├── script template.py
    │   │   │   │   │   ├── site-patch.py
    │   │   │   │   │   ├── ssl_support.py
    │   │   │   │   │   ├── svn_utils.py
    │   │   │   │   │   ├── tests/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── doctest.py
    │   │   │   │   │   │   ├── environment.py
    │   │   │   │   │   │   ├── py26compat.py
    │   │   │   │   │   │   ├── script-with-bom.py
    │   │   │   │   │   │   ├── server.py
    │   │   │   │   │   │   ├── test_bdist_egg.py
    │   │   │   │   │   │   ├── test_build_ext.py
    │   │   │   │   │   │   ├── test_develop.py
    │   │   │   │   │   │   ├── test_dist_info.py
    │   │   │   │   │   │   ├── test_easy_install.py
    │   │   │   │   │   │   ├── test_egg_info.py
    │   │   │   │   │   │   ├── test_find_packages.py
    │   │   │   │   │   │   ├── test_markerlib.py
    │   │   │   │   │   │   ├── test_packageindex.py
    │   │   │   │   │   │   ├── test_resources.py
    │   │   │   │   │   │   ├── test_sandbox.py
    │   │   │   │   │   │   ├── test_sdist.py
    │   │   │   │   │   │   ├── test_svn.py
    │   │   │   │   │   │   ├── test_test.py
    │   │   │   │   │   │   └── test_upload_docs.py
    │   │   │   │   │   └── version.py
    │   │   │   │   └── setuptools-3.3.dist-info/
    │   │   │   │       ├── DESCRIPTION.rst
    │   │   │   │       ├── METADATA
    │   │   │   │       ├── RECORD
    │   │   │   │       ├── WHEEL
    │   │   │   │       ├── dependency_links.txt
    │   │   │   │       ├── dependency_links.txt.orig
    │   │   │   │       ├── entry_points.txt
    │   │   │   │       ├── entry_points.txt.orig
    │   │   │   │       ├── pydist.json
    │   │   │   │       ├── requires.txt.orig
    │   │   │   │       ├── top_level.txt
    │   │   │   │       └── zip-safe
    │   │   │   ├── site.py
    │   │   │   ├── smtpd.py
    │   │   │   ├── smtplib.py
    │   │   │   ├── sndhdr.py
    │   │   │   ├── socket.py
    │   │   │   ├── socketserver.py
    │   │   │   ├── sqlite3/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── dbapi2.py
    │   │   │   │   └── dump.py
    │   │   │   ├── sre_compile.py
    │   │   │   ├── sre_constants.py
    │   │   │   ├── sre_parse.py
    │   │   │   ├── ssl.py
    │   │   │   ├── stat.py
    │   │   │   ├── string.py
    │   │   │   ├── stringprep.py
    │   │   │   ├── struct.py
    │   │   │   ├── subprocess.py
    │   │   │   ├── sunau.py
    │   │   │   ├── symbol.py
    │   │   │   ├── symtable.py
    │   │   │   ├── sysconfig.py
    │   │   │   ├── tabnanny.py
    │   │   │   ├── tarfile.py
    │   │   │   ├── telnetlib.py
    │   │   │   ├── tempfile.py
    │   │   │   ├── test/
    │   │   │   │   ├── capath/
    │   │   │   │   │   ├── 4e1295a3.0
    │   │   │   │   │   ├── 5ed36f99.0
    │   │   │   │   │   ├── 6e88d7b8.0
    │   │   │   │   │   └── 99d0fa06.0
    │   │   │   │   ├── cjkencodings/
    │   │   │   │   │   ├── big5-utf8.txt
    │   │   │   │   │   ├── big5.txt
    │   │   │   │   │   ├── big5hkscs-utf8.txt
    │   │   │   │   │   ├── big5hkscs.txt
    │   │   │   │   │   ├── cp949-utf8.txt
    │   │   │   │   │   ├── cp949.txt
    │   │   │   │   │   ├── euc_jisx0213-utf8.txt
    │   │   │   │   │   ├── euc_jisx0213.txt
    │   │   │   │   │   ├── euc_jp-utf8.txt
    │   │   │   │   │   ├── euc_jp.txt
    │   │   │   │   │   ├── euc_kr-utf8.txt
    │   │   │   │   │   ├── euc_kr.txt
    │   │   │   │   │   ├── gb18030-utf8.txt
    │   │   │   │   │   ├── gb18030.txt
    │   │   │   │   │   ├── gb2312-utf8.txt
    │   │   │   │   │   ├── gb2312.txt
    │   │   │   │   │   ├── gbk-utf8.txt
    │   │   │   │   │   ├── gbk.txt
    │   │   │   │   │   ├── hz-utf8.txt
    │   │   │   │   │   ├── hz.txt
    │   │   │   │   │   ├── iso2022_jp-utf8.txt
    │   │   │   │   │   ├── iso2022_jp.txt
    │   │   │   │   │   ├── iso2022_kr-utf8.txt
    │   │   │   │   │   ├── iso2022_kr.txt
    │   │   │   │   │   ├── johab-utf8.txt
    │   │   │   │   │   ├── johab.txt
    │   │   │   │   │   ├── shift_jis-utf8.txt
    │   │   │   │   │   ├── shift_jis.txt
    │   │   │   │   │   ├── shift_jisx0213-utf8.txt
    │   │   │   │   │   └── shift_jisx0213.txt
    │   │   │   │   ├── crashers/
    │   │   │   │   │   ├── README
    │   │   │   │   │   ├── bogus_code_obj.py
    │   │   │   │   │   ├── borrowed_ref_1.py
    │   │   │   │   │   ├── borrowed_ref_2.py
    │   │   │   │   │   ├── compiler_recursion.py
    │   │   │   │   │   ├── gc_inspection.py
    │   │   │   │   │   ├── infinite_loop_re.py
    │   │   │   │   │   ├── loosing_mro_ref.py
    │   │   │   │   │   ├── mutation_inside_cyclegc.py
    │   │   │   │   │   ├── nasty_eq_vs_dict.py
    │   │   │   │   │   ├── recursion_limit_too_high.py
    │   │   │   │   │   ├── recursive_call.py
    │   │   │   │   │   ├── trace_at_recursion_limit.py
    │   │   │   │   │   └── underlying_dict.py
    │   │   │   │   ├── decimaltestdata/
    │   │   │   │   │   ├── abs.decTest
    │   │   │   │   │   ├── add.decTest
    │   │   │   │   │   ├── and.decTest
    │   │   │   │   │   ├── base.decTest
    │   │   │   │   │   ├── clamp.decTest
    │   │   │   │   │   ├── class.decTest
    │   │   │   │   │   ├── compare.decTest
    │   │   │   │   │   ├── comparetotal.decTest
    │   │   │   │   │   ├── comparetotmag.decTest
    │   │   │   │   │   ├── copy.decTest
    │   │   │   │   │   ├── copyabs.decTest
    │   │   │   │   │   ├── copynegate.decTest
    │   │   │   │   │   ├── copysign.decTest
    │   │   │   │   │   ├── ddAbs.decTest
    │   │   │   │   │   ├── ddAdd.decTest
    │   │   │   │   │   ├── ddAnd.decTest
    │   │   │   │   │   ├── ddBase.decTest
    │   │   │   │   │   ├── ddCanonical.decTest
    │   │   │   │   │   ├── ddClass.decTest
    │   │   │   │   │   ├── ddCompare.decTest
    │   │   │   │   │   ├── ddCompareSig.decTest
    │   │   │   │   │   ├── ddCompareTotal.decTest
    │   │   │   │   │   ├── ddCompareTotalMag.decTest
    │   │   │   │   │   ├── ddCopy.decTest
    │   │   │   │   │   ├── ddCopyAbs.decTest
    │   │   │   │   │   ├── ddCopyNegate.decTest
    │   │   │   │   │   ├── ddCopySign.decTest
    │   │   │   │   │   ├── ddDivide.decTest
    │   │   │   │   │   ├── ddDivideInt.decTest
    │   │   │   │   │   ├── ddEncode.decTest
    │   │   │   │   │   ├── ddFMA.decTest
    │   │   │   │   │   ├── ddInvert.decTest
    │   │   │   │   │   ├── ddLogB.decTest
    │   │   │   │   │   ├── ddMax.decTest
    │   │   │   │   │   ├── ddMaxMag.decTest
    │   │   │   │   │   ├── ddMin.decTest
    │   │   │   │   │   ├── ddMinMag.decTest
    │   │   │   │   │   ├── ddMinus.decTest
    │   │   │   │   │   ├── ddMultiply.decTest
    │   │   │   │   │   ├── ddNextMinus.decTest
    │   │   │   │   │   ├── ddNextPlus.decTest
    │   │   │   │   │   ├── ddNextToward.decTest
    │   │   │   │   │   ├── ddOr.decTest
    │   │   │   │   │   ├── ddPlus.decTest
    │   │   │   │   │   ├── ddQuantize.decTest
    │   │   │   │   │   ├── ddReduce.decTest
    │   │   │   │   │   ├── ddRemainder.decTest
    │   │   │   │   │   ├── ddRemainderNear.decTest
    │   │   │   │   │   ├── ddRotate.decTest
    │   │   │   │   │   ├── ddSameQuantum.decTest
    │   │   │   │   │   ├── ddScaleB.decTest
    │   │   │   │   │   ├── ddShift.decTest
    │   │   │   │   │   ├── ddSubtract.decTest
    │   │   │   │   │   ├── ddToIntegral.decTest
    │   │   │   │   │   ├── ddXor.decTest
    │   │   │   │   │   ├── decDouble.decTest
    │   │   │   │   │   ├── decQuad.decTest
    │   │   │   │   │   ├── decSingle.decTest
    │   │   │   │   │   ├── divide.decTest
    │   │   │   │   │   ├── divideint.decTest
    │   │   │   │   │   ├── dqAbs.decTest
    │   │   │   │   │   ├── dqAdd.decTest
    │   │   │   │   │   ├── dqAnd.decTest
    │   │   │   │   │   ├── dqBase.decTest
    │   │   │   │   │   ├── dqCanonical.decTest
    │   │   │   │   │   ├── dqClass.decTest
    │   │   │   │   │   ├── dqCompare.decTest
    │   │   │   │   │   ├── dqCompareSig.decTest
    │   │   │   │   │   ├── dqCompareTotal.decTest
    │   │   │   │   │   ├── dqCompareTotalMag.decTest
    │   │   │   │   │   ├── dqCopy.decTest
    │   │   │   │   │   ├── dqCopyAbs.decTest
    │   │   │   │   │   ├── dqCopyNegate.decTest
    │   │   │   │   │   ├── dqCopySign.decTest
    │   │   │   │   │   ├── dqDivide.decTest
    │   │   │   │   │   ├── dqDivideInt.decTest
    │   │   │   │   │   ├── dqEncode.decTest
    │   │   │   │   │   ├── dqFMA.decTest
    │   │   │   │   │   ├── dqInvert.decTest
    │   │   │   │   │   ├── dqLogB.decTest
    │   │   │   │   │   ├── dqMax.decTest
    │   │   │   │   │   ├── dqMaxMag.decTest
    │   │   │   │   │   ├── dqMin.decTest
    │   │   │   │   │   ├── dqMinMag.decTest
    │   │   │   │   │   ├── dqMinus.decTest
    │   │   │   │   │   ├── dqMultiply.decTest
    │   │   │   │   │   ├── dqNextMinus.decTest
    │   │   │   │   │   ├── dqNextPlus.decTest
    │   │   │   │   │   ├── dqNextToward.decTest
    │   │   │   │   │   ├── dqOr.decTest
    │   │   │   │   │   ├── dqPlus.decTest
    │   │   │   │   │   ├── dqQuantize.decTest
    │   │   │   │   │   ├── dqReduce.decTest
    │   │   │   │   │   ├── dqRemainder.decTest
    │   │   │   │   │   ├── dqRemainderNear.decTest
    │   │   │   │   │   ├── dqRotate.decTest
    │   │   │   │   │   ├── dqSameQuantum.decTest
    │   │   │   │   │   ├── dqScaleB.decTest
    │   │   │   │   │   ├── dqShift.decTest
    │   │   │   │   │   ├── dqSubtract.decTest
    │   │   │   │   │   ├── dqToIntegral.decTest
    │   │   │   │   │   ├── dqXor.decTest
    │   │   │   │   │   ├── dsBase.decTest
    │   │   │   │   │   ├── dsEncode.decTest
    │   │   │   │   │   ├── exp.decTest
    │   │   │   │   │   ├── extra.decTest
    │   │   │   │   │   ├── fma.decTest
    │   │   │   │   │   ├── inexact.decTest
    │   │   │   │   │   ├── invert.decTest
    │   │   │   │   │   ├── ln.decTest
    │   │   │   │   │   ├── log10.decTest
    │   │   │   │   │   ├── logb.decTest
    │   │   │   │   │   ├── max.decTest
    │   │   │   │   │   ├── maxmag.decTest
    │   │   │   │   │   ├── min.decTest
    │   │   │   │   │   ├── minmag.decTest
    │   │   │   │   │   ├── minus.decTest
    │   │   │   │   │   ├── multiply.decTest
    │   │   │   │   │   ├── nextminus.decTest
    │   │   │   │   │   ├── nextplus.decTest
    │   │   │   │   │   ├── nexttoward.decTest
    │   │   │   │   │   ├── or.decTest
    │   │   │   │   │   ├── plus.decTest
    │   │   │   │   │   ├── power.decTest
    │   │   │   │   │   ├── powersqrt.decTest
    │   │   │   │   │   ├── quantize.decTest
    │   │   │   │   │   ├── randomBound32.decTest
    │   │   │   │   │   ├── randoms.decTest
    │   │   │   │   │   ├── reduce.decTest
    │   │   │   │   │   ├── remainder.decTest
    │   │   │   │   │   ├── remainderNear.decTest
    │   │   │   │   │   ├── rescale.decTest
    │   │   │   │   │   ├── rotate.decTest
    │   │   │   │   │   ├── rounding.decTest
    │   │   │   │   │   ├── samequantum.decTest
    │   │   │   │   │   ├── scaleb.decTest
    │   │   │   │   │   ├── shift.decTest
    │   │   │   │   │   ├── squareroot.decTest
    │   │   │   │   │   ├── subtract.decTest
    │   │   │   │   │   ├── testall.decTest
    │   │   │   │   │   ├── tointegral.decTest
    │   │   │   │   │   ├── tointegralx.decTest
    │   │   │   │   │   └── xor.decTest
    │   │   │   │   ├── encoded_modules/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── module_iso_8859_1.py
    │   │   │   │   │   └── module_koi8_r.py
    │   │   │   │   ├── json_tests/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── test_decode.py
    │   │   │   │   │   ├── test_default.py
    │   │   │   │   │   ├── test_dump.py
    │   │   │   │   │   ├── test_encode_basestring_ascii.py
    │   │   │   │   │   ├── test_fail.py
    │   │   │   │   │   ├── test_float.py
    │   │   │   │   │   ├── test_indent.py
    │   │   │   │   │   ├── test_pass1.py
    │   │   │   │   │   ├── test_pass2.py
    │   │   │   │   │   ├── test_pass3.py
    │   │   │   │   │   ├── test_recursion.py
    │   │   │   │   │   ├── test_scanstring.py
    │   │   │   │   │   ├── test_separators.py
    │   │   │   │   │   ├── test_speedups.py
    │   │   │   │   │   ├── test_tool.py
    │   │   │   │   │   └── test_unicode.py
    │   │   │   │   ├── leakers/
    │   │   │   │   │   ├── README.txt
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── test_ctypes.py
    │   │   │   │   │   ├── test_gestalt.py
    │   │   │   │   │   └── test_selftype.py
    │   │   │   │   ├── sndhdrdata/
    │   │   │   │   │   ├── README
    │   │   │   │   │   ├── sndhdr.8svx
    │   │   │   │   │   ├── sndhdr.aifc
    │   │   │   │   │   ├── sndhdr.aiff
    │   │   │   │   │   ├── sndhdr.au
    │   │   │   │   │   ├── sndhdr.hcom
    │   │   │   │   │   ├── sndhdr.sndt
    │   │   │   │   │   └── sndhdr.voc
    │   │   │   │   ├── subprocessdata/
    │   │   │   │   │   ├── fd_status.py
    │   │   │   │   │   ├── input_reader.py
    │   │   │   │   │   ├── qcat.py
    │   │   │   │   │   ├── qgrep.py
    │   │   │   │   │   └── sigchild_ignore.py
    │   │   │   │   ├── tracedmodules/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── testmod.py
    │   │   │   │   └── xmltestdata/
    │   │   │   │       ├── simple-ns.xml
    │   │   │   │       ├── simple.xml
    │   │   │   │       ├── test.xml
    │   │   │   │       └── test.xml.out
    │   │   │   ├── textwrap.py
    │   │   │   ├── this.py
    │   │   │   ├── threading.py
    │   │   │   ├── timeit.py
    │   │   │   ├── tkinter/
    │   │   │   │   └── test/
    │   │   │   │       ├── test_tkinter/
    │   │   │   │       │   ├── __init__.py
    │   │   │   │       │   ├── test_font.py
    │   │   │   │       │   ├── test_loadtk.py
    │   │   │   │       │   ├── test_misc.py
    │   │   │   │       │   └── test_text.py
    │   │   │   │       └── test_ttk/
    │   │   │   │           ├── __init__.py
    │   │   │   │           ├── test_extensions.py
    │   │   │   │           ├── test_functions.py
    │   │   │   │           ├── test_style.py
    │   │   │   │           └── test_widgets.py
    │   │   │   ├── token.py
    │   │   │   ├── tokenize.py
    │   │   │   ├── trace.py
    │   │   │   ├── traceback.py
    │   │   │   ├── tty.py
    │   │   │   ├── turtle.py
    │   │   │   ├── turtledemo/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── __main__.py
    │   │   │   │   ├── about_turtle.txt
    │   │   │   │   ├── about_turtledemo.txt
    │   │   │   │   ├── bytedesign.py
    │   │   │   │   ├── chaos.py
    │   │   │   │   ├── clock.py
    │   │   │   │   ├── colormixer.py
    │   │   │   │   ├── demohelp.txt
    │   │   │   │   ├── forest.py
    │   │   │   │   ├── fractalcurves.py
    │   │   │   │   ├── lindenmayer.py
    │   │   │   │   ├── minimal_hanoi.py
    │   │   │   │   ├── nim.py
    │   │   │   │   ├── paint.py
    │   │   │   │   ├── peace.py
    │   │   │   │   ├── penrose.py
    │   │   │   │   ├── planet_and_moon.py
    │   │   │   │   ├── round_dance.py
    │   │   │   │   ├── tree.py
    │   │   │   │   ├── turtle.cfg
    │   │   │   │   ├── two_canvases.py
    │   │   │   │   ├── wikipedia.py
    │   │   │   │   └── yinyang.py
    │   │   │   ├── types.py
    │   │   │   ├── unittest/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── __main__.py
    │   │   │   │   ├── case.py
    │   │   │   │   ├── loader.py
    │   │   │   │   ├── main.py
    │   │   │   │   ├── result.py
    │   │   │   │   ├── runner.py
    │   │   │   │   ├── signals.py
    │   │   │   │   ├── suite.py
    │   │   │   │   └── util.py
    │   │   │   ├── urllib/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── error.py
    │   │   │   │   ├── parse.py
    │   │   │   │   ├── request.py
    │   │   │   │   ├── response.py
    │   │   │   │   └── robotparser.py
    │   │   │   ├── uu.py
    │   │   │   ├── uuid.py
    │   │   │   ├── warnings.py
    │   │   │   ├── wave.py
    │   │   │   ├── weakref.py
    │   │   │   ├── webbrowser.py
    │   │   │   ├── wsgiref/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── handlers.py
    │   │   │   │   ├── headers.py
    │   │   │   │   ├── simple_server.py
    │   │   │   │   ├── util.py
    │   │   │   │   └── validate.py
    │   │   │   ├── wsgiref.egg-info
    │   │   │   ├── xdrlib.py
    │   │   │   ├── xml/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── dom/
    │   │   │   │   │   ├── NodeFilter.py
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── domreg.py
    │   │   │   │   │   ├── expatbuilder.py
    │   │   │   │   │   ├── minicompat.py
    │   │   │   │   │   ├── minidom.py
    │   │   │   │   │   ├── pulldom.py
    │   │   │   │   │   └── xmlbuilder.py
    │   │   │   │   ├── etree/
    │   │   │   │   │   ├── ElementInclude.py
    │   │   │   │   │   ├── ElementPath.py
    │   │   │   │   │   ├── ElementTree.py
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── cElementTree.py
    │   │   │   │   ├── parsers/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── expat.py
    │   │   │   │   └── sax/
    │   │   │   │       ├── __init__.py
    │   │   │   │       ├── _exceptions.py
    │   │   │   │       ├── expatreader.py
    │   │   │   │       ├── handler.py
    │   │   │   │       ├── saxutils.py
    │   │   │   │       └── xmlreader.py
    │   │   │   ├── xmlrpc/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── client.py
    │   │   │   │   └── server.py
    │   │   │   └── zipfile.py
    │   │   ├── NEWS.txt
    │   │   ├── README.txt
    │   │   ├── include/
    │   │   │   ├── Python-ast.h
    │   │   │   ├── Python.h
    │   │   │   ├── abstract.h
    │   │   │   ├── accu.h
    │   │   │   ├── asdl.h
    │   │   │   ├── ast.h
    │   │   │   ├── bitset.h
    │   │   │   ├── bltinmodule.h
    │   │   │   ├── boolobject.h
    │   │   │   ├── bytearrayobject.h
    │   │   │   ├── bytes_methods.h
    │   │   │   ├── bytesobject.h
    │   │   │   ├── cellobject.h
    │   │   │   ├── ceval.h
    │   │   │   ├── classobject.h
    │   │   │   ├── code.h
    │   │   │   ├── codecs.h
    │   │   │   ├── compile.h
    │   │   │   ├── complexobject.h
    │   │   │   ├── datetime.h
    │   │   │   ├── descrobject.h
    │   │   │   ├── dictobject.h
    │   │   │   ├── dtoa.h
    │   │   │   ├── dynamic_annotations.h
    │   │   │   ├── enumobject.h
    │   │   │   ├── errcode.h
    │   │   │   ├── eval.h
    │   │   │   ├── fileobject.h
    │   │   │   ├── fileutils.h
    │   │   │   ├── floatobject.h
    │   │   │   ├── frameobject.h
    │   │   │   ├── funcobject.h
    │   │   │   ├── genobject.h
    │   │   │   ├── graminit.h
    │   │   │   ├── grammar.h
    │   │   │   ├── import.h
    │   │   │   ├── intrcheck.h
    │   │   │   ├── iterobject.h
    │   │   │   ├── listobject.h
    │   │   │   ├── longintrepr.h
    │   │   │   ├── longobject.h
    │   │   │   ├── marshal.h
    │   │   │   ├── memoryobject.h
    │   │   │   ├── metagrammar.h
    │   │   │   ├── methodobject.h
    │   │   │   ├── modsupport.h
    │   │   │   ├── moduleobject.h
    │   │   │   ├── node.h
    │   │   │   ├── object.h
    │   │   │   ├── objimpl.h
    │   │   │   ├── opcode.h
    │   │   │   ├── osdefs.h
    │   │   │   ├── parsetok.h
    │   │   │   ├── patchlevel.h
    │   │   │   ├── pgen.h
    │   │   │   ├── pgenheaders.h
    │   │   │   ├── py_curses.h
    │   │   │   ├── pyarena.h
    │   │   │   ├── pyatomic.h
    │   │   │   ├── pycapsule.h
    │   │   │   ├── pyconfig.h
    │   │   │   ├── pyctype.h
    │   │   │   ├── pydebug.h
    │   │   │   ├── pyerrors.h
    │   │   │   ├── pyexpat.h
    │   │   │   ├── pyfpe.h
    │   │   │   ├── pygetopt.h
    │   │   │   ├── pymacconfig.h
    │   │   │   ├── pymath.h
    │   │   │   ├── pymem.h
    │   │   │   ├── pyport.h
    │   │   │   ├── pystate.h
    │   │   │   ├── pystrcmp.h
    │   │   │   ├── pystrtod.h
    │   │   │   ├── pythonrun.h
    │   │   │   ├── pythread.h
    │   │   │   ├── pytime.h
    │   │   │   ├── rangeobject.h
    │   │   │   ├── setobject.h
    │   │   │   ├── sliceobject.h
    │   │   │   ├── structmember.h
    │   │   │   ├── structseq.h
    │   │   │   ├── symtable.h
    │   │   │   ├── sysmodule.h
    │   │   │   ├── timefuncs.h
    │   │   │   ├── token.h
    │   │   │   ├── traceback.h
    │   │   │   ├── tupleobject.h
    │   │   │   ├── typeslots.h
    │   │   │   ├── ucnhash.h
    │   │   │   ├── unicodeobject.h
    │   │   │   ├── warnings.h
    │   │   │   └── weakrefobject.h
    │   │   └── libs/
    │   │       └── libpython32.a
    │   ├── win32-py33/
    │   │   ├── DLLs/
    │   │   │   ├── _bz2.pyd
    │   │   │   ├── _ctypes.pyd
    │   │   │   ├── _ctypes_test.pyd
    │   │   │   ├── _decimal.pyd
    │   │   │   ├── _elementtree.pyd
    │   │   │   ├── _hashlib.pyd
    │   │   │   ├── _lzma.pyd
    │   │   │   ├── _msi.pyd
    │   │   │   ├── _multiprocessing.pyd
    │   │   │   ├── _socket.pyd
    │   │   │   ├── _sqlite3.pyd
    │   │   │   ├── _ssl.pyd
    │   │   │   ├── _testbuffer.pyd
    │   │   │   ├── _testcapi.pyd
    │   │   │   ├── pyexpat.pyd
    │   │   │   ├── select.pyd
    │   │   │   ├── unicodedata.pyd
    │   │   │   └── winsound.pyd
    │   │   ├── LICENSE.txt
    │   │   ├── Lib/
    │   │   │   ├── __future__.py
    │   │   │   ├── __phello__.foo.py
    │   │   │   ├── _compat_pickle.py
    │   │   │   ├── _dummy_thread.py
    │   │   │   ├── _markupbase.py
    │   │   │   ├── _osx_support.py
    │   │   │   ├── _pyio.py
    │   │   │   ├── _strptime.py
    │   │   │   ├── _threading_local.py
    │   │   │   ├── _weakrefset.py
    │   │   │   ├── abc.py
    │   │   │   ├── aifc.py
    │   │   │   ├── antigravity.py
    │   │   │   ├── argparse.py
    │   │   │   ├── ast.py
    │   │   │   ├── asynchat.py
    │   │   │   ├── asyncore.py
    │   │   │   ├── base64.py
    │   │   │   ├── bdb.py
    │   │   │   ├── binhex.py
    │   │   │   ├── bisect.py
    │   │   │   ├── bz2.py
    │   │   │   ├── cProfile.py
    │   │   │   ├── calendar.py
    │   │   │   ├── cgi.py
    │   │   │   ├── cgitb.py
    │   │   │   ├── chunk.py
    │   │   │   ├── cmd.py
    │   │   │   ├── code.py
    │   │   │   ├── codecs.py
    │   │   │   ├── codeop.py
    │   │   │   ├── collections/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── __main__.py
    │   │   │   │   └── abc.py
    │   │   │   ├── colorsys.py
    │   │   │   ├── compileall.py
    │   │   │   ├── concurrent/
    │   │   │   │   ├── __init__.py
    │   │   │   │   └── futures/
    │   │   │   │       ├── __init__.py
    │   │   │   │       ├── _base.py
    │   │   │   │       ├── process.py
    │   │   │   │       └── thread.py
    │   │   │   ├── configparser.py
    │   │   │   ├── contextlib.py
    │   │   │   ├── copy.py
    │   │   │   ├── copyreg.py
    │   │   │   ├── crypt.py
    │   │   │   ├── csv.py
    │   │   │   ├── ctypes/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _endian.py
    │   │   │   │   ├── macholib/
    │   │   │   │   │   ├── README.ctypes
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── dyld.py
    │   │   │   │   │   ├── dylib.py
    │   │   │   │   │   ├── fetch_macholib
    │   │   │   │   │   ├── fetch_macholib.bat
    │   │   │   │   │   └── framework.py
    │   │   │   │   ├── util.py
    │   │   │   │   └── wintypes.py
    │   │   │   ├── curses/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── ascii.py
    │   │   │   │   ├── has_key.py
    │   │   │   │   ├── panel.py
    │   │   │   │   └── textpad.py
    │   │   │   ├── datetime.py
    │   │   │   ├── dbm/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── dumb.py
    │   │   │   │   ├── gnu.py
    │   │   │   │   └── ndbm.py
    │   │   │   ├── decimal.py
    │   │   │   ├── difflib.py
    │   │   │   ├── dis.py
    │   │   │   ├── distutils/
    │   │   │   │   ├── README.txt
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── archive_util.py
    │   │   │   │   ├── bcppcompiler.py
    │   │   │   │   ├── ccompiler.py
    │   │   │   │   ├── cmd.py
    │   │   │   │   ├── command/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── bdist.py
    │   │   │   │   │   ├── bdist_dumb.py
    │   │   │   │   │   ├── bdist_msi.py
    │   │   │   │   │   ├── bdist_rpm.py
    │   │   │   │   │   ├── bdist_wininst.py
    │   │   │   │   │   ├── build.py
    │   │   │   │   │   ├── build_clib.py
    │   │   │   │   │   ├── build_ext.py
    │   │   │   │   │   ├── build_py.py
    │   │   │   │   │   ├── build_scripts.py
    │   │   │   │   │   ├── check.py
    │   │   │   │   │   ├── clean.py
    │   │   │   │   │   ├── command_template
    │   │   │   │   │   ├── config.py
    │   │   │   │   │   ├── install.py
    │   │   │   │   │   ├── install_data.py
    │   │   │   │   │   ├── install_egg_info.py
    │   │   │   │   │   ├── install_headers.py
    │   │   │   │   │   ├── install_lib.py
    │   │   │   │   │   ├── install_scripts.py
    │   │   │   │   │   ├── register.py
    │   │   │   │   │   ├── sdist.py
    │   │   │   │   │   └── upload.py
    │   │   │   │   ├── config.py
    │   │   │   │   ├── core.py
    │   │   │   │   ├── cygwinccompiler.py
    │   │   │   │   ├── debug.py
    │   │   │   │   ├── dep_util.py
    │   │   │   │   ├── dir_util.py
    │   │   │   │   ├── dist.py
    │   │   │   │   ├── emxccompiler.py
    │   │   │   │   ├── errors.py
    │   │   │   │   ├── extension.py
    │   │   │   │   ├── fancy_getopt.py
    │   │   │   │   ├── file_util.py
    │   │   │   │   ├── filelist.py
    │   │   │   │   ├── log.py
    │   │   │   │   ├── msvc9compiler.py
    │   │   │   │   ├── msvccompiler.py
    │   │   │   │   ├── spawn.py
    │   │   │   │   ├── sysconfig.py
    │   │   │   │   ├── text_file.py
    │   │   │   │   ├── unixccompiler.py
    │   │   │   │   ├── util.py
    │   │   │   │   ├── version.py
    │   │   │   │   └── versionpredicate.py
    │   │   │   ├── doctest.py
    │   │   │   ├── dummy_threading.py
    │   │   │   ├── email/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _encoded_words.py
    │   │   │   │   ├── _header_value_parser.py
    │   │   │   │   ├── _parseaddr.py
    │   │   │   │   ├── _policybase.py
    │   │   │   │   ├── architecture.rst
    │   │   │   │   ├── base64mime.py
    │   │   │   │   ├── charset.py
    │   │   │   │   ├── encoders.py
    │   │   │   │   ├── errors.py
    │   │   │   │   ├── feedparser.py
    │   │   │   │   ├── generator.py
    │   │   │   │   ├── header.py
    │   │   │   │   ├── headerregistry.py
    │   │   │   │   ├── iterators.py
    │   │   │   │   ├── message.py
    │   │   │   │   ├── mime/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── application.py
    │   │   │   │   │   ├── audio.py
    │   │   │   │   │   ├── base.py
    │   │   │   │   │   ├── image.py
    │   │   │   │   │   ├── message.py
    │   │   │   │   │   ├── multipart.py
    │   │   │   │   │   ├── nonmultipart.py
    │   │   │   │   │   └── text.py
    │   │   │   │   ├── parser.py
    │   │   │   │   ├── policy.py
    │   │   │   │   ├── quoprimime.py
    │   │   │   │   └── utils.py
    │   │   │   ├── encodings/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── aliases.py
    │   │   │   │   ├── ascii.py
    │   │   │   │   ├── base64_codec.py
    │   │   │   │   ├── big5.py
    │   │   │   │   ├── big5hkscs.py
    │   │   │   │   ├── bz2_codec.py
    │   │   │   │   ├── charmap.py
    │   │   │   │   ├── cp037.py
    │   │   │   │   ├── cp1006.py
    │   │   │   │   ├── cp1026.py
    │   │   │   │   ├── cp1140.py
    │   │   │   │   ├── cp1250.py
    │   │   │   │   ├── cp1251.py
    │   │   │   │   ├── cp1252.py
    │   │   │   │   ├── cp1253.py
    │   │   │   │   ├── cp1254.py
    │   │   │   │   ├── cp1255.py
    │   │   │   │   ├── cp1256.py
    │   │   │   │   ├── cp1257.py
    │   │   │   │   ├── cp1258.py
    │   │   │   │   ├── cp424.py
    │   │   │   │   ├── cp437.py
    │   │   │   │   ├── cp500.py
    │   │   │   │   ├── cp65001.py
    │   │   │   │   ├── cp720.py
    │   │   │   │   ├── cp737.py
    │   │   │   │   ├── cp775.py
    │   │   │   │   ├── cp850.py
    │   │   │   │   ├── cp852.py
    │   │   │   │   ├── cp855.py
    │   │   │   │   ├── cp856.py
    │   │   │   │   ├── cp857.py
    │   │   │   │   ├── cp858.py
    │   │   │   │   ├── cp860.py
    │   │   │   │   ├── cp861.py
    │   │   │   │   ├── cp862.py
    │   │   │   │   ├── cp863.py
    │   │   │   │   ├── cp864.py
    │   │   │   │   ├── cp865.py
    │   │   │   │   ├── cp866.py
    │   │   │   │   ├── cp869.py
    │   │   │   │   ├── cp874.py
    │   │   │   │   ├── cp875.py
    │   │   │   │   ├── cp932.py
    │   │   │   │   ├── cp949.py
    │   │   │   │   ├── cp950.py
    │   │   │   │   ├── euc_jis_2004.py
    │   │   │   │   ├── euc_jisx0213.py
    │   │   │   │   ├── euc_jp.py
    │   │   │   │   ├── euc_kr.py
    │   │   │   │   ├── gb18030.py
    │   │   │   │   ├── gb2312.py
    │   │   │   │   ├── gbk.py
    │   │   │   │   ├── hex_codec.py
    │   │   │   │   ├── hp_roman8.py
    │   │   │   │   ├── hz.py
    │   │   │   │   ├── idna.py
    │   │   │   │   ├── iso2022_jp.py
    │   │   │   │   ├── iso2022_jp_1.py
    │   │   │   │   ├── iso2022_jp_2.py
    │   │   │   │   ├── iso2022_jp_2004.py
    │   │   │   │   ├── iso2022_jp_3.py
    │   │   │   │   ├── iso2022_jp_ext.py
    │   │   │   │   ├── iso2022_kr.py
    │   │   │   │   ├── iso8859_1.py
    │   │   │   │   ├── iso8859_10.py
    │   │   │   │   ├── iso8859_11.py
    │   │   │   │   ├── iso8859_13.py
    │   │   │   │   ├── iso8859_14.py
    │   │   │   │   ├── iso8859_15.py
    │   │   │   │   ├── iso8859_16.py
    │   │   │   │   ├── iso8859_2.py
    │   │   │   │   ├── iso8859_3.py
    │   │   │   │   ├── iso8859_4.py
    │   │   │   │   ├── iso8859_5.py
    │   │   │   │   ├── iso8859_6.py
    │   │   │   │   ├── iso8859_7.py
    │   │   │   │   ├── iso8859_8.py
    │   │   │   │   ├── iso8859_9.py
    │   │   │   │   ├── johab.py
    │   │   │   │   ├── koi8_r.py
    │   │   │   │   ├── koi8_u.py
    │   │   │   │   ├── latin_1.py
    │   │   │   │   ├── mac_arabic.py
    │   │   │   │   ├── mac_centeuro.py
    │   │   │   │   ├── mac_croatian.py
    │   │   │   │   ├── mac_cyrillic.py
    │   │   │   │   ├── mac_farsi.py
    │   │   │   │   ├── mac_greek.py
    │   │   │   │   ├── mac_iceland.py
    │   │   │   │   ├── mac_latin2.py
    │   │   │   │   ├── mac_roman.py
    │   │   │   │   ├── mac_romanian.py
    │   │   │   │   ├── mac_turkish.py
    │   │   │   │   ├── mbcs.py
    │   │   │   │   ├── palmos.py
    │   │   │   │   ├── ptcp154.py
    │   │   │   │   ├── punycode.py
    │   │   │   │   ├── quopri_codec.py
    │   │   │   │   ├── raw_unicode_escape.py
    │   │   │   │   ├── rot_13.py
    │   │   │   │   ├── shift_jis.py
    │   │   │   │   ├── shift_jis_2004.py
    │   │   │   │   ├── shift_jisx0213.py
    │   │   │   │   ├── tis_620.py
    │   │   │   │   ├── undefined.py
    │   │   │   │   ├── unicode_escape.py
    │   │   │   │   ├── unicode_internal.py
    │   │   │   │   ├── utf_16.py
    │   │   │   │   ├── utf_16_be.py
    │   │   │   │   ├── utf_16_le.py
    │   │   │   │   ├── utf_32.py
    │   │   │   │   ├── utf_32_be.py
    │   │   │   │   ├── utf_32_le.py
    │   │   │   │   ├── utf_7.py
    │   │   │   │   ├── utf_8.py
    │   │   │   │   ├── utf_8_sig.py
    │   │   │   │   ├── uu_codec.py
    │   │   │   │   └── zlib_codec.py
    │   │   │   ├── filecmp.py
    │   │   │   ├── fileinput.py
    │   │   │   ├── fnmatch.py
    │   │   │   ├── formatter.py
    │   │   │   ├── fractions.py
    │   │   │   ├── ftplib.py
    │   │   │   ├── functools.py
    │   │   │   ├── genericpath.py
    │   │   │   ├── getopt.py
    │   │   │   ├── getpass.py
    │   │   │   ├── gettext.py
    │   │   │   ├── glob.py
    │   │   │   ├── gzip.py
    │   │   │   ├── hashlib.py
    │   │   │   ├── heapq.py
    │   │   │   ├── hmac.py
    │   │   │   ├── html/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── entities.py
    │   │   │   │   └── parser.py
    │   │   │   ├── http/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── client.py
    │   │   │   │   ├── cookiejar.py
    │   │   │   │   ├── cookies.py
    │   │   │   │   └── server.py
    │   │   │   ├── imaplib.py
    │   │   │   ├── imghdr.py
    │   │   │   ├── imp.py
    │   │   │   ├── importlib/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _bootstrap.py
    │   │   │   │   ├── abc.py
    │   │   │   │   ├── machinery.py
    │   │   │   │   └── util.py
    │   │   │   ├── inspect.py
    │   │   │   ├── io.py
    │   │   │   ├── ipaddress.py
    │   │   │   ├── json/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── decoder.py
    │   │   │   │   ├── encoder.py
    │   │   │   │   ├── scanner.py
    │   │   │   │   └── tool.py
    │   │   │   ├── keyword.py
    │   │   │   ├── lib2to3/
    │   │   │   │   ├── Grammar.txt
    │   │   │   │   ├── Grammar3.3.5.final.0.pickle
    │   │   │   │   ├── PatternGrammar.txt
    │   │   │   │   ├── PatternGrammar3.3.5.final.0.pickle
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── __main__.py
    │   │   │   │   ├── btm_matcher.py
    │   │   │   │   ├── btm_utils.py
    │   │   │   │   ├── fixer_base.py
    │   │   │   │   ├── fixer_util.py
    │   │   │   │   ├── fixes/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── fix_apply.py
    │   │   │   │   │   ├── fix_basestring.py
    │   │   │   │   │   ├── fix_buffer.py
    │   │   │   │   │   ├── fix_callable.py
    │   │   │   │   │   ├── fix_dict.py
    │   │   │   │   │   ├── fix_except.py
    │   │   │   │   │   ├── fix_exec.py
    │   │   │   │   │   ├── fix_execfile.py
    │   │   │   │   │   ├── fix_exitfunc.py
    │   │   │   │   │   ├── fix_filter.py
    │   │   │   │   │   ├── fix_funcattrs.py
    │   │   │   │   │   ├── fix_future.py
    │   │   │   │   │   ├── fix_getcwdu.py
    │   │   │   │   │   ├── fix_has_key.py
    │   │   │   │   │   ├── fix_idioms.py
    │   │   │   │   │   ├── fix_import.py
    │   │   │   │   │   ├── fix_imports.py
    │   │   │   │   │   ├── fix_imports2.py
    │   │   │   │   │   ├── fix_input.py
    │   │   │   │   │   ├── fix_intern.py
    │   │   │   │   │   ├── fix_isinstance.py
    │   │   │   │   │   ├── fix_itertools.py
    │   │   │   │   │   ├── fix_itertools_imports.py
    │   │   │   │   │   ├── fix_long.py
    │   │   │   │   │   ├── fix_map.py
    │   │   │   │   │   ├── fix_metaclass.py
    │   │   │   │   │   ├── fix_methodattrs.py
    │   │   │   │   │   ├── fix_ne.py
    │   │   │   │   │   ├── fix_next.py
    │   │   │   │   │   ├── fix_nonzero.py
    │   │   │   │   │   ├── fix_numliterals.py
    │   │   │   │   │   ├── fix_operator.py
    │   │   │   │   │   ├── fix_paren.py
    │   │   │   │   │   ├── fix_print.py
    │   │   │   │   │   ├── fix_raise.py
    │   │   │   │   │   ├── fix_raw_input.py
    │   │   │   │   │   ├── fix_reduce.py
    │   │   │   │   │   ├── fix_renames.py
    │   │   │   │   │   ├── fix_repr.py
    │   │   │   │   │   ├── fix_set_literal.py
    │   │   │   │   │   ├── fix_standarderror.py
    │   │   │   │   │   ├── fix_sys_exc.py
    │   │   │   │   │   ├── fix_throw.py
    │   │   │   │   │   ├── fix_tuple_params.py
    │   │   │   │   │   ├── fix_types.py
    │   │   │   │   │   ├── fix_unicode.py
    │   │   │   │   │   ├── fix_urllib.py
    │   │   │   │   │   ├── fix_ws_comma.py
    │   │   │   │   │   ├── fix_xrange.py
    │   │   │   │   │   ├── fix_xreadlines.py
    │   │   │   │   │   └── fix_zip.py
    │   │   │   │   ├── main.py
    │   │   │   │   ├── patcomp.py
    │   │   │   │   ├── pgen2/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── conv.py
    │   │   │   │   │   ├── driver.py
    │   │   │   │   │   ├── grammar.py
    │   │   │   │   │   ├── literals.py
    │   │   │   │   │   ├── parse.py
    │   │   │   │   │   ├── pgen.py
    │   │   │   │   │   ├── token.py
    │   │   │   │   │   └── tokenize.py
    │   │   │   │   ├── pygram.py
    │   │   │   │   ├── pytree.py
    │   │   │   │   └── refactor.py
    │   │   │   ├── linecache.py
    │   │   │   ├── locale.py
    │   │   │   ├── logging/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── config.py
    │   │   │   │   └── handlers.py
    │   │   │   ├── lzma.py
    │   │   │   ├── macpath.py
    │   │   │   ├── macurl2path.py
    │   │   │   ├── mailbox.py
    │   │   │   ├── mailcap.py
    │   │   │   ├── mimetypes.py
    │   │   │   ├── modulefinder.py
    │   │   │   ├── msilib/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── schema.py
    │   │   │   │   ├── sequence.py
    │   │   │   │   └── text.py
    │   │   │   ├── multiprocessing/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── connection.py
    │   │   │   │   ├── dummy/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── connection.py
    │   │   │   │   ├── forking.py
    │   │   │   │   ├── heap.py
    │   │   │   │   ├── managers.py
    │   │   │   │   ├── pool.py
    │   │   │   │   ├── process.py
    │   │   │   │   ├── queues.py
    │   │   │   │   ├── reduction.py
    │   │   │   │   ├── sharedctypes.py
    │   │   │   │   ├── synchronize.py
    │   │   │   │   └── util.py
    │   │   │   ├── netrc.py
    │   │   │   ├── nntplib.py
    │   │   │   ├── ntpath.py
    │   │   │   ├── nturl2path.py
    │   │   │   ├── numbers.py
    │   │   │   ├── opcode.py
    │   │   │   ├── optparse.py
    │   │   │   ├── os.py
    │   │   │   ├── os2emxpath.py
    │   │   │   ├── pdb.py
    │   │   │   ├── pickle.py
    │   │   │   ├── pickletools.py
    │   │   │   ├── pipes.py
    │   │   │   ├── pkgutil.py
    │   │   │   ├── platform.py
    │   │   │   ├── plistlib.py
    │   │   │   ├── poplib.py
    │   │   │   ├── posixpath.py
    │   │   │   ├── pprint.py
    │   │   │   ├── profile.py
    │   │   │   ├── pstats.py
    │   │   │   ├── pty.py
    │   │   │   ├── py_compile.py
    │   │   │   ├── pyclbr.py
    │   │   │   ├── pydoc.py
    │   │   │   ├── pydoc_data/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _pydoc.css
    │   │   │   │   └── topics.py
    │   │   │   ├── queue.py
    │   │   │   ├── quopri.py
    │   │   │   ├── random.py
    │   │   │   ├── re.py
    │   │   │   ├── reprlib.py
    │   │   │   ├── rlcompleter.py
    │   │   │   ├── runpy.py
    │   │   │   ├── sched.py
    │   │   │   ├── shelve.py
    │   │   │   ├── shlex.py
    │   │   │   ├── shutil.py
    │   │   │   ├── site-packages/
    │   │   │   │   └── README.txt
    │   │   │   ├── site.py
    │   │   │   ├── smtpd.py
    │   │   │   ├── smtplib.py
    │   │   │   ├── sndhdr.py
    │   │   │   ├── socket.py
    │   │   │   ├── socketserver.py
    │   │   │   ├── sqlite3/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── dbapi2.py
    │   │   │   │   └── dump.py
    │   │   │   ├── sre_compile.py
    │   │   │   ├── sre_constants.py
    │   │   │   ├── sre_parse.py
    │   │   │   ├── ssl.py
    │   │   │   ├── stat.py
    │   │   │   ├── string.py
    │   │   │   ├── stringprep.py
    │   │   │   ├── struct.py
    │   │   │   ├── subprocess.py
    │   │   │   ├── sunau.py
    │   │   │   ├── symbol.py
    │   │   │   ├── symtable.py
    │   │   │   ├── sysconfig.py
    │   │   │   ├── tabnanny.py
    │   │   │   ├── tarfile.py
    │   │   │   ├── telnetlib.py
    │   │   │   ├── tempfile.py
    │   │   │   ├── textwrap.py
    │   │   │   ├── this.py
    │   │   │   ├── threading.py
    │   │   │   ├── timeit.py
    │   │   │   ├── token.py
    │   │   │   ├── tokenize.py
    │   │   │   ├── trace.py
    │   │   │   ├── traceback.py
    │   │   │   ├── tty.py
    │   │   │   ├── turtle.py
    │   │   │   ├── types.py
    │   │   │   ├── unittest/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── __main__.py
    │   │   │   │   ├── case.py
    │   │   │   │   ├── loader.py
    │   │   │   │   ├── main.py
    │   │   │   │   ├── mock.py
    │   │   │   │   ├── result.py
    │   │   │   │   ├── runner.py
    │   │   │   │   ├── signals.py
    │   │   │   │   ├── suite.py
    │   │   │   │   └── util.py
    │   │   │   ├── urllib/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── error.py
    │   │   │   │   ├── parse.py
    │   │   │   │   ├── request.py
    │   │   │   │   ├── response.py
    │   │   │   │   └── robotparser.py
    │   │   │   ├── uu.py
    │   │   │   ├── uuid.py
    │   │   │   ├── venv/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── __main__.py
    │   │   │   │   └── scripts/
    │   │   │   │       ├── nt/
    │   │   │   │       │   ├── Activate.ps1
    │   │   │   │       │   ├── Deactivate.ps1
    │   │   │   │       │   ├── activate.bat
    │   │   │   │       │   └── deactivate.bat
    │   │   │   │       └── posix/
    │   │   │   │           └── activate
    │   │   │   ├── warnings.py
    │   │   │   ├── wave.py
    │   │   │   ├── weakref.py
    │   │   │   ├── webbrowser.py
    │   │   │   ├── wsgiref/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── handlers.py
    │   │   │   │   ├── headers.py
    │   │   │   │   ├── simple_server.py
    │   │   │   │   ├── util.py
    │   │   │   │   └── validate.py
    │   │   │   ├── xdrlib.py
    │   │   │   ├── xml/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── dom/
    │   │   │   │   │   ├── NodeFilter.py
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── domreg.py
    │   │   │   │   │   ├── expatbuilder.py
    │   │   │   │   │   ├── minicompat.py
    │   │   │   │   │   ├── minidom.py
    │   │   │   │   │   ├── pulldom.py
    │   │   │   │   │   └── xmlbuilder.py
    │   │   │   │   ├── etree/
    │   │   │   │   │   ├── ElementInclude.py
    │   │   │   │   │   ├── ElementPath.py
    │   │   │   │   │   ├── ElementTree.py
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── cElementTree.py
    │   │   │   │   ├── parsers/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── expat.py
    │   │   │   │   └── sax/
    │   │   │   │       ├── __init__.py
    │   │   │   │       ├── _exceptions.py
    │   │   │   │       ├── expatreader.py
    │   │   │   │       ├── handler.py
    │   │   │   │       ├── saxutils.py
    │   │   │   │       └── xmlreader.py
    │   │   │   ├── xmlrpc/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── client.py
    │   │   │   │   └── server.py
    │   │   │   └── zipfile.py
    │   │   ├── NEWS.txt
    │   │   ├── README.txt
    │   │   ├── include/
    │   │   │   ├── Python-ast.h
    │   │   │   ├── Python.h
    │   │   │   ├── abstract.h
    │   │   │   ├── accu.h
    │   │   │   ├── asdl.h
    │   │   │   ├── ast.h
    │   │   │   ├── bitset.h
    │   │   │   ├── bltinmodule.h
    │   │   │   ├── boolobject.h
    │   │   │   ├── bytearrayobject.h
    │   │   │   ├── bytes_methods.h
    │   │   │   ├── bytesobject.h
    │   │   │   ├── cellobject.h
    │   │   │   ├── ceval.h
    │   │   │   ├── classobject.h
    │   │   │   ├── code.h
    │   │   │   ├── codecs.h
    │   │   │   ├── compile.h
    │   │   │   ├── complexobject.h
    │   │   │   ├── datetime.h
    │   │   │   ├── descrobject.h
    │   │   │   ├── dictobject.h
    │   │   │   ├── dtoa.h
    │   │   │   ├── dynamic_annotations.h
    │   │   │   ├── enumobject.h
    │   │   │   ├── errcode.h
    │   │   │   ├── eval.h
    │   │   │   ├── fileobject.h
    │   │   │   ├── fileutils.h
    │   │   │   ├── floatobject.h
    │   │   │   ├── frameobject.h
    │   │   │   ├── funcobject.h
    │   │   │   ├── genobject.h
    │   │   │   ├── graminit.h
    │   │   │   ├── grammar.h
    │   │   │   ├── import.h
    │   │   │   ├── intrcheck.h
    │   │   │   ├── iterobject.h
    │   │   │   ├── listobject.h
    │   │   │   ├── longintrepr.h
    │   │   │   ├── longobject.h
    │   │   │   ├── marshal.h
    │   │   │   ├── memoryobject.h
    │   │   │   ├── metagrammar.h
    │   │   │   ├── methodobject.h
    │   │   │   ├── modsupport.h
    │   │   │   ├── moduleobject.h
    │   │   │   ├── namespaceobject.h
    │   │   │   ├── node.h
    │   │   │   ├── object.h
    │   │   │   ├── objimpl.h
    │   │   │   ├── opcode.h
    │   │   │   ├── osdefs.h
    │   │   │   ├── parsetok.h
    │   │   │   ├── patchlevel.h
    │   │   │   ├── pgen.h
    │   │   │   ├── pgenheaders.h
    │   │   │   ├── py_curses.h
    │   │   │   ├── pyarena.h
    │   │   │   ├── pyatomic.h
    │   │   │   ├── pycapsule.h
    │   │   │   ├── pyconfig.h
    │   │   │   ├── pyctype.h
    │   │   │   ├── pydebug.h
    │   │   │   ├── pyerrors.h
    │   │   │   ├── pyexpat.h
    │   │   │   ├── pyfpe.h
    │   │   │   ├── pygetopt.h
    │   │   │   ├── pymacconfig.h
    │   │   │   ├── pymacro.h
    │   │   │   ├── pymath.h
    │   │   │   ├── pymem.h
    │   │   │   ├── pyport.h
    │   │   │   ├── pystate.h
    │   │   │   ├── pystrcmp.h
    │   │   │   ├── pystrtod.h
    │   │   │   ├── pythonrun.h
    │   │   │   ├── pythread.h
    │   │   │   ├── pytime.h
    │   │   │   ├── rangeobject.h
    │   │   │   ├── setobject.h
    │   │   │   ├── sliceobject.h
    │   │   │   ├── structmember.h
    │   │   │   ├── structseq.h
    │   │   │   ├── symtable.h
    │   │   │   ├── sysmodule.h
    │   │   │   ├── token.h
    │   │   │   ├── traceback.h
    │   │   │   ├── tupleobject.h
    │   │   │   ├── typeslots.h
    │   │   │   ├── ucnhash.h
    │   │   │   ├── unicodeobject.h
    │   │   │   ├── warnings.h
    │   │   │   └── weakrefobject.h
    │   │   └── libs/
    │   │       └── libpython33.a
    │   ├── win64-py27/
    │   │   ├── DLLs/
    │   │   │   ├── _bsddb.pyd
    │   │   │   ├── _ctypes.pyd
    │   │   │   ├── _ctypes_test.pyd
    │   │   │   ├── _elementtree.pyd
    │   │   │   ├── _hashlib.pyd
    │   │   │   ├── _msi.pyd
    │   │   │   ├── _multiprocessing.pyd
    │   │   │   ├── _socket.pyd
    │   │   │   ├── _sqlite3.pyd
    │   │   │   ├── _ssl.pyd
    │   │   │   ├── _testcapi.pyd
    │   │   │   ├── bz2.pyd
    │   │   │   ├── pyexpat.pyd
    │   │   │   ├── select.pyd
    │   │   │   ├── unicodedata.pyd
    │   │   │   └── winsound.pyd
    │   │   ├── LICENSE.txt
    │   │   ├── Lib/
    │   │   │   ├── BaseHTTPServer.py
    │   │   │   ├── Bastion.py
    │   │   │   ├── CGIHTTPServer.py
    │   │   │   ├── ConfigParser.py
    │   │   │   ├── Cookie.py
    │   │   │   ├── DocXMLRPCServer.py
    │   │   │   ├── HTMLParser.py
    │   │   │   ├── MimeWriter.py
    │   │   │   ├── Queue.py
    │   │   │   ├── SimpleHTTPServer.py
    │   │   │   ├── SimpleXMLRPCServer.py
    │   │   │   ├── SocketServer.py
    │   │   │   ├── StringIO.py
    │   │   │   ├── UserDict.py
    │   │   │   ├── UserList.py
    │   │   │   ├── UserString.py
    │   │   │   ├── _LWPCookieJar.py
    │   │   │   ├── _MozillaCookieJar.py
    │   │   │   ├── __future__.py
    │   │   │   ├── __phello__.foo.py
    │   │   │   ├── _abcoll.py
    │   │   │   ├── _osx_support.py
    │   │   │   ├── _pyio.py
    │   │   │   ├── _strptime.py
    │   │   │   ├── _threading_local.py
    │   │   │   ├── _weakrefset.py
    │   │   │   ├── abc.py
    │   │   │   ├── aifc.py
    │   │   │   ├── antigravity.py
    │   │   │   ├── anydbm.py
    │   │   │   ├── argparse.py
    │   │   │   ├── ast.py
    │   │   │   ├── asynchat.py
    │   │   │   ├── asyncore.py
    │   │   │   ├── atexit.py
    │   │   │   ├── audiodev.py
    │   │   │   ├── base64.py
    │   │   │   ├── bdb.py
    │   │   │   ├── binhex.py
    │   │   │   ├── bisect.py
    │   │   │   ├── bsddb/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── db.py
    │   │   │   │   ├── dbobj.py
    │   │   │   │   ├── dbrecio.py
    │   │   │   │   ├── dbshelve.py
    │   │   │   │   ├── dbtables.py
    │   │   │   │   └── dbutils.py
    │   │   │   ├── cProfile.py
    │   │   │   ├── calendar.py
    │   │   │   ├── cgi.py
    │   │   │   ├── cgitb.py
    │   │   │   ├── chunk.py
    │   │   │   ├── cmd.py
    │   │   │   ├── code.py
    │   │   │   ├── codecs.py
    │   │   │   ├── codeop.py
    │   │   │   ├── collections.py
    │   │   │   ├── colorsys.py
    │   │   │   ├── commands.py
    │   │   │   ├── compileall.py
    │   │   │   ├── compiler/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── ast.py
    │   │   │   │   ├── consts.py
    │   │   │   │   ├── future.py
    │   │   │   │   ├── misc.py
    │   │   │   │   ├── pyassem.py
    │   │   │   │   ├── pycodegen.py
    │   │   │   │   ├── symbols.py
    │   │   │   │   ├── syntax.py
    │   │   │   │   ├── transformer.py
    │   │   │   │   └── visitor.py
    │   │   │   ├── contextlib.py
    │   │   │   ├── cookielib.py
    │   │   │   ├── copy.py
    │   │   │   ├── copy_reg.py
    │   │   │   ├── csv.py
    │   │   │   ├── ctypes/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _endian.py
    │   │   │   │   ├── macholib/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── dyld.py
    │   │   │   │   │   ├── dylib.py
    │   │   │   │   │   └── framework.py
    │   │   │   │   ├── util.py
    │   │   │   │   └── wintypes.py
    │   │   │   ├── curses/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── ascii.py
    │   │   │   │   ├── has_key.py
    │   │   │   │   ├── panel.py
    │   │   │   │   ├── textpad.py
    │   │   │   │   └── wrapper.py
    │   │   │   ├── dbhash.py
    │   │   │   ├── decimal.py
    │   │   │   ├── difflib.py
    │   │   │   ├── dircache.py
    │   │   │   ├── dis.py
    │   │   │   ├── distutils/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── archive_util.py
    │   │   │   │   ├── bcppcompiler.py
    │   │   │   │   ├── ccompiler.py
    │   │   │   │   ├── cmd.py
    │   │   │   │   ├── command/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── bdist.py
    │   │   │   │   │   ├── bdist_dumb.py
    │   │   │   │   │   ├── bdist_msi.py
    │   │   │   │   │   ├── bdist_rpm.py
    │   │   │   │   │   ├── bdist_wininst.py
    │   │   │   │   │   ├── build.py
    │   │   │   │   │   ├── build_clib.py
    │   │   │   │   │   ├── build_ext.py
    │   │   │   │   │   ├── build_py.py
    │   │   │   │   │   ├── build_scripts.py
    │   │   │   │   │   ├── check.py
    │   │   │   │   │   ├── clean.py
    │   │   │   │   │   ├── config.py
    │   │   │   │   │   ├── install.py
    │   │   │   │   │   ├── install_data.py
    │   │   │   │   │   ├── install_egg_info.py
    │   │   │   │   │   ├── install_headers.py
    │   │   │   │   │   ├── install_lib.py
    │   │   │   │   │   ├── install_scripts.py
    │   │   │   │   │   ├── register.py
    │   │   │   │   │   ├── sdist.py
    │   │   │   │   │   └── upload.py
    │   │   │   │   ├── config.py
    │   │   │   │   ├── core.py
    │   │   │   │   ├── cygwinccompiler.py
    │   │   │   │   ├── debug.py
    │   │   │   │   ├── dep_util.py
    │   │   │   │   ├── dir_util.py
    │   │   │   │   ├── dist.py
    │   │   │   │   ├── emxccompiler.py
    │   │   │   │   ├── errors.py
    │   │   │   │   ├── extension.py
    │   │   │   │   ├── fancy_getopt.py
    │   │   │   │   ├── file_util.py
    │   │   │   │   ├── filelist.py
    │   │   │   │   ├── log.py
    │   │   │   │   ├── msvc9compiler.py
    │   │   │   │   ├── msvccompiler.py
    │   │   │   │   ├── spawn.py
    │   │   │   │   ├── sysconfig.py
    │   │   │   │   ├── text_file.py
    │   │   │   │   ├── unixccompiler.py
    │   │   │   │   ├── util.py
    │   │   │   │   ├── version.py
    │   │   │   │   └── versionpredicate.py
    │   │   │   ├── doctest.py
    │   │   │   ├── dumbdbm.py
    │   │   │   ├── dummy_thread.py
    │   │   │   ├── dummy_threading.py
    │   │   │   ├── email/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _parseaddr.py
    │   │   │   │   ├── base64mime.py
    │   │   │   │   ├── charset.py
    │   │   │   │   ├── encoders.py
    │   │   │   │   ├── errors.py
    │   │   │   │   ├── feedparser.py
    │   │   │   │   ├── generator.py
    │   │   │   │   ├── header.py
    │   │   │   │   ├── iterators.py
    │   │   │   │   ├── message.py
    │   │   │   │   ├── mime/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── application.py
    │   │   │   │   │   ├── audio.py
    │   │   │   │   │   ├── base.py
    │   │   │   │   │   ├── image.py
    │   │   │   │   │   ├── message.py
    │   │   │   │   │   ├── multipart.py
    │   │   │   │   │   ├── nonmultipart.py
    │   │   │   │   │   └── text.py
    │   │   │   │   ├── parser.py
    │   │   │   │   ├── quoprimime.py
    │   │   │   │   └── utils.py
    │   │   │   ├── encodings/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── aliases.py
    │   │   │   │   ├── ascii.py
    │   │   │   │   ├── base64_codec.py
    │   │   │   │   ├── big5.py
    │   │   │   │   ├── big5hkscs.py
    │   │   │   │   ├── bz2_codec.py
    │   │   │   │   ├── charmap.py
    │   │   │   │   ├── cp037.py
    │   │   │   │   ├── cp1006.py
    │   │   │   │   ├── cp1026.py
    │   │   │   │   ├── cp1140.py
    │   │   │   │   ├── cp1250.py
    │   │   │   │   ├── cp1251.py
    │   │   │   │   ├── cp1252.py
    │   │   │   │   ├── cp1253.py
    │   │   │   │   ├── cp1254.py
    │   │   │   │   ├── cp1255.py
    │   │   │   │   ├── cp1256.py
    │   │   │   │   ├── cp1257.py
    │   │   │   │   ├── cp1258.py
    │   │   │   │   ├── cp424.py
    │   │   │   │   ├── cp437.py
    │   │   │   │   ├── cp500.py
    │   │   │   │   ├── cp720.py
    │   │   │   │   ├── cp737.py
    │   │   │   │   ├── cp775.py
    │   │   │   │   ├── cp850.py
    │   │   │   │   ├── cp852.py
    │   │   │   │   ├── cp855.py
    │   │   │   │   ├── cp856.py
    │   │   │   │   ├── cp857.py
    │   │   │   │   ├── cp858.py
    │   │   │   │   ├── cp860.py
    │   │   │   │   ├── cp861.py
    │   │   │   │   ├── cp862.py
    │   │   │   │   ├── cp863.py
    │   │   │   │   ├── cp864.py
    │   │   │   │   ├── cp865.py
    │   │   │   │   ├── cp866.py
    │   │   │   │   ├── cp869.py
    │   │   │   │   ├── cp874.py
    │   │   │   │   ├── cp875.py
    │   │   │   │   ├── cp932.py
    │   │   │   │   ├── cp949.py
    │   │   │   │   ├── cp950.py
    │   │   │   │   ├── euc_jis_2004.py
    │   │   │   │   ├── euc_jisx0213.py
    │   │   │   │   ├── euc_jp.py
    │   │   │   │   ├── euc_kr.py
    │   │   │   │   ├── gb18030.py
    │   │   │   │   ├── gb2312.py
    │   │   │   │   ├── gbk.py
    │   │   │   │   ├── hex_codec.py
    │   │   │   │   ├── hp_roman8.py
    │   │   │   │   ├── hz.py
    │   │   │   │   ├── idna.py
    │   │   │   │   ├── iso2022_jp.py
    │   │   │   │   ├── iso2022_jp_1.py
    │   │   │   │   ├── iso2022_jp_2.py
    │   │   │   │   ├── iso2022_jp_2004.py
    │   │   │   │   ├── iso2022_jp_3.py
    │   │   │   │   ├── iso2022_jp_ext.py
    │   │   │   │   ├── iso2022_kr.py
    │   │   │   │   ├── iso8859_1.py
    │   │   │   │   ├── iso8859_10.py
    │   │   │   │   ├── iso8859_11.py
    │   │   │   │   ├── iso8859_13.py
    │   │   │   │   ├── iso8859_14.py
    │   │   │   │   ├── iso8859_15.py
    │   │   │   │   ├── iso8859_16.py
    │   │   │   │   ├── iso8859_2.py
    │   │   │   │   ├── iso8859_3.py
    │   │   │   │   ├── iso8859_4.py
    │   │   │   │   ├── iso8859_5.py
    │   │   │   │   ├── iso8859_6.py
    │   │   │   │   ├── iso8859_7.py
    │   │   │   │   ├── iso8859_8.py
    │   │   │   │   ├── iso8859_9.py
    │   │   │   │   ├── johab.py
    │   │   │   │   ├── koi8_r.py
    │   │   │   │   ├── koi8_u.py
    │   │   │   │   ├── latin_1.py
    │   │   │   │   ├── mac_arabic.py
    │   │   │   │   ├── mac_centeuro.py
    │   │   │   │   ├── mac_croatian.py
    │   │   │   │   ├── mac_cyrillic.py
    │   │   │   │   ├── mac_farsi.py
    │   │   │   │   ├── mac_greek.py
    │   │   │   │   ├── mac_iceland.py
    │   │   │   │   ├── mac_latin2.py
    │   │   │   │   ├── mac_roman.py
    │   │   │   │   ├── mac_romanian.py
    │   │   │   │   ├── mac_turkish.py
    │   │   │   │   ├── mbcs.py
    │   │   │   │   ├── palmos.py
    │   │   │   │   ├── ptcp154.py
    │   │   │   │   ├── punycode.py
    │   │   │   │   ├── quopri_codec.py
    │   │   │   │   ├── raw_unicode_escape.py
    │   │   │   │   ├── rot_13.py
    │   │   │   │   ├── shift_jis.py
    │   │   │   │   ├── shift_jis_2004.py
    │   │   │   │   ├── shift_jisx0213.py
    │   │   │   │   ├── string_escape.py
    │   │   │   │   ├── tis_620.py
    │   │   │   │   ├── undefined.py
    │   │   │   │   ├── unicode_escape.py
    │   │   │   │   ├── unicode_internal.py
    │   │   │   │   ├── utf_16.py
    │   │   │   │   ├── utf_16_be.py
    │   │   │   │   ├── utf_16_le.py
    │   │   │   │   ├── utf_32.py
    │   │   │   │   ├── utf_32_be.py
    │   │   │   │   ├── utf_32_le.py
    │   │   │   │   ├── utf_7.py
    │   │   │   │   ├── utf_8.py
    │   │   │   │   ├── utf_8_sig.py
    │   │   │   │   ├── uu_codec.py
    │   │   │   │   └── zlib_codec.py
    │   │   │   ├── filecmp.py
    │   │   │   ├── fileinput.py
    │   │   │   ├── fnmatch.py
    │   │   │   ├── formatter.py
    │   │   │   ├── fpformat.py
    │   │   │   ├── fractions.py
    │   │   │   ├── ftplib.py
    │   │   │   ├── functools.py
    │   │   │   ├── genericpath.py
    │   │   │   ├── getopt.py
    │   │   │   ├── getpass.py
    │   │   │   ├── gettext.py
    │   │   │   ├── glob.py
    │   │   │   ├── gzip.py
    │   │   │   ├── hashlib.py
    │   │   │   ├── heapq.py
    │   │   │   ├── hmac.py
    │   │   │   ├── hotshot/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── log.py
    │   │   │   │   ├── stats.py
    │   │   │   │   └── stones.py
    │   │   │   ├── htmlentitydefs.py
    │   │   │   ├── htmllib.py
    │   │   │   ├── httplib.py
    │   │   │   ├── idlelib/
    │   │   │   │   └── idle_test/
    │   │   │   │       ├── README.txt
    │   │   │   │       ├── __init__.py
    │   │   │   │       ├── mock_idle.py
    │   │   │   │       ├── mock_tk.py
    │   │   │   │       ├── test_calltips.py
    │   │   │   │       ├── test_config_name.py
    │   │   │   │       ├── test_delegator.py
    │   │   │   │       ├── test_formatparagraph.py
    │   │   │   │       ├── test_grep.py
    │   │   │   │       ├── test_idlehistory.py
    │   │   │   │       ├── test_pathbrowser.py
    │   │   │   │       ├── test_rstrip.py
    │   │   │   │       ├── test_searchengine.py
    │   │   │   │       ├── test_text.py
    │   │   │   │       └── test_warning.py
    │   │   │   ├── ihooks.py
    │   │   │   ├── imaplib.py
    │   │   │   ├── imghdr.py
    │   │   │   ├── importlib/
    │   │   │   │   └── __init__.py
    │   │   │   ├── imputil.py
    │   │   │   ├── inspect.py
    │   │   │   ├── io.py
    │   │   │   ├── json/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── decoder.py
    │   │   │   │   ├── encoder.py
    │   │   │   │   ├── scanner.py
    │   │   │   │   └── tool.py
    │   │   │   ├── keyword.py
    │   │   │   ├── lib-tk/
    │   │   │   │   └── test/
    │   │   │   │       ├── test_tkinter/
    │   │   │   │       │   ├── __init__.py
    │   │   │   │       │   ├── test_loadtk.py
    │   │   │   │       │   └── test_text.py
    │   │   │   │       └── test_ttk/
    │   │   │   │           ├── __init__.py
    │   │   │   │           ├── support.py
    │   │   │   │           ├── test_extensions.py
    │   │   │   │           ├── test_functions.py
    │   │   │   │           ├── test_style.py
    │   │   │   │           └── test_widgets.py
    │   │   │   ├── lib2to3/
    │   │   │   │   ├── Grammar.txt
    │   │   │   │   ├── PatternGrammar.txt
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── __main__.py
    │   │   │   │   ├── btm_matcher.py
    │   │   │   │   ├── btm_utils.py
    │   │   │   │   ├── fixer_base.py
    │   │   │   │   ├── fixer_util.py
    │   │   │   │   ├── fixes/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── fix_apply.py
    │   │   │   │   │   ├── fix_basestring.py
    │   │   │   │   │   ├── fix_buffer.py
    │   │   │   │   │   ├── fix_callable.py
    │   │   │   │   │   ├── fix_dict.py
    │   │   │   │   │   ├── fix_except.py
    │   │   │   │   │   ├── fix_exec.py
    │   │   │   │   │   ├── fix_execfile.py
    │   │   │   │   │   ├── fix_exitfunc.py
    │   │   │   │   │   ├── fix_filter.py
    │   │   │   │   │   ├── fix_funcattrs.py
    │   │   │   │   │   ├── fix_future.py
    │   │   │   │   │   ├── fix_getcwdu.py
    │   │   │   │   │   ├── fix_has_key.py
    │   │   │   │   │   ├── fix_idioms.py
    │   │   │   │   │   ├── fix_import.py
    │   │   │   │   │   ├── fix_imports.py
    │   │   │   │   │   ├── fix_imports2.py
    │   │   │   │   │   ├── fix_input.py
    │   │   │   │   │   ├── fix_intern.py
    │   │   │   │   │   ├── fix_isinstance.py
    │   │   │   │   │   ├── fix_itertools.py
    │   │   │   │   │   ├── fix_itertools_imports.py
    │   │   │   │   │   ├── fix_long.py
    │   │   │   │   │   ├── fix_map.py
    │   │   │   │   │   ├── fix_metaclass.py
    │   │   │   │   │   ├── fix_methodattrs.py
    │   │   │   │   │   ├── fix_ne.py
    │   │   │   │   │   ├── fix_next.py
    │   │   │   │   │   ├── fix_nonzero.py
    │   │   │   │   │   ├── fix_numliterals.py
    │   │   │   │   │   ├── fix_operator.py
    │   │   │   │   │   ├── fix_paren.py
    │   │   │   │   │   ├── fix_print.py
    │   │   │   │   │   ├── fix_raise.py
    │   │   │   │   │   ├── fix_raw_input.py
    │   │   │   │   │   ├── fix_reduce.py
    │   │   │   │   │   ├── fix_renames.py
    │   │   │   │   │   ├── fix_repr.py
    │   │   │   │   │   ├── fix_set_literal.py
    │   │   │   │   │   ├── fix_standarderror.py
    │   │   │   │   │   ├── fix_sys_exc.py
    │   │   │   │   │   ├── fix_throw.py
    │   │   │   │   │   ├── fix_tuple_params.py
    │   │   │   │   │   ├── fix_types.py
    │   │   │   │   │   ├── fix_unicode.py
    │   │   │   │   │   ├── fix_urllib.py
    │   │   │   │   │   ├── fix_ws_comma.py
    │   │   │   │   │   ├── fix_xrange.py
    │   │   │   │   │   ├── fix_xreadlines.py
    │   │   │   │   │   └── fix_zip.py
    │   │   │   │   ├── main.py
    │   │   │   │   ├── patcomp.py
    │   │   │   │   ├── pgen2/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── conv.py
    │   │   │   │   │   ├── driver.py
    │   │   │   │   │   ├── grammar.py
    │   │   │   │   │   ├── literals.py
    │   │   │   │   │   ├── parse.py
    │   │   │   │   │   ├── pgen.py
    │   │   │   │   │   ├── token.py
    │   │   │   │   │   └── tokenize.py
    │   │   │   │   ├── pygram.py
    │   │   │   │   ├── pytree.py
    │   │   │   │   ├── refactor.py
    │   │   │   │   └── tests/
    │   │   │   │       └── data/
    │   │   │   │           └── fixers/
    │   │   │   │               ├── bad_order.py
    │   │   │   │               ├── myfixes/
    │   │   │   │               │   ├── __init__.py
    │   │   │   │               │   ├── fix_explicit.py
    │   │   │   │               │   ├── fix_first.py
    │   │   │   │               │   ├── fix_last.py
    │   │   │   │               │   ├── fix_parrot.py
    │   │   │   │               │   └── fix_preorder.py
    │   │   │   │               ├── no_fixer_cls.py
    │   │   │   │               └── parrot_example.py
    │   │   │   ├── linecache.py
    │   │   │   ├── locale.py
    │   │   │   ├── logging/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── config.py
    │   │   │   │   └── handlers.py
    │   │   │   ├── macpath.py
    │   │   │   ├── macurl2path.py
    │   │   │   ├── mailbox.py
    │   │   │   ├── mailcap.py
    │   │   │   ├── markupbase.py
    │   │   │   ├── md5.py
    │   │   │   ├── mhlib.py
    │   │   │   ├── mimetools.py
    │   │   │   ├── mimetypes.py
    │   │   │   ├── mimify.py
    │   │   │   ├── modulefinder.py
    │   │   │   ├── msilib/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── schema.py
    │   │   │   │   ├── sequence.py
    │   │   │   │   └── text.py
    │   │   │   ├── multifile.py
    │   │   │   ├── multiprocessing/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── connection.py
    │   │   │   │   ├── dummy/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── connection.py
    │   │   │   │   ├── forking.py
    │   │   │   │   ├── heap.py
    │   │   │   │   ├── managers.py
    │   │   │   │   ├── pool.py
    │   │   │   │   ├── process.py
    │   │   │   │   ├── queues.py
    │   │   │   │   ├── reduction.py
    │   │   │   │   ├── sharedctypes.py
    │   │   │   │   ├── synchronize.py
    │   │   │   │   └── util.py
    │   │   │   ├── mutex.py
    │   │   │   ├── netrc.py
    │   │   │   ├── new.py
    │   │   │   ├── nntplib.py
    │   │   │   ├── ntpath.py
    │   │   │   ├── nturl2path.py
    │   │   │   ├── numbers.py
    │   │   │   ├── opcode.py
    │   │   │   ├── optparse.py
    │   │   │   ├── os.py
    │   │   │   ├── os2emxpath.py
    │   │   │   ├── pdb.py
    │   │   │   ├── pickle.py
    │   │   │   ├── pickletools.py
    │   │   │   ├── pipes.py
    │   │   │   ├── pkgutil.py
    │   │   │   ├── platform.py
    │   │   │   ├── plistlib.py
    │   │   │   ├── popen2.py
    │   │   │   ├── poplib.py
    │   │   │   ├── posixfile.py
    │   │   │   ├── posixpath.py
    │   │   │   ├── pprint.py
    │   │   │   ├── profile.py
    │   │   │   ├── pstats.py
    │   │   │   ├── pty.py
    │   │   │   ├── py_compile.py
    │   │   │   ├── pyclbr.py
    │   │   │   ├── pydoc.py
    │   │   │   ├── pydoc_data/
    │   │   │   │   ├── __init__.py
    │   │   │   │   └── topics.py
    │   │   │   ├── quopri.py
    │   │   │   ├── random.py
    │   │   │   ├── re.py
    │   │   │   ├── repr.py
    │   │   │   ├── rexec.py
    │   │   │   ├── rfc822.py
    │   │   │   ├── rlcompleter.py
    │   │   │   ├── robotparser.py
    │   │   │   ├── runpy.py
    │   │   │   ├── sched.py
    │   │   │   ├── sets.py
    │   │   │   ├── sgmllib.py
    │   │   │   ├── sha.py
    │   │   │   ├── shelve.py
    │   │   │   ├── shlex.py
    │   │   │   ├── shutil.py
    │   │   │   ├── site-packages/
    │   │   │   │   └── README.txt
    │   │   │   ├── site.py
    │   │   │   ├── smtpd.py
    │   │   │   ├── smtplib.py
    │   │   │   ├── sndhdr.py
    │   │   │   ├── socket.py
    │   │   │   ├── sqlite3/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── dbapi2.py
    │   │   │   │   └── dump.py
    │   │   │   ├── sre.py
    │   │   │   ├── sre_compile.py
    │   │   │   ├── sre_constants.py
    │   │   │   ├── sre_parse.py
    │   │   │   ├── ssl.py
    │   │   │   ├── stat.py
    │   │   │   ├── statvfs.py
    │   │   │   ├── string.py
    │   │   │   ├── stringold.py
    │   │   │   ├── stringprep.py
    │   │   │   ├── struct.py
    │   │   │   ├── subprocess.py
    │   │   │   ├── sunau.py
    │   │   │   ├── sunaudio.py
    │   │   │   ├── symbol.py
    │   │   │   ├── symtable.py
    │   │   │   ├── sysconfig.py
    │   │   │   ├── tabnanny.py
    │   │   │   ├── tarfile.py
    │   │   │   ├── telnetlib.py
    │   │   │   ├── tempfile.py
    │   │   │   ├── test/
    │   │   │   │   ├── cjkencodings/
    │   │   │   │   │   ├── big5-utf8.txt
    │   │   │   │   │   ├── big5.txt
    │   │   │   │   │   ├── big5hkscs-utf8.txt
    │   │   │   │   │   ├── big5hkscs.txt
    │   │   │   │   │   ├── cp949-utf8.txt
    │   │   │   │   │   ├── cp949.txt
    │   │   │   │   │   ├── euc_jisx0213-utf8.txt
    │   │   │   │   │   ├── euc_jisx0213.txt
    │   │   │   │   │   ├── euc_jp-utf8.txt
    │   │   │   │   │   ├── euc_jp.txt
    │   │   │   │   │   ├── euc_kr-utf8.txt
    │   │   │   │   │   ├── euc_kr.txt
    │   │   │   │   │   ├── gb18030-utf8.txt
    │   │   │   │   │   ├── gb18030.txt
    │   │   │   │   │   ├── gb2312-utf8.txt
    │   │   │   │   │   ├── gb2312.txt
    │   │   │   │   │   ├── gbk-utf8.txt
    │   │   │   │   │   ├── gbk.txt
    │   │   │   │   │   ├── hz-utf8.txt
    │   │   │   │   │   ├── hz.txt
    │   │   │   │   │   ├── iso2022_jp-utf8.txt
    │   │   │   │   │   ├── iso2022_jp.txt
    │   │   │   │   │   ├── iso2022_kr-utf8.txt
    │   │   │   │   │   ├── iso2022_kr.txt
    │   │   │   │   │   ├── johab-utf8.txt
    │   │   │   │   │   ├── johab.txt
    │   │   │   │   │   ├── shift_jis-utf8.txt
    │   │   │   │   │   ├── shift_jis.txt
    │   │   │   │   │   ├── shift_jisx0213-utf8.txt
    │   │   │   │   │   └── shift_jisx0213.txt
    │   │   │   │   ├── crashers/
    │   │   │   │   │   ├── bogus_code_obj.py
    │   │   │   │   │   ├── borrowed_ref_1.py
    │   │   │   │   │   ├── borrowed_ref_2.py
    │   │   │   │   │   ├── buffer_mutate.py
    │   │   │   │   │   ├── compiler_recursion.py
    │   │   │   │   │   ├── decref_before_assignment.py
    │   │   │   │   │   ├── gc_has_finalizer.py
    │   │   │   │   │   ├── gc_inspection.py
    │   │   │   │   │   ├── infinite_loop_re.py
    │   │   │   │   │   ├── loosing_mro_ref.py
    │   │   │   │   │   ├── mutation_inside_cyclegc.py
    │   │   │   │   │   ├── nasty_eq_vs_dict.py
    │   │   │   │   │   ├── recursion_limit_too_high.py
    │   │   │   │   │   └── recursive_call.py
    │   │   │   │   ├── decimaltestdata/
    │   │   │   │   │   ├── abs.decTest
    │   │   │   │   │   ├── add.decTest
    │   │   │   │   │   ├── and.decTest
    │   │   │   │   │   ├── base.decTest
    │   │   │   │   │   ├── clamp.decTest
    │   │   │   │   │   ├── class.decTest
    │   │   │   │   │   ├── compare.decTest
    │   │   │   │   │   ├── comparetotal.decTest
    │   │   │   │   │   ├── comparetotmag.decTest
    │   │   │   │   │   ├── copy.decTest
    │   │   │   │   │   ├── copyabs.decTest
    │   │   │   │   │   ├── copynegate.decTest
    │   │   │   │   │   ├── copysign.decTest
    │   │   │   │   │   ├── ddAbs.decTest
    │   │   │   │   │   ├── ddAdd.decTest
    │   │   │   │   │   ├── ddAnd.decTest
    │   │   │   │   │   ├── ddBase.decTest
    │   │   │   │   │   ├── ddCanonical.decTest
    │   │   │   │   │   ├── ddClass.decTest
    │   │   │   │   │   ├── ddCompare.decTest
    │   │   │   │   │   ├── ddCompareSig.decTest
    │   │   │   │   │   ├── ddCompareTotal.decTest
    │   │   │   │   │   ├── ddCompareTotalMag.decTest
    │   │   │   │   │   ├── ddCopy.decTest
    │   │   │   │   │   ├── ddCopyAbs.decTest
    │   │   │   │   │   ├── ddCopyNegate.decTest
    │   │   │   │   │   ├── ddCopySign.decTest
    │   │   │   │   │   ├── ddDivide.decTest
    │   │   │   │   │   ├── ddDivideInt.decTest
    │   │   │   │   │   ├── ddEncode.decTest
    │   │   │   │   │   ├── ddFMA.decTest
    │   │   │   │   │   ├── ddInvert.decTest
    │   │   │   │   │   ├── ddLogB.decTest
    │   │   │   │   │   ├── ddMax.decTest
    │   │   │   │   │   ├── ddMaxMag.decTest
    │   │   │   │   │   ├── ddMin.decTest
    │   │   │   │   │   ├── ddMinMag.decTest
    │   │   │   │   │   ├── ddMinus.decTest
    │   │   │   │   │   ├── ddMultiply.decTest
    │   │   │   │   │   ├── ddNextMinus.decTest
    │   │   │   │   │   ├── ddNextPlus.decTest
    │   │   │   │   │   ├── ddNextToward.decTest
    │   │   │   │   │   ├── ddOr.decTest
    │   │   │   │   │   ├── ddPlus.decTest
    │   │   │   │   │   ├── ddQuantize.decTest
    │   │   │   │   │   ├── ddReduce.decTest
    │   │   │   │   │   ├── ddRemainder.decTest
    │   │   │   │   │   ├── ddRemainderNear.decTest
    │   │   │   │   │   ├── ddRotate.decTest
    │   │   │   │   │   ├── ddSameQuantum.decTest
    │   │   │   │   │   ├── ddScaleB.decTest
    │   │   │   │   │   ├── ddShift.decTest
    │   │   │   │   │   ├── ddSubtract.decTest
    │   │   │   │   │   ├── ddToIntegral.decTest
    │   │   │   │   │   ├── ddXor.decTest
    │   │   │   │   │   ├── decDouble.decTest
    │   │   │   │   │   ├── decQuad.decTest
    │   │   │   │   │   ├── decSingle.decTest
    │   │   │   │   │   ├── divide.decTest
    │   │   │   │   │   ├── divideint.decTest
    │   │   │   │   │   ├── dqAbs.decTest
    │   │   │   │   │   ├── dqAdd.decTest
    │   │   │   │   │   ├── dqAnd.decTest
    │   │   │   │   │   ├── dqBase.decTest
    │   │   │   │   │   ├── dqCanonical.decTest
    │   │   │   │   │   ├── dqClass.decTest
    │   │   │   │   │   ├── dqCompare.decTest
    │   │   │   │   │   ├── dqCompareSig.decTest
    │   │   │   │   │   ├── dqCompareTotal.decTest
    │   │   │   │   │   ├── dqCompareTotalMag.decTest
    │   │   │   │   │   ├── dqCopy.decTest
    │   │   │   │   │   ├── dqCopyAbs.decTest
    │   │   │   │   │   ├── dqCopyNegate.decTest
    │   │   │   │   │   ├── dqCopySign.decTest
    │   │   │   │   │   ├── dqDivide.decTest
    │   │   │   │   │   ├── dqDivideInt.decTest
    │   │   │   │   │   ├── dqEncode.decTest
    │   │   │   │   │   ├── dqFMA.decTest
    │   │   │   │   │   ├── dqInvert.decTest
    │   │   │   │   │   ├── dqLogB.decTest
    │   │   │   │   │   ├── dqMax.decTest
    │   │   │   │   │   ├── dqMaxMag.decTest
    │   │   │   │   │   ├── dqMin.decTest
    │   │   │   │   │   ├── dqMinMag.decTest
    │   │   │   │   │   ├── dqMinus.decTest
    │   │   │   │   │   ├── dqMultiply.decTest
    │   │   │   │   │   ├── dqNextMinus.decTest
    │   │   │   │   │   ├── dqNextPlus.decTest
    │   │   │   │   │   ├── dqNextToward.decTest
    │   │   │   │   │   ├── dqOr.decTest
    │   │   │   │   │   ├── dqPlus.decTest
    │   │   │   │   │   ├── dqQuantize.decTest
    │   │   │   │   │   ├── dqReduce.decTest
    │   │   │   │   │   ├── dqRemainder.decTest
    │   │   │   │   │   ├── dqRemainderNear.decTest
    │   │   │   │   │   ├── dqRotate.decTest
    │   │   │   │   │   ├── dqSameQuantum.decTest
    │   │   │   │   │   ├── dqScaleB.decTest
    │   │   │   │   │   ├── dqShift.decTest
    │   │   │   │   │   ├── dqSubtract.decTest
    │   │   │   │   │   ├── dqToIntegral.decTest
    │   │   │   │   │   ├── dqXor.decTest
    │   │   │   │   │   ├── dsBase.decTest
    │   │   │   │   │   ├── dsEncode.decTest
    │   │   │   │   │   ├── exp.decTest
    │   │   │   │   │   ├── extra.decTest
    │   │   │   │   │   ├── fma.decTest
    │   │   │   │   │   ├── inexact.decTest
    │   │   │   │   │   ├── invert.decTest
    │   │   │   │   │   ├── ln.decTest
    │   │   │   │   │   ├── log10.decTest
    │   │   │   │   │   ├── logb.decTest
    │   │   │   │   │   ├── max.decTest
    │   │   │   │   │   ├── maxmag.decTest
    │   │   │   │   │   ├── min.decTest
    │   │   │   │   │   ├── minmag.decTest
    │   │   │   │   │   ├── minus.decTest
    │   │   │   │   │   ├── multiply.decTest
    │   │   │   │   │   ├── nextminus.decTest
    │   │   │   │   │   ├── nextplus.decTest
    │   │   │   │   │   ├── nexttoward.decTest
    │   │   │   │   │   ├── or.decTest
    │   │   │   │   │   ├── plus.decTest
    │   │   │   │   │   ├── power.decTest
    │   │   │   │   │   ├── powersqrt.decTest
    │   │   │   │   │   ├── quantize.decTest
    │   │   │   │   │   ├── randomBound32.decTest
    │   │   │   │   │   ├── randoms.decTest
    │   │   │   │   │   ├── reduce.decTest
    │   │   │   │   │   ├── remainder.decTest
    │   │   │   │   │   ├── remainderNear.decTest
    │   │   │   │   │   ├── rescale.decTest
    │   │   │   │   │   ├── rotate.decTest
    │   │   │   │   │   ├── rounding.decTest
    │   │   │   │   │   ├── samequantum.decTest
    │   │   │   │   │   ├── scaleb.decTest
    │   │   │   │   │   ├── shift.decTest
    │   │   │   │   │   ├── squareroot.decTest
    │   │   │   │   │   ├── subtract.decTest
    │   │   │   │   │   ├── testall.decTest
    │   │   │   │   │   ├── tointegral.decTest
    │   │   │   │   │   ├── tointegralx.decTest
    │   │   │   │   │   └── xor.decTest
    │   │   │   │   ├── leakers/
    │   │   │   │   │   ├── README.txt
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── test_ctypes.py
    │   │   │   │   │   ├── test_dictself.py
    │   │   │   │   │   ├── test_gestalt.py
    │   │   │   │   │   └── test_selftype.py
    │   │   │   │   ├── subprocessdata/
    │   │   │   │   │   └── sigchild_ignore.py
    │   │   │   │   ├── tracedmodules/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── testmod.py
    │   │   │   │   └── xmltestdata/
    │   │   │   │       ├── simple-ns.xml
    │   │   │   │       ├── simple.xml
    │   │   │   │       ├── test.xml
    │   │   │   │       └── test.xml.out
    │   │   │   ├── textwrap.py
    │   │   │   ├── this.py
    │   │   │   ├── threading.py
    │   │   │   ├── timeit.py
    │   │   │   ├── toaiff.py
    │   │   │   ├── token.py
    │   │   │   ├── tokenize.py
    │   │   │   ├── trace.py
    │   │   │   ├── traceback.py
    │   │   │   ├── tty.py
    │   │   │   ├── types.py
    │   │   │   ├── unittest/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── __main__.py
    │   │   │   │   ├── case.py
    │   │   │   │   ├── loader.py
    │   │   │   │   ├── main.py
    │   │   │   │   ├── result.py
    │   │   │   │   ├── runner.py
    │   │   │   │   ├── signals.py
    │   │   │   │   ├── suite.py
    │   │   │   │   └── util.py
    │   │   │   ├── urllib.py
    │   │   │   ├── urllib2.py
    │   │   │   ├── urlparse.py
    │   │   │   ├── user.py
    │   │   │   ├── uu.py
    │   │   │   ├── uuid.py
    │   │   │   ├── warnings.py
    │   │   │   ├── wave.py
    │   │   │   ├── weakref.py
    │   │   │   ├── webbrowser.py
    │   │   │   ├── whichdb.py
    │   │   │   ├── wsgiref/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── handlers.py
    │   │   │   │   ├── headers.py
    │   │   │   │   ├── simple_server.py
    │   │   │   │   ├── util.py
    │   │   │   │   └── validate.py
    │   │   │   ├── xdrlib.py
    │   │   │   ├── xml/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── dom/
    │   │   │   │   │   ├── NodeFilter.py
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── domreg.py
    │   │   │   │   │   ├── expatbuilder.py
    │   │   │   │   │   ├── minicompat.py
    │   │   │   │   │   ├── minidom.py
    │   │   │   │   │   ├── pulldom.py
    │   │   │   │   │   └── xmlbuilder.py
    │   │   │   │   ├── etree/
    │   │   │   │   │   ├── ElementInclude.py
    │   │   │   │   │   ├── ElementPath.py
    │   │   │   │   │   ├── ElementTree.py
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── cElementTree.py
    │   │   │   │   ├── parsers/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── expat.py
    │   │   │   │   └── sax/
    │   │   │   │       ├── __init__.py
    │   │   │   │       ├── _exceptions.py
    │   │   │   │       ├── expatreader.py
    │   │   │   │       ├── handler.py
    │   │   │   │       ├── saxutils.py
    │   │   │   │       └── xmlreader.py
    │   │   │   ├── xmllib.py
    │   │   │   ├── xmlrpclib.py
    │   │   │   └── zipfile.py
    │   │   ├── NEWS.txt
    │   │   ├── README.txt
    │   │   └── include/
    │   │       ├── Python-ast.h
    │   │       ├── Python.h
    │   │       ├── abstract.h
    │   │       ├── asdl.h
    │   │       ├── ast.h
    │   │       ├── bitset.h
    │   │       ├── boolobject.h
    │   │       ├── bufferobject.h
    │   │       ├── bytearrayobject.h
    │   │       ├── bytes_methods.h
    │   │       ├── bytesobject.h
    │   │       ├── cStringIO.h
    │   │       ├── cellobject.h
    │   │       ├── ceval.h
    │   │       ├── classobject.h
    │   │       ├── cobject.h
    │   │       ├── code.h
    │   │       ├── codecs.h
    │   │       ├── compile.h
    │   │       ├── complexobject.h
    │   │       ├── datetime.h
    │   │       ├── descrobject.h
    │   │       ├── dictobject.h
    │   │       ├── dtoa.h
    │   │       ├── enumobject.h
    │   │       ├── errcode.h
    │   │       ├── eval.h
    │   │       ├── fileobject.h
    │   │       ├── floatobject.h
    │   │       ├── frameobject.h
    │   │       ├── funcobject.h
    │   │       ├── genobject.h
    │   │       ├── graminit.h
    │   │       ├── grammar.h
    │   │       ├── import.h
    │   │       ├── intobject.h
    │   │       ├── intrcheck.h
    │   │       ├── iterobject.h
    │   │       ├── listobject.h
    │   │       ├── longintrepr.h
    │   │       ├── longobject.h
    │   │       ├── marshal.h
    │   │       ├── memoryobject.h
    │   │       ├── metagrammar.h
    │   │       ├── methodobject.h
    │   │       ├── modsupport.h
    │   │       ├── moduleobject.h
    │   │       ├── node.h
    │   │       ├── object.h
    │   │       ├── objimpl.h
    │   │       ├── opcode.h
    │   │       ├── osdefs.h
    │   │       ├── parsetok.h
    │   │       ├── patchlevel.h
    │   │       ├── pgen.h
    │   │       ├── pgenheaders.h
    │   │       ├── py_curses.h
    │   │       ├── pyarena.h
    │   │       ├── pycapsule.h
    │   │       ├── pyconfig.h
    │   │       ├── pyctype.h
    │   │       ├── pydebug.h
    │   │       ├── pyerrors.h
    │   │       ├── pyexpat.h
    │   │       ├── pyfpe.h
    │   │       ├── pygetopt.h
    │   │       ├── pymacconfig.h
    │   │       ├── pymactoolbox.h
    │   │       ├── pymath.h
    │   │       ├── pymem.h
    │   │       ├── pyport.h
    │   │       ├── pystate.h
    │   │       ├── pystrcmp.h
    │   │       ├── pystrtod.h
    │   │       ├── pythonrun.h
    │   │       ├── pythread.h
    │   │       ├── rangeobject.h
    │   │       ├── setobject.h
    │   │       ├── sliceobject.h
    │   │       ├── stringobject.h
    │   │       ├── structmember.h
    │   │       ├── structseq.h
    │   │       ├── symtable.h
    │   │       ├── sysmodule.h
    │   │       ├── timefuncs.h
    │   │       ├── token.h
    │   │       ├── traceback.h
    │   │       ├── tupleobject.h
    │   │       ├── ucnhash.h
    │   │       ├── unicodeobject.h
    │   │       ├── warnings.h
    │   │       └── weakrefobject.h
    │   ├── win64-py32/
    │   │   ├── DLLs/
    │   │   │   ├── _ctypes.pyd
    │   │   │   ├── _ctypes_test.pyd
    │   │   │   ├── _elementtree.pyd
    │   │   │   ├── _hashlib.pyd
    │   │   │   ├── _msi.pyd
    │   │   │   ├── _multiprocessing.pyd
    │   │   │   ├── _socket.pyd
    │   │   │   ├── _sqlite3.pyd
    │   │   │   ├── _ssl.pyd
    │   │   │   ├── _testcapi.pyd
    │   │   │   ├── bz2.pyd
    │   │   │   ├── pyexpat.pyd
    │   │   │   ├── select.pyd
    │   │   │   ├── unicodedata.pyd
    │   │   │   └── winsound.pyd
    │   │   ├── LICENSE.txt
    │   │   ├── Lib/
    │   │   │   ├── __future__.py
    │   │   │   ├── __phello__.foo.py
    │   │   │   ├── _abcoll.py
    │   │   │   ├── _compat_pickle.py
    │   │   │   ├── _dummy_thread.py
    │   │   │   ├── _markupbase.py
    │   │   │   ├── _osx_support.py
    │   │   │   ├── _pyio.py
    │   │   │   ├── _strptime.py
    │   │   │   ├── _threading_local.py
    │   │   │   ├── _weakrefset.py
    │   │   │   ├── abc.py
    │   │   │   ├── aifc.py
    │   │   │   ├── antigravity.py
    │   │   │   ├── argparse.py
    │   │   │   ├── ast.py
    │   │   │   ├── asynchat.py
    │   │   │   ├── asyncore.py
    │   │   │   ├── base64.py
    │   │   │   ├── bdb.py
    │   │   │   ├── binhex.py
    │   │   │   ├── bisect.py
    │   │   │   ├── cProfile.py
    │   │   │   ├── calendar.py
    │   │   │   ├── cgi.py
    │   │   │   ├── cgitb.py
    │   │   │   ├── chunk.py
    │   │   │   ├── cmd.py
    │   │   │   ├── code.py
    │   │   │   ├── codecs.py
    │   │   │   ├── codeop.py
    │   │   │   ├── collections.py
    │   │   │   ├── colorsys.py
    │   │   │   ├── compileall.py
    │   │   │   ├── concurrent/
    │   │   │   │   ├── __init__.py
    │   │   │   │   └── futures/
    │   │   │   │       ├── __init__.py
    │   │   │   │       ├── _base.py
    │   │   │   │       ├── process.py
    │   │   │   │       └── thread.py
    │   │   │   ├── configparser.py
    │   │   │   ├── contextlib.py
    │   │   │   ├── copy.py
    │   │   │   ├── copyreg.py
    │   │   │   ├── csv.py
    │   │   │   ├── ctypes/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _endian.py
    │   │   │   │   ├── macholib/
    │   │   │   │   │   ├── README.ctypes
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── dyld.py
    │   │   │   │   │   ├── dylib.py
    │   │   │   │   │   ├── fetch_macholib
    │   │   │   │   │   ├── fetch_macholib.bat
    │   │   │   │   │   └── framework.py
    │   │   │   │   ├── util.py
    │   │   │   │   └── wintypes.py
    │   │   │   ├── curses/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── ascii.py
    │   │   │   │   ├── has_key.py
    │   │   │   │   ├── panel.py
    │   │   │   │   ├── textpad.py
    │   │   │   │   └── wrapper.py
    │   │   │   ├── datetime.py
    │   │   │   ├── dbm/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── dumb.py
    │   │   │   │   ├── gnu.py
    │   │   │   │   └── ndbm.py
    │   │   │   ├── decimal.py
    │   │   │   ├── difflib.py
    │   │   │   ├── dis.py
    │   │   │   ├── distutils/
    │   │   │   │   ├── README
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── archive_util.py
    │   │   │   │   ├── bcppcompiler.py
    │   │   │   │   ├── ccompiler.py
    │   │   │   │   ├── cmd.py
    │   │   │   │   ├── command/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── bdist.py
    │   │   │   │   │   ├── bdist_dumb.py
    │   │   │   │   │   ├── bdist_msi.py
    │   │   │   │   │   ├── bdist_rpm.py
    │   │   │   │   │   ├── bdist_wininst.py
    │   │   │   │   │   ├── build.py
    │   │   │   │   │   ├── build_clib.py
    │   │   │   │   │   ├── build_ext.py
    │   │   │   │   │   ├── build_py.py
    │   │   │   │   │   ├── build_scripts.py
    │   │   │   │   │   ├── check.py
    │   │   │   │   │   ├── clean.py
    │   │   │   │   │   ├── command_template
    │   │   │   │   │   ├── config.py
    │   │   │   │   │   ├── install.py
    │   │   │   │   │   ├── install_data.py
    │   │   │   │   │   ├── install_egg_info.py
    │   │   │   │   │   ├── install_headers.py
    │   │   │   │   │   ├── install_lib.py
    │   │   │   │   │   ├── install_scripts.py
    │   │   │   │   │   ├── register.py
    │   │   │   │   │   ├── sdist.py
    │   │   │   │   │   └── upload.py
    │   │   │   │   ├── config.py
    │   │   │   │   ├── core.py
    │   │   │   │   ├── cygwinccompiler.py
    │   │   │   │   ├── debug.py
    │   │   │   │   ├── dep_util.py
    │   │   │   │   ├── dir_util.py
    │   │   │   │   ├── dist.py
    │   │   │   │   ├── emxccompiler.py
    │   │   │   │   ├── errors.py
    │   │   │   │   ├── extension.py
    │   │   │   │   ├── fancy_getopt.py
    │   │   │   │   ├── file_util.py
    │   │   │   │   ├── filelist.py
    │   │   │   │   ├── log.py
    │   │   │   │   ├── msvc9compiler.py
    │   │   │   │   ├── msvccompiler.py
    │   │   │   │   ├── spawn.py
    │   │   │   │   ├── sysconfig.py
    │   │   │   │   ├── text_file.py
    │   │   │   │   ├── unixccompiler.py
    │   │   │   │   ├── util.py
    │   │   │   │   ├── version.py
    │   │   │   │   └── versionpredicate.py
    │   │   │   ├── doctest.py
    │   │   │   ├── dummy_threading.py
    │   │   │   ├── email/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _parseaddr.py
    │   │   │   │   ├── base64mime.py
    │   │   │   │   ├── charset.py
    │   │   │   │   ├── encoders.py
    │   │   │   │   ├── errors.py
    │   │   │   │   ├── feedparser.py
    │   │   │   │   ├── generator.py
    │   │   │   │   ├── header.py
    │   │   │   │   ├── iterators.py
    │   │   │   │   ├── message.py
    │   │   │   │   ├── mime/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── application.py
    │   │   │   │   │   ├── audio.py
    │   │   │   │   │   ├── base.py
    │   │   │   │   │   ├── image.py
    │   │   │   │   │   ├── message.py
    │   │   │   │   │   ├── multipart.py
    │   │   │   │   │   ├── nonmultipart.py
    │   │   │   │   │   └── text.py
    │   │   │   │   ├── parser.py
    │   │   │   │   ├── quoprimime.py
    │   │   │   │   └── utils.py
    │   │   │   ├── encodings/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── aliases.py
    │   │   │   │   ├── ascii.py
    │   │   │   │   ├── base64_codec.py
    │   │   │   │   ├── big5.py
    │   │   │   │   ├── big5hkscs.py
    │   │   │   │   ├── bz2_codec.py
    │   │   │   │   ├── charmap.py
    │   │   │   │   ├── cp037.py
    │   │   │   │   ├── cp1006.py
    │   │   │   │   ├── cp1026.py
    │   │   │   │   ├── cp1140.py
    │   │   │   │   ├── cp1250.py
    │   │   │   │   ├── cp1251.py
    │   │   │   │   ├── cp1252.py
    │   │   │   │   ├── cp1253.py
    │   │   │   │   ├── cp1254.py
    │   │   │   │   ├── cp1255.py
    │   │   │   │   ├── cp1256.py
    │   │   │   │   ├── cp1257.py
    │   │   │   │   ├── cp1258.py
    │   │   │   │   ├── cp424.py
    │   │   │   │   ├── cp437.py
    │   │   │   │   ├── cp500.py
    │   │   │   │   ├── cp720.py
    │   │   │   │   ├── cp737.py
    │   │   │   │   ├── cp775.py
    │   │   │   │   ├── cp850.py
    │   │   │   │   ├── cp852.py
    │   │   │   │   ├── cp855.py
    │   │   │   │   ├── cp856.py
    │   │   │   │   ├── cp857.py
    │   │   │   │   ├── cp858.py
    │   │   │   │   ├── cp860.py
    │   │   │   │   ├── cp861.py
    │   │   │   │   ├── cp862.py
    │   │   │   │   ├── cp863.py
    │   │   │   │   ├── cp864.py
    │   │   │   │   ├── cp865.py
    │   │   │   │   ├── cp866.py
    │   │   │   │   ├── cp869.py
    │   │   │   │   ├── cp874.py
    │   │   │   │   ├── cp875.py
    │   │   │   │   ├── cp932.py
    │   │   │   │   ├── cp949.py
    │   │   │   │   ├── cp950.py
    │   │   │   │   ├── euc_jis_2004.py
    │   │   │   │   ├── euc_jisx0213.py
    │   │   │   │   ├── euc_jp.py
    │   │   │   │   ├── euc_kr.py
    │   │   │   │   ├── gb18030.py
    │   │   │   │   ├── gb2312.py
    │   │   │   │   ├── gbk.py
    │   │   │   │   ├── hex_codec.py
    │   │   │   │   ├── hp_roman8.py
    │   │   │   │   ├── hz.py
    │   │   │   │   ├── idna.py
    │   │   │   │   ├── iso2022_jp.py
    │   │   │   │   ├── iso2022_jp_1.py
    │   │   │   │   ├── iso2022_jp_2.py
    │   │   │   │   ├── iso2022_jp_2004.py
    │   │   │   │   ├── iso2022_jp_3.py
    │   │   │   │   ├── iso2022_jp_ext.py
    │   │   │   │   ├── iso2022_kr.py
    │   │   │   │   ├── iso8859_1.py
    │   │   │   │   ├── iso8859_10.py
    │   │   │   │   ├── iso8859_11.py
    │   │   │   │   ├── iso8859_13.py
    │   │   │   │   ├── iso8859_14.py
    │   │   │   │   ├── iso8859_15.py
    │   │   │   │   ├── iso8859_16.py
    │   │   │   │   ├── iso8859_2.py
    │   │   │   │   ├── iso8859_3.py
    │   │   │   │   ├── iso8859_4.py
    │   │   │   │   ├── iso8859_5.py
    │   │   │   │   ├── iso8859_6.py
    │   │   │   │   ├── iso8859_7.py
    │   │   │   │   ├── iso8859_8.py
    │   │   │   │   ├── iso8859_9.py
    │   │   │   │   ├── johab.py
    │   │   │   │   ├── koi8_r.py
    │   │   │   │   ├── koi8_u.py
    │   │   │   │   ├── latin_1.py
    │   │   │   │   ├── mac_arabic.py
    │   │   │   │   ├── mac_centeuro.py
    │   │   │   │   ├── mac_croatian.py
    │   │   │   │   ├── mac_cyrillic.py
    │   │   │   │   ├── mac_farsi.py
    │   │   │   │   ├── mac_greek.py
    │   │   │   │   ├── mac_iceland.py
    │   │   │   │   ├── mac_latin2.py
    │   │   │   │   ├── mac_roman.py
    │   │   │   │   ├── mac_romanian.py
    │   │   │   │   ├── mac_turkish.py
    │   │   │   │   ├── mbcs.py
    │   │   │   │   ├── palmos.py
    │   │   │   │   ├── ptcp154.py
    │   │   │   │   ├── punycode.py
    │   │   │   │   ├── quopri_codec.py
    │   │   │   │   ├── raw_unicode_escape.py
    │   │   │   │   ├── rot_13.py
    │   │   │   │   ├── shift_jis.py
    │   │   │   │   ├── shift_jis_2004.py
    │   │   │   │   ├── shift_jisx0213.py
    │   │   │   │   ├── tis_620.py
    │   │   │   │   ├── undefined.py
    │   │   │   │   ├── unicode_escape.py
    │   │   │   │   ├── unicode_internal.py
    │   │   │   │   ├── utf_16.py
    │   │   │   │   ├── utf_16_be.py
    │   │   │   │   ├── utf_16_le.py
    │   │   │   │   ├── utf_32.py
    │   │   │   │   ├── utf_32_be.py
    │   │   │   │   ├── utf_32_le.py
    │   │   │   │   ├── utf_7.py
    │   │   │   │   ├── utf_8.py
    │   │   │   │   ├── utf_8_sig.py
    │   │   │   │   ├── uu_codec.py
    │   │   │   │   └── zlib_codec.py
    │   │   │   ├── filecmp.py
    │   │   │   ├── fileinput.py
    │   │   │   ├── fnmatch.py
    │   │   │   ├── formatter.py
    │   │   │   ├── fractions.py
    │   │   │   ├── ftplib.py
    │   │   │   ├── functools.py
    │   │   │   ├── genericpath.py
    │   │   │   ├── getopt.py
    │   │   │   ├── getpass.py
    │   │   │   ├── gettext.py
    │   │   │   ├── glob.py
    │   │   │   ├── gzip.py
    │   │   │   ├── hashlib.py
    │   │   │   ├── heapq.py
    │   │   │   ├── hmac.py
    │   │   │   ├── html/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── entities.py
    │   │   │   │   └── parser.py
    │   │   │   ├── http/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── client.py
    │   │   │   │   ├── cookiejar.py
    │   │   │   │   ├── cookies.py
    │   │   │   │   └── server.py
    │   │   │   ├── imaplib.py
    │   │   │   ├── imghdr.py
    │   │   │   ├── importlib/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _bootstrap.py
    │   │   │   │   ├── abc.py
    │   │   │   │   ├── machinery.py
    │   │   │   │   ├── test/
    │   │   │   │   │   ├── builtin/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── test_finder.py
    │   │   │   │   │   │   ├── test_loader.py
    │   │   │   │   │   │   └── util.py
    │   │   │   │   │   ├── extension/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── test_case_sensitivity.py
    │   │   │   │   │   │   ├── test_finder.py
    │   │   │   │   │   │   ├── test_loader.py
    │   │   │   │   │   │   ├── test_path_hook.py
    │   │   │   │   │   │   └── util.py
    │   │   │   │   │   ├── frozen/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── test_finder.py
    │   │   │   │   │   │   └── test_loader.py
    │   │   │   │   │   ├── import_/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── test___package__.py
    │   │   │   │   │   │   ├── test_api.py
    │   │   │   │   │   │   ├── test_caching.py
    │   │   │   │   │   │   ├── test_fromlist.py
    │   │   │   │   │   │   ├── test_meta_path.py
    │   │   │   │   │   │   ├── test_packages.py
    │   │   │   │   │   │   ├── test_path.py
    │   │   │   │   │   │   ├── test_relative_imports.py
    │   │   │   │   │   │   └── util.py
    │   │   │   │   │   └── source/
    │   │   │   │   │       ├── __init__.py
    │   │   │   │   │       ├── test_abc_loader.py
    │   │   │   │   │       ├── test_case_sensitivity.py
    │   │   │   │   │       ├── test_file_loader.py
    │   │   │   │   │       ├── test_finder.py
    │   │   │   │   │       ├── test_path_hook.py
    │   │   │   │   │       ├── test_source_encoding.py
    │   │   │   │   │       └── util.py
    │   │   │   │   └── util.py
    │   │   │   ├── inspect.py
    │   │   │   ├── io.py
    │   │   │   ├── json/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── decoder.py
    │   │   │   │   ├── encoder.py
    │   │   │   │   ├── scanner.py
    │   │   │   │   └── tool.py
    │   │   │   ├── keyword.py
    │   │   │   ├── lib2to3/
    │   │   │   │   ├── Grammar.txt
    │   │   │   │   ├── Grammar3.2.5.final.0.pickle
    │   │   │   │   ├── PatternGrammar.txt
    │   │   │   │   ├── PatternGrammar3.2.5.final.0.pickle
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── btm_matcher.py
    │   │   │   │   ├── btm_utils.py
    │   │   │   │   ├── fixer_base.py
    │   │   │   │   ├── fixer_util.py
    │   │   │   │   ├── fixes/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── fix_apply.py
    │   │   │   │   │   ├── fix_basestring.py
    │   │   │   │   │   ├── fix_buffer.py
    │   │   │   │   │   ├── fix_callable.py
    │   │   │   │   │   ├── fix_dict.py
    │   │   │   │   │   ├── fix_except.py
    │   │   │   │   │   ├── fix_exec.py
    │   │   │   │   │   ├── fix_execfile.py
    │   │   │   │   │   ├── fix_exitfunc.py
    │   │   │   │   │   ├── fix_filter.py
    │   │   │   │   │   ├── fix_funcattrs.py
    │   │   │   │   │   ├── fix_future.py
    │   │   │   │   │   ├── fix_getcwdu.py
    │   │   │   │   │   ├── fix_has_key.py
    │   │   │   │   │   ├── fix_idioms.py
    │   │   │   │   │   ├── fix_import.py
    │   │   │   │   │   ├── fix_imports.py
    │   │   │   │   │   ├── fix_imports2.py
    │   │   │   │   │   ├── fix_input.py
    │   │   │   │   │   ├── fix_intern.py
    │   │   │   │   │   ├── fix_isinstance.py
    │   │   │   │   │   ├── fix_itertools.py
    │   │   │   │   │   ├── fix_itertools_imports.py
    │   │   │   │   │   ├── fix_long.py
    │   │   │   │   │   ├── fix_map.py
    │   │   │   │   │   ├── fix_metaclass.py
    │   │   │   │   │   ├── fix_methodattrs.py
    │   │   │   │   │   ├── fix_ne.py
    │   │   │   │   │   ├── fix_next.py
    │   │   │   │   │   ├── fix_nonzero.py
    │   │   │   │   │   ├── fix_numliterals.py
    │   │   │   │   │   ├── fix_operator.py
    │   │   │   │   │   ├── fix_paren.py
    │   │   │   │   │   ├── fix_print.py
    │   │   │   │   │   ├── fix_raise.py
    │   │   │   │   │   ├── fix_raw_input.py
    │   │   │   │   │   ├── fix_reduce.py
    │   │   │   │   │   ├── fix_renames.py
    │   │   │   │   │   ├── fix_repr.py
    │   │   │   │   │   ├── fix_set_literal.py
    │   │   │   │   │   ├── fix_standarderror.py
    │   │   │   │   │   ├── fix_sys_exc.py
    │   │   │   │   │   ├── fix_throw.py
    │   │   │   │   │   ├── fix_tuple_params.py
    │   │   │   │   │   ├── fix_types.py
    │   │   │   │   │   ├── fix_unicode.py
    │   │   │   │   │   ├── fix_urllib.py
    │   │   │   │   │   ├── fix_ws_comma.py
    │   │   │   │   │   ├── fix_xrange.py
    │   │   │   │   │   ├── fix_xreadlines.py
    │   │   │   │   │   └── fix_zip.py
    │   │   │   │   ├── main.py
    │   │   │   │   ├── patcomp.py
    │   │   │   │   ├── pgen2/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── conv.py
    │   │   │   │   │   ├── driver.py
    │   │   │   │   │   ├── grammar.py
    │   │   │   │   │   ├── literals.py
    │   │   │   │   │   ├── parse.py
    │   │   │   │   │   ├── pgen.py
    │   │   │   │   │   ├── token.py
    │   │   │   │   │   └── tokenize.py
    │   │   │   │   ├── pygram.py
    │   │   │   │   ├── pytree.py
    │   │   │   │   ├── refactor.py
    │   │   │   │   └── tests/
    │   │   │   │       └── data/
    │   │   │   │           └── fixers/
    │   │   │   │               ├── bad_order.py
    │   │   │   │               ├── myfixes/
    │   │   │   │               │   ├── __init__.py
    │   │   │   │               │   ├── fix_explicit.py
    │   │   │   │               │   ├── fix_first.py
    │   │   │   │               │   ├── fix_last.py
    │   │   │   │               │   ├── fix_parrot.py
    │   │   │   │               │   └── fix_preorder.py
    │   │   │   │               ├── no_fixer_cls.py
    │   │   │   │               └── parrot_example.py
    │   │   │   ├── linecache.py
    │   │   │   ├── locale.py
    │   │   │   ├── logging/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── config.py
    │   │   │   │   └── handlers.py
    │   │   │   ├── macpath.py
    │   │   │   ├── macurl2path.py
    │   │   │   ├── mailbox.py
    │   │   │   ├── mailcap.py
    │   │   │   ├── mimetypes.py
    │   │   │   ├── modulefinder.py
    │   │   │   ├── msilib/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── schema.py
    │   │   │   │   ├── sequence.py
    │   │   │   │   └── text.py
    │   │   │   ├── multiprocessing/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── connection.py
    │   │   │   │   ├── dummy/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   └── connection.py
    │   │   │   │   ├── forking.py
    │   │   │   │   ├── heap.py
    │   │   │   │   ├── managers.py
    │   │   │   │   ├── pool.py
    │   │   │   │   ├── process.py
    │   │   │   │   ├── queues.py
    │   │   │   │   ├── reduction.py
    │   │   │   │   ├── sharedctypes.py
    │   │   │   │   ├── synchronize.py
    │   │   │   │   └── util.py
    │   │   │   ├── netrc.py
    │   │   │   ├── nntplib.py
    │   │   │   ├── ntpath.py
    │   │   │   ├── nturl2path.py
    │   │   │   ├── numbers.py
    │   │   │   ├── opcode.py
    │   │   │   ├── optparse.py
    │   │   │   ├── os.py
    │   │   │   ├── os2emxpath.py
    │   │   │   ├── pdb.py
    │   │   │   ├── pickle.py
    │   │   │   ├── pickletools.py
    │   │   │   ├── pipes.py
    │   │   │   ├── pkgutil.py
    │   │   │   ├── platform.py
    │   │   │   ├── plistlib.py
    │   │   │   ├── poplib.py
    │   │   │   ├── posixpath.py
    │   │   │   ├── pprint.py
    │   │   │   ├── profile.py
    │   │   │   ├── pstats.py
    │   │   │   ├── pty.py
    │   │   │   ├── py_compile.py
    │   │   │   ├── pyclbr.py
    │   │   │   ├── pydoc.py
    │   │   │   ├── pydoc_data/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── _pydoc.css
    │   │   │   │   └── topics.py
    │   │   │   ├── queue.py
    │   │   │   ├── quopri.py
    │   │   │   ├── random.py
    │   │   │   ├── re.py
    │   │   │   ├── reprlib.py
    │   │   │   ├── rlcompleter.py
    │   │   │   ├── runpy.py
    │   │   │   ├── sched.py
    │   │   │   ├── shelve.py
    │   │   │   ├── shlex.py
    │   │   │   ├── shutil.py
    │   │   │   ├── site-packages/
    │   │   │   │   └── README.txt
    │   │   │   ├── site.py
    │   │   │   ├── smtpd.py
    │   │   │   ├── smtplib.py
    │   │   │   ├── sndhdr.py
    │   │   │   ├── socket.py
    │   │   │   ├── socketserver.py
    │   │   │   ├── sqlite3/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── dbapi2.py
    │   │   │   │   └── dump.py
    │   │   │   ├── sre_compile.py
    │   │   │   ├── sre_constants.py
    │   │   │   ├── sre_parse.py
    │   │   │   ├── ssl.py
    │   │   │   ├── stat.py
    │   │   │   ├── string.py
    │   │   │   ├── stringprep.py
    │   │   │   ├── struct.py
    │   │   │   ├── subprocess.py
    │   │   │   ├── sunau.py
    │   │   │   ├── symbol.py
    │   │   │   ├── symtable.py
    │   │   │   ├── sysconfig.py
    │   │   │   ├── tabnanny.py
    │   │   │   ├── tarfile.py
    │   │   │   ├── telnetlib.py
    │   │   │   ├── tempfile.py
    │   │   │   ├── test/
    │   │   │   │   ├── capath/
    │   │   │   │   │   ├── 4e1295a3.0
    │   │   │   │   │   ├── 5ed36f99.0
    │   │   │   │   │   ├── 6e88d7b8.0
    │   │   │   │   │   └── 99d0fa06.0
    │   │   │   │   ├── cjkencodings/
    │   │   │   │   │   ├── big5-utf8.txt
    │   │   │   │   │   ├── big5.txt
    │   │   │   │   │   ├── big5hkscs-utf8.txt
    │   │   │   │   │   ├── big5hkscs.txt
    │   │   │   │   │   ├── cp949-utf8.txt
    │   │   │   │   │   ├── cp949.txt
    │   │   │   │   │   ├── euc_jisx0213-utf8.txt
    │   │   │   │   │   ├── euc_jisx0213.txt
    │   │   │   │   │   ├── euc_jp-utf8.txt
    │   │   │   │   │   ├── euc_jp.txt
    │   │   │   │   │   ├── euc_kr-utf8.txt
    │   │   │   │   │   ├── euc_kr.txt
    │   │   │   │   │   ├── gb18030-utf8.txt
    │   │   │   │   │   ├── gb18030.txt
    │   │   │   │   │   ├── gb2312-utf8.txt
    │   │   │   │   │   ├── gb2312.txt
    │   │   │   │   │   ├── gbk-utf8.txt
    │   │   │   │   │   ├── gbk.txt
    │   │   │   │   │   ├── hz-utf8.txt
    │   │   │   │   │   ├── hz.txt
    │   │   │   │   │   ├── iso2022_jp-utf8.txt
    │   │   │   │   │   ├── iso2022_jp.txt
    │   │   │   │   │   ├── iso2022_kr-utf8.txt
    │   │   │   │   │   ├── iso2022_kr.txt
    │   │   │   │   │   ├── johab-utf8.txt
    │   │   │   │   │   ├── johab.txt
    │   │   │   │   │   ├── shift_jis-utf8.txt
    │   │   │   │   │   ├── shift_jis.txt
    │   │   │   │   │   ├── shift_jisx0213-utf8.txt
    │   │   │   │   │   └── shift_jisx0213.txt
    │   │   │   │   ├── crashers/
    │   │   │   │   │   ├── README
    │   │   │   │   │   ├── bogus_code_obj.py
    │   │   │   │   │   ├── borrowed_ref_1.py
    │   │   │   │   │   ├── borrowed_ref_2.py
    │   │   │   │   │   ├── compiler_recursion.py
    │   │   │   │   │   ├── gc_inspection.py
    │   │   │   │   │   ├── infinite_loop_re.py
    │   │   │   │   │   ├── loosing_mro_ref.py
    │   │   │   │   │   ├── mutation_inside_cyclegc.py
    │   │   │   │   │   ├── nasty_eq_vs_dict.py
    │   │   │   │   │   ├── recursion_limit_too_high.py
    │   │   │   │   │   ├── recursive_call.py
    │   │   │   │   │   ├── trace_at_recursion_limit.py
    │   │   │   │   │   └── underlying_dict.py
    │   │   │   │   ├── decimaltestdata/
    │   │   │   │   │   ├── abs.decTest
    │   │   │   │   │   ├── add.decTest
    │   │   │   │   │   ├── and.decTest
    │   │   │   │   │   ├── base.decTest
    │   │   │   │   │   ├── clamp.decTest
    │   │   │   │   │   ├── class.decTest
    │   │   │   │   │   ├── compare.decTest
    │   │   │   │   │   ├── comparetotal.decTest
    │   │   │   │   │   ├── comparetotmag.decTest
    │   │   │   │   │   ├── copy.decTest
    │   │   │   │   │   ├── copyabs.decTest
    │   │   │   │   │   ├── copynegate.decTest
    │   │   │   │   │   ├── copysign.decTest
    │   │   │   │   │   ├── ddAbs.decTest
    │   │   │   │   │   ├── ddAdd.decTest
    │   │   │   │   │   ├── ddAnd.decTest
    │   │   │   │   │   ├── ddBase.decTest
    │   │   │   │   │   ├── ddCanonical.decTest
    │   │   │   │   │   ├── ddClass.decTest
    │   │   │   │   │   ├── ddCompare.decTest
    │   │   │   │   │   ├── ddCompareSig.decTest
    │   │   │   │   │   ├── ddCompareTotal.decTest
    │   │   │   │   │   ├── ddCompareTotalMag.decTest
    │   │   │   │   │   ├── ddCopy.decTest
    │   │   │   │   │   ├── ddCopyAbs.decTest
    │   │   │   │   │   ├── ddCopyNegate.decTest
    │   │   │   │   │   ├── ddCopySign.decTest
    │   │   │   │   │   ├── ddDivide.decTest
    │   │   │   │   │   ├── ddDivideInt.decTest
    │   │   │   │   │   ├── ddEncode.decTest
    │   │   │   │   │   ├── ddFMA.decTest
    │   │   │   │   │   ├── ddInvert.decTest
    │   │   │   │   │   ├── ddLogB.decTest
    │   │   │   │   │   ├── ddMax.decTest
    │   │   │   │   │   ├── ddMaxMag.decTest
    │   │   │   │   │   ├── ddMin.decTest
    │   │   │   │   │   ├── ddMinMag.decTest
    │   │   │   │   │   ├── ddMinus.decTest
    │   │   │   │   │   ├── ddMultiply.decTest
    │   │   │   │   │   ├── ddNextMinus.decTest
    │   │   │   │   │   ├── ddNextPlus.decTest
    │   │   │   │   │   ├── ddNextToward.decTest
    │   │   │   │   │   ├── ddOr.decTest
    │   │   │   │   │   ├── ddPlus.decTest
    │   │   │   │   │   ├── ddQuantize.decTest
    │   │   │   │   │   ├── ddReduce.decTest
    │   │   │   │   │   ├── ddRemainder.decTest
    │   │   │   │   │   ├── ddRemainderNear.decTest
    │   │   │   │   │   ├── ddRotate.decTest
    │   │   │   │   │   ├── ddSameQuantum.decTest
    │   │   │   │   │   ├── ddScaleB.decTest
    │   │   │   │   │   ├── ddShift.decTest
    │   │   │   │   │   ├── ddSubtract.decTest
    │   │   │   │   │   ├── ddToIntegral.decTest
    │   │   │   │   │   ├── ddXor.decTest
    │   │   │   │   │   ├── decDouble.decTest
    │   │   │   │   │   ├── decQuad.decTest
    │   │   │   │   │   ├── decSingle.decTest
    │   │   │   │   │   ├── divide.decTest
    │   │   │   │   │   ├── divideint.decTest
    │   │   │   │   │   ├── dqAbs.decTest
    │   │   │   │   │   ├── dqAdd.decTest
    │   │   │   │   │   ├── dqAnd.decTest
    │   │   │   │   │   ├── dqBase.decTest
    │   │   │   │   │   ├── dqCanonical.decTest
    │   │   │   │   │   ├── dqClass.decTest
    │   │   │   │   │   ├── dqCompare.decTest
    │   │   │   │   │   ├── dqCompareSig.decTest
    │   │   │   │   │   ├── dqCompareTotal.decTest
    │   │   │   │   │   ├── dqCompareTotalMag.decTest
    │   │   │   │   │   ├── dqCopy.decTest
    │   │   │   │   │   ├── dqCopyAbs.decTest
    │   │   │   │   │   ├── dqCopyNegate.decTest
    │   │   │   │   │   ├── dqCopySign.decTest
    │   │   │   │   │   ├── dqDivide.decTest
    │   │   │   │   │   ├── dqDivideInt.decTest
    │   │   │   │   │   ├── dqEncode.decTest
    │   │   │   │   │   ├── dqFMA.decTest
    │   │   │   │   │   ├── dqInvert.decTest
    │   │   │   │   │   ├── dqLogB.decTest
    │   │   │   │   │   ├── dqMax.decTest
    │   │   │   │   │   ├── dqMaxMag.decTest
    │   │   │   │   │   ├── dqMin.decTest
    │   │   │   │   │   ├── dqMinMag.decTest
    │   │   │   │   │   ├── dqMinus.decTest
    │   │   │   │   │   ├── dqMultiply.decTest
    │   │   │   │   │   ├── dqNextMinus.decTest
    │   │   │   │   │   ├── dqNextPlus.decTest
    │   │   │   │   │   ├── dqNextToward.decTest
    │   │   │   │   │   ├── dqOr.decTest
    │   │   │   │   │   ├── dqPlus.decTest
    │   │   │   │   │   ├── dqQuantize.decTest
    │   │   │   │   │   ├── dqReduce.decTest
    │   │   │   │   │   ├── dqRemainder.decTest
    │   │   │   │   │   ├── dqRemainderNear.decTest
    │   │   │   │   │   ├── dqRotate.decTest
    │   │   │   │   │   ├── dqSameQuantum.decTest
    │   │   │   │   │   ├── dqScaleB.decTest
    │   │   │   │   │   ├── dqShift.decTest
    │   │   │   │   │   ├── dqSubtract.decTest
    │   │   │   │   │   ├── dqToIntegral.decTest
    │   │   │   │   │   ├── dqXor.decTest
    │   │   │   │   │   ├── dsBase.decTest
    │   │   │   │   │   ├── dsEncode.decTest
    │   │   │   │   │   ├── exp.decTest
    │   │   │   │   │   ├── extra.decTest
    │   │   │   │   │   ├── fma.decTest
    │   │   │   │   │   ├── inexact.decTest
    │   │   │   │   │   ├── invert.decTest
    │   │   │   │   │   ├── ln.decTest
    │   │   │   │   │   ├── log10.decTest
    │   │   │   │   │   ├── logb.decTest
    │   │   │   │   │   ├── max.decTest
    │   │   │   │   │   ├── maxmag.decTest
    │   │   │   │   │   ├── min.decTest
    │   │   │   │   │   ├── minmag.decTest
    │   │   │   │   │   ├── minus.decTest
    │   │   │   │   │   ├── multiply.decTest
    │   │   │   │   │   ├── nextminus.decTest
    │   │   │   │   │   ├── nextplus.decTest
    │   │   │   │   │   ├── nexttoward.decTest
    │   │   │   │   │   ├── or.decTest
    │   │   │   │   │   ├── plus.decTest
    │   │   │   │   │   ├── power.decTest
    │   │   │   │   │   ├── powersqrt.decTest
    │   │   │   │   │   ├── quantize.decTest
    │   │   │   │   │   ├── randomBound32.decTest
    │   │   │   │   │   ├── randoms.decTest
    │   │   │   │   │   ├── reduce.decTest
    │   │   │   │   │   ├── remainder.decTest
    │   │   │   │   │   ├── remainderNear.decTest
    │   │   │   │   │   ├── rescale.decTest
    │   │   │   │   │   ├── rotate.decTest
    │   │   │   │   │   ├── rounding.decTest
    │   │   │   │   │   ├── samequantum.decTest
    │   │   │   │   │   ├── scaleb.decTest
    │   │   │   │   │   ├── shift.decTest
    │   │   │   │   │   ├── squareroot.decTest
    │   │   │   │   │   ├── subtract.decTest
    │   │   │   │   │   ├── testall.decTest
    │   │   │   │   │   ├── tointegral.decTest
    │   │   │   │   │   ├── tointegralx.decTest
    │   │   │   │   │   └── xor.decTest
    │   │   │   │   ├── encoded_modules/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── module_iso_8859_1.py
    │   │   │   │   │   └── module_koi8_r.py
    │   │   │   │   ├── json_tests/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── test_decode.py
    │   │   │   │   │   ├── test_default.py
    │   │   │   │   │   ├── test_dump.py
    │   │   │   │   │   ├── test_encode_basestring_ascii.py
    │   │   │   │   │   ├── test_fail.py
    │   │   │   │   │   ├── test_float.py
    │   │   │   │   │   ├── test_indent.py
    │   │   │   │   │   ├── test_pass1.py
    │   │   │   │   │   ├── test_pass2.py
    │   │   │   │   │   ├── test_pass3.py
    │   │   │   │   │   ├── test_recursion.py
    │   │   │   │   │   ├── test_scanstring.py
    │   │   │   │   │   ├── test_separators.py
    │   │   │   │   │   ├── test_speedups.py
    │   │   │   │   │   ├── test_tool.py
    │   │   │   │   │   └── test_unicode.py
    │   │   │   │   ├── leakers/
    │   │   │   │   │   ├── README.txt
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── test_ctypes.py
    │   │   │   │   │   ├── test_gestalt.py
    │   │   │   │   │   └── test_selftype.py
    │   │   │   │   ├── sndhdrdata/
    │   │   
Download .txt
Showing preview only (5,888K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (83552 symbols across 4156 files)

FILE: psycopg2/__init__.py
  function _param_escape (line 85) | def _param_escape(s,
  function connect (line 102) | def connect(dsn=None,

FILE: psycopg2/_json.py
  class Json (line 50) | class Json(object):
    method __init__ (line 62) | def __init__(self, adapted, dumps=None):
    method __conform__ (line 72) | def __conform__(self, proto):
    method dumps (line 76) | def dumps(self, obj):
    method getquoted (line 91) | def getquoted(self):
  function register_json (line 96) | def register_json(conn_or_curs=None, globally=False, loads=None,
  function register_default_json (line 132) | def register_default_json(conn_or_curs=None, globally=False, loads=None):
  function _create_json_typecasters (line 144) | def _create_json_typecasters(oid, array_oid, loads=None):
  function _get_json_oids (line 165) | def _get_json_oids(conn_or_curs):

FILE: psycopg2/_range.py
  class Range (line 33) | class Range(object):
    method __init__ (line 45) | def __init__(self, lower=None, upper=None, bounds='[)', empty=False):
    method __repr__ (line 56) | def __repr__(self):
    method lower (line 64) | def lower(self):
    method upper (line 69) | def upper(self):
    method isempty (line 74) | def isempty(self):
    method lower_inf (line 79) | def lower_inf(self):
    method upper_inf (line 85) | def upper_inf(self):
    method lower_inc (line 91) | def lower_inc(self):
    method upper_inc (line 98) | def upper_inc(self):
    method __contains__ (line 104) | def __contains__(self, x):
    method __bool__ (line 120) | def __bool__(self):
    method __eq__ (line 123) | def __eq__(self, other):
    method __ne__ (line 130) | def __ne__(self, other):
    method __hash__ (line 133) | def __hash__(self):
    method __lt__ (line 140) | def __lt__(self, other):
    method __le__ (line 156) | def __le__(self, other):
    method __gt__ (line 162) | def __gt__(self, other):
    method __ge__ (line 168) | def __ge__(self, other):
  function register_range (line 175) | def register_range(pgrange, pyrange, conn_or_curs, globally=False):
  class RangeAdapter (line 206) | class RangeAdapter(object):
    method __init__ (line 214) | def __init__(self, adapted):
    method __conform__ (line 217) | def __conform__(self, proto):
    method prepare (line 221) | def prepare(self, conn):
    method getquoted (line 224) | def getquoted(self):
  class RangeCaster (line 254) | class RangeCaster(object):
    method __init__ (line 261) | def __init__(self, pgrange, pyrange, oid, subtype_oid, array_oid=None):
    method _create_ranges (line 275) | def _create_ranges(self, pgrange, pyrange):
    method _from_db (line 310) | def _from_db(self, name, pyrange, conn_or_curs):
    method parse (line 381) | def parse(self, s, cur=None):
    method _register (line 412) | def _register(self, scope=None):
  class NumericRange (line 420) | class NumericRange(Range):
  class DateRange (line 428) | class DateRange(Range):
  class DateTimeRange (line 432) | class DateTimeRange(Range):
  class DateTimeTZRange (line 436) | class DateTimeTZRange(Range):
  class NumberRangeAdapter (line 446) | class NumberRangeAdapter(RangeAdapter):
    method getquoted (line 448) | def getquoted(self):

FILE: psycopg2/errorcodes.py
  function lookup (line 32) | def lookup(code, _cache={}):

FILE: psycopg2/extensions.py
  function b (line 105) | def b(s):
  function b (line 108) | def b(s):
  function register_adapter (line 111) | def register_adapter(typ, callable):
  class SQL_IN (line 117) | class SQL_IN(object):
    method __init__ (line 119) | def __init__(self, seq):
    method prepare (line 123) | def prepare(self, conn):
    method getquoted (line 126) | def getquoted(self):
    method __str__ (line 137) | def __str__(self):
  class NoneAdapter (line 141) | class NoneAdapter(object):
    method __init__ (line 147) | def __init__(self, obj):
    method getquoted (line 150) | def getquoted(self, _null=b"NULL"):

FILE: psycopg2/extras.py
  class DictCursorBase (line 46) | class DictCursorBase(_cursor):
    method __init__ (line 49) | def __init__(self, *args, **kwargs):
    method fetchone (line 61) | def fetchone(self):
    method fetchmany (line 70) | def fetchmany(self, size=None):
    method fetchall (line 79) | def fetchall(self):
    method __iter__ (line 88) | def __iter__(self):
  class DictConnection (line 103) | class DictConnection(_connection):
    method cursor (line 105) | def cursor(self, *args, **kwargs):
  class DictCursor (line 109) | class DictCursor(DictCursorBase):
    method __init__ (line 112) | def __init__(self, *args, **kwargs):
    method execute (line 117) | def execute(self, query, vars=None):
    method callproc (line 122) | def callproc(self, procname, vars=None):
    method _build_index (line 127) | def _build_index(self):
  class DictRow (line 133) | class DictRow(list):
    method __init__ (line 138) | def __init__(self, cursor):
    method __getitem__ (line 142) | def __getitem__(self, x):
    method __setitem__ (line 147) | def __setitem__(self, x, v):
    method items (line 152) | def items(self):
    method keys (line 155) | def keys(self):
    method values (line 158) | def values(self):
    method has_key (line 161) | def has_key(self, x):
    method get (line 164) | def get(self, x, default=None):
    method iteritems (line 170) | def iteritems(self):
    method iterkeys (line 174) | def iterkeys(self):
    method itervalues (line 177) | def itervalues(self):
    method copy (line 180) | def copy(self):
    method __contains__ (line 183) | def __contains__(self, x):
    method __getstate__ (line 186) | def __getstate__(self):
    method __setstate__ (line 189) | def __setstate__(self, data):
  class RealDictConnection (line 201) | class RealDictConnection(_connection):
    method cursor (line 203) | def cursor(self, *args, **kwargs):
  class RealDictCursor (line 207) | class RealDictCursor(DictCursorBase):
    method __init__ (line 215) | def __init__(self, *args, **kwargs):
    method execute (line 220) | def execute(self, query, vars=None):
    method callproc (line 225) | def callproc(self, procname, vars=None):
    method _build_index (line 230) | def _build_index(self):
  class RealDictRow (line 236) | class RealDictRow(dict):
    method __init__ (line 241) | def __init__(self, cursor):
    method __setitem__ (line 249) | def __setitem__(self, name, value):
    method __getstate__ (line 254) | def __getstate__(self):
    method __setstate__ (line 257) | def __setstate__(self, data):
  class NamedTupleConnection (line 262) | class NamedTupleConnection(_connection):
    method cursor (line 264) | def cursor(self, *args, **kwargs):
  class NamedTupleCursor (line 268) | class NamedTupleCursor(_cursor):
    method execute (line 286) | def execute(self, query, vars=None):
    method executemany (line 290) | def executemany(self, query, vars):
    method callproc (line 294) | def callproc(self, procname, vars=None):
    method fetchone (line 298) | def fetchone(self):
    method fetchmany (line 306) | def fetchmany(self, size=None):
    method fetchall (line 313) | def fetchall(self):
    method __iter__ (line 320) | def __iter__(self):
    method _make_nt (line 336) | def _make_nt(self):
    method _make_nt (line 339) | def _make_nt(self, namedtuple=namedtuple):
  class LoggingConnection (line 343) | class LoggingConnection(_connection):
    method initialize (line 349) | def initialize(self, logobj):
    method filter (line 361) | def filter(self, msg, curs):
    method _logtofile (line 370) | def _logtofile(self, msg, curs):
    method _logtologger (line 374) | def _logtologger(self, msg, curs):
    method _check (line 378) | def _check(self):
    method cursor (line 383) | def cursor(self, *args, **kwargs):
  class LoggingCursor (line 388) | class LoggingCursor(_cursor):
    method execute (line 391) | def execute(self, query, vars=None):
    method callproc (line 397) | def callproc(self, procname, vars=None):
  class MinTimeLoggingConnection (line 404) | class MinTimeLoggingConnection(LoggingConnection):
    method initialize (line 415) | def initialize(self, logobj, mintime=0):
    method filter (line 419) | def filter(self, msg, curs):
    method cursor (line 424) | def cursor(self, *args, **kwargs):
  class MinTimeLoggingCursor (line 428) | class MinTimeLoggingCursor(LoggingCursor):
    method execute (line 431) | def execute(self, query, vars=None):
    method callproc (line 435) | def callproc(self, procname, vars=None):
  class UUID_adapter (line 442) | class UUID_adapter(object):
    method __init__ (line 449) | def __init__(self, uuid):
    method __conform__ (line 452) | def __conform__(self, proto):
    method getquoted (line 456) | def getquoted(self):
    method __str__ (line 459) | def __str__(self):
  function register_uuid (line 462) | def register_uuid(oids=None, conn_or_curs=None):
  class Inet (line 496) | class Inet(object):
    method __init__ (line 504) | def __init__(self, addr):
    method __repr__ (line 507) | def __repr__(self):
    method prepare (line 510) | def prepare(self, conn):
    method getquoted (line 513) | def getquoted(self):
    method __conform__ (line 519) | def __conform__(self, proto):
    method __str__ (line 523) | def __str__(self):
  function register_inet (line 526) | def register_inet(oid=None, conn_or_curs=None):
  function register_tstz_w_secs (line 554) | def register_tstz_w_secs(oids=None, conn_or_curs=None):
  function wait_select (line 566) | def wait_select(conn):
  function _solve_conn_curs (line 589) | def _solve_conn_curs(conn_or_curs):
  class HstoreAdapter (line 604) | class HstoreAdapter(object):
    method __init__ (line 606) | def __init__(self, wrapped):
    method prepare (line 609) | def prepare(self, conn):
    method _getquoted_8 (line 616) | def _getquoted_8(self):
    method _getquoted_9 (line 640) | def _getquoted_9(self):
    method parse (line 667) | def parse(self, s, cur, _bsdec=_re.compile(r"\\(.)")):
    method parse_unicode (line 700) | def parse_unicode(self, s, cur):
    method get_oids (line 709) | def get_oids(self, conn_or_curs):
  function register_hstore (line 740) | def register_hstore(conn_or_curs, globally=False, str=False,
  class CompositeCaster (line 805) | class CompositeCaster(object):
    method __init__ (line 814) | def __init__(self, name, oid, attrs, array_oid=None, schema=None):
    method parse (line 830) | def parse(self, s, curs):
    method make (line 845) | def make(self, values):
    method tokenize (line 866) | def tokenize(self, s):
    method _create_type (line 880) | def _create_type(self, name, attnames):
    method _from_db (line 891) | def _from_db(self, name, conn_or_curs):
  function register_composite (line 940) | def register_composite(name, conn_or_curs, globally=False, factory=None):

FILE: psycopg2/pool.py
  class PoolError (line 31) | class PoolError(psycopg2.Error):
  class AbstractConnectionPool (line 35) | class AbstractConnectionPool(object):
    method __init__ (line 38) | def __init__(self, minconn, maxconn, *args, **kwargs):
    method _connect (line 60) | def _connect(self, key=None):
    method _getkey (line 70) | def _getkey(self):
    method _getconn (line 75) | def _getconn(self, key=None):
    method _putconn (line 92) | def _putconn(self, conn, key=None, close=False):
    method _closeall (line 125) | def _closeall(self):
  class SimpleConnectionPool (line 141) | class SimpleConnectionPool(AbstractConnectionPool):
  class ThreadedConnectionPool (line 149) | class ThreadedConnectionPool(AbstractConnectionPool):
    method __init__ (line 152) | def __init__(self, minconn, maxconn, *args, **kwargs):
    method getconn (line 159) | def getconn(self, key=None):
    method putconn (line 167) | def putconn(self, conn=None, key=None, close=False):
    method closeall (line 175) | def closeall(self):
  class PersistentConnectionPool (line 184) | class PersistentConnectionPool(AbstractConnectionPool):
    method __init__ (line 194) | def __init__(self, minconn, maxconn, *args, **kwargs):
    method getconn (line 210) | def getconn(self):
    method putconn (line 219) | def putconn(self, conn=None, close=False):
    method closeall (line 229) | def closeall(self):

FILE: psycopg2/psycopg1.py
  function connect (line 39) | def connect(*args, **kwargs):
  class connection (line 46) | class connection(_2connection):
    method cursor (line 49) | def cursor(self):
    method autocommit (line 53) | def autocommit(self, on_off=1):
  class cursor (line 61) | class cursor(_2cursor):
    method __build_dict (line 69) | def __build_dict(self, row):
    method dictfetchone (line 75) | def dictfetchone(self):
    method dictfetchmany (line 82) | def dictfetchmany(self, size):
    method dictfetchall (line 89) | def dictfetchall(self):

FILE: psycopg2/tests/__init__.py
  function test_suite (line 53) | def test_suite():

FILE: psycopg2/tests/dbapi20.py
  function str2bytes (line 74) | def str2bytes(sval):
  class DatabaseAPI20Test (line 79) | class DatabaseAPI20Test(unittest.TestCase):
    method executeDDL1 (line 117) | def executeDDL1(self,cursor):
    method executeDDL2 (line 120) | def executeDDL2(self,cursor):
    method setUp (line 123) | def setUp(self):
    method tearDown (line 129) | def tearDown(self):
    method _connect (line 148) | def _connect(self):
    method test_connect (line 156) | def test_connect(self):
    method test_apilevel (line 160) | def test_apilevel(self):
    method test_threadsafety (line 169) | def test_threadsafety(self):
    method test_paramstyle (line 178) | def test_paramstyle(self):
    method test_Exceptions (line 189) | def test_Exceptions(self):
    method test_ExceptionsAsConnectionAttributes (line 221) | def test_ExceptionsAsConnectionAttributes(self):
    method test_commit (line 241) | def test_commit(self):
    method test_rollback (line 249) | def test_rollback(self):
    method test_cursor (line 259) | def test_cursor(self):
    method test_cursor_isolation (line 266) | def test_cursor_isolation(self):
    method test_description (line 285) | def test_description(self):
    method test_rowcount (line 318) | def test_rowcount(self):
    method test_callproc (line 348) | def test_callproc(self):
    method test_close (line 367) | def test_close(self):
    method test_execute (line 387) | def test_execute(self):
    method _paraminsert (line 395) | def _paraminsert(self,cur):
    method test_executemany (line 445) | def test_executemany(self):
    method test_fetchone (line 497) | def test_fetchone(self):
    method _populate (line 549) | def _populate(self):
    method test_fetchmany (line 559) | def test_fetchmany(self):
    method test_fetchall (line 641) | def test_fetchall(self):
    method test_mixedfetch (line 690) | def test_mixedfetch(self):
    method help_nextset_setUp (line 723) | def help_nextset_setUp(self,cur):
    method help_nextset_tearDown (line 738) | def help_nextset_tearDown(self,cur):
    method test_nextset (line 743) | def test_nextset(self):
    method test_nextset (line 772) | def test_nextset(self):
    method test_arraysize (line 775) | def test_arraysize(self):
    method test_setinputsizes (line 786) | def test_setinputsizes(self):
    method test_setoutputsize_basic (line 795) | def test_setoutputsize_basic(self):
    method test_setoutputsize (line 806) | def test_setoutputsize(self):
    method test_None (line 810) | def test_None(self):
    method test_Date (line 824) | def test_Date(self):
    method test_Time (line 830) | def test_Time(self):
    method test_Timestamp (line 836) | def test_Timestamp(self):
    method test_Binary (line 844) | def test_Binary(self):
    method test_STRING (line 848) | def test_STRING(self):
    method test_BINARY (line 853) | def test_BINARY(self):
    method test_NUMBER (line 858) | def test_NUMBER(self):
    method test_DATETIME (line 863) | def test_DATETIME(self):
    method test_ROWID (line 868) | def test_ROWID(self):

FILE: psycopg2/tests/dbapi20_tpc.py
  class TwoPhaseCommitTests (line 8) | class TwoPhaseCommitTests(unittest.TestCase):
    method connect (line 12) | def connect(self):
    method make_xid (line 19) | def make_xid(self, con):
    method test_xid (line 24) | def test_xid(self):
    method test_tpc_begin (line 41) | def test_tpc_begin(self):
    method test_tpc_commit_without_prepare (line 52) | def test_tpc_commit_without_prepare(self):
    method test_tpc_rollback_without_prepare (line 63) | def test_tpc_rollback_without_prepare(self):
    method test_tpc_commit_with_prepare (line 74) | def test_tpc_commit_with_prepare(self):
    method test_tpc_rollback_with_prepare (line 86) | def test_tpc_rollback_with_prepare(self):
    method test_tpc_begin_in_transaction_fails (line 98) | def test_tpc_begin_in_transaction_fails(self):
    method test_tpc_begin_in_tpc_transaction_fails (line 110) | def test_tpc_begin_in_tpc_transaction_fails(self):
    method test_commit_in_tpc_fails (line 122) | def test_commit_in_tpc_fails(self):
    method test_rollback_in_tpc_fails (line 134) | def test_rollback_in_tpc_fails(self):

FILE: psycopg2/tests/test_async.py
  class PollableStub (line 37) | class PollableStub(object):
    method __init__ (line 39) | def __init__(self, pollable):
    method fileno (line 43) | def fileno(self):
    method poll (line 46) | def poll(self):
  class AsyncTests (line 52) | class AsyncTests(ConnectingTestCase):
    method setUp (line 54) | def setUp(self):
    method wait (line 69) | def wait(self, cur_or_conn):
    method test_connection_setup (line 84) | def test_connection_setup(self):
    method test_async_named_cursor (line 99) | def test_async_named_cursor(self):
    method test_async_select (line 103) | def test_async_select(self):
    method test_async_callproc (line 115) | def test_async_callproc(self):
    method test_async_after_async (line 124) | def test_async_after_async(self):
    method test_fetch_after_async (line 151) | def test_fetch_after_async(self):
    method test_rollback_while_async (line 162) | def test_rollback_while_async(self):
    method test_commit_while_async (line 170) | def test_commit_while_async(self):
    method test_set_parameters_while_async (line 198) | def test_set_parameters_while_async(self):
    method test_reset_while_async (line 217) | def test_reset_while_async(self):
    method test_async_iter (line 225) | def test_async_iter(self):
    method test_copy_while_async (line 246) | def test_copy_while_async(self):
    method test_lobject_while_async (line 255) | def test_lobject_while_async(self):
    method test_async_executemany (line 260) | def test_async_executemany(self):
    method test_async_scroll (line 266) | def test_async_scroll(self):
    method test_scroll (line 301) | def test_scroll(self):
    method test_async_dont_read_all (line 314) | def test_async_dont_read_all(self):
    method test_async_subclass (line 324) | def test_async_subclass(self):
    method test_flush_on_write (line 334) | def test_flush_on_write(self):
    method test_sync_poll (line 353) | def test_sync_poll(self):
    method test_notify (line 360) | def test_notify(self):
    method test_async_fetch_wrong_cursor (line 383) | def test_async_fetch_wrong_cursor(self):
    method test_error (line 395) | def test_error(self):
    method test_error_two_cursors (line 418) | def test_error_two_cursors(self):
    method test_notices (line 427) | def test_notices(self):
    method test_async_cursor_gone (line 438) | def test_async_cursor_gone(self):
    method test_async_connection_error_message (line 452) | def test_async_connection_error_message(self):
  function test_suite (line 463) | def test_suite():

FILE: psycopg2/tests/test_bugX000.py
  class DateTimeAllocationBugTestCase (line 29) | class DateTimeAllocationBugTestCase(unittest.TestCase):
    method test_date_time_allocation_bug (line 30) | def test_date_time_allocation_bug(self):
  function test_suite (line 40) | def test_suite():

FILE: psycopg2/tests/test_bug_gc.py
  class StolenReferenceTestCase (line 32) | class StolenReferenceTestCase(ConnectingTestCase):
    method test_stolen_reference_bug (line 34) | def test_stolen_reference_bug(self):
  function test_suite (line 44) | def test_suite():

FILE: psycopg2/tests/test_cancel.py
  class CancelTests (line 35) | class CancelTests(ConnectingTestCase):
    method setUp (line 37) | def setUp(self):
    method test_empty_cancel (line 47) | def test_empty_cancel(self):
    method test_cancel (line 51) | def test_cancel(self):
    method test_async_cancel (line 87) | def test_async_cancel(self):
    method test_async_connection_cancel (line 101) | def test_async_connection_cancel(self):
  function test_suite (line 107) | def test_suite():

FILE: psycopg2/tests/test_connection.py
  class ConnectionTests (line 40) | class ConnectionTests(ConnectingTestCase):
    method test_closed_attribute (line 41) | def test_closed_attribute(self):
    method test_close_idempotent (line 47) | def test_close_idempotent(self):
    method test_cursor_closed_attribute (line 53) | def test_cursor_closed_attribute(self):
    method test_cleanup_on_badconn_close (line 67) | def test_cleanup_on_badconn_close(self):
    method test_reset (line 86) | def test_reset(self):
    method test_notices (line 96) | def test_notices(self):
    method test_notices_consistent_order (line 105) | def test_notices_consistent_order(self):
    method test_notices_limited (line 118) | def test_notices_limited(self):
    method test_server_version (line 133) | def test_server_version(self):
    method test_protocol_version (line 136) | def test_protocol_version(self):
    method test_tpc_unsupported (line 140) | def test_tpc_unsupported(self):
    method test_concurrent_execution (line 149) | def test_concurrent_execution(self):
    method test_encoding_name (line 167) | def test_encoding_name(self):
    method test_connect_nonnormal_envvar (line 175) | def test_connect_nonnormal_envvar(self):
    method test_weakref (line 188) | def test_weakref(self):
    method test_commit_concurrency (line 198) | def test_commit_concurrency(self):
    method test_connect_cursor_factory (line 227) | def test_connect_cursor_factory(self):
    method test_cursor_factory (line 234) | def test_cursor_factory(self):
    method test_cursor_factory_none (line 252) | def test_cursor_factory_none(self):
    method test_failed_init_status (line 262) | def test_failed_init_status(self):
  class IsolationLevelsTestCase (line 275) | class IsolationLevelsTestCase(ConnectingTestCase):
    method setUp (line 277) | def setUp(self):
    method test_isolation_level (line 290) | def test_isolation_level(self):
    method test_encoding (line 296) | def test_encoding(self):
    method test_set_isolation_level (line 300) | def test_set_isolation_level(self):
    method test_set_isolation_level_abort (line 336) | def test_set_isolation_level_abort(self):
    method test_isolation_level_autocommit (line 373) | def test_isolation_level_autocommit(self):
    method test_isolation_level_read_committed (line 389) | def test_isolation_level_read_committed(self):
    method test_isolation_level_serializable (line 415) | def test_isolation_level_serializable(self):
    method test_isolation_level_closed (line 444) | def test_isolation_level_closed(self):
  class ConnectionTwoPhaseTests (line 455) | class ConnectionTwoPhaseTests(ConnectingTestCase):
    method setUp (line 456) | def setUp(self):
    method tearDown (line 462) | def tearDown(self):
    method clear_test_xacts (line 466) | def clear_test_xacts(self):
    method make_test_table (line 485) | def make_test_table(self):
    method count_xacts (line 496) | def count_xacts(self):
    method count_test_records (line 508) | def count_test_records(self):
    method test_tpc_commit (line 517) | def test_tpc_commit(self):
    method test_tpc_commit_one_phase (line 540) | def test_tpc_commit_one_phase(self):
    method test_tpc_commit_recovered (line 558) | def test_tpc_commit_recovered(self):
    method test_tpc_rollback (line 584) | def test_tpc_rollback(self):
    method test_tpc_rollback_one_phase (line 607) | def test_tpc_rollback_one_phase(self):
    method test_tpc_rollback_recovered (line 625) | def test_tpc_rollback_recovered(self):
    method test_status_after_recover (line 651) | def test_status_after_recover(self):
    method test_recovered_xids (line 663) | def test_recovered_xids(self):
    method test_xid_encoding (line 693) | def test_xid_encoding(self):
    method test_xid_roundtrip (line 705) | def test_xid_roundtrip(self):
    method test_unparsed_roundtrip (line 728) | def test_unparsed_roundtrip(self):
    method test_xid_construction (line 750) | def test_xid_construction(self):
    method test_xid_from_string (line 758) | def test_xid_from_string(self):
    method test_xid_to_string (line 771) | def test_xid_to_string(self):
    method test_xid_unicode (line 780) | def test_xid_unicode(self):
    method test_xid_unicode_unparsed (line 792) | def test_xid_unicode_unparsed(self):
    method test_cancel_fails_prepared (line 808) | def test_cancel_fails_prepared(self):
    method test_tpc_recover_non_dbapi_connection (line 814) | def test_tpc_recover_non_dbapi_connection(self):
  class TransactionControlTests (line 831) | class TransactionControlTests(ConnectingTestCase):
    method test_closed (line 832) | def test_closed(self):
    method test_not_in_transaction (line 838) | def test_not_in_transaction(self):
    method test_set_isolation_level (line 845) | def test_set_isolation_level(self):
    method test_set_isolation_level_str (line 877) | def test_set_isolation_level_str(self):
    method test_bad_isolation_level (line 905) | def test_bad_isolation_level(self):
    method test_set_read_only (line 910) | def test_set_read_only(self):
    method test_set_default (line 931) | def test_set_default(self):
    method test_set_deferrable (line 948) | def test_set_deferrable(self):
    method test_set_deferrable_error (line 968) | def test_set_deferrable_error(self):
  class AutocommitTests (line 973) | class AutocommitTests(ConnectingTestCase):
    method test_closed (line 974) | def test_closed(self):
    method test_default_no_autocommit (line 987) | def test_default_no_autocommit(self):
    method test_set_autocommit (line 1004) | def test_set_autocommit(self):
    method test_set_intrans_error (line 1028) | def test_set_intrans_error(self):
    method test_set_session_autocommit (line 1034) | def test_set_session_autocommit(self):
  function test_suite (line 1071) | def test_suite():

FILE: psycopg2/tests/test_copy.py
  class MinimalRead (line 41) | class MinimalRead(_base):
    method __init__ (line 43) | def __init__(self, f):
    method read (line 46) | def read(self, size):
    method readline (line 49) | def readline(self):
  class MinimalWrite (line 52) | class MinimalWrite(_base):
    method __init__ (line 54) | def __init__(self, f):
    method write (line 57) | def write(self, data):
  class CopyTests (line 61) | class CopyTests(ConnectingTestCase):
    method setUp (line 63) | def setUp(self):
    method _create_temp_table (line 67) | def _create_temp_table(self):
    method test_copy_from (line 75) | def test_copy_from(self):
    method test_copy_from_insane_size (line 82) | def test_copy_from_insane_size(self):
    method test_copy_from_cols (line 91) | def test_copy_from_cols(self):
    method test_copy_from_cols_err (line 103) | def test_copy_from_cols_err(self):
    method test_copy_to (line 117) | def test_copy_to(self):
    method test_copy_text (line 126) | def test_copy_text(self):
    method test_copy_bytes (line 149) | def test_copy_bytes(self):
    method test_copy_expert_textiobase (line 171) | def test_copy_expert_textiobase(self):
    method _copy_from (line 217) | def _copy_from(self, curs, nrecs, srec, copykw):
    method _copy_to (line 234) | def _copy_to(self, curs, srec):
    method test_copy_expert_file_refcount (line 248) | def test_copy_expert_file_refcount(self):
    method test_copy_no_column_limit (line 257) | def test_copy_no_column_limit(self):
    method test_copy_rowcount (line 276) | def test_copy_rowcount(self):
    method test_copy_rowcount_error (line 294) | def test_copy_rowcount_error(self):
  function test_suite (line 308) | def test_suite():

FILE: psycopg2/tests/test_cursor.py
  class CursorTests (line 32) | class CursorTests(ConnectingTestCase):
    method test_close_idempotent (line 34) | def test_close_idempotent(self):
    method test_empty_query (line 40) | def test_empty_query(self):
    method test_executemany_propagate_exceptions (line 46) | def test_executemany_propagate_exceptions(self):
    method test_mogrify_unicode (line 56) | def test_mogrify_unicode(self):
    method test_mogrify_decimal_explodes (line 88) | def test_mogrify_decimal_explodes(self):
    method test_mogrify_leak_on_multiple_reference (line 101) | def test_mogrify_leak_on_multiple_reference(self):
    method test_bad_placeholder (line 113) | def test_bad_placeholder(self):
    method test_cast (line 124) | def test_cast(self):
    method test_cast_specificity (line 141) | def test_cast_specificity(self):
    method test_weakref (line 156) | def test_weakref(self):
    method test_null_name (line 164) | def test_null_name(self):
    method test_invalid_name (line 168) | def test_invalid_name(self):
    method test_withhold (line 179) | def test_withhold(self):
    method test_scrollable (line 212) | def test_scrollable(self):
    method test_not_scrollable (line 251) | def test_not_scrollable(self):
    method test_iter_named_cursor_efficient (line 278) | def test_iter_named_cursor_efficient(self):
    method test_iter_named_cursor_default_itersize (line 292) | def test_iter_named_cursor_default_itersize(self):
    method test_iter_named_cursor_itersize (line 300) | def test_iter_named_cursor_itersize(self):
    method test_iter_named_cursor_rownumber (line 309) | def test_iter_named_cursor_rownumber(self):
    method test_namedtuple_description (line 320) | def test_namedtuple_description(self):
    method test_named_cursor_stealing (line 356) | def test_named_cursor_stealing(self):
    method test_scroll (line 370) | def test_scroll(self):
    method test_scroll_named (line 404) | def test_scroll_named(self):
    method test_bad_subclass (line 416) | def test_bad_subclass(self):
  function test_suite (line 431) | def test_suite():

FILE: psycopg2/tests/test_dates.py
  class CommonDatetimeTestsMixin (line 30) | class CommonDatetimeTestsMixin:
    method execute (line 32) | def execute(self, *args):
    method test_parse_date (line 36) | def test_parse_date(self):
    method test_parse_null_date (line 43) | def test_parse_null_date(self):
    method test_parse_incomplete_date (line 47) | def test_parse_incomplete_date(self):
    method test_parse_time (line 51) | def test_parse_time(self):
    method test_parse_null_time (line 58) | def test_parse_null_time(self):
    method test_parse_incomplete_time (line 62) | def test_parse_incomplete_time(self):
    method test_parse_datetime (line 66) | def test_parse_datetime(self):
    method test_parse_null_datetime (line 76) | def test_parse_null_datetime(self):
    method test_parse_incomplete_datetime (line 80) | def test_parse_incomplete_datetime(self):
    method test_parse_null_interval (line 90) | def test_parse_null_interval(self):
  class DatetimeTests (line 95) | class DatetimeTests(ConnectingTestCase, CommonDatetimeTestsMixin):
    method setUp (line 98) | def setUp(self):
    method test_parse_bc_date (line 106) | def test_parse_bc_date(self):
    method test_parse_bc_datetime (line 110) | def test_parse_bc_datetime(self):
    method test_parse_time_microseconds (line 115) | def test_parse_time_microseconds(self):
    method test_parse_datetime_microseconds (line 120) | def test_parse_datetime_microseconds(self):
    method check_time_tz (line 125) | def check_time_tz(self, str_offset, offset):
    method test_parse_time_timezone (line 139) | def test_parse_time_timezone(self):
    method check_datetime_tz (line 156) | def check_datetime_tz(self, str_offset, offset):
    method test_parse_datetime_timezone (line 175) | def test_parse_datetime_timezone(self):
    method test_parse_time_no_timezone (line 192) | def test_parse_time_no_timezone(self):
    method test_parse_datetime_no_timezone (line 196) | def test_parse_datetime_no_timezone(self):
    method test_parse_interval (line 202) | def test_parse_interval(self):
    method test_parse_negative_interval (line 209) | def test_parse_negative_interval(self):
    method test_parse_infinity (line 216) | def test_parse_infinity(self):
    method test_adapt_date (line 224) | def test_adapt_date(self):
    method test_adapt_time (line 230) | def test_adapt_time(self):
    method test_adapt_datetime (line 236) | def test_adapt_datetime(self):
    method test_adapt_timedelta (line 242) | def test_adapt_timedelta(self):
    method test_adapt_negative_timedelta (line 251) | def test_adapt_negative_timedelta(self):
    method _test_type_roundtrip (line 260) | def _test_type_roundtrip(self, o1):
    method _test_type_roundtrip_array (line 265) | def _test_type_roundtrip_array(self, o1):
    method test_type_roundtrip_date (line 270) | def test_type_roundtrip_date(self):
    method test_type_roundtrip_datetime (line 274) | def test_type_roundtrip_datetime(self):
    method test_type_roundtrip_datetimetz (line 279) | def test_type_roundtrip_datetimetz(self):
    method test_type_roundtrip_time (line 288) | def test_type_roundtrip_time(self):
    method test_type_roundtrip_interval (line 292) | def test_type_roundtrip_interval(self):
    method test_type_roundtrip_date_array (line 296) | def test_type_roundtrip_date_array(self):
    method test_type_roundtrip_datetime_array (line 300) | def test_type_roundtrip_datetime_array(self):
    method test_type_roundtrip_time_array (line 304) | def test_type_roundtrip_time_array(self):
    method test_type_roundtrip_interval_array (line 308) | def test_type_roundtrip_interval_array(self):
  class mxDateTimeTests (line 318) | class mxDateTimeTests(ConnectingTestCase, CommonDatetimeTestsMixin):
    method setUp (line 321) | def setUp(self):
    method tearDown (line 338) | def tearDown(self):
    method test_parse_bc_date (line 341) | def test_parse_bc_date(self):
    method test_parse_bc_datetime (line 349) | def test_parse_bc_datetime(self):
    method test_parse_time_microseconds (line 360) | def test_parse_time_microseconds(self):
    method test_parse_datetime_microseconds (line 366) | def test_parse_datetime_microseconds(self):
    method test_parse_time_timezone (line 372) | def test_parse_time_timezone(self):
    method test_parse_datetime_timezone (line 383) | def test_parse_datetime_timezone(self):
    method test_parse_interval (line 400) | def test_parse_interval(self):
    method test_adapt_time (line 408) | def test_adapt_time(self):
    method test_adapt_datetime (line 414) | def test_adapt_datetime(self):
    method test_adapt_bc_datetime (line 420) | def test_adapt_bc_datetime(self):
    method test_adapt_timedelta (line 430) | def test_adapt_timedelta(self):
    method test_adapt_negative_timedelta (line 439) | def test_adapt_negative_timedelta(self):
    method _test_type_roundtrip (line 448) | def _test_type_roundtrip(self, o1):
    method _test_type_roundtrip_array (line 452) | def _test_type_roundtrip_array(self, o1):
    method test_type_roundtrip_date (line 457) | def test_type_roundtrip_date(self):
    method test_type_roundtrip_datetime (line 461) | def test_type_roundtrip_datetime(self):
    method test_type_roundtrip_time (line 465) | def test_type_roundtrip_time(self):
    method test_type_roundtrip_interval (line 469) | def test_type_roundtrip_interval(self):
    method test_type_roundtrip_date_array (line 473) | def test_type_roundtrip_date_array(self):
    method test_type_roundtrip_datetime_array (line 477) | def test_type_roundtrip_datetime_array(self):
    method test_type_roundtrip_time_array (line 481) | def test_type_roundtrip_time_array(self):
    method test_type_roundtrip_interval_array (line 485) | def test_type_roundtrip_interval_array(self):
  class FromTicksTestCase (line 498) | class FromTicksTestCase(unittest.TestCase):
    method test_timestamp_value_error_sec_59_99 (line 501) | def test_timestamp_value_error_sec_59_99(self):
    method test_date_value_error_sec_59_99 (line 508) | def test_date_value_error_sec_59_99(self):
    method test_time_value_error_sec_59_99 (line 513) | def test_time_value_error_sec_59_99(self):
  class FixedOffsetTimezoneTests (line 520) | class FixedOffsetTimezoneTests(unittest.TestCase):
    method test_init_with_no_args (line 522) | def test_init_with_no_args(self):
    method test_repr_with_positive_offset (line 527) | def test_repr_with_positive_offset(self):
    method test_repr_with_negative_offset (line 531) | def test_repr_with_negative_offset(self):
    method test_repr_with_name (line 535) | def test_repr_with_name(self):
    method test_instance_caching (line 539) | def test_instance_caching(self):
    method test_pickle (line 546) | def test_pickle(self):
  function test_suite (line 565) | def test_suite():

FILE: psycopg2/tests/test_extras_dictcursor.py
  class ExtrasDictCursorTests (line 25) | class ExtrasDictCursorTests(ConnectingTestCase):
    method setUp (line 28) | def setUp(self):
    method testDictConnCursorArgs (line 35) | def testDictConnCursorArgs(self):
    method testDictCursorWithPlainCursorFetchOne (line 46) | def testDictCursorWithPlainCursorFetchOne(self):
    method testDictCursorWithPlainCursorFetchMany (line 49) | def testDictCursorWithPlainCursorFetchMany(self):
    method testDictCursorWithPlainCursorFetchManyNoarg (line 52) | def testDictCursorWithPlainCursorFetchManyNoarg(self):
    method testDictCursorWithPlainCursorFetchAll (line 55) | def testDictCursorWithPlainCursorFetchAll(self):
    method testDictCursorWithPlainCursorIter (line 58) | def testDictCursorWithPlainCursorIter(self):
    method testUpdateRow (line 64) | def testUpdateRow(self):
    method testDictCursorWithPlainCursorIterRowNumber (line 71) | def testDictCursorWithPlainCursorIterRowNumber(self):
    method _testWithPlainCursor (line 75) | def _testWithPlainCursor(self, getter):
    method testDictCursorWithPlainCursorRealFetchOne (line 84) | def testDictCursorWithPlainCursorRealFetchOne(self):
    method testDictCursorWithPlainCursorRealFetchMany (line 87) | def testDictCursorWithPlainCursorRealFetchMany(self):
    method testDictCursorWithPlainCursorRealFetchManyNoarg (line 90) | def testDictCursorWithPlainCursorRealFetchManyNoarg(self):
    method testDictCursorWithPlainCursorRealFetchAll (line 93) | def testDictCursorWithPlainCursorRealFetchAll(self):
    method testDictCursorWithPlainCursorRealIter (line 96) | def testDictCursorWithPlainCursorRealIter(self):
    method testDictCursorWithPlainCursorRealIterRowNumber (line 103) | def testDictCursorWithPlainCursorRealIterRowNumber(self):
    method _testWithPlainCursorReal (line 107) | def _testWithPlainCursorReal(self, getter):
    method testDictCursorWithNamedCursorFetchOne (line 114) | def testDictCursorWithNamedCursorFetchOne(self):
    method testDictCursorWithNamedCursorFetchMany (line 117) | def testDictCursorWithNamedCursorFetchMany(self):
    method testDictCursorWithNamedCursorFetchManyNoarg (line 120) | def testDictCursorWithNamedCursorFetchManyNoarg(self):
    method testDictCursorWithNamedCursorFetchAll (line 123) | def testDictCursorWithNamedCursorFetchAll(self):
    method testDictCursorWithNamedCursorIter (line 126) | def testDictCursorWithNamedCursorIter(self):
    method testDictCursorWithNamedCursorNotGreedy (line 133) | def testDictCursorWithNamedCursorNotGreedy(self):
    method testDictCursorWithNamedCursorIterRowNumber (line 138) | def testDictCursorWithNamedCursorIterRowNumber(self):
    method _testWithNamedCursor (line 142) | def _testWithNamedCursor(self, getter):
    method testDictCursorRealWithNamedCursorFetchOne (line 150) | def testDictCursorRealWithNamedCursorFetchOne(self):
    method testDictCursorRealWithNamedCursorFetchMany (line 153) | def testDictCursorRealWithNamedCursorFetchMany(self):
    method testDictCursorRealWithNamedCursorFetchManyNoarg (line 156) | def testDictCursorRealWithNamedCursorFetchManyNoarg(self):
    method testDictCursorRealWithNamedCursorFetchAll (line 159) | def testDictCursorRealWithNamedCursorFetchAll(self):
    method testDictCursorRealWithNamedCursorIter (line 162) | def testDictCursorRealWithNamedCursorIter(self):
    method testDictCursorRealWithNamedCursorNotGreedy (line 169) | def testDictCursorRealWithNamedCursorNotGreedy(self):
    method testDictCursorRealWithNamedCursorIterRowNumber (line 174) | def testDictCursorRealWithNamedCursorIterRowNumber(self):
    method _testWithNamedCursorReal (line 178) | def _testWithNamedCursorReal(self, getter):
    method _testNamedCursorNotGreedy (line 185) | def _testNamedCursorNotGreedy(self, curs):
    method _testIterRowNumber (line 197) | def _testIterRowNumber(self, curs):
    method testPickleDictRow (line 205) | def testPickleDictRow(self):
    method testPickleRealDictRow (line 219) | def testPickleRealDictRow(self):
  class NamedTupleCursorTest (line 232) | class NamedTupleCursorTest(ConnectingTestCase):
    method setUp (line 233) | def setUp(self):
    method test_cursor_args (line 251) | def test_cursor_args(self):
    method test_fetchone (line 257) | def test_fetchone(self):
    method test_fetchmany_noarg (line 269) | def test_fetchmany_noarg(self):
    method test_fetchmany (line 283) | def test_fetchmany(self):
    method test_fetchall (line 296) | def test_fetchall(self):
    method test_executemany (line 311) | def test_executemany(self):
    method test_iter (line 322) | def test_iter(self):
    method test_error_message (line 347) | def test_error_message(self):
    method test_record_updated (line 367) | def test_record_updated(self):
    method test_no_result_no_surprise (line 379) | def test_no_result_no_surprise(self):
    method test_minimal_generation (line 388) | def test_minimal_generation(self):
    method test_named (line 422) | def test_named(self):
    method test_named_fetchone (line 432) | def test_named_fetchone(self):
    method test_named_fetchmany (line 439) | def test_named_fetchmany(self):
    method test_named_fetchall (line 446) | def test_named_fetchall(self):
    method test_not_greedy (line 454) | def test_not_greedy(self):
    method test_named_rownumber (line 469) | def test_named_rownumber(self):
  function test_suite (line 479) | def test_suite():

FILE: psycopg2/tests/test_green.py
  class ConnectionStub (line 32) | class ConnectionStub(object):
    method __init__ (line 34) | def __init__(self, conn):
    method fileno (line 38) | def fileno(self):
    method poll (line 41) | def poll(self):
  class GreenTestCase (line 46) | class GreenTestCase(ConnectingTestCase):
    method setUp (line 47) | def setUp(self):
    method tearDown (line 52) | def tearDown(self):
    method set_stub_wait_callback (line 56) | def set_stub_wait_callback(self, conn):
    method test_flush_on_write (line 62) | def test_flush_on_write(self):
    method test_error_in_callback (line 82) | def test_error_in_callback(self):
    method test_dont_freak_out (line 97) | def test_dont_freak_out(self):
  function test_suite (line 112) | def test_suite():

FILE: psycopg2/tests/test_lobject.py
  function skip_if_no_lo (line 36) | def skip_if_no_lo(f):
  class LargeObjectTestCase (line 49) | class LargeObjectTestCase(ConnectingTestCase):
    method setUp (line 50) | def setUp(self):
    method tearDown (line 55) | def tearDown(self):
  class LargeObjectTests (line 74) | class LargeObjectTests(LargeObjectTestCase):
    method test_create (line 75) | def test_create(self):
    method test_connection_needed (line 80) | def test_connection_needed(self):
    method test_open_non_existent (line 84) | def test_open_non_existent(self):
    method test_open_existing (line 91) | def test_open_existing(self):
    method test_open_for_write (line 98) | def test_open_for_write(self):
    method test_open_mode_n (line 104) | def test_open_mode_n(self):
    method test_close_connection_gone (line 113) | def test_close_connection_gone(self):
    method test_create_with_oid (line 118) | def test_create_with_oid(self):
    method test_create_with_existing_oid (line 127) | def test_create_with_existing_oid(self):
    method test_import (line 135) | def test_import(self):
    method test_close (line 145) | def test_close(self):
    method test_write (line 151) | def test_write(self):
    method test_write_large (line 155) | def test_write_large(self):
    method test_read (line 160) | def test_read(self):
    method test_read_binary (line 171) | def test_read_binary(self):
    method test_read_text (line 182) | def test_read_text(self):
    method test_read_large (line 194) | def test_read_large(self):
    method test_seek_tell (line 207) | def test_seek_tell(self):
    method test_unlink (line 228) | def test_unlink(self):
    method test_export (line 237) | def test_export(self):
    method test_close_twice (line 251) | def test_close_twice(self):
    method test_write_after_close (line 256) | def test_write_after_close(self):
    method test_read_after_close (line 261) | def test_read_after_close(self):
    method test_seek_after_close (line 266) | def test_seek_after_close(self):
    method test_tell_after_close (line 271) | def test_tell_after_close(self):
    method test_unlink_after_close (line 276) | def test_unlink_after_close(self):
    method test_export_after_close (line 282) | def test_export_after_close(self):
    method test_close_after_commit (line 297) | def test_close_after_commit(self):
    method test_write_after_commit (line 305) | def test_write_after_commit(self):
    method test_read_after_commit (line 312) | def test_read_after_commit(self):
    method test_seek_after_commit (line 319) | def test_seek_after_commit(self):
    method test_tell_after_commit (line 326) | def test_tell_after_commit(self):
    method test_unlink_after_commit (line 333) | def test_unlink_after_commit(self):
    method test_export_after_commit (line 341) | def test_export_after_commit(self):
    method test_read_after_tpc_commit (line 357) | def test_read_after_tpc_commit(self):
    method test_read_after_tpc_prepare (line 366) | def test_read_after_tpc_prepare(self):
    method test_large_oid (line 377) | def test_large_oid(self):
  function skip_if_no_truncate (line 387) | def skip_if_no_truncate(f):
  class LargeObjectTruncateTests (line 403) | class LargeObjectTruncateTests(LargeObjectTestCase):
    method test_truncate (line 404) | def test_truncate(self):
    method test_truncate_after_close (line 427) | def test_truncate_after_close(self):
    method test_truncate_after_commit (line 432) | def test_truncate_after_commit(self):
  function test_suite (line 443) | def test_suite():

FILE: psycopg2/tests/test_module.py
  class ConnectTestCase (line 30) | class ConnectTestCase(unittest.TestCase):
    method setUp (line 31) | def setUp(self):
    method tearDown (line 39) | def tearDown(self):
    method test_there_has_to_be_something (line 42) | def test_there_has_to_be_something(self):
    method test_no_keywords (line 49) | def test_no_keywords(self):
    method test_dsn (line 55) | def test_dsn(self):
    method test_supported_keywords (line 61) | def test_supported_keywords(self):
    method test_generic_keywords (line 81) | def test_generic_keywords(self):
    method test_factory (line 85) | def test_factory(self):
    method test_async (line 99) | def test_async(self):
    method test_empty_param (line 110) | def test_empty_param(self):
    method test_escape (line 114) | def test_escape(self):
    method test_no_kwargs_swallow (line 130) | def test_no_kwargs_swallow(self):
  class ExceptionsTestCase (line 139) | class ExceptionsTestCase(ConnectingTestCase):
    method test_attributes (line 140) | def test_attributes(self):
    method test_diagnostics_attributes (line 151) | def test_diagnostics_attributes(self):
    method test_diagnostics_values (line 170) | def test_diagnostics_values(self):
    method test_diagnostics_life (line 180) | def test_diagnostics_life(self):
    method test_diagnostics_copy (line 206) | def test_diagnostics_copy(self):
    method test_diagnostics_independent (line 217) | def test_diagnostics_independent(self):
    method test_diagnostics_from_commit (line 234) | def test_diagnostics_from_commit(self):
    method test_9_3_diagnostics (line 250) | def test_9_3_diagnostics(self):
    method test_pickle (line 268) | def test_pickle(self):
    method test_pickle_connection_error (line 283) | def test_pickle_connection_error(self):
  function test_suite (line 298) | def test_suite():

FILE: psycopg2/tests/test_notify.py
  class NotifiesTests (line 38) | class NotifiesTests(ConnectingTestCase):
    method autocommit (line 40) | def autocommit(self, conn):
    method listen (line 44) | def listen(self, name):
    method notify (line 50) | def notify(self, name, sec=0, payload=None):
    method test_notifies_received_on_poll (line 74) | def test_notifies_received_on_poll(self):
    method test_many_notifies (line 92) | def test_many_notifies(self):
    method test_notifies_received_on_execute (line 111) | def test_notifies_received_on_execute(self):
    method test_notify_object (line 121) | def test_notify_object(self):
    method test_notify_attributes (line 130) | def test_notify_attributes(self):
    method test_notify_payload (line 142) | def test_notify_payload(self):
    method test_notify_init (line 157) | def test_notify_init(self):
    method test_compare (line 172) | def test_compare(self):
    method test_compare_tuple (line 181) | def test_compare_tuple(self):
    method test_hash (line 188) | def test_hash(self):
  function test_suite (line 194) | def test_suite():

FILE: psycopg2/tests/test_psycopg2_dbapi20.py
  class Psycopg2Tests (line 33) | class Psycopg2Tests(dbapi20.DatabaseAPI20Test):
    method test_setoutputsize (line 40) | def test_setoutputsize(self):
    method test_nextset (line 44) | def test_nextset(self):
  class Psycopg2TPCTests (line 49) | class Psycopg2TPCTests(dbapi20_tpc.TwoPhaseCommitTests, unittest.TestCase):
    method connect (line 52) | def connect(self):
  function test_suite (line 58) | def test_suite():

FILE: psycopg2/tests/test_quote.py
  class QuotingTestCase (line 32) | class QuotingTestCase(ConnectingTestCase):
    method test_string (line 50) | def test_string(self):
    method test_binary (line 63) | def test_binary(self):
    method test_unicode (line 86) | def test_unicode(self):
    method test_latin1 (line 109) | def test_latin1(self):
    method test_koi8 (line 133) | def test_koi8(self):
  class TestQuotedString (line 158) | class TestQuotedString(ConnectingTestCase):
    method test_encoding (line 159) | def test_encoding(self):
  function test_suite (line 168) | def test_suite():

FILE: psycopg2/tests/test_transaction.py
  class TransactionTests (line 32) | class TransactionTests(ConnectingTestCase):
    method setUp (line 34) | def setUp(self):
    method test_rollback (line 53) | def test_rollback(self):
    method test_commit (line 64) | def test_commit(self):
    method test_failed_commit (line 77) | def test_failed_commit(self):
  class DeadlockSerializationTests (line 92) | class DeadlockSerializationTests(ConnectingTestCase):
    method connect (line 95) | def connect(self):
    method setUp (line 100) | def setUp(self):
    method tearDown (line 125) | def tearDown(self):
    method test_deadlock (line 133) | def test_deadlock(self):
    method test_serialisation_failure (line 179) | def test_serialisation_failure(self):
  class QueryCancellationTests (line 227) | class QueryCancellationTests(ConnectingTestCase):
    method setUp (line 230) | def setUp(self):
    method test_statement_timeout (line 235) | def test_statement_timeout(self):
  function test_suite (line 243) | def test_suite():

FILE: psycopg2/tests/test_types_basic.py
  class TypesBasicTests (line 36) | class TypesBasicTests(ConnectingTestCase):
    method execute (line 39) | def execute(self, *args):
    method testQuoting (line 44) | def testQuoting(self):
    method testUnicode (line 49) | def testUnicode(self):
    method testNumber (line 54) | def testNumber(self):
    method testBoolean (line 60) | def testBoolean(self):
    method testDecimal (line 66) | def testDecimal(self):
    method testFloatNan (line 80) | def testFloatNan(self):
    method testFloatInf (line 90) | def testFloatInf(self):
    method testBinary (line 104) | def testBinary(self):
    method testBinaryNone (line 116) | def testBinaryNone(self):
    method testBinaryEmptyString (line 121) | def testBinaryEmptyString(self):
    method testBinaryRoundTrip (line 130) | def testBinaryRoundTrip(self):
    method testArray (line 144) | def testArray(self):
    method testEmptyArrayRegression (line 150) | def testEmptyArrayRegression(self):
    method testEmptyArray (line 164) | def testEmptyArray(self):
    method testArrayEscape (line 177) | def testArrayEscape(self):
    method testArrayMalformed (line 188) | def testArrayMalformed(self):
    method testTypeRoundtripBuffer (line 196) | def testTypeRoundtripBuffer(self):
    method testTypeRoundtripBufferArray (line 208) | def testTypeRoundtripBufferArray(self):
    method testTypeRoundtripBytes (line 216) | def testTypeRoundtripBytes(self):
    method testTypeRoundtripBytesArray (line 227) | def testTypeRoundtripBytesArray(self):
    method testAdaptBytearray (line 234) | def testAdaptBytearray(self):
    method testAdaptMemoryview (line 258) | def testAdaptMemoryview(self):
    method testByteaHexCheckFalsePositive (line 274) | def testByteaHexCheckFalsePositive(self):
    method testNegNumber (line 281) | def testNegNumber(self):
    method testGenericArray (line 291) | def testGenericArray(self):
    method testGenericArrayNull (line 298) | def testGenericArrayNull(self):
  class AdaptSubclassTest (line 312) | class AdaptSubclassTest(unittest.TestCase):
    method test_adapt_subtype (line 313) | def test_adapt_subtype(self):
    method test_adapt_most_specific (line 320) | def test_adapt_most_specific(self):
    method test_no_mro_no_joy (line 336) | def test_no_mro_no_joy(self):
    method test_adapt_subtype_3 (line 350) | def test_adapt_subtype_3(self):
  class ByteaParserTest (line 363) | class ByteaParserTest(unittest.TestCase):
    method setUp (line 365) | def setUp(self):
    method _import_cast (line 372) | def _import_cast(self):
    method cast (line 385) | def cast(self, buffer):
    method test_null (line 398) | def test_null(self):
    method test_blank (line 402) | def test_blank(self):
    method test_blank_hex (line 406) | def test_blank_hex(self):
    method test_full_hex (line 411) | def test_full_hex(self, upper=False):
    method test_full_hex_upper (line 421) | def test_full_hex_upper(self):
    method test_full_escaped_octal (line 424) | def test_full_escaped_octal(self):
    method test_escaped_mixed (line 432) | def test_escaped_mixed(self):
  function skip_if_cant_cast (line 448) | def skip_if_cant_cast(f):
  function test_suite (line 462) | def test_suite():

FILE: psycopg2/tests/test_types_extras.py
  function filter_scs (line 33) | def filter_scs(conn, s):
  class TypesExtrasTests (line 39) | class TypesExtrasTests(ConnectingTestCase):
    method execute (line 42) | def execute(self, *args):
    method testUUID (line 48) | def testUUID(self):
    method testUUIDARRAY (line 59) | def testUUIDARRAY(self):
    method testINET (line 76) | def testINET(self):
    method testINETARRAY (line 85) | def testINETARRAY(self):
    method test_inet_conform (line 94) | def test_inet_conform(self):
    method test_adapt_fail (line 111) | def test_adapt_fail(self):
  function skip_if_no_hstore (line 121) | def skip_if_no_hstore(f):
  class HstoreTestCase (line 132) | class HstoreTestCase(ConnectingTestCase):
    method test_adapt_8 (line 133) | def test_adapt_8(self):
    method test_adapt_9 (line 159) | def test_adapt_9(self):
    method test_parse (line 192) | def test_parse(self):
    method test_register_conn (line 223) | def test_register_conn(self):
    method test_register_curs (line 235) | def test_register_curs(self):
    method test_register_unicode (line 247) | def test_register_unicode(self):
    method test_register_globally (line 261) | def test_register_globally(self):
    method test_roundtrip (line 285) | def test_roundtrip(self):
    method test_roundtrip_unicode (line 315) | def test_roundtrip_unicode(self):
    method test_oid (line 338) | def test_oid(self):
    method test_roundtrip_array (line 359) | def test_roundtrip_array(self):
    method test_array_cast (line 387) | def test_array_cast(self):
    method test_array_cast_oid (line 396) | def test_array_cast_oid(self):
    method test_non_dbapi_connection (line 416) | def test_non_dbapi_connection(self):
  function skip_if_no_composite (line 439) | def skip_if_no_composite(f):
  class AdaptTypeTestCase (line 451) | class AdaptTypeTestCase(ConnectingTestCase):
    method test_none_in_record (line 453) | def test_none_in_record(self):
    method test_none_fast_path (line 461) | def test_none_fast_path(self):
    method test_tokenization (line 482) | def test_tokenization(self):
    method test_cast_composite (line 512) | def test_cast_composite(self):
    method test_empty_string (line 544) | def test_empty_string(self):
    method test_cast_nested (line 564) | def test_cast_nested(self):
    method test_register_on_cursor (line 591) | def test_register_on_cursor(self):
    method test_register_on_connection (line 603) | def test_register_on_connection(self):
    method test_register_globally (line 621) | def test_register_globally(self):
    method test_composite_namespace (line 648) | def test_composite_namespace(self):
    method test_composite_array (line 668) | def test_composite_array(self):
    method test_wrong_schema (line 690) | def test_wrong_schema(self):
    method test_from_tables (line 701) | def test_from_tables(self):
    method test_non_dbapi_connection (line 745) | def test_non_dbapi_connection(self):
    method test_subclass (line 769) | def test_subclass(self):
    method _create_type (line 793) | def _create_type(self, name, fields):
  function skip_if_json_module (line 817) | def skip_if_json_module(f):
  function skip_if_no_json_module (line 828) | def skip_if_no_json_module(f):
  function skip_if_no_json_type (line 839) | def skip_if_no_json_type(f):
  class JsonTestCase (line 852) | class JsonTestCase(ConnectingTestCase):
    method test_module_not_available (line 854) | def test_module_not_available(self):
    method test_customizable_with_module_not_available (line 859) | def test_customizable_with_module_not_available(self):
    method test_adapt (line 869) | def test_adapt(self):
    method test_adapt_dumps (line 881) | def test_adapt_dumps(self):
    method test_adapt_subclass (line 897) | def test_adapt_subclass(self):
    method test_register_on_dict (line 916) | def test_register_on_dict(self):
    method test_type_not_available (line 929) | def test_type_not_available(self):
    method test_default_cast (line 940) | def test_default_cast(self):
    method test_register_on_connection (line 951) | def test_register_on_connection(self):
    method test_register_on_cursor (line 959) | def test_register_on_cursor(self):
    method test_register_globally (line 967) | def test_register_globally(self):
    method test_loads (line 985) | def test_loads(self):
    method test_no_conn_curs (line 997) | def test_no_conn_curs(self):
    method test_register_default (line 1022) | def test_register_default(self):
    method test_null (line 1040) | def test_null(self):
    method test_no_array_oid (line 1049) | def test_no_array_oid(self):
  class RangeTestCase (line 1061) | class RangeTestCase(unittest.TestCase):
    method test_noparam (line 1062) | def test_noparam(self):
    method test_empty (line 1074) | def test_empty(self):
    method test_nobounds (line 1086) | def test_nobounds(self):
    method test_bounds (line 1097) | def test_bounds(self):
    method test_keywords (line 1113) | def test_keywords(self):
    method test_bad_bounds (line 1133) | def test_bad_bounds(self):
    method test_in (line 1138) | def test_in(self):
    method test_nonzero (line 1190) | def test_nonzero(self):
    method test_eq_hash (line 1196) | def test_eq_hash(self):
    method test_eq_wrong_type (line 1217) | def test_eq_wrong_type(self):
    method test_eq_subclass (line 1221) | def test_eq_subclass(self):
    method test_lt_ordering (line 1234) | def test_lt_ordering(self):
    method test_gt_ordering (line 1250) | def test_gt_ordering(self):
    method test_le_ordering (line 1266) | def test_le_ordering(self):
    method test_ge_ordering (line 1282) | def test_ge_ordering(self):
  function skip_if_no_range (line 1299) | def skip_if_no_range(f):
  class RangeCasterTestCase (line 1312) | class RangeCasterTestCase(ConnectingTestCase):
    method test_cast_null (line 1317) | def test_cast_null(self):
    method test_cast_empty (line 1324) | def test_cast_empty(self):
    method test_cast_inf (line 1333) | def test_cast_inf(self):
    method test_cast_numbers (line 1344) | def test_cast_numbers(self):
    method test_cast_date (line 1370) | def test_cast_date(self):
    method test_cast_timestamp (line 1384) | def test_cast_timestamp(self):
    method test_cast_timestamptz (line 1400) | def test_cast_timestamptz(self):
    method test_adapt_number_range (line 1417) | def test_adapt_number_range(self):
    method test_adapt_numeric_range (line 1445) | def test_adapt_numeric_range(self):
    method test_adapt_date_range (line 1473) | def test_adapt_date_range(self):
    method test_register_range_adapter (line 1506) | def test_register_range_adapter(self):
    method test_range_escaping (line 1533) | def test_range_escaping(self):
    method test_range_not_found (line 1584) | def test_range_not_found(self):
    method test_schema_range (line 1590) | def test_schema_range(self):
  function test_suite (line 1620) | def test_suite():

FILE: psycopg2/tests/test_with.py
  class WithTestCase (line 33) | class WithTestCase(ConnectingTestCase):
    method setUp (line 34) | def setUp(self):
  class WithConnectionTestCase (line 47) | class WithConnectionTestCase(WithTestCase):
    method test_with_ok (line 48) | def test_with_ok(self):
    method test_with_connect_idiom (line 63) | def test_with_connect_idiom(self):
    method test_with_error_db (line 77) | def test_with_error_db(self):
    method test_with_error_python (line 91) | def test_with_error_python(self):
    method test_with_closed (line 106) | def test_with_closed(self):
    method test_subclass_commit (line 114) | def test_subclass_commit(self):
    method test_subclass_rollback (line 132) | def test_subclass_rollback(self):
  class WithCursorTestCase (line 157) | class WithCursorTestCase(WithTestCase):
    method test_with_ok (line 158) | def test_with_ok(self):
    method test_with_error (line 173) | def test_with_error(self):
    method test_subclass (line 190) | def test_subclass(self):
  function test_suite (line 204) | def test_suite():

FILE: psycopg2/tests/testutils.py
  function skipIf (line 46) | def skipIf(cond, msg):
  function skip (line 58) | def skip(msg):
  function skipTest (line 61) | def skipTest(self, msg):
  class ConnectingTestCase (line 78) | class ConnectingTestCase(unittest.TestCase):
    method setUp (line 87) | def setUp(self):
    method tearDown (line 90) | def tearDown(self):
    method connect (line 96) | def connect(self, **kwargs):
    method _get_conn (line 109) | def _get_conn(self):
    method _set_conn (line 115) | def _set_conn(self, conn):
  function decorate_all_tests (line 121) | def decorate_all_tests(cls, *decorators):
  function skip_if_no_uuid (line 131) | def skip_if_no_uuid(f):
  function skip_if_tpc_disabled (line 155) | def skip_if_tpc_disabled(f):
  function skip_if_no_namedtuple (line 180) | def skip_if_no_namedtuple(f):
  function skip_if_no_iobase (line 193) | def skip_if_no_iobase(f):
  function skip_before_postgres (line 207) | def skip_before_postgres(*ver):
  function skip_after_postgres (line 222) | def skip_after_postgres(*ver):
  function skip_before_python (line 237) | def skip_before_python(*ver):
  function skip_from_python (line 251) | def skip_from_python(*ver):
  function skip_if_no_superuser (line 265) | def skip_if_no_superuser(f):
  function skip_if_green (line 281) | def skip_if_green(reason):
  function skip_if_no_getrefcount (line 296) | def skip_if_no_getrefcount(f):
  function script_to_py3 (line 305) | def script_to_py3(script):
  class py3_raises_typeerror (line 332) | class py3_raises_typeerror(object):
    method __enter__ (line 334) | def __enter__(self):
    method __exit__ (line 337) | def __exit__(self, type, exc, tb):

FILE: psycopg2/tz.py
  class FixedOffsetTimezone (line 34) | class FixedOffsetTimezone(datetime.tzinfo):
    method __init__ (line 53) | def __init__(self, offset=None, name=None):
    method __new__ (line 59) | def __new__(cls, offset=None, name=None):
    method __repr__ (line 70) | def __repr__(self):
    method __getinitargs__ (line 75) | def __getinitargs__(self):
    method utcoffset (line 79) | def utcoffset(self, dt):
    method tzname (line 82) | def tzname(self, dt):
    method dst (line 94) | def dst(self, dt):
  class LocalTimezone (line 105) | class LocalTimezone(datetime.tzinfo):
    method utcoffset (line 110) | def utcoffset(self, dt):
    method dst (line 116) | def dst(self, dt):
    method tzname (line 122) | def tzname(self, dt):
    method _isdst (line 125) | def _isdst(self, dt):

FILE: tests/pythons/win32-py27/Lib/BaseHTTPServer.py
  function _quote_html (line 99) | def _quote_html(html):
  class HTTPServer (line 102) | class HTTPServer(SocketServer.TCPServer):
    method server_bind (line 106) | def server_bind(self):
  class BaseHTTPRequestHandler (line 114) | class BaseHTTPRequestHandler(SocketServer.StreamRequestHandler):
    method parse_request (line 232) | def parse_request(self):
    method handle_one_request (line 301) | def handle_one_request(self):
    method handle (line 336) | def handle(self):
    method send_error (line 344) | def send_error(self, code, message=None):
    method send_response (line 378) | def send_response(self, code, message=None):
    method send_header (line 398) | def send_header(self, keyword, value):
    method end_headers (line 409) | def end_headers(self):
    method log_request (line 414) | def log_request(self, code='-', size='-'):
    method log_error (line 424) | def log_error(self, format, *args):
    method log_message (line 438) | def log_message(self, format, *args):
    method version_string (line 460) | def version_string(self):
    method date_time_string (line 464) | def date_time_string(self, timestamp=None):
    method log_date_time_string (line 475) | def log_date_time_string(self):
    method address_string (line 489) | def address_string(self):
  function test (line 579) | def test(HandlerClass = BaseHTTPRequestHandler,

FILE: tests/pythons/win32-py27/Lib/Bastion.py
  class BastionClass (line 37) | class BastionClass:
    method __init__ (line 47) | def __init__(self, get, name):
    method __repr__ (line 60) | def __repr__(self):
    method __getattr__ (line 70) | def __getattr__(self, name):
  function Bastion (line 87) | def Bastion(object, filter = lambda name: name[:1] != '_',
  function _test (line 134) | def _test():

FILE: tests/pythons/win32-py27/Lib/CGIHTTPServer.py
  class CGIHTTPRequestHandler (line 35) | class CGIHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
    method do_POST (line 54) | def do_POST(self):
    method send_head (line 66) | def send_head(self):
    method is_cgi (line 73) | def is_cgi(self):
    method is_executable (line 97) | def is_executable(self, path):
    method is_python (line 101) | def is_python(self, path):
    method run_cgi (line 106) | def run_cgi(self):
  function _url_collapse_path (line 302) | def _url_collapse_path(path):
  function nobody_uid (line 346) | def nobody_uid():
  function executable (line 362) | def executable(path):
  function test (line 371) | def test(HandlerClass = CGIHTTPRequestHandler,

FILE: tests/pythons/win32-py27/Lib/ConfigParser.py
  class Error (line 112) | class Error(Exception):
    method _get_message (line 115) | def _get_message(self):
    method _set_message (line 120) | def _set_message(self, value):
    method __init__ (line 130) | def __init__(self, msg=''):
    method __repr__ (line 134) | def __repr__(self):
  class NoSectionError (line 139) | class NoSectionError(Error):
    method __init__ (line 142) | def __init__(self, section):
  class DuplicateSectionError (line 147) | class DuplicateSectionError(Error):
    method __init__ (line 150) | def __init__(self, section):
  class NoOptionError (line 155) | class NoOptionError(Error):
    method __init__ (line 158) | def __init__(self, option, section):
  class InterpolationError (line 165) | class InterpolationError(Error):
    method __init__ (line 168) | def __init__(self, option, section, msg):
  class InterpolationMissingOptionError (line 174) | class InterpolationMissingOptionError(InterpolationError):
    method __init__ (line 177) | def __init__(self, option, section, rawval, reference):
  class InterpolationSyntaxError (line 188) | class InterpolationSyntaxError(InterpolationError):
  class InterpolationDepthError (line 192) | class InterpolationDepthError(InterpolationError):
    method __init__ (line 195) | def __init__(self, option, section, rawval):
  class ParsingError (line 204) | class ParsingError(Error):
    method __init__ (line 207) | def __init__(self, filename):
    method append (line 213) | def append(self, lineno, line):
  class MissingSectionHeaderError (line 217) | class MissingSectionHeaderError(ParsingError):
    method __init__ (line 220) | def __init__(self, filename, lineno, line):
  class RawConfigParser (line 231) | class RawConfigParser:
    method __init__ (line 232) | def __init__(self, defaults=None, dict_type=_default_dict,
    method defaults (line 245) | def defaults(self):
    method sections (line 248) | def sections(self):
    method add_section (line 253) | def add_section(self, section):
    method has_section (line 267) | def has_section(self, section):
    method options (line 274) | def options(self, section):
    method read (line 285) | def read(self, filenames):
    method readfp (line 310) | def readfp(self, fp, filename=None):
    method get (line 326) | def get(self, section, option):
    method items (line 342) | def items(self, section):
    method _get (line 355) | def _get(self, section, conv, option):
    method getint (line 358) | def getint(self, section, option):
    method getfloat (line 361) | def getfloat(self, section, option):
    method getboolean (line 367) | def getboolean(self, section, option):
    method optionxform (line 373) | def optionxform(self, optionstr):
    method has_option (line 376) | def has_option(self, section, option):
    method set (line 388) | def set(self, section, option, value=None):
    method write (line 399) | def write(self, fp):
    method remove_option (line 416) | def remove_option(self, section, option):
    method remove_section (line 431) | def remove_section(self, section):
    method _read (line 464) | def _read(self, fp, fpname):
  class _Chainmap (line 558) | class _Chainmap(_UserDict.DictMixin):
    method __init__ (line 567) | def __init__(self, *maps):
    method __getitem__ (line 570) | def __getitem__(self, key):
    method keys (line 578) | def keys(self):
  class ConfigParser (line 588) | class ConfigParser(RawConfigParser):
    method get (line 590) | def get(self, section, option, raw=False, vars=None):
    method items (line 625) | def items(self, section, raw=False, vars=None):
    method _interpolate (line 657) | def _interpolate(self, section, option, rawval, vars):
    method _interpolation_replace (line 678) | def _interpolation_replace(self, match):
  class SafeConfigParser (line 686) | class SafeConfigParser(ConfigParser):
    method _interpolate (line 688) | def _interpolate(self, section, option, rawval, vars):
    method _interpolate_some (line 696) | def _interpolate_some(self, option, accum, rest, section, map, depth):
    method set (line 734) | def set(self, section, option, value=None):

FILE: tests/pythons/win32-py27/Lib/Cookie.py
  class CookieError (line 232) | class CookieError(Exception):
  function _quote (line 315) | def _quote(str, LegalChars=_LegalChars,
  function _unquote (line 333) | def _unquote(str):
  function _getdate (line 389) | def _getdate(future=0, weekdayname=_weekdayname, monthname=_monthname):
  class Morsel (line 408) | class Morsel(dict):
    method __init__ (line 432) | def __init__(self):
    method __setitem__ (line 441) | def __setitem__(self, K, V):
    method isReservedKey (line 448) | def isReservedKey(self, K):
    method set (line 452) | def set(self, key, val, coded_val,
    method output (line 468) | def output(self, attrs=None, header = "Set-Cookie:"):
    method __repr__ (line 473) | def __repr__(self):
    method js_output (line 477) | def js_output(self, attrs=None):
    method OutputString (line 488) | def OutputString(self, attrs=None):
  class BaseCookie (line 554) | class BaseCookie(dict):
    method value_decode (line 558) | def value_decode(self, val):
    method value_encode (line 568) | def value_encode(self, val):
    method __init__ (line 578) | def __init__(self, input=None):
    method __set (line 582) | def __set(self, key, real_value, coded_value):
    method __setitem__ (line 589) | def __setitem__(self, key, value):
    method output (line 595) | def output(self, attrs=None, header="Set-Cookie:", sep="\015\012"):
    method __repr__ (line 607) | def __repr__(self):
    method js_output (line 615) | def js_output(self, attrs=None):
    method load (line 625) | def load(self, rawdata):
    method __ParseString (line 640) | def __ParseString(self, str, patt=_CookiePattern):
  class SimpleCookie (line 670) | class SimpleCookie(BaseCookie):
    method value_decode (line 677) | def value_decode(self, val):
    method value_encode (line 679) | def value_encode(self, val):
  class SerialCookie (line 684) | class SerialCookie(BaseCookie):
    method __init__ (line 698) | def __init__(self, input=None):
    method value_decode (line 703) | def value_decode(self, val):
    method value_encode (line 706) | def value_encode(self, val):
  class SmartCookie (line 710) | class SmartCookie(BaseCookie):
    method __init__ (line 723) | def __init__(self, input=None):
    method value_decode (line 728) | def value_decode(self, val):
    method value_encode (line 734) | def value_encode(self, val):
  function _test (line 751) | def _test():

FILE: tests/pythons/win32-py27/Lib/DocXMLRPCServer.py
  class ServerHTMLDoc (line 23) | class ServerHTMLDoc(pydoc.HTMLDoc):
    method markup (line 26) | def markup(self, text, escape=None, funcs={}, classes={}, methods={}):
    method docroutine (line 67) | def docroutine(self, object, name, mod=None,
    method docserver (line 109) | def docserver(self, server_name, package_documentation, methods):
  class XMLRPCDocGenerator (line 134) | class XMLRPCDocGenerator:
    method __init__ (line 141) | def __init__(self):
    method set_server_title (line 149) | def set_server_title(self, server_title):
    method set_server_name (line 154) | def set_server_name(self, server_name):
    method set_server_documentation (line 159) | def set_server_documentation(self, server_documentation):
    method generate_html_documentation (line 164) | def generate_html_documentation(self):
  class DocXMLRPCRequestHandler (line 215) | class DocXMLRPCRequestHandler(SimpleXMLRPCRequestHandler):
    method do_GET (line 225) | def do_GET(self):
  class DocXMLRPCServer (line 243) | class DocXMLRPCServer(  SimpleXMLRPCServer,
    method __init__ (line 251) | def __init__(self, addr, requestHandler=DocXMLRPCRequestHandler,
  class DocCGIXMLRPCRequestHandler (line 258) | class DocCGIXMLRPCRequestHandler(   CGIXMLRPCRequestHandler,
    method handle_get (line 263) | def handle_get(self):
    method __init__ (line 277) | def __init__(self):

FILE: tests/pythons/win32-py27/Lib/HTMLParser.py
  class HTMLParseError (line 54) | class HTMLParseError(Exception):
    method __init__ (line 57) | def __init__(self, msg, position=(None, None)):
    method __str__ (line 63) | def __str__(self):
  class HTMLParser (line 72) | class HTMLParser(markupbase.ParserBase):
    method __init__ (line 95) | def __init__(self):
    method reset (line 99) | def reset(self):
    method feed (line 107) | def feed(self, data):
    method close (line 116) | def close(self):
    method error (line 120) | def error(self, message):
    method get_starttag_text (line 125) | def get_starttag_text(self):
    method set_cdata_mode (line 129) | def set_cdata_mode(self, elem):
    method clear_cdata_mode (line 133) | def clear_cdata_mode(self):
    method goahead (line 140) | def goahead(self, end):
    method parse_html_declaration (line 234) | def parse_html_declaration(self, i):
    method parse_bogus_comment (line 255) | def parse_bogus_comment(self, i, report=1):
    method parse_pi (line 267) | def parse_pi(self, i):
    method parse_starttag (line 279) | def parse_starttag(self, i):
    method check_for_whole_start_tag (line 331) | def check_for_whole_start_tag(self, i):
    method parse_endtag (line 363) | def parse_endtag(self, i):
    method handle_startendtag (line 403) | def handle_startendtag(self, tag, attrs):
    method handle_starttag (line 408) | def handle_starttag(self, tag, attrs):
    method handle_endtag (line 412) | def handle_endtag(self, tag):
    method handle_charref (line 416) | def handle_charref(self, name):
    method handle_entityref (line 420) | def handle_entityref(self, name):
    method handle_data (line 424) | def handle_data(self, data):
    method handle_comment (line 428) | def handle_comment(self, data):
    method handle_decl (line 432) | def handle_decl(self, decl):
    method handle_pi (line 436) | def handle_pi(self, data):
    method unknown_decl (line 439) | def unknown_decl(self, data):
    method unescape (line 444) | def unescape(self, s):

FILE: tests/pythons/win32-py27/Lib/MimeWriter.py
  class MimeWriter (line 22) | class MimeWriter:
    method __init__ (line 92) | def __init__(self, fp):
    method addheader (line 96) | def addheader(self, key, value, prefix=0):
    method flushheaders (line 117) | def flushheaders(self):
    method startbody (line 128) | def startbody(self, ctype, plist=[], prefix=1):
    method startmultipartbody (line 145) | def startmultipartbody(self, subtype, boundary=None, plist=[], prefix=1):
    method nextpart (line 163) | def nextpart(self):
    method lastpart (line 176) | def lastpart(self):

FILE: tests/pythons/win32-py27/Lib/Queue.py
  class Empty (line 13) | class Empty(Exception):
  class Full (line 17) | class Full(Exception):
  class Queue (line 21) | class Queue:
    method __init__ (line 26) | def __init__(self, maxsize=0):
    method task_done (line 45) | def task_done(self):
    method join (line 70) | def join(self):
    method qsize (line 86) | def qsize(self):
    method empty (line 93) | def empty(self):
    method full (line 100) | def full(self):
    method put (line 107) | def put(self, item, block=True, timeout=None):
    method put_nowait (line 142) | def put_nowait(self, item):
    method get (line 150) | def get(self, block=True, timeout=None):
    method get_nowait (line 184) | def get_nowait(self):
    method _init (line 197) | def _init(self, maxsize):
    method _qsize (line 200) | def _qsize(self, len=len):
    method _put (line 204) | def _put(self, item):
    method _get (line 208) | def _get(self):
  class PriorityQueue (line 212) | class PriorityQueue(Queue):
    method _init (line 218) | def _init(self, maxsize):
    method _qsize (line 221) | def _qsize(self, len=len):
    method _put (line 224) | def _put(self, item, heappush=heapq.heappush):
    method _get (line 227) | def _get(self, heappop=heapq.heappop):
  class LifoQueue (line 231) | class LifoQueue(Queue):
    method _init (line 234) | def _init(self, maxsize):
    method _qsize (line 237) | def _qsize(self, len=len):
    method _put (line 240) | def _put(self, item):
    method _get (line 243) | def _get(self):

FILE: tests/pythons/win32-py27/Lib/SimpleHTTPServer.py
  class SimpleHTTPRequestHandler (line 27) | class SimpleHTTPRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
    method do_GET (line 42) | def do_GET(self):
    method do_HEAD (line 49) | def do_HEAD(self):
    method send_head (line 55) | def send_head(self):
    method list_directory (line 99) | def list_directory(self, path):
    method translate_path (line 141) | def translate_path(self, path):
    method copyfile (line 167) | def copyfile(self, source, outputfile):
    method guess_type (line 183) | def guess_type(self, path):
  function test (line 218) | def test(HandlerClass = SimpleHTTPRequestHandler,

FILE: tests/pythons/win32-py27/Lib/SimpleXMLRPCServer.py
  function resolve_dotted_attribute (line 115) | def resolve_dotted_attribute(obj, attr, allow_dotted_names=True):
  function list_public_methods (line 139) | def list_public_methods(obj):
  function remove_duplicates (line 147) | def remove_duplicates(lst):
  class SimpleXMLRPCDispatcher (line 160) | class SimpleXMLRPCDispatcher:
    method __init__ (line 169) | def __init__(self, allow_none=False, encoding=None):
    method register_instance (line 175) | def register_instance(self, instance, allow_dotted_names=False):
    method register_function (line 211) | def register_function(self, function, name = None):
    method register_introspection_functions (line 222) | def register_introspection_functions(self):
    method register_multicall_functions (line 233) | def register_multicall_functions(self):
    method _marshaled_dispatch (line 241) | def _marshaled_dispatch(self, data, dispatch_method = None, path = None):
    method system_listMethods (line 278) | def system_listMethods(self):
    method system_methodSignature (line 301) | def system_methodSignature(self, method_name):
    method system_methodHelp (line 314) | def system_methodHelp(self, method_name):
    method system_multicall (line 346) | def system_multicall(self, call_list):
    method _dispatch (line 378) | def _dispatch(self, method, params):
  class SimpleXMLRPCRequestHandler (line 424) | class SimpleXMLRPCRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
    method accept_encodings (line 449) | def accept_encodings(self):
    method is_rpc_path_valid (line 460) | def is_rpc_path_valid(self):
    method do_POST (line 467) | def do_POST(self):
    method decode_request_content (line 537) | def decode_request_content(self, data):
    method report_404 (line 554) | def report_404 (self):
    method log_request (line 563) | def log_request(self, code='-', size='-'):
  class SimpleXMLRPCServer (line 569) | class SimpleXMLRPCServer(SocketServer.TCPServer,
    method __init__ (line 588) | def __init__(self, addr, requestHandler=SimpleXMLRPCRequestHandler,
  class MultiPathXMLRPCServer (line 603) | class MultiPathXMLRPCServer(SimpleXMLRPCServer):
    method __init__ (line 611) | def __init__(self, addr, requestHandler=SimpleXMLRPCRequestHandler,
    method add_dispatcher (line 620) | def add_dispatcher(self, path, dispatcher):
    method get_dispatcher (line 624) | def get_dispatcher(self, path):
    method _marshaled_dispatch (line 627) | def _marshaled_dispatch(self, data, dispatch_method = None, path = None):
  class CGIXMLRPCRequestHandler (line 641) | class CGIXMLRPCRequestHandler(SimpleXMLRPCDispatcher):
    method __init__ (line 644) | def __init__(self, allow_none=False, encoding=None):
    method handle_xmlrpc (line 647) | def handle_xmlrpc(self, request_text):
    method handle_get (line 657) | def handle_get(self):
    method handle_request (line 680) | def handle_request(self, request_text = None):

FILE: tests/pythons/win32-py27/Lib/SocketServer.py
  function _eintr_retry (line 151) | def _eintr_retry(func, *args):
  class BaseServer (line 160) | class BaseServer:
    method __init__ (line 206) | def __init__(self, server_address, RequestHandlerClass):
    method server_activate (line 213) | def server_activate(self):
    method serve_forever (line 221) | def serve_forever(self, poll_interval=0.5):
    method shutdown (line 243) | def shutdown(self):
    method handle_request (line 264) | def handle_request(self):
    method _handle_request_noblock (line 282) | def _handle_request_noblock(self):
    method handle_timeout (line 300) | def handle_timeout(self):
    method verify_request (line 307) | def verify_request(self, request, client_address):
    method process_request (line 315) | def process_request(self, request, client_address):
    method server_close (line 324) | def server_close(self):
    method finish_request (line 332) | def finish_request(self, request, client_address):
    method shutdown_request (line 336) | def shutdown_request(self, request):
    method close_request (line 340) | def close_request(self, request):
    method handle_error (line 344) | def handle_error(self, request, client_address):
  class TCPServer (line 358) | class TCPServer(BaseServer):
    method __init__ (line 413) | def __init__(self, server_address, RequestHandlerClass, bind_and_activ...
    method server_bind (line 422) | def server_bind(self):
    method server_activate (line 433) | def server_activate(self):
    method server_close (line 441) | def server_close(self):
    method fileno (line 449) | def fileno(self):
    method get_request (line 457) | def get_request(self):
    method shutdown_request (line 465) | def shutdown_request(self, request):
    method close_request (line 475) | def close_request(self, request):
  class UDPServer (line 480) | class UDPServer(TCPServer):
    method get_request (line 490) | def get_request(self):
    method server_activate (line 494) | def server_activate(self):
    method shutdown_request (line 498) | def shutdown_request(self, request):
    method close_request (line 502) | def close_request(self, request):
  class ForkingMixIn (line 506) | class ForkingMixIn:
    method collect_children (line 514) | def collect_children(self):
    method handle_timeout (line 546) | def handle_timeout(self):
    method process_request (line 553) | def process_request(self, request, client_address):
  class ThreadingMixIn (line 579) | class ThreadingMixIn:
    method process_request_thread (line 586) | def process_request_thread(self, request, client_address):
    method process_request (line 599) | def process_request(self, request, client_address):
  class ForkingUDPServer (line 607) | class ForkingUDPServer(ForkingMixIn, UDPServer): pass
  class ForkingTCPServer (line 608) | class ForkingTCPServer(ForkingMixIn, TCPServer): pass
  class ThreadingUDPServer (line 610) | class ThreadingUDPServer(ThreadingMixIn, UDPServer): pass
  class ThreadingTCPServer (line 611) | class ThreadingTCPServer(ThreadingMixIn, TCPServer): pass
  class UnixStreamServer (line 615) | class UnixStreamServer(TCPServer):
  class UnixDatagramServer (line 618) | class UnixDatagramServer(UDPServer):
  class ThreadingUnixStreamServer (line 621) | class ThreadingUnixStreamServer(ThreadingMixIn, UnixStreamServer): pass
  class ThreadingUnixDatagramServer (line 623) | class ThreadingUnixDatagramServer(ThreadingMixIn, UnixDatagramServer): pass
  class BaseRequestHandler (line 625) | class BaseRequestHandler:
    method __init__ (line 643) | def __init__(self, request, client_address, server):
    method setup (line 653) | def setup(self):
    method handle (line 656) | def handle(self):
    method finish (line 659) | def finish(self):
  class StreamRequestHandler (line 671) | class StreamRequestHandler(BaseRequestHandler):
    method setup (line 692) | def setup(self):
    method finish (line 702) | def finish(self):
  class DatagramRequestHandler (line 714) | class DatagramRequestHandler(BaseRequestHandler):
    method setup (line 721) | def setup(self):
    method finish (line 730) | def finish(self):

FILE: tests/pythons/win32-py27/Lib/StringIO.py
  function _complain_ifclosed (line 38) | def _complain_ifclosed(closed):
  class StringIO (line 42) | class StringIO:
    method __init__ (line 54) | def __init__(self, buf = ''):
    method __iter__ (line 65) | def __iter__(self):
    method next (line 68) | def next(self):
    method close (line 81) | def close(self):
    method isatty (line 88) | def isatty(self):
    method seek (line 95) | def seek(self, pos, mode = 0):
    method tell (line 114) | def tell(self):
    method read (line 119) | def read(self, n = -1):
    method readline (line 139) | def readline(self, length=None):
    method readlines (line 168) | def readlines(self, sizehint = 0):
    method truncate (line 187) | def truncate(self, size=None):
    method write (line 208) | def write(self, s):
    method writelines (line 241) | def writelines(self, iterable):
    method flush (line 253) | def flush(self):
    method getvalue (line 258) | def getvalue(self):
  function test (line 278) | def test():

FILE: tests/pythons/win32-py27/Lib/UserDict.py
  class UserDict (line 3) | class UserDict:
    method __init__ (line 4) | def __init__(self, dict=None, **kwargs):
    method __repr__ (line 10) | def __repr__(self): return repr(self.data)
    method __cmp__ (line 11) | def __cmp__(self, dict):
    method __len__ (line 17) | def __len__(self): return len(self.data)
    method __getitem__ (line 18) | def __getitem__(self, key):
    method __setitem__ (line 24) | def __setitem__(self, key, item): self.data[key] = item
    method __delitem__ (line 25) | def __delitem__(self, key): del self.data[key]
    method clear (line 26) | def clear(self): self.data.clear()
    method copy (line 27) | def copy(self):
    method keys (line 39) | def keys(self): return self.data.keys()
    method items (line 40) | def items(self): return self.data.items()
    method iteritems (line 41) | def iteritems(self): return self.data.iteritems()
    method iterkeys (line 42) | def iterkeys(self): return self.data.iterkeys()
    method itervalues (line 43) | def itervalues(self): return self.data.itervalues()
    method values (line 44) | def values(self): return self.data.values()
    method has_key (line 45) | def has_key(self, key): return key in self.data
    method update (line 46) | def update(self, dict=None, **kwargs):
    method get (line 58) | def get(self, key, failobj=None):
    method setdefault (line 62) | def setdefault(self, key, failobj=None):
    method pop (line 66) | def pop(self, key, *args):
    method popitem (line 68) | def popitem(self):
    method __contains__ (line 70) | def __contains__(self, key):
    method fromkeys (line 73) | def fromkeys(cls, iterable, value=None):
  class IterableUserDict (line 79) | class IterableUserDict(UserDict):
    method __iter__ (line 80) | def __iter__(self):
  class DictMixin (line 87) | class DictMixin:
    method __iter__ (line 96) | def __iter__(self):
    method has_key (line 99) | def has_key(self, key):
    method __contains__ (line 105) | def __contains__(self, key):
    method iteritems (line 109) | def iteritems(self):
    method iterkeys (line 112) | def iterkeys(self):
    method itervalues (line 116) | def itervalues(self):
    method values (line 119) | def values(self):
    method items (line 121) | def items(self):
    method clear (line 123) | def clear(self):
    method setdefault (line 126) | def setdefault(self, key, default=None):
    method pop (line 132) | def pop(self, key, *args):
    method popitem (line 144) | def popitem(self):
    method update (line 151) | def update(self, other=None, **kwargs):
    method get (line 166) | def get(self, key, default=None):
    method __repr__ (line 171) | def __repr__(self):
    method __cmp__ (line 173) | def __cmp__(self, other):
    method __len__ (line 179) | def __len__(self):

FILE: tests/pythons/win32-py27/Lib/UserList.py
  class UserList (line 5) | class UserList(collections.MutableSequence):
    method __init__ (line 6) | def __init__(self, initlist=None):
    method __repr__ (line 16) | def __repr__(self): return repr(self.data)
    method __lt__ (line 17) | def __lt__(self, other): return self.data <  self.__cast(other)
    method __le__ (line 18) | def __le__(self, other): return self.data <= self.__cast(other)
    method __eq__ (line 19) | def __eq__(self, other): return self.data == self.__cast(other)
    method __ne__ (line 20) | def __ne__(self, other): return self.data != self.__cast(other)
    method __gt__ (line 21) | def __gt__(self, other): return self.data >  self.__cast(other)
    method __ge__ (line 22) | def __ge__(self, other): return self.data >= self.__cast(other)
    method __cast (line 23) | def __cast(self, other):
    method __cmp__ (line 26) | def __cmp__(self, other):
    method __contains__ (line 29) | def __contains__(self, item): return item in self.data
    method __len__ (line 30) | def __len__(self): return len(self.data)
    method __getitem__ (line 31) | def __getitem__(self, i): return self.data[i]
    method __setitem__ (line 32) | def __setitem__(self, i, item): self.data[i] = item
    method __delitem__ (line 33) | def __delitem__(self, i): del self.data[i]
    method __getslice__ (line 34) | def __getslice__(self, i, j):
    method __setslice__ (line 37) | def __setslice__(self, i, j, other):
    method __delslice__ (line 45) | def __delslice__(self, i, j):
    method __add__ (line 48) | def __add__(self, other):
    method __radd__ (line 55) | def __radd__(self, other):
    method __iadd__ (line 62) | def __iadd__(self, other):
    method __mul__ (line 70) | def __mul__(self, n):
    method __imul__ (line 73) | def __imul__(self, n):
    method append (line 76) | def append(self, item): self.data.append(item)
    method insert (line 77) | def insert(self, i, item): self.data.insert(i, item)
    method pop (line 78) | def pop(self, i=-1): return self.data.pop(i)
    method remove (line 79) | def remove(self, item): self.data.remove(item)
    method count (line 80) | def count(self, item): return self.data.count(item)
    method index (line 81) | def index(self, item, *args): return self.data.index(item, *args)
    method reverse (line 82) | def reverse(self): self.data.reverse()
    method sort (line 83) | def sort(self, *args, **kwds): self.data.sort(*args, **kwds)
    method extend (line 84) | def extend(self, other):

FILE: tests/pythons/win32-py27/Lib/UserString.py
  class UserString (line 13) | class UserString(collections.Sequence):
    method __init__ (line 14) | def __init__(self, seq):
    method __str__ (line 21) | def __str__(self): return str(self.data)
    method __repr__ (line 22) | def __repr__(self): return repr(self.data)
    method __int__ (line 23) | def __int__(self): return int(self.data)
    method __long__ (line 24) | def __long__(self): return long(self.data)
    method __float__ (line 25) | def __float__(self): return float(self.data)
    method __complex__ (line 26) | def __complex__(self): return complex(self.data)
    method __hash__ (line 27) | def __hash__(self): return hash(self.data)
    method __cmp__ (line 29) | def __cmp__(self, string):
    method __contains__ (line 34) | def __contains__(self, char):
    method __len__ (line 37) | def __len__(self): return len(self.data)
    method __getitem__ (line 38) | def __getitem__(self, index): return self.__class__(self.data[index])
    method __getslice__ (line 39) | def __getslice__(self, start, end):
    method __add__ (line 43) | def __add__(self, other):
    method __radd__ (line 50) | def __radd__(self, other):
    method __mul__ (line 55) | def __mul__(self, n):
    method __mod__ (line 58) | def __mod__(self, args):
    method capitalize (line 62) | def capitalize(self): return self.__class__(self.data.capitalize())
    method center (line 63) | def center(self, width, *args):
    method count (line 65) | def count(self, sub, start=0, end=sys.maxint):
    method decode (line 67) | def decode(self, encoding=None, errors=None): # XXX improve this?
    method encode (line 75) | def encode(self, encoding=None, errors=None): # XXX improve this?
    method endswith (line 83) | def endswith(self, suffix, start=0, end=sys.maxint):
    method expandtabs (line 85) | def expandtabs(self, tabsize=8):
    method find (line 87) | def find(self, sub, start=0, end=sys.maxint):
    method index (line 89) | def index(self, sub, start=0, end=sys.maxint):
    method isalpha (line 91) | def isalpha(self): return self.data.isalpha()
    method isalnum (line 92) | def isalnum(self): return self.data.isalnum()
    method isdecimal (line 93) | def isdecimal(self): return self.data.isdecimal()
    method isdigit (line 94) | def isdigit(self): return self.data.isdigit()
    method islower (line 95) | def islower(self): return self.data.islower()
    method isnumeric (line 96) | def isnumeric(self): return self.data.isnumeric()
    method isspace (line 97) | def isspace(self): return self.data.isspace()
    method istitle (line 98) | def istitle(self): return self.data.istitle()
    method isupper (line 99) | def isupper(self): return self.data.isupper()
    method join (line 100) | def join(self, seq): return self.data.join(seq)
    method ljust (line 101) | def ljust(self, width, *args):
    method lower (line 103) | def lower(self): return self.__class__(self.data.lower())
    method lstrip (line 104) | def lstrip(self, chars=None): return self.__class__(self.data.lstrip(c...
    method partition (line 105) | def partition(self, sep):
    method replace (line 107) | def replace(self, old, new, maxsplit=-1):
    method rfind (line 109) | def rfind(self, sub, start=0, end=sys.maxint):
    method rindex (line 111) | def rindex(self, sub, start=0, end=sys.maxint):
    method rjust (line 113) | def rjust(self, width, *args):
    method rpartition (line 115) | def rpartition(self, sep):
    method rstrip (line 117) | def rstrip(self, chars=None): return self.__class__(self.data.rstrip(c...
    method split (line 118) | def split(self, sep=None, maxsplit=-1):
    method rsplit (line 120) | def rsplit(self, sep=None, maxsplit=-1):
    method splitlines (line 122) | def splitlines(self, keepends=0): return self.data.splitlines(keepends)
    method startswith (line 123) | def startswith(self, prefix, start=0, end=sys.maxint):
    method strip (line 125) | def strip(self, chars=None): return self.__class__(self.data.strip(cha...
    method swapcase (line 126) | def swapcase(self): return self.__class__(self.data.swapcase())
    method title (line 127) | def title(self): return self.__class__(self.data.title())
    method translate (line 128) | def translate(self, *args):
    method upper (line 130) | def upper(self): return self.__class__(self.data.upper())
    method zfill (line 131) | def zfill(self, width): return self.__class__(self.data.zfill(width))
  class MutableString (line 133) | class MutableString(UserString, collections.MutableSequence):
    method __init__ (line 148) | def __init__(self, string=""):
    method __setitem__ (line 157) | def __setitem__(self, index, sub):
    method __delitem__ (line 178) | def __delitem__(self, index):
    method __setslice__ (line 193) | def __setslice__(self, start, end, sub):
    method __delslice__ (line 201) | def __delslice__(self, start, end):
    method immutable (line 204) | def immutable(self):
    method __iadd__ (line 206) | def __iadd__(self, other):
    method __imul__ (line 214) | def __imul__(self, n):
    method insert (line 217) | def insert(self, index, value):

FILE: tests/pythons/win32-py27/Lib/_LWPCookieJar.py
  function lwp_cookie_str (line 20) | def lwp_cookie_str(cookie):
  class LWPCookieJar (line 49) | class LWPCookieJar(FileCookieJar):
    method as_lwp_str (line 62) | def as_lwp_str(self, ignore_discard=True, ignore_expires=True):
    method save (line 78) | def save(self, filename=None, ignore_discard=False, ignore_expires=Fal...
    method _really_load (line 93) | def _really_load(self, f, filename, ignore_discard, ignore_expires):

FILE: tests/pythons/win32-py27/Lib/_MozillaCookieJar.py
  class MozillaCookieJar (line 8) | class MozillaCookieJar(FileCookieJar):
    method _really_load (line 47) | def _really_load(self, f, filename, ignore_discard, ignore_expires):
    method save (line 113) | def save(self, filename=None, ignore_discard=False, ignore_expires=Fal...

FILE: tests/pythons/win32-py27/Lib/__future__.py
  class _Feature (line 74) | class _Feature:
    method __init__ (line 75) | def __init__(self, optionalRelease, mandatoryRelease, compiler_flag):
    method getOptionalRelease (line 80) | def getOptionalRelease(self):
    method getMandatoryRelease (line 88) | def getMandatoryRelease(self):
    method __repr__ (line 97) | def __repr__(self):

FILE: tests/pythons/win32-py27/Lib/_abcoll.py
  function _hasattr (line 24) | def _hasattr(C, attr):
  class Hashable (line 32) | class Hashable:
    method __hash__ (line 36) | def __hash__(self):
    method __subclasshook__ (line 40) | def __subclasshook__(cls, C):
  class Iterable (line 55) | class Iterable:
    method __iter__ (line 59) | def __iter__(self):
    method __subclasshook__ (line 64) | def __subclasshook__(cls, C):
  class Iterator (line 73) | class Iterator(Iterable):
    method next (line 76) | def next(self):
    method __iter__ (line 80) | def __iter__(self):
    method __subclasshook__ (line 84) | def __subclasshook__(cls, C):
  class Sized (line 91) | class Sized:
    method __len__ (line 95) | def __len__(self):
    method __subclasshook__ (line 99) | def __subclasshook__(cls, C):
  class Container (line 106) | class Container:
    method __contains__ (line 110) | def __contains__(self, x):
    method __subclasshook__ (line 114) | def __subclasshook__(cls, C):
  class Callable (line 121) | class Callable:
    method __call__ (line 125) | def __call__(self, *args, **kwds):
    method __subclasshook__ (line 129) | def __subclasshook__(cls, C):
  class Set (line 139) | class Set(Sized, Iterable, Container):
    method __le__ (line 150) | def __le__(self, other):
    method __lt__ (line 160) | def __lt__(self, other):
    method __gt__ (line 165) | def __gt__(self, other):
    method __ge__ (line 170) | def __ge__(self, other):
    method __eq__ (line 175) | def __eq__(self, other):
    method __ne__ (line 180) | def __ne__(self, other):
    method _from_iterable (line 184) | def _from_iterable(cls, it):
    method __and__ (line 192) | def __and__(self, other):
    method isdisjoint (line 197) | def isdisjoint(self, other):
    method __or__ (line 204) | def __or__(self, other):
    method __sub__ (line 210) | def __sub__(self, other):
    method __xor__ (line 218) | def __xor__(self, other):
    method _hash (line 228) | def _hash(self):
  class MutableSet (line 263) | class MutableSet(Set):
    method add (line 276) | def add(self, value):
    method discard (line 281) | def discard(self, value):
    method remove (line 285) | def remove(self, value):
    method pop (line 291) | def pop(self):
    method clear (line 301) | def clear(self):
    method __ior__ (line 309) | def __ior__(self, it):
    method __iand__ (line 314) | def __iand__(self, it):
    method __ixor__ (line 319) | def __ixor__(self, it):
    method __isub__ (line 332) | def __isub__(self, it):
  class Mapping (line 346) | class Mapping(Sized, Iterable, Container):
    method __getitem__ (line 357) | def __getitem__(self, key):
    method get (line 360) | def get(self, key, default=None):
    method __contains__ (line 367) | def __contains__(self, key):
    method iterkeys (line 375) | def iterkeys(self):
    method itervalues (line 379) | def itervalues(self):
    method iteritems (line 384) | def iteritems(self):
    method keys (line 389) | def keys(self):
    method items (line 393) | def items(self):
    method values (line 397) | def values(self):
    method __eq__ (line 404) | def __eq__(self, other):
    method __ne__ (line 409) | def __ne__(self, other):
  class MappingView (line 412) | class MappingView(Sized):
    method __init__ (line 414) | def __init__(self, mapping):
    method __len__ (line 417) | def __len__(self):
    method __repr__ (line 420) | def __repr__(self):
  class KeysView (line 424) | class KeysView(MappingView, Set):
    method _from_iterable (line 427) | def _from_iterable(self, it):
    method __contains__ (line 430) | def __contains__(self, key):
    method __iter__ (line 433) | def __iter__(self):
  class ItemsView (line 438) | class ItemsView(MappingView, Set):
    method _from_iterable (line 441) | def _from_iterable(self, it):
    method __contains__ (line 444) | def __contains__(self, item):
    method __iter__ (line 453) | def __iter__(self):
  class ValuesView (line 458) | class ValuesView(MappingView):
    method __contains__ (line 460) | def __contains__(self, value):
    method __iter__ (line 466) | def __iter__(self):
  class MutableMapping (line 471) | class MutableMapping(Mapping):
    method __setitem__ (line 483) | def __setitem__(self, key, value):
    method __delitem__ (line 487) | def __delitem__(self, key):
    method pop (line 492) | def pop(self, key, default=__marker):
    method popitem (line 506) | def popitem(self):
    method clear (line 518) | def clear(self):
    method update (line 526) | def update(*args, **kwds):
    method setdefault (line 552) | def setdefault(self, key, default=None):
  class Sequence (line 566) | class Sequence(Sized, Iterable, Container):
    method __getitem__ (line 574) | def __getitem__(self, index):
    method __iter__ (line 577) | def __iter__(self):
    method __contains__ (line 587) | def __contains__(self, value):
    method __reversed__ (line 593) | def __reversed__(self):
    method index (line 597) | def index(self, value):
    method count (line 606) | def count(self, value):
  class MutableSequence (line 616) | class MutableSequence(Sequence):
    method __setitem__ (line 626) | def __setitem__(self, index, value):
    method __delitem__ (line 630) | def __delitem__(self, index):
    method insert (line 634) | def insert(self, index, value):
    method append (line 638) | def append(self, value):
    method reverse (line 642) | def reverse(self):
    method extend (line 648) | def extend(self, values):
    method pop (line 653) | def pop(self, index=-1):
    method remove (line 661) | def remove(self, value):
    method __iadd__ (line 667) | def __iadd__(self, values):

FILE: tests/pythons/win32-py27/Lib/_osx_support.py
  function _find_executable (line 29) | def _find_executable(executable, path=None):
  function _read_output (line 55) | def _read_output(commandstring):
  function _find_build_tool (line 74) | def _find_build_tool(toolname):
  function _get_system_version (line 83) | def _get_system_version():
  function _remove_original_values (line 113) | def _remove_original_values(_config_vars):
  function _save_modified_value (line 120) | def _save_modified_value(_config_vars, cv, newvalue):
  function _supports_universal_builds (line 128) | def _supports_universal_builds():
  function _find_appropriate_compiler (line 144) | def _find_appropriate_compiler(_config_vars):
  function _remove_universal_flags (line 206) | def _remove_universal_flags(_config_vars):
  function _remove_unsupported_archs (line 220) | def _remove_unsupported_archs(_config_vars):
  function _override_all_archs (line 260) | def _override_all_archs(_config_vars):
  function _check_for_unavailable_sdk (line 277) | def _check_for_unavailable_sdk(_config_vars):
  function compiler_fixup (line 304) | def compiler_fixup(compiler_so, cc_args):
  function customize_config_vars (line 368) | def customize_config_vars(_config_vars):
  function customize_compiler (line 409) | def customize_compiler(_config_vars):
  function get_platform_osx (line 429) | def get_platform_osx(_config_vars, osname, release, machine):

FILE: tests/pythons/win32-py27/Lib/_pyio.py
  class BlockingIOError (line 32) | class BlockingIOError(IOError):
    method __init__ (line 36) | def __init__(self, errno, strerror, characters_written=0):
  function open (line 43) | def open(file, mode="r", buffering=-1,
  class DocDescriptor (line 229) | class DocDescriptor:
    method __get__ (line 232) | def __get__(self, obj, typ):
  class OpenWrapper (line 238) | class OpenWrapper:
    method __new__ (line 248) | def __new__(cls, *args, **kwargs):
  class UnsupportedOperation (line 252) | class UnsupportedOperation(ValueError, IOError):
  class IOBase (line 256) | class IOBase:
    method _unsupported (line 291) | def _unsupported(self, name):
    method seek (line 298) | def seek(self, pos, whence=0):
    method tell (line 313) | def tell(self):
    method truncate (line 317) | def truncate(self, pos=None):
    method flush (line 327) | def flush(self):
    method close (line 337) | def close(self):
    method __del__ (line 348) | def __del__(self):
    method seekable (line 362) | def seekable(self):
    method _checkSeekable (line 370) | def _checkSeekable(self, msg=None):
    method readable (line 378) | def readable(self):
    method _checkReadable (line 385) | def _checkReadable(self, msg=None):
    method writable (line 392) | def writable(self):
    method _checkWritable (line 399) | def _checkWritable(self, msg=None):
    method closed (line 407) | def closed(self):
    method _checkClosed (line 414) | def _checkClosed(self, msg=None):
    method __enter__ (line 423) | def __enter__(self):
    method __exit__ (line 428) | def __exit__(self, *args):
    method fileno (line 436) | def fileno(self):
    method isatty (line 443) | def isatty(self):
    method readline (line 453) | def readline(self, limit=-1):
    method __iter__ (line 489) | def __iter__(self):
    method next (line 493) | def next(self):
    method readlines (line 499) | def readlines(self, hint=None):
    method writelines (line 519) | def writelines(self, lines):
  class RawIOBase (line 527) | class RawIOBase(IOBase):
    method read (line 541) | def read(self, n=-1):
    method readall (line 558) | def readall(self):
    method readinto (line 572) | def readinto(self, b):
    method write (line 580) | def write(self, b):
  class BufferedIOBase (line 592) | class BufferedIOBase(IOBase):
    method read (line 609) | def read(self, n=None):
    method read1 (line 629) | def read1(self, n=None):
    method readinto (line 633) | def readinto(self, b):
    method write (line 656) | def write(self, b):
    method detach (line 667) | def detach(self):
  class _BufferedIOMixin (line 679) | class _BufferedIOMixin(BufferedIOBase):
    method __init__ (line 688) | def __init__(self, raw):
    method seek (line 693) | def seek(self, pos, whence=0):
    method tell (line 699) | def tell(self):
    method truncate (line 705) | def truncate(self, pos=None):
    method flush (line 719) | def flush(self):
    method close (line 724) | def close(self):
    method detach (line 732) | def detach(self):
    method seekable (line 742) | def seekable(self):
    method readable (line 745) | def readable(self):
    method writable (line 748) | def writable(self):
    method raw (line 752) | def raw(self):
    method closed (line 756) | def closed(self):
    method name (line 760) | def name(self):
    method mode (line 764) | def mode(self):
    method __repr__ (line 767) | def __repr__(self):
    method fileno (line 778) | def fileno(self):
    method isatty (line 781) | def isatty(self):
  class BytesIO (line 785) | class BytesIO(BufferedIOBase):
    method __init__ (line 789) | def __init__(self, initial_bytes=None):
    method __getstate__ (line 796) | def __getstate__(self):
    method getvalue (line 801) | def getvalue(self):
    method read (line 808) | def read(self, n=None):
    method read1 (line 825) | def read1(self, n):
    method write (line 830) | def write(self, b):
    method seek (line 848) | def seek(self, pos, whence=0):
    method tell (line 867) | def tell(self):
    method truncate (line 872) | def truncate(self, pos=None):
    method readable (line 887) | def readable(self):
    method writable (line 892) | def writable(self):
    method seekable (line 897) | def seekable(self):
  class BufferedReader (line 903) | class BufferedReader(_BufferedIOMixin):
    method __init__ (line 914) | def __init__(self, raw, buffer_size=DEFAULT_BUFFER_SIZE):
    method _reset_read_buf (line 927) | def _reset_read_buf(self):
    method read (line 931) | def read(self, n=None):
    method _read_unlocked (line 944) | def _read_unlocked(self, n=None):
    method peek (line 1000) | def peek(self, n=0):
    method _peek_unlocked (line 1010) | def _peek_unlocked(self, n=0):
    method read1 (line 1028) | def read1(self, n):
    method tell (line 1041) | def tell(self):
    method seek (line 1044) | def seek(self, pos, whence=0):
  class BufferedWriter (line 1054) | class BufferedWriter(_BufferedIOMixin):
    method __init__ (line 1065) | def __init__(self, raw,
    method write (line 1080) | def write(self, b):
    method truncate (line 1108) | def truncate(self, pos=None):
    method flush (line 1115) | def flush(self):
    method _flush_unlocked (line 1119) | def _flush_unlocked(self):
    method tell (line 1140) | def tell(self):
    method seek (line 1143) | def seek(self, pos, whence=0):
  class BufferedRWPair (line 1151) | class BufferedRWPair(BufferedIOBase):
    method __init__ (line 1167) | def __init__(self, reader, writer,
    method read (line 1185) | def read(self, n=None):
    method readinto (line 1190) | def readinto(self, b):
    method write (line 1193) | def write(self, b):
    method peek (line 1196) | def peek(self, n=0):
    method read1 (line 1199) | def read1(self, n):
    method readable (line 1202) | def readable(self):
    method writable (line 1205) | def writable(self):
    method flush (line 1208) | def flush(self):
    method close (line 1211) | def close(self):
    method isatty (line 1215) | def isatty(self):
    method closed (line 1219) | def closed(self):
  class BufferedRandom (line 1223) | class BufferedRandom(BufferedWriter, BufferedReader):
    method __init__ (line 1234) | def __init__(self, raw,
    method seek (line 1240) | def seek(self, pos, whence=0):
    method tell (line 1257) | def tell(self):
    method truncate (line 1263) | def truncate(self, pos=None):
    method read (line 1269) | def read(self, n=None):
    method readinto (line 1275) | def readinto(self, b):
    method peek (line 1279) | def peek(self, n=0):
    method read1 (line 1283) | def read1(self, n):
    method write (line 1287) | def write(self, b):
  class TextIOBase (line 1296) | class TextIOBase(IOBase):
    method read (line 1305) | def read(self, n=-1):
    method write (line 1313) | def write(self, s):
    method truncate (line 1317) | def truncate(self, pos=None):
    method readline (line 1321) | def readline(self):
    method detach (line 1328) | def detach(self):
    method encoding (line 1338) | def encoding(self):
    method newlines (line 1343) | def newlines(self):
    method errors (line 1353) | def errors(self):
  class IncrementalNewlineDecoder (line 1362) | class IncrementalNewlineDecoder(codecs.IncrementalDecoder):
    method __init__ (line 1369) | def __init__(self, decoder, translate, errors='strict'):
    method decode (line 1376) | def decode(self, input, final=False):
    method getstate (line 1407) | def getstate(self):
    method setstate (line 1418) | def setstate(self, state):
    method reset (line 1424) | def reset(self):
    method newlines (line 1435) | def newlines(self):
  class TextIOWrapper (line 1447) | class TextIOWrapper(TextIOBase):
    method __init__ (line 1473) | def __init__(self, buffer, encoding=None, errors=None, newline=None,
    method __repr__ (line 1531) | def __repr__(self):
    method encoding (line 1541) | def encoding(self):
    method errors (line 1545) | def errors(self):
    method line_buffering (line 1549) | def line_buffering(self):
    method buffer (line 1553) | def buffer(self):
    method seekable (line 1556) | def seekable(self):
    method readable (line 1561) | def readable(self):
    method writable (line 1564) | def writable(self):
    method flush (line 1567) | def flush(self):
    method close (line 1571) | def close(self):
    method closed (line 1579) | def closed(self):
    method name (line 1583) | def name(self):
    method fileno (line 1586) | def fileno(self):
    method isatty (line 1589) | def isatty(self):
    method write (line 1592) | def write(self, s):
    method _get_encoder (line 1613) | def _get_encoder(self):
    method _get_decoder (line 1618) | def _get_decoder(self):
    method _set_decoded_chars (line 1629) | def _set_decoded_chars(self, chars):
    method _get_decoded_chars (line 1634) | def _get_decoded_chars(self, n=None):
    method _rewind_decoded_chars (line 1644) | def _rewind_decoded_chars(self, n):
    method _read_chunk (line 1650) | def _read_chunk(self):
    method _pack_cookie (line 1684) | def _pack_cookie(self, position, dec_flags=0,
    method _unpack_cookie (line 1694) | def _unpack_cookie(self, bigint):
    method tell (line 1701) | def tell(self):
    method truncate (line 1763) | def truncate(self, pos=None):
    method detach (line 1769) | def detach(self):
    method seek (line 1777) | def seek(self, cookie, whence=0):
    method read (line 1849) | def read(self, n=None):
    method next (line 1874) | def next(self):
    method readline (line 1883) | def readline(self, limit=None):
    method newlines (line 1972) | def newlines(self):
  class StringIO (line 1976) | class StringIO(TextIOWrapper):
    method __init__ (line 1983) | def __init__(self, initial_value="", newline="\n"):
    method getvalue (line 1998) | def getvalue(self):
    method __repr__ (line 2002) | def __repr__(self):
    method errors (line 2008) | def errors(self):
    method encoding (line 2012) | def encoding(self):
    method detach (line 2015) | def detach(self):

FILE: tests/pythons/win32-py27/Lib/_strptime.py
  function _getlang (line 27) | def _getlang():
  class LocaleTime (line 31) | class LocaleTime(object):
    method __init__ (line 50) | def __init__(self):
    method __pad (line 79) | def __pad(self, seq, front):
    method __calc_weekday (line 88) | def __calc_weekday(self):
    method __calc_month (line 96) | def __calc_month(self):
    method __calc_am_pm (line 103) | def __calc_am_pm(self):
    method __calc_date_time (line 115) | def __calc_date_time(self):
    method __calc_timezone (line 160) | def __calc_timezone(self):
  class TimeRE (line 176) | class TimeRE(dict):
    method __init__ (line 179) | def __init__(self, locale_time=None):
    method __seqToRE (line 221) | def __seqToRE(self, to_convert, directive):
    method pattern (line 240) | def pattern(self, format):
    method compile (line 263) | def compile(self, format):
  function _calc_julian_from_U_or_W (line 274) | def _calc_julian_from_U_or_W(year, week_of_year, day_of_week, week_start...
  function _strptime (line 295) | def _strptime(data_string, format="%a %b %d %H:%M:%S %Y"):
  function _strptime_time (line 466) | def _strptime_time(data_string, format="%a %b %d %H:%M:%S %Y"):

FILE: tests/pythons/win32-py27/Lib/_threading_local.py
  class _localbase (line 148) | class _localbase(object):
    method __new__ (line 151) | def __new__(cls, *args, **kw):
  function _patch (line 169) | def _patch(self):
  class local (line 186) | class local(_localbase):
    method __getattribute__ (line 188) | def __getattribute__(self, name):
    method __setattr__ (line 197) | def __setattr__(self, name, value):
    method __delattr__ (line 210) | def __delattr__(self, name):
    method __del__ (line 223) | def __del__(self):

FILE: tests/pythons/win32-py27/Lib/_weakrefset.py
  class _IterationGuard (line 10) | class _IterationGuard(object):
    method __init__ (line 16) | def __init__(self, weakcontainer):
    method __enter__ (line 20) | def __enter__(self):
    method __exit__ (line 26) | def __exit__(self, e, t, b):
  class WeakSet (line 35) | class WeakSet(object):
    method __init__ (line 36) | def __init__(self, data=None):
    method _commit_removals (line 52) | def _commit_removals(self):
    method __iter__ (line 58) | def __iter__(self):
    method __len__ (line 65) | def __len__(self):
    method __contains__ (line 68) | def __contains__(self, item):
    method __reduce__ (line 75) | def __reduce__(self):
    method add (line 81) | def add(self, item):
    method clear (line 86) | def clear(self):
    method copy (line 91) | def copy(self):
    method pop (line 94) | def pop(self):
    method remove (line 106) | def remove(self, item):
    method discard (line 111) | def discard(self, item):
    method update (line 116) | def update(self, other):
    method __ior__ (line 122) | def __ior__(self, other):
    method difference (line 126) | def difference(self, other):
    method difference_update (line 132) | def difference_update(self, other):
    method __isub__ (line 134) | def __isub__(self, other):
    method intersection (line 143) | def intersection(self, other):
    method intersection_update (line 147) | def intersection_update(self, other):
    method __iand__ (line 149) | def __iand__(self, other):
    method issubset (line 155) | def issubset(self, other):
    method __lt__ (line 159) | def __lt__(self, other):
    method issuperset (line 162) | def issuperset(self, other):
    method __gt__ (line 166) | def __gt__(self, other):
    method __eq__ (line 169) | def __eq__(self, other):
    method __ne__ (line 174) | def __ne__(self, other):
    method symmetric_difference (line 180) | def symmetric_difference(self, other):
    method symmetric_difference_update (line 186) | def symmetric_difference_update(self, other):
    method __ixor__ (line 188) | def __ixor__(self, other):
    method union (line 197) | def union(self, other):
    method isdisjoint (line 201) | def isdisjoint(self, other):

FILE: tests/pythons/win32-py27/Lib/abc.py
  class _C (line 11) | class _C: pass
  function abstractmethod (line 15) | def abstractmethod(funcobj):
  class abstractproperty (line 36) | class abstractproperty(property):
  class ABCMeta (line 65) | class ABCMeta(type):
    method __new__ (line 86) | def __new__(mcls, name, bases, namespace):
    method register (line 105) | def register(cls, subclass):
    method _dump_registry (line 119) | def _dump_registry(cls, file=None):
    method __instancecheck__ (line 128) | def __instancecheck__(cls, instance):
    method __subclasscheck__ (line 148) | def __subclasscheck__(cls, subclass):

FILE: tests/pythons/win32-py27/Lib/aifc.py
  class Error (line 142) | class Error(Exception):
  function _read_long (line 147) | def _read_long(file):
  function _read_ulong (line 153) | def _read_ulong(file):
  function _read_short (line 159) | def _read_short(file):
  function _read_ushort (line 165) | def _read_ushort(file):
  function _read_string (line 171) | def _read_string(file):
  function _read_float (line 183) | def _read_float(f): # 10 bytes
  function _write_short (line 200) | def _write_short(f, x):
  function _write_ushort (line 203) | def _write_ushort(f, x):
  function _write_long (line 206) | def _write_long(f, x):
  function _write_ulong (line 209) | def _write_ulong(f, x):
  function _write_string (line 212) | def _write_string(f, s):
  function _write_float (line 220) | def _write_float(f, x):
  class Aifc_read (line 255) | class Aifc_read:
    method initfp (line 291) | def initfp(self, file):
    method __init__ (line 343) | def __init__(self, f):
    method getfp (line 352) | def getfp(self):
    method rewind (line 355) | def rewind(self):
    method close (line 359) | def close(self):
    method tell (line 365) | def tell(self):
    method getnchannels (line 368) | def getnchannels(self):
    method getnframes (line 371) | def getnframes(self):
    method getsampwidth (line 374) | def getsampwidth(self):
    method getframerate (line 377) | def getframerate(self):
    method getcomptype (line 380) | def getcomptype(self):
    method getcompname (line 383) | def getcompname(self):
    method getparams (line 389) | def getparams(self):
    method getmarkers (line 394) | def getmarkers(self):
    method getmark (line 399) | def getmark(self, id):
    method setpos (line 405) | def setpos(self, pos):
    method readframes (line 411) | def readframes(self, nframes):
    method _decomp_data (line 431) | def _decomp_data(self, data):
    method _ulaw2lin (line 438) | def _ulaw2lin(self, data):
    method _adpcm2lin (line 442) | def _adpcm2lin(self, data):
    method _read_comm_chunk (line 451) | def _read_comm_chunk(self, chunk):
    method _readmark (line 511) | def _readmark(self, chunk):
  class Aifc_write (line 532) | class Aifc_write:
    method __init__ (line 562) | def __init__(self, f):
    method initfp (line 575) | def initfp(self, file):
    method __del__ (line 593) | def __del__(self):
    method aiff (line 600) | def aiff(self):
    method aifc (line 605) | def aifc(self):
    method setnchannels (line 610) | def setnchannels(self, nchannels):
    method getnchannels (line 617) | def getnchannels(self):
    method setsampwidth (line 622) | def setsampwidth(self, sampwidth):
    method getsampwidth (line 629) | def getsampwidth(self):
    method setframerate (line 634) | def setframerate(self, framerate):
    method getframerate (line 641) | def getframerate(self):
    method setnframes (line 646) | def setnframes(self, nframes):
    method getnframes (line 651) | def getnframes(self):
    method setcomptype (line 654) | def setcomptype(self, comptype, compname):
    method getcomptype (line 662) | def getcomptype(self):
    method getcompname (line 665) | def getcompname(self):
    method setparams (line 673) | def setparams(self, info):
    method getparams (line 685) | def getparams(self):
    method setmark (line 691) | def setmark(self, id, pos, name):
    method getmark (line 704) | def getmark(self, id):
    method getmarkers (line 710) | def getmarkers(self):
    method tell (line 715) | def tell(self):
    method writeframesraw (line 718) | def writeframesraw(self, data):
    method writeframes (line 727) | def writeframes(self, data):
    method close (line 733) | def close(self):
    method _comp_data (line 761) | def _comp_data(self, data):
    method _lin2ulaw (line 767) | def _lin2ulaw(self, data):
    method _lin2adpcm (line 771) | def _lin2adpcm(self, data):
    method _ensure_header_written (line 779) | def _ensure_header_written(self, datasize):
    method _init_compression (line 799) | def _init_compression(self):
    method _write_header (line 837) | def _write_header(self, initlength):
    method _write_form_length (line 883) | def _write_form_length(self, datalength):
    method _patchheader (line 896) | def _patchheader(self):
    method _writemarkers (line 918) | def _writemarkers(self):
  function open (line 937) | def open(f, mode=None):

FILE: tests/pythons/win32-py27/Lib/anydbm.py
  class error (line 36) | class error(Exception):
  function open (line 57) | def open(file, flag='r', mode=0666):

FILE: tests/pythons/win32-py27/Lib/argparse.py
  function _callable (line 95) | def _callable(obj):
  class _AttributeHolder (line 112) | class _AttributeHolder(object):
    method __repr__ (line 121) | def __repr__(self):
    method _get_kwargs (line 130) | def _get_kwargs(self):
    method _get_args (line 133) | def _get_args(self):
  function _ensure_value (line 137) | def _ensure_value(namespace, name, value):
  class HelpFormatter (line 147) | class HelpFormatter(object):
    method __init__ (line 154) | def __init__(self,
    method _indent (line 186) | def _indent(self):
    method _dedent (line 190) | def _dedent(self):
    class _Section (line 195) | class _Section(object):
      method __init__ (line 197) | def __init__(self, formatter, parent, heading=None):
      method format_help (line 203) | def format_help(self):
    method _add_item (line 228) | def _add_item(self, func, args):
    method start_section (line 234) | def start_section(self, heading):
    method end_section (line 240) | def end_section(self):
    method add_text (line 244) | def add_text(self, text):
    method add_usage (line 248) | def add_usage(self, usage, actions, groups, prefix=None):
    method add_argument (line 253) | def add_argument(self, action):
    method add_arguments (line 271) | def add_arguments(self, actions):
    method format_help (line 278) | def format_help(self):
    method _join_parts (line 285) | def _join_parts(self, part_strings):
    method _format_usage (line 290) | def _format_usage(self, usage, actions, groups, prefix):
    method _format_actions_usage (line 382) | def _format_actions_usage(self, actions, groups):
    method _format_text (line 478) | def _format_text(self, text):
    method _format_action (line 485) | def _format_action(self, action):
    method _format_action_invocation (line 532) | def _format_action_invocation(self, action):
    method _metavar_formatter (line 555) | def _metavar_formatter(self, action, default_metavar):
    method _format_args (line 571) | def _format_args(self, action, default_metavar):
    method _expand_help (line 590) | def _expand_help(self, action):
    method _iter_indented_subactions (line 603) | def _iter_indented_subactions(self, action):
    method _split_lines (line 614) | def _split_lines(self, text, width):
    method _fill_text (line 618) | def _fill_text(self, text, width, indent):
    method _get_help_string (line 623) | def _get_help_string(self, action):
  class RawDescriptionHelpFormatter (line 627) | class RawDescriptionHelpFormatter(HelpFormatter):
    method _fill_text (line 634) | def _fill_text(self, text, width, indent):
  class RawTextHelpFormatter (line 638) | class RawTextHelpFormatter(RawDescriptionHelpFormatter):
    method _split_lines (line 645) | def _split_lines(self, text, width):
  class ArgumentDefaultsHelpFormatter (line 649) | class ArgumentDefaultsHelpFormatter(HelpFormatter):
    method _get_help_string (line 656) | def _get_help_string(self, action):
  function _get_action_name (line 670) | def _get_action_name(argument):
  class ArgumentError (line 683) | class ArgumentError(Exception):
    method __init__ (line 690) | def __init__(self, argument, message):
    method __str__ (line 694) | def __str__(self):
  class ArgumentTypeError (line 703) | class ArgumentTypeError(Exception):
  class Action (line 712) | class Action(_AttributeHolder):
    method __init__ (line 763) | def __init__(self,
    method _get_kwargs (line 785) | def _get_kwargs(self):
    method __call__ (line 799) | def __call__(self, parser, namespace, values, option_string=None):
  class _StoreAction (line 803) | class _StoreAction(Action):
    method __init__ (line 805) | def __init__(self,
    method __call__ (line 834) | def __call__(self, parser, namespace, values, option_string=None):
  class _StoreConstAction (line 838) | class _StoreConstAction(Action):
    method __init__ (line 840) | def __init__(self,
    method __call__ (line 857) | def __call__(self, parser, namespace, values, option_string=None):
  class _StoreTrueAction (line 861) | class _StoreTrueAction(_StoreConstAction):
    method __init__ (line 863) | def __init__(self,
  class _StoreFalseAction (line 878) | class _StoreFalseAction(_StoreConstAction):
    method __init__ (line 880) | def __init__(self,
  class _AppendAction (line 895) | class _AppendAction(Action):
    method __init__ (line 897) | def __init__(self,
    method __call__ (line 926) | def __call__(self, parser, namespace, values, option_string=None):
  class _AppendConstAction (line 932) | class _AppendConstAction(Action):
    method __init__ (line 934) | def __init__(self,
    method __call__ (line 952) | def __call__(self, parser, namespace, values, option_string=None):
  class _CountAction (line 958) | class _CountAction(Action):
    method __init__ (line 960) | def __init__(self,
    method __call__ (line 974) | def __call__(self, parser, namespace, values, option_string=None):
  class _HelpAction (line 979) | class _HelpAction(Action):
    method __init__ (line 981) | def __init__(self,
    method __call__ (line 993) | def __call__(self, parser, namespace, values, option_string=None):
  class _VersionAction (line 998) | class _VersionAction(Action):
    method __init__ (line 1000) | def __init__(self,
    method __call__ (line 1014) | def __call__(self, parser, namespace, values, option_string=None):
  class _SubParsersAction (line 1023) | class _SubParsersAction(Action):
    class _ChoicesPseudoAction (line 1025) | class _ChoicesPseudoAction(Action):
      method __init__ (line 1027) | def __init__(self, name, help):
    method __init__ (line 1031) | def __init__(self,
    method add_parser (line 1052) | def add_parser(self, name, **kwargs):
    method _get_subactions (line 1068) | def _get_subactions(self):
    method __call__ (line 1071) | def __call__(self, parser, namespace, values, option_string=None):
  class FileType (line 1100) | class FileType(object):
    method __init__ (line 1113) | def __init__(self, mode='r', bufsize=-1):
    method __call__ (line 1117) | def __call__(self, string):
    method __repr__ (line 1135) | def __repr__(self):
  class Namespace (line 1144) | class Namespace(_AttributeHolder):
    method __init__ (line 1151) | def __init__(self, **kwargs):
    method __eq__ (line 1157) | def __eq__(self, other):
    method __ne__ (line 1160) | def __ne__(self, other):
    method __contains__ (line 1163) | def __contains__(self, key):
  class _ActionsContainer (line 1167) | class _ActionsContainer(object):
    method __init__ (line 1169) | def __init__(self,
    method register (line 1221) | def register(self, registry_name, value, object):
    method _registry_get (line 1225) | def _registry_get(self, registry_name, value, default=None):
    method set_defaults (line 1231) | def set_defaults(self, **kwargs):
    method get_default (line 1240) | def get_default(self, dest):
    method add_argument (line 1250) | def add_argument(self, *args, **kwargs):
    method add_argument_group (line 1297) | def add_argument_group(self, *args, **kwargs):
    method add_mutually_exclusive_group (line 1302) | def add_mutually_exclusive_group(self, **kwargs):
    method _add_action (line 1307) | def _add_action(self, action):
    method _remove_action (line 1328) | def _remove_action(self, action):
    method _add_container_actions (line 1331) | def _add_container_actions(self, container):
    method _get_positional_kwargs (line 1371) | def _get_positional_kwargs(self, dest, **kwargs):
    method _get_optional_kwargs (line 1387) | def _get_optional_kwargs(self, *args, **kwargs):
    method _pop_action_class (line 1422) | def _pop_action_class(self, kwargs, default=None):
    method _get_handler (line 1426) | def _get_handler(self):
    method _check_conflict (line 1435) | def _check_conflict(self, action):
    method _handle_conflict_error (line 1449) | def _handle_conflict_error(self, action, conflicting_actions):
    method _handle_conflict_resolve (line 1456) | def _handle_conflict_resolve(self, action, conflicting_actions):
  class _ArgumentGroup (line 1471) | class _ArgumentGroup(_ActionsContainer):
    method __init__ (line 1473) | def __init__(self, container, title=None, description=None, **kwargs):
    method _add_action (line 1495) | def _add_action(self, action):
    method _remove_action (line 1500) | def _remove_action(self, action):
  class _MutuallyExclusiveGroup (line 1505) | class _MutuallyExclusiveGroup(_ArgumentGroup):
    method __init__ (line 1507) | def __init__(self, container, required=False):
    method _add_action (line 1512) | def _add_action(self, action):
    method _remove_action (line 1520) | def _remove_action(self, action):
  class ArgumentParser (line 1525) | class ArgumentParser(_AttributeHolder, _ActionsContainer):
    method __init__ (line 1543) | def __init__(self,
    method _get_kwargs (line 1621) | def _get_kwargs(self):
    method add_subparsers (line 1636) | def add_subparsers(self, **kwargs):
    method _add_action (line 1667) | def _add_action(self, action):
    method _get_optional_actions (line 1674) | def _get_optional_actions(self):
    method _get_positional_actions (line 1679) | def _get_positional_actions(self):
    method parse_args (line 1687) | def parse_args(self, args=None, namespace=None):
    method parse_known_args (line 1694) | def parse_known_args(self, args=None, namespace=None):
    method _parse_known_args (line 1729) | def _parse_known_args(self, arg_strings, namespace):
    method _read_args_from_files (line 1975) | def _read_args_from_files(self, arg_strings):
    method convert_arg_line_to_args (line 2004) | def convert_arg_line_to_args(self, arg_line):
    method _match_argument (line 2007) | def _match_argument(self, action, arg_strings_pattern):
    method _match_arguments_partial (line 2026) | def _match_arguments_partial(self, actions, arg_strings_pattern):
    method _parse_optional (line 2042) | def _parse_optional(self, arg_string):
    method _get_option_tuples (line 2099) | def _get_option_tuples(self, option_string):
    method _get_nargs_pattern (line 2143) | def _get_nargs_pattern(self, action):
    method _get_values (line 2187) | def _get_values(self, action, arg_strings):
    method _get_value (line 2239) | def _get_value(self, action, arg_string):
    method _check_value (line 2264) | def _check_value(self, action, value):
    method format_usage (line 2274) | def format_usage(self):
    method format_help (line 2280) | def format_help(self):
    method format_version (line 2303) | def format_version(self):
    method _get_formatter (line 2313) | def _get_formatter(self):
    method print_usage (line 2319) | def print_usage(self, file=None):
    method print_help (line 2324) | def print_help(self, file=None):
    method print_version (line 2329) | def print_version(self, file=None):
    method _print_message (line 2337) | def _print_message(self, message, file=None):
    method exit (line 2346) | def exit(self, status=0, message=None):
    method error (line 2351) | def error(self, message):

FILE: tests/pythons/win32-py27/Lib/ast.py
  function parse (line 32) | def parse(source, filename='<unknown>', mode='exec'):
  function literal_eval (line 40) | def literal_eval(node_or_string):
  function dump (line 83) | def dump(node, annotate_fields=True, include_attributes=False):
  function copy_location (line 113) | def copy_location(new_node, old_node):
  function fix_missing_locations (line 125) | def fix_missing_locations(node):
  function increment_lineno (line 150) | def increment_lineno(node, n=1):
  function iter_fields (line 161) | def iter_fields(node):
  function iter_child_nodes (line 173) | def iter_child_nodes(node):
  function get_docstring (line 187) | def get_docstring(node, clean=True):
  function walk (line 203) | def walk(node):
  class NodeVisitor (line 217) | class NodeVisitor(object):
    method visit (line 237) | def visit(self, node):
    method generic_visit (line 243) | def generic_visit(self, node):
  class NodeTransformer (line 254) | class NodeTransformer(NodeVisitor):
    method generic_visit (line 290) | def generic_visit(self, node):

FILE: tests/pythons/win32-py27/Lib/asynchat.py
  class async_chat (line 55) | class async_chat (asyncore.dispatcher):
    method __init__ (line 64) | def __init__ (self, sock=None, map=None):
    method collect_incoming_data (line 81) | def collect_incoming_data(self, data):
    method _collect_incoming_data (line 84) | def _collect_incoming_data(self, data):
    method _get_data (line 87) | def _get_data(self):
    method found_terminator (line 92) | def found_terminator(self):
    method set_terminator (line 95) | def set_terminator (self, term):
    method get_terminator (line 99) | def get_terminator (self):
    method handle_read (line 107) | def handle_read (self):
    method handle_write (line 173) | def handle_write (self):
    method handle_close (line 176) | def handle_close (self):
    method push (line 179) | def push (self, data):
    method push_with_producer (line 188) | def push_with_producer (self, producer):
    method readable (line 192) | def readable (self):
    method writable (line 200) | def writable (self):
    method close_when_done (line 204) | def close_when_done (self):
    method initiate_send (line 208) | def initiate_send(self):
    method discard_buffers (line 248) | def discard_buffers (self):
  class simple_producer (line 254) | class simple_producer:
    method __init__ (line 256) | def __init__ (self, data, buffer_size=512):
    method more (line 260) | def more (self):
  class fifo (line 270) | class fifo:
    method __init__ (line 271) | def __init__ (self, list=None):
    method __len__ (line 277) | def __len__ (self):
    method is_empty (line 280) | def is_empty (self):
    method first (line 283) | def first (self):
    method push (line 286) | def push (self, data):
    method pop (line 289) | def pop (self):
  function find_prefix_at_end (line 310) | def find_prefix_at_end (haystack, needle):

FILE: tests/pythons/win32-py27/Lib/asyncore.py
  function _strerror (line 68) | def _strerror(err):
  class ExitNow (line 76) | class ExitNow(Exception):
  function read (line 81) | def read(obj):
  function write (line 89) | def write(obj):
  function _exception (line 97) | def _exception(obj):
  function readwrite (line 105) | def readwrite(obj, flags):
  function poll (line 125) | def poll(timeout=0.0, map=None):
  function poll2 (line 170) | def poll2(timeout=0.0, map=None):
  function loop (line 205) | def loop(timeout=30.0, use_poll=False, map=None, count=None):
  class dispatcher (line 223) | class dispatcher:
    method __init__ (line 233) | def __init__(self, sock=None, map=None):
    method __repr__ (line 265) | def __repr__(self):
    method add_channel (line 280) | def add_channel(self, map=None):
    method del_channel (line 286) | def del_channel(self, map=None):
    method create_socket (line 295) | def create_socket(self, family, type):
    method set_socket (line 301) | def set_socket(self, sock, map=None):
    method set_reuse_addr (line 307) | def set_reuse_addr(self):
    method readable (line 324) | def readable(self):
    method writable (line 327) | def writable(self):
    method listen (line 334) | def listen(self, num):
    method bind (line 340) | def bind(self, addr):
    method connect (line 344) | def connect(self, address):
    method accept (line 358) | def accept(self):
    method send (line 372) | def send(self, data):
    method recv (line 385) | def recv(self, buffer_size):
    method close (line 403) | def close(self):
    method __getattr__ (line 416) | def __getattr__(self, attr):
    method log (line 432) | def log(self, message):
    method log_info (line 435) | def log_info(self, message, type='info'):
    method handle_read_event (line 439) | def handle_read_event(self):
    method handle_connect_event (line 451) | def handle_connect_event(self):
    method handle_write_event (line 459) | def handle_write_event(self):
    method handle_expt_event (line 470) | def handle_expt_event(self):
    method handle_error (line 485) | def handle_error(self):
    method handle_expt (line 505) | def handle_expt(self):
    method handle_read (line 508) | def handle_read(self):
    method handle_write (line 511) | def handle_write(self):
    method handle_connect (line 514) | def handle_connect(self):
    method handle_accept (line 517) | def handle_accept(self):
    method handle_close (line 520) | def handle_close(self):
  class dispatcher_with_send (line 529) | class dispatcher_with_send(dispatcher):
    method __init__ (line 531) | def __init__(self, sock=None, map=None):
    method initiate_send (line 535) | def initiate_send(self):
    method handle_write (line 540) | def handle_write(self):
    method writable (line 543) | def writable(self):
    method send (line 546) | def send(self, data):
  function compact_traceback (line 556) | def compact_traceback():
  function close_all (line 576) | def close_all(map=None, ignore_all=False):
  class file_wrapper (line 610) | class file_wrapper:
    method __init__ (line 615) | def __init__(self, fd):
    method recv (line 618) | def recv(self, *args):
    method send (line 621) | def send(self, *args):
    method getsockopt (line 624) | def getsockopt(self, level, optname, buflen=None):
    method close (line 635) | def close(self):
    method fileno (line 638) | def fileno(self):
  class file_dispatcher (line 641) | class file_dispatcher(dispatcher):
    method __init__ (line 643) | def __init__(self, fd, map=None):
    method set_file (line 656) | def set_file(self, fd):

FILE: tests/pythons/win32-py27/Lib/atexit.py
  function _run_exitfuncs (line 13) | def _run_exitfuncs():
  function register (line 37) | def register(func, *targs, **kargs):
  function x1 (line 55) | def x1():
  function x2 (line 57) | def x2(n):
  function x3 (line 59) | def x3(n, kwd=None):

FILE: tests/pythons/win32-py27/Lib/audiodev.py
  class error (line 8) | class error(Exception):
  class Play_Audio_sgi (line 11) | class Play_Audio_sgi:
    method initclass (line 20) | def initclass(self):
    method __init__ (line 43) | def __init__(self):
    method __del__ (line 57) | def __del__(self):
    method wait (line 65) | def wait(self):
    method stop (line 73) | def stop(self):
    method setoutrate (line 82) | def setoutrate(self, rate):
    method setsampwidth (line 91) | def setsampwidth(self, width):
    method setnchannels (line 106) | def setnchannels(self, nchannels):
    method writeframes (line 115) | def writeframes(self, data):
    method getfilled (line 128) | def getfilled(self):
    method getfillable (line 134) | def getfillable(self):
    method ulaw2lin (line 143) | def ulaw2lin(self, data):
  class Play_Audio_sun (line 147) | class Play_Audio_sun:
    method __init__ (line 151) | def __init__(self):
    method __del__ (line 162) | def __del__(self):
    method setoutrate (line 165) | def setoutrate(self, rate):
    method setsampwidth (line 169) | def setsampwidth(self, width):
    method setnchannels (line 173) | def setnchannels(self, nchannels):
    method writeframes (line 177) | def writeframes(self, data):
    method wait (line 198) | def wait(self):
    method stop (line 204) | def stop(self):
    method getfilled (line 210) | def getfilled(self):
  function AudioDev (line 220) | def AudioDev():
  function test (line 238) | def test(fn = None):

FILE: tests/pythons/win32-py27/Lib/base64.py
  function _translate (line 32) | def _translate(s, altchars):
  function b64encode (line 42) | def b64encode(s, altchars=None):
  function b64decode (line 59) | def b64decode(s, altchars=None):
  function standard_b64encode (line 79) | def standard_b64encode(s):
  function standard_b64decode (line 86) | def standard_b64decode(s):
  function urlsafe_b64encode (line 95) | def urlsafe_b64encode(s):
  function urlsafe_b64decode (line 103) | def urlsafe_b64decode(s):
  function b32encode (line 135) | def b32encode(s):
  function b32decode (line 177) | def b32decode(s, casefold=False, map01=None):
  function b16encode (line 251) | def b16encode(s):
  function b16decode (line 259) | def b16decode(s, casefold=False):
  function encode (line 285) | def encode(input, output):
  function decode (line 300) | def decode(input, output):
  function encodestring (line 310) | def encodestring(s):
  function decodestring (line 319) | def decodestring(s):
  function test (line 326) | def test():
  function test1 (line 352) | def test1():

FILE: tests/pythons/win32-py27/Lib/bdb.py
  class BdbQuit (line 10) | class BdbQuit(Exception):
  class Bdb (line 14) | class Bdb:
    method __init__ (line 23) | def __init__(self, skip=None):
    method canonic (line 29) | def canonic(self, filename):
    method reset (line 39) | def reset(self):
    method trace_dispatch (line 45) | def trace_dispatch(self, frame, event, arg):
    method dispatch_line (line 65) | def dispatch_line(self, frame):
    method dispatch_call (line 71) | def dispatch_call(self, frame, arg):
    method dispatch_return (line 84) | def dispatch_return(self, frame, arg):
    method dispatch_exception (line 94) | def dispatch_exception(self, frame, arg):
    method is_skipped_module (line 104) | def is_skipped_module(self, module_name):
    method stop_here (line 110) | def stop_here(self, frame):
    method break_here (line 126) | def break_here(self, frame):
    method do_clear (line 148) | def do_clear(self, arg):
    method break_anywhere (line 151) | def break_anywhere(self, frame):
    method user_call (line 157) | def user_call(self, frame, argument_list):
    method user_line (line 162) | def user_line(self, frame):
    method user_return (line 166) | def user_return(self, frame, return_value):
    method user_exception (line 170) | def user_exception(self, frame, exc_info):
    method _set_stopinfo (line 176) | def _set_stopinfo(self, stopframe, returnframe, stoplineno=0):
    method set_until (line 187) | def set_until(self, frame): #the name "until" is borrowed from gdb
    method set_step (line 192) | def set_step(self):
    method set_next (line 204) | def set_next(self, frame):
    method set_return (line 208) | def set_return(self, frame):
    method set_trace (line 212) | def set_trace(self, frame=None):
    method set_continue (line 227) | def set_continue(self):
    method set_quit (line 238) | def set_quit(self):
    method set_break (line 251) | def set_break(self, filename, lineno, temporary=0, cond = None,
    method _prune_breaks (line 266) | def _prune_breaks(self, filename, lineno):
    method clear_break (line 272) | def clear_break(self, filename, lineno):
    method clear_bpbynumber (line 285) | def clear_bpbynumber(self, arg):
    method clear_all_file_breaks (line 299) | def clear_all_file_breaks(self, filename):
    method clear_all_breaks (line 309) | def clear_all_breaks(self):
    method get_break (line 317) | def get_break(self, filename, lineno):
    method get_breaks (line 322) | def get_breaks(self, filename, lineno):
    method get_file_breaks (line 328) | def get_file_breaks(self, filename):
    method get_all_breaks (line 335) | def get_all_breaks(self):
    method get_stack (line 341) | def get_stack(self, f, t):
    method format_stack_entry (line 361) | def format_stack_entry(self, frame_lineno, lprefix=': '):
    method run (line 389) | def run(self, cmd, globals=None, locals=None):
    method runeval (line 407) | def runeval(self, expr, globals=None, locals=None):
    method runctx (line 425) | def runctx(self, cmd, globals, locals):
    method runcall (line 431) | def runcall(self, func, *args, **kwds):
  function set_trace (line 445) | def set_trace():
  class Breakpoint (line 449) | class Breakpoint:
    method __init__ (line 473) | def __init__(self, file, line, temporary=0, cond=None, funcname=None):
    method deleteMe (line 494) | def deleteMe(self):
    method enable (line 502) | def enable(self):
    method disable (line 505) | def disable(self):
    method bpprint (line 508) | def bpprint(self, out=None):
  function checkfuncname (line 533) | def checkfuncname(b, frame):
  function effective (line 561) | def effective(file, line, frame):
  class Tdb (line 614) | class Tdb(Bdb):
    method user_call (line 615) | def user_call(self, frame, args):
    method user_line (line 619) | def user_line(self, frame):
    method user_return (line 626) | def user_return(self, frame, retval):
    method user_exception (line 628) | def user_exception(self, frame, exc_stuff):
  function foo (line 632) | def foo(n):
  function bar (line 637) | def bar(a):
  function test (line 641) | def test():

FILE: tests/pythons/win32-py27/Lib/binhex.py
  class Error (line 31) | class Error(Exception):
  function getfileinfo (line 51) | def getfileinfo(name):
  function openrsrc (line 63) | def openrsrc(name, *mode):
    method __init__ (line 99) | def __init__(self, *args):
    method read (line 102) | def read(self, *args):
    method write (line 105) | def write(self, *args):
    method close (line 108) | def close(self):
  class FInfo (line 75) | class FInfo:
    method __init__ (line 76) | def __init__(self):
  function getfileinfo (line 81) | def getfileinfo(name):
  class openrsrc (line 98) | class openrsrc:
    method __init__ (line 99) | def __init__(self, *args):
    method read (line 102) | def read(self, *args):
    method write (line 105) | def write(self, *args):
    method close (line 108) | def close(self):
  class _Hqxcoderengine (line 111) | class _Hqxcoderengine:
    method __init__ (line 114) | def __init__(self, ofp):
    method write (line 120) | def write(self, data):
    method _flush (line 131) | def _flush(self, force):
    method close (line 142) | def close(self):
  class _Rlecoderengine (line 150) | class _Rlecoderengine:
    method __init__ (line 153) | def __init__(self, ofp):
    method write (line 157) | def write(self, data):
    method close (line 165) | def close(self):
  class BinHex (line 172) | class BinHex:
    method __init__ (line 173) | def __init__(self, name_finfo_dlen_rlen, ofp):
    method _writeinfo (line 189) | def _writeinfo(self, name, finfo):
    method _write (line 203) | def _write(self, data):
    method _writecrc (line 207) | def _writecrc(self):
    method write (line 217) | def write(self, data):
    method close_data (line 223) | def close_data(self):
    method write_rsrc (line 229) | def write_rsrc(self, data):
    method close (line 237) | def close(self):
  function binhex (line 250) | def binhex(inp, out):
  class _Hqxdecoderengine (line 272) | class _Hqxdecoderengine:
    method __init__ (line 275) | def __init__(self, ifp):
    method read (line 279) | def read(self, totalwtd):
    method close (line 313) | def close(self):
  class _Rledecoderengine (line 316) | class _Rledecoderengine:
    method __init__ (line 319) | def __init__(self, ifp):
    method read (line 325) | def read(self, wtd):
    method _fill (line 332) | def _fill(self, wtd):
    method close (line 367) | def close(self):
  class HexBin (line 370) | class HexBin:
    method __init__ (line 371) | def __init__(self, ifp):
    method _read (line 395) | def _read(self, len):
    method _checkcrc (line 400) | def _checkcrc(self):
    method _readheader (line 410) | def _readheader(self):
    method read (line 430) | def read(self, *n):
    method close_data (line 444) | def close_data(self):
    method read_rsrc (line 452) | def read_rsrc(self, *n):
    method close (line 465) | def close(self):
  function hexbin (line 472) | def hexbin(inp, out):
  function _test (line 500) | def _test():

FILE: tests/pythons/win32-py27/Lib/bisect.py
  function insort_right (line 3) | def insort_right(a, x, lo=0, hi=None):
  function bisect_right (line 24) | def bisect_right(a, x, lo=0, hi=None):
  function insort_left (line 47) | def insort_left(a, x, lo=0, hi=None):
  function bisect_left (line 67) | def bisect_left(a, x, lo=0, hi=None):

FILE: tests/pythons/win32-py27/Lib/bsddb/__init__.py
  class _iter_mixin (line 94) | class _iter_mixin(MutableMapping):
    method _make_iter_cursor (line 95) | def _make_iter_cursor(self):
    method _gen_cref_cleaner (line 101) | def _gen_cref_cleaner(self, key):
    method __iter__ (line 107) | def __iter__(self):
    method iteritems (line 148) | def iteritems(self):
  class _DBWithCursor (line 192) | class _DBWithCursor(_iter_mixin):
    method __init__ (line 197) | def __init__(self, db):
    method __del__ (line 221) | def __del__(self):
    method _checkCursor (line 224) | def _checkCursor(self):
    method _closeCursors (line 235) | def _closeCursors(self, save=1):
    method _checkOpen (line 251) | def _checkOpen(self):
    method isOpen (line 255) | def isOpen(self):
    method __len__ (line 258) | def __len__(self):
    method __repr__ (line 263) | def __repr__(self) :
    method __getitem__ (line 268) | def __getitem__(self, key):
    method __setitem__ (line 272) | def __setitem__(self, key, value):
    method __delitem__ (line 281) | def __delitem__(self, key):
    method close (line 290) | def close(self):
    method keys (line 301) | def keys(self):
    method has_key (line 305) | def has_key(self, key):
    method set_location (line 309) | def set_location(self, key):
    method next (line 314) | def next(self):  # Renamed by "2to3"
    method previous (line 323) | def previous(self):
    method first (line 329) | def first(self):
    method last (line 337) | def last(self):
    method sync (line 345) | def sync(self):
  function hashopen (line 353) | def hashopen(file, flag='c', mode=0666, pgsize=None, ffactor=None, nelem...
  function btopen (line 369) | def btopen(file, flag='c', mode=0666,
  function rnopen (line 387) | def rnopen(file, flag='c', mode=0666,
  function _openDBEnv (line 406) | def _openDBEnv(cachesize):
  function _checkflag (line 417) | def _checkflag(flag, file):

FILE: tests/pythons/win32-py27/Lib/bsddb/dbobj.py
  class DBEnv (line 38) | class DBEnv:
    method __init__ (line 39) | def __init__(self, *args, **kwargs):
    method close (line 42) | def close(self, *args, **kwargs):
    method open (line 44) | def open(self, *args, **kwargs):
    method remove (line 46) | def remove(self, *args, **kwargs):
    method set_shm_key (line 48) | def set_shm_key(self, *args, **kwargs):
    method set_cachesize (line 50) | def set_cachesize(self, *args, **kwargs):
    method set_data_dir (line 52) | def set_data_dir(self, *args, **kwargs):
    method set_flags (line 54) | def set_flags(self, *args, **kwargs):
    method set_lg_bsize (line 56) | def set_lg_bsize(self, *args, **kwargs):
    method set_lg_dir (line 58) | def set_lg_dir(self, *args, **kwargs):
    method set_lg_max (line 60) | def set_lg_max(self, *args, **kwargs):
    method set_lk_detect (line 62) | def set_lk_detect(self, *args, **kwargs):
    method set_lk_max (line 65) | def set_lk_max(self, *args, **kwargs):
    method set_lk_max_locks (line 67) | def set_lk_max_locks(self, *args, **kwargs):
    method set_lk_max_lockers (line 69) | def set_lk_max_lockers(self, *args, **kwargs):
    method set_lk_max_objects (line 71) | def set_lk_max_objects(self, *args, **kwargs):
    method set_mp_mmapsize (line 73) | def set_mp_mmapsize(self, *args, **kwargs):
    method set_timeout (line 75) | def set_timeout(self, *args, **kwargs):
    method set_tmp_dir (line 77) | def set_tmp_dir(self, *args, **kwargs):
    method txn_begin (line 79) | def txn_begin(self, *args, **kwargs):
    method txn_checkpoint (line 81) | def txn_checkpoint(self, *args, **kwargs):
    method txn_stat (line 83) | def txn_stat(self, *args, **kwargs):
    method set_tx_max (line 85) | def set_tx_max(self, *args, **kwargs):
    method set_tx_timestamp (line 87) | def set_tx_timestamp(self, *args, **kwargs):
    method lock_detect (line 89) | def lock_detect(self, *args, **kwargs):
    method lock_get (line 91) | def lock_get(self, *args, **kwargs):
    method lock_id (line 93) | def lock_id(self, *args, **kwargs):
    method lock_put (line 95) | def lock_put(self, *args, **kwargs):
    method lock_stat (line 97) | def lock_stat(self, *args, **kwargs):
    method log_archive (line 99) | def log_archive(self, *args, **kwargs):
    method set_get_returns_none (line 102) | def set_get_returns_none(self, *args, **kwargs):
    method log_stat (line 105) | def log_stat(self, *args, **kwargs):
    method dbremove (line 108) | def dbremove(self, *args, **kwargs):
    method dbrename (line 110) | def dbrename(self, *args, **kwargs):
    method set_encrypt (line 112) | def set_encrypt(self, *args, **kwargs):
    method fileid_reset (line 116) | def fileid_reset(self, *args, **kwargs):
    method lsn_reset (line 119) | def lsn_reset(self, *args, **kwargs):
  class DB (line 123) | class DB(MutableMapping):
    method __init__ (line 124) | def __init__(self, dbenv, *args, **kwargs):
    method __len__ (line 129) | def __len__(self):
    method __getitem__ (line 131) | def __getitem__(self, arg):
    method __setitem__ (line 133) | def __setitem__(self, key, value):
    method __delitem__ (line 135) | def __delitem__(self, arg):
    method __iter__ (line 139) | def __iter__(self) :
    method append (line 142) | def append(self, *args, **kwargs):
    method associate (line 144) | def associate(self, *args, **kwargs):
    method close (line 146) | def close(self, *args, **kwargs):
    method consume (line 148) | def consume(self, *args, **kwargs):
    method consume_wait (line 150) | def consume_wait(self, *args, **kwargs):
    method cursor (line 152) | def cursor(self, *args, **kwargs):
    method delete (line 154) | def delete(self, *args, **kwargs):
    method fd (line 156) | def fd(self, *args, **kwargs):
    method get (line 158) | def get(self, *args, **kwargs):
    method pget (line 160) | def pget(self, *args, **kwargs):
    method get_both (line 162) | def get_both(self, *args, **kwargs):
    method get_byteswapped (line 164) | def get_byteswapped(self, *args, **kwargs):
    method get_size (line 166) | def get_size(self, *args, **kwargs):
    method get_type (line 168) | def get_type(self, *args, **kwargs):
    method join (line 170) | def join(self, *args, **kwargs):
    method key_range (line 172) | def key_range(self, *args, **kwargs):
    method has_key (line 174) | def has_key(self, *args, **kwargs):
    method items (line 176) | def items(self, *args, **kwargs):
    method keys (line 178) | def keys(self, *args, **kwargs):
    method open (line 180) | def open(self, *args, **kwargs):
    method put (line 182) | def put(self, *args, **kwargs):
    method remove (line 184) | def remove(self, *args, **kwargs):
    method rename (line 186) | def rename(self, *args, **kwargs):
    method set_bt_minkey (line 188) | def set_bt_minkey(self, *args, **kwargs):
    method set_bt_compare (line 190) | def set_bt_compare(self, *args, **kwargs):
    method set_cachesize (line 192) | def set_cachesize(self, *args, **kwargs):
    method set_dup_compare (line 194) | def set_dup_compare(self, *args, **kwargs) :
    method set_flags (line 196) | def set_flags(self, *args, **kwargs):
    method set_h_ffactor (line 198) | def set_h_ffactor(self, *args, **kwargs):
    method set_h_nelem (line 200) | def set_h_nelem(self, *args, **kwargs):
    method set_lorder (line 202) | def set_lorder(self, *args, **kwargs):
    method set_pagesize (line 204) | def set_pagesize(self, *args, **kwargs):
    method set_re_delim (line 206) | def set_re_delim(self, *args, **kwargs):
    method set_re_len (line 208) | def set_re_len(self, *args, **kwargs):
    method set_re_pad (line 210) | def set_re_pad(self, *args, **kwargs):
    method set_re_source (line 212) | def set_re_source(self, *args, **kwargs):
    method set_q_extentsize (line 214) | def set_q_extentsize(self, *args, **kwargs):
    method stat (line 216) | def stat(self, *args, **kwargs):
    method sync (line 218) | def sync(self, *args, **kwargs):
    method type (line 220) | def type(self, *args, **kwargs):
    method upgrade (line 222) | def upgrade(self, *args, **kwargs):
    method values (line 224) | def values(self, *args, **kwargs):
    method verify (line 226) | def verify(self, *args, **kwargs):
    method set_get_returns_none (line 228) | def set_get_returns_none(self, *args, **kwargs):
    method set_encrypt (line 231) | def set_encrypt(self, *args, **kwargs):
  class DBSequence (line 235) | class DBSequence:
    method __init__ (line 236) | def __init__(self, *args, **kwargs):
    method close (line 239) | def close(self, *args, **kwargs):
    method get (line 241) | def get(self, *args, **kwargs):
    method get_dbp (line 243) | def get_dbp(self, *args, **kwargs):
    method get_key (line 245) | def get_key(self, *args, **kwargs):
    method init_value (line 247) | def init_value(self, *args, **kwargs):
    method open (line 249) | def open(self, *args, **kwargs):
    method remove (line 251) | def remove(self, *args, **kwargs):
    method stat (line 253) | def stat(self, *args, **kwargs):
    method set_cachesize (line 255) | def set_cachesize(self, *args, **kwargs):
    method set_flags (line 257) | def set_flags(self, *args, **kwargs):
    method set_range (line 259) | def set_range(self, *args, **kwargs):
    method get_cachesize (line 261) | def get_cachesize(self, *args, **kwargs):
    method get_flags (line 263) | def get_flags(self, *args, **kwargs):
    method get_range (line 265) | def get_range(self, *args, **kwargs):

FILE: tests/pythons/win32-py27/Lib/bsddb/dbrecio.py
  class DBRecIO (line 34) | class DBRecIO:
    method __init__ (line 35) | def __init__(self, db, key, txn=None):
    method close (line 44) | def close(self):
    method isatty (line 49) | def isatty(self):
    method seek (line 54) | def seek(self, pos, mode = 0):
    method tell (line 63) | def tell(self):
    method read (line 68) | def read(self, n = -1):
    method truncate (line 114) | def truncate(self, size=None):
    method write (line 126) | def write(self, s):
    method writelines (line 137) | def writelines(self, list):
    method flush (line 140) | def flush(self):

FILE: tests/pythons/win32-py27/Lib/bsddb/dbshelve.py
  function _dumps (line 69) | def _dumps(object, protocol):
  function open (line 81) | def open(filename, flags=db.DB_CREATE, mode=0660, filetype=db.DB_HASH,
  class DBShelveError (line 116) | class DBShelveError(db.DBError): pass
  class DBShelf (line 119) | class DBShelf(MutableMapping):
    method __init__ (line 123) | def __init__(self, dbenv=None):
    method __del__ (line 132) | def __del__(self):
    method __getattr__ (line 136) | def __getattr__(self, name):
    method __len__ (line 146) | def __len__(self):
    method __getitem__ (line 150) | def __getitem__(self, key):
    method __setitem__ (line 155) | def __setitem__(self, key, value):
    method __delitem__ (line 160) | def __delitem__(self, key):
    method keys (line 164) | def keys(self, txn=None):
    method __iter__ (line 171) | def __iter__(self) :  # XXX: Load all keys in memory :-(
    method open (line 182) | def open(self, *args, **kwargs):
    method close (line 187) | def close(self, *args, **kwargs):
    method __repr__ (line 192) | def __repr__(self):
    method items (line 199) | def items(self, txn=None):
    method values (line 210) | def values(self, txn=None):
    method __append (line 221) | def __append(self, value, txn=None):
    method append (line 225) | def append(self, value, txn=None):
    method associate (line 231) | def associate(self, secondaryDB, callback, flags=0):
    method get (line 244) | def get(self, *args, **kw):
    method get_both (line 256) | def get_both(self, key, value, txn=None, flags=0):
    method cursor (line 262) | def cursor(self, txn=None, flags=0):
    method put (line 268) | def put(self, key, value, txn=None, flags=0):
    method join (line 273) | def join(self, cursorList, flags=0):
  class DBShelfCursor (line 287) | class DBShelfCursor:
    method __init__ (line 290) | def __init__(self, cursor):
    method __del__ (line 293) | def __del__(self):
    method __getattr__ (line 297) | def __getattr__(self, name):
    method dup (line 304) | def dup(self, flags=0):
    method put (line 310) | def put(self, key, value, flags=0):
    method get (line 315) | def get(self, *args):
    method get_1 (line 320) | def get_1(self, flags):
    method get_2 (line 324) | def get_2(self, key, flags):
    method get_3 (line 328) | def get_3(self, key, value, flags):
    method current (line 334) | def current(self, flags=0): return self.get_1(flags|db.DB_CURRENT)
    method first (line 335) | def first(self, flags=0): return self.get_1(flags|db.DB_FIRST)
    method last (line 336) | def last(self, flags=0): return self.get_1(flags|db.DB_LAST)
    method next (line 337) | def next(self, flags=0): return self.get_1(flags|db.DB_NEXT)
    method prev (line 338) | def prev(self, flags=0): return self.get_1(flags|db.DB_PREV)
    method consume (line 339) | def consume(self, flags=0): return self.get_1(flags|db.DB_CONSUME)
    method next_dup (line 340) | def next_dup(self, flags=0): return self.get_1(flags|db.DB_NEXT_DUP)
    method next_nodup (line 341) | def next_nodup(self, flags=0): return self.get_1(flags|db.DB_NEXT_NODUP)
    method prev_nodup (line 342) | def prev_nodup(self, flags=0): return self.get_1(flags|db.DB_PREV_NODUP)
    method get_both (line 345) | def get_both(self, key, value, flags=0):
    method set (line 351) | def set(self, key, flags=0):
    method set_range (line 355) | def set_range(self, key, flags=0):
    method set_recno (line 359) | def set_recno(self, recno, flags=0):
    method _extract (line 365) | def _extract(self, rec):

FILE: tests/pythons/win32-py27/Lib/bsddb/dbtables.py
  class TableDBError (line 62) | class TableDBError(StandardError):
  class TableAlreadyExists (line 64) | class TableAlreadyExists(TableDBError):
  class Cond (line 68) | class Cond:
    method __call__ (line 70) | def __call__(self, s):
  class ExactCond (line 73) | class ExactCond(Cond):
    method __init__ (line 75) | def __init__(self, strtomatch):
    method __call__ (line 77) | def __call__(self, s):
  class PrefixCond (line 80) | class PrefixCond(Cond):
    method __init__ (line 82) | def __init__(self, prefix):
    method __call__ (line 84) | def __call__(self, s):
  class PostfixCond (line 87) | class PostfixCond(Cond):
    method __init__ (line 89) | def __init__(self, postfix):
    method __call__ (line 91) | def __call__(self, s):
  class LikeCond (line 94) | class LikeCond(Cond):
    method __init__ (line 100) | def __init__(self, likestr, re_flags=re.IGNORECASE):
    method __call__ (line 108) | def __call__(self, s):
  function _columns_key (line 117) | def _columns_key(table):
  function _data_key (line 129) | def _data_key(table, col, rowid):
  function _search_col_data_key (line 132) | def _search_col_data_key(table, col):
  function _search_all_data_key (line 135) | def _search_all_data_key(table):
  function _rowid_key (line 138) | def _rowid_key(table, rowid):
  function _search_rowid_key (line 141) | def _search_rowid_key(table):
  function contains_metastrings (line 144) | def contains_metastrings(s) :
  class bsdTableDB (line 158) | class bsdTableDB :
    method __init__ (line 159) | def __init__(self, filename, dbhome, create=0, truncate=0, mode=0600,
    method __del__ (line 274) | def __del__(self):
    method close (line 277) | def close(self):
    method checkpoint (line 285) | def checkpoint(self, mins=0):
    method sync (line 288) | def sync(self):
    method _db_print (line 291) | def _db_print(self) :
    method CreateTable (line 309) | def CreateTable(self, table, columns):
    method ListTableColumns (line 357) | def ListTableColumns(self, table):
    method ListTables (line 375) | def ListTables(self):
    method CreateOrExtendTable (line 383) | def CreateOrExtendTable(self, table, columns):
    method __load_column_info (line 441) | def __load_column_info(self, table) :
    method __new_rowid (line 453) | def __new_rowid(self, table, txn) :
    method Insert (line 480) | def Insert(self, table, rowdict) :
    method Modify (line 524) | def Modify(self, table, conditions={}, mappings={}):
    method Delete (line 578) | def Delete(self, table, conditions={}):
    method Select (line 623) | def Select(self, table, columns, conditions={}):
    method __Select (line 648) | def __Select(self, table, columns, conditions):
    method Drop (line 783) | def Drop(self, table):

FILE: tests/pythons/win32-py27/Lib/bsddb/dbutils.py
  function DeadlockWrap (line 47) | def DeadlockWrap(function, *_args, **_kwargs):

FILE: tests/pythons/win32-py27/Lib/cProfile.py
  function run (line 14) | def run(statement, filename=None, sort=-1):
  function runctx (line 39) | def runctx(statement, globals, locals, filename=None, sort=-1):
  function help (line 60) | def help():
  class Profile (line 66) | class Profile(_lsprof.Profiler):
    method print_stats (line 79) | def print_stats(self, sort=-1):
    method dump_stats (line 83) | def dump_stats(self, file):
    method create_stats (line 90) | def create_stats(self):
    method snapshot_stats (line 94) | def snapshot_stats(self):
    method run (line 132) | def run(self, cmd):
    method runctx (line 137) | def runctx(self, cmd, globals, locals):
    method runcall (line 146) | def runcall(self, func, *args, **kw):
  function label (line 155) | def label(code):
  function main (line 163) | def main():

FILE: tests/pythons/win32-py27/Lib/calendar.py
  class IllegalMonthError (line 21) | class IllegalMonthError(ValueError):
    method __init__ (line 22) | def __init__(self, month):
    method __str__ (line 24) | def __str__(self):
  class IllegalWeekdayError (line 28) | class IllegalWeekdayError(ValueError):
    method __init__ (line 29) | def __init__(self, weekday):
    method __str__ (line 31) | def __str__(self):
  class _localized_month (line 47) | class _localized_month:
    method __init__ (line 52) | def __init__(self, format):
    method __getitem__ (line 55) | def __getitem__(self, i):
    method __len__ (line 62) | def __len__(self):
  class _localized_day (line 66) | class _localized_day:
    method __init__ (line 71) | def __init__(self, format):
    method __getitem__ (line 74) | def __getitem__(self, i):
    method __len__ (line 81) | def __len__(self):
  function isleap (line 97) | def isleap(year):
  function leapdays (line 102) | def leapdays(y1, y2):
  function weekday (line 110) | def weekday(year, month, day):
  function monthrange (line 116) | def monthrange(year, month):
  class Calendar (line 126) | class Calendar(object):
    method __init__ (line 132) | def __init__(self, firstweekday=0):
    method getfirstweekday (line 135) | def getfirstweekday(self):
    method setfirstweekday (line 138) | def setfirstweekday(self, firstweekday):
    method iterweekdays (line 143) | def iterweekdays(self):
    method itermonthdates (line 151) | def itermonthdates(self, year, month):
    method itermonthdays2 (line 172) | def itermonthdays2(self, year, month):
    method itermonthdays (line 183) | def itermonthdays(self, year, month):
    method monthdatescalendar (line 194) | def monthdatescalendar(self, year, month):
    method monthdays2calendar (line 202) | def monthdays2calendar(self, year, month):
    method monthdayscalendar (line 212) | def monthdayscalendar(self, year, month):
    method yeardatescalendar (line 220) | def yeardatescalendar(self, year, width=3):
    method yeardays2calendar (line 233) | def yeardays2calendar(self, year, width=3):
    method yeardayscalendar (line 246) | def yeardayscalendar(self, year, width=3):
  class TextCalendar (line 259) | class TextCalendar(Calendar):
    method prweek (line 265) | def prweek(self, theweek, width):
    method formatday (line 271) | def formatday(self, day, weekday, width):
    method formatweek (line 281) | def formatweek(self, theweek, width):
    method formatweekday (line 287) | def formatweekday(self, day, width):
    method formatweekheader (line 297) | def formatweekheader(self, width):
    method formatmonthname (line 303) | def formatmonthname(self, theyear, themonth, width, withyear=True):
    method prmonth (line 312) | def prmonth(self, theyear, themonth, w=0, l=0):
    method formatmonth (line 318) | def formatmonth(self, theyear, themonth, w=0, l=0):
    method formatyear (line 334) | def formatyear(self, theyear, w=2, l=1, c=6, m=3):
    method pryear (line 371) | def pryear(self, theyear, w=0, l=0, c=6, m=3):
  class HTMLCalendar (line 376) | class HTMLCalendar(Calendar):
    method formatday (line 384) | def formatday(self, day, weekday):
    method formatweek (line 393) | def formatweek(self, theweek):
    method formatweekday (line 400) | def formatweekday(self, day):
    method formatweekheader (line 406) | def formatweekheader(self):
    method formatmonthname (line 413) | def formatmonthname(self, theyear, themonth, withyear=True):
    method formatmonth (line 423) | def formatmonth(self, theyear, themonth, withyear=True):
    method formatyear (line 442) | def formatyear(self, theyear, width=3):
    method formatyearpage (line 464) | def formatyearpage(self, theyear, width=3, css='calendar.css', encodin...
  class TimeEncoding (line 488) | class TimeEncoding:
    method __init__ (line 489) | def __init__(self, locale):
    method __enter__ (line 492) | def __enter__(self):
    method __exit__ (line 497) | def __exit__(self, *args):
  class LocaleTextCalendar (line 501) | class LocaleTextCalendar(TextCalendar):
    method __init__ (line 509) | def __init__(self, firstweekday=0, locale=None):
    method formatweekday (line 515) | def formatweekday(self, day, width):
    method formatmonthname (line 526) | def formatmonthname(self, theyear, themonth, width, withyear=True):
  class LocaleHTMLCalendar (line 536) | class LocaleHTMLCalendar(HTMLCalendar):
    method __init__ (line 543) | def __init__(self, firstweekday=0, locale=None):
    method formatweekday (line 549) | def formatweekday(self, day):
    method formatmonthname (line 556) | def formatmonthname(self, theyear, themonth, withyear=True):
  function setfirstweekday (line 571) | def setfirstweekday(firstweekday):
  function format (line 595) | def format(cols, colwidth=_colwidth, spacing=_spacing):
  function formatstring (line 600) | def formatstring(cols, colwidth=_colwidth, spacing=_spacing):
  function timegm (line 610) | def timegm(tuple):
  function main (line 620) | def main(args):

FILE: tests/pythons/win32-py27/Lib/cgi.py
  function initlog (line 71) | def initlog(*allargs):
  function dolog (line 106) | def dolog(fmt, *args):
  function nolog (line 110) | def nolog(*allargs):
  function parse (line 124) | def parse(fp=None, environ=os.environ, keep_blank_values=0, strict_parsi...
  function parse_qs (line 180) | def parse_qs(qs, keep_blank_values=0, strict_parsing=0):
  function parse_qsl (line 187) | def parse_qsl(qs, keep_blank_values=0, strict_parsing=0):
  function parse_multipart (line 193) | def parse_multipart(fp, pdict):
  function _parseparam (line 291) | def _parseparam(s):
  function parse_header (line 303) | def parse_header(line):
  class MiniFieldStorage (line 327) | class MiniFieldStorage:
    method __init__ (line 341) | def __init__(self, name, value):
    method __repr__ (line 347) | def __repr__(self):
  class FieldStorage (line 352) | class FieldStorage:
    method __init__ (line 395) | def __init__(self, fp=None, headers=None, outerboundary="",
    method __repr__ (line 511) | def __repr__(self):
    method __iter__ (line 516) | def __iter__(self):
    method __getattr__ (line 519) | def __getattr__(self, name):
    method __getitem__ (line 532) | def __getitem__(self, key):
    method getvalue (line 546) | def getvalue(self, key, default=None):
    method getfirst (line 557) | def getfirst(self, key, default=None):
    method getlist (line 568) | def getlist(self, key):
    method keys (line 579) | def keys(self):
    method has_key (line 585) | def has_key(self, key):
    method __contains__ (line 591) | def __contains__(self, key):
    method __len__ (line 597) | def __len__(self):
    method __nonzero__ (line 601) | def __nonzero__(self):
    method read_urlencoded (line 604) | def read_urlencoded(self):
    method read_multi (line 617) | def read_multi(self, environ, keep_blank_values, strict_parsing):
    method read_single (line 640) | def read_single(self):
    method read_binary (line 651) | def read_binary(self):
    method read_lines (line 664) | def read_lines(self):
    method __write (line 672) | def __write(self, line):
    method read_lines_to_eof (line 680) | def read_lines_to_eof(self):
    method read_lines_to_outerboundary (line 689) | def read_lines_to_outerboundary(self):
    method skip_lines (line 730) | def skip_lines(self):
    method make_file (line 751) | def make_file(self, binary=None):
  class FormContentDict (line 783) | class FormContentDict(UserDict.UserDict):
    method __init__ (line 796) | def __init__(self, environ=os.environ, keep_blank_values=0, strict_par...
  class SvFormContentDict (line 803) | class SvFormContentDict(FormContentDict):
    method __getitem__ (line 815) | def __getitem__(self, key):
    method getlist (line 819) | def getlist(self, key):
    method values (line 821) | def values(self):
    method items (line 828) | def items(self):
  class InterpFormContentDict (line 837) | class InterpFormContentDict(SvFormContentDict):
    method __getitem__ (line 839) | def __getitem__(self, key):
    method values (line 847) | def values(self):
    method items (line 855) | def items(self):
  class FormContent (line 865) | class FormContent(FormContentDict):
    method values (line 867) | def values(self, key):
    method indexed_value (line 870) | def indexed_value(self, key, location):
    method value (line 876) | def value(self, key):
    method length (line 879) | def length(self, key):
    method stripped (line 881) | def stripped(self, key):
    method pars (line 884) | def pars(self):
  function test (line 891) | def test(environ=os.environ):
  function print_exception (line 930) | def print_exception(type=None, value=None, tb=None, limit=None):
  function print_environ (line 944) | def print_environ(environ=os.environ):
  function print_form (line 956) | def print_form(form):
  function print_directory (line 973) | def print_directory():
  function print_arguments (line 985) | def print_arguments():
  function print_environ_usage (line 992) | def print_environ_usage():
  function escape (line 1039) | def escape(s, quote=None):
  function valid_boundary (line 1050) | def valid_boundary(s, _vb_pattern="^[ -~]{0,200}[!-~]$"):

FILE: tests/pythons/win32-py27/Lib/cgitb.py
  function reset (line 36) | def reset():
  function small (line 47) | def small(text):
  function strong (line 53) | def strong(text):
  function grey (line 59) | def grey(text):
  function lookup (line 65) | def lookup(name, frame, locals):
  function scanvars (line 81) | def scanvars(reader, frame, locals):
  function html (line 102) | def html(einfo, context=5):
  function text (line 193) | def text(einfo, context=5):
  class Hook (line 259) | class Hook:
    method __init__ (line 262) | def __init__(self, display=1, logdir=None, context=5, file=None,
    method __call__ (line 270) | def __call__(self, etype, evalue, etb):
    method handle (line 273) | def handle(self, info=None):
  function enable (line 316) | def enable(display=1, logdir=None, context=5, format="html"):

FILE: tests/pythons/win32-py27/Lib/chunk.py
  class Chunk (line 51) | class Chunk:
    method __init__ (line 52) | def __init__(self, file, align=True, bigendian=True, inclheader=False):
    method getname (line 78) | def getname(self):
    method getsize (line 82) | def getsize(self):
    method close (line 86) | def close(self):
    method isatty (line 91) | def isatty(self):
    method seek (line 96) | def seek(self, pos, whence=0):
    method tell (line 115) | def tell(self):
    method read (line 120) | def read(self, size=-1):
    method skip (line 143) | def skip(self):

FILE: tests/pythons/win32-py27/Lib/cmd.py
  class Cmd (line 55) | class Cmd:
    method __init__ (line 79) | def __init__(self, completekey='tab', stdin=None, stdout=None):
    method cmdloop (line 102) | def cmdloop(self, intro=None):
    method precmd (line 154) | def precmd(self, line):
    method postcmd (line 161) | def postcmd(self, stop, line):
    method preloop (line 165) | def preloop(self):
    method postloop (line 169) | def postloop(self):
    method parseline (line 176) | def parseline(self, line):
    method onecmd (line 196) | def onecmd(self, line):
    method emptyline (line 223) | def emptyline(self):
    method default (line 233) | def default(self, line):
    method completedefault (line 242) | def completedefault(self, *ignored):
    method completenames (line 251) | def completenames(self, text, *ignored):
    method complete (line 255) | def complete(self, text, state):
    method get_names (line 285) | def get_names(self):
    method complete_help (line 290) | def complete_help(self, *args):
    method do_help (line 296) | def do_help(self, arg):
    method print_topics (line 342) | def print_topics(self, header, cmds, cmdlen, maxcol):
    method columnize (line 350) | def columnize(self, list, displaywidth=80):

FILE: tests/pythons/win32-py27/Lib/code.py
  function softspace (line 15) | def softspace(file, newvalue):
  class InteractiveInterpreter (line 28) | class InteractiveInterpreter:
    method __init__ (line 37) | def __init__(self, locals=None):
    method runsource (line 51) | def runsource(self, source, filename="<input>", symbol="single"):
    method runcode (line 90) | def runcode(self, code):
    method showsyntaxerror (line 112) | def showsyntaxerror(self, filename=None):
    method showtraceback (line 141) | def showtraceback(self):
    method write (line 164) | def write(self, data):
  class InteractiveConsole (line 174) | class InteractiveConsole(InteractiveInterpreter):
    method __init__ (line 182) | def __init__(self, locals=None, filename="<console>"):
    method resetbuffer (line 196) | def resetbuffer(self):
    method interact (line 200) | def interact(self, banner=None):
    method push (line 249) | def push(self, line):
    method raw_input (line 270) | def raw_input(self, prompt=""):
  function interact (line 284) | def interact(banner=None, readfunc=None, local=None):

FILE: tests/pythons/win32-py27/Lib/codecs.py
  class CodecInfo (line 75) | class CodecInfo(tuple):
    method __new__ (line 77) | def __new__(cls, encode, decode, streamreader=None, streamwriter=None,
    method __repr__ (line 89) | def __repr__(self):
  class Codec (line 92) | class Codec:
    method encode (line 114) | def encode(self, input, errors='strict'):
    method decode (line 133) | def decode(self, input, errors='strict'):
  class IncrementalEncoder (line 156) | class IncrementalEncoder(object):
    method __init__ (line 162) | def __init__(self, errors='strict'):
    method encode (line 173) | def encode(self, input, final=False):
    method reset (line 179) | def reset(self):
    method getstate (line 184) | def getstate(self):
    method setstate (line 190) | def setstate(self, state):
  class BufferedIncrementalEncoder (line 196) | class BufferedIncrementalEncoder(IncrementalEncoder):
    method __init__ (line 202) | def __init__(self, errors='strict'):
    method _buffer_encode (line 206) | def _buffer_encode(self, input, errors, final):
    method encode (line 211) | def encode(self, input, final=False):
    method reset (line 219) | def reset(self):
    method getstate (line 223) | def getstate(self):
    method setstate (line 226) | def setstate(self, state):
  class IncrementalDecoder (line 229) | class IncrementalDecoder(object):
    method __init__ (line 235) | def __init__(self, errors='strict'):
    method decode (line 245) | def decode(self, input, final=False):
    method reset (line 251) | def reset(self):
    method getstate (line 256) | def getstate(self):
    method setstate (line 270) | def setstate(self, state):
  class BufferedIncrementalDecoder (line 278) | class BufferedIncrementalDecoder(IncrementalDecoder):
    method __init__ (line 284) | def __init__(self, errors='strict'):
    method _buffer_decode (line 288) | def _buffer_decode(self, input, errors, final):
    method decode (line 293) | def decode(self, input, final=False):
    method reset (line 301) | def reset(self):
    method getstate (line 305) | def getstate(self):
    method setstate (line 309) | def setstate(self, state):
  class StreamWriter (line 320) | class StreamWriter(Codec):
    method __init__ (line 322) | def __init__(self, stream, errors='strict'):
    method write (line 347) | def write(self, object):
    method writelines (line 354) | def writelines(self, list):
    method reset (line 361) | def reset(self):
    method seek (line 373) | def seek(self, offset, whence=0):
    method __getattr__ (line 378) | def __getattr__(self, name,
    method __enter__ (line 385) | def __enter__(self):
    method __exit__ (line 388) | def __exit__(self, type, value, tb):
  class StreamReader (line 393) | class StreamReader(Codec):
    method __init__ (line 395) | def __init__(self, stream, errors='strict'):
    method decode (line 421) | def decode(self, input, errors='strict'):
    method read (line 424) | def read(self, size=-1, chars=-1, firstline=False):
    method readline (line 503) | def readline(self, size=None, keepends=True):
    method readlines (line 576) | def readlines(self, sizehint=None, keepends=True):
    method reset (line 591) | def reset(self):
    method seek (line 604) | def seek(self, offset, whence=0):
    method next (line 612) | def next(self):
    method __iter__ (line 620) | def __iter__(self):
    method __getattr__ (line 623) | def __getattr__(self, name,
    method __enter__ (line 630) | def __enter__(self):
    method __exit__ (line 633) | def __exit__(self, type, value, tb):
  class StreamReaderWriter (line 638) | class StreamReaderWriter:
    method __init__ (line 651) | def __init__(self, stream, Reader, Writer, errors='strict'):
    method read (line 669) | def read(self, size=-1):
    method readline (line 673) | def readline(self, size=None):
    method readlines (line 677) | def readlines(self, sizehint=None):
    method next (line 681) | def next(self):
    method __iter__ (line 686) | def __iter__(self):
    method write (line 689) | def write(self, data):
    method writelines (line 693) | def writelines(self, list):
    method reset (line 697) | def reset(self):
    method seek (line 702) | def seek(self, offset, whence=0):
    method __getattr__ (line 708) | def __getattr__(self, name,
    method __enter__ (line 717) | def __enter__(self):
    method __exit__ (line 720) | def __exit__(self, type, value, tb):
  class StreamRecoder (line 725) | class StreamRecoder:
    method __init__ (line 746) | def __init__(self, stream, encode, decode, Reader, Writer,
    method read (line 779) | def read(self, size=-1):
    method readline (line 785) | def readline(self, size=None):
    method readlines (line 794) | def readlines(self, sizehint=None):
    method next (line 800) | def next(self):
    method __iter__ (line 807) | def __iter__(self):
    method write (line 810) | def write(self, data):
    method writelines (line 815) | def writelines(self, list):
    method reset (line 821) | def reset(self):
    method __getattr__ (line 826) | def __getattr__(self, name,
    method __enter__ (line 833) | def __enter__(self):
    method __exit__ (line 836) | def __exit__(self, type, value, tb):
  function open (line 841) | def open(filename, mode='rb', encoding=None, errors='strict', buffering=1):
  function EncodedFile (line 890) | def EncodedFile(file, data_encoding, file_encoding=None, errors='strict'):
  function getencoder (line 928) | def getencoder(encoding):
  function getdecoder (line 938) | def getdecoder(encoding):
  function getincrementalencoder (line 948) | def getincrementalencoder(encoding):
  function getincrementaldecoder (line 962) | def getincrementaldecoder(encoding):
  function getreader (line 976) | def getreader(encoding):
  function getwriter (line 986) | def getwriter(encoding):
  function iterencode (line 996) | def iterencode(iterator, encoding, errors='strict', **kwargs):
  function iterdecode (line 1014) | def iterdecode(iterator, encoding, errors='strict', **kwargs):
  function make_identity_dict (line 1034) | def make_identity_dict(rng):
  function make_encoding_map (line 1047) | def make_encoding_map(decoding_map):

FILE: tests/pythons/win32-py27/Lib/codeop.py
  function _maybe_compile (line 68) | def _maybe_compile(compiler, source, filename, symbol):
  function _compile (line 101) | def _compile(source, filename, symbol):
  function compile_command (line 104) | def compile_command(source, filename="<input>", symbol="single"):
  class Compile (line 124) | class Compile:
    method __init__ (line 129) | def __init__(self):
    method __call__ (line 132) | def __call__(self, source, filename, symbol):
  class CommandCompiler (line 139) | class CommandCompiler:
    method __init__ (line 146) | def __init__(self,):
    method __call__ (line 149) | def __call__(self, source, filename="<input>", symbol="single"):

FILE: tests/pythons/win32-py27/Lib/collections.py
  class OrderedDict (line 26) | class OrderedDict(dict):
    method __init__ (line 38) | def __init__(self, *args, **kwds):
    method __setitem__ (line 54) | def __setitem__(self, key, value, dict_setitem=dict.__setitem__):
    method __delitem__ (line 64) | def __delitem__(self, key, dict_delitem=dict.__delitem__):
    method __iter__ (line 73) | def __iter__(self):
    method __reversed__ (line 82) | def __reversed__(self):
    method clear (line 91) | def clear(self):
    method keys (line 100) | def keys(self):
    method values (line 104) | def values(self):
    method items (line 108) | def items(self):
    method iterkeys (line 112) | def iterkeys(self):
    method itervalues (line 116) | def itervalues(self):
    method iteritems (line 121) | def iteritems(self):
    method pop (line 132) | def pop(self, key, default=__marker):
    method setdefault (line 146) | def setdefault(self, key, default=None):
    method popitem (line 153) | def popitem(self, last=True):
    method __repr__ (line 164) | def __repr__(self, _repr_running={}):
    method __reduce__ (line 177) | def __reduce__(self):
    method copy (line 187) | def copy(self):
    method fromkeys (line 192) | def fromkeys(cls, iterable, value=None):
    method __eq__ (line 202) | def __eq__(self, other):
    method __ne__ (line 211) | def __ne__(self, other):
    method viewkeys (line 217) | def viewkeys(self):
    method viewvalues (line 221) | def viewvalues(self):
    method viewitems (line 225) | def viewitems(self):
  function namedtuple (line 288) | def namedtuple(typename, field_names, verbose=False, rename=False):
  class Counter (line 387) | class Counter(dict):
    method __init__ (line 438) | def __init__(self, iterable=None, **kwds):
    method __missing__ (line 452) | def __missing__(self, key):
    method most_common (line 457) | def most_common(self, n=None):
    method elements (line 470) | def elements(self):
    method fromkeys (line 495) | def fromkeys(cls, iterable, v=None):
    method update (line 501) | def update(self, iterable=None, **kwds):
    method subtract (line 536) | def subtract(self, iterable=None, **kwds):
    method copy (line 563) | def copy(self):
    method __reduce__ (line 567) | def __reduce__(self):
    method __delitem__ (line 570) | def __delitem__(self, elem):
    method __repr__ (line 575) | def __repr__(self):
    method __add__ (line 590) | def __add__(self, other):
    method __sub__ (line 609) | def __sub__(self, other):
    method __or__ (line 628) | def __or__(self, other):
    method __and__ (line 648) | def __and__(self, other):
  class Point (line 674) | class Point(namedtuple('Point', 'x y')):
    method hypot (line 677) | def hypot(self):
    method __str__ (line 679) | def __str__(self):
    method _replace (line 689) | def _replace(self, _map=map, **kwds):
  class Point (line 685) | class Point(namedtuple('Point', 'x y')):
    method hypot (line 677) | def hypot(self):
    method __str__ (line 679) | def __str__(self):
    method _replace (line 689) | def _replace(self, _map=map, **kwds):

FILE: tests/pythons/win32-py27/Lib/colorsys.py
  function rgb_to_yiq (line 37) | def rgb_to_yiq(r, g, b):
  function yiq_to_rgb (line 43) | def yiq_to_rgb(y, i, q):
  function rgb_to_hls (line 67) | def rgb_to_hls(r, g, b):
  function hls_to_rgb (line 90) | def hls_to_rgb(h, l, s):
  function _v (line 100) | def _v(m1, m2, hue):
  function rgb_to_hsv (line 116) | def rgb_to_hsv(r, g, b):
  function hsv_to_rgb (line 135) | def hsv_to_rgb(h, s, v):

FILE: tests/pythons/win32-py27/Lib/commands.py
  function getstatus (line 37) | def getstatus(file):
  function getoutput (line 48) | def getoutput(cmd):
  function getstatusoutput (line 56) | def getstatusoutput(cmd):
  function mk2arg (line 69) | def mk2arg(head, x):
  function mkarg (line 81) | def mkarg(x):

FILE: tests/pythons/win32-py27/Lib/compileall.py
  function compile_dir (line 21) | def compile_dir(dir, maxlevels=10, ddir=None,
  function compile_file (line 61) | def compile_file(fullname, ddir=None, force=0, rx=None, quiet=0):
  function compile_path (line 113) | def compile_path(skip_curdir=1, maxlevels=0, force=0, quiet=0):
  function expand_args (line 132) | def expand_args(args, flist):
  function main (line 151) | def main():

FILE: tests/pythons/win32-py27/Lib/compiler/ast.py
  function flatten (line 7) | def flatten(seq):
  function flatten_nodes (line 18) | def flatten_nodes(seq):
  class Node (line 23) | class Node:
    method getChildren (line 25) | def getChildren(self):
    method __iter__ (line 27) | def __iter__(self):
    method asList (line 30) | def asList(self): # for backwards compatibility
    method getChildNodes (line 32) | def getChildNodes(self):
  class EmptyNode (line 35) | class EmptyNode(Node):
  class Expression (line 38) | class Expression(Node):
    method __init__ (line 41) | def __init__(self, node):
    method getChildren (line 44) | def getChildren(self):
    method getChildNodes (line 47) | def getChildNodes(self):
    method __repr__ (line 50) | def __repr__(self):
  class Add (line 53) | class Add(Node):
    method __init__ (line 54) | def __init__(self, leftright, lineno=None):
    method getChildren (line 59) | def getChildren(self):
    method getChildNodes (line 62) | def getChildNodes(self):
    method __repr__ (line 65) | def __repr__(self):
  class And (line 68) | class And(Node):
    method __init__ (line 69) | def __init__(self, nodes, lineno=None):
    method getChildren (line 73) | def getChildren(self):
    method getChildNodes (line 76) | def getChildNodes(self):
    method __repr__ (line 81) | def __repr__(self):
  class AssAttr (line 84) | class AssAttr(Node):
    method __init__ (line 85) | def __init__(self, expr, attrname, flags, lineno=None):
    method getChildren (line 91) | def getChildren(self):
    method getChildNodes (line 94) | def getChildNodes(self):
    method __repr__ (line 97) | def __repr__(self):
  class AssList (line 100) | class AssList(Node):
    method __init__ (line 101) | def __init__(self, nodes, lineno=None):
    method getChildren (line 105) | def getChildren(self):
    method getChildNodes (line 108) | def getChildNodes(self):
    method __repr__ (line 113) | def __repr__(self):
  class AssName (line 116) | class AssName(Node):
    method __init__ (line 117) | def __init__(self, name, flags, lineno=None):
    method getChildren (line 122) | def getChildren(self):
    method getChildNodes (line 125) | def getChildNodes(self):
    method __repr__ (line 128) | def __repr__(self):
  class AssTuple (line 131) | class AssTuple(Node):
    method __init__ (line 132) | def __init__(self, nodes, lineno=None):
    method getChildren (line 136) | def getChildren(self):
    method 
Copy disabled (too large) Download .json
Condensed preview — 5759 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (83,112K chars).
[
  {
    "path": ".gitignore",
    "chars": 90,
    "preview": "###SublimeText###\n*.pyc\n\n# SublimeText project files\n*.sublime-workspace\n*.sublime-project"
  },
  {
    "path": "README.md",
    "chars": 4319,
    "preview": "psycopg2-windows\n=========\nPip, windows, AND **virtualenv** friendly versions of psycopg2!!!!!   This works because ever"
  },
  {
    "path": "psycopg2/__init__.py",
    "chars": 5834,
    "preview": "\"\"\"A Python driver for PostgreSQL\n\npsycopg is a PostgreSQL_ database adapter for the Python_ programming\nlanguage. This "
  },
  {
    "path": "psycopg2/_json.py",
    "chars": 6735,
    "preview": "\"\"\"Implementation of the JSON adaptation objects\n\nThis module exists to avoid a circular import problem: pyscopg2.extras"
  },
  {
    "path": "psycopg2/_range.py",
    "chars": 16801,
    "preview": "\"\"\"Implementation of the Range type and adaptation\n\n\"\"\"\n\n# psycopg/_range.py - Implementation of the Range type and adap"
  },
  {
    "path": "psycopg2/errorcodes.py",
    "chars": 12982,
    "preview": "\"\"\"Error codes for PostgresSQL\n\nThis module contains symbolic names for all PostgreSQL error codes.\n\"\"\"\n# psycopg2/error"
  },
  {
    "path": "psycopg2/extensions.py",
    "chars": 6047,
    "preview": "\"\"\"psycopg extensions to the DBAPI-2.0\n\nThis module holds all the extensions to the DBAPI-2.0 provided by psycopg.\n\n- `c"
  },
  {
    "path": "psycopg2/extras.py",
    "chars": 31890,
    "preview": "\"\"\"Miscellaneous goodies for psycopg2\n\nThis module is a generic place used to hold little helper functions\nand classes u"
  },
  {
    "path": "psycopg2/pool.py",
    "chars": 8068,
    "preview": "\"\"\"Connection pooling for psycopg2\n\nThis module implements thread-safe (and not) connection pools.\n\"\"\"\n# psycopg/pool.py"
  },
  {
    "path": "psycopg2/psycopg1.py",
    "chars": 3345,
    "preview": "\"\"\"psycopg 1.1.x compatibility module\n\nThis module uses the new style connection and cursor types to build a psycopg\n1.1"
  },
  {
    "path": "psycopg2/tests/__init__.py",
    "chars": 3038,
    "preview": "#!/usr/bin/env python\n\n# psycopg2 test suite\n#\n# Copyright (C) 2007-2011 Federico Di Gregorio  <fog@debian.org>\n#\n# psyc"
  },
  {
    "path": "psycopg2/tests/dbapi20.py",
    "chars": 32278,
    "preview": "#!/usr/bin/env python\n''' Python DB API 2.0 driver compliance unit test suite. \n    \n    This software is Public Domain "
  },
  {
    "path": "psycopg2/tests/dbapi20_tpc.py",
    "chars": 4138,
    "preview": "\"\"\" Python DB API 2.0 driver Two Phase Commit compliance test suite.\n\n\"\"\"\n\nimport unittest\n\n\nclass TwoPhaseCommitTests(u"
  },
  {
    "path": "psycopg2/tests/test_async.py",
    "chars": 15715,
    "preview": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n\n# test_async.py - unit test for asynchronous API\n#\n# Copyright (C) 2010-2"
  },
  {
    "path": "psycopg2/tests/test_bugX000.py",
    "chars": 1678,
    "preview": "#!/usr/bin/env python\n\n# bugX000.py - test for DateTime object allocation bug\n#\n# Copyright (C) 2007-2011 Federico Di Gr"
  },
  {
    "path": "psycopg2/tests/test_bug_gc.py",
    "chars": 1720,
    "preview": "#!/usr/bin/env python\n\n# bug_gc.py - test for refcounting/GC bug\n#\n# Copyright (C) 2010-2011 Federico Di Gregorio  <fog@"
  },
  {
    "path": "psycopg2/tests/test_cancel.py",
    "chars": 3710,
    "preview": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n\n# test_cancel.py - unit test for query cancellation\n#\n# Copyright (C) 201"
  },
  {
    "path": "psycopg2/tests/test_connection.py",
    "chars": 39738,
    "preview": "#!/usr/bin/env python\n\n# test_connection.py - unit test for connection attributes\n#\n# Copyright (C) 2008-2011 James Hens"
  },
  {
    "path": "psycopg2/tests/test_copy.py",
    "chars": 9997,
    "preview": "#!/usr/bin/env python\n\n# test_copy.py - unit test for COPY support\n#\n# Copyright (C) 2010-2011 Daniele Varrazzo  <daniel"
  },
  {
    "path": "psycopg2/tests/test_cursor.py",
    "chars": 16474,
    "preview": "#!/usr/bin/env python\n\n# test_cursor.py - unit test for cursor attributes\n#\n# Copyright (C) 2010-2011 Daniele Varrazzo  "
  },
  {
    "path": "psycopg2/tests/test_dates.py",
    "chars": 23265,
    "preview": "#!/usr/bin/env python\n\n# test_dates.py - unit test for dates handling\n#\n# Copyright (C) 2008-2011 James Henstridge  <jam"
  },
  {
    "path": "psycopg2/tests/test_extras_dictcursor.py",
    "chars": 17434,
    "preview": "#!/usr/bin/env python\n#\n# extras_dictcursor - test if DictCursor extension class works\n#\n# Copyright (C) 2004-2010 Feder"
  },
  {
    "path": "psycopg2/tests/test_green.py",
    "chars": 4205,
    "preview": "#!/usr/bin/env python\n\n# test_green.py - unit test for async wait callback\n#\n# Copyright (C) 2010-2011 Daniele Varrazzo "
  },
  {
    "path": "psycopg2/tests/test_lobject.py",
    "chars": 13300,
    "preview": "#!/usr/bin/env python\n\n# test_lobject.py - unit test for large objects support\n#\n# Copyright (C) 2008-2011 James Henstri"
  },
  {
    "path": "psycopg2/tests/test_module.py",
    "chars": 10380,
    "preview": "#!/usr/bin/env python\n\n# test_module.py - unit test for the module interface\n#\n# Copyright (C) 2011 Daniele Varrazzo <da"
  },
  {
    "path": "psycopg2/tests/test_notify.py",
    "chars": 7106,
    "preview": "#!/usr/bin/env python\n\n# test_notify.py - unit test for async notifications\n#\n# Copyright (C) 2010-2011 Daniele Varrazzo"
  },
  {
    "path": "psycopg2/tests/test_psycopg2_dbapi20.py",
    "chars": 1949,
    "preview": "#!/usr/bin/env python\n\n# test_psycopg2_dbapi20.py - DB API conformance test for psycopg2\n#\n# Copyright (C) 2006-2011 Fed"
  },
  {
    "path": "psycopg2/tests/test_quote.py",
    "chars": 6332,
    "preview": "#!/usr/bin/env python\n\n# test_quote.py - unit test for strings quoting\n#\n# Copyright (C) 2007-2011 Daniele Varrazzo  <da"
  },
  {
    "path": "psycopg2/tests/test_transaction.py",
    "chars": 9223,
    "preview": "#!/usr/bin/env python\n\n# test_transaction - unit test on transaction behaviour\n#\n# Copyright (C) 2007-2011 Federico Di G"
  },
  {
    "path": "psycopg2/tests/test_types_basic.py",
    "chars": 16882,
    "preview": "#!/usr/bin/env python\n#\n# types_basic.py - tests for basic types conversions\n#\n# Copyright (C) 2004-2010 Federico Di Gre"
  },
  {
    "path": "psycopg2/tests/test_types_extras.py",
    "chars": 58814,
    "preview": "#!/usr/bin/env python\n#\n# types_extras.py - tests for extras types conversions\n#\n# Copyright (C) 2008-2010 Federico Di G"
  },
  {
    "path": "psycopg2/tests/test_with.py",
    "chars": 6908,
    "preview": "#!/usr/bin/env python\n\n# test_ctxman.py - unit test for connection and cursor used as context manager\n#\n# Copyright (C) "
  },
  {
    "path": "psycopg2/tests/testconfig.py",
    "chars": 1157,
    "preview": "# Configure the test suite from the env variables.\n\nimport os\n\ndbname = os.environ.get('PSYCOPG2_TESTDB', 'psycopg2_test"
  },
  {
    "path": "psycopg2/tests/testutils.py",
    "chars": 10096,
    "preview": "# testutils.py - utility module for psycopg2 testing.\n\n#\n# Copyright (C) 2010-2011 Daniele Varrazzo  <daniele.varrazzo@g"
  },
  {
    "path": "psycopg2/tz.py",
    "chars": 4427,
    "preview": "\"\"\"tzinfo implementations for psycopg2\n\nThis module holds two different tzinfo implementations that can be used as\nthe '"
  },
  {
    "path": "setup.py",
    "chars": 2267,
    "preview": "from distutils.core import setup\n\nsetup(\n    name='psycopg2',\n    version='2.5.2',\n    summary='Python-PostgreSQL Databa"
  },
  {
    "path": "src/psycopg2-2.5.2-py2.7.egg-info",
    "chars": 1883,
    "preview": "Metadata-Version: 1.1\nName: psycopg2\nVersion: 2.5.2\nSummary: Python-PostgreSQL Database Adapter\nHome-page: http://initd."
  },
  {
    "path": "tests/pythons/win32-py27/LICENSE.txt",
    "chars": 37825,
    "preview": "A. HISTORY OF THE SOFTWARE\n==========================\n\nPython was created in the early 1990s by Guido van Rossum at Stic"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/BaseHTTPServer.py",
    "chars": 22461,
    "preview": "\"\"\"HTTP server base class.\n\nNote: the class in this module doesn't implement any HTTP request; see\nSimpleHTTPServer for "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/Bastion.py",
    "chars": 5744,
    "preview": "\"\"\"Bastionification utility.\n\nA bastion (for another object -- the 'original') is an object that has\nthe same methods as"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/CGIHTTPServer.py",
    "chars": 13083,
    "preview": "\"\"\"CGI-savvy HTTP Server.\n\nThis module builds on SimpleHTTPServer by implementing GET and POST\nrequests to cgi-bin scrip"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/ConfigParser.py",
    "chars": 27746,
    "preview": "\"\"\"Configuration file parser.\n\nA setup file consists of sections, lead by a \"[section]\" header,\nand followed by \"name: v"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/Cookie.py",
    "chars": 25844,
    "preview": "#!/usr/bin/env python\n#\n\n####\n# Copyright 2000 by Timothy O'Malley <timo@alum.mit.edu>\n#\n#                All Rights Res"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/DocXMLRPCServer.py",
    "chars": 10500,
    "preview": "\"\"\"Self documenting XML-RPC Server.\n\nThis module can be used to create XML-RPC servers that\nserve pydoc-style documentat"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/HTMLParser.py",
    "chars": 16982,
    "preview": "\"\"\"A parser for HTML and XHTML.\"\"\"\n\n# This file is based on sgmllib.py, but the API is slightly different.\n\n# XXX There "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/MimeWriter.py",
    "chars": 6482,
    "preview": "\"\"\"Generic MIME writer.\n\nThis module defines the class MimeWriter.  The MimeWriter class implements\na basic formatter fo"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/Queue.py",
    "chars": 8577,
    "preview": "\"\"\"A multi-producer, multi-consumer queue.\"\"\"\n\nfrom time import time as _time\ntry:\n    import threading as _threading\nex"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/SimpleHTTPServer.py",
    "chars": 7602,
    "preview": "\"\"\"Simple HTTP Server.\n\nThis module builds on BaseHTTPServer by implementing the standard GET\nand HEAD requests in a fai"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/SimpleXMLRPCServer.py",
    "chars": 25769,
    "preview": "r\"\"\"Simple XML-RPC Server.\n\nThis module can be used to create simple XML-RPC servers\nby creating a server and either ins"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/SocketServer.py",
    "chars": 23849,
    "preview": "\"\"\"Generic socket server classes.\n\nThis module tries to capture the various aspects of defining a server:\n\nFor socket-ba"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/StringIO.py",
    "chars": 10662,
    "preview": "r\"\"\"File-like objects that read from or write to a string buffer.\n\nThis implements (nearly) all stdio methods.\n\nf = Stri"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/UserDict.py",
    "chars": 5811,
    "preview": "\"\"\"A more or less complete user-defined wrapper around dictionary objects.\"\"\"\n\nclass UserDict:\n    def __init__(self, di"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/UserList.py",
    "chars": 3644,
    "preview": "\"\"\"A more or less complete user-defined wrapper around list objects.\"\"\"\n\nimport collections\n\nclass UserList(collections."
  },
  {
    "path": "tests/pythons/win32-py27/Lib/UserString.py",
    "chars": 9687,
    "preview": "#!/usr/bin/env python\n## vim:ts=4:et:nowrap\n\"\"\"A user-defined wrapper around string objects\n\nNote: string objects have g"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/_LWPCookieJar.py",
    "chars": 6555,
    "preview": "\"\"\"Load / save to libwww-perl (LWP) format files.\n\nActually, the format is slightly extended from that used by LWP's\n(li"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/_MozillaCookieJar.py",
    "chars": 5809,
    "preview": "\"\"\"Mozilla / Netscape cookie loading / saving.\"\"\"\n\nimport re, time\n\nfrom cookielib import (_warn_unhandled_exception, Fi"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/__future__.py",
    "chars": 4380,
    "preview": "\"\"\"Record of phased-in incompatible language changes.\n\nEach line is of the form:\n\n    FeatureName = \"_Feature(\" Optional"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/__phello__.foo.py",
    "chars": 64,
    "preview": "# This file exists as a helper for the test.test_frozen module.\n"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/_abcoll.py",
    "chars": 17865,
    "preview": "# Copyright 2007 Google, Inc. All Rights Reserved.\n# Licensed to PSF under a Contributor Agreement.\n\n\"\"\"Abstract Base Cl"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/_osx_support.py",
    "chars": 18827,
    "preview": "\"\"\"Shared OS X support functions.\"\"\"\n\nimport os\nimport re\nimport sys\n\n__all__ = [\n    'compiler_fixup',\n    'customize_c"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/_pyio.py",
    "chars": 68857,
    "preview": "\"\"\"\nPython implementation of the io module.\n\"\"\"\n\nfrom __future__ import (print_function, unicode_literals)\n\nimport os\nim"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/_strptime.py",
    "chars": 20221,
    "preview": "\"\"\"Strptime-related classes and functions.\n\nCLASSES:\n    LocaleTime -- Discovers and stores locale-specific time informa"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/_threading_local.py",
    "chars": 7456,
    "preview": "\"\"\"Thread-local objects.\n\n(Note that this module provides a Python version of the threading.local\n class.  Depending on "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/_weakrefset.py",
    "chars": 5776,
    "preview": "# Access WeakSet through the weakref module.\n# This code is separated-out because it is needed\n# by abc.py to load every"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/abc.py",
    "chars": 7145,
    "preview": "# Copyright 2007 Google, Inc. All Rights Reserved.\n# Licensed to PSF under a Contributor Agreement.\n\n\"\"\"Abstract Base Cl"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/aifc.py",
    "chars": 33999,
    "preview": "\"\"\"Stuff to parse AIFF-C and AIFF files.\n\nUnless explicitly stated otherwise, the description below is true\nboth for AIF"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/antigravity.py",
    "chars": 60,
    "preview": "\nimport webbrowser\n\nwebbrowser.open(\"http://xkcd.com/353/\")\n"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/anydbm.py",
    "chars": 2663,
    "preview": "\"\"\"Generic interface to all dbm clones.\n\nInstead of\n\n        import dbm\n        d = dbm.open(file, 'w', 0666)\n\nuse\n\n    "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/argparse.py",
    "chars": 88530,
    "preview": "# Author: Steven J. Bethard <steven.bethard@gmail.com>.\n\n\"\"\"Command-line parsing library\n\nThis module is an optparse-ins"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/ast.py",
    "chars": 11805,
    "preview": "# -*- coding: utf-8 -*-\n\"\"\"\n    ast\n    ~~~\n\n    The `ast` module helps Python applications to process trees of the Pyth"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/asynchat.py",
    "chars": 11402,
    "preview": "# -*- Mode: Python; tab-width: 4 -*-\n#       Id: asynchat.py,v 2.26 2000/09/07 22:29:26 rushing Exp\n#       Author: Sam "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/asyncore.py",
    "chars": 20847,
    "preview": "# -*- Mode: Python -*-\n#   Id: asyncore.py,v 2.51 2000/09/07 22:29:26 rushing Exp\n#   Author: Sam Rushing <rushing@night"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/atexit.py",
    "chars": 1705,
    "preview": "\"\"\"\natexit.py - allow programmer to define multiple exit functions to be executed\nupon normal program termination.\n\nOne "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/audiodev.py",
    "chars": 7597,
    "preview": "\"\"\"Classes for manipulating audio devices (currently only for Sun and SGI)\"\"\"\nfrom warnings import warnpy3k\nwarnpy3k(\"th"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/base64.py",
    "chars": 11357,
    "preview": "#! /usr/bin/env python\n\n\"\"\"RFC 3548: Base16, Base32, Base64 Data Encodings\"\"\"\n\n# Modified 04-Oct-1995 by Jack Jansen to "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/bdb.py",
    "chars": 21714,
    "preview": "\"\"\"Debugger basics\"\"\"\n\nimport fnmatch\nimport sys\nimport os\nimport types\n\n__all__ = [\"BdbQuit\",\"Bdb\",\"Breakpoint\"]\n\nclass"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/binhex.py",
    "chars": 14476,
    "preview": "\"\"\"Macintosh binhex compression/decompression.\n\neasy interface:\nbinhex(inputfilename, outputfilename)\nhexbin(inputfilena"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/bisect.py",
    "chars": 2595,
    "preview": "\"\"\"Bisection algorithms.\"\"\"\n\ndef insort_right(a, x, lo=0, hi=None):\n    \"\"\"Insert item x in list a, and keep it sorted a"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/bsddb/__init__.py",
    "chars": 15988,
    "preview": "#----------------------------------------------------------------------\n#  Copyright (c) 1999-2001, Digital Creations, F"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/bsddb/db.py",
    "chars": 2730,
    "preview": "#----------------------------------------------------------------------\n#  Copyright (c) 1999-2001, Digital Creations, F"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/bsddb/dbobj.py",
    "chars": 11331,
    "preview": "#-------------------------------------------------------------------------\n#  This file contains real Python object wrap"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/bsddb/dbrecio.py",
    "chars": 5308,
    "preview": "\n\"\"\"\nFile-like objects that read from or write to a bsddb record.\n\nThis implements (nearly) all stdio methods.\n\nf = DBRe"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/bsddb/dbshelve.py",
    "chars": 11580,
    "preview": "#!/usr/bin/env python\n#------------------------------------------------------------------------\n#           Copyright (c"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/bsddb/dbtables.py",
    "chars": 30866,
    "preview": "#-----------------------------------------------------------------------\n#\n# Copyright (C) 2000, 2001 by Autonomous Zone"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/bsddb/dbutils.py",
    "chars": 2964,
    "preview": "#------------------------------------------------------------------------\n#\n# Copyright (C) 2000 Autonomous Zone Industr"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/cProfile.py",
    "chars": 6515,
    "preview": "#! /usr/bin/env python\n\n\"\"\"Python interface for the 'lsprof' profiler.\n   Compatible with the 'profile' module.\n\"\"\"\n\n__a"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/calendar.py",
    "chars": 23305,
    "preview": "\"\"\"Calendar printing functions\n\nNote when comparing these calendars to the ones printed by cal(1): By\ndefault, these cal"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/cgi.py",
    "chars": 34826,
    "preview": "#! /usr/local/bin/python\n\n# NOTE: the above \"/usr/local/bin/python\" is NOT a mistake.  It is\n# intentionally NOT \"/usr/b"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/cgitb.py",
    "chars": 12180,
    "preview": "\"\"\"More comprehensive traceback formatting for Python scripts.\n\nTo enable this module, do:\n\n    import cgitb; cgitb.enab"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/chunk.py",
    "chars": 5372,
    "preview": "\"\"\"Simple class to read IFF chunks.\n\nAn IFF chunk (used in formats such as AIFF, TIFF, RMFF (RealMedia File\nFormat)) has"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/cmd.py",
    "chars": 15026,
    "preview": "\"\"\"A generic class to build line-oriented command interpreters.\n\nInterpreters constructed with this class obey the follo"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/code.py",
    "chars": 10189,
    "preview": "\"\"\"Utilities needed to emulate Python's interactive interpreter.\n\n\"\"\"\n\n# Inspired by similar code by Jeff Epler and Fred"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/codecs.py",
    "chars": 35266,
    "preview": "\"\"\" codecs -- Python Codec Registry, API and helpers.\n\n\nWritten by Marc-Andre Lemburg (mal@lemburg.com).\n\n(c) Copyright "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/codeop.py",
    "chars": 5999,
    "preview": "r\"\"\"Utilities to compile possibly incomplete Python source code.\n\nThis module provides two interfaces, broadly similar t"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/collections.py",
    "chars": 26009,
    "preview": "__all__ = ['Counter', 'deque', 'defaultdict', 'namedtuple', 'OrderedDict']\n# For bootstrapping reasons, the collection A"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/colorsys.py",
    "chars": 3691,
    "preview": "\"\"\"Conversion functions between RGB and other color systems.\n\nThis modules provides two functions for each color system "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/commands.py",
    "chars": 2545,
    "preview": "\"\"\"Execute shell commands via os.popen() and return status, output.\n\nInterface summary:\n\n       import commands\n\n       "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/compileall.py",
    "chars": 7763,
    "preview": "\"\"\"Module/script to byte-compile all .py files to .pyc (or .pyo) files.\n\nWhen called as a script with arguments, this co"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/compiler/__init__.py",
    "chars": 1023,
    "preview": "\"\"\"Package for parsing and compiling Python source code\n\nThere are several functions defined at the top level that are i"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/compiler/ast.py",
    "chars": 37508,
    "preview": "\"\"\"Python abstract syntax node definitions\n\nThis file is automatically generated by Tools/compiler/astgen.py\n\"\"\"\nfrom co"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/compiler/consts.py",
    "chars": 468,
    "preview": "# operation flags\nOP_ASSIGN = 'OP_ASSIGN'\nOP_DELETE = 'OP_DELETE'\nOP_APPLY = 'OP_APPLY'\n\nSC_LOCAL = 1\nSC_GLOBAL_IMPLICIT"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/compiler/future.py",
    "chars": 1893,
    "preview": "\"\"\"Parser for future statements\n\n\"\"\"\n\nfrom compiler import ast, walk\n\ndef is_future(stmt):\n    \"\"\"Return true if stateme"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/compiler/misc.py",
    "chars": 1794,
    "preview": "\ndef flatten(tup):\n    elts = []\n    for elt in tup:\n        if isinstance(elt, tuple):\n            elts = elts + flatte"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/compiler/pyassem.py",
    "chars": 24260,
    "preview": "\"\"\"A flow graph representation for Python bytecode\"\"\"\n\nimport dis\nimport types\nimport sys\n\nfrom compiler import misc\nfro"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/compiler/pycodegen.py",
    "chars": 47809,
    "preview": "import imp\nimport os\nimport marshal\nimport struct\nimport sys\nfrom cStringIO import StringIO\n\nfrom compiler import ast, p"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/compiler/symbols.py",
    "chars": 14489,
    "preview": "\"\"\"Module symbol-table generator\"\"\"\n\nfrom compiler import ast\nfrom compiler.consts import SC_LOCAL, SC_GLOBAL_IMPLICIT, "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/compiler/syntax.py",
    "chars": 1444,
    "preview": "\"\"\"Check for errs in the AST.\n\nThe Python parser does not catch all syntax errors.  Others, like\nassignments with invali"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/compiler/transformer.py",
    "chars": 53108,
    "preview": "\"\"\"Parse tree transformation module.\n\nTransforms Python source code into an abstract syntax tree (AST)\ndefined in the as"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/compiler/visitor.py",
    "chars": 3896,
    "preview": "from compiler import ast\n\n# XXX should probably rename ASTVisitor to ASTWalker\n# XXX can it be made even more generic?\n\n"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/contextlib.py",
    "chars": 4424,
    "preview": "\"\"\"Utilities for with-statement contexts.  See PEP 343.\"\"\"\n\nimport sys\nfrom functools import wraps\nfrom warnings import "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/cookielib.py",
    "chars": 64449,
    "preview": "r\"\"\"HTTP cookie handling for web clients.\n\nThis module has (now fairly distant) origins in Gisle Aas' Perl module\nHTTP::"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/copy.py",
    "chars": 11519,
    "preview": "\"\"\"Generic (shallow and deep) copying operations.\n\nInterface summary:\n\n        import copy\n\n        x = copy.copy(y)    "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/copy_reg.py",
    "chars": 6800,
    "preview": "\"\"\"Helper to provide extensibility for pickle/cPickle.\n\nThis is only useful to add pickle support for extension types de"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/csv.py",
    "chars": 16387,
    "preview": "\n\"\"\"\ncsv.py - read/write/investigate CSV files\n\"\"\"\n\nimport re\nfrom functools import reduce\nfrom _csv import Error, __ver"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/ctypes/__init__.py",
    "chars": 17585,
    "preview": "######################################################################\n#  This file should be kept compatible with Pytho"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/ctypes/_endian.py",
    "chars": 2212,
    "preview": "######################################################################\n#  This file should be kept compatible with Pytho"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/ctypes/macholib/__init__.py",
    "chars": 367,
    "preview": "######################################################################\n#  This file should be kept compatible with Pytho"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/ctypes/macholib/dyld.py",
    "chars": 5341,
    "preview": "######################################################################\n#  This file should be kept compatible with Pytho"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/ctypes/macholib/dylib.py",
    "chars": 2041,
    "preview": "######################################################################\n#  This file should be kept compatible with Pytho"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/ctypes/macholib/framework.py",
    "chars": 2414,
    "preview": "######################################################################\n#  This file should be kept compatible with Pytho"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/ctypes/util.py",
    "chars": 9067,
    "preview": "######################################################################\n#  This file should be kept compatible with Pytho"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/ctypes/wintypes.py",
    "chars": 5349,
    "preview": "######################################################################\n#  This file should be kept compatible with Pytho"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/curses/__init__.py",
    "chars": 1817,
    "preview": "\"\"\"curses\n\nThe main package for curses support for Python.  Normally used by importing\nthe package, and perhaps a partic"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/curses/ascii.py",
    "chars": 2607,
    "preview": "\"\"\"Constants and membership tests for ASCII characters\"\"\"\n\nNUL     = 0x00  # ^@\nSOH     = 0x01  # ^A\nSTX     = 0x02  # ^"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/curses/has_key.py",
    "chars": 5627,
    "preview": "\n#\n# Emulation of has_key() function for platforms that don't use ncurses\n#\n\nimport _curses\n\n# Table mapping curses keys"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/curses/panel.py",
    "chars": 110,
    "preview": "\"\"\"curses.panel\n\nModule for using panels with curses.\n\"\"\"\n\n__revision__ = \"$Id$\"\n\nfrom _curses_panel import *\n"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/curses/textpad.py",
    "chars": 7338,
    "preview": "\"\"\"Simple textbox editing widget with Emacs-like keybindings.\"\"\"\n\nimport curses\nimport curses.ascii\n\ndef rectangle(win, "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/curses/wrapper.py",
    "chars": 1681,
    "preview": "\"\"\"curses.wrapper\n\nContains one function, wrapper(), which runs another function which\nshould be the rest of your curses"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/dbhash.py",
    "chars": 498,
    "preview": "\"\"\"Provide a (g)dbm-compatible interface to bsddb.hashopen.\"\"\"\n\nimport sys\nimport warnings\nwarnings.warnpy3k(\"in 3.x, th"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/decimal.py",
    "chars": 220995,
    "preview": "# Copyright (c) 2004 Python Software Foundation.\n# All rights reserved.\n\n# Written by Eric Price <eprice at tjhsst.edu>\n"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/difflib.py",
    "chars": 82344,
    "preview": "#! /usr/bin/env python\n\n\"\"\"\nModule difflib -- helpers for computing deltas between objects.\n\nFunction get_close_matches("
  },
  {
    "path": "tests/pythons/win32-py27/Lib/dircache.py",
    "chars": 1126,
    "preview": "\"\"\"Read and cache directory listings.\n\nThe listdir() routine returns a sorted list of the files in a directory,\nusing a "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/dis.py",
    "chars": 6499,
    "preview": "\"\"\"Disassembler of Python byte code into mnemonics.\"\"\"\n\nimport sys\nimport types\n\nfrom opcode import *\nfrom opcode import"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/__init__.py",
    "chars": 337,
    "preview": "\"\"\"distutils\n\nThe main package for the Python Module Distribution Utilities.  Normally\nused from a setup script as\n\n   f"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/archive_util.py",
    "chars": 7822,
    "preview": "\"\"\"distutils.archive_util\n\nUtility functions for creating archive files (tarballs, zip files,\nthat sort of thing).\"\"\"\n\n_"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/bcppcompiler.py",
    "chars": 14941,
    "preview": "\"\"\"distutils.bcppcompiler\n\nContains BorlandCCompiler, an implementation of the abstract CCompiler class\nfor the Borland "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/ccompiler.py",
    "chars": 46633,
    "preview": "\"\"\"distutils.ccompiler\n\nContains CCompiler, an abstract base class that defines the interface\nfor the Distutils compiler"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/cmd.py",
    "chars": 19270,
    "preview": "\"\"\"distutils.cmd\n\nProvides the Command class, the base class for the command classes\nin the distutils.command package.\n\""
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/command/__init__.py",
    "chars": 822,
    "preview": "\"\"\"distutils.command\n\nPackage containing implementation of all the standard Distutils\ncommands.\"\"\"\n\n__revision__ = \"$Id$"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/command/bdist.py",
    "chars": 5596,
    "preview": "\"\"\"distutils.command.bdist\n\nImplements the Distutils 'bdist' command (create a built [binary]\ndistribution).\"\"\"\n\n__revis"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/command/bdist_dumb.py",
    "chars": 5195,
    "preview": "\"\"\"distutils.command.bdist_dumb\n\nImplements the Distutils 'bdist_dumb' command (create a \"dumb\" built\ndistribution -- i."
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/command/bdist_msi.py",
    "chars": 35190,
    "preview": "# -*- coding: iso-8859-1 -*-\n# Copyright (C) 2005, 2006 Martin von Lwis\n# Licensed to PSF under a Contributor Agreement."
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/command/bdist_rpm.py",
    "chars": 20997,
    "preview": "\"\"\"distutils.command.bdist_rpm\n\nImplements the Distutils 'bdist_rpm' command (create RPM source and binary\ndistributions"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/command/bdist_wininst.py",
    "chars": 14997,
    "preview": "\"\"\"distutils.command.bdist_wininst\n\nImplements the Distutils 'bdist_wininst' command: create a windows installer\nexe-pro"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/command/build.py",
    "chars": 5437,
    "preview": "\"\"\"distutils.command.build\n\nImplements the Distutils 'build' command.\"\"\"\n\n__revision__ = \"$Id$\"\n\nimport sys, os\n\nfrom di"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/command/build_clib.py",
    "chars": 8131,
    "preview": "\"\"\"distutils.command.build_clib\n\nImplements the Distutils 'build_clib' command, to build a C/C++ library\nthat is include"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/command/build_ext.py",
    "chars": 32119,
    "preview": "\"\"\"distutils.command.build_ext\n\nImplements the Distutils 'build_ext' command, for building extension\nmodules (currently "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/command/build_py.py",
    "chars": 16299,
    "preview": "\"\"\"distutils.command.build_py\n\nImplements the Distutils 'build_py' command.\"\"\"\n\n__revision__ = \"$Id$\"\n\nimport os\nimport "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/command/build_scripts.py",
    "chars": 4598,
    "preview": "\"\"\"distutils.command.build_scripts\n\nImplements the Distutils 'build_scripts' command.\"\"\"\n\n__revision__ = \"$Id$\"\n\nimport "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/command/check.py",
    "chars": 5557,
    "preview": "\"\"\"distutils.command.check\n\nImplements the Distutils 'check' command.\n\"\"\"\n__revision__ = \"$Id$\"\n\nfrom distutils.core imp"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/command/clean.py",
    "chars": 2814,
    "preview": "\"\"\"distutils.command.clean\n\nImplements the Distutils 'clean' command.\"\"\"\n\n# contributed by Bastian Kleineidam <calvin@cs"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/command/config.py",
    "chars": 13130,
    "preview": "\"\"\"distutils.command.config\n\nImplements the Distutils 'config' command, a (mostly) empty command class\nthat exists mainl"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/command/install.py",
    "chars": 26260,
    "preview": "\"\"\"distutils.command.install\n\nImplements the Distutils 'install' command.\"\"\"\n\nfrom distutils import log\n\n# This module s"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/command/install_data.py",
    "chars": 2845,
    "preview": "\"\"\"distutils.command.install_data\n\nImplements the Distutils 'install_data' command, for installing\nplatform-independent "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/command/install_egg_info.py",
    "chars": 2587,
    "preview": "\"\"\"distutils.command.install_egg_info\n\nImplements the Distutils 'install_egg_info' command, for installing\na package's P"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/command/install_headers.py",
    "chars": 1346,
    "preview": "\"\"\"distutils.command.install_headers\n\nImplements the Distutils 'install_headers' command, to install C/C++ header\nfiles "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/command/install_lib.py",
    "chars": 8338,
    "preview": "\"\"\"distutils.command.install_lib\n\nImplements the Distutils 'install_lib' command\n(install all Python modules).\"\"\"\n\n__rev"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/command/install_scripts.py",
    "chars": 2068,
    "preview": "\"\"\"distutils.command.install_scripts\n\nImplements the Distutils 'install_scripts' command, for installing\nPython scripts."
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/command/register.py",
    "chars": 11839,
    "preview": "\"\"\"distutils.command.register\n\nImplements the Distutils 'register' command (register with the repository).\n\"\"\"\n\n# create"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/command/sdist.py",
    "chars": 18557,
    "preview": "\"\"\"distutils.command.sdist\n\nImplements the Distutils 'sdist' command (create a source distribution).\"\"\"\n\n__revision__ = "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/command/upload.py",
    "chars": 7002,
    "preview": "\"\"\"distutils.command.upload\n\nImplements the Distutils 'upload' subcommand (upload package to PyPI).\"\"\"\nimport os\nimport "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/config.py",
    "chars": 4130,
    "preview": "\"\"\"distutils.pypirc\n\nProvides the PyPIRCCommand class, the base class for the command classes\nthat uses .pypirc in the d"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/core.py",
    "chars": 9093,
    "preview": "\"\"\"distutils.core\n\nThe only module that needs to be imported to use the Distutils; provides\nthe 'setup' function (which "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/cygwinccompiler.py",
    "chars": 17732,
    "preview": "\"\"\"distutils.cygwinccompiler\n\nProvides the CygwinCCompiler class, a subclass of UnixCCompiler that\nhandles the Cygwin po"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/debug.py",
    "chars": 162,
    "preview": "import os\n\n__revision__ = \"$Id$\"\n\n# If DISTUTILS_DEBUG is anything other than the empty string, we run in\n# debug mode.\n"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/dep_util.py",
    "chars": 3509,
    "preview": "\"\"\"distutils.dep_util\n\nUtility functions for simple, timestamp-based dependency of files\nand groups of files; also, func"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/dir_util.py",
    "chars": 7968,
    "preview": "\"\"\"distutils.dir_util\n\nUtility functions for manipulating directories and directory trees.\"\"\"\n\n__revision__ = \"$Id$\"\n\nim"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/dist.py",
    "chars": 50049,
    "preview": "\"\"\"distutils.dist\n\nProvides the Distribution class, which represents the module distribution\nbeing built/installed/distr"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/emxccompiler.py",
    "chars": 11931,
    "preview": "\"\"\"distutils.emxccompiler\n\nProvides the EMXCCompiler class, a subclass of UnixCCompiler that\nhandles the EMX port of the"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/errors.py",
    "chars": 3494,
    "preview": "\"\"\"distutils.errors\n\nProvides exceptions used by the Distutils modules.  Note that Distutils\nmodules may raise standard "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/extension.py",
    "chars": 10904,
    "preview": "\"\"\"distutils.extension\n\nProvides the Extension class, used to describe C/C++ extension\nmodules in setup scripts.\"\"\"\n\n__r"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/fancy_getopt.py",
    "chars": 17948,
    "preview": "\"\"\"distutils.fancy_getopt\n\nWrapper around the standard getopt module that provides the following\nadditional features:\n  "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/file_util.py",
    "chars": 7795,
    "preview": "\"\"\"distutils.file_util\n\nUtility functions for operating on single files.\n\"\"\"\n\n__revision__ = \"$Id$\"\n\nimport os\nfrom dist"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/filelist.py",
    "chars": 12689,
    "preview": "\"\"\"distutils.filelist\n\nProvides the FileList class, used for poking about the filesystem\nand building lists of files.\n\"\""
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/log.py",
    "chars": 1686,
    "preview": "\"\"\"A simple log mechanism styled after PEP 282.\"\"\"\n\n# The class here is styled after PEP 282 so that it could later be\n#"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/msvc9compiler.py",
    "chars": 31018,
    "preview": "\"\"\"distutils.msvc9compiler\n\nContains MSVCCompiler, an implementation of the abstract CCompiler class\nfor the Microsoft V"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/msvccompiler.py",
    "chars": 23637,
    "preview": "\"\"\"distutils.msvccompiler\n\nContains MSVCCompiler, an implementation of the abstract CCompiler class\nfor the Microsoft Vi"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/spawn.py",
    "chars": 7790,
    "preview": "\"\"\"distutils.spawn\n\nProvides the 'spawn()' function, a front-end to various platform-\nspecific functions for launching a"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/sysconfig.py",
    "chars": 17038,
    "preview": "\"\"\"Provide access to Python's configuration information.  The specific\nconfiguration variables available depend heavily "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/text_file.py",
    "chars": 12410,
    "preview": "\"\"\"text_file\n\nprovides the TextFile class, which gives an interface to text files\nthat (optionally) takes care of stripp"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/unixccompiler.py",
    "chars": 12314,
    "preview": "\"\"\"distutils.unixccompiler\n\nContains the UnixCCompiler class, a subclass of CCompiler that handles\nthe \"typical\" Unix-st"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/util.py",
    "chars": 18723,
    "preview": "\"\"\"distutils.util\n\nMiscellaneous utility functions -- anything that doesn't fit into\none of the other *util.py modules.\n"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/version.py",
    "chars": 11433,
    "preview": "#\n# distutils/version.py\n#\n# Implements multiple version numbering conventions for the\n# Python Module Distribution Util"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/distutils/versionpredicate.py",
    "chars": 5095,
    "preview": "\"\"\"Module for parsing and testing package version predicate strings.\n\"\"\"\nimport re\nimport distutils.version\nimport opera"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/doctest.py",
    "chars": 104460,
    "preview": "# Module doctest.\n# Released to the public domain 16-Jan-2001, by Tim Peters (tim@python.org).\n# Major enhancements and "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/dumbdbm.py",
    "chars": 8820,
    "preview": "\"\"\"A dumb and slow but simple dbm clone.\n\nFor database spam, spam.dir contains the index (a text file),\nspam.bak *may* c"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/dummy_thread.py",
    "chars": 4418,
    "preview": "\"\"\"Drop-in replacement for the thread module.\n\nMeant to be used as a brain-dead substitute so that threaded code does\nno"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/dummy_threading.py",
    "chars": 2804,
    "preview": "\"\"\"Faux ``threading`` version using ``dummy_thread`` instead of ``thread``.\n\nThe module ``_dummy_threading`` is added to"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/email/__init__.py",
    "chars": 2856,
    "preview": "# Copyright (C) 2001-2006 Python Software Foundation\n# Author: Barry Warsaw\n# Contact: email-sig@python.org\n\n\"\"\"A packag"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/email/_parseaddr.py",
    "chars": 15733,
    "preview": "# Copyright (C) 2002-2007 Python Software Foundation\n# Contact: email-sig@python.org\n\n\"\"\"Email address parsing code.\n\nLi"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/email/base64mime.py",
    "chars": 5794,
    "preview": "# Copyright (C) 2002-2006 Python Software Foundation\n# Author: Ben Gertzfield\n# Contact: email-sig@python.org\n\n\"\"\"Base64"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/email/charset.py",
    "chars": 16044,
    "preview": "# Copyright (C) 2001-2006 Python Software Foundation\n# Author: Ben Gertzfield, Barry Warsaw\n# Contact: email-sig@python."
  },
  {
    "path": "tests/pythons/win32-py27/Lib/email/encoders.py",
    "chars": 2015,
    "preview": "# Copyright (C) 2001-2006 Python Software Foundation\n# Author: Barry Warsaw\n# Contact: email-sig@python.org\n\n\"\"\"Encoding"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/email/errors.py",
    "chars": 1628,
    "preview": "# Copyright (C) 2001-2006 Python Software Foundation\n# Author: Barry Warsaw\n# Contact: email-sig@python.org\n\n\"\"\"email pa"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/email/feedparser.py",
    "chars": 20606,
    "preview": "# Copyright (C) 2004-2006 Python Software Foundation\n# Authors: Baxter, Wouters and Warsaw\n# Contact: email-sig@python.o"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/email/generator.py",
    "chars": 14228,
    "preview": "# Copyright (C) 2001-2010 Python Software Foundation\n# Contact: email-sig@python.org\n\n\"\"\"Classes to generate plain text "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/email/header.py",
    "chars": 22243,
    "preview": "# Copyright (C) 2002-2006 Python Software Foundation\n# Author: Ben Gertzfield, Barry Warsaw\n# Contact: email-sig@python."
  },
  {
    "path": "tests/pythons/win32-py27/Lib/email/iterators.py",
    "chars": 2202,
    "preview": "# Copyright (C) 2001-2006 Python Software Foundation\n# Author: Barry Warsaw\n# Contact: email-sig@python.org\n\n\"\"\"Various "
  },
  {
    "path": "tests/pythons/win32-py27/Lib/email/message.py",
    "chars": 30720,
    "preview": "# Copyright (C) 2001-2006 Python Software Foundation\n# Author: Barry Warsaw\n# Contact: email-sig@python.org\n\n\"\"\"Basic me"
  },
  {
    "path": "tests/pythons/win32-py27/Lib/email/mime/__init__.py",
    "chars": 0,
    "preview": ""
  }
]

// ... and 5559 more files (download for full content)

About this extraction

This page contains the full source code of the nwcell/psycopg2-windows GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 5759 files (76.3 MB), approximately 20.3M tokens, and a symbol index with 83552 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!