Browse Source

Merge branch 'master' into blueprints

pull/262/head
Armin Ronacher 14 years ago
parent
commit
2d946b96a1
  1. 2
      docs/patterns/fabric.rst
  2. 14
      docs/patterns/jquery.rst
  3. 168
      extreview/approved.rst
  4. 64
      extreview/listed.rst
  5. 55
      extreview/unlisted.rst
  6. 8
      flask/app.py
  7. 5
      flask/helpers.py

2
docs/patterns/fabric.rst

@ -48,7 +48,7 @@ virtual environment::
def deploy(): def deploy():
# figure out the release name and version # figure out the release name and version
dist = local('python setup.py --fullname').strip() dist = local('python setup.py --fullname', capture=True).strip()
# upload the source tarball to the temporary folder on the server # upload the source tarball to the temporary folder on the server
put('dist/%s.tar.gz' % dist, '/tmp/yourapplication.tar.gz') put('dist/%s.tar.gz' % dist, '/tmp/yourapplication.tar.gz')
# create a place where we can unzip the tarball, then enter # create a place where we can unzip the tarball, then enter

14
docs/patterns/jquery.rst

@ -23,7 +23,7 @@ Loading jQuery
In order to use jQuery, you have to download it first and place it in the In order to use jQuery, you have to download it first and place it in the
static folder of your application and then ensure it's loaded. Ideally static folder of your application and then ensure it's loaded. Ideally
you have a layout template that is used for all pages where you just have you have a layout template that is used for all pages where you just have
to add a script statement to your `head` to load jQuery: to add a script statement to the bottom of your `<body>` to load jQuery:
.. sourcecode:: html .. sourcecode:: html
@ -35,15 +35,15 @@ Another method is using Google's `AJAX Libraries API
.. sourcecode:: html .. sourcecode:: html
<script type=text/javascript <script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.js"></script>
src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script>window.jQuery || document.write('<script src="{{
url_for('static', filename='jquery.js') }}">\x3C/script>')</script>
In this case you don't have to put jQuery into your static folder, it will In this case you have to put jQuery into your static folder as a fallback, but it will
instead be loaded from Google directly. This has the advantage that your first try to load it directly from Google. This has the advantage that your
website will probably load faster for users if they went to at least one website will probably load faster for users if they went to at least one
other website before using the same jQuery version from Google because it other website before using the same jQuery version from Google because it
will already be in the browser cache. Downside is that if you don't have will already be in the browser cache.
network connectivity during development jQuery will not load.
Where is My Site? Where is My Site?
----------------- -----------------

168
extreview/approved.rst

@ -1,168 +0,0 @@
Approved Extensions
===================
This document contains a list of all extensions that were approved and the
date of approval as well as notes. This should make it possible to better
track the extension approval process.
Flask-Babel
-----------
:First Approval: 2010-07-23
:Last Review: 2010-07-23
:Approved Version: 0.6
:Approved License: BSD
Notes: Developed by the Flask development head
How to improve: add a better long description to the next release
Flask-SQLAlchemy
----------------
:First Approval: 2010-07-25
:Last Review: 2010-07-25
:Approved Version: 0.9.1
:Approved License: BSD
Notes: Developed by the Flask development head
How to improve: add a better long description to the next release
Flask-Creole
------------
:First Approval: 2010-07-25
:Last Review: 2010-07-25
:Approved Version: 0.4.4
:Approved License: BSD
Notes: Flask-Markdown and this should share API, consider that when
approving Flask-Markdown
Flask-Genshi
------------
:First Approval: 2010-07-26
:Last Review: 2010-07-26
:Approved Version: 0.3.1
:Approved License: BSD
Notes: This is the first template engine extension. When others come
around it would be a good idea to decide on a common interface.
Flask-Script
------------
:First Approval: 2010-07-26
:Last Review: 2010-07-26
:Approved Version: 0.3
:Approved License: BSD
Notes: Flask-Actions has some overlap. Consider that when approving
Flask-Actions or similar packages.
Flask-CouchDB
-------------
:First Approval: 2010-07-26
:Last Review: 2010-07-26
:Approved Version: 0.2.1
:Approved License: MIT
There is also Flask-CouchDBKit. Both are fine because they are doing
different things, but the latter is not yet approved.
Flask-Testing
-------------
:First Approval: 2010-07-27
:Last Review: 2010-07-27
:Approved Version: 0.2.3
:Approved License: BSD
All fine.
Flask-WTF
---------
:First Approval: 2010-07-27
:Last Review: 2010-07-27
:Approved Version: 0.2.3
:Approved License: BSD
All fine.
Flask-Themes
------------
:First Approval: 2010-07-27
:Last Review: 2010-07-27
:Approved Version: 0.1.2
:Approved License: MIT
All fine.
Flask-Uploads
-------------
:First Approval: 2010-07-27
:Last Review: 2010-07-27
:Approved Version: 0.1.2
:Approved License: MIT
All fine.
Flask-Mail
----------
:First Approval: 2010-07-29
:Last Review: 2010-07-29
:Approved Version: 0.3.4
:Approved License: BSD
All fine.
Flask-XML-RPC
-------------
:First Approval: 2010-07-30
:Last Review: 2010-07-30
:Approved Version: 0.1.2
:Approved License: MIT
All fine.
Frozen-Flask
------------
:First Approval: 2011-06-05
:Last Review: 2011-06-05
:Approved Version: 0.4
:Approved License: BSD
All fine. Posted recommendations for minor items/enhancements to mailing list.
Flask-Login
-----------
:First Approval: 2011-06-07
:Last Review: 2011-06-07
:Approved Version: 0.1
:Approved License: MIT
All fine.

