| @@ -0,0 +1,78 @@ | ||
| #!/home/raphael/Documentos/Spatial_DB/final_project/dependencies/bin/python | ||
|
|
||
| import sys | ||
| import getopt | ||
| import sysconfig | ||
|
|
||
| valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags', | ||
| 'ldflags', 'help'] | ||
|
|
||
| if sys.version_info >= (3, 2): | ||
| valid_opts.insert(-1, 'extension-suffix') | ||
| valid_opts.append('abiflags') | ||
| if sys.version_info >= (3, 3): | ||
| valid_opts.append('configdir') | ||
|
|
||
|
|
||
| def exit_with_usage(code=1): | ||
| sys.stderr.write("Usage: {0} [{1}]\n".format( | ||
| sys.argv[0], '|'.join('--'+opt for opt in valid_opts))) | ||
| sys.exit(code) | ||
|
|
||
| try: | ||
| opts, args = getopt.getopt(sys.argv[1:], '', valid_opts) | ||
| except getopt.error: | ||
| exit_with_usage() | ||
|
|
||
| if not opts: | ||
| exit_with_usage() | ||
|
|
||
| pyver = sysconfig.get_config_var('VERSION') | ||
| getvar = sysconfig.get_config_var | ||
|
|
||
| opt_flags = [flag for (flag, val) in opts] | ||
|
|
||
| if '--help' in opt_flags: | ||
| exit_with_usage(code=0) | ||
|
|
||
| for opt in opt_flags: | ||
| if opt == '--prefix': | ||
| print(sysconfig.get_config_var('prefix')) | ||
|
|
||
| elif opt == '--exec-prefix': | ||
| print(sysconfig.get_config_var('exec_prefix')) | ||
|
|
||
| elif opt in ('--includes', '--cflags'): | ||
| flags = ['-I' + sysconfig.get_path('include'), | ||
| '-I' + sysconfig.get_path('platinclude')] | ||
| if opt == '--cflags': | ||
| flags.extend(getvar('CFLAGS').split()) | ||
| print(' '.join(flags)) | ||
|
|
||
| elif opt in ('--libs', '--ldflags'): | ||
| abiflags = getattr(sys, 'abiflags', '') | ||
| libs = ['-lpython' + pyver + abiflags] | ||
| libs += getvar('LIBS').split() | ||
| libs += getvar('SYSLIBS').split() | ||
| # add the prefix/lib/pythonX.Y/config dir, but only if there is no | ||
| # shared library in prefix/lib/. | ||
| if opt == '--ldflags': | ||
| if not getvar('Py_ENABLE_SHARED'): | ||
| libs.insert(0, '-L' + getvar('LIBPL')) | ||
| if not getvar('PYTHONFRAMEWORK'): | ||
| libs.extend(getvar('LINKFORSHARED').split()) | ||
| print(' '.join(libs)) | ||
|
|
||
| elif opt == '--extension-suffix': | ||
| ext_suffix = sysconfig.get_config_var('EXT_SUFFIX') | ||
| if ext_suffix is None: | ||
| ext_suffix = sysconfig.get_config_var('SO') | ||
| print(ext_suffix) | ||
|
|
||
| elif opt == '--abiflags': | ||
| if not getattr(sys, 'abiflags', None): | ||
| exit_with_usage() | ||
| print(sys.abiflags) | ||
|
|
||
| elif opt == '--configdir': | ||
| print(sysconfig.get_config_var('LIBPL')) |
| @@ -0,0 +1 @@ | ||
| python3 |
| @@ -0,0 +1,11 @@ | ||
| #!/home/raphael/Documentos/Spatial_DB/final_project/dependencies/bin/python3 | ||
|
|
||
| # -*- coding: utf-8 -*- | ||
| import re | ||
| import sys | ||
|
|
||
| from tensorflow.python.tools.saved_model_cli import main | ||
|
|
||
| if __name__ == '__main__': | ||
| sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) | ||
| sys.exit(main()) |
| @@ -0,0 +1,11 @@ | ||
| #!/home/raphael/Documentos/Spatial_DB/final_project/dependencies/bin/python3 | ||
|
|
||
| # -*- coding: utf-8 -*- | ||
| import re | ||
| import sys | ||
|
|
||
| from tensorboard.main import main | ||
|
|
||
| if __name__ == '__main__': | ||
| sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) | ||
| sys.exit(main()) |
| @@ -0,0 +1,11 @@ | ||
| #!/home/raphael/Documentos/Spatial_DB/final_project/dependencies/bin/python3 | ||
|
|
||
| # -*- coding: utf-8 -*- | ||
| import re | ||
| import sys | ||
|
|
||
| from wheel.tool import main | ||
|
|
||
| if __name__ == '__main__': | ||
| sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) | ||
| sys.exit(main()) |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/__future__.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/_bootlocale.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/_collections_abc.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/_dummy_thread.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/_weakrefset.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/abc.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/base64.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/bisect.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/codecs.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/collections |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/config-3.4m-x86_64-linux-gnu |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/copy.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/copyreg.py |
| @@ -0,0 +1,101 @@ | ||
| import os | ||
| import sys | ||
| import warnings | ||
| import imp | ||
| import opcode # opcode is not a virtualenv module, so we can use it to find the stdlib | ||
| # Important! To work on pypy, this must be a module that resides in the | ||
| # lib-python/modified-x.y.z directory | ||
|
|
||
| dirname = os.path.dirname | ||
|
|
||
| distutils_path = os.path.join(os.path.dirname(opcode.__file__), 'distutils') | ||
| if os.path.normpath(distutils_path) == os.path.dirname(os.path.normpath(__file__)): | ||
| warnings.warn( | ||
| "The virtualenv distutils package at %s appears to be in the same location as the system distutils?") | ||
| else: | ||
| __path__.insert(0, distutils_path) | ||
| real_distutils = imp.load_module("_virtualenv_distutils", None, distutils_path, ('', '', imp.PKG_DIRECTORY)) | ||
| # Copy the relevant attributes | ||
| try: | ||
| __revision__ = real_distutils.__revision__ | ||
| except AttributeError: | ||
| pass | ||
| __version__ = real_distutils.__version__ | ||
|
|
||
| from distutils import dist, sysconfig | ||
|
|
||
| try: | ||
| basestring | ||
| except NameError: | ||
| basestring = str | ||
|
|
||
| ## patch build_ext (distutils doesn't know how to get the libs directory | ||
| ## path on windows - it hardcodes the paths around the patched sys.prefix) | ||
|
|
||
| if sys.platform == 'win32': | ||
| from distutils.command.build_ext import build_ext as old_build_ext | ||
| class build_ext(old_build_ext): | ||
| def finalize_options (self): | ||
| if self.library_dirs is None: | ||
| self.library_dirs = [] | ||
| elif isinstance(self.library_dirs, basestring): | ||
| self.library_dirs = self.library_dirs.split(os.pathsep) | ||
|
|
||
| self.library_dirs.insert(0, os.path.join(sys.real_prefix, "Libs")) | ||
| old_build_ext.finalize_options(self) | ||
|
|
||
| from distutils.command import build_ext as build_ext_module | ||
| build_ext_module.build_ext = build_ext | ||
|
|
||
| ## distutils.dist patches: | ||
|
|
||
| old_find_config_files = dist.Distribution.find_config_files | ||
| def find_config_files(self): | ||
| found = old_find_config_files(self) | ||
| system_distutils = os.path.join(distutils_path, 'distutils.cfg') | ||
| #if os.path.exists(system_distutils): | ||
| # found.insert(0, system_distutils) | ||
| # What to call the per-user config file | ||
| if os.name == 'posix': | ||
| user_filename = ".pydistutils.cfg" | ||
| else: | ||
| user_filename = "pydistutils.cfg" | ||
| user_filename = os.path.join(sys.prefix, user_filename) | ||
| if os.path.isfile(user_filename): | ||
| for item in list(found): | ||
| if item.endswith('pydistutils.cfg'): | ||
| found.remove(item) | ||
| found.append(user_filename) | ||
| return found | ||
| dist.Distribution.find_config_files = find_config_files | ||
|
|
||
| ## distutils.sysconfig patches: | ||
|
|
||
| old_get_python_inc = sysconfig.get_python_inc | ||
| def sysconfig_get_python_inc(plat_specific=0, prefix=None): | ||
| if prefix is None: | ||
| prefix = sys.real_prefix | ||
| return old_get_python_inc(plat_specific, prefix) | ||
| sysconfig_get_python_inc.__doc__ = old_get_python_inc.__doc__ | ||
| sysconfig.get_python_inc = sysconfig_get_python_inc | ||
|
|
||
| old_get_python_lib = sysconfig.get_python_lib | ||
| def sysconfig_get_python_lib(plat_specific=0, standard_lib=0, prefix=None): | ||
| if standard_lib and prefix is None: | ||
| prefix = sys.real_prefix | ||
| return old_get_python_lib(plat_specific, standard_lib, prefix) | ||
| sysconfig_get_python_lib.__doc__ = old_get_python_lib.__doc__ | ||
| sysconfig.get_python_lib = sysconfig_get_python_lib | ||
|
|
||
| old_get_config_vars = sysconfig.get_config_vars | ||
| def sysconfig_get_config_vars(*args): | ||
| real_vars = old_get_config_vars(*args) | ||
| if sys.platform == 'win32': | ||
| lib_dir = os.path.join(sys.real_prefix, "libs") | ||
| if isinstance(real_vars, dict) and 'LIBDIR' not in real_vars: | ||
| real_vars['LIBDIR'] = lib_dir # asked for all | ||
| elif isinstance(real_vars, list) and 'LIBDIR' in args: | ||
| real_vars = real_vars + [lib_dir] # asked for list | ||
| return real_vars | ||
| sysconfig_get_config_vars.__doc__ = old_get_config_vars.__doc__ | ||
| sysconfig.get_config_vars = sysconfig_get_config_vars |
| @@ -0,0 +1,6 @@ | ||
| # This is a config file local to this virtualenv installation | ||
| # You may include options that will be used by all distutils commands, | ||
| # and by easy_install. For instance: | ||
| # | ||
| # [easy_install] | ||
| # find_links = http://mylocalsite |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/encodings |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/fnmatch.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/functools.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/genericpath.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/hashlib.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/heapq.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/hmac.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/imp.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/importlib |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/io.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/keyword.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/lib-dynload |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/linecache.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/locale.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/ntpath.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/operator.py |
| @@ -0,0 +1 @@ | ||
| /usr |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/os.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/plat-x86_64-linux-gnu |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/posixpath.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/random.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/re.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/reprlib.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/rlcompleter.py |
| @@ -0,0 +1 @@ | ||
| /usr/lib/python3.4/shutil.py |
| @@ -0,0 +1,3 @@ | ||
| UNKNOWN | ||
|
|
||
|
|
| @@ -0,0 +1 @@ | ||
| pip |
| @@ -0,0 +1,40 @@ | ||
| Metadata-Version: 2.0 | ||
| Name: Keras | ||
| Version: 2.1.2 | ||
| Summary: Deep Learning for Python | ||
| Home-page: https://github.com/fchollet/keras | ||
| Author: Francois Chollet | ||
| Author-email: francois.chollet@gmail.com | ||
| License: MIT | ||
| Download-URL: https://github.com/fchollet/keras/tarball/2.1.2 | ||
| Description-Content-Type: UNKNOWN | ||
| Platform: UNKNOWN | ||
| Classifier: Development Status :: 5 - Production/Stable | ||
| Classifier: Intended Audience :: Developers | ||
| Classifier: Intended Audience :: Education | ||
| Classifier: Intended Audience :: Science/Research | ||
| Classifier: License :: OSI Approved :: MIT License | ||
| Classifier: Programming Language :: Python :: 2 | ||
| Classifier: Programming Language :: Python :: 2.7 | ||
| Classifier: Programming Language :: Python :: 3 | ||
| Classifier: Programming Language :: Python :: 3.6 | ||
| Classifier: Topic :: Software Development :: Libraries | ||
| Classifier: Topic :: Software Development :: Libraries :: Python Modules | ||
| Requires-Dist: numpy (>=1.9.1) | ||
| Requires-Dist: scipy (>=0.14) | ||
| Requires-Dist: six (>=1.9.0) | ||
| Requires-Dist: pyyaml | ||
| Provides-Extra: h5py | ||
| Requires-Dist: h5py; extra == 'h5py' | ||
| Provides-Extra: tests | ||
| Requires-Dist: pytest; extra == 'tests' | ||
| Requires-Dist: pytest-pep8; extra == 'tests' | ||
| Requires-Dist: pytest-xdist; extra == 'tests' | ||
| Requires-Dist: pytest-cov; extra == 'tests' | ||
| Requires-Dist: pandas; extra == 'tests' | ||
| Provides-Extra: visualize | ||
| Requires-Dist: pydot (>=1.2.0); extra == 'visualize' | ||
|
|
||
| UNKNOWN | ||
|
|
||
|
|
| @@ -0,0 +1,149 @@ | ||
| Keras-2.1.2.dist-info/DESCRIPTION.rst,sha256=OCTuuN6LcWulhHS3d5rfjdsQtW22n7HENFRh6jC6ego,10 | ||
| Keras-2.1.2.dist-info/METADATA,sha256=aW7I5vjnLVWUAclJkjcyR1fRR_4AwnW0IVCw9iJLLeQ,1386 | ||
| Keras-2.1.2.dist-info/RECORD,, | ||
| Keras-2.1.2.dist-info/WHEEL,sha256=kdsN-5OJAZIiHN-iO4Rhl82KyS0bDWf4uBwMbkNafr8,110 | ||
| Keras-2.1.2.dist-info/metadata.json,sha256=-WAg33EXHB00z4s1abzpOtNrjEYdvpIS8TiXSu5mJqI,1341 | ||
| Keras-2.1.2.dist-info/top_level.txt,sha256=ptcw_-QuGZ4ZDjMdwi_Z0clZm8QAqFdvzzFnDEOTs9o,6 | ||
| keras/__init__.py,sha256=IsN-Mc5fTjIaODQZLNUGzyqRXsM1EDvBQDPBqnROg9E,605 | ||
| keras/activations.py,sha256=gXjkxYHhIgFXGl6GDKnRghroauNeNccLJLjhCacuVFk,2712 | ||
| keras/callbacks.py,sha256=2Pw8pMMBmr7RsDto2_NVcHRXCpl2SluttIOZJqHQZNk,40856 | ||
| keras/constraints.py,sha256=sLD9Xi-nVAnQAf6tS0FRzN_CmRga5nRytAGqJDmK-h4,6052 | ||
| keras/initializers.py,sha256=H0q-KlBPL2AEz79dTA9FwhOcgwZMzGtwdO8mu2OFxMU,15758 | ||
| keras/losses.py,sha256=JAhg4kjLOCnb-XWnt1PkldohgPYDdr4206ajlPt7_eA,3653 | ||
| keras/metrics.py,sha256=v3h67-sjDGHJUIRYxQmN15wSHmuCiKcb94h1BCw-sr4,2294 | ||
| keras/models.py,sha256=c7cYLliesZXJY7iEoZIKBYM9S7oPNxLFXqpq5AqILSw,67976 | ||
| keras/objectives.py,sha256=ck4Iw_cAo6AbKrOPBLBLFnSiVmICvhAbm9Ax-FTyBPM,138 | ||
| keras/optimizers.py,sha256=6bc97X57vuRG5Z8SWoWgeUDAoq-nND3MhlzsfvPqCKQ,26976 | ||
| keras/regularizers.py,sha256=TJ3qrfNsXBkVhIStDESz2jf4WtkJxHBBsQSqGemrHno,2034 | ||
| keras/applications/__init__.py,sha256=YFwKtBspOtA9kqIcF_U3Fj_qnDV2iqYEyoLxynYbe_8,234 | ||
| keras/applications/imagenet_utils.py,sha256=MTm2Do-7xsdKNGjZvKUyLvhnBXl0QTBjFZQ_0SCpoIc,9027 | ||
| keras/applications/inception_resnet_v2.py,sha256=id4yT9H1GASc34Ro6IxU4Po_5SMK8iQEYxMZyzOw2lg,15784 | ||
| keras/applications/inception_v3.py,sha256=p01-S4E0l0wC599Y5ih1MbPrpRafrTe2NHt8akAbpY0,14952 | ||
| keras/applications/mobilenet.py,sha256=sdzC-ESFKpIe0BNK1Skm0MDZh4z1fWZhDhjm_X009dY,29180 | ||
| keras/applications/resnet50.py,sha256=71rQln7fmfJbp_chJwaqHuE_qi6VUgYParXhXC4RDcM,11776 | ||
| keras/applications/vgg16.py,sha256=ZHhhKFIjTaybLptQCKnmGusoYGyizsedLvtRtPQBN0o,8689 | ||
| keras/applications/vgg19.py,sha256=nvBqlaAgpM6B6M9C_U0J1R1qA1BTGXaeI1X4pkrnwSk,8951 | ||
| keras/applications/xception.py,sha256=UDTTnb6dDXHrHljvZWg3gC-PnjOQ5BqK46aK5dTJ9mU,12279 | ||
| keras/backend/__init__.py,sha256=Kc-HhAdI07dwtbnwd-pnRWxe5LeaTV918yojzwhCykA,3021 | ||
| keras/backend/cntk_backend.py,sha256=8QKd_IrZTIeMBRgdkCAOjUWReUCQOxpQN39DjEOT-pw,77485 | ||
| keras/backend/common.py,sha256=BzUeIRWYMWgpr0dzZbrCYlaa56tD0Vk56UYb08inwRA,4186 | ||
| keras/backend/tensorflow_backend.py,sha256=u8SOowPN1lN9Qr1yhQiPgzIWQeIZP-u6Eipme0lZzu8,124359 | ||
| keras/backend/theano_backend.py,sha256=OUqHzo9BcC4JNhXCMhI_XkueMAqRb7pOK94PZP95BTI,84025 | ||
| keras/datasets/__init__.py,sha256=5TieabOPRk6yBgnZ03YbuoOO5jT9YD-8HLJZRV-ZRBQ,203 | ||
| keras/datasets/boston_housing.py,sha256=0lcSrW_Jf2FtTXh-BnE5icVAYv4laePXOtr74hBkvYk,1259 | ||
| keras/datasets/cifar.py,sha256=3dp4Zzqo5fYcJpJfaFkhiiXJY9LZXnYo3xw7wETFCJA,808 | ||
| keras/datasets/cifar10.py,sha256=io-3_1fpjHKSjmHUndVUxyIM4n49xy_ri0LNoaeYOsY,1223 | ||
| keras/datasets/cifar100.py,sha256=iqgcFS30fVpbIupexj5b0cKloy2bAOkbedFlb0uC9Ow,1267 | ||
| keras/datasets/fashion_mnist.py,sha256=V-trfeaOOylIImSWpjueAMSbFyCRjh4NrVpnlXecsT4,1257 | ||
| keras/datasets/imdb.py,sha256=zOjJhcHUS1xSb0yU79x3pM_itCPiKtBnRCuSMIxYRFU,4334 | ||
| keras/datasets/mnist.py,sha256=H22qdC6GKgi9xEw9mJ9BS17204i7LYsCHjryik2zehE,686 | ||
| keras/datasets/reuters.py,sha256=Qk8ZSaRQc-WNM8xngF1lsRmghjtvqShnhfBy0kPIjzM,3841 | ||
| keras/engine/__init__.py,sha256=ukuX6twIBAmKspaMcKH_MiKxbpfZNFOMu9Z7VyeeY_Q,277 | ||
| keras/engine/topology.py,sha256=ySZdu7BxRW2QLarSRXkhqeS2t99aWZm4AFQjmxCR9-4,133019 | ||
| keras/engine/training.py,sha256=0EPWE-kP_p6kmttAlLUxaWNg5M6vUaEzYqLO2yeN4zo,112966 | ||
| keras/layers/__init__.py,sha256=qtQtV57wGsFx6c-cIjdFsqbkFXdMbl7LPd0kK0AuYzs,1615 | ||
| keras/layers/advanced_activations.py,sha256=qM_f4tFRhbnN8S8MSamHqdrqBJqk0y4EVuzJZYW4rww,7298 | ||
| keras/layers/convolutional.py,sha256=OG0e0BtSSqGzWovUouoMBsnbmf7to54i4jRJE7F5ii0,94662 | ||
| keras/layers/convolutional_recurrent.py,sha256=cHOlIIQoHNOFKS0lz8tXfDebAkX7VLul7IN_G1LDjcY,26593 | ||
| keras/layers/core.py,sha256=XvL1CxacUG6_uptXD8rKYIL9fAJEgCVl7cb7mU0s8Tc,34645 | ||
| keras/layers/cudnn_recurrent.py,sha256=9Unpz94qceBwRJ30cArqHIaa3YY03NKTogPSyQl1mLc,22775 | ||
| keras/layers/embeddings.py,sha256=psXKBBRX4oN0LFzYLbhfjZbz-QFgFb7wbuq9j7CN4EA,6326 | ||
| keras/layers/local.py,sha256=t18lMZvnPTPEC8RW9Q5jQPiBceHG-VpNuwi6pbIfp9w,18505 | ||
| keras/layers/merge.py,sha256=YVNv7i5zWe76yjHlmqo1n_d-IaL42UqRAn44ON17oNU,23190 | ||
| keras/layers/noise.py,sha256=BiLk8l4sOx9FjfkH5yRyKnoQrDA4M-oL6jam7s79-1c,5754 | ||
| keras/layers/normalization.py,sha256=ZGdl2JJoT3Vxi93Fr9grQiTMHHWtW-OQRvpVuDAfm7g,9276 | ||
| keras/layers/pooling.py,sha256=BvW_5wpUONhDVAbc4B4GUQSQLZntlLjdtJeEPs4PwWs,26982 | ||
| keras/layers/recurrent.py,sha256=I8ZorIZ8a4MQx_FYk5mBUhvWtlNMUWgn055xwmm6Adg,91022 | ||
| keras/layers/wrappers.py,sha256=cgVYyyGvrGBFiSHamg1KDN4bZb86rw4nLAg4MwxMnoA,13542 | ||
| keras/legacy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 | ||
| keras/legacy/interfaces.py,sha256=k2YUTavlxNmsOaeEivvODpRc3nXc3ZydPslRzKPu09w,29587 | ||
| keras/legacy/layers.py,sha256=6wmdujXp76hUzbaZkehgpVxXPnQlfviaL83UsrVw_tY,49792 | ||
| keras/legacy/models.py,sha256=JBm_38VF9DpuPJF42pkN4nR4hcPoh5P2avRJjI_Dx1s,851 | ||
| keras/preprocessing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 | ||
| keras/preprocessing/image.py,sha256=ezf4vQ8zYkX-YB-Sh0V0rgG6RpotUY5FOvMqiUqGAmw,47440 | ||
| keras/preprocessing/sequence.py,sha256=jv_mbxtj5ReiInmI8YK1c4ccq6uiytw57kC_Nv-r9sM,7852 | ||
| keras/preprocessing/text.py,sha256=EuGmGUVQw1wIGeRNBhiafu0PuxPsDhfuVU94YkSSGWc,12002 | ||
| keras/utils/__init__.py,sha256=ExbefaWXUFZDHj7tsftGbLbDhWPe_Kt2kntSsP-yFIk,889 | ||
| keras/utils/conv_utils.py,sha256=uEGWaiXRQaEg3X9NDfZTqogw0s-aipgtLq0rd4xh67Q,5142 | ||
| keras/utils/data_utils.py,sha256=zs2f7oZTAOBGN62sGIQPPCZiy00S9BhAw-Vx6dlvncc,25050 | ||
| keras/utils/generic_utils.py,sha256=H9E_1gEqVBmYT6d_gfvYMSG73YGNF6XjohqTP5s5a08,14674 | ||
| keras/utils/io_utils.py,sha256=42jwGXSezg2vvWyahgze0PG-SNFVVSbmurjUKeq4STU,4507 | ||
| keras/utils/layer_utils.py,sha256=7Popizl4yEj9037FFiHENgJp1La8jbPwQa53c9ycg2c,8558 | ||
| keras/utils/np_utils.py,sha256=hu40uMuA-uCs8sh3721MQtFbQGWdzN6GVvytKenMo3M,1373 | ||
| keras/utils/test_utils.py,sha256=QAV-BiGjRp079WSLKNgYLWTuJVqGHVBy78T4rwvqiq0,5795 | ||
| keras/utils/training_utils.py,sha256=g4PzofZBnDJ1Goj7iXTQrjpQMtEGafsPArF7alU7jIs,6807 | ||
| keras/utils/vis_utils.py,sha256=O7yKn_90nlolkRxuD6UpOIrPq0eYUo9ySNdodNky1sY,4754 | ||
| keras/wrappers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 | ||
| keras/wrappers/scikit_learn.py,sha256=xel3_syYFCjkmw_Cc8r6-HeuVWYbeEbP66hfNy_gTdw,12746 | ||
| Keras-2.1.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 | ||
| keras/applications/__pycache__/vgg16.cpython-34.pyc,, | ||
| keras/legacy/__pycache__/interfaces.cpython-34.pyc,, | ||
| keras/layers/__pycache__/noise.cpython-34.pyc,, | ||
| keras/layers/__pycache__/merge.cpython-34.pyc,, | ||
| keras/legacy/__pycache__/layers.cpython-34.pyc,, | ||
| keras/datasets/__pycache__/imdb.cpython-34.pyc,, | ||
| keras/utils/__pycache__/io_utils.cpython-34.pyc,, | ||
| keras/__pycache__/callbacks.cpython-34.pyc,, | ||
| keras/backend/__pycache__/theano_backend.cpython-34.pyc,, | ||
| keras/datasets/__pycache__/__init__.cpython-34.pyc,, | ||
| keras/layers/__pycache__/convolutional_recurrent.cpython-34.pyc,, | ||
| keras/__pycache__/objectives.cpython-34.pyc,, | ||
| keras/utils/__pycache__/layer_utils.cpython-34.pyc,, | ||
| keras/preprocessing/__pycache__/sequence.cpython-34.pyc,, | ||
| keras/utils/__pycache__/conv_utils.cpython-34.pyc,, | ||
| keras/__pycache__/constraints.cpython-34.pyc,, | ||
| keras/utils/__pycache__/np_utils.cpython-34.pyc,, | ||
| keras/wrappers/__pycache__/__init__.cpython-34.pyc,, | ||
| keras/__pycache__/regularizers.cpython-34.pyc,, | ||
| keras/utils/__pycache__/training_utils.cpython-34.pyc,, | ||
| keras/legacy/__pycache__/models.cpython-34.pyc,, | ||
| keras/engine/__pycache__/__init__.cpython-34.pyc,, | ||
| keras/datasets/__pycache__/reuters.cpython-34.pyc,, | ||
| keras/wrappers/__pycache__/scikit_learn.cpython-34.pyc,, | ||
| keras/utils/__pycache__/generic_utils.cpython-34.pyc,, | ||
| keras/utils/__pycache__/__init__.cpython-34.pyc,, | ||
| keras/applications/__pycache__/imagenet_utils.cpython-34.pyc,, | ||
| keras/datasets/__pycache__/boston_housing.cpython-34.pyc,, | ||
| keras/layers/__pycache__/wrappers.cpython-34.pyc,, | ||
| keras/backend/__pycache__/__init__.cpython-34.pyc,, | ||
| keras/applications/__pycache__/xception.cpython-34.pyc,, | ||
| keras/__pycache__/optimizers.cpython-34.pyc,, | ||
| keras/datasets/__pycache__/cifar100.cpython-34.pyc,, | ||
| keras/backend/__pycache__/tensorflow_backend.cpython-34.pyc,, | ||
| keras/__pycache__/__init__.cpython-34.pyc,, | ||
| keras/backend/__pycache__/common.cpython-34.pyc,, | ||
| keras/__pycache__/models.cpython-34.pyc,, | ||
| keras/layers/__pycache__/local.cpython-34.pyc,, | ||
| keras/datasets/__pycache__/cifar10.cpython-34.pyc,, | ||
| keras/layers/__pycache__/cudnn_recurrent.cpython-34.pyc,, | ||
| keras/engine/__pycache__/training.cpython-34.pyc,, | ||
| keras/backend/__pycache__/cntk_backend.cpython-34.pyc,, | ||
| keras/applications/__pycache__/inception_resnet_v2.cpython-34.pyc,, | ||
| keras/datasets/__pycache__/cifar.cpython-34.pyc,, | ||
| keras/layers/__pycache__/pooling.cpython-34.pyc,, | ||
| keras/applications/__pycache__/inception_v3.cpython-34.pyc,, | ||
| keras/utils/__pycache__/vis_utils.cpython-34.pyc,, | ||
| keras/layers/__pycache__/core.cpython-34.pyc,, | ||
| keras/__pycache__/activations.cpython-34.pyc,, | ||
| keras/applications/__pycache__/__init__.cpython-34.pyc,, | ||
| keras/utils/__pycache__/test_utils.cpython-34.pyc,, | ||
| keras/preprocessing/__pycache__/__init__.cpython-34.pyc,, | ||
| keras/layers/__pycache__/convolutional.cpython-34.pyc,, | ||
| keras/layers/__pycache__/__init__.cpython-34.pyc,, | ||
| keras/datasets/__pycache__/fashion_mnist.cpython-34.pyc,, | ||
| keras/datasets/__pycache__/mnist.cpython-34.pyc,, | ||
| keras/preprocessing/__pycache__/image.cpython-34.pyc,, | ||
| keras/applications/__pycache__/resnet50.cpython-34.pyc,, | ||
| keras/preprocessing/__pycache__/text.cpython-34.pyc,, | ||
| keras/layers/__pycache__/recurrent.cpython-34.pyc,, | ||
| keras/layers/__pycache__/normalization.cpython-34.pyc,, | ||
| keras/utils/__pycache__/data_utils.cpython-34.pyc,, | ||
| keras/__pycache__/metrics.cpython-34.pyc,, | ||
| keras/engine/__pycache__/topology.cpython-34.pyc,, | ||
| keras/applications/__pycache__/vgg19.cpython-34.pyc,, | ||
| keras/__pycache__/initializers.cpython-34.pyc,, | ||
| keras/layers/__pycache__/advanced_activations.cpython-34.pyc,, | ||
| keras/layers/__pycache__/embeddings.cpython-34.pyc,, | ||
| keras/__pycache__/losses.cpython-34.pyc,, | ||
| keras/legacy/__pycache__/__init__.cpython-34.pyc,, | ||
| keras/applications/__pycache__/mobilenet.cpython-34.pyc,, |
| @@ -0,0 +1,6 @@ | ||
| Wheel-Version: 1.0 | ||
| Generator: bdist_wheel (0.30.0) | ||
| Root-Is-Purelib: true | ||
| Tag: py2-none-any | ||
| Tag: py3-none-any | ||
|
|
| @@ -0,0 +1 @@ | ||
| {"classifiers": ["Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules"], "description_content_type": "UNKNOWN", "download_url": "https://github.com/fchollet/keras/tarball/2.1.2", "extensions": {"python.details": {"contacts": [{"email": "francois.chollet@gmail.com", "name": "Francois Chollet", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst"}, "project_urls": {"Home": "https://github.com/fchollet/keras"}}}, "extras": ["h5py", "tests", "visualize"], "generator": "bdist_wheel (0.30.0)", "license": "MIT", "metadata_version": "2.0", "name": "Keras", "run_requires": [{"extra": "h5py", "requires": ["h5py"]}, {"requires": ["numpy (>=1.9.1)", "pyyaml", "scipy (>=0.14)", "six (>=1.9.0)"]}, {"extra": "tests", "requires": ["pandas", "pytest-cov", "pytest-pep8", "pytest-xdist", "pytest"]}, {"extra": "visualize", "requires": ["pydot (>=1.2.0)"]}], "summary": "Deep Learning for Python", "version": "2.1.2"} |
| @@ -0,0 +1 @@ | ||
| keras |
| @@ -0,0 +1,21 @@ | ||
|
|
||
| This is a Python implementation of John Gruber's Markdown_. | ||
| It is almost completely compliant with the reference implementation, | ||
| though there are a few known issues. See Features_ for information | ||
| on what exactly is supported and what is not. Additional features are | ||
| supported by the `Available Extensions`_. | ||
|
|
||
| .. _Markdown: http://daringfireball.net/projects/markdown/ | ||
| .. _Features: https://pythonhosted.org/Markdown/index.html#Features | ||
| .. _`Available Extensions`: https://pythonhosted.org/Markdown/extensions/index.html | ||
|
|
||
| Support | ||
| ======= | ||
|
|
||
| You may ask for help and discuss various other issues on the | ||
| `mailing list`_ and report bugs on the `bug tracker`_. | ||
|
|
||
| .. _`mailing list`: http://lists.sourceforge.net/lists/listinfo/python-markdown-discuss | ||
| .. _`bug tracker`: http://github.com/Python-Markdown/markdown/issues | ||
|
|
||
|
|
| @@ -0,0 +1 @@ | ||
| pip |
| @@ -0,0 +1,50 @@ | ||
| Metadata-Version: 2.0 | ||
| Name: Markdown | ||
| Version: 2.6.9 | ||
| Summary: Python implementation of Markdown. | ||
| Home-page: https://pythonhosted.org/Markdown/ | ||
| Author: Waylan Limberg | ||
| Author-email: waylan.limberg@icloud.com | ||
| License: BSD License | ||
| Download-URL: http://pypi.python.org/packages/source/M/Markdown/Markdown-2.6.9.tar.gz | ||
| Description-Content-Type: UNKNOWN | ||
| Platform: UNKNOWN | ||
| Classifier: Development Status :: 5 - Production/Stable | ||
| Classifier: License :: OSI Approved :: BSD License | ||
| Classifier: Operating System :: OS Independent | ||
| Classifier: Programming Language :: Python | ||
| Classifier: Programming Language :: Python :: 2 | ||
| Classifier: Programming Language :: Python :: 2.7 | ||
| Classifier: Programming Language :: Python :: 3 | ||
| Classifier: Programming Language :: Python :: 3.2 | ||
| Classifier: Programming Language :: Python :: 3.3 | ||
| Classifier: Programming Language :: Python :: 3.4 | ||
| Classifier: Topic :: Communications :: Email :: Filters | ||
| Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content :: CGI Tools/Libraries | ||
| Classifier: Topic :: Internet :: WWW/HTTP :: Site Management | ||
| Classifier: Topic :: Software Development :: Documentation | ||
| Classifier: Topic :: Software Development :: Libraries :: Python Modules | ||
| Classifier: Topic :: Text Processing :: Filters | ||
| Classifier: Topic :: Text Processing :: Markup :: HTML | ||
|
|
||
|
|
||
| This is a Python implementation of John Gruber's Markdown_. | ||
| It is almost completely compliant with the reference implementation, | ||
| though there are a few known issues. See Features_ for information | ||
| on what exactly is supported and what is not. Additional features are | ||
| supported by the `Available Extensions`_. | ||
|
|
||
| .. _Markdown: http://daringfireball.net/projects/markdown/ | ||
| .. _Features: https://pythonhosted.org/Markdown/index.html#Features | ||
| .. _`Available Extensions`: https://pythonhosted.org/Markdown/extensions/index.html | ||
|
|
||
| Support | ||
| ======= | ||
|
|
||
| You may ask for help and discuss various other issues on the | ||
| `mailing list`_ and report bugs on the `bug tracker`_. | ||
|
|
||
| .. _`mailing list`: http://lists.sourceforge.net/lists/listinfo/python-markdown-discuss | ||
| .. _`bug tracker`: http://github.com/Python-Markdown/markdown/issues | ||
|
|
||
|
|
| @@ -0,0 +1,68 @@ | ||
| ../../../bin/markdown_py,sha256=JjImDngCKbxAAoY1h6PtYKpV8K4CROd4Q9HlTZenMeE,1004 | ||
| Markdown-2.6.9.dist-info/DESCRIPTION.rst,sha256=JU-qpLqkHE9cXsUCtFoLnCC0Y6iUIWYe3cMvBXD01v8,815 | ||
| Markdown-2.6.9.dist-info/METADATA,sha256=Ok9x-ZnM_BxgghakrVs_m3M159hkZsSjpoI9it7ldsI,2109 | ||
| Markdown-2.6.9.dist-info/RECORD,, | ||
| Markdown-2.6.9.dist-info/WHEEL,sha256=B6dvBbvWLNtx8cOVxA1epfvN4U6kjHSAwmQ1a0B6tUI,93 | ||
| Markdown-2.6.9.dist-info/metadata.json,sha256=4SF4lmvCbD5JaN3NoYMcaXlcsvHcC_S12DBtekP9ADU,1354 | ||
| Markdown-2.6.9.dist-info/top_level.txt,sha256=IAxs8x618RXoH1uCqeLLxXsDefJvE_mIibr_M4sOlyk,9 | ||
| markdown/__init__.py,sha256=X3xNnQFzCg1qyv2KTbZ4gP_jEFa746L3C0uxt4HCr88,20802 | ||
| markdown/__main__.py,sha256=l2C_ES-2c8I2NRO4uslH_RoftcuusGmFz454umxxgb0,5137 | ||
| markdown/__version__.py,sha256=ROkzy_0F4oznCM-TXMAFcssK41N4KAB3xIhMqtDbpW4,880 | ||
| markdown/blockparser.py,sha256=CM37G8uNufHkk-369PERAcJ4Bt2f9snW6F7nbHydaAA,3517 | ||
| markdown/blockprocessors.py,sha256=mwwRigR8mv-ZJ3KXCpiOP4uXC_JW13o9CWWR6XABcIo,23009 | ||
| markdown/inlinepatterns.py,sha256=vEEO7NWDEodV-qLBWvu3eJVMJWWbBB0oOqW4_7ZIl1g,17129 | ||
| markdown/odict.py,sha256=UQ-4Ba0BrBe6Ro3Rpcf93y8ewPzLmEUvxYiWxowV7Yk,6044 | ||
| markdown/postprocessors.py,sha256=5DdsbNGyEW4-oT8q65sLfZ-plclF6sGOmM0t6HF6hZU,3615 | ||
| markdown/preprocessors.py,sha256=SbkLOFs6zJw5FsygZsS6FxagX_FFDRcwa7lDA7x8lb0,14647 | ||
| markdown/serializers.py,sha256=NZN9fU_xE18BsWjTNO2S90GMT_DddyL4p9lk-v3D5Pc,9820 | ||
| markdown/treeprocessors.py,sha256=G_D7uweKZYJgDLSVtfRWgcixWGXCdOA5jYUG1ka1P08,13032 | ||
| markdown/util.py,sha256=nykI1V7qBMKlYGiYnyRcqu3cbRNuDoXcE9rdTCd53is,5646 | ||
| markdown/__pycache__/__init__.cpython-34.pyc,sha256=0CNMYtnMnD4XhTI19Zv62km0ppBg4ld3OCgxSfbzQeM,15616 | ||
| markdown/__pycache__/__version__.cpython-34.pyc,sha256=H2SDXRqDt6iiqGxpNI2_qmBqDpz3NpWPxBvFZmo_TXI,796 | ||
| markdown/__pycache__/blockparser.cpython-34.pyc,sha256=SD75zPkNgiy6MMgdFhCi4BrcTwJl5DVc69bZCAkkkDs,4222 | ||
| markdown/__pycache__/blockprocessors.cpython-34.pyc,sha256=-IaXBtPaY9YdIm_JTmiofDfSopKKf73080Joo0wqZ9U,17621 | ||
| markdown/__pycache__/inlinepatterns.cpython-34.pyc,sha256=ef90pM-PBV-Bd43ZgLTRxnCxW7WkKyobKjY7UOymLwA,18202 | ||
| markdown/__pycache__/odict.cpython-34.pyc,sha256=bDW7i9vrqNozFqCoVUhNuprWdtXS2-eR-CYG-rr24EE,7451 | ||
| markdown/__pycache__/postprocessors.cpython-34.pyc,sha256=VDr8yP3ujNDk6I-TSBqjbRo4npq0e4crKCr5bQJFTXM,4639 | ||
| markdown/__pycache__/preprocessors.cpython-34.pyc,sha256=5ch4-n2iPLfrNPrbaeEvY7tGoI_Mb1gFYdwCQQhuJ-Y,10251 | ||
| markdown/__pycache__/serializers.cpython-34.pyc,sha256=Wt_8dmqhuFPOdQGuPj_BHhqlyWZVUvickH1Chrmbk6Y,5986 | ||
| markdown/__pycache__/treeprocessors.cpython-34.pyc,sha256=-aTkFR5mSD9We8YJmZvq12Yotp-MQp0u4NkIsnc1cc4,10724 | ||
| markdown/__pycache__/util.cpython-34.pyc,sha256=-L4o3AAwN1AnWolwX3m9uVnwxnt3HZfpuEjl_JPqP4Q,4754 | ||
| markdown/extensions/__init__.py,sha256=nusbN8FPR5qF3yBx30FHWhLvDKzS-7aGJ07-4BYQuyM,3850 | ||
| markdown/extensions/abbr.py,sha256=KgB7la3ooLMpgTAp6qrTzwz0b-48NWmdiBv7bBBgSm4,2738 | ||
| markdown/extensions/admonition.py,sha256=gvyFx47wknDJYL9JE_S7lbHL1FPzY2T1HgRjZLGX4bM,3163 | ||
| markdown/extensions/attr_list.py,sha256=U6HvB2B_5mDnwRfzpNkJcoePZxmjIECwQoUobONyoAQ,6267 | ||
| markdown/extensions/codehilite.py,sha256=5TdoKQN1hmS3oPtN5Xbya0TzTWyxQpBmvG0nr9_gjJE,9769 | ||
| markdown/extensions/def_list.py,sha256=IUn0aXCS33mRHdFXhEo6l9U_0ihuwUQzpyWnMkWHPI8,3750 | ||
| markdown/extensions/extra.py,sha256=Ir2myWKZD18cNER95YNuTuC-8Q3yvOzWUklXlA-9xsA,5547 | ||
| markdown/extensions/fenced_code.py,sha256=n1XlDMHqEdtTUOFbkN51v_0wQN4Z6X8-B6wtj-U1C84,4104 | ||
| markdown/extensions/footnotes.py,sha256=0UnRdyJEUrcgCpPh83CNhZBGN4yt51ueYpHyRfkiCYw,14919 | ||
| markdown/extensions/headerid.py,sha256=1hGbmIS4MkUKYGO0x297Qh3pzmz6-OOwhmhTYppGLW4,3321 | ||
| markdown/extensions/meta.py,sha256=pJegFlul2iR-gssewSFHy9qRRMbZ17nSfyuedMv33SY,2400 | ||
| markdown/extensions/nl2br.py,sha256=icyTpth-w2khHOIoorZkBr_hOTDS7_VTg2en7JwFQWE,859 | ||
| markdown/extensions/sane_lists.py,sha256=vUuRMoPtqntpugGRts_esPicto9B47-zPPHOYVNixdI,1602 | ||
| markdown/extensions/smart_strong.py,sha256=qxbMJ6b2enTMB4Zc2NC5BmkNvXdAu5ti31s8wi0u7zk,1197 | ||
| markdown/extensions/smarty.py,sha256=O3FDJt43MEAJ9iWmjCTZ74fP9naIeOmSO5KRm_BiN24,10360 | ||
| markdown/extensions/tables.py,sha256=RXICKlVaCnaIQE853EWfBt4z3lIjt6bpo_hZzpU6PrE,7852 | ||
| markdown/extensions/toc.py,sha256=MuYFuoLKl-b9DHppelyGEPrax00KnBMnnuQmBOSLBtc,11044 | ||
| markdown/extensions/wikilinks.py,sha256=gwn1jJu-9zBfVJS9H3GBqX6YTyGNUjiR3cyrsnuRb5U,2872 | ||
| markdown/extensions/__pycache__/__init__.cpython-34.pyc,sha256=oG44ffHkUHas2ayug7f8FnkHeBzfWz555waytC6LYzk,3834 | ||
| markdown/extensions/__pycache__/abbr.cpython-34.pyc,sha256=_pBC6F3Hh6Lvd2M4-ijH4a_womRtIs3Sl9jMIUJdafI,3629 | ||
| markdown/extensions/__pycache__/admonition.cpython-34.pyc,sha256=AkWudtDS3IYsS8CPXTYee0o33zO6by_gL-6aqGiKsag,3176 | ||
| markdown/extensions/__pycache__/attr_list.cpython-34.pyc,sha256=frKhIE6GPqTK016I42qVPTV9R04Q6wopLYEtTbOsOiw,5464 | ||
| markdown/extensions/__pycache__/codehilite.cpython-34.pyc,sha256=PblxYAU07azSUmfJsVECLyFF0Wr1n0R_zT12M94lQC4,8341 | ||
| markdown/extensions/__pycache__/def_list.cpython-34.pyc,sha256=5vwDgj1G-YbBW7QvkDKqIG0EO-tntHzkCYZxWO5cl4U,3895 | ||
| markdown/extensions/__pycache__/extra.cpython-34.pyc,sha256=nic4H9vFzKvEfId4hYtPtQTC3KRrYlDQ47oT3ul7MQ4,5066 | ||
| markdown/extensions/__pycache__/fenced_code.cpython-34.pyc,sha256=GvvnRoK81taT6_wwgjgkxLbZhEo7QCQVtRJOkmA5fMI,3850 | ||
| markdown/extensions/__pycache__/footnotes.cpython-34.pyc,sha256=7mEGVaIrUFCUz3ZsvPW_mecP7Bowli81Fb1AyY07ytE,13067 | ||
| markdown/extensions/__pycache__/meta.cpython-34.pyc,sha256=G0gZro6T0R4HC6t35M1C0Tcxl_Z7DOePpk4s6oS7qPE,2577 | ||
| markdown/extensions/__pycache__/smart_strong.cpython-34.pyc,sha256=fZIuigrlbtGuGgzBIC809a30LDq5yYtEA0PsTlLzSNE,1583 | ||
| markdown/extensions/__pycache__/smarty.cpython-34.pyc,sha256=WK_wp_u2V72Ji88zwvGTv7FdsmcAmQnA-WO-dE8gIuc,9403 | ||
| markdown/extensions/__pycache__/tables.cpython-34.pyc,sha256=u3-aOOahdCxTBwxvZJC3hArJuHwRlH5j-BnTvtoT7XU,6216 | ||
| markdown/extensions/__pycache__/toc.cpython-34.pyc,sha256=N7cupjgwmUcplxuu4p6TqzbWaApfe3R8Gw8aMYiT3K4,9297 | ||
| Markdown-2.6.9.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 | ||
| markdown/extensions/__pycache__/nl2br.cpython-34.pyc,, | ||
| markdown/extensions/__pycache__/sane_lists.cpython-34.pyc,, | ||
| markdown/__pycache__/__main__.cpython-34.pyc,, | ||
| markdown/extensions/__pycache__/wikilinks.cpython-34.pyc,, | ||
| markdown/extensions/__pycache__/headerid.cpython-34.pyc,, |
| @@ -0,0 +1,5 @@ | ||
| Wheel-Version: 1.0 | ||
| Generator: bdist_wheel (0.30.0) | ||
| Root-Is-Purelib: true | ||
| Tag: cp34-none-any | ||
|
|
| @@ -0,0 +1 @@ | ||
| {"classifiers": ["Development Status :: 5 - Production/Stable", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Communications :: Email :: Filters", "Topic :: Internet :: WWW/HTTP :: Dynamic Content :: CGI Tools/Libraries", "Topic :: Internet :: WWW/HTTP :: Site Management", "Topic :: Software Development :: Documentation", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Text Processing :: Filters", "Topic :: Text Processing :: Markup :: HTML"], "description_content_type": "UNKNOWN", "download_url": "http://pypi.python.org/packages/source/M/Markdown/Markdown-2.6.9.tar.gz", "extensions": {"python.details": {"contacts": [{"email": "waylan.limberg@icloud.com", "name": "Waylan Limberg", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst"}, "project_urls": {"Home": "https://pythonhosted.org/Markdown/"}}}, "generator": "bdist_wheel (0.30.0)", "license": "BSD License", "metadata_version": "2.0", "name": "Markdown", "summary": "Python implementation of Markdown.", "version": "2.6.9"} |
| @@ -0,0 +1 @@ | ||
| markdown |
| @@ -0,0 +1,12 @@ | ||
| YAML is a data serialization format designed for human readability | ||
| and interaction with scripting languages. PyYAML is a YAML parser | ||
| and emitter for Python. | ||
|
|
||
| PyYAML features a complete YAML 1.1 parser, Unicode support, pickle | ||
| support, capable extension API, and sensible error messages. PyYAML | ||
| supports standard YAML tags and provides Python-specific tags that | ||
| allow to represent an arbitrary Python object. | ||
|
|
||
| PyYAML is applicable for a broad range of tasks from complex | ||
| configuration files to object serialization and persistance. | ||
|
|
| @@ -0,0 +1 @@ | ||
| pip |
| @@ -0,0 +1,36 @@ | ||
| Metadata-Version: 2.0 | ||
| Name: PyYAML | ||
| Version: 3.12 | ||
| Summary: YAML parser and emitter for Python | ||
| Home-page: http://pyyaml.org/wiki/PyYAML | ||
| Author: Kirill Simonov | ||
| Author-email: xi@resolvent.net | ||
| License: MIT | ||
| Download-URL: http://pyyaml.org/download/pyyaml/PyYAML-3.12.tar.gz | ||
| Description-Content-Type: UNKNOWN | ||
| Platform: Any | ||
| Classifier: Development Status :: 5 - Production/Stable | ||
| Classifier: Intended Audience :: Developers | ||
| Classifier: License :: OSI Approved :: MIT License | ||
| Classifier: Operating System :: OS Independent | ||
| Classifier: Programming Language :: Python | ||
| Classifier: Programming Language :: Python :: 2 | ||
| Classifier: Programming Language :: Python :: 2.7 | ||
| Classifier: Programming Language :: Python :: 3 | ||
| Classifier: Programming Language :: Python :: 3.4 | ||
| Classifier: Programming Language :: Python :: 3.5 | ||
| Classifier: Topic :: Software Development :: Libraries :: Python Modules | ||
| Classifier: Topic :: Text Processing :: Markup | ||
|
|
||
| YAML is a data serialization format designed for human readability | ||
| and interaction with scripting languages. PyYAML is a YAML parser | ||
| and emitter for Python. | ||
|
|
||
| PyYAML features a complete YAML 1.1 parser, Unicode support, pickle | ||
| support, capable extension API, and sensible error messages. PyYAML | ||
| supports standard YAML tags and provides Python-specific tags that | ||
| allow to represent an arbitrary Python object. | ||
|
|
||
| PyYAML is applicable for a broad range of tasks from complex | ||
| configuration files to object serialization and persistance. | ||
|
|
| @@ -0,0 +1,41 @@ | ||
| PyYAML-3.12.dist-info/DESCRIPTION.rst,sha256=4nzkrOwMTYfusIfdRz4-dl_9Blan5axHPKMiVJEOV-4,534 | ||
| PyYAML-3.12.dist-info/METADATA,sha256=L_L0VRByLibwYrd3DpwgLN0QlArbxysTnCZM176pMoA,1458 | ||
| PyYAML-3.12.dist-info/RECORD,, | ||
| PyYAML-3.12.dist-info/WHEEL,sha256=AEztX7vHDtcgysb-4-5-DyIKMLIPg6NMxY9dXTRdoXQ,104 | ||
| PyYAML-3.12.dist-info/metadata.json,sha256=NeTCfZFCUNeb1PmvwFXaV62SWUN5QiC_imZPcGAlwRU,1052 | ||
| PyYAML-3.12.dist-info/top_level.txt,sha256=rpj0IVMTisAjh_1vG3Ccf9v5jpCQwAz6cD1IVU5ZdhQ,11 | ||
| yaml/__init__.py,sha256=53VZayqtIKrdWEuauzPtjPqiyQ3XydjDsD5Yo2KKbak,9607 | ||
| yaml/composer.py,sha256=rAskP6VXqfAZcZxGIQFyPwVkNZYtnmmylV4TBSn4EUk,4881 | ||
| yaml/constructor.py,sha256=SVt8piayRVwV7Pd9RDvIM60BftFrqkA35z7HWwubHkg,25554 | ||
| yaml/cyaml.py,sha256=zajOEEo_11ZJC0pko7O-mqT9JYxhXVdFIXYAHTW9COU,3294 | ||
| yaml/dumper.py,sha256=86Yz2GmUk6lk6xUKRRWZwDmvSMp3pPekmWDIarq93Iw,2723 | ||
| yaml/emitter.py,sha256=16CwscYPx2DejDyE8MqfMybsm1DnFsSUwDvSQuC-3Rc,42954 | ||
| yaml/error.py,sha256=Ah9z-toHJUbE9j-M8YpxgSRM5CgLCcwVzJgLLRF2Fxo,2533 | ||
| yaml/events.py,sha256=50_TksgQiE4up-lKo_V-nBy-tAIxkIPQxY5qDhKCeHw,2445 | ||
| yaml/loader.py,sha256=aQ71rMxcAW_oA1dt0x3hlRDdqYjzwXXfpvSFFewh9NA,1138 | ||
| yaml/nodes.py,sha256=gPKNj8pKCdh2d4gr3gIYINnPOaOxGhJAUiYhGRnPE84,1440 | ||
| yaml/parser.py,sha256=ilWp5vvgoHFGzvOZDItFoGjD6D42nhlZrZyjAwa0oJo,25495 | ||
| yaml/reader.py,sha256=r22-ns0QvKAqGopu3IgczoK5VLGA7oZ3XN9sBESkb04,6854 | ||
| yaml/representer.py,sha256=ZmBbegM-yVa3NBBTo-LqF-O2IcgGIT5LlDweB8SDgAE,14097 | ||
| yaml/resolver.py,sha256=DJCjpQr8YQCEYYjKEYqTl0GrsZil2H4aFOI9b0Oe-U4,8970 | ||
| yaml/scanner.py,sha256=6LVPebouAqunvxw3tFVMa34pDgPsDKg2JuaaeNeTLtk,51695 | ||
| yaml/serializer.py,sha256=ChuFgmhU01hj4xgI8GaKv6vfM2Bujwa9i7d2FAHj7cA,4165 | ||
| yaml/tokens.py,sha256=lTQIzSVw8Mg9wv459-TjiOQe6wVziqaRlqX2_89rp54,2573 | ||
| PyYAML-3.12.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 | ||
| yaml/__pycache__/scanner.cpython-34.pyc,, | ||
| yaml/__pycache__/constructor.cpython-34.pyc,, | ||
| yaml/__pycache__/__init__.cpython-34.pyc,, | ||
| yaml/__pycache__/serializer.cpython-34.pyc,, | ||
| yaml/__pycache__/error.cpython-34.pyc,, | ||
| yaml/__pycache__/loader.cpython-34.pyc,, | ||
| yaml/__pycache__/reader.cpython-34.pyc,, | ||
| yaml/__pycache__/nodes.cpython-34.pyc,, | ||
| yaml/__pycache__/cyaml.cpython-34.pyc,, | ||
| yaml/__pycache__/parser.cpython-34.pyc,, | ||
| yaml/__pycache__/representer.cpython-34.pyc,, | ||
| yaml/__pycache__/resolver.cpython-34.pyc,, | ||
| yaml/__pycache__/events.cpython-34.pyc,, | ||
| yaml/__pycache__/composer.cpython-34.pyc,, | ||
| yaml/__pycache__/dumper.cpython-34.pyc,, | ||
| yaml/__pycache__/tokens.cpython-34.pyc,, | ||
| yaml/__pycache__/emitter.cpython-34.pyc,, |
| @@ -0,0 +1,5 @@ | ||
| Wheel-Version: 1.0 | ||
| Generator: bdist_wheel (0.30.0) | ||
| Root-Is-Purelib: false | ||
| Tag: cp34-cp34m-linux_x86_64 | ||
|
|
| @@ -0,0 +1 @@ | ||
| {"classifiers": ["Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Text Processing :: Markup"], "description_content_type": "UNKNOWN", "download_url": "http://pyyaml.org/download/pyyaml/PyYAML-3.12.tar.gz", "extensions": {"python.details": {"contacts": [{"email": "xi@resolvent.net", "name": "Kirill Simonov", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst"}, "project_urls": {"Home": "http://pyyaml.org/wiki/PyYAML"}}}, "generator": "bdist_wheel (0.30.0)", "license": "MIT", "metadata_version": "2.0", "name": "PyYAML", "platform": "Any", "summary": "YAML parser and emitter for Python", "version": "3.12"} |
| @@ -0,0 +1,2 @@ | ||
| _yaml | ||
| yaml |
| @@ -0,0 +1,54 @@ | ||
| Werkzeug | ||
| ======== | ||
|
|
||
| Werkzeug started as simple collection of various utilities for WSGI | ||
| applications and has become one of the most advanced WSGI utility | ||
| modules. It includes a powerful debugger, full featured request and | ||
| response objects, HTTP utilities to handle entity tags, cache control | ||
| headers, HTTP dates, cookie handling, file uploads, a powerful URL | ||
| routing system and a bunch of community contributed addon modules. | ||
|
|
||
| Werkzeug is unicode aware and doesn't enforce a specific template | ||
| engine, database adapter or anything else. It doesn't even enforce | ||
| a specific way of handling requests and leaves all that up to the | ||
| developer. It's most useful for end user applications which should work | ||
| on as many server environments as possible (such as blogs, wikis, | ||
| bulletin boards, etc.). | ||
|
|
||
| Details and example applications are available on the | ||
| `Werkzeug website <http://werkzeug.pocoo.org/>`_. | ||
|
|
||
|
|
||
| Features | ||
| -------- | ||
|
|
||
| - unicode awareness | ||
|
|
||
| - request and response objects | ||
|
|
||
| - various utility functions for dealing with HTTP headers such as | ||
| `Accept` and `Cache-Control` headers. | ||
|
|
||
| - thread local objects with proper cleanup at request end | ||
|
|
||
| - an interactive debugger | ||
|
|
||
| - A simple WSGI server with support for threading and forking | ||
| with an automatic reloader. | ||
|
|
||
| - a flexible URL routing system with REST support. | ||
|
|
||
| - fully WSGI compatible | ||
|
|
||
|
|
||
| Development Version | ||
| ------------------- | ||
|
|
||
| The Werkzeug development version can be installed by cloning the git | ||
| repository from `github`_:: | ||
|
|
||
| git clone git@github.com:pallets/werkzeug.git | ||
|
|
||
| .. _github: http://github.com/pallets/werkzeug | ||
|
|
||
|
|
| @@ -0,0 +1 @@ | ||
| pip |
| @@ -0,0 +1,29 @@ | ||
| Copyright (c) 2014 by the Werkzeug Team, see AUTHORS for more details. | ||
|
|
||
| Redistribution and use in source and binary forms, with or without | ||
| modification, are permitted provided that the following conditions are | ||
| met: | ||
|
|
||
| * Redistributions of source code must retain the above copyright | ||
| notice, this list of conditions and the following disclaimer. | ||
|
|
||
| * Redistributions in binary form must reproduce the above | ||
| copyright notice, this list of conditions and the following | ||
| disclaimer in the documentation and/or other materials provided | ||
| with the distribution. | ||
|
|
||
| * The names of the contributors may not be used to endorse or | ||
| promote products derived from this software without specific | ||
| prior written permission. | ||
|
|
||
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||
| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||
| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||
| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||
| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| @@ -0,0 +1,83 @@ | ||
| Metadata-Version: 2.0 | ||
| Name: Werkzeug | ||
| Version: 0.12.2 | ||
| Summary: The Swiss Army knife of Python web development | ||
| Home-page: http://werkzeug.pocoo.org/ | ||
| Author: Armin Ronacher | ||
| Author-email: armin.ronacher@active-4.com | ||
| License: BSD | ||
| Platform: any | ||
| Classifier: Development Status :: 5 - Production/Stable | ||
| Classifier: Environment :: Web Environment | ||
| Classifier: Intended Audience :: Developers | ||
| Classifier: License :: OSI Approved :: BSD License | ||
| Classifier: Operating System :: OS Independent | ||
| Classifier: Programming Language :: Python | ||
| Classifier: Programming Language :: Python :: 2 | ||
| Classifier: Programming Language :: Python :: 2.6 | ||
| Classifier: Programming Language :: Python :: 2.7 | ||
| Classifier: Programming Language :: Python :: 3 | ||
| Classifier: Programming Language :: Python :: 3.3 | ||
| Classifier: Programming Language :: Python :: 3.4 | ||
| Classifier: Programming Language :: Python :: 3.5 | ||
| Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content | ||
| Classifier: Topic :: Software Development :: Libraries :: Python Modules | ||
| Provides-Extra: termcolor | ||
| Requires-Dist: termcolor; extra == 'termcolor' | ||
| Provides-Extra: watchdog | ||
| Requires-Dist: watchdog; extra == 'watchdog' | ||
|
|
||
| Werkzeug | ||
| ======== | ||
|
|
||
| Werkzeug started as simple collection of various utilities for WSGI | ||
| applications and has become one of the most advanced WSGI utility | ||
| modules. It includes a powerful debugger, full featured request and | ||
| response objects, HTTP utilities to handle entity tags, cache control | ||
| headers, HTTP dates, cookie handling, file uploads, a powerful URL | ||
| routing system and a bunch of community contributed addon modules. | ||
|
|
||
| Werkzeug is unicode aware and doesn't enforce a specific template | ||
| engine, database adapter or anything else. It doesn't even enforce | ||
| a specific way of handling requests and leaves all that up to the | ||
| developer. It's most useful for end user applications which should work | ||
| on as many server environments as possible (such as blogs, wikis, | ||
| bulletin boards, etc.). | ||
|
|
||
| Details and example applications are available on the | ||
| `Werkzeug website <http://werkzeug.pocoo.org/>`_. | ||
|
|
||
|
|
||
| Features | ||
| -------- | ||
|
|
||
| - unicode awareness | ||
|
|
||
| - request and response objects | ||
|
|
||
| - various utility functions for dealing with HTTP headers such as | ||
| `Accept` and `Cache-Control` headers. | ||
|
|
||
| - thread local objects with proper cleanup at request end | ||
|
|
||
| - an interactive debugger | ||
|
|
||
| - A simple WSGI server with support for threading and forking | ||
| with an automatic reloader. | ||
|
|
||
| - a flexible URL routing system with REST support. | ||
|
|
||
| - fully WSGI compatible | ||
|
|
||
|
|
||
| Development Version | ||
| ------------------- | ||
|
|
||
| The Werkzeug development version can be installed by cloning the git | ||
| repository from `github`_:: | ||
|
|
||
| git clone git@github.com:pallets/werkzeug.git | ||
|
|
||
| .. _github: http://github.com/pallets/werkzeug | ||
|
|
||
|
|
| @@ -0,0 +1,95 @@ | ||
| werkzeug/posixemulation.py,sha256=xEF2Bxc-vUCPkiu4IbfWVd3LW7DROYAT-ExW6THqyzw,3519 | ||
| werkzeug/security.py,sha256=Z0v0ojdo7T4FNyfIjx86BFQKwasy3ZR9euikIJDQYP8,9191 | ||
| werkzeug/__init__.py,sha256=NDY8HsYsT3dguTLu4MhuH-GpQE5XS9aKhrdfwHnzOEk,6864 | ||
| werkzeug/testapp.py,sha256=3HQRW1sHZKXuAjCvFMet4KXtQG3loYTFnvn6LWt-4zI,9396 | ||
| werkzeug/http.py,sha256=nrk-ASJzcKOuoBEz274TWA8jKt0CQSOBZuP_A0UASTA,36658 | ||
| werkzeug/routing.py,sha256=g25wg0GNfff8WcfRlc1ZxTGvz1KbVj09w2S7wxopseQ,66746 | ||
| werkzeug/utils.py,sha256=lkybtv_mq35zV1qhelvEcILTzrMUwZ9yon6E8XwapJE,22972 | ||
| werkzeug/exceptions.py,sha256=3wp95Hqj9FqV8MdikV99JRcHse_fSMn27V8tgP5Hw2c,20505 | ||
| werkzeug/_reloader.py,sha256=NkIXQCTa6b22wWLpXob_jIVUxux8LtAsfWehLkKt0iM,8816 | ||
| werkzeug/formparser.py,sha256=DxN53eOCb6i7PxqtldrF2Kv9Mx00BqW297N4t-RxkWE,21241 | ||
| werkzeug/_compat.py,sha256=8c4U9o6A_TR9nKCcTbpZNxpqCXcXDVIbFawwKM2s92c,6311 | ||
| werkzeug/datastructures.py,sha256=rq0zICISMUetS3xvUVvrhIvyue9oUzrs_NU3b83zwuQ,89066 | ||
| werkzeug/wrappers.py,sha256=wceh1RhvhIZVzKuok3XMQ5jqjYYCEYv5JqKY3Nc_oRY,82986 | ||
| werkzeug/test.py,sha256=xnabNSpty66ftZiXHcoZaYFP1E4WUNxydw5Oe8Mjhoo,34795 | ||
| werkzeug/urls.py,sha256=fSbI4Gb29_p02Zk21VAZQRN1QdOVY9CNTgpb2rbajNQ,36710 | ||
| werkzeug/script.py,sha256=Jh9OAktqjLNc_IBBUatVM7uP5LDcbxaYA8n2ObnS4bo,11666 | ||
| werkzeug/useragents.py,sha256=Ck3G977Y0Rzdk9wFcLpL0PyOrONtdK1_d2Zexb78cX4,5640 | ||
| werkzeug/local.py,sha256=QdQhWV5L8p1Y1CJ1CDStwxaUs24SuN5aebHwjVD08C8,14553 | ||
| werkzeug/serving.py,sha256=aAS3EgiD-VjemsYfSf1yqdjaGEfpB4I3M4PKlLotJLo,29069 | ||
| werkzeug/filesystem.py,sha256=hHWeWo_gqLMzTRfYt8-7n2wWcWUNTnDyudQDLOBEICE,2175 | ||
| werkzeug/wsgi.py,sha256=TjPo5ups3NI1RVVGdMvd3XaceqFtqlMX5X169gWWFrQ,42838 | ||
| werkzeug/_internal.py,sha256=sE2JbLnMzN9mRI1iipTYWrFAGEWaZVECqtHAiNEhqUE,13841 | ||
| werkzeug/contrib/fixers.py,sha256=gR06T-w71ur-tHQ_31kP_4jpOncPJ4Wc1dOqTvYusr8,10179 | ||
| werkzeug/contrib/limiter.py,sha256=iS8-ahPZ-JLRnmfIBzxpm7O_s3lPsiDMVWv7llAIDCI,1334 | ||
| werkzeug/contrib/__init__.py,sha256=f7PfttZhbrImqpr5Ezre8CXgwvcGUJK7zWNpO34WWrw,623 | ||
| werkzeug/contrib/testtools.py,sha256=G9xN-qeihJlhExrIZMCahvQOIDxdL9NiX874jiiHFMs,2453 | ||
| werkzeug/contrib/iterio.py,sha256=RlqDvGhz0RneTpzE8dVc-yWCUv4nkPl1jEc_EDp2fH0,10814 | ||
| werkzeug/contrib/cache.py,sha256=nyUUxsS0MTHiFmu-481y9PHd8NvWH5pzCoEX1yA0mHY,30341 | ||
| werkzeug/contrib/securecookie.py,sha256=bDsAJmslkwmXjycnPjEjWtfLBvhz0ud4z3k7tdezUVs,12174 | ||
| werkzeug/contrib/lint.py,sha256=qZlmqiWJ5tQJOEzLnPmHWA8eUEpcBIWkAb_V2RKJg4o,12558 | ||
| werkzeug/contrib/profiler.py,sha256=ISwCWvwVyGpDLRBRpLjo_qUWma6GXYBrTAco4PEQSHY,5151 | ||
| werkzeug/contrib/wrappers.py,sha256=v7OYlz7wQtDlS9fey75UiRZ1IkUWqCpzbhsLy4k14Hw,10398 | ||
| werkzeug/contrib/atom.py,sha256=qqfJcfIn2RYY-3hO3Oz0aLq9YuNubcPQ_KZcNsDwVJo,15575 | ||
| werkzeug/contrib/jsrouting.py,sha256=QTmgeDoKXvNK02KzXgx9lr3cAH6fAzpwF5bBdPNvJPs,8564 | ||
| werkzeug/contrib/sessions.py,sha256=39LVNvLbm5JWpbxM79WC2l87MJFbqeISARjwYbkJatw,12577 | ||
| werkzeug/debug/console.py,sha256=n3-dsKk1TsjnN-u4ZgmuWCU_HO0qw5IA7ttjhyyMM6I,5607 | ||
| werkzeug/debug/repr.py,sha256=bKqstDYGfECpeLerd48s_hxuqK4b6UWnjMu3d_DHO8I,9340 | ||
| werkzeug/debug/__init__.py,sha256=GTsOsjE3PqUAlsUVm2Mgc_KWA2kjjSsUz0JsM7Qu41w,17266 | ||
| werkzeug/debug/tbtools.py,sha256=rBudXCmkVdAKIcdhxANxgf09g6kQjJWW9_5bjSpr4OY,18451 | ||
| werkzeug/debug/shared/less.png,sha256=-4-kNRaXJSONVLahrQKUxMwXGm9R4OnZ9SxDGpHlIR4,191 | ||
| werkzeug/debug/shared/source.png,sha256=RoGcBTE4CyCB85GBuDGTFlAnUqxwTBiIfDqW15EpnUQ,818 | ||
| werkzeug/debug/shared/debugger.js,sha256=PKPVYuyO4SX1hkqLOwCLvmIEO5154WatFYaXE-zIfKI,6264 | ||
| werkzeug/debug/shared/style.css,sha256=IEO0PC2pWmh2aEyGCaN--txuWsRCliuhlbEhPDFwh0A,6270 | ||
| werkzeug/debug/shared/console.png,sha256=bxax6RXXlvOij_KeqvSNX0ojJf83YbnZ7my-3Gx9w2A,507 | ||
| werkzeug/debug/shared/FONT_LICENSE,sha256=LwAVEI1oYnvXiNMT9SnCH_TaLCxCpeHziDrMg0gPkAI,4673 | ||
| werkzeug/debug/shared/jquery.js,sha256=7LkWEzqTdpEfELxcZZlS6wAx5Ff13zZ83lYO2_ujj7g,95957 | ||
| werkzeug/debug/shared/ubuntu.ttf,sha256=1eaHFyepmy4FyDvjLVzpITrGEBu_CZYY94jE0nED1c0,70220 | ||
| werkzeug/debug/shared/more.png,sha256=GngN7CioHQoV58rH6ojnkYi8c_qED2Aka5FO5UXrReY,200 | ||
| Werkzeug-0.12.2.dist-info/DESCRIPTION.rst,sha256=z9r9xqJ0fYSAn1Tz7KRBdFGDerL2y4pHWSW_72pUgTc,1591 | ||
| Werkzeug-0.12.2.dist-info/metadata.json,sha256=6taKobd3cQ5zOY5MVKlvuCJGaX7VPLaHYuRwzwwkORI,1276 | ||
| Werkzeug-0.12.2.dist-info/RECORD,, | ||
| Werkzeug-0.12.2.dist-info/top_level.txt,sha256=QRyj2VjwJoQkrwjwFIOlB8Xg3r9un0NtqVHQF-15xaw,9 | ||
| Werkzeug-0.12.2.dist-info/WHEEL,sha256=AvR0WeTpDaxT645bl5FQxUK6NPsTls2ttpcGJg3j1Xg,110 | ||
| Werkzeug-0.12.2.dist-info/LICENSE.txt,sha256=F84h8-PZAuC-Hq-_252D3yhH6mqIc-WUbXUPbfOtjXM,1532 | ||
| Werkzeug-0.12.2.dist-info/METADATA,sha256=SphYykCCskmOJK7mV1-M2T1PTOrx5K3DJ8n3E5jA298,2738 | ||
| Werkzeug-0.12.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 | ||
| werkzeug/__pycache__/__init__.cpython-34.pyc,, | ||
| werkzeug/__pycache__/serving.cpython-34.pyc,, | ||
| werkzeug/contrib/__pycache__/atom.cpython-34.pyc,, | ||
| werkzeug/contrib/__pycache__/cache.cpython-34.pyc,, | ||
| werkzeug/__pycache__/wsgi.cpython-34.pyc,, | ||
| werkzeug/__pycache__/http.cpython-34.pyc,, | ||
| werkzeug/contrib/__pycache__/iterio.cpython-34.pyc,, | ||
| werkzeug/__pycache__/formparser.cpython-34.pyc,, | ||
| werkzeug/contrib/__pycache__/__init__.cpython-34.pyc,, | ||
| werkzeug/debug/__pycache__/__init__.cpython-34.pyc,, | ||
| werkzeug/__pycache__/_internal.cpython-34.pyc,, | ||
| werkzeug/__pycache__/security.cpython-34.pyc,, | ||
| werkzeug/__pycache__/_compat.cpython-34.pyc,, | ||
| werkzeug/debug/__pycache__/console.cpython-34.pyc,, | ||
| werkzeug/contrib/__pycache__/profiler.cpython-34.pyc,, | ||
| werkzeug/debug/__pycache__/tbtools.cpython-34.pyc,, | ||
| werkzeug/__pycache__/useragents.cpython-34.pyc,, | ||
| werkzeug/contrib/__pycache__/testtools.cpython-34.pyc,, | ||
| werkzeug/__pycache__/utils.cpython-34.pyc,, | ||
| werkzeug/__pycache__/datastructures.cpython-34.pyc,, | ||
| werkzeug/__pycache__/local.cpython-34.pyc,, | ||
| werkzeug/contrib/__pycache__/jsrouting.cpython-34.pyc,, | ||
| werkzeug/__pycache__/urls.cpython-34.pyc,, | ||
| werkzeug/contrib/__pycache__/limiter.cpython-34.pyc,, | ||
| werkzeug/__pycache__/filesystem.cpython-34.pyc,, | ||
| werkzeug/debug/__pycache__/repr.cpython-34.pyc,, | ||
| werkzeug/__pycache__/posixemulation.cpython-34.pyc,, | ||
| werkzeug/contrib/__pycache__/sessions.cpython-34.pyc,, | ||
| werkzeug/contrib/__pycache__/wrappers.cpython-34.pyc,, | ||
| werkzeug/contrib/__pycache__/fixers.cpython-34.pyc,, | ||
| werkzeug/__pycache__/test.cpython-34.pyc,, | ||
| werkzeug/contrib/__pycache__/lint.cpython-34.pyc,, | ||
| werkzeug/__pycache__/wrappers.cpython-34.pyc,, | ||
| werkzeug/__pycache__/script.cpython-34.pyc,, | ||
| werkzeug/__pycache__/exceptions.cpython-34.pyc,, | ||
| werkzeug/__pycache__/routing.cpython-34.pyc,, | ||
| werkzeug/contrib/__pycache__/securecookie.cpython-34.pyc,, | ||
| werkzeug/__pycache__/testapp.cpython-34.pyc,, | ||
| werkzeug/__pycache__/_reloader.cpython-34.pyc,, |
| @@ -0,0 +1,6 @@ | ||
| Wheel-Version: 1.0 | ||
| Generator: bdist_wheel (0.24.0) | ||
| Root-Is-Purelib: true | ||
| Tag: py2-none-any | ||
| Tag: py3-none-any | ||
|
|
| @@ -0,0 +1 @@ | ||
| {"license": "BSD", "name": "Werkzeug", "metadata_version": "2.0", "generator": "bdist_wheel (0.24.0)", "summary": "The Swiss Army knife of Python web development", "platform": "any", "run_requires": [{"requires": ["watchdog"], "extra": "watchdog"}, {"requires": ["termcolor"], "extra": "termcolor"}], "version": "0.12.2", "extensions": {"python.details": {"project_urls": {"Home": "http://werkzeug.pocoo.org/"}, "document_names": {"description": "DESCRIPTION.rst", "license": "LICENSE.txt"}, "contacts": [{"role": "author", "email": "armin.ronacher@active-4.com", "name": "Armin Ronacher"}]}}, "classifiers": ["Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules"], "extras": ["termcolor", "watchdog"]} |
| @@ -0,0 +1 @@ | ||
| werkzeug |
| @@ -0,0 +1,281 @@ | ||
| ====== | ||
| Bleach | ||
| ====== | ||
|
|
||
| .. image:: https://travis-ci.org/mozilla/bleach.png?branch=master | ||
| :target: https://travis-ci.org/mozilla/bleach | ||
|
|
||
| .. image:: https://badge.fury.io/py/Bleach.svg | ||
| :target: http://badge.fury.io/py/Bleach | ||
|
|
||
| Bleach is a whitelist-based HTML sanitizing library that escapes or strips | ||
| markup and attributes. | ||
|
|
||
| Bleach can also linkify text safely, applying filters that Django's ``urlize`` | ||
| filter cannot, and optionally setting ``rel`` attributes, even on links already | ||
| in the text. | ||
|
|
||
| Bleach is intended for sanitizing text from *untrusted* sources. If you find | ||
| yourself jumping through hoops to allow your site administrators to do lots of | ||
| things, you're probably outside the use cases. Either trust those users, or | ||
| don't. | ||
|
|
||
| Because it relies on html5lib_, Bleach is as good as modern browsers at dealing | ||
| with weird, quirky HTML fragments. And *any* of Bleach's methods will fix | ||
| unbalanced or mis-nested tags. | ||
|
|
||
| The version on GitHub_ is the most up-to-date and contains the latest bug | ||
| fixes. You can find full documentation on `ReadTheDocs`_. | ||
|
|
||
| :Code: https://github.com/mozilla/bleach | ||
| :Documentation: https://bleach.readthedocs.io/ | ||
| :Issue tracker: https://github.com/mozilla/bleach/issues | ||
| :IRC: ``#bleach`` on irc.mozilla.org | ||
| :License: Apache License v2; see LICENSE file | ||
|
|
||
|
|
||
| Reporting Bugs | ||
| ============== | ||
|
|
||
| For regular bugs, please report them `in our issue tracker | ||
| <https://github.com/mozilla/bleach/issues>`_. | ||
|
|
||
| If you believe that you've found a security vulnerability, please `file a secure | ||
| bug report in our bug tracker | ||
| <https://bugzilla.mozilla.org/enter_bug.cgi?assigned_to=nobody%40mozilla.org&product=Webtools&component=Bleach-security&groups=webtools-security>`_ | ||
| or send an email to *security AT mozilla DOT org*. | ||
|
|
||
| For more information on security-related bug disclosure and the PGP key to use | ||
| for sending encrypted mail or to verify responses received from that address, | ||
| please read our wiki page at | ||
| `<https://www.mozilla.org/en-US/security/#For_Developers>`_. | ||
|
|
||
|
|
||
| Installing Bleach | ||
| ================= | ||
|
|
||
| Bleach is available on PyPI_, so you can install it with ``pip``:: | ||
|
|
||
| $ pip install bleach | ||
|
|
||
| Or with ``easy_install``:: | ||
|
|
||
| $ easy_install bleach | ||
|
|
||
| Or by cloning the repo from GitHub_:: | ||
|
|
||
| $ git clone git://github.com/mozilla/bleach.git | ||
|
|
||
| Then install it by running:: | ||
|
|
||
| $ python setup.py install | ||
|
|
||
|
|
||
| Upgrading Bleach | ||
| ================ | ||
|
|
||
| .. warning:: | ||
|
|
||
| Before doing any upgrades, read through `Bleach Changes | ||
| <https://bleach.readthedocs.io/en/latest/changes.html>`_ for backwards | ||
| incompatible changes, newer versions, etc. | ||
|
|
||
|
|
||
| Basic use | ||
| ========= | ||
|
|
||
| The simplest way to use Bleach is: | ||
|
|
||
| .. code-block:: python | ||
|
|
||
| >>> import bleach | ||
|
|
||
| >>> bleach.clean('an <script>evil()</script> example') | ||
| u'an <script>evil()</script> example' | ||
|
|
||
| >>> bleach.linkify('an http://example.com url') | ||
| u'an <a href="http://example.com" rel="nofollow">http://example.com</a> url | ||
|
|
||
|
|
||
| .. _html5lib: https://github.com/html5lib/html5lib-python | ||
| .. _GitHub: https://github.com/mozilla/bleach | ||
| .. _ReadTheDocs: https://bleach.readthedocs.io/ | ||
| .. _PyPI: http://pypi.python.org/pypi/bleach | ||
|
|
||
|
|
||
| Bleach Changes | ||
| ============== | ||
|
|
||
| Version 1.5 (November 4th, 2016) | ||
| -------------------------------- | ||
|
|
||
| **Backwards incompatible changes** | ||
|
|
||
| - clean: The list of ``ALLOWED_PROTOCOLS`` now defaults to http, https and | ||
| mailto. Previously it was a long list of protocols something like ed2k, ftp, | ||
| http, https, irc, mailto, news, gopher, nntp, telnet, webcal, xmpp, callto, | ||
| feed, urn, aim, rsync, tag, ssh, sftp, rtsp, afs, data. #149 | ||
|
|
||
| **Changes** | ||
|
|
||
| - clean: Added ``protocols`` to arguments list to let you override the list of | ||
| allowed protocols. Thank you, Andreas Malecki! #149 | ||
| - linkify: Fix a bug involving periods at the end of an email address. Thank you, | ||
| Lorenz Schori! #219 | ||
| - linkify: Fix linkification of non-ascii ports. Thank you Alexandre, Macabies! | ||
| #207 | ||
| - linkify: Fix linkify inappropriately removing node tails when dropping nodes. | ||
| #132 | ||
| - Fixed a test that failed periodically. #161 | ||
| - Switched from nose to py.test. #204 | ||
| - Add test matrix for all supported Python and html5lib versions. #230 | ||
| - Limit to html5lib ``>=0.999,!=0.9999,!=0.99999,<0.99999999`` because 0.9999 | ||
| and 0.99999 are busted. | ||
| - Add support for ``python setup.py test``. #97 | ||
|
|
||
|
|
||
| Version 1.4.3 (May 23rd, 2016) | ||
| ------------------------------ | ||
|
|
||
| **Changes** | ||
|
|
||
| - Limit to html5lib ``>=0.999,<0.99999999`` because of impending change to | ||
| sanitizer api. #195 | ||
|
|
||
|
|
||
| Version 1.4.2 (September 11, 2015) | ||
| ---------------------------------- | ||
|
|
||
| **Changes** | ||
|
|
||
| - linkify: Fix hang in linkify with ``parse_email=True``. #124 | ||
| - linkify: Fix crash in linkify when removing a link that is a first-child. #136 | ||
| - Updated TLDs. | ||
| - linkify: Don't remove exterior brackets when linkifying. #146 | ||
|
|
||
|
|
||
| Version 1.4.1 (December 15, 2014) | ||
| --------------------------------- | ||
|
|
||
| **Changes** | ||
|
|
||
| - Consistent order of attributes in output. | ||
| - Python 3.4 support. | ||
|
|
||
|
|
||
| Version 1.4 (January 12, 2014) | ||
| ------------------------------ | ||
|
|
||
| **Changes** | ||
|
|
||
| - linkify: Update linkify to use etree type Treewalker instead of simpletree. | ||
| - Updated html5lib to version ``>=0.999``. | ||
| - Update all code to be compatible with Python 3 and 2 using six. | ||
| - Switch to Apache License. | ||
|
|
||
|
|
||
| Version 1.3 | ||
| ----------- | ||
|
|
||
| - Used by Python 3-only fork. | ||
|
|
||
|
|
||
| Version 1.2.2 (May 18, 2013) | ||
| ---------------------------- | ||
|
|
||
| - Pin html5lib to version 0.95 for now due to major API break. | ||
|
|
||
| Version 1.2.1 (February 19, 2013) | ||
| --------------------------------- | ||
|
|
||
| - clean() no longer considers ``feed:`` an acceptable protocol due to | ||
| inconsistencies in browser behavior. | ||
|
|
||
|
|
||
| Version 1.2 (January 28, 2013) | ||
| ------------------------------ | ||
|
|
||
| - linkify() has changed considerably. Many keyword arguments have been | ||
| replaced with a single callbacks list. Please see the documentation | ||
| for more information. | ||
| - Bleach will no longer consider unacceptable protocols when linkifying. | ||
| - linkify() now takes a tokenizer argument that allows it to skip | ||
| sanitization. | ||
| - delinkify() is gone. | ||
| - Removed exception handling from _render. clean() and linkify() may now | ||
| throw. | ||
| - linkify() correctly ignores case for protocols and domain names. | ||
| - linkify() correctly handles markup within an <a> tag. | ||
|
|
||
|
|
||
| Version 1.1.5 | ||
| ------------- | ||
|
|
||
|
|
||
| Version 1.1.4 | ||
| ------------- | ||
|
|
||
|
|
||
| Version 1.1.3 (July 10, 2012) | ||
| ----------------------------- | ||
|
|
||
| - Fix parsing bare URLs when parse_email=True. | ||
|
|
||
|
|
||
| Version 1.1.2 (June 1, 2012) | ||
| ---------------------------- | ||
|
|
||
| - Fix hang in style attribute sanitizer. (#61) | ||
| - Allow '/' in style attribute values. | ||
|
|
||
|
|
||
| Version 1.1.1 (February 17, 2012) | ||
| --------------------------------- | ||
|
|
||
| - Fix tokenizer for html5lib 0.9.5. | ||
|
|
||
|
|
||
| Version 1.1.0 (October 24, 2011) | ||
| -------------------------------- | ||
|
|
||
| - linkify() now understands port numbers. (#38) | ||
| - Documented character encoding behavior. (#41) | ||
| - Add an optional target argument to linkify(). | ||
| - Add delinkify() method. (#45) | ||
| - Support subdomain whitelist for delinkify(). (#47, #48) | ||
|
|
||
|
|
||
| Version 1.0.4 (September 2, 2011) | ||
| --------------------------------- | ||
|
|
||
| - Switch to SemVer git tags. | ||
| - Make linkify() smarter about trailing punctuation. (#30) | ||
| - Pass exc_info to logger during rendering issues. | ||
| - Add wildcard key for attributes. (#19) | ||
| - Make linkify() use the HTMLSanitizer tokenizer. (#36) | ||
| - Fix URLs wrapped in parentheses. (#23) | ||
| - Make linkify() UTF-8 safe. (#33) | ||
|
|
||
|
|
||
| Version 1.0.3 (June 14, 2011) | ||
| ----------------------------- | ||
|
|
||
| - linkify() works with 3rd level domains. (#24) | ||
| - clean() supports vendor prefixes in style values. (#31, #32) | ||
| - Fix linkify() email escaping. | ||
|
|
||
|
|
||
| Version 1.0.2 (June 6, 2011) | ||
| ---------------------------- | ||
|
|
||
| - linkify() supports email addresses. | ||
| - clean() supports callables in attributes filter. | ||
|
|
||
|
|
||
| Version 1.0.1 (April 12, 2011) | ||
| ------------------------------ | ||
|
|
||
| - linkify() doesn't drop trailing slashes. (#21) | ||
| - linkify() won't linkify 'libgl.so.1'. (#22) | ||
|
|
||
|
|
| @@ -0,0 +1 @@ | ||
| pip |
| @@ -0,0 +1,308 @@ | ||
| Metadata-Version: 2.0 | ||
| Name: bleach | ||
| Version: 1.5.0 | ||
| Summary: An easy whitelist-based HTML-sanitizing tool. | ||
| Home-page: http://github.com/mozilla/bleach | ||
| Author: Will Kahn-Greene | ||
| Author-email: UNKNOWN | ||
| License: Apache Software License | ||
| Platform: UNKNOWN | ||
| Classifier: Development Status :: 5 - Production/Stable | ||
| Classifier: Environment :: Web Environment | ||
| Classifier: Intended Audience :: Developers | ||
| Classifier: License :: OSI Approved :: Apache Software License | ||
| Classifier: Operating System :: OS Independent | ||
| Classifier: Programming Language :: Python | ||
| Classifier: Programming Language :: Python :: 2 | ||
| Classifier: Programming Language :: Python :: 2.6 | ||
| Classifier: Programming Language :: Python :: 2.7 | ||
| Classifier: Programming Language :: Python :: 3 | ||
| Classifier: Programming Language :: Python :: 3.2 | ||
| Classifier: Programming Language :: Python :: 3.3 | ||
| Classifier: Programming Language :: Python :: 3.4 | ||
| Classifier: Programming Language :: Python :: 3.5 | ||
| Classifier: Topic :: Software Development :: Libraries :: Python Modules | ||
| Requires-Dist: six | ||
| Requires-Dist: html5lib (>=0.999,!=0.9999,!=0.99999,<0.99999999) | ||
|
|
||
| ====== | ||
| Bleach | ||
| ====== | ||
|
|
||
| .. image:: https://travis-ci.org/mozilla/bleach.png?branch=master | ||
| :target: https://travis-ci.org/mozilla/bleach | ||
|
|
||
| .. image:: https://badge.fury.io/py/Bleach.svg | ||
| :target: http://badge.fury.io/py/Bleach | ||
|
|
||
| Bleach is a whitelist-based HTML sanitizing library that escapes or strips | ||
| markup and attributes. | ||
|
|
||
| Bleach can also linkify text safely, applying filters that Django's ``urlize`` | ||
| filter cannot, and optionally setting ``rel`` attributes, even on links already | ||
| in the text. | ||
|
|
||
| Bleach is intended for sanitizing text from *untrusted* sources. If you find | ||
| yourself jumping through hoops to allow your site administrators to do lots of | ||
| things, you're probably outside the use cases. Either trust those users, or | ||
| don't. | ||
|
|
||
| Because it relies on html5lib_, Bleach is as good as modern browsers at dealing | ||
| with weird, quirky HTML fragments. And *any* of Bleach's methods will fix | ||
| unbalanced or mis-nested tags. | ||
|
|
||
| The version on GitHub_ is the most up-to-date and contains the latest bug | ||
| fixes. You can find full documentation on `ReadTheDocs`_. | ||
|
|
||
| :Code: https://github.com/mozilla/bleach | ||
| :Documentation: https://bleach.readthedocs.io/ | ||
| :Issue tracker: https://github.com/mozilla/bleach/issues | ||
| :IRC: ``#bleach`` on irc.mozilla.org | ||
| :License: Apache License v2; see LICENSE file | ||
|
|
||
|
|
||
| Reporting Bugs | ||
| ============== | ||
|
|
||
| For regular bugs, please report them `in our issue tracker | ||
| <https://github.com/mozilla/bleach/issues>`_. | ||
|
|
||
| If you believe that you've found a security vulnerability, please `file a secure | ||
| bug report in our bug tracker | ||
| <https://bugzilla.mozilla.org/enter_bug.cgi?assigned_to=nobody%40mozilla.org&product=Webtools&component=Bleach-security&groups=webtools-security>`_ | ||
| or send an email to *security AT mozilla DOT org*. | ||
|
|
||
| For more information on security-related bug disclosure and the PGP key to use | ||
| for sending encrypted mail or to verify responses received from that address, | ||
| please read our wiki page at | ||
| `<https://www.mozilla.org/en-US/security/#For_Developers>`_. | ||
|
|
||
|
|
||
| Installing Bleach | ||
| ================= | ||
|
|
||
| Bleach is available on PyPI_, so you can install it with ``pip``:: | ||
|
|
||
| $ pip install bleach | ||
|
|
||
| Or with ``easy_install``:: | ||
|
|
||
| $ easy_install bleach | ||
|
|
||
| Or by cloning the repo from GitHub_:: | ||
|
|
||
| $ git clone git://github.com/mozilla/bleach.git | ||
|
|
||
| Then install it by running:: | ||
|
|
||
| $ python setup.py install | ||
|
|
||
|
|
||
| Upgrading Bleach | ||
| ================ | ||
|
|
||
| .. warning:: | ||
|
|
||
| Before doing any upgrades, read through `Bleach Changes | ||
| <https://bleach.readthedocs.io/en/latest/changes.html>`_ for backwards | ||
| incompatible changes, newer versions, etc. | ||
|
|
||
|
|
||
| Basic use | ||
| ========= | ||
|
|
||
| The simplest way to use Bleach is: | ||
|
|
||
| .. code-block:: python | ||
|
|
||
| >>> import bleach | ||
|
|
||
| >>> bleach.clean('an <script>evil()</script> example') | ||
| u'an <script>evil()</script> example' | ||
|
|
||
| >>> bleach.linkify('an http://example.com url') | ||
| u'an <a href="http://example.com" rel="nofollow">http://example.com</a> url | ||
|
|
||
|
|
||
| .. _html5lib: https://github.com/html5lib/html5lib-python | ||
| .. _GitHub: https://github.com/mozilla/bleach | ||
| .. _ReadTheDocs: https://bleach.readthedocs.io/ | ||
| .. _PyPI: http://pypi.python.org/pypi/bleach | ||
|
|
||
|
|
||
| Bleach Changes | ||
| ============== | ||
|
|
||
| Version 1.5 (November 4th, 2016) | ||
| -------------------------------- | ||
|
|
||
| **Backwards incompatible changes** | ||
|
|
||
| - clean: The list of ``ALLOWED_PROTOCOLS`` now defaults to http, https and | ||
| mailto. Previously it was a long list of protocols something like ed2k, ftp, | ||
| http, https, irc, mailto, news, gopher, nntp, telnet, webcal, xmpp, callto, | ||
| feed, urn, aim, rsync, tag, ssh, sftp, rtsp, afs, data. #149 | ||
|
|
||
| **Changes** | ||
|
|
||
| - clean: Added ``protocols`` to arguments list to let you override the list of | ||
| allowed protocols. Thank you, Andreas Malecki! #149 | ||
| - linkify: Fix a bug involving periods at the end of an email address. Thank you, | ||
| Lorenz Schori! #219 | ||
| - linkify: Fix linkification of non-ascii ports. Thank you Alexandre, Macabies! | ||
| #207 | ||
| - linkify: Fix linkify inappropriately removing node tails when dropping nodes. | ||
| #132 | ||
| - Fixed a test that failed periodically. #161 | ||
| - Switched from nose to py.test. #204 | ||
| - Add test matrix for all supported Python and html5lib versions. #230 | ||
| - Limit to html5lib ``>=0.999,!=0.9999,!=0.99999,<0.99999999`` because 0.9999 | ||
| and 0.99999 are busted. | ||
| - Add support for ``python setup.py test``. #97 | ||
|
|
||
|
|
||
| Version 1.4.3 (May 23rd, 2016) | ||
| ------------------------------ | ||
|
|
||
| **Changes** | ||
|
|
||
| - Limit to html5lib ``>=0.999,<0.99999999`` because of impending change to | ||
| sanitizer api. #195 | ||
|
|
||
|
|
||
| Version 1.4.2 (September 11, 2015) | ||
| ---------------------------------- | ||
|
|
||
| **Changes** | ||
|
|
||
| - linkify: Fix hang in linkify with ``parse_email=True``. #124 | ||
| - linkify: Fix crash in linkify when removing a link that is a first-child. #136 | ||
| - Updated TLDs. | ||
| - linkify: Don't remove exterior brackets when linkifying. #146 | ||
|
|
||
|
|
||
| Version 1.4.1 (December 15, 2014) | ||
| --------------------------------- | ||
|
|
||
| **Changes** | ||
|
|
||
| - Consistent order of attributes in output. | ||
| - Python 3.4 support. | ||
|
|
||
|
|
||
| Version 1.4 (January 12, 2014) | ||
| ------------------------------ | ||
|
|
||
| **Changes** | ||
|
|
||
| - linkify: Update linkify to use etree type Treewalker instead of simpletree. | ||
| - Updated html5lib to version ``>=0.999``. | ||
| - Update all code to be compatible with Python 3 and 2 using six. | ||
| - Switch to Apache License. | ||
|
|
||
|
|
||
| Version 1.3 | ||
| ----------- | ||
|
|
||
| - Used by Python 3-only fork. | ||
|
|
||
|
|
||
| Version 1.2.2 (May 18, 2013) | ||
| ---------------------------- | ||
|
|
||
| - Pin html5lib to version 0.95 for now due to major API break. | ||
|
|
||
| Version 1.2.1 (February 19, 2013) | ||
| --------------------------------- | ||
|
|
||
| - clean() no longer considers ``feed:`` an acceptable protocol due to | ||
| inconsistencies in browser behavior. | ||
|
|
||
|
|
||
| Version 1.2 (January 28, 2013) | ||
| ------------------------------ | ||
|
|
||
| - linkify() has changed considerably. Many keyword arguments have been | ||
| replaced with a single callbacks list. Please see the documentation | ||
| for more information. | ||
| - Bleach will no longer consider unacceptable protocols when linkifying. | ||
| - linkify() now takes a tokenizer argument that allows it to skip | ||
| sanitization. | ||
| - delinkify() is gone. | ||
| - Removed exception handling from _render. clean() and linkify() may now | ||
| throw. | ||
| - linkify() correctly ignores case for protocols and domain names. | ||
| - linkify() correctly handles markup within an <a> tag. | ||
|
|
||
|
|
||
| Version 1.1.5 | ||
| ------------- | ||
|
|
||
|
|
||
| Version 1.1.4 | ||
| ------------- | ||
|
|
||
|
|
||
| Version 1.1.3 (July 10, 2012) | ||
| ----------------------------- | ||
|
|
||
| - Fix parsing bare URLs when parse_email=True. | ||
|
|
||
|
|
||
| Version 1.1.2 (June 1, 2012) | ||
| ---------------------------- | ||
|
|
||
| - Fix hang in style attribute sanitizer. (#61) | ||
| - Allow '/' in style attribute values. | ||
|
|
||
|
|
||
| Version 1.1.1 (February 17, 2012) | ||
| --------------------------------- | ||
|
|
||
| - Fix tokenizer for html5lib 0.9.5. | ||
|
|
||
|
|
||
| Version 1.1.0 (October 24, 2011) | ||
| -------------------------------- | ||
|
|
||
| - linkify() now understands port numbers. (#38) | ||
| - Documented character encoding behavior. (#41) | ||
| - Add an optional target argument to linkify(). | ||
| - Add delinkify() method. (#45) | ||
| - Support subdomain whitelist for delinkify(). (#47, #48) | ||
|
|
||
|
|
||
| Version 1.0.4 (September 2, 2011) | ||
| --------------------------------- | ||
|
|
||
| - Switch to SemVer git tags. | ||
| - Make linkify() smarter about trailing punctuation. (#30) | ||
| - Pass exc_info to logger during rendering issues. | ||
| - Add wildcard key for attributes. (#19) | ||
| - Make linkify() use the HTMLSanitizer tokenizer. (#36) | ||
| - Fix URLs wrapped in parentheses. (#23) | ||
| - Make linkify() UTF-8 safe. (#33) | ||
|
|
||
|
|
||
| Version 1.0.3 (June 14, 2011) | ||
| ----------------------------- | ||
|
|
||
| - linkify() works with 3rd level domains. (#24) | ||
| - clean() supports vendor prefixes in style values. (#31, #32) | ||
| - Fix linkify() email escaping. | ||
|
|
||
|
|
||
| Version 1.0.2 (June 6, 2011) | ||
| ---------------------------- | ||
|
|
||
| - linkify() supports email addresses. | ||
| - clean() supports callables in attributes filter. | ||
|
|
||
|
|
||
| Version 1.0.1 (April 12, 2011) | ||
| ------------------------------ | ||
|
|
||
| - linkify() doesn't drop trailing slashes. (#21) | ||
| - linkify() won't linkify 'libgl.so.1'. (#22) | ||
|
|
||
|
|
| @@ -0,0 +1,17 @@ | ||
| bleach/__init__.py,sha256=GS2ORCpzVrM6y_mkmnbaZZZ9D2gf9siX-Z4zDUofW4U,15427 | ||
| bleach/callbacks.py,sha256=UTrc4JiioTwGxAKnZjpcFUPLxOcUSZt1KnmDqvdeYM4,534 | ||
| bleach/encoding.py,sha256=aq062I1yXRPPjZjYzY4FoMYkCjBA-0QCU-xBhgq4JMQ,2277 | ||
| bleach/sanitizer.py,sha256=t5IcbT36QOqZjG_h8bO2SOIn_OF_mUzYyRmRzDzyM-k,6483 | ||
| bleach/version.py,sha256=oskxHPFV-2W-vHpduEGWyRW8wyOa70mj_3qtLxPyRBM,136 | ||
| bleach-1.5.0.dist-info/top_level.txt,sha256=dcv0wKIySB0zMjAEXLwY4V0-3IN9UZQGAT1wDmfQICY,7 | ||
| bleach-1.5.0.dist-info/METADATA,sha256=JSll0wzttNFf3wvAnzfwcuYH9UPcfpjL-N55RVyKJQw,8925 | ||
| bleach-1.5.0.dist-info/DESCRIPTION.rst,sha256=jJ9jn1_mkWMbFlaBtIf7dPMwzoGmA4H-fRB8b3ER0Dg,7828 | ||
| bleach-1.5.0.dist-info/metadata.json,sha256=bT8WVZh6PG2fcHLhV6woBY84EPwqSFnwwKegq3jXUW0,1224 | ||
| bleach-1.5.0.dist-info/WHEEL,sha256=AvR0WeTpDaxT645bl5FQxUK6NPsTls2ttpcGJg3j1Xg,110 | ||
| bleach-1.5.0.dist-info/RECORD,, | ||
| bleach-1.5.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 | ||
| bleach/__pycache__/callbacks.cpython-34.pyc,, | ||
| bleach/__pycache__/__init__.cpython-34.pyc,, | ||
| bleach/__pycache__/version.cpython-34.pyc,, | ||
| bleach/__pycache__/encoding.cpython-34.pyc,, | ||
| bleach/__pycache__/sanitizer.cpython-34.pyc,, |
| @@ -0,0 +1,6 @@ | ||
| Wheel-Version: 1.0 | ||
| Generator: bdist_wheel (0.24.0) | ||
| Root-Is-Purelib: true | ||
| Tag: py2-none-any | ||
| Tag: py3-none-any | ||
|
|
| @@ -0,0 +1 @@ | ||
| {"license": "Apache Software License", "name": "bleach", "metadata_version": "2.0", "generator": "bdist_wheel (0.24.0)", "test_requires": [{"requires": ["pytest (==3.0.3)"]}], "summary": "An easy whitelist-based HTML-sanitizing tool.", "run_requires": [{"requires": ["six", "html5lib (>=0.999,!=0.9999,!=0.99999,<0.99999999)"]}], "version": "1.5.0", "extensions": {"python.details": {"project_urls": {"Home": "http://github.com/mozilla/bleach"}, "document_names": {"description": "DESCRIPTION.rst"}, "contacts": [{"role": "author", "name": "Will Kahn-Greene"}]}}, "classifiers": ["Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Software Development :: Libraries :: Python Modules"], "extras": []} |
| @@ -0,0 +1 @@ | ||
| bleach |
| @@ -0,0 +1,20 @@ | ||
| """A set of basic callbacks for bleach.linkify.""" | ||
| from __future__ import unicode_literals | ||
|
|
||
|
|
||
| def nofollow(attrs, new=False): | ||
| if attrs['href'].startswith('mailto:'): | ||
| return attrs | ||
| rel = [x for x in attrs.get('rel', '').split(' ') if x] | ||
| if 'nofollow' not in [x.lower() for x in rel]: | ||
| rel.append('nofollow') | ||
| attrs['rel'] = ' '.join(rel) | ||
|
|
||
| return attrs | ||
|
|
||
|
|
||
| def target_blank(attrs, new=False): | ||
| if attrs['href'].startswith('mailto:'): | ||
| return attrs | ||
| attrs['target'] = '_blank' | ||
| return attrs |
| @@ -0,0 +1,62 @@ | ||
| import datetime | ||
| from decimal import Decimal | ||
| import types | ||
| import six | ||
|
|
||
|
|
||
| def is_protected_type(obj): | ||
| """Determine if the object instance is of a protected type. | ||
|
|
||
| Objects of protected types are preserved as-is when passed to | ||
| force_unicode(strings_only=True). | ||
| """ | ||
| return isinstance(obj, ( | ||
| six.integer_types + | ||
| (types.NoneType, | ||
| datetime.datetime, datetime.date, datetime.time, | ||
| float, Decimal)) | ||
| ) | ||
|
|
||
|
|
||
| def force_unicode(s, encoding='utf-8', strings_only=False, errors='strict'): | ||
| """ | ||
| Similar to smart_text, except that lazy instances are resolved to | ||
| strings, rather than kept as lazy objects. | ||
|
|
||
| If strings_only is True, don't convert (some) non-string-like objects. | ||
| """ | ||
| # Handle the common case first, saves 30-40% when s is an instance of | ||
| # six.text_type. This function gets called often in that setting. | ||
| if isinstance(s, six.text_type): | ||
| return s | ||
| if strings_only and is_protected_type(s): | ||
| return s | ||
| try: | ||
| if not isinstance(s, six.string_types): | ||
| if hasattr(s, '__unicode__'): | ||
| s = s.__unicode__() | ||
| else: | ||
| if six.PY3: | ||
| if isinstance(s, bytes): | ||
| s = six.text_type(s, encoding, errors) | ||
| else: | ||
| s = six.text_type(s) | ||
| else: | ||
| s = six.text_type(bytes(s), encoding, errors) | ||
| else: | ||
| # Note: We use .decode() here, instead of six.text_type(s, | ||
| # encoding, errors), so that if s is a SafeBytes, it ends up being | ||
| # a SafeText at the end. | ||
| s = s.decode(encoding, errors) | ||
| except UnicodeDecodeError as e: | ||
| if not isinstance(s, Exception): | ||
| raise UnicodeDecodeError(*e.args) | ||
| else: | ||
| # If we get to here, the caller has passed in an Exception | ||
| # subclass populated with non-ASCII bytestring data without a | ||
| # working unicode method. Try to handle this without raising a | ||
| # further exception by individually forcing the exception args | ||
| # to unicode. | ||
| s = ' '.join([force_unicode(arg, encoding, strings_only, | ||
| errors) for arg in s]) | ||
| return s |
| @@ -0,0 +1,147 @@ | ||
| from __future__ import unicode_literals | ||
| import re | ||
| from xml.sax.saxutils import escape, unescape | ||
|
|
||
| from html5lib.constants import tokenTypes | ||
| from html5lib.sanitizer import HTMLSanitizerMixin | ||
| from html5lib.tokenizer import HTMLTokenizer | ||
|
|
||
|
|
||
| PROTOS = HTMLSanitizerMixin.acceptable_protocols | ||
| PROTOS.remove('feed') | ||
|
|
||
|
|
||
| class BleachSanitizerMixin(HTMLSanitizerMixin): | ||
| """Mixin to replace sanitize_token() and sanitize_css().""" | ||
|
|
||
| allowed_svg_properties = [] | ||
|
|
||
| def sanitize_token(self, token): | ||
| """Sanitize a token either by HTML-encoding or dropping. | ||
|
|
||
| Unlike HTMLSanitizerMixin.sanitize_token, allowed_attributes can be | ||
| a dict of {'tag': ['attribute', 'pairs'], 'tag': callable}. | ||
|
|
||
| Here callable is a function with two arguments of attribute name | ||
| and value. It should return true of false. | ||
|
|
||
| Also gives the option to strip tags instead of encoding. | ||
|
|
||
| """ | ||
| if (getattr(self, 'wildcard_attributes', None) is None and | ||
| isinstance(self.allowed_attributes, dict)): | ||
| self.wildcard_attributes = self.allowed_attributes.get('*', []) | ||
|
|
||
| if token['type'] in (tokenTypes['StartTag'], tokenTypes['EndTag'], | ||
| tokenTypes['EmptyTag']): | ||
| if token['name'] in self.allowed_elements: | ||
| if 'data' in token: | ||
| if isinstance(self.allowed_attributes, dict): | ||
| allowed_attributes = self.allowed_attributes.get( | ||
| token['name'], []) | ||
| if not callable(allowed_attributes): | ||
| allowed_attributes += self.wildcard_attributes | ||
| else: | ||
| allowed_attributes = self.allowed_attributes | ||
| attrs = dict([(name, val) for name, val in | ||
| token['data'][::-1] | ||
| if (allowed_attributes(name, val) | ||
| if callable(allowed_attributes) | ||
| else name in allowed_attributes)]) | ||
| for attr in self.attr_val_is_uri: | ||
| if attr not in attrs: | ||
| continue | ||
| val_unescaped = re.sub("[`\000-\040\177-\240\s]+", '', | ||
| unescape(attrs[attr])).lower() | ||
| # Remove replacement characters from unescaped | ||
| # characters. | ||
| val_unescaped = val_unescaped.replace("\ufffd", "") | ||
| if (re.match(r'^[a-z0-9][-+.a-z0-9]*:', val_unescaped) | ||
| and (val_unescaped.split(':')[0] not in | ||
| self.allowed_protocols)): | ||
| del attrs[attr] | ||
| for attr in self.svg_attr_val_allows_ref: | ||
| if attr in attrs: | ||
| attrs[attr] = re.sub(r'url\s*\(\s*[^#\s][^)]+?\)', | ||
| ' ', | ||
| unescape(attrs[attr])) | ||
| if (token['name'] in self.svg_allow_local_href and | ||
| 'xlink:href' in attrs and | ||
| re.search(r'^\s*[^#\s].*', attrs['xlink:href'])): | ||
| del attrs['xlink:href'] | ||
| if 'style' in attrs: | ||
| attrs['style'] = self.sanitize_css(attrs['style']) | ||
| token['data'] = [(name, val) for name, val in | ||
| attrs.items()] | ||
| return token | ||
| elif self.strip_disallowed_elements: | ||
| pass | ||
| else: | ||
| if token['type'] == tokenTypes['EndTag']: | ||
| token['data'] = '</{0!s}>'.format(token['name']) | ||
| elif token['data']: | ||
| attr = ' {0!s}="{1!s}"' | ||
| attrs = ''.join([attr.format(k, escape(v)) for k, v in | ||
| token['data']]) | ||
| token['data'] = '<{0!s}{1!s}>'.format(token['name'], attrs) | ||
| else: | ||
| token['data'] = '<{0!s}>'.format(token['name']) | ||
| if token['selfClosing']: | ||
| token['data'] = token['data'][:-1] + '/>' | ||
| token['type'] = tokenTypes['Characters'] | ||
| del token["name"] | ||
| return token | ||
| elif token['type'] == tokenTypes['Comment']: | ||
| if not self.strip_html_comments: | ||
| return token | ||
| else: | ||
| return token | ||
|
|
||
| def sanitize_css(self, style): | ||
| """HTMLSanitizerMixin.sanitize_css replacement. | ||
|
|
||
| HTMLSanitizerMixin.sanitize_css always whitelists background-*, | ||
| border-*, margin-*, and padding-*. We only whitelist what's in | ||
| the whitelist. | ||
|
|
||
| """ | ||
| # disallow urls | ||
| style = re.compile('url\s*\(\s*[^\s)]+?\s*\)\s*').sub(' ', style) | ||
|
|
||
| # gauntlet | ||
| # TODO: Make sure this does what it's meant to - I *think* it wants to | ||
| # validate style attribute contents. | ||
| parts = style.split(';') | ||
| gauntlet = re.compile("""^([-/:,#%.'"\sa-zA-Z0-9!]|\w-\w|'[\s\w]+'""" | ||
| """\s*|"[\s\w]+"|\([\d,%\.\s]+\))*$""") | ||
| for part in parts: | ||
| if not gauntlet.match(part): | ||
| return '' | ||
|
|
||
| if not re.match("^\s*([-\w]+\s*:[^:;]*(;\s*|$))*$", style): | ||
| return '' | ||
|
|
||
| clean = [] | ||
| for prop, value in re.findall('([-\w]+)\s*:\s*([^:;]*)', style): | ||
| if not value: | ||
| continue | ||
| if prop.lower() in self.allowed_css_properties: | ||
| clean.append(prop + ': ' + value + ';') | ||
| elif prop.lower() in self.allowed_svg_properties: | ||
| clean.append(prop + ': ' + value + ';') | ||
|
|
||
| return ' '.join(clean) | ||
|
|
||
|
|
||
| class BleachSanitizer(HTMLTokenizer, BleachSanitizerMixin): | ||
| def __init__(self, stream, encoding=None, parseMeta=True, useChardet=True, | ||
| lowercaseElementName=True, lowercaseAttrName=True, **kwargs): | ||
| HTMLTokenizer.__init__(self, stream, encoding, parseMeta, useChardet, | ||
| lowercaseElementName, lowercaseAttrName, | ||
| **kwargs) | ||
|
|
||
| def __iter__(self): | ||
| for token in HTMLTokenizer.__iter__(self): | ||
| token = self.sanitize_token(token) | ||
| if token: | ||
| yield token |
| @@ -0,0 +1,6 @@ | ||
| # -*- coding: utf-8 -*- | ||
|
|
||
| from __future__ import unicode_literals | ||
|
|
||
| VERSION = (1, 5, 0) | ||
| __version__ = '.'.join([str(n) for n in VERSION]) |
| @@ -0,0 +1,5 @@ | ||
| """Run the EasyInstall command""" | ||
|
|
||
| if __name__ == '__main__': | ||
| from setuptools.command.easy_install import main | ||
| main() |
| @@ -0,0 +1,32 @@ | ||
| Copyright (c) 2013, Ethan Furman. | ||
| All rights reserved. | ||
|
|
||
| Redistribution and use in source and binary forms, with or without | ||
| modification, are permitted provided that the following conditions | ||
| are met: | ||
|
|
||
| Redistributions of source code must retain the above | ||
| copyright notice, this list of conditions and the | ||
| following disclaimer. | ||
|
|
||
| Redistributions in binary form must reproduce the above | ||
| copyright notice, this list of conditions and the following | ||
| disclaimer in the documentation and/or other materials | ||
| provided with the distribution. | ||
|
|
||
| Neither the name Ethan Furman nor the names of any | ||
| contributors may be used to endorse or promote products | ||
| derived from this software without specific prior written | ||
| permission. | ||
|
|
||
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||
| AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE | ||
| LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | ||
| CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | ||
| SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||
| INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||
| CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
| ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
| POSSIBILITY OF SUCH DAMAGE. |
| @@ -0,0 +1,3 @@ | ||
| enum34 is the new Python stdlib enum module available in Python 3.4 | ||
| backported for previous versions of Python from 2.4 to 3.3. | ||
| tested on 2.6, 2.7, and 3.3+ |