Got Http requests working.
This commit is contained in:
Executable
+11
@@ -0,0 +1,11 @@
|
|||||||
|
#!/Users/karthikpullela/Desktop/hackdavis/Flex/flex/bin/python3
|
||||||
|
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from chardet.cli.chardetect import main
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
|
||||||
|
sys.exit(main())
|
||||||
Executable
+11
@@ -0,0 +1,11 @@
|
|||||||
|
#!/Users/karthikpullela/Desktop/hackdavis/Flex/flex/bin/python3
|
||||||
|
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from flask.cli import main
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
|
||||||
|
sys.exit(main())
|
||||||
Binary file not shown.
@@ -6,6 +6,8 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h1>FLEX - health</h1>
|
<h1>FLEX - health</h1>
|
||||||
|
<br><br>
|
||||||
|
{{ r.text }}
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
</html>
|
</html>
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse, HttpRequest
|
||||||
|
import requests
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
def home(request):
|
def home(request):
|
||||||
return render(request, 'home/home.html')
|
r = requests.get('https://www.google.com')
|
||||||
|
return render(request, 'home/home.html', {'r':r})
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
Flask
|
||||||
|
-----
|
||||||
|
|
||||||
|
Flask is a microframework for Python based on Werkzeug, Jinja 2 and good
|
||||||
|
intentions. And before you ask: It's BSD licensed!
|
||||||
|
|
||||||
|
Flask is Fun
|
||||||
|
````````````
|
||||||
|
|
||||||
|
Save in a hello.py:
|
||||||
|
|
||||||
|
.. code:: python
|
||||||
|
|
||||||
|
from flask import Flask
|
||||||
|
app = Flask(__name__)
|
||||||
|
|
||||||
|
@app.route("/")
|
||||||
|
def hello():
|
||||||
|
return "Hello World!"
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
app.run()
|
||||||
|
|
||||||
|
And Easy to Setup
|
||||||
|
`````````````````
|
||||||
|
|
||||||
|
And run it:
|
||||||
|
|
||||||
|
.. code:: bash
|
||||||
|
|
||||||
|
$ pip install Flask
|
||||||
|
$ python hello.py
|
||||||
|
* Running on http://localhost:5000/
|
||||||
|
|
||||||
|
Ready for production? `Read this first <http://flask.pocoo.org/docs/deploying/>`.
|
||||||
|
|
||||||
|
Links
|
||||||
|
`````
|
||||||
|
|
||||||
|
* `website <http://flask.pocoo.org/>`_
|
||||||
|
* `documentation <http://flask.pocoo.org/docs/>`_
|
||||||
|
* `development version
|
||||||
|
<http://github.com/pallets/flask/zipball/master#egg=Flask-dev>`_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
pip
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
Copyright (c) 2015 by Armin Ronacher and contributors. See AUTHORS
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
Some rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms of the software as well
|
||||||
|
as documentation, 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 AND DOCUMENTATION 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 AND DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
||||||
|
DAMAGE.
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
Metadata-Version: 2.0
|
||||||
|
Name: Flask
|
||||||
|
Version: 0.12.2
|
||||||
|
Summary: A microframework based on Werkzeug, Jinja2 and good intentions
|
||||||
|
Home-page: http://github.com/pallets/flask/
|
||||||
|
Author: Armin Ronacher
|
||||||
|
Author-email: armin.ronacher@active-4.com
|
||||||
|
License: BSD
|
||||||
|
Platform: any
|
||||||
|
Classifier: Development Status :: 4 - Beta
|
||||||
|
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
|
||||||
|
Requires-Dist: Jinja2 (>=2.4)
|
||||||
|
Requires-Dist: Werkzeug (>=0.7)
|
||||||
|
Requires-Dist: click (>=2.0)
|
||||||
|
Requires-Dist: itsdangerous (>=0.21)
|
||||||
|
|
||||||
|
Flask
|
||||||
|
-----
|
||||||
|
|
||||||
|
Flask is a microframework for Python based on Werkzeug, Jinja 2 and good
|
||||||
|
intentions. And before you ask: It's BSD licensed!
|
||||||
|
|
||||||
|
Flask is Fun
|
||||||
|
````````````
|
||||||
|
|
||||||
|
Save in a hello.py:
|
||||||
|
|
||||||
|
.. code:: python
|
||||||
|
|
||||||
|
from flask import Flask
|
||||||
|
app = Flask(__name__)
|
||||||
|
|
||||||
|
@app.route("/")
|
||||||
|
def hello():
|
||||||
|
return "Hello World!"
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
app.run()
|
||||||
|
|
||||||
|
And Easy to Setup
|
||||||
|
`````````````````
|
||||||
|
|
||||||
|
And run it:
|
||||||
|
|
||||||
|
.. code:: bash
|
||||||
|
|
||||||
|
$ pip install Flask
|
||||||
|
$ python hello.py
|
||||||
|
* Running on http://localhost:5000/
|
||||||
|
|
||||||
|
Ready for production? `Read this first <http://flask.pocoo.org/docs/deploying/>`.
|
||||||
|
|
||||||
|
Links
|
||||||
|
`````
|
||||||
|
|
||||||
|
* `website <http://flask.pocoo.org/>`_
|
||||||
|
* `documentation <http://flask.pocoo.org/docs/>`_
|
||||||
|
* `development version
|
||||||
|
<http://github.com/pallets/flask/zipball/master#egg=Flask-dev>`_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
Flask-0.12.2.dist-info/DESCRIPTION.rst,sha256=DmJm8IBlBjl3wkm0Ly23jYvWbvK_mCuE5oUseYCijbI,810
|
||||||
|
Flask-0.12.2.dist-info/LICENSE.txt,sha256=hLgKluMRHSnxG-L0EmrqjmKgG5cHlff6pIh3rCNINeI,1582
|
||||||
|
Flask-0.12.2.dist-info/METADATA,sha256=OgSkJQ_kmrz4qEkS-OzYtL75uZmXAThymkOcGR4kXRQ,1948
|
||||||
|
Flask-0.12.2.dist-info/RECORD,,
|
||||||
|
Flask-0.12.2.dist-info/WHEEL,sha256=o2k-Qa-RMNIJmUdIc7KU6VWR_ErNRbWNlxDIpl7lm34,110
|
||||||
|
Flask-0.12.2.dist-info/entry_points.txt,sha256=jzk2Wy2h30uEcqqzd4CVnlzsMXB-vaD5GXjuPMXmTmI,60
|
||||||
|
Flask-0.12.2.dist-info/metadata.json,sha256=By8kZ1vY9lLEAGnRiWNBhudqKvLPo0HkZVXTYECyPKk,1389
|
||||||
|
Flask-0.12.2.dist-info/top_level.txt,sha256=dvi65F6AeGWVU0TBpYiC04yM60-FX1gJFkK31IKQr5c,6
|
||||||
|
flask/__init__.py,sha256=sHdK1v6WRbVmCN0fEv990EE7rOT2UlamQkSof2d0Dt0,1673
|
||||||
|
flask/__main__.py,sha256=cldbNi5zpjE68XzIWI8uYHNWwBHHVJmwtlXWk6P4CO4,291
|
||||||
|
flask/_compat.py,sha256=VlfjUuLjufsTHJIjr_ZsnnOesSbAXIslBBgRe5tfOok,2802
|
||||||
|
flask/app.py,sha256=6DPjtb5jUJWgL5fXksG5boA49EB3l-k9pWyftitbNNk,83169
|
||||||
|
flask/blueprints.py,sha256=6HVasMcPcaq7tk36kCrgX4bnhTkky4G5WIWCyyJL8HY,16872
|
||||||
|
flask/cli.py,sha256=2NXEdCOu5-4ymklxX4Lf6bjb-89I4VHYeP6xScR3i8E,18328
|
||||||
|
flask/config.py,sha256=Ym5Jenyu6zAZ1fdVLeKekY9-EsKmq8183qnRgauwCMY,9905
|
||||||
|
flask/ctx.py,sha256=UPA0YwoIlHP0txOGanC9lQLSGv6eCqV5Fmw2cVJRmgQ,14739
|
||||||
|
flask/debughelpers.py,sha256=z-uQavKIymOZl0WQDLXsnacA00ERIlCx3S3Tnb_OYsE,6024
|
||||||
|
flask/exthook.py,sha256=SvXs5jwpcOjogwJ7SNquiWTxowoN1-MHFoqAejWnk2o,5762
|
||||||
|
flask/globals.py,sha256=I3m_4RssLhWW1R11zuEI8oFryHUHX3NQwjMkGXOZzg8,1645
|
||||||
|
flask/helpers.py,sha256=KrsQ2Yo3lOVHvBTgQCLvpubgmTOpQdTTyiCOOYlwDuQ,38452
|
||||||
|
flask/json.py,sha256=1zPM-NPLiWoOfGd0P14FxnEkeKtjtUZxMC9pyYyDBYI,9183
|
||||||
|
flask/logging.py,sha256=UG-77jPkRClk9w1B-_ArjjXPuj9AmZz9mG0IRGvptW0,2751
|
||||||
|
flask/sessions.py,sha256=QBKXVYKJ-HKbx9m6Yb5yan_EPq84a5yevVLgAzNKFQY,14394
|
||||||
|
flask/signals.py,sha256=MfZk5qTRj_R_O3aGYlTEnx2g3SvlZncz8Ii73eKK59g,2209
|
||||||
|
flask/templating.py,sha256=u7FbN6j56H_q6CrdJJyJ6gZtqaMa0vh1_GP12gEHRQQ,4912
|
||||||
|
flask/testing.py,sha256=II8EO_NjOT1LvL8Hh_SdIFL_BdlwVPcB9yot5pbltxE,5630
|
||||||
|
flask/views.py,sha256=6OPv7gwu3h14JhqpeeMRWwrxoGHsUr4_nOGSyTRAxAI,5630
|
||||||
|
flask/wrappers.py,sha256=1S_5mmuA1Tlx7D9lXV6xMblrg-PdAauNWahe-henMEE,7612
|
||||||
|
flask/ext/__init__.py,sha256=UEezCApsG4ZJWqwUnX9YmWcNN4OVENgph_9L05n0eOM,842
|
||||||
|
../../../bin/flask,sha256=Dvns7NRNbpv589oWzJyzp5zTknhHkVZDfPeYpq0Cyz4,257
|
||||||
|
Flask-0.12.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||||
|
flask/ext/__pycache__/__init__.cpython-36.pyc,,
|
||||||
|
flask/__pycache__/blueprints.cpython-36.pyc,,
|
||||||
|
flask/__pycache__/logging.cpython-36.pyc,,
|
||||||
|
flask/__pycache__/sessions.cpython-36.pyc,,
|
||||||
|
flask/__pycache__/templating.cpython-36.pyc,,
|
||||||
|
flask/__pycache__/cli.cpython-36.pyc,,
|
||||||
|
flask/__pycache__/config.cpython-36.pyc,,
|
||||||
|
flask/__pycache__/signals.cpython-36.pyc,,
|
||||||
|
flask/__pycache__/testing.cpython-36.pyc,,
|
||||||
|
flask/__pycache__/views.cpython-36.pyc,,
|
||||||
|
flask/__pycache__/ctx.cpython-36.pyc,,
|
||||||
|
flask/__pycache__/app.cpython-36.pyc,,
|
||||||
|
flask/__pycache__/exthook.cpython-36.pyc,,
|
||||||
|
flask/__pycache__/__main__.cpython-36.pyc,,
|
||||||
|
flask/__pycache__/_compat.cpython-36.pyc,,
|
||||||
|
flask/__pycache__/helpers.cpython-36.pyc,,
|
||||||
|
flask/__pycache__/wrappers.cpython-36.pyc,,
|
||||||
|
flask/__pycache__/__init__.cpython-36.pyc,,
|
||||||
|
flask/__pycache__/debughelpers.cpython-36.pyc,,
|
||||||
|
flask/__pycache__/globals.cpython-36.pyc,,
|
||||||
|
flask/__pycache__/json.cpython-36.pyc,,
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
Wheel-Version: 1.0
|
||||||
|
Generator: bdist_wheel (0.29.0)
|
||||||
|
Root-Is-Purelib: true
|
||||||
|
Tag: py2-none-any
|
||||||
|
Tag: py3-none-any
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
|
||||||
|
[console_scripts]
|
||||||
|
flask=flask.cli:main
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"classifiers": ["Development Status :: 4 - Beta", "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"], "extensions": {"python.commands": {"wrap_console": {"flask": "flask.cli:main"}}, "python.details": {"contacts": [{"email": "armin.ronacher@active-4.com", "name": "Armin Ronacher", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst", "license": "LICENSE.txt"}, "project_urls": {"Home": "http://github.com/pallets/flask/"}}, "python.exports": {"console_scripts": {"flask": "flask.cli:main"}}}, "extras": [], "generator": "bdist_wheel (0.29.0)", "license": "BSD", "metadata_version": "2.0", "name": "Flask", "platform": "any", "run_requires": [{"requires": ["Jinja2 (>=2.4)", "Werkzeug (>=0.7)", "click (>=2.0)", "itsdangerous (>=0.21)"]}], "summary": "A microframework based on Werkzeug, Jinja2 and good intentions", "version": "0.12.2"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
flask
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
|
||||||
|
Jinja2
|
||||||
|
~~~~~~
|
||||||
|
|
||||||
|
Jinja2 is a template engine written in pure Python. It provides a
|
||||||
|
`Django`_ inspired non-XML syntax but supports inline expressions and
|
||||||
|
an optional `sandboxed`_ environment.
|
||||||
|
|
||||||
|
Nutshell
|
||||||
|
--------
|
||||||
|
|
||||||
|
Here a small example of a Jinja template::
|
||||||
|
|
||||||
|
{% extends 'base.html' %}
|
||||||
|
{% block title %}Memberlist{% endblock %}
|
||||||
|
{% block content %}
|
||||||
|
<ul>
|
||||||
|
{% for user in users %}
|
||||||
|
<li><a href="{{ user.url }}">{{ user.username }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
Philosophy
|
||||||
|
----------
|
||||||
|
|
||||||
|
Application logic is for the controller but don't try to make the life
|
||||||
|
for the template designer too hard by giving him too few functionality.
|
||||||
|
|
||||||
|
For more informations visit the new `Jinja2 webpage`_ and `documentation`_.
|
||||||
|
|
||||||
|
.. _sandboxed: https://en.wikipedia.org/wiki/Sandbox_(computer_security)
|
||||||
|
.. _Django: https://www.djangoproject.com/
|
||||||
|
.. _Jinja2 webpage: http://jinja.pocoo.org/
|
||||||
|
.. _documentation: http://jinja.pocoo.org/2/documentation/
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
pip
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
Copyright (c) 2009 by the Jinja Team, see AUTHORS for more details.
|
||||||
|
|
||||||
|
Some 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.
|
||||||
|
|
||||||
|
* 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,68 @@
|
|||||||
|
Metadata-Version: 2.0
|
||||||
|
Name: Jinja2
|
||||||
|
Version: 2.10
|
||||||
|
Summary: A small but fast and easy to use stand-alone template engine written in pure python.
|
||||||
|
Home-page: http://jinja.pocoo.org/
|
||||||
|
Author: Armin Ronacher
|
||||||
|
Author-email: armin.ronacher@active-4.com
|
||||||
|
License: BSD
|
||||||
|
Description-Content-Type: UNKNOWN
|
||||||
|
Platform: UNKNOWN
|
||||||
|
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: Programming Language :: Python :: 3.6
|
||||||
|
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
|
||||||
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
||||||
|
Classifier: Topic :: Text Processing :: Markup :: HTML
|
||||||
|
Requires-Dist: MarkupSafe (>=0.23)
|
||||||
|
Provides-Extra: i18n
|
||||||
|
Requires-Dist: Babel (>=0.8); extra == 'i18n'
|
||||||
|
|
||||||
|
|
||||||
|
Jinja2
|
||||||
|
~~~~~~
|
||||||
|
|
||||||
|
Jinja2 is a template engine written in pure Python. It provides a
|
||||||
|
`Django`_ inspired non-XML syntax but supports inline expressions and
|
||||||
|
an optional `sandboxed`_ environment.
|
||||||
|
|
||||||
|
Nutshell
|
||||||
|
--------
|
||||||
|
|
||||||
|
Here a small example of a Jinja template::
|
||||||
|
|
||||||
|
{% extends 'base.html' %}
|
||||||
|
{% block title %}Memberlist{% endblock %}
|
||||||
|
{% block content %}
|
||||||
|
<ul>
|
||||||
|
{% for user in users %}
|
||||||
|
<li><a href="{{ user.url }}">{{ user.username }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
Philosophy
|
||||||
|
----------
|
||||||
|
|
||||||
|
Application logic is for the controller but don't try to make the life
|
||||||
|
for the template designer too hard by giving him too few functionality.
|
||||||
|
|
||||||
|
For more informations visit the new `Jinja2 webpage`_ and `documentation`_.
|
||||||
|
|
||||||
|
.. _sandboxed: https://en.wikipedia.org/wiki/Sandbox_(computer_security)
|
||||||
|
.. _Django: https://www.djangoproject.com/
|
||||||
|
.. _Jinja2 webpage: http://jinja.pocoo.org/
|
||||||
|
.. _documentation: http://jinja.pocoo.org/2/documentation/
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
Jinja2-2.10.dist-info/DESCRIPTION.rst,sha256=b5ckFDoM7vVtz_mAsJD4OPteFKCqE7beu353g4COoYI,978
|
||||||
|
Jinja2-2.10.dist-info/LICENSE.txt,sha256=JvzUNv3Io51EiWrAPm8d_SXjhJnEjyDYvB3Tvwqqils,1554
|
||||||
|
Jinja2-2.10.dist-info/METADATA,sha256=18EgU8zR6-av-0-5y_gXebzK4GnBB_76lALUsl-6QHM,2258
|
||||||
|
Jinja2-2.10.dist-info/RECORD,,
|
||||||
|
Jinja2-2.10.dist-info/WHEEL,sha256=kdsN-5OJAZIiHN-iO4Rhl82KyS0bDWf4uBwMbkNafr8,110
|
||||||
|
Jinja2-2.10.dist-info/entry_points.txt,sha256=NdzVcOrqyNyKDxD09aERj__3bFx2paZhizFDsKmVhiA,72
|
||||||
|
Jinja2-2.10.dist-info/metadata.json,sha256=NPUJ9TMBxVQAv_kTJzvU8HwmP-4XZvbK9mz6_4YUVl4,1473
|
||||||
|
Jinja2-2.10.dist-info/top_level.txt,sha256=PkeVWtLb3-CqjWi1fO29OCbj55EhX_chhKrCdrVe_zs,7
|
||||||
|
jinja2/__init__.py,sha256=xJHjaMoy51_KXn1wf0cysH6tUUifUxZCwSOfcJGEYZw,2614
|
||||||
|
jinja2/_compat.py,sha256=xP60CE5Qr8FTYcDE1f54tbZLKGvMwYml4-8T7Q4KG9k,2596
|
||||||
|
jinja2/_identifier.py,sha256=W1QBSY-iJsyt6oR_nKSuNNCzV95vLIOYgUNPUI1d5gU,1726
|
||||||
|
jinja2/asyncfilters.py,sha256=cTDPvrS8Hp_IkwsZ1m9af_lr5nHysw7uTa5gV0NmZVE,4144
|
||||||
|
jinja2/asyncsupport.py,sha256=UErQ3YlTLaSjFb94P4MVn08-aVD9jJxty2JVfMRb-1M,7878
|
||||||
|
jinja2/bccache.py,sha256=nQldx0ZRYANMyfvOihRoYFKSlUdd5vJkS7BjxNwlOZM,12794
|
||||||
|
jinja2/compiler.py,sha256=BqC5U6JxObSRhblyT_a6Tp5GtEU5z3US1a4jLQaxxgo,65386
|
||||||
|
jinja2/constants.py,sha256=uwwV8ZUhHhacAuz5PTwckfsbqBaqM7aKfyJL7kGX5YQ,1626
|
||||||
|
jinja2/debug.py,sha256=WTVeUFGUa4v6ReCsYv-iVPa3pkNB75OinJt3PfxNdXs,12045
|
||||||
|
jinja2/defaults.py,sha256=Em-95hmsJxIenDCZFB1YSvf9CNhe9rBmytN3yUrBcWA,1400
|
||||||
|
jinja2/environment.py,sha256=VnkAkqw8JbjZct4tAyHlpBrka2vqB-Z58RAP-32P1ZY,50849
|
||||||
|
jinja2/exceptions.py,sha256=_Rj-NVi98Q6AiEjYQOsP8dEIdu5AlmRHzcSNOPdWix4,4428
|
||||||
|
jinja2/ext.py,sha256=atMQydEC86tN1zUsdQiHw5L5cF62nDbqGue25Yiu3N4,24500
|
||||||
|
jinja2/filters.py,sha256=yOAJk0MsH-_gEC0i0U6NweVQhbtYaC-uE8xswHFLF4w,36528
|
||||||
|
jinja2/idtracking.py,sha256=2GbDSzIvGArEBGLkovLkqEfmYxmWsEf8c3QZwM4uNsw,9197
|
||||||
|
jinja2/lexer.py,sha256=ySEPoXd1g7wRjsuw23uimS6nkGN5aqrYwcOKxCaVMBQ,28559
|
||||||
|
jinja2/loaders.py,sha256=xiTuURKAEObyym0nU8PCIXu_Qp8fn0AJ5oIADUUm-5Q,17382
|
||||||
|
jinja2/meta.py,sha256=fmKHxkmZYAOm9QyWWy8EMd6eefAIh234rkBMW2X4ZR8,4340
|
||||||
|
jinja2/nativetypes.py,sha256=_sJhS8f-8Q0QMIC0dm1YEdLyxEyoO-kch8qOL5xUDfE,7308
|
||||||
|
jinja2/nodes.py,sha256=L10L_nQDfubLhO3XjpF9qz46FSh2clL-3e49ogVlMmA,30853
|
||||||
|
jinja2/optimizer.py,sha256=MsdlFACJ0FRdPtjmCAdt7JQ9SGrXFaDNUaslsWQaG3M,1722
|
||||||
|
jinja2/parser.py,sha256=lPzTEbcpTRBLw8ii6OYyExHeAhaZLMA05Hpv4ll3ULk,35875
|
||||||
|
jinja2/runtime.py,sha256=DHdD38Pq8gj7uWQC5usJyWFoNWL317A9AvXOW_CLB34,27755
|
||||||
|
jinja2/sandbox.py,sha256=TVyZHlNqqTzsv9fv2NvJNmSdWRHTguhyMHdxjWms32U,16708
|
||||||
|
jinja2/tests.py,sha256=iJQLwbapZr-EKquTG_fVOVdwHUUKf3SX9eNkjQDF8oU,4237
|
||||||
|
jinja2/utils.py,sha256=q24VupGZotQ-uOyrJxCaXtDWhZC1RgsQG7kcdmjck2Q,20629
|
||||||
|
jinja2/visitor.py,sha256=JD1H1cANA29JcntFfN5fPyqQxB4bI4wC00BzZa-XHks,3316
|
||||||
|
Jinja2-2.10.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||||
|
jinja2/__pycache__/lexer.cpython-36.pyc,,
|
||||||
|
jinja2/__pycache__/sandbox.cpython-36.pyc,,
|
||||||
|
jinja2/__pycache__/debug.cpython-36.pyc,,
|
||||||
|
jinja2/__pycache__/constants.cpython-36.pyc,,
|
||||||
|
jinja2/__pycache__/idtracking.cpython-36.pyc,,
|
||||||
|
jinja2/__pycache__/parser.cpython-36.pyc,,
|
||||||
|
jinja2/__pycache__/exceptions.cpython-36.pyc,,
|
||||||
|
jinja2/__pycache__/ext.cpython-36.pyc,,
|
||||||
|
jinja2/__pycache__/meta.cpython-36.pyc,,
|
||||||
|
jinja2/__pycache__/environment.cpython-36.pyc,,
|
||||||
|
jinja2/__pycache__/loaders.cpython-36.pyc,,
|
||||||
|
jinja2/__pycache__/asyncsupport.cpython-36.pyc,,
|
||||||
|
jinja2/__pycache__/asyncfilters.cpython-36.pyc,,
|
||||||
|
jinja2/__pycache__/tests.cpython-36.pyc,,
|
||||||
|
jinja2/__pycache__/optimizer.cpython-36.pyc,,
|
||||||
|
jinja2/__pycache__/compiler.cpython-36.pyc,,
|
||||||
|
jinja2/__pycache__/bccache.cpython-36.pyc,,
|
||||||
|
jinja2/__pycache__/_identifier.cpython-36.pyc,,
|
||||||
|
jinja2/__pycache__/_compat.cpython-36.pyc,,
|
||||||
|
jinja2/__pycache__/defaults.cpython-36.pyc,,
|
||||||
|
jinja2/__pycache__/utils.cpython-36.pyc,,
|
||||||
|
jinja2/__pycache__/nodes.cpython-36.pyc,,
|
||||||
|
jinja2/__pycache__/filters.cpython-36.pyc,,
|
||||||
|
jinja2/__pycache__/runtime.cpython-36.pyc,,
|
||||||
|
jinja2/__pycache__/__init__.cpython-36.pyc,,
|
||||||
|
jinja2/__pycache__/nativetypes.cpython-36.pyc,,
|
||||||
|
jinja2/__pycache__/visitor.cpython-36.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,4 @@
|
|||||||
|
|
||||||
|
[babel.extractors]
|
||||||
|
jinja2 = jinja2.ext:babel_extract[i18n]
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"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", "Programming Language :: Python :: 3.6", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Text Processing :: Markup :: HTML"], "description_content_type": "UNKNOWN", "extensions": {"python.details": {"contacts": [{"email": "armin.ronacher@active-4.com", "name": "Armin Ronacher", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst", "license": "LICENSE.txt"}, "project_urls": {"Home": "http://jinja.pocoo.org/"}}, "python.exports": {"babel.extractors": {"jinja2": "jinja2.ext:babel_extract [i18n]"}}}, "extras": ["i18n"], "generator": "bdist_wheel (0.30.0)", "license": "BSD", "metadata_version": "2.0", "name": "Jinja2", "run_requires": [{"extra": "i18n", "requires": ["Babel (>=0.8)"]}, {"requires": ["MarkupSafe (>=0.23)"]}], "summary": "A small but fast and easy to use stand-alone template engine written in pure python.", "version": "2.10"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
jinja2
|
||||||
@@ -0,0 +1,115 @@
|
|||||||
|
MarkupSafe
|
||||||
|
==========
|
||||||
|
|
||||||
|
Implements a unicode subclass that supports HTML strings:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
>>> from markupsafe import Markup, escape
|
||||||
|
>>> escape("<script>alert(document.cookie);</script>")
|
||||||
|
Markup(u'<script>alert(document.cookie);</script>')
|
||||||
|
>>> tmpl = Markup("<em>%s</em>")
|
||||||
|
>>> tmpl % "Peter > Lustig"
|
||||||
|
Markup(u'<em>Peter > Lustig</em>')
|
||||||
|
|
||||||
|
If you want to make an object unicode that is not yet unicode
|
||||||
|
but don't want to lose the taint information, you can use the
|
||||||
|
``soft_unicode`` function. (On Python 3 you can also use ``soft_str`` which
|
||||||
|
is a different name for the same function).
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
>>> from markupsafe import soft_unicode
|
||||||
|
>>> soft_unicode(42)
|
||||||
|
u'42'
|
||||||
|
>>> soft_unicode(Markup('foo'))
|
||||||
|
Markup(u'foo')
|
||||||
|
|
||||||
|
HTML Representations
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Objects can customize their HTML markup equivalent by overriding
|
||||||
|
the ``__html__`` function:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
>>> class Foo(object):
|
||||||
|
... def __html__(self):
|
||||||
|
... return '<strong>Nice</strong>'
|
||||||
|
...
|
||||||
|
>>> escape(Foo())
|
||||||
|
Markup(u'<strong>Nice</strong>')
|
||||||
|
>>> Markup(Foo())
|
||||||
|
Markup(u'<strong>Nice</strong>')
|
||||||
|
|
||||||
|
Silent Escapes
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Since MarkupSafe 0.10 there is now also a separate escape function
|
||||||
|
called ``escape_silent`` that returns an empty string for ``None`` for
|
||||||
|
consistency with other systems that return empty strings for ``None``
|
||||||
|
when escaping (for instance Pylons' webhelpers).
|
||||||
|
|
||||||
|
If you also want to use this for the escape method of the Markup
|
||||||
|
object, you can create your own subclass that does that:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
from markupsafe import Markup, escape_silent as escape
|
||||||
|
|
||||||
|
class SilentMarkup(Markup):
|
||||||
|
__slots__ = ()
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def escape(cls, s):
|
||||||
|
return cls(escape(s))
|
||||||
|
|
||||||
|
New-Style String Formatting
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
Starting with MarkupSafe 0.21 new style string formats from Python 2.6 and
|
||||||
|
3.x are now fully supported. Previously the escape behavior of those
|
||||||
|
functions was spotty at best. The new implementations operates under the
|
||||||
|
following algorithm:
|
||||||
|
|
||||||
|
1. if an object has an ``__html_format__`` method it is called as
|
||||||
|
replacement for ``__format__`` with the format specifier. It either
|
||||||
|
has to return a string or markup object.
|
||||||
|
2. if an object has an ``__html__`` method it is called.
|
||||||
|
3. otherwise the default format system of Python kicks in and the result
|
||||||
|
is HTML escaped.
|
||||||
|
|
||||||
|
Here is how you can implement your own formatting:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
class User(object):
|
||||||
|
|
||||||
|
def __init__(self, id, username):
|
||||||
|
self.id = id
|
||||||
|
self.username = username
|
||||||
|
|
||||||
|
def __html_format__(self, format_spec):
|
||||||
|
if format_spec == 'link':
|
||||||
|
return Markup('<a href="/user/{0}">{1}</a>').format(
|
||||||
|
self.id,
|
||||||
|
self.__html__(),
|
||||||
|
)
|
||||||
|
elif format_spec:
|
||||||
|
raise ValueError('Invalid format spec')
|
||||||
|
return self.__html__()
|
||||||
|
|
||||||
|
def __html__(self):
|
||||||
|
return Markup('<span class=user>{0}</span>').format(self.username)
|
||||||
|
|
||||||
|
And to format that user:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
>>> user = User(1, 'foo')
|
||||||
|
>>> Markup('<p>User: {0:link}').format(user)
|
||||||
|
Markup(u'<p>User: <a href="/user/1"><span class=user>foo</span></a>')
|
||||||
|
|
||||||
|
Markupsafe supports Python 2.6, 2.7 and Python 3.3 and higher.
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
pip
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
Copyright (c) 2010 by Armin Ronacher and contributors. See AUTHORS
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
Some rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms of the software as well
|
||||||
|
as documentation, 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 AND DOCUMENTATION 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 AND DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
||||||
|
DAMAGE.
|
||||||
@@ -0,0 +1,135 @@
|
|||||||
|
Metadata-Version: 2.0
|
||||||
|
Name: MarkupSafe
|
||||||
|
Version: 1.0
|
||||||
|
Summary: Implements a XML/HTML/XHTML Markup safe string for Python
|
||||||
|
Home-page: http://github.com/pallets/markupsafe
|
||||||
|
Author: Armin Ronacher
|
||||||
|
Author-email: armin.ronacher@active-4.com
|
||||||
|
License: BSD
|
||||||
|
Platform: UNKNOWN
|
||||||
|
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 :: 3
|
||||||
|
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
|
||||||
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
||||||
|
Classifier: Topic :: Text Processing :: Markup :: HTML
|
||||||
|
|
||||||
|
MarkupSafe
|
||||||
|
==========
|
||||||
|
|
||||||
|
Implements a unicode subclass that supports HTML strings:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
>>> from markupsafe import Markup, escape
|
||||||
|
>>> escape("<script>alert(document.cookie);</script>")
|
||||||
|
Markup(u'<script>alert(document.cookie);</script>')
|
||||||
|
>>> tmpl = Markup("<em>%s</em>")
|
||||||
|
>>> tmpl % "Peter > Lustig"
|
||||||
|
Markup(u'<em>Peter > Lustig</em>')
|
||||||
|
|
||||||
|
If you want to make an object unicode that is not yet unicode
|
||||||
|
but don't want to lose the taint information, you can use the
|
||||||
|
``soft_unicode`` function. (On Python 3 you can also use ``soft_str`` which
|
||||||
|
is a different name for the same function).
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
>>> from markupsafe import soft_unicode
|
||||||
|
>>> soft_unicode(42)
|
||||||
|
u'42'
|
||||||
|
>>> soft_unicode(Markup('foo'))
|
||||||
|
Markup(u'foo')
|
||||||
|
|
||||||
|
HTML Representations
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Objects can customize their HTML markup equivalent by overriding
|
||||||
|
the ``__html__`` function:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
>>> class Foo(object):
|
||||||
|
... def __html__(self):
|
||||||
|
... return '<strong>Nice</strong>'
|
||||||
|
...
|
||||||
|
>>> escape(Foo())
|
||||||
|
Markup(u'<strong>Nice</strong>')
|
||||||
|
>>> Markup(Foo())
|
||||||
|
Markup(u'<strong>Nice</strong>')
|
||||||
|
|
||||||
|
Silent Escapes
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Since MarkupSafe 0.10 there is now also a separate escape function
|
||||||
|
called ``escape_silent`` that returns an empty string for ``None`` for
|
||||||
|
consistency with other systems that return empty strings for ``None``
|
||||||
|
when escaping (for instance Pylons' webhelpers).
|
||||||
|
|
||||||
|
If you also want to use this for the escape method of the Markup
|
||||||
|
object, you can create your own subclass that does that:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
from markupsafe import Markup, escape_silent as escape
|
||||||
|
|
||||||
|
class SilentMarkup(Markup):
|
||||||
|
__slots__ = ()
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def escape(cls, s):
|
||||||
|
return cls(escape(s))
|
||||||
|
|
||||||
|
New-Style String Formatting
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
Starting with MarkupSafe 0.21 new style string formats from Python 2.6 and
|
||||||
|
3.x are now fully supported. Previously the escape behavior of those
|
||||||
|
functions was spotty at best. The new implementations operates under the
|
||||||
|
following algorithm:
|
||||||
|
|
||||||
|
1. if an object has an ``__html_format__`` method it is called as
|
||||||
|
replacement for ``__format__`` with the format specifier. It either
|
||||||
|
has to return a string or markup object.
|
||||||
|
2. if an object has an ``__html__`` method it is called.
|
||||||
|
3. otherwise the default format system of Python kicks in and the result
|
||||||
|
is HTML escaped.
|
||||||
|
|
||||||
|
Here is how you can implement your own formatting:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
class User(object):
|
||||||
|
|
||||||
|
def __init__(self, id, username):
|
||||||
|
self.id = id
|
||||||
|
self.username = username
|
||||||
|
|
||||||
|
def __html_format__(self, format_spec):
|
||||||
|
if format_spec == 'link':
|
||||||
|
return Markup('<a href="/user/{0}">{1}</a>').format(
|
||||||
|
self.id,
|
||||||
|
self.__html__(),
|
||||||
|
)
|
||||||
|
elif format_spec:
|
||||||
|
raise ValueError('Invalid format spec')
|
||||||
|
return self.__html__()
|
||||||
|
|
||||||
|
def __html__(self):
|
||||||
|
return Markup('<span class=user>{0}</span>').format(self.username)
|
||||||
|
|
||||||
|
And to format that user:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
>>> user = User(1, 'foo')
|
||||||
|
>>> Markup('<p>User: {0:link}').format(user)
|
||||||
|
Markup(u'<p>User: <a href="/user/1"><span class=user>foo</span></a>')
|
||||||
|
|
||||||
|
Markupsafe supports Python 2.6, 2.7 and Python 3.3 and higher.
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
MarkupSafe-1.0.dist-info/DESCRIPTION.rst,sha256=3B3J0YLzzmJQVaWQ_XlVMhGeHA_DvBqysABvul_5fko,3397
|
||||||
|
MarkupSafe-1.0.dist-info/LICENSE.txt,sha256=C76IIo_WPSDsCX9k5Y1aCkZRI64TkUChjUBsYLSIJLU,1582
|
||||||
|
MarkupSafe-1.0.dist-info/METADATA,sha256=EUwvRzJbtRP3hBMc8Z2TDT44TBDeZdIurbGzIc7FOkg,4182
|
||||||
|
MarkupSafe-1.0.dist-info/RECORD,,
|
||||||
|
MarkupSafe-1.0.dist-info/WHEEL,sha256=OFNdaJiI9g_GkizF_uxlV7QqkMhIg08EkykbDF40LSY,109
|
||||||
|
MarkupSafe-1.0.dist-info/metadata.json,sha256=LPb3W7qq-SH_u1SFzjXQqT8sCGpE-b4NmYAxMcw91e8,924
|
||||||
|
MarkupSafe-1.0.dist-info/top_level.txt,sha256=qy0Plje5IJuvsCBjejJyhDCjEAdcDLK_2agVcex8Z6U,11
|
||||||
|
markupsafe/__init__.py,sha256=xtkRdxhzJzgp65wUo1D4DjnazxHU88pPldaAuDekBeY,10697
|
||||||
|
markupsafe/_compat.py,sha256=r1HE0CpcAZeb-AiTV9wITR91PeLHn0CzZ_XHkYoozpI,565
|
||||||
|
markupsafe/_constants.py,sha256=U_xybFQsyXKCgHSfranJnFzo-z9nn9fuBeSk243sE5Q,4795
|
||||||
|
markupsafe/_native.py,sha256=E2Un1ysOf-w45d18YCj8UelT5UP7Vt__IuFPYJ7YRIs,1187
|
||||||
|
markupsafe/_speedups.c,sha256=B6Mf6Fn33WqkagfwY7q5ZBSm_vJoHDYxDB0Jp_DP7Jw,5936
|
||||||
|
markupsafe/_speedups.cpython-36m-darwin.so,sha256=3TPPKm0bCg7eEE4RjnhAsEoEzykFtaXPEzhvbcxroVc,31080
|
||||||
|
MarkupSafe-1.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||||
|
markupsafe/__pycache__/_native.cpython-36.pyc,,
|
||||||
|
markupsafe/__pycache__/_constants.cpython-36.pyc,,
|
||||||
|
markupsafe/__pycache__/_compat.cpython-36.pyc,,
|
||||||
|
markupsafe/__pycache__/__init__.cpython-36.pyc,,
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
Wheel-Version: 1.0
|
||||||
|
Generator: bdist_wheel (0.30.0)
|
||||||
|
Root-Is-Purelib: false
|
||||||
|
Tag: cp36-cp36m-macosx_10_6_intel
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"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 :: 3", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Text Processing :: Markup :: HTML"], "extensions": {"python.details": {"contacts": [{"email": "armin.ronacher@active-4.com", "name": "Armin Ronacher", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst", "license": "LICENSE.txt"}, "project_urls": {"Home": "http://github.com/pallets/markupsafe"}}}, "generator": "bdist_wheel (0.30.0)", "license": "BSD", "metadata_version": "2.0", "name": "MarkupSafe", "summary": "Implements a XML/HTML/XHTML Markup safe string for Python", "version": "1.0"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
markupsafe
|
||||||
@@ -0,0 +1,80 @@
|
|||||||
|
Werkzeug
|
||||||
|
========
|
||||||
|
|
||||||
|
Werkzeug is a comprehensive `WSGI`_ web application library. It began as
|
||||||
|
a simple collection of various utilities for WSGI applications and has
|
||||||
|
become one of the most advanced WSGI utility libraries.
|
||||||
|
|
||||||
|
It includes:
|
||||||
|
|
||||||
|
* An interactive debugger that allows inspecting stack traces and source
|
||||||
|
code in the browser with an interactive interpreter for any frame in
|
||||||
|
the stack.
|
||||||
|
* A full-featured request object with objects to interact with headers,
|
||||||
|
query args, form data, files, and cookies.
|
||||||
|
* A response object that can wrap other WSGI applications and handle
|
||||||
|
streaming data.
|
||||||
|
* A routing system for matching URLs to endpoints and generating URLs
|
||||||
|
for endpoints, with an extensible system for capturing variables from
|
||||||
|
URLs.
|
||||||
|
* HTTP utilities to handle entity tags, cache control, dates, user
|
||||||
|
agents, cookies, files, and more.
|
||||||
|
* A threaded WSGI server for use while developing applications locally.
|
||||||
|
* A test client for simulating HTTP requests during testing without
|
||||||
|
requiring running a server.
|
||||||
|
|
||||||
|
Werkzeug is Unicode aware and doesn't enforce any dependencies. It is up
|
||||||
|
to the developer to choose a template engine, database adapter, and even
|
||||||
|
how to handle requests. It can be used to build all sorts of end user
|
||||||
|
applications such as blogs, wikis, or bulletin boards.
|
||||||
|
|
||||||
|
`Flask`_ wraps Werkzeug, using it to handle the details of WSGI while
|
||||||
|
providing more structure and patterns for defining powerful
|
||||||
|
applications.
|
||||||
|
|
||||||
|
|
||||||
|
Installing
|
||||||
|
----------
|
||||||
|
|
||||||
|
Install and update using `pip`_:
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
pip install -U Werkzeug
|
||||||
|
|
||||||
|
|
||||||
|
A Simple Example
|
||||||
|
----------------
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
from werkzeug.wrappers import Request, Response
|
||||||
|
|
||||||
|
@Request.application
|
||||||
|
def application(request):
|
||||||
|
return Response('Hello, World!')
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
from werkzeug.serving import run_simple
|
||||||
|
run_simple('localhost', 4000, application)
|
||||||
|
|
||||||
|
|
||||||
|
Links
|
||||||
|
-----
|
||||||
|
|
||||||
|
* Website: https://www.palletsprojects.com/p/werkzeug/
|
||||||
|
* Releases: https://pypi.org/project/Werkzeug/
|
||||||
|
* Code: https://github.com/pallets/werkzeug
|
||||||
|
* Issue tracker: https://github.com/pallets/werkzeug/issues
|
||||||
|
* Test status:
|
||||||
|
|
||||||
|
* Linux, Mac: https://travis-ci.org/pallets/werkzeug
|
||||||
|
* Windows: https://ci.appveyor.com/project/davidism/werkzeug
|
||||||
|
|
||||||
|
* Test coverage: https://codecov.io/gh/pallets/werkzeug
|
||||||
|
|
||||||
|
.. _WSGI: https://wsgi.readthedocs.io/en/latest/
|
||||||
|
.. _Flask: https://www.palletsprojects.com/p/flask/
|
||||||
|
.. _pip: https://pip.pypa.io/en/stable/quickstart/
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
pip
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
Copyright © 2007 by the Pallets team.
|
||||||
|
|
||||||
|
Some 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 of the copyright holder nor the names of its
|
||||||
|
contributors may be used to endorse or promote products derived from
|
||||||
|
this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE AND DOCUMENTATION 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 AND DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
SUCH DAMAGE.
|
||||||
@@ -0,0 +1,116 @@
|
|||||||
|
Metadata-Version: 2.0
|
||||||
|
Name: Werkzeug
|
||||||
|
Version: 0.14.1
|
||||||
|
Summary: The comprehensive WSGI web application library.
|
||||||
|
Home-page: https://www.palletsprojects.org/p/werkzeug/
|
||||||
|
Author: Armin Ronacher
|
||||||
|
Author-email: armin.ronacher@active-4.com
|
||||||
|
License: BSD
|
||||||
|
Description-Content-Type: UNKNOWN
|
||||||
|
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: Programming Language :: Python :: 3.6
|
||||||
|
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
|
||||||
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
||||||
|
Provides-Extra: dev
|
||||||
|
Requires-Dist: coverage; extra == 'dev'
|
||||||
|
Requires-Dist: pytest; extra == 'dev'
|
||||||
|
Requires-Dist: sphinx; extra == 'dev'
|
||||||
|
Requires-Dist: tox; extra == 'dev'
|
||||||
|
Provides-Extra: termcolor
|
||||||
|
Requires-Dist: termcolor; extra == 'termcolor'
|
||||||
|
Provides-Extra: watchdog
|
||||||
|
Requires-Dist: watchdog; extra == 'watchdog'
|
||||||
|
|
||||||
|
Werkzeug
|
||||||
|
========
|
||||||
|
|
||||||
|
Werkzeug is a comprehensive `WSGI`_ web application library. It began as
|
||||||
|
a simple collection of various utilities for WSGI applications and has
|
||||||
|
become one of the most advanced WSGI utility libraries.
|
||||||
|
|
||||||
|
It includes:
|
||||||
|
|
||||||
|
* An interactive debugger that allows inspecting stack traces and source
|
||||||
|
code in the browser with an interactive interpreter for any frame in
|
||||||
|
the stack.
|
||||||
|
* A full-featured request object with objects to interact with headers,
|
||||||
|
query args, form data, files, and cookies.
|
||||||
|
* A response object that can wrap other WSGI applications and handle
|
||||||
|
streaming data.
|
||||||
|
* A routing system for matching URLs to endpoints and generating URLs
|
||||||
|
for endpoints, with an extensible system for capturing variables from
|
||||||
|
URLs.
|
||||||
|
* HTTP utilities to handle entity tags, cache control, dates, user
|
||||||
|
agents, cookies, files, and more.
|
||||||
|
* A threaded WSGI server for use while developing applications locally.
|
||||||
|
* A test client for simulating HTTP requests during testing without
|
||||||
|
requiring running a server.
|
||||||
|
|
||||||
|
Werkzeug is Unicode aware and doesn't enforce any dependencies. It is up
|
||||||
|
to the developer to choose a template engine, database adapter, and even
|
||||||
|
how to handle requests. It can be used to build all sorts of end user
|
||||||
|
applications such as blogs, wikis, or bulletin boards.
|
||||||
|
|
||||||
|
`Flask`_ wraps Werkzeug, using it to handle the details of WSGI while
|
||||||
|
providing more structure and patterns for defining powerful
|
||||||
|
applications.
|
||||||
|
|
||||||
|
|
||||||
|
Installing
|
||||||
|
----------
|
||||||
|
|
||||||
|
Install and update using `pip`_:
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
pip install -U Werkzeug
|
||||||
|
|
||||||
|
|
||||||
|
A Simple Example
|
||||||
|
----------------
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
from werkzeug.wrappers import Request, Response
|
||||||
|
|
||||||
|
@Request.application
|
||||||
|
def application(request):
|
||||||
|
return Response('Hello, World!')
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
from werkzeug.serving import run_simple
|
||||||
|
run_simple('localhost', 4000, application)
|
||||||
|
|
||||||
|
|
||||||
|
Links
|
||||||
|
-----
|
||||||
|
|
||||||
|
* Website: https://www.palletsprojects.com/p/werkzeug/
|
||||||
|
* Releases: https://pypi.org/project/Werkzeug/
|
||||||
|
* Code: https://github.com/pallets/werkzeug
|
||||||
|
* Issue tracker: https://github.com/pallets/werkzeug/issues
|
||||||
|
* Test status:
|
||||||
|
|
||||||
|
* Linux, Mac: https://travis-ci.org/pallets/werkzeug
|
||||||
|
* Windows: https://ci.appveyor.com/project/davidism/werkzeug
|
||||||
|
|
||||||
|
* Test coverage: https://codecov.io/gh/pallets/werkzeug
|
||||||
|
|
||||||
|
.. _WSGI: https://wsgi.readthedocs.io/en/latest/
|
||||||
|
.. _Flask: https://www.palletsprojects.com/p/flask/
|
||||||
|
.. _pip: https://pip.pypa.io/en/stable/quickstart/
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,97 @@
|
|||||||
|
Werkzeug-0.14.1.dist-info/DESCRIPTION.rst,sha256=rOCN36jwsWtWsTpqPG96z7FMilB5qI1CIARSKRuUmz8,2452
|
||||||
|
Werkzeug-0.14.1.dist-info/LICENSE.txt,sha256=xndz_dD4m269AF9l_Xbl5V3tM1N3C1LoZC2PEPxWO-8,1534
|
||||||
|
Werkzeug-0.14.1.dist-info/METADATA,sha256=FbfadrPdJNUWAxMOKxGUtHe5R3IDSBKYYmAz3FvI3uY,3872
|
||||||
|
Werkzeug-0.14.1.dist-info/RECORD,,
|
||||||
|
Werkzeug-0.14.1.dist-info/WHEEL,sha256=GrqQvamwgBV4nLoJe0vhYRSWzWsx7xjlt74FT0SWYfE,110
|
||||||
|
Werkzeug-0.14.1.dist-info/metadata.json,sha256=4489UTt6HBp2NQil95-pBkjU4Je93SMHvMxZ_rjOpqA,1452
|
||||||
|
Werkzeug-0.14.1.dist-info/top_level.txt,sha256=QRyj2VjwJoQkrwjwFIOlB8Xg3r9un0NtqVHQF-15xaw,9
|
||||||
|
werkzeug/__init__.py,sha256=NR0d4n_-U9BLVKlOISean3zUt2vBwhvK-AZE6M0sC0k,6842
|
||||||
|
werkzeug/_compat.py,sha256=8c4U9o6A_TR9nKCcTbpZNxpqCXcXDVIbFawwKM2s92c,6311
|
||||||
|
werkzeug/_internal.py,sha256=GhEyGMlsSz_tYjsDWO9TG35VN7304MM8gjKDrXLEdVc,13873
|
||||||
|
werkzeug/_reloader.py,sha256=AyPphcOHPbu6qzW0UbrVvTDJdre5WgpxbhIJN_TqzUc,9264
|
||||||
|
werkzeug/datastructures.py,sha256=3IgNKNqrz-ZjmAG7y3YgEYK-enDiMT_b652PsypWcYg,90080
|
||||||
|
werkzeug/exceptions.py,sha256=3wp95Hqj9FqV8MdikV99JRcHse_fSMn27V8tgP5Hw2c,20505
|
||||||
|
werkzeug/filesystem.py,sha256=hHWeWo_gqLMzTRfYt8-7n2wWcWUNTnDyudQDLOBEICE,2175
|
||||||
|
werkzeug/formparser.py,sha256=mUuCwjzjb8_E4RzrAT2AioLuZSYpqR1KXTK6LScRYzA,21722
|
||||||
|
werkzeug/http.py,sha256=RQg4MJuhRv2isNRiEh__Phh09ebpfT3Kuu_GfrZ54_c,40079
|
||||||
|
werkzeug/local.py,sha256=QdQhWV5L8p1Y1CJ1CDStwxaUs24SuN5aebHwjVD08C8,14553
|
||||||
|
werkzeug/posixemulation.py,sha256=xEF2Bxc-vUCPkiu4IbfWVd3LW7DROYAT-ExW6THqyzw,3519
|
||||||
|
werkzeug/routing.py,sha256=2JVtdSgxKGeANy4Z_FP-dKESvKtkYGCZ1J2fARCLGCY,67214
|
||||||
|
werkzeug/script.py,sha256=DwaVDcXdaOTffdNvlBdLitxWXjKaRVT32VbhDtljFPY,11365
|
||||||
|
werkzeug/security.py,sha256=0m107exslz4QJLWQCpfQJ04z3re4eGHVggRvrQVAdWc,9193
|
||||||
|
werkzeug/serving.py,sha256=A0flnIJHufdn2QJ9oeuHfrXwP3LzP8fn3rNW6hbxKUg,31926
|
||||||
|
werkzeug/test.py,sha256=XmECSmnpASiYQTct4oMiWr0LT5jHWCtKqnpYKZd2ui8,36100
|
||||||
|
werkzeug/testapp.py,sha256=3HQRW1sHZKXuAjCvFMet4KXtQG3loYTFnvn6LWt-4zI,9396
|
||||||
|
werkzeug/urls.py,sha256=dUeLg2IeTm0WLmSvFeD4hBZWGdOs-uHudR5-t8n9zPo,36771
|
||||||
|
werkzeug/useragents.py,sha256=BhYMf4cBTHyN4U0WsQedePIocmNlH_34C-UwqSThGCc,5865
|
||||||
|
werkzeug/utils.py,sha256=BrY1j0DHQ8RTb0K1StIobKuMJhN9SQQkWEARbrh2qpk,22972
|
||||||
|
werkzeug/websocket.py,sha256=PpSeDxXD_0UsPAa5hQhQNM6mxibeUgn8lA8eRqiS0vM,11344
|
||||||
|
werkzeug/wrappers.py,sha256=kbyL_aFjxELwPgMwfNCYjKu-CR6kNkh-oO8wv3GXbk8,84511
|
||||||
|
werkzeug/wsgi.py,sha256=1Nob-aeChWQf7MsiicO8RZt6J90iRzEcik44ev9Qu8s,49347
|
||||||
|
werkzeug/contrib/__init__.py,sha256=f7PfttZhbrImqpr5Ezre8CXgwvcGUJK7zWNpO34WWrw,623
|
||||||
|
werkzeug/contrib/atom.py,sha256=qqfJcfIn2RYY-3hO3Oz0aLq9YuNubcPQ_KZcNsDwVJo,15575
|
||||||
|
werkzeug/contrib/cache.py,sha256=xBImHNj09BmX_7kC5NUCx8f_l4L8_O7zi0jCL21UZKE,32163
|
||||||
|
werkzeug/contrib/fixers.py,sha256=gR06T-w71ur-tHQ_31kP_4jpOncPJ4Wc1dOqTvYusr8,10179
|
||||||
|
werkzeug/contrib/iterio.py,sha256=RlqDvGhz0RneTpzE8dVc-yWCUv4nkPl1jEc_EDp2fH0,10814
|
||||||
|
werkzeug/contrib/jsrouting.py,sha256=QTmgeDoKXvNK02KzXgx9lr3cAH6fAzpwF5bBdPNvJPs,8564
|
||||||
|
werkzeug/contrib/limiter.py,sha256=iS8-ahPZ-JLRnmfIBzxpm7O_s3lPsiDMVWv7llAIDCI,1334
|
||||||
|
werkzeug/contrib/lint.py,sha256=Mj9NeUN7s4zIUWeQOAVjrmtZIcl3Mm2yDe9BSIr9YGE,12558
|
||||||
|
werkzeug/contrib/profiler.py,sha256=ISwCWvwVyGpDLRBRpLjo_qUWma6GXYBrTAco4PEQSHY,5151
|
||||||
|
werkzeug/contrib/securecookie.py,sha256=uWMyHDHY3lkeBRiCSayGqWkAIy4a7xAbSE_Hln9ecqc,12196
|
||||||
|
werkzeug/contrib/sessions.py,sha256=39LVNvLbm5JWpbxM79WC2l87MJFbqeISARjwYbkJatw,12577
|
||||||
|
werkzeug/contrib/testtools.py,sha256=G9xN-qeihJlhExrIZMCahvQOIDxdL9NiX874jiiHFMs,2453
|
||||||
|
werkzeug/contrib/wrappers.py,sha256=v7OYlz7wQtDlS9fey75UiRZ1IkUWqCpzbhsLy4k14Hw,10398
|
||||||
|
werkzeug/debug/__init__.py,sha256=uSn9BqCZ5E3ySgpoZtundpROGsn-uYvZtSFiTfAX24M,17452
|
||||||
|
werkzeug/debug/console.py,sha256=n3-dsKk1TsjnN-u4ZgmuWCU_HO0qw5IA7ttjhyyMM6I,5607
|
||||||
|
werkzeug/debug/repr.py,sha256=bKqstDYGfECpeLerd48s_hxuqK4b6UWnjMu3d_DHO8I,9340
|
||||||
|
werkzeug/debug/tbtools.py,sha256=rBudXCmkVdAKIcdhxANxgf09g6kQjJWW9_5bjSpr4OY,18451
|
||||||
|
werkzeug/debug/shared/FONT_LICENSE,sha256=LwAVEI1oYnvXiNMT9SnCH_TaLCxCpeHziDrMg0gPkAI,4673
|
||||||
|
werkzeug/debug/shared/console.png,sha256=bxax6RXXlvOij_KeqvSNX0ojJf83YbnZ7my-3Gx9w2A,507
|
||||||
|
werkzeug/debug/shared/debugger.js,sha256=PKPVYuyO4SX1hkqLOwCLvmIEO5154WatFYaXE-zIfKI,6264
|
||||||
|
werkzeug/debug/shared/jquery.js,sha256=7LkWEzqTdpEfELxcZZlS6wAx5Ff13zZ83lYO2_ujj7g,95957
|
||||||
|
werkzeug/debug/shared/less.png,sha256=-4-kNRaXJSONVLahrQKUxMwXGm9R4OnZ9SxDGpHlIR4,191
|
||||||
|
werkzeug/debug/shared/more.png,sha256=GngN7CioHQoV58rH6ojnkYi8c_qED2Aka5FO5UXrReY,200
|
||||||
|
werkzeug/debug/shared/source.png,sha256=RoGcBTE4CyCB85GBuDGTFlAnUqxwTBiIfDqW15EpnUQ,818
|
||||||
|
werkzeug/debug/shared/style.css,sha256=IEO0PC2pWmh2aEyGCaN--txuWsRCliuhlbEhPDFwh0A,6270
|
||||||
|
werkzeug/debug/shared/ubuntu.ttf,sha256=1eaHFyepmy4FyDvjLVzpITrGEBu_CZYY94jE0nED1c0,70220
|
||||||
|
Werkzeug-0.14.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||||
|
werkzeug/__pycache__/posixemulation.cpython-36.pyc,,
|
||||||
|
werkzeug/__pycache__/exceptions.cpython-36.pyc,,
|
||||||
|
werkzeug/__pycache__/websocket.cpython-36.pyc,,
|
||||||
|
werkzeug/__pycache__/datastructures.cpython-36.pyc,,
|
||||||
|
werkzeug/__pycache__/filesystem.cpython-36.pyc,,
|
||||||
|
werkzeug/__pycache__/useragents.cpython-36.pyc,,
|
||||||
|
werkzeug/__pycache__/serving.cpython-36.pyc,,
|
||||||
|
werkzeug/__pycache__/testapp.cpython-36.pyc,,
|
||||||
|
werkzeug/__pycache__/_compat.cpython-36.pyc,,
|
||||||
|
werkzeug/__pycache__/script.cpython-36.pyc,,
|
||||||
|
werkzeug/__pycache__/security.cpython-36.pyc,,
|
||||||
|
werkzeug/__pycache__/_internal.cpython-36.pyc,,
|
||||||
|
werkzeug/__pycache__/routing.cpython-36.pyc,,
|
||||||
|
werkzeug/__pycache__/_reloader.cpython-36.pyc,,
|
||||||
|
werkzeug/__pycache__/local.cpython-36.pyc,,
|
||||||
|
werkzeug/__pycache__/http.cpython-36.pyc,,
|
||||||
|
werkzeug/__pycache__/utils.cpython-36.pyc,,
|
||||||
|
werkzeug/__pycache__/wsgi.cpython-36.pyc,,
|
||||||
|
werkzeug/__pycache__/formparser.cpython-36.pyc,,
|
||||||
|
werkzeug/__pycache__/wrappers.cpython-36.pyc,,
|
||||||
|
werkzeug/__pycache__/__init__.cpython-36.pyc,,
|
||||||
|
werkzeug/__pycache__/test.cpython-36.pyc,,
|
||||||
|
werkzeug/__pycache__/urls.cpython-36.pyc,,
|
||||||
|
werkzeug/contrib/__pycache__/sessions.cpython-36.pyc,,
|
||||||
|
werkzeug/contrib/__pycache__/lint.cpython-36.pyc,,
|
||||||
|
werkzeug/contrib/__pycache__/jsrouting.cpython-36.pyc,,
|
||||||
|
werkzeug/contrib/__pycache__/iterio.cpython-36.pyc,,
|
||||||
|
werkzeug/contrib/__pycache__/testtools.cpython-36.pyc,,
|
||||||
|
werkzeug/contrib/__pycache__/securecookie.cpython-36.pyc,,
|
||||||
|
werkzeug/contrib/__pycache__/fixers.cpython-36.pyc,,
|
||||||
|
werkzeug/contrib/__pycache__/profiler.cpython-36.pyc,,
|
||||||
|
werkzeug/contrib/__pycache__/cache.cpython-36.pyc,,
|
||||||
|
werkzeug/contrib/__pycache__/limiter.cpython-36.pyc,,
|
||||||
|
werkzeug/contrib/__pycache__/wrappers.cpython-36.pyc,,
|
||||||
|
werkzeug/contrib/__pycache__/__init__.cpython-36.pyc,,
|
||||||
|
werkzeug/contrib/__pycache__/atom.cpython-36.pyc,,
|
||||||
|
werkzeug/debug/__pycache__/repr.cpython-36.pyc,,
|
||||||
|
werkzeug/debug/__pycache__/console.cpython-36.pyc,,
|
||||||
|
werkzeug/debug/__pycache__/tbtools.cpython-36.pyc,,
|
||||||
|
werkzeug/debug/__pycache__/__init__.cpython-36.pyc,,
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
Wheel-Version: 1.0
|
||||||
|
Generator: bdist_wheel (0.26.0)
|
||||||
|
Root-Is-Purelib: true
|
||||||
|
Tag: py2-none-any
|
||||||
|
Tag: py3-none-any
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"generator": "bdist_wheel (0.26.0)", "summary": "The comprehensive WSGI web application library.", "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", "Programming Language :: Python :: 3.6", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules"], "description_content_type": "UNKNOWN", "extensions": {"python.details": {"project_urls": {"Home": "https://www.palletsprojects.org/p/werkzeug/"}, "contacts": [{"email": "armin.ronacher@active-4.com", "name": "Armin Ronacher", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst", "license": "LICENSE.txt"}}}, "license": "BSD", "metadata_version": "2.0", "name": "Werkzeug", "platform": "any", "extras": ["dev", "termcolor", "watchdog"], "run_requires": [{"requires": ["coverage", "pytest", "sphinx", "tox"], "extra": "dev"}, {"requires": ["termcolor"], "extra": "termcolor"}, {"requires": ["watchdog"], "extra": "watchdog"}], "version": "0.14.1"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
werkzeug
|
||||||
Binary file not shown.
@@ -0,0 +1,48 @@
|
|||||||
|
Certifi: Python SSL Certificates
|
||||||
|
================================
|
||||||
|
|
||||||
|
`Certifi`_ is a carefully curated collection of Root Certificates for
|
||||||
|
validating the trustworthiness of SSL certificates while verifying the identity
|
||||||
|
of TLS hosts. It has been extracted from the `Requests`_ project.
|
||||||
|
|
||||||
|
Installation
|
||||||
|
------------
|
||||||
|
|
||||||
|
``certifi`` is available on PyPI. Simply install it with ``pip``::
|
||||||
|
|
||||||
|
$ pip install certifi
|
||||||
|
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
To reference the installed certificate authority (CA) bundle, you can use the
|
||||||
|
built-in function::
|
||||||
|
|
||||||
|
>>> import certifi
|
||||||
|
|
||||||
|
>>> certifi.where()
|
||||||
|
'/usr/local/lib/python2.7/site-packages/certifi/cacert.pem'
|
||||||
|
|
||||||
|
Enjoy!
|
||||||
|
|
||||||
|
1024-bit Root Certificates
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Browsers and certificate authorities have concluded that 1024-bit keys are
|
||||||
|
unacceptably weak for certificates, particularly root certificates. For this
|
||||||
|
reason, Mozilla has removed any weak (i.e. 1024-bit key) certificate from its
|
||||||
|
bundle, replacing it with an equivalent strong (i.e. 2048-bit or greater key)
|
||||||
|
certificate from the same CA. Because Mozilla removed these certificates from
|
||||||
|
its bundle, ``certifi`` removed them as well.
|
||||||
|
|
||||||
|
In previous versions, ``certifi`` provided the ``certifi.old_where()`` function
|
||||||
|
to intentionally re-add the 1024-bit roots back into your bundle. This was not
|
||||||
|
recommended in production and therefore was removed. To assist in migrating old
|
||||||
|
code, the function ``certifi.old_where()`` continues to exist as an alias of
|
||||||
|
``certifi.where()``. Please update your code to use ``certifi.where()``
|
||||||
|
instead. ``certifi.old_where()`` will be removed in 2018.
|
||||||
|
|
||||||
|
.. _`Certifi`: http://certifi.io/en/latest/
|
||||||
|
.. _`Requests`: http://docs.python-requests.org/en/latest/
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
pip
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
This packge contains a modified version of ca-bundle.crt:
|
||||||
|
|
||||||
|
ca-bundle.crt -- Bundle of CA Root Certificates
|
||||||
|
|
||||||
|
Certificate data from Mozilla as of: Thu Nov 3 19:04:19 2011#
|
||||||
|
This is a bundle of X.509 certificates of public Certificate Authorities
|
||||||
|
(CA). These were automatically extracted from Mozilla's root certificates
|
||||||
|
file (certdata.txt). This file can be found in the mozilla source tree:
|
||||||
|
http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt?raw=1#
|
||||||
|
It contains the certificates in PEM format and therefore
|
||||||
|
can be directly used with curl / libcurl / php_curl, or with
|
||||||
|
an Apache+mod_ssl webserver for SSL client authentication.
|
||||||
|
Just configure this file as the SSLCACertificateFile.#
|
||||||
|
|
||||||
|
***** BEGIN LICENSE BLOCK *****
|
||||||
|
This Source Code Form is subject to the terms of the Mozilla Public License,
|
||||||
|
v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain
|
||||||
|
one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
***** END LICENSE BLOCK *****
|
||||||
|
@(#) $RCSfile: certdata.txt,v $ $Revision: 1.80 $ $Date: 2011/11/03 15:11:58 $
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
Metadata-Version: 2.0
|
||||||
|
Name: certifi
|
||||||
|
Version: 2018.1.18
|
||||||
|
Summary: Python package for providing Mozilla's CA Bundle.
|
||||||
|
Home-page: http://certifi.io/
|
||||||
|
Author: Kenneth Reitz
|
||||||
|
Author-email: me@kennethreitz.com
|
||||||
|
License: MPL-2.0
|
||||||
|
Platform: UNKNOWN
|
||||||
|
Classifier: Development Status :: 5 - Production/Stable
|
||||||
|
Classifier: Intended Audience :: Developers
|
||||||
|
Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
|
||||||
|
Classifier: Natural Language :: English
|
||||||
|
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: Programming Language :: Python :: 3.6
|
||||||
|
|
||||||
|
Certifi: Python SSL Certificates
|
||||||
|
================================
|
||||||
|
|
||||||
|
`Certifi`_ is a carefully curated collection of Root Certificates for
|
||||||
|
validating the trustworthiness of SSL certificates while verifying the identity
|
||||||
|
of TLS hosts. It has been extracted from the `Requests`_ project.
|
||||||
|
|
||||||
|
Installation
|
||||||
|
------------
|
||||||
|
|
||||||
|
``certifi`` is available on PyPI. Simply install it with ``pip``::
|
||||||
|
|
||||||
|
$ pip install certifi
|
||||||
|
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
To reference the installed certificate authority (CA) bundle, you can use the
|
||||||
|
built-in function::
|
||||||
|
|
||||||
|
>>> import certifi
|
||||||
|
|
||||||
|
>>> certifi.where()
|
||||||
|
'/usr/local/lib/python2.7/site-packages/certifi/cacert.pem'
|
||||||
|
|
||||||
|
Enjoy!
|
||||||
|
|
||||||
|
1024-bit Root Certificates
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Browsers and certificate authorities have concluded that 1024-bit keys are
|
||||||
|
unacceptably weak for certificates, particularly root certificates. For this
|
||||||
|
reason, Mozilla has removed any weak (i.e. 1024-bit key) certificate from its
|
||||||
|
bundle, replacing it with an equivalent strong (i.e. 2048-bit or greater key)
|
||||||
|
certificate from the same CA. Because Mozilla removed these certificates from
|
||||||
|
its bundle, ``certifi`` removed them as well.
|
||||||
|
|
||||||
|
In previous versions, ``certifi`` provided the ``certifi.old_where()`` function
|
||||||
|
to intentionally re-add the 1024-bit roots back into your bundle. This was not
|
||||||
|
recommended in production and therefore was removed. To assist in migrating old
|
||||||
|
code, the function ``certifi.old_where()`` continues to exist as an alias of
|
||||||
|
``certifi.where()``. Please update your code to use ``certifi.where()``
|
||||||
|
instead. ``certifi.old_where()`` will be removed in 2018.
|
||||||
|
|
||||||
|
.. _`Certifi`: http://certifi.io/en/latest/
|
||||||
|
.. _`Requests`: http://docs.python-requests.org/en/latest/
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
certifi/__init__.py,sha256=QSRy1UztE-i09IuGIKKuc190k07lt6ktabbelPMIZoc,63
|
||||||
|
certifi/__main__.py,sha256=FiOYt1Fltst7wk9DRa6GCoBr8qBUxlNQu_MKJf04E6s,41
|
||||||
|
certifi/cacert.pem,sha256=7CEXfLHxDwvDpwVu0y_2lfJYk63cU-KUKI_DL1Lq8Uo,271088
|
||||||
|
certifi/core.py,sha256=xPQDdG_siy5A7BfqGWa7RJhcA61xXEqPiSrw9GNyhHE,836
|
||||||
|
certifi-2018.1.18.dist-info/DESCRIPTION.rst,sha256=jXrtxvB2mFIsHbuK8aP8RXrMx5yecyAIMZ2cn8Xb_ro,1679
|
||||||
|
certifi-2018.1.18.dist-info/LICENSE.txt,sha256=anCkv2sBABbVmmS4rkrY3H9e8W8ftFPMLs13HFo0ETE,1048
|
||||||
|
certifi-2018.1.18.dist-info/METADATA,sha256=mEn3NzwdDqk5m8P7xy4ThWe0f0fnWrgDPTiF_WsKMVw,2570
|
||||||
|
certifi-2018.1.18.dist-info/RECORD,,
|
||||||
|
certifi-2018.1.18.dist-info/WHEEL,sha256=5wvfB7GvgZAbKBSE9uX9Zbi6LCL-_KgezgHblXhCRnM,113
|
||||||
|
certifi-2018.1.18.dist-info/metadata.json,sha256=QJ0o4guOVYx7CMB_el5dN5f6EubxySvzsyNUnFcOBmE,1006
|
||||||
|
certifi-2018.1.18.dist-info/top_level.txt,sha256=KMu4vUCfsjLrkPbSNdgdekS-pVJzBAJFO__nI8NF6-U,8
|
||||||
|
certifi-2018.1.18.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||||
|
certifi/__pycache__/__main__.cpython-36.pyc,,
|
||||||
|
certifi/__pycache__/core.cpython-36.pyc,,
|
||||||
|
certifi/__pycache__/__init__.cpython-36.pyc,,
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
Wheel-Version: 1.0
|
||||||
|
Generator: bdist_wheel (0.30.0.a0)
|
||||||
|
Root-Is-Purelib: true
|
||||||
|
Tag: py2-none-any
|
||||||
|
Tag: py3-none-any
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"classifiers": ["Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)", "Natural Language :: English", "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", "Programming Language :: Python :: 3.6"], "extensions": {"python.details": {"contacts": [{"email": "me@kennethreitz.com", "name": "Kenneth Reitz", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst", "license": "LICENSE.txt"}, "project_urls": {"Home": "http://certifi.io/"}}}, "generator": "bdist_wheel (0.30.0.a0)", "license": "MPL-2.0", "metadata_version": "2.0", "name": "certifi", "summary": "Python package for providing Mozilla's CA Bundle.", "version": "2018.1.18"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
certifi
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
from .core import where, old_where
|
||||||
|
|
||||||
|
__version__ = "2018.01.18"
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
from certifi import where
|
||||||
|
print(where())
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,37 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
"""
|
||||||
|
certifi.py
|
||||||
|
~~~~~~~~~~
|
||||||
|
|
||||||
|
This module returns the installation location of cacert.pem.
|
||||||
|
"""
|
||||||
|
import os
|
||||||
|
import warnings
|
||||||
|
|
||||||
|
|
||||||
|
class DeprecatedBundleWarning(DeprecationWarning):
|
||||||
|
"""
|
||||||
|
The weak security bundle is being deprecated. Please bother your service
|
||||||
|
provider to get them to stop using cross-signed roots.
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
def where():
|
||||||
|
f = os.path.dirname(__file__)
|
||||||
|
|
||||||
|
return os.path.join(f, 'cacert.pem')
|
||||||
|
|
||||||
|
|
||||||
|
def old_where():
|
||||||
|
warnings.warn(
|
||||||
|
"The weak security bundle has been removed. certifi.old_where() is now an alias "
|
||||||
|
"of certifi.where(). Please update your code to use certifi.where() instead. "
|
||||||
|
"certifi.old_where() will be removed in 2018.",
|
||||||
|
DeprecatedBundleWarning
|
||||||
|
)
|
||||||
|
return where()
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
print(where())
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
Chardet: The Universal Character Encoding Detector
|
||||||
|
--------------------------------------------------
|
||||||
|
|
||||||
|
.. image:: https://img.shields.io/travis/chardet/chardet/stable.svg
|
||||||
|
:alt: Build status
|
||||||
|
:target: https://travis-ci.org/chardet/chardet
|
||||||
|
|
||||||
|
.. image:: https://img.shields.io/coveralls/chardet/chardet/stable.svg
|
||||||
|
:target: https://coveralls.io/r/chardet/chardet
|
||||||
|
|
||||||
|
.. image:: https://img.shields.io/pypi/v/chardet.svg
|
||||||
|
:target: https://warehouse.python.org/project/chardet/
|
||||||
|
:alt: Latest version on PyPI
|
||||||
|
|
||||||
|
.. image:: https://img.shields.io/pypi/l/chardet.svg
|
||||||
|
:alt: License
|
||||||
|
|
||||||
|
|
||||||
|
Detects
|
||||||
|
- ASCII, UTF-8, UTF-16 (2 variants), UTF-32 (4 variants)
|
||||||
|
- Big5, GB2312, EUC-TW, HZ-GB-2312, ISO-2022-CN (Traditional and Simplified Chinese)
|
||||||
|
- EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP (Japanese)
|
||||||
|
- EUC-KR, ISO-2022-KR (Korean)
|
||||||
|
- KOI8-R, MacCyrillic, IBM855, IBM866, ISO-8859-5, windows-1251 (Cyrillic)
|
||||||
|
- ISO-8859-5, windows-1251 (Bulgarian)
|
||||||
|
- ISO-8859-1, windows-1252 (Western European languages)
|
||||||
|
- ISO-8859-7, windows-1253 (Greek)
|
||||||
|
- ISO-8859-8, windows-1255 (Visual and Logical Hebrew)
|
||||||
|
- TIS-620 (Thai)
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
Our ISO-8859-2 and windows-1250 (Hungarian) probers have been temporarily
|
||||||
|
disabled until we can retrain the models.
|
||||||
|
|
||||||
|
Requires Python 2.6, 2.7, or 3.3+.
|
||||||
|
|
||||||
|
Installation
|
||||||
|
------------
|
||||||
|
|
||||||
|
Install from `PyPI <https://pypi.python.org/pypi/chardet>`_::
|
||||||
|
|
||||||
|
pip install chardet
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
-------------
|
||||||
|
|
||||||
|
For users, docs are now available at https://chardet.readthedocs.io/.
|
||||||
|
|
||||||
|
Command-line Tool
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
chardet comes with a command-line script which reports on the encodings of one
|
||||||
|
or more files::
|
||||||
|
|
||||||
|
% chardetect somefile someotherfile
|
||||||
|
somefile: windows-1252 with confidence 0.5
|
||||||
|
someotherfile: ascii with confidence 1.0
|
||||||
|
|
||||||
|
About
|
||||||
|
-----
|
||||||
|
|
||||||
|
This is a continuation of Mark Pilgrim's excellent chardet. Previously, two
|
||||||
|
versions needed to be maintained: one that supported python 2.x and one that
|
||||||
|
supported python 3.x. We've recently merged with `Ian Cordasco <https://github.com/sigmavirus24>`_'s
|
||||||
|
`charade <https://github.com/sigmavirus24/charade>`_ fork, so now we have one
|
||||||
|
coherent version that works for Python 2.6+.
|
||||||
|
|
||||||
|
:maintainer: Dan Blanchard
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
pip
|
||||||
@@ -0,0 +1,96 @@
|
|||||||
|
Metadata-Version: 2.0
|
||||||
|
Name: chardet
|
||||||
|
Version: 3.0.4
|
||||||
|
Summary: Universal encoding detector for Python 2 and 3
|
||||||
|
Home-page: https://github.com/chardet/chardet
|
||||||
|
Author: Daniel Blanchard
|
||||||
|
Author-email: dan.blanchard@gmail.com
|
||||||
|
License: LGPL
|
||||||
|
Keywords: encoding,i18n,xml
|
||||||
|
Platform: UNKNOWN
|
||||||
|
Classifier: Development Status :: 4 - Beta
|
||||||
|
Classifier: Intended Audience :: Developers
|
||||||
|
Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)
|
||||||
|
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: Programming Language :: Python :: 3.6
|
||||||
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
||||||
|
Classifier: Topic :: Text Processing :: Linguistic
|
||||||
|
|
||||||
|
Chardet: The Universal Character Encoding Detector
|
||||||
|
--------------------------------------------------
|
||||||
|
|
||||||
|
.. image:: https://img.shields.io/travis/chardet/chardet/stable.svg
|
||||||
|
:alt: Build status
|
||||||
|
:target: https://travis-ci.org/chardet/chardet
|
||||||
|
|
||||||
|
.. image:: https://img.shields.io/coveralls/chardet/chardet/stable.svg
|
||||||
|
:target: https://coveralls.io/r/chardet/chardet
|
||||||
|
|
||||||
|
.. image:: https://img.shields.io/pypi/v/chardet.svg
|
||||||
|
:target: https://warehouse.python.org/project/chardet/
|
||||||
|
:alt: Latest version on PyPI
|
||||||
|
|
||||||
|
.. image:: https://img.shields.io/pypi/l/chardet.svg
|
||||||
|
:alt: License
|
||||||
|
|
||||||
|
|
||||||
|
Detects
|
||||||
|
- ASCII, UTF-8, UTF-16 (2 variants), UTF-32 (4 variants)
|
||||||
|
- Big5, GB2312, EUC-TW, HZ-GB-2312, ISO-2022-CN (Traditional and Simplified Chinese)
|
||||||
|
- EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP (Japanese)
|
||||||
|
- EUC-KR, ISO-2022-KR (Korean)
|
||||||
|
- KOI8-R, MacCyrillic, IBM855, IBM866, ISO-8859-5, windows-1251 (Cyrillic)
|
||||||
|
- ISO-8859-5, windows-1251 (Bulgarian)
|
||||||
|
- ISO-8859-1, windows-1252 (Western European languages)
|
||||||
|
- ISO-8859-7, windows-1253 (Greek)
|
||||||
|
- ISO-8859-8, windows-1255 (Visual and Logical Hebrew)
|
||||||
|
- TIS-620 (Thai)
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
Our ISO-8859-2 and windows-1250 (Hungarian) probers have been temporarily
|
||||||
|
disabled until we can retrain the models.
|
||||||
|
|
||||||
|
Requires Python 2.6, 2.7, or 3.3+.
|
||||||
|
|
||||||
|
Installation
|
||||||
|
------------
|
||||||
|
|
||||||
|
Install from `PyPI <https://pypi.python.org/pypi/chardet>`_::
|
||||||
|
|
||||||
|
pip install chardet
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
-------------
|
||||||
|
|
||||||
|
For users, docs are now available at https://chardet.readthedocs.io/.
|
||||||
|
|
||||||
|
Command-line Tool
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
chardet comes with a command-line script which reports on the encodings of one
|
||||||
|
or more files::
|
||||||
|
|
||||||
|
% chardetect somefile someotherfile
|
||||||
|
somefile: windows-1252 with confidence 0.5
|
||||||
|
someotherfile: ascii with confidence 1.0
|
||||||
|
|
||||||
|
About
|
||||||
|
-----
|
||||||
|
|
||||||
|
This is a continuation of Mark Pilgrim's excellent chardet. Previously, two
|
||||||
|
versions needed to be maintained: one that supported python 2.x and one that
|
||||||
|
supported python 3.x. We've recently merged with `Ian Cordasco <https://github.com/sigmavirus24>`_'s
|
||||||
|
`charade <https://github.com/sigmavirus24/charade>`_ fork, so now we have one
|
||||||
|
coherent version that works for Python 2.6+.
|
||||||
|
|
||||||
|
:maintainer: Dan Blanchard
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,91 @@
|
|||||||
|
chardet/__init__.py,sha256=YsP5wQlsHJ2auF1RZJfypiSrCA7_bQiRm3ES_NI76-Y,1559
|
||||||
|
chardet/big5freq.py,sha256=D_zK5GyzoVsRes0HkLJziltFQX0bKCLOrFe9_xDvO_8,31254
|
||||||
|
chardet/big5prober.py,sha256=kBxHbdetBpPe7xrlb-e990iot64g_eGSLd32lB7_h3M,1757
|
||||||
|
chardet/chardistribution.py,sha256=3woWS62KrGooKyqz4zQSnjFbJpa6V7g02daAibTwcl8,9411
|
||||||
|
chardet/charsetgroupprober.py,sha256=6bDu8YIiRuScX4ca9Igb0U69TA2PGXXDej6Cc4_9kO4,3787
|
||||||
|
chardet/charsetprober.py,sha256=KSmwJErjypyj0bRZmC5F5eM7c8YQgLYIjZXintZNstg,5110
|
||||||
|
chardet/codingstatemachine.py,sha256=VYp_6cyyki5sHgXDSZnXW4q1oelHc3cu9AyQTX7uug8,3590
|
||||||
|
chardet/compat.py,sha256=PKTzHkSbtbHDqS9PyujMbX74q1a8mMpeQTDVsQhZMRw,1134
|
||||||
|
chardet/cp949prober.py,sha256=TZ434QX8zzBsnUvL_8wm4AQVTZ2ZkqEEQL_lNw9f9ow,1855
|
||||||
|
chardet/enums.py,sha256=Aimwdb9as1dJKZaFNUH2OhWIVBVd6ZkJJ_WK5sNY8cU,1661
|
||||||
|
chardet/escprober.py,sha256=kkyqVg1Yw3DIOAMJ2bdlyQgUFQhuHAW8dUGskToNWSc,3950
|
||||||
|
chardet/escsm.py,sha256=RuXlgNvTIDarndvllNCk5WZBIpdCxQ0kcd9EAuxUh84,10510
|
||||||
|
chardet/eucjpprober.py,sha256=iD8Jdp0ISRjgjiVN7f0e8xGeQJ5GM2oeZ1dA8nbSeUw,3749
|
||||||
|
chardet/euckrfreq.py,sha256=-7GdmvgWez4-eO4SuXpa7tBiDi5vRXQ8WvdFAzVaSfo,13546
|
||||||
|
chardet/euckrprober.py,sha256=MqFMTQXxW4HbzIpZ9lKDHB3GN8SP4yiHenTmf8g_PxY,1748
|
||||||
|
chardet/euctwfreq.py,sha256=No1WyduFOgB5VITUA7PLyC5oJRNzRyMbBxaKI1l16MA,31621
|
||||||
|
chardet/euctwprober.py,sha256=13p6EP4yRaxqnP4iHtxHOJ6R2zxHq1_m8hTRjzVZ95c,1747
|
||||||
|
chardet/gb2312freq.py,sha256=JX8lsweKLmnCwmk8UHEQsLgkr_rP_kEbvivC4qPOrlc,20715
|
||||||
|
chardet/gb2312prober.py,sha256=gGvIWi9WhDjE-xQXHvNIyrnLvEbMAYgyUSZ65HUfylw,1754
|
||||||
|
chardet/hebrewprober.py,sha256=c3SZ-K7hvyzGY6JRAZxJgwJ_sUS9k0WYkvMY00YBYFo,13838
|
||||||
|
chardet/jisfreq.py,sha256=vpmJv2Bu0J8gnMVRPHMFefTRvo_ha1mryLig8CBwgOg,25777
|
||||||
|
chardet/jpcntx.py,sha256=PYlNqRUQT8LM3cT5FmHGP0iiscFlTWED92MALvBungo,19643
|
||||||
|
chardet/langbulgarianmodel.py,sha256=1HqQS9Pbtnj1xQgxitJMvw8X6kKr5OockNCZWfEQrPE,12839
|
||||||
|
chardet/langcyrillicmodel.py,sha256=LODajvsetH87yYDDQKA2CULXUH87tI223dhfjh9Zx9c,17948
|
||||||
|
chardet/langgreekmodel.py,sha256=8YAW7bU8YwSJap0kIJSbPMw1BEqzGjWzqcqf0WgUKAA,12688
|
||||||
|
chardet/langhebrewmodel.py,sha256=JSnqmE5E62tDLTPTvLpQsg5gOMO4PbdWRvV7Avkc0HA,11345
|
||||||
|
chardet/langhungarianmodel.py,sha256=RhapYSG5l0ZaO-VV4Fan5sW0WRGQqhwBM61yx3yxyOA,12592
|
||||||
|
chardet/langthaimodel.py,sha256=8l0173Gu_W6G8mxmQOTEF4ls2YdE7FxWf3QkSxEGXJQ,11290
|
||||||
|
chardet/langturkishmodel.py,sha256=W22eRNJsqI6uWAfwXSKVWWnCerYqrI8dZQTm_M0lRFk,11102
|
||||||
|
chardet/latin1prober.py,sha256=S2IoORhFk39FEFOlSFWtgVybRiP6h7BlLldHVclNkU8,5370
|
||||||
|
chardet/mbcharsetprober.py,sha256=AR95eFH9vuqSfvLQZN-L5ijea25NOBCoXqw8s5O9xLQ,3413
|
||||||
|
chardet/mbcsgroupprober.py,sha256=h6TRnnYq2OxG1WdD5JOyxcdVpn7dG0q-vB8nWr5mbh4,2012
|
||||||
|
chardet/mbcssm.py,sha256=SY32wVIF3HzcjY3BaEspy9metbNSKxIIB0RKPn7tjpI,25481
|
||||||
|
chardet/sbcharsetprober.py,sha256=LDSpCldDCFlYwUkGkwD2oFxLlPWIWXT09akH_2PiY74,5657
|
||||||
|
chardet/sbcsgroupprober.py,sha256=1IprcCB_k1qfmnxGC6MBbxELlKqD3scW6S8YIwdeyXA,3546
|
||||||
|
chardet/sjisprober.py,sha256=IIt-lZj0WJqK4rmUZzKZP4GJlE8KUEtFYVuY96ek5MQ,3774
|
||||||
|
chardet/universaldetector.py,sha256=qL0174lSZE442eB21nnktT9_VcAye07laFWUeUrjttY,12485
|
||||||
|
chardet/utf8prober.py,sha256=IdD8v3zWOsB8OLiyPi-y_fqwipRFxV9Nc1eKBLSuIEw,2766
|
||||||
|
chardet/version.py,sha256=sp3B08mrDXB-pf3K9fqJ_zeDHOCLC8RrngQyDFap_7g,242
|
||||||
|
chardet/cli/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
||||||
|
chardet/cli/chardetect.py,sha256=YBO8L4mXo0WR6_-Fjh_8QxPBoEBNqB9oNxNrdc54AQs,2738
|
||||||
|
chardet-3.0.4.dist-info/DESCRIPTION.rst,sha256=PQ4sBsMyKFZkjC6QpmbpLn0UtCNyeb-ZqvCGEgyZMGk,2174
|
||||||
|
chardet-3.0.4.dist-info/METADATA,sha256=RV_2I4B1Z586DL8oVO5Kp7X5bUdQ5EuKAvNoAEF8wSw,3239
|
||||||
|
chardet-3.0.4.dist-info/RECORD,,
|
||||||
|
chardet-3.0.4.dist-info/WHEEL,sha256=o2k-Qa-RMNIJmUdIc7KU6VWR_ErNRbWNlxDIpl7lm34,110
|
||||||
|
chardet-3.0.4.dist-info/entry_points.txt,sha256=fAMmhu5eJ-zAJ-smfqQwRClQ3-nozOCmvJ6-E8lgGJo,60
|
||||||
|
chardet-3.0.4.dist-info/metadata.json,sha256=0htbRM18ujyGZDdfowgAqj6Hq2eQtwzwyhaEveKntgo,1375
|
||||||
|
chardet-3.0.4.dist-info/top_level.txt,sha256=AowzBbZy4x8EirABDdJSLJZMkJ_53iIag8xfKR6D7kI,8
|
||||||
|
../../../bin/chardetect,sha256=Tcc31EYTYwZWMWDIKmXEVfSv60Z9WUUKHkRyHUXRDEM,270
|
||||||
|
chardet-3.0.4.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||||
|
chardet/__pycache__/langgreekmodel.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/sjisprober.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/mbcharsetprober.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/eucjpprober.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/cp949prober.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/euctwfreq.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/gb2312prober.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/sbcsgroupprober.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/langturkishmodel.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/langhebrewmodel.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/version.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/euckrprober.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/euckrfreq.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/chardistribution.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/escsm.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/euctwprober.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/big5freq.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/compat.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/hebrewprober.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/latin1prober.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/universaldetector.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/escprober.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/codingstatemachine.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/utf8prober.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/langhungarianmodel.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/gb2312freq.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/enums.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/langthaimodel.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/jpcntx.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/mbcssm.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/big5prober.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/sbcharsetprober.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/langcyrillicmodel.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/__init__.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/jisfreq.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/charsetgroupprober.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/langbulgarianmodel.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/mbcsgroupprober.cpython-36.pyc,,
|
||||||
|
chardet/__pycache__/charsetprober.cpython-36.pyc,,
|
||||||
|
chardet/cli/__pycache__/chardetect.cpython-36.pyc,,
|
||||||
|
chardet/cli/__pycache__/__init__.cpython-36.pyc,,
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
Wheel-Version: 1.0
|
||||||
|
Generator: bdist_wheel (0.29.0)
|
||||||
|
Root-Is-Purelib: true
|
||||||
|
Tag: py2-none-any
|
||||||
|
Tag: py3-none-any
|
||||||
|
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
[console_scripts]
|
||||||
|
chardetect = chardet.cli.chardetect:main
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"classifiers": ["Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)", "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", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Text Processing :: Linguistic"], "extensions": {"python.commands": {"wrap_console": {"chardetect": "chardet.cli.chardetect:main"}}, "python.details": {"contacts": [{"email": "dan.blanchard@gmail.com", "name": "Daniel Blanchard", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst"}, "project_urls": {"Home": "https://github.com/chardet/chardet"}}, "python.exports": {"console_scripts": {"chardetect": "chardet.cli.chardetect:main"}}}, "generator": "bdist_wheel (0.29.0)", "keywords": ["encoding", "i18n", "xml"], "license": "LGPL", "metadata_version": "2.0", "name": "chardet", "summary": "Universal encoding detector for Python 2 and 3", "test_requires": [{"requires": ["hypothesis", "pytest"]}], "version": "3.0.4"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
chardet
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
######################## BEGIN LICENSE BLOCK ########################
|
||||||
|
# This library is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
# License as published by the Free Software Foundation; either
|
||||||
|
# version 2.1 of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This library is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# Lesser General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Lesser General Public
|
||||||
|
# License along with this library; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
|
||||||
|
# 02110-1301 USA
|
||||||
|
######################### END LICENSE BLOCK #########################
|
||||||
|
|
||||||
|
|
||||||
|
from .compat import PY2, PY3
|
||||||
|
from .universaldetector import UniversalDetector
|
||||||
|
from .version import __version__, VERSION
|
||||||
|
|
||||||
|
|
||||||
|
def detect(byte_str):
|
||||||
|
"""
|
||||||
|
Detect the encoding of the given byte string.
|
||||||
|
|
||||||
|
:param byte_str: The byte sequence to examine.
|
||||||
|
:type byte_str: ``bytes`` or ``bytearray``
|
||||||
|
"""
|
||||||
|
if not isinstance(byte_str, bytearray):
|
||||||
|
if not isinstance(byte_str, bytes):
|
||||||
|
raise TypeError('Expected object of type bytes or bytearray, got: '
|
||||||
|
'{0}'.format(type(byte_str)))
|
||||||
|
else:
|
||||||
|
byte_str = bytearray(byte_str)
|
||||||
|
detector = UniversalDetector()
|
||||||
|
detector.feed(byte_str)
|
||||||
|
return detector.close()
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user