64
extreview/listed.rst

@ -1,64 +0,0 @@
Listed Extensions
=================
This list contains extensions that passed listing. This means the
extension is on the list of extensions on the website. It does not
contain extensions that are approved.
Flask-CouchDBKit
----------------
:Last-Review: 2010-07-25
:Reviewed Version: 0.2
Would be fine for approval, but the test suite is not part of the sdist
package (missing entry in MANIFEST.in) and the test suite does not respond
to either "make test" or "python setup.py test".
flask-csrf
----------
:Last-Review: 2010-07-25
:Reviewed Version: 0.2
Will not be approved because this is functionality that should be handled
in the form handling systems which is for Flask-WTF already the case.
Also, this implementation only supports one open tab with forms.
Name is not following Flask extension naming rules.
Considered for unlisting.
flask-lesscss
-------------
:Last-Review: 2010-07-25
:Reviewed Version: 0.9.1
Broken package description, nonconforming package name, does not follow
standard API rules (init_lesscss instead of lesscss).
Considered for unlisting, improved version should release as
"Flask-LessCSS" with a conforming API and fixed packages indices, as well
as a testsuite.
Flask-OAuth
-----------
:Last-Review: 2010-07-25
:Reviewed Version: 0.9
Short long description, missing tests.
Flask-OpenID
------------
:Last-Review: 2010-07-25
:Reviewed Version: 1.0.1
Short long description, missing tests.

55
extreview/unlisted.rst

@ -1,55 +0,0 @@
Unlisted Extensions
===================
This is a list of extensions that is currently rejected from listing and
with that also not approved. If an extension ends up here it should
improved to be listed.
Flask-Actions
-------------
:Last Review: 2010-07-25
:Reviewed Version: 0.2
Rejected because of missing description in PyPI, formatting issues with
the documentation (missing headlines, scrollbars etc.) and a general clash
of functionality with the Flask-Script package. Latter should not be a
problem, but the documentation should improve. For listing, the extension
developer should probably discuss the extension on the mailinglist with
others.
Futhermore it also has an egg registered with an invalid filename.
Flask-Jinja2Extender
--------------------
:Last Review: 2010-07-25
:Reviewed Version: 0.1
Usecase not obvious, hacky implementation, does not solve a problem that
could not be solved with Flask itself. I suppose it is to aid other
extensions, but that should be discussed on the mailinglist.
Flask-Markdown
--------------
:Last Review: 2010-07-25
:Reviewed Version: 0.2
Would be great for enlisting but it should follow the API of Flask-Creole.
Besides that, the docstrings are not valid rst (run through rst2html to
see the issue) and it is missing tests. Otherwise fine :)
flask-urls
----------
:Last Review: 2010-07-25
:Reviewed Version: 0.9.2
Broken PyPI index and non-conforming extension name. Due to the small
featureset this was also delisted from the list. It was there previously
before the approval process was introduced.

8
flask/app.py

@ -200,6 +200,12 @@ class Flask(_PackageBoundObject):
'MAX_CONTENT_LENGTH': None 'MAX_CONTENT_LENGTH': None
}) })
#: The rule object to use for URL rules created. This is used by
#: :meth:`add_url_rule`. Defaults to :class:`werkzeug.routing.Rule`.
#:
#: .. versionadded:: 0.7
url_rule_class = Rule
#: the test client that is used with when `test_client` is used. #: the test client that is used with when `test_client` is used.
#: #:
#: .. versionadded:: 0.7 #: .. versionadded:: 0.7
@ -693,7 +699,7 @@ class Flask(_PackageBoundObject):
if 'OPTIONS' not in methods: if 'OPTIONS' not in methods:
methods = tuple(methods) + ('OPTIONS',) methods = tuple(methods) + ('OPTIONS',)
provide_automatic_options = True provide_automatic_options = True
rule = Rule(rule, methods=methods, **options) rule = self.url_rule_class(rule, methods=methods, **options)
rule.provide_automatic_options = provide_automatic_options rule.provide_automatic_options = provide_automatic_options
self.url_map.add(rule) self.url_map.add(rule)
if view_func is not None: if view_func is not None:

5
flask/helpers.py

@ -380,7 +380,10 @@ def send_file(filename_or_fp, mimetype=None, as_attachment=False,
rv.set_etag('flask-%s-%s-%s' % ( rv.set_etag('flask-%s-%s-%s' % (
os.path.getmtime(filename), os.path.getmtime(filename),
os.path.getsize(filename), os.path.getsize(filename),
adler32(filename) & 0xffffffff adler32(
filename.encode('utf8') if isinstance(filename, unicode)
else filename
) & 0xffffffff
)) ))
if conditional: if conditional:
rv = rv.make_conditional(request) rv = rv.make_conditional(request)

Loading…
Cancel
Save