librelist archives

« back to archive

ANN: Flask 0.9 codename Camapri released today

ANN: Flask 0.9 codename Camapri released today

From:
Armin Ronacher
Date:
2012-07-01 @ 15:57
Hi,

Sorry for the delay in the announcement mail but it turned out that my
mail server fell over.  Apparently an extra second can cause quite a
problem :-)

Flask 0.9 is hereby released: codename Campari.

Changes from the changelog:

* The flask.Request.on_json_loading_failed() now returns a JSON
  formatted response by default.
* The flask.url_for() function now can generate anchors to the
  generated links.
* The flask.url_for() function now can also explicitly generate URL
  rules specific to a given HTTP method.
* Logger now only returns the debug log setting if it was not set
  explicitly.
* Unregister a circular dependency between the WSGI environment and the
  request object when shutting down the request. This means that
  environ werkzeug.request will be None after the response was returned
  to the WSGI server but has the advantage that the garbage collector
  is not needed on CPython to tear down the request unless the user
  created circular dependencies themselves.
* Session is now stored after callbacks so that if the session payload
  is stored in the session you can still modify it in an after request
  callback.
* The flask.Flask class will avoid importing the provided import name
  if it can (the required first parameter), to benefit tools which
  build Flask instances programmatically. The Flask class will fall
  back to using import on systems with custom module hooks, e.g. Google
  App Engine, or when the import name is inside a zip archive (usually
  a .egg) prior to Python 2.7.
* Blueprints now have a decorator to add custom template filters
  application wide, flask.Blueprint.app_template_filter().
* The Flask and Blueprint classes now have a non-decorator method for
  adding custom template filters application wide,
  flask.Flask.add_template_filter() and
  flask.Blueprint.add_app_template_filter().
* The flask.get_flashed_messages() function now allows rendering
  flashed message categories in separate blocks, through a
  category_filter argument.
* The flask.Flask.run() method now accepts None for host and port
  arguments, using default values when None. This allows for calling
  run using configuration values, e.g.
  app.run(app.config.get('MYHOST'), app.config.get('MYPORT')), with
  proper behavior whether or not a config file is provided.
* The flask.render_template() method now accepts a either an iterable
  of template names or a single template name. Previously, it only
  accepted a single template name. On an iterable, the first template
  found is rendered.
* Added flask.Flask.app_context() which works very similar to the
  request context but only provides access to the current application.
  This also adds support for URL generation without an active request
  context.
* View functions can now return a tuple with the first instance being
  an instance of flask.Response. This allows for returning
  jsonify(error="error msg"), 400 from a view function.
* Flask and Blueprint now provide a get_send_file_max_age() hook for
  subclasses to override behavior of serving static files from Flask
  when using flask.Flask.send_static_file() (used for the default
  static file handler) and send_file(). This hook is provided a
  filename, which for example allows changing cache controls by file
  extension. The default max-age for send_file and static files can be
  configured through a new SEND_FILE_MAX_AGE_DEFAULT configuration
  variable, which is used in the default get_send_file_max_age
  implementation.
* Fixed an assumption in sessions implementation which could break
  message flashing on sessions implementations which use external
  storage.
* Changed the behavior of tuple return values from functions. They are
  no longer arguments to the response object, they now have a defined
  meaning.
* Added flask.Flask.request_globals_class to allow a specific class to
  be used on creation of the g instance of each request.
* Added required_methods attribute to view functions to force-add
  methods on registration.
* Added flask.after_this_request().
* Added flask.stream_with_context() and the ability to push contexts
  multiple times without producing unexpected behavior.

I hopefully will also be able to provide the slides and recording for my
EuroPython talk on wednesday in time which covers some of the internals
behind the changes for 0.9.


Regards,
Armin

Re: [flask] ANN: Flask 0.9 codename Camapri released today

From:
Eka (Esteban Feldman)
Date:
2012-07-01 @ 18:27
On Sun, Jul 1, 2012 at 10:57 AM, Armin Ronacher <armin.ronacher@active-4.com
> wrote:

> Hi,
>
> Sorry for the delay in the announcement mail but it turned out that my
> mail server fell over.  Apparently an extra second can cause quite a
> problem :-)
>
> Flask 0.9 is hereby released: codename Campari.
>
> Changes from the changelog:
>
> * The flask.Request.on_json_loading_failed() now returns a JSON
>   formatted response by default.
> * The flask.url_for() function now can generate anchors to the
>   generated links.
> * The flask.url_for() function now can also explicitly generate URL
>   rules specific to a given HTTP method.
> * Logger now only returns the debug log setting if it was not set
>   explicitly.
> * Unregister a circular dependency between the WSGI environment and the
>   request object when shutting down the request. This means that
>   environ werkzeug.request will be None after the response was returned
>   to the WSGI server but has the advantage that the garbage collector
>   is not needed on CPython to tear down the request unless the user
>   created circular dependencies themselves.
> * Session is now stored after callbacks so that if the session payload
>   is stored in the session you can still modify it in an after request
>   callback.
> * The flask.Flask class will avoid importing the provided import name
>   if it can (the required first parameter), to benefit tools which
>   build Flask instances programmatically. The Flask class will fall
>   back to using import on systems with custom module hooks, e.g. Google
>   App Engine, or when the import name is inside a zip archive (usually
>   a .egg) prior to Python 2.7.
> * Blueprints now have a decorator to add custom template filters
>   application wide, flask.Blueprint.app_template_filter().
> * The Flask and Blueprint classes now have a non-decorator method for
>   adding custom template filters application wide,
>   flask.Flask.add_template_filter() and
>   flask.Blueprint.add_app_template_filter().
> * The flask.get_flashed_messages() function now allows rendering
>   flashed message categories in separate blocks, through a
>   category_filter argument.
> * The flask.Flask.run() method now accepts None for host and port
>   arguments, using default values when None. This allows for calling
>   run using configuration values, e.g.
>   app.run(app.config.get('MYHOST'), app.config.get('MYPORT')), with
>   proper behavior whether or not a config file is provided.
> * The flask.render_template() method now accepts a either an iterable
>   of template names or a single template name. Previously, it only
>   accepted a single template name. On an iterable, the first template
>   found is rendered.
> * Added flask.Flask.app_context() which works very similar to the
>   request context but only provides access to the current application.
>   This also adds support for URL generation without an active request
>   context.
> * View functions can now return a tuple with the first instance being
>   an instance of flask.Response. This allows for returning
>   jsonify(error="error msg"), 400 from a view function.
> * Flask and Blueprint now provide a get_send_file_max_age() hook for
>   subclasses to override behavior of serving static files from Flask
>   when using flask.Flask.send_static_file() (used for the default
>   static file handler) and send_file(). This hook is provided a
>   filename, which for example allows changing cache controls by file
>   extension. The default max-age for send_file and static files can be
>   configured through a new SEND_FILE_MAX_AGE_DEFAULT configuration
>   variable, which is used in the default get_send_file_max_age
>   implementation.
> * Fixed an assumption in sessions implementation which could break
>   message flashing on sessions implementations which use external
>   storage.
> * Changed the behavior of tuple return values from functions. They are
>   no longer arguments to the response object, they now have a defined
>   meaning.
> * Added flask.Flask.request_globals_class to allow a specific class to
>   be used on creation of the g instance of each request.
> * Added required_methods attribute to view functions to force-add
>   methods on registration.
> * Added flask.after_this_request().
> * Added flask.stream_with_context() and the ability to push contexts
>   multiple times without producing unexpected behavior.
>
> I hopefully will also be able to provide the slides and recording for my
> EuroPython talk on wednesday in time which covers some of the internals
> behind the changes for 0.9.
>
>
> Regards,
> Armin
>

Great work! Thanks... waiting for the slides.

-- 
Chant Hare Krishna and Be Happy

Eka

Re: [flask] ANN: Flask 0.9 codename Camapri released today

From:
Mohamad Efazati
Date:
2012-07-01 @ 19:38
really amazing... and good work with documanting ;)

2012/7/1 Eka (Esteban Feldman) <ekagaurangadas@gmail.com>

> On Sun, Jul 1, 2012 at 10:57 AM, Armin Ronacher <
> armin.ronacher@active-4.com> wrote:
>
>> Hi,
>>
>> Sorry for the delay in the announcement mail but it turned out that my
>> mail server fell over.  Apparently an extra second can cause quite a
>> problem :-)
>>
>> Flask 0.9 is hereby released: codename Campari.
>>
>> Changes from the changelog:
>>
>> * The flask.Request.on_json_loading_failed() now returns a JSON
>>   formatted response by default.
>> * The flask.url_for() function now can generate anchors to the
>>   generated links.
>> * The flask.url_for() function now can also explicitly generate URL
>>   rules specific to a given HTTP method.
>> * Logger now only returns the debug log setting if it was not set
>>   explicitly.
>> * Unregister a circular dependency between the WSGI environment and the
>>   request object when shutting down the request. This means that
>>   environ werkzeug.request will be None after the response was returned
>>   to the WSGI server but has the advantage that the garbage collector
>>   is not needed on CPython to tear down the request unless the user
>>   created circular dependencies themselves.
>> * Session is now stored after callbacks so that if the session payload
>>   is stored in the session you can still modify it in an after request
>>   callback.
>> * The flask.Flask class will avoid importing the provided import name
>>   if it can (the required first parameter), to benefit tools which
>>   build Flask instances programmatically. The Flask class will fall
>>   back to using import on systems with custom module hooks, e.g. Google
>>   App Engine, or when the import name is inside a zip archive (usually
>>   a .egg) prior to Python 2.7.
>> * Blueprints now have a decorator to add custom template filters
>>   application wide, flask.Blueprint.app_template_filter().
>> * The Flask and Blueprint classes now have a non-decorator method for
>>   adding custom template filters application wide,
>>   flask.Flask.add_template_filter() and
>>   flask.Blueprint.add_app_template_filter().
>> * The flask.get_flashed_messages() function now allows rendering
>>   flashed message categories in separate blocks, through a
>>   category_filter argument.
>> * The flask.Flask.run() method now accepts None for host and port
>>   arguments, using default values when None. This allows for calling
>>   run using configuration values, e.g.
>>   app.run(app.config.get('MYHOST'), app.config.get('MYPORT')), with
>>   proper behavior whether or not a config file is provided.
>> * The flask.render_template() method now accepts a either an iterable
>>   of template names or a single template name. Previously, it only
>>   accepted a single template name. On an iterable, the first template
>>   found is rendered.
>> * Added flask.Flask.app_context() which works very similar to the
>>   request context but only provides access to the current application.
>>   This also adds support for URL generation without an active request
>>   context.
>> * View functions can now return a tuple with the first instance being
>>   an instance of flask.Response. This allows for returning
>>   jsonify(error="error msg"), 400 from a view function.
>> * Flask and Blueprint now provide a get_send_file_max_age() hook for
>>   subclasses to override behavior of serving static files from Flask
>>   when using flask.Flask.send_static_file() (used for the default
>>   static file handler) and send_file(). This hook is provided a
>>   filename, which for example allows changing cache controls by file
>>   extension. The default max-age for send_file and static files can be
>>   configured through a new SEND_FILE_MAX_AGE_DEFAULT configuration
>>   variable, which is used in the default get_send_file_max_age
>>   implementation.
>> * Fixed an assumption in sessions implementation which could break
>>   message flashing on sessions implementations which use external
>>   storage.
>> * Changed the behavior of tuple return values from functions. They are
>>   no longer arguments to the response object, they now have a defined
>>   meaning.
>> * Added flask.Flask.request_globals_class to allow a specific class to
>>   be used on creation of the g instance of each request.
>> * Added required_methods attribute to view functions to force-add
>>   methods on registration.
>> * Added flask.after_this_request().
>> * Added flask.stream_with_context() and the ability to push contexts
>>   multiple times without producing unexpected behavior.
>>
>> I hopefully will also be able to provide the slides and recording for my
>> EuroPython talk on wednesday in time which covers some of the internals
>> behind the changes for 0.9.
>>
>>
>> Regards,
>> Armin
>>
>
> Great work! Thanks... waiting for the slides.
>
> --
> Chant Hare Krishna and Be Happy
>
> Eka
>
> --
> با تشکر
> افاضاتی
> http://www.efazati.org
>
>
>

Re: [flask] ANN: Flask 0.9 codename Camapri released today

From:
Alex
Date:
2012-07-01 @ 21:41
Great work!
...and I've just sent a pull request since the codename is mistyped ;-)

Alex

On Sun, Jul 1, 2012 at 9:38 PM, Mohamad Efazati <my.karatarh@gmail.com> wrote:
> really amazing... and good work with documanting ;)
>
> 2012/7/1 Eka (Esteban Feldman) <ekagaurangadas@gmail.com>
>>
>> On Sun, Jul 1, 2012 at 10:57 AM, Armin Ronacher
>> <armin.ronacher@active-4.com> wrote:
>>>
>>> Hi,
>>>
>>> Sorry for the delay in the announcement mail but it turned out that my
>>> mail server fell over.  Apparently an extra second can cause quite a
>>> problem :-)
>>>
>>> Flask 0.9 is hereby released: codename Campari.
>>>
>>> Changes from the changelog:
>>>
>>> * The flask.Request.on_json_loading_failed() now returns a JSON
>>>   formatted response by default.
>>> * The flask.url_for() function now can generate anchors to the
>>>   generated links.
>>> * The flask.url_for() function now can also explicitly generate URL
>>>   rules specific to a given HTTP method.
>>> * Logger now only returns the debug log setting if it was not set
>>>   explicitly.
>>> * Unregister a circular dependency between the WSGI environment and the
>>>   request object when shutting down the request. This means that
>>>   environ werkzeug.request will be None after the response was returned
>>>   to the WSGI server but has the advantage that the garbage collector
>>>   is not needed on CPython to tear down the request unless the user
>>>   created circular dependencies themselves.
>>> * Session is now stored after callbacks so that if the session payload
>>>   is stored in the session you can still modify it in an after request
>>>   callback.
>>> * The flask.Flask class will avoid importing the provided import name
>>>   if it can (the required first parameter), to benefit tools which
>>>   build Flask instances programmatically. The Flask class will fall
>>>   back to using import on systems with custom module hooks, e.g. Google
>>>   App Engine, or when the import name is inside a zip archive (usually
>>>   a .egg) prior to Python 2.7.
>>> * Blueprints now have a decorator to add custom template filters
>>>   application wide, flask.Blueprint.app_template_filter().
>>> * The Flask and Blueprint classes now have a non-decorator method for
>>>   adding custom template filters application wide,
>>>   flask.Flask.add_template_filter() and
>>>   flask.Blueprint.add_app_template_filter().
>>> * The flask.get_flashed_messages() function now allows rendering
>>>   flashed message categories in separate blocks, through a
>>>   category_filter argument.
>>> * The flask.Flask.run() method now accepts None for host and port
>>>   arguments, using default values when None. This allows for calling
>>>   run using configuration values, e.g.
>>>   app.run(app.config.get('MYHOST'), app.config.get('MYPORT')), with
>>>   proper behavior whether or not a config file is provided.
>>> * The flask.render_template() method now accepts a either an iterable
>>>   of template names or a single template name. Previously, it only
>>>   accepted a single template name. On an iterable, the first template
>>>   found is rendered.
>>> * Added flask.Flask.app_context() which works very similar to the
>>>   request context but only provides access to the current application.
>>>   This also adds support for URL generation without an active request
>>>   context.
>>> * View functions can now return a tuple with the first instance being
>>>   an instance of flask.Response. This allows for returning
>>>   jsonify(error="error msg"), 400 from a view function.
>>> * Flask and Blueprint now provide a get_send_file_max_age() hook for
>>>   subclasses to override behavior of serving static files from Flask
>>>   when using flask.Flask.send_static_file() (used for the default
>>>   static file handler) and send_file(). This hook is provided a
>>>   filename, which for example allows changing cache controls by file
>>>   extension. The default max-age for send_file and static files can be
>>>   configured through a new SEND_FILE_MAX_AGE_DEFAULT configuration
>>>   variable, which is used in the default get_send_file_max_age
>>>   implementation.
>>> * Fixed an assumption in sessions implementation which could break
>>>   message flashing on sessions implementations which use external
>>>   storage.
>>> * Changed the behavior of tuple return values from functions. They are
>>>   no longer arguments to the response object, they now have a defined
>>>   meaning.
>>> * Added flask.Flask.request_globals_class to allow a specific class to
>>>   be used on creation of the g instance of each request.
>>> * Added required_methods attribute to view functions to force-add
>>>   methods on registration.
>>> * Added flask.after_this_request().
>>> * Added flask.stream_with_context() and the ability to push contexts
>>>   multiple times without producing unexpected behavior.
>>>
>>> I hopefully will also be able to provide the slides and recording for my
>>> EuroPython talk on wednesday in time which covers some of the internals
>>> behind the changes for 0.9.
>>>
>>>
>>> Regards,
>>> Armin
>>
>>
>> Great work! Thanks... waiting for the slides.
>>
>>
>> --
>> Chant Hare Krishna and Be Happy
>>
>> Eka
>>
>> --
>> با تشکر
>> افاضاتی
>> http://www.efazati.org
>>
>>
>

Re: [flask] ANN: Flask 0.9 codename Camapri released today

From:
Anderson Cardoso
Date:
2012-07-02 @ 01:09
great work, thanks =)


2012/7/1 Alex <thinkpragmatic@gmail.com>

> Great work!
> ...and I've just sent a pull request since the codename is mistyped ;-)
>
> Alex
>
> On Sun, Jul 1, 2012 at 9:38 PM, Mohamad Efazati <my.karatarh@gmail.com>
> wrote:
> > really amazing... and good work with documanting ;)
> >
> > 2012/7/1 Eka (Esteban Feldman) <ekagaurangadas@gmail.com>
> >>
> >> On Sun, Jul 1, 2012 at 10:57 AM, Armin Ronacher
> >> <armin.ronacher@active-4.com> wrote:
> >>>
> >>> Hi,
> >>>
> >>> Sorry for the delay in the announcement mail but it turned out that my
> >>> mail server fell over.  Apparently an extra second can cause quite a
> >>> problem :-)
> >>>
> >>> Flask 0.9 is hereby released: codename Campari.
> >>>
> >>> Changes from the changelog:
> >>>
> >>> * The flask.Request.on_json_loading_failed() now returns a JSON
> >>>   formatted response by default.
> >>> * The flask.url_for() function now can generate anchors to the
> >>>   generated links.
> >>> * The flask.url_for() function now can also explicitly generate URL
> >>>   rules specific to a given HTTP method.
> >>> * Logger now only returns the debug log setting if it was not set
> >>>   explicitly.
> >>> * Unregister a circular dependency between the WSGI environment and the
> >>>   request object when shutting down the request. This means that
> >>>   environ werkzeug.request will be None after the response was returned
> >>>   to the WSGI server but has the advantage that the garbage collector
> >>>   is not needed on CPython to tear down the request unless the user
> >>>   created circular dependencies themselves.
> >>> * Session is now stored after callbacks so that if the session payload
> >>>   is stored in the session you can still modify it in an after request
> >>>   callback.
> >>> * The flask.Flask class will avoid importing the provided import name
> >>>   if it can (the required first parameter), to benefit tools which
> >>>   build Flask instances programmatically. The Flask class will fall
> >>>   back to using import on systems with custom module hooks, e.g. Google
> >>>   App Engine, or when the import name is inside a zip archive (usually
> >>>   a .egg) prior to Python 2.7.
> >>> * Blueprints now have a decorator to add custom template filters
> >>>   application wide, flask.Blueprint.app_template_filter().
> >>> * The Flask and Blueprint classes now have a non-decorator method for
> >>>   adding custom template filters application wide,
> >>>   flask.Flask.add_template_filter() and
> >>>   flask.Blueprint.add_app_template_filter().
> >>> * The flask.get_flashed_messages() function now allows rendering
> >>>   flashed message categories in separate blocks, through a
> >>>   category_filter argument.
> >>> * The flask.Flask.run() method now accepts None for host and port
> >>>   arguments, using default values when None. This allows for calling
> >>>   run using configuration values, e.g.
> >>>   app.run(app.config.get('MYHOST'), app.config.get('MYPORT')), with
> >>>   proper behavior whether or not a config file is provided.
> >>> * The flask.render_template() method now accepts a either an iterable
> >>>   of template names or a single template name. Previously, it only
> >>>   accepted a single template name. On an iterable, the first template
> >>>   found is rendered.
> >>> * Added flask.Flask.app_context() which works very similar to the
> >>>   request context but only provides access to the current application.
> >>>   This also adds support for URL generation without an active request
> >>>   context.
> >>> * View functions can now return a tuple with the first instance being
> >>>   an instance of flask.Response. This allows for returning
> >>>   jsonify(error="error msg"), 400 from a view function.
> >>> * Flask and Blueprint now provide a get_send_file_max_age() hook for
> >>>   subclasses to override behavior of serving static files from Flask
> >>>   when using flask.Flask.send_static_file() (used for the default
> >>>   static file handler) and send_file(). This hook is provided a
> >>>   filename, which for example allows changing cache controls by file
> >>>   extension. The default max-age for send_file and static files can be
> >>>   configured through a new SEND_FILE_MAX_AGE_DEFAULT configuration
> >>>   variable, which is used in the default get_send_file_max_age
> >>>   implementation.
> >>> * Fixed an assumption in sessions implementation which could break
> >>>   message flashing on sessions implementations which use external
> >>>   storage.
> >>> * Changed the behavior of tuple return values from functions. They are
> >>>   no longer arguments to the response object, they now have a defined
> >>>   meaning.
> >>> * Added flask.Flask.request_globals_class to allow a specific class to
> >>>   be used on creation of the g instance of each request.
> >>> * Added required_methods attribute to view functions to force-add
> >>>   methods on registration.
> >>> * Added flask.after_this_request().
> >>> * Added flask.stream_with_context() and the ability to push contexts
> >>>   multiple times without producing unexpected behavior.
> >>>
> >>> I hopefully will also be able to provide the slides and recording for
> my
> >>> EuroPython talk on wednesday in time which covers some of the internals
> >>> behind the changes for 0.9.
> >>>
> >>>
> >>> Regards,
> >>> Armin
> >>
> >>
> >> Great work! Thanks... waiting for the slides.
> >>
> >>
> >> --
> >> Chant Hare Krishna and Be Happy
> >>
> >> Eka
> >>
> >> --
> >> با تشکر
> >> افاضاتی
> >> http://www.efazati.org
> >>
> >>
> >
>



-- 
Anderson Pierre Cardoso
Computer Engineer - University of São Paulo
*
http://www.apierrecardoso.com*
twitter: *@apierre_cardoso* <https://twitter.com/#%21/apierre_cardoso>

Re: [flask] ANN: Flask 0.9 codename Camapri released today

From:
Joe Esposito
Date:
2012-07-02 @ 14:30
Awesome work, Armin =)

On Sun, Jul 1, 2012 at 9:09 PM, Anderson Cardoso
<apierre.cardoso@gmail.com>wrote:

> great work, thanks =)
>
>
>
> 2012/7/1 Alex <thinkpragmatic@gmail.com>
>
>> Great work!
>> ...and I've just sent a pull request since the codename is mistyped ;-)
>>
>> Alex
>>
>> On Sun, Jul 1, 2012 at 9:38 PM, Mohamad Efazati <my.karatarh@gmail.com>
>> wrote:
>> > really amazing... and good work with documanting ;)
>> >
>> > 2012/7/1 Eka (Esteban Feldman) <ekagaurangadas@gmail.com>
>> >>
>> >> On Sun, Jul 1, 2012 at 10:57 AM, Armin Ronacher
>> >> <armin.ronacher@active-4.com> wrote:
>> >>>
>> >>> Hi,
>> >>>
>> >>> Sorry for the delay in the announcement mail but it turned out that my
>> >>> mail server fell over.  Apparently an extra second can cause quite a
>> >>> problem :-)
>> >>>
>> >>> Flask 0.9 is hereby released: codename Campari.
>> >>>
>> >>> Changes from the changelog:
>> >>>
>> >>> * The flask.Request.on_json_loading_failed() now returns a JSON
>> >>>   formatted response by default.
>> >>> * The flask.url_for() function now can generate anchors to the
>> >>>   generated links.
>> >>> * The flask.url_for() function now can also explicitly generate URL
>> >>>   rules specific to a given HTTP method.
>> >>> * Logger now only returns the debug log setting if it was not set
>> >>>   explicitly.
>> >>> * Unregister a circular dependency between the WSGI environment and
>> the
>> >>>   request object when shutting down the request. This means that
>> >>>   environ werkzeug.request will be None after the response was
>> returned
>> >>>   to the WSGI server but has the advantage that the garbage collector
>> >>>   is not needed on CPython to tear down the request unless the user
>> >>>   created circular dependencies themselves.
>> >>> * Session is now stored after callbacks so that if the session payload
>> >>>   is stored in the session you can still modify it in an after request
>> >>>   callback.
>> >>> * The flask.Flask class will avoid importing the provided import name
>> >>>   if it can (the required first parameter), to benefit tools which
>> >>>   build Flask instances programmatically. The Flask class will fall
>> >>>   back to using import on systems with custom module hooks, e.g.
>> Google
>> >>>   App Engine, or when the import name is inside a zip archive (usually
>> >>>   a .egg) prior to Python 2.7.
>> >>> * Blueprints now have a decorator to add custom template filters
>> >>>   application wide, flask.Blueprint.app_template_filter().
>> >>> * The Flask and Blueprint classes now have a non-decorator method for
>> >>>   adding custom template filters application wide,
>> >>>   flask.Flask.add_template_filter() and
>> >>>   flask.Blueprint.add_app_template_filter().
>> >>> * The flask.get_flashed_messages() function now allows rendering
>> >>>   flashed message categories in separate blocks, through a
>> >>>   category_filter argument.
>> >>> * The flask.Flask.run() method now accepts None for host and port
>> >>>   arguments, using default values when None. This allows for calling
>> >>>   run using configuration values, e.g.
>> >>>   app.run(app.config.get('MYHOST'), app.config.get('MYPORT')), with
>> >>>   proper behavior whether or not a config file is provided.
>> >>> * The flask.render_template() method now accepts a either an iterable
>> >>>   of template names or a single template name. Previously, it only
>> >>>   accepted a single template name. On an iterable, the first template
>> >>>   found is rendered.
>> >>> * Added flask.Flask.app_context() which works very similar to the
>> >>>   request context but only provides access to the current application.
>> >>>   This also adds support for URL generation without an active request
>> >>>   context.
>> >>> * View functions can now return a tuple with the first instance being
>> >>>   an instance of flask.Response. This allows for returning
>> >>>   jsonify(error="error msg"), 400 from a view function.
>> >>> * Flask and Blueprint now provide a get_send_file_max_age() hook for
>> >>>   subclasses to override behavior of serving static files from Flask
>> >>>   when using flask.Flask.send_static_file() (used for the default
>> >>>   static file handler) and send_file(). This hook is provided a
>> >>>   filename, which for example allows changing cache controls by file
>> >>>   extension. The default max-age for send_file and static files can be
>> >>>   configured through a new SEND_FILE_MAX_AGE_DEFAULT configuration
>> >>>   variable, which is used in the default get_send_file_max_age
>> >>>   implementation.
>> >>> * Fixed an assumption in sessions implementation which could break
>> >>>   message flashing on sessions implementations which use external
>> >>>   storage.
>> >>> * Changed the behavior of tuple return values from functions. They are
>> >>>   no longer arguments to the response object, they now have a defined
>> >>>   meaning.
>> >>> * Added flask.Flask.request_globals_class to allow a specific class to
>> >>>   be used on creation of the g instance of each request.
>> >>> * Added required_methods attribute to view functions to force-add
>> >>>   methods on registration.
>> >>> * Added flask.after_this_request().
>> >>> * Added flask.stream_with_context() and the ability to push contexts
>> >>>   multiple times without producing unexpected behavior.
>> >>>
>> >>> I hopefully will also be able to provide the slides and recording for
>> my
>> >>> EuroPython talk on wednesday in time which covers some of the
>> internals
>> >>> behind the changes for 0.9.
>> >>>
>> >>>
>> >>> Regards,
>> >>> Armin
>> >>
>> >>
>> >> Great work! Thanks... waiting for the slides.
>> >>
>> >>
>> >> --
>> >> Chant Hare Krishna and Be Happy
>> >>
>> >> Eka
>> >>
>> >> --
>> >> با تشکر
>> >> افاضاتی
>> >> http://www.efazati.org
>> >>
>> >>
>> >
>>
>
>
>
> --
> Anderson Pierre Cardoso
> Computer Engineer - University of São Paulo
> *
> http://www.apierrecardoso.com*
> twitter: *@apierre_cardoso* <https://twitter.com/#%21/apierre_cardoso>
>
>
>

Re: [flask] ANN: Flask 0.9 codename Camapri released today

From:
Darren Worrall
Date:
2012-07-02 @ 14:43
On 2 July 2012 15:30, Joe Esposito <espo58@gmail.com> wrote:
> Awesome work, Armin =)
>
> On Sun, Jul 1, 2012 at 9:09 PM, Anderson Cardoso <apierre.cardoso@gmail.com>
> wrote:
>>
>> great work, thanks =)
>>
>>
>>
>> 2012/7/1 Alex <thinkpragmatic@gmail.com>
>>>
>>> Great work!
>>> ...and I've just sent a pull request since the codename is mistyped ;-)
>>>
>>> Alex
>>>
>>> On Sun, Jul 1, 2012 at 9:38 PM, Mohamad Efazati <my.karatarh@gmail.com>
>>> wrote:
>>> > really amazing... and good work with documanting ;)
>>> >
>>> > 2012/7/1 Eka (Esteban Feldman) <ekagaurangadas@gmail.com>
>>> >>
>>> >> On Sun, Jul 1, 2012 at 10:57 AM, Armin Ronacher
>>> >> <armin.ronacher@active-4.com> wrote:
>>> >>>
>>> >>> Hi,
>>> >>>
>>> >>> Sorry for the delay in the announcement mail but it turned out that
>>> >>> my
>>> >>> mail server fell over.  Apparently an extra second can cause quite a
>>> >>> problem :-)
>>> >>>
>>> >>> Flask 0.9 is hereby released: codename Campari.
>>> >>>
>>> >>> Changes from the changelog:
>>> >>>
>>> >>> * The flask.Request.on_json_loading_failed() now returns a JSON
>>> >>>   formatted response by default.
>>> >>> * The flask.url_for() function now can generate anchors to the
>>> >>>   generated links.
>>> >>> * The flask.url_for() function now can also explicitly generate URL
>>> >>>   rules specific to a given HTTP method.
>>> >>> * Logger now only returns the debug log setting if it was not set
>>> >>>   explicitly.
>>> >>> * Unregister a circular dependency between the WSGI environment and
>>> >>> the
>>> >>>   request object when shutting down the request. This means that
>>> >>>   environ werkzeug.request will be None after the response was
>>> >>> returned
>>> >>>   to the WSGI server but has the advantage that the garbage collector
>>> >>>   is not needed on CPython to tear down the request unless the user
>>> >>>   created circular dependencies themselves.
>>> >>> * Session is now stored after callbacks so that if the session
>>> >>> payload
>>> >>>   is stored in the session you can still modify it in an after
>>> >>> request
>>> >>>   callback.
>>> >>> * The flask.Flask class will avoid importing the provided import name
>>> >>>   if it can (the required first parameter), to benefit tools which
>>> >>>   build Flask instances programmatically. The Flask class will fall
>>> >>>   back to using import on systems with custom module hooks, e.g.
>>> >>> Google
>>> >>>   App Engine, or when the import name is inside a zip archive
>>> >>> (usually
>>> >>>   a .egg) prior to Python 2.7.
>>> >>> * Blueprints now have a decorator to add custom template filters
>>> >>>   application wide, flask.Blueprint.app_template_filter().
>>> >>> * The Flask and Blueprint classes now have a non-decorator method for
>>> >>>   adding custom template filters application wide,
>>> >>>   flask.Flask.add_template_filter() and
>>> >>>   flask.Blueprint.add_app_template_filter().
>>> >>> * The flask.get_flashed_messages() function now allows rendering
>>> >>>   flashed message categories in separate blocks, through a
>>> >>>   category_filter argument.
>>> >>> * The flask.Flask.run() method now accepts None for host and port
>>> >>>   arguments, using default values when None. This allows for calling
>>> >>>   run using configuration values, e.g.
>>> >>>   app.run(app.config.get('MYHOST'), app.config.get('MYPORT')), with
>>> >>>   proper behavior whether or not a config file is provided.
>>> >>> * The flask.render_template() method now accepts a either an iterable
>>> >>>   of template names or a single template name. Previously, it only
>>> >>>   accepted a single template name. On an iterable, the first template
>>> >>>   found is rendered.
>>> >>> * Added flask.Flask.app_context() which works very similar to the
>>> >>>   request context but only provides access to the current
>>> >>> application.
>>> >>>   This also adds support for URL generation without an active request
>>> >>>   context.
>>> >>> * View functions can now return a tuple with the first instance being
>>> >>>   an instance of flask.Response. This allows for returning
>>> >>>   jsonify(error="error msg"), 400 from a view function.
>>> >>> * Flask and Blueprint now provide a get_send_file_max_age() hook for
>>> >>>   subclasses to override behavior of serving static files from Flask
>>> >>>   when using flask.Flask.send_static_file() (used for the default
>>> >>>   static file handler) and send_file(). This hook is provided a
>>> >>>   filename, which for example allows changing cache controls by file
>>> >>>   extension. The default max-age for send_file and static files can
>>> >>> be
>>> >>>   configured through a new SEND_FILE_MAX_AGE_DEFAULT configuration
>>> >>>   variable, which is used in the default get_send_file_max_age
>>> >>>   implementation.
>>> >>> * Fixed an assumption in sessions implementation which could break
>>> >>>   message flashing on sessions implementations which use external
>>> >>>   storage.
>>> >>> * Changed the behavior of tuple return values from functions. They
>>> >>> are
>>> >>>   no longer arguments to the response object, they now have a defined
>>> >>>   meaning.
>>> >>> * Added flask.Flask.request_globals_class to allow a specific class
>>> >>> to
>>> >>>   be used on creation of the g instance of each request.
>>> >>> * Added required_methods attribute to view functions to force-add
>>> >>>   methods on registration.
>>> >>> * Added flask.after_this_request().
>>> >>> * Added flask.stream_with_context() and the ability to push contexts
>>> >>>   multiple times without producing unexpected behavior.
>>> >>>
>>> >>> I hopefully will also be able to provide the slides and recording for
>>> >>> my
>>> >>> EuroPython talk on wednesday in time which covers some of the
>>> >>> internals
>>> >>> behind the changes for 0.9.
>>> >>>
>>> >>>
>>> >>> Regards,
>>> >>> Armin
>>> >>
>>> >>
>>> >> Great work! Thanks... waiting for the slides.
>>> >>
>>> >>
>>> >> --
>>> >> Chant Hare Krishna and Be Happy
>>> >>
>>> >> Eka
>>> >>
>>> >> --
>>> >> با تشکر
>>> >> افاضاتی
>>> >> http://www.efazati.org
>>> >>
>>> >>
>>> >
>>
>>
>>
>>
>> --
>> Anderson Pierre Cardoso
>> Computer Engineer - University of São Paulo
>>
>> http://www.apierrecardoso.com
>> twitter: @apierre_cardoso
>>
>>
>

daz$ pip install Flask==0.9
Downloading/unpacking Flask==0.9
<snip>
Successfully installed Flask
Cleaning up...

daz$ ./run_tests.py

....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
----------------------------------------------------------------------
Ran 756 tests in 43.502s

OK

Seamless, top job :)

Re: [flask] ANN: Flask 0.9 codename Camapri released today

From:
ol
Date:
2012-07-02 @ 17:28
Great work, much appreciated!

--
ol

On Mon, Jul 2, 2012 at 4:43 PM, Darren Worrall <darren@iweb.co.uk> wrote:

> On 2 July 2012 15:30, Joe Esposito <espo58@gmail.com> wrote:
> > Awesome work, Armin =)
> >
> > On Sun, Jul 1, 2012 at 9:09 PM, Anderson Cardoso <
> apierre.cardoso@gmail.com>
> > wrote:
> >>
> >> great work, thanks =)
> >>
> >>
> >>
> >> 2012/7/1 Alex <thinkpragmatic@gmail.com>
> >>>
> >>> Great work!
> >>> ...and I've just sent a pull request since the codename is mistyped ;-)
> >>>
> >>> Alex
> >>>
> >>> On Sun, Jul 1, 2012 at 9:38 PM, Mohamad Efazati <my.karatarh@gmail.com
> >
> >>> wrote:
> >>> > really amazing... and good work with documanting ;)
> >>> >
> >>> > 2012/7/1 Eka (Esteban Feldman) <ekagaurangadas@gmail.com>
> >>> >>
> >>> >> On Sun, Jul 1, 2012 at 10:57 AM, Armin Ronacher
> >>> >> <armin.ronacher@active-4.com> wrote:
> >>> >>>
> >>> >>> Hi,
> >>> >>>
> >>> >>> Sorry for the delay in the announcement mail but it turned out that
> >>> >>> my
> >>> >>> mail server fell over.  Apparently an extra second can cause quite
> a
> >>> >>> problem :-)
> >>> >>>
> >>> >>> Flask 0.9 is hereby released: codename Campari.
> >>> >>>
> >>> >>> Changes from the changelog:
> >>> >>>
> >>> >>> * The flask.Request.on_json_loading_failed() now returns a JSON
> >>> >>>   formatted response by default.
> >>> >>> * The flask.url_for() function now can generate anchors to the
> >>> >>>   generated links.
> >>> >>> * The flask.url_for() function now can also explicitly generate URL
> >>> >>>   rules specific to a given HTTP method.
> >>> >>> * Logger now only returns the debug log setting if it was not set
> >>> >>>   explicitly.
> >>> >>> * Unregister a circular dependency between the WSGI environment and
> >>> >>> the
> >>> >>>   request object when shutting down the request. This means that
> >>> >>>   environ werkzeug.request will be None after the response was
> >>> >>> returned
> >>> >>>   to the WSGI server but has the advantage that the garbage
> collector
> >>> >>>   is not needed on CPython to tear down the request unless the user
> >>> >>>   created circular dependencies themselves.
> >>> >>> * Session is now stored after callbacks so that if the session
> >>> >>> payload
> >>> >>>   is stored in the session you can still modify it in an after
> >>> >>> request
> >>> >>>   callback.
> >>> >>> * The flask.Flask class will avoid importing the provided import
> name
> >>> >>>   if it can (the required first parameter), to benefit tools which
> >>> >>>   build Flask instances programmatically. The Flask class will fall
> >>> >>>   back to using import on systems with custom module hooks, e.g.
> >>> >>> Google
> >>> >>>   App Engine, or when the import name is inside a zip archive
> >>> >>> (usually
> >>> >>>   a .egg) prior to Python 2.7.
> >>> >>> * Blueprints now have a decorator to add custom template filters
> >>> >>>   application wide, flask.Blueprint.app_template_filter().
> >>> >>> * The Flask and Blueprint classes now have a non-decorator method
> for
> >>> >>>   adding custom template filters application wide,
> >>> >>>   flask.Flask.add_template_filter() and
> >>> >>>   flask.Blueprint.add_app_template_filter().
> >>> >>> * The flask.get_flashed_messages() function now allows rendering
> >>> >>>   flashed message categories in separate blocks, through a
> >>> >>>   category_filter argument.
> >>> >>> * The flask.Flask.run() method now accepts None for host and port
> >>> >>>   arguments, using default values when None. This allows for
> calling
> >>> >>>   run using configuration values, e.g.
> >>> >>>   app.run(app.config.get('MYHOST'), app.config.get('MYPORT')), with
> >>> >>>   proper behavior whether or not a config file is provided.
> >>> >>> * The flask.render_template() method now accepts a either an
> iterable
> >>> >>>   of template names or a single template name. Previously, it only
> >>> >>>   accepted a single template name. On an iterable, the first
> template
> >>> >>>   found is rendered.
> >>> >>> * Added flask.Flask.app_context() which works very similar to the
> >>> >>>   request context but only provides access to the current
> >>> >>> application.
> >>> >>>   This also adds support for URL generation without an active
> request
> >>> >>>   context.
> >>> >>> * View functions can now return a tuple with the first instance
> being
> >>> >>>   an instance of flask.Response. This allows for returning
> >>> >>>   jsonify(error="error msg"), 400 from a view function.
> >>> >>> * Flask and Blueprint now provide a get_send_file_max_age() hook
> for
> >>> >>>   subclasses to override behavior of serving static files from
> Flask
> >>> >>>   when using flask.Flask.send_static_file() (used for the default
> >>> >>>   static file handler) and send_file(). This hook is provided a
> >>> >>>   filename, which for example allows changing cache controls by
> file
> >>> >>>   extension. The default max-age for send_file and static files can
> >>> >>> be
> >>> >>>   configured through a new SEND_FILE_MAX_AGE_DEFAULT configuration
> >>> >>>   variable, which is used in the default get_send_file_max_age
> >>> >>>   implementation.
> >>> >>> * Fixed an assumption in sessions implementation which could break
> >>> >>>   message flashing on sessions implementations which use external
> >>> >>>   storage.
> >>> >>> * Changed the behavior of tuple return values from functions. They
> >>> >>> are
> >>> >>>   no longer arguments to the response object, they now have a
> defined
> >>> >>>   meaning.
> >>> >>> * Added flask.Flask.request_globals_class to allow a specific class
> >>> >>> to
> >>> >>>   be used on creation of the g instance of each request.
> >>> >>> * Added required_methods attribute to view functions to force-add
> >>> >>>   methods on registration.
> >>> >>> * Added flask.after_this_request().
> >>> >>> * Added flask.stream_with_context() and the ability to push
> contexts
> >>> >>>   multiple times without producing unexpected behavior.
> >>> >>>
> >>> >>> I hopefully will also be able to provide the slides and recording
> for
> >>> >>> my
> >>> >>> EuroPython talk on wednesday in time which covers some of the
> >>> >>> internals
> >>> >>> behind the changes for 0.9.
> >>> >>>
> >>> >>>
> >>> >>> Regards,
> >>> >>> Armin
> >>> >>
> >>> >>
> >>> >> Great work! Thanks... waiting for the slides.
> >>> >>
> >>> >>
> >>> >> --
> >>> >> Chant Hare Krishna and Be Happy
> >>> >>
> >>> >> Eka
> >>> >>
> >>> >> --
> >>> >> با تشکر
> >>> >> افاضاتی
> >>> >> http://www.efazati.org
> >>> >>
> >>> >>
> >>> >
> >>
> >>
> >>
> >>
> >> --
> >> Anderson Pierre Cardoso
> >> Computer Engineer - University of São Paulo
> >>
> >> http://www.apierrecardoso.com
> >> twitter: @apierre_cardoso
> >>
> >>
> >
>
> daz$ pip install Flask==0.9
> Downloading/unpacking Flask==0.9
> <snip>
> Successfully installed Flask
> Cleaning up...
>
> daz$ ./run_tests.py
>
> 
....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
> ----------------------------------------------------------------------
> Ran 756 tests in 43.502s
>
> OK
>
> Seamless, top job :)
>

Re: [flask] ANN: Flask 0.9 codename Camapri released today

From:
施德来 delai
Date:
2012-07-04 @ 09:18
is 0.9 compatible with 0.8?  Can i simply upgrade flask to 0.9 without
doing anything with my code?

On Tue, Jul 3, 2012 at 1:28 AM, ol <ol@o1.no> wrote:

> Great work, much appreciated!
>
> --
> ol
>
>
> On Mon, Jul 2, 2012 at 4:43 PM, Darren Worrall <darren@iweb.co.uk> wrote:
>
>> On 2 July 2012 15:30, Joe Esposito <espo58@gmail.com> wrote:
>> > Awesome work, Armin =)
>> >
>> > On Sun, Jul 1, 2012 at 9:09 PM, Anderson Cardoso <
>> apierre.cardoso@gmail.com>
>> > wrote:
>> >>
>> >> great work, thanks =)
>> >>
>> >>
>> >>
>> >> 2012/7/1 Alex <thinkpragmatic@gmail.com>
>> >>>
>> >>> Great work!
>> >>> ...and I've just sent a pull request since the codename is mistyped
>> ;-)
>> >>>
>> >>> Alex
>> >>>
>> >>> On Sun, Jul 1, 2012 at 9:38 PM, Mohamad Efazati <
>> my.karatarh@gmail.com>
>> >>> wrote:
>> >>> > really amazing... and good work with documanting ;)
>> >>> >
>> >>> > 2012/7/1 Eka (Esteban Feldman) <ekagaurangadas@gmail.com>
>> >>> >>
>> >>> >> On Sun, Jul 1, 2012 at 10:57 AM, Armin Ronacher
>> >>> >> <armin.ronacher@active-4.com> wrote:
>> >>> >>>
>> >>> >>> Hi,
>> >>> >>>
>> >>> >>> Sorry for the delay in the announcement mail but it turned out
>> that
>> >>> >>> my
>> >>> >>> mail server fell over.  Apparently an extra second can cause
>> quite a
>> >>> >>> problem :-)
>> >>> >>>
>> >>> >>> Flask 0.9 is hereby released: codename Campari.
>> >>> >>>
>> >>> >>> Changes from the changelog:
>> >>> >>>
>> >>> >>> * The flask.Request.on_json_loading_failed() now returns a JSON
>> >>> >>>   formatted response by default.
>> >>> >>> * The flask.url_for() function now can generate anchors to the
>> >>> >>>   generated links.
>> >>> >>> * The flask.url_for() function now can also explicitly generate
>> URL
>> >>> >>>   rules specific to a given HTTP method.
>> >>> >>> * Logger now only returns the debug log setting if it was not set
>> >>> >>>   explicitly.
>> >>> >>> * Unregister a circular dependency between the WSGI environment
>> and
>> >>> >>> the
>> >>> >>>   request object when shutting down the request. This means that
>> >>> >>>   environ werkzeug.request will be None after the response was
>> >>> >>> returned
>> >>> >>>   to the WSGI server but has the advantage that the garbage
>> collector
>> >>> >>>   is not needed on CPython to tear down the request unless the
>> user
>> >>> >>>   created circular dependencies themselves.
>> >>> >>> * Session is now stored after callbacks so that if the session
>> >>> >>> payload
>> >>> >>>   is stored in the session you can still modify it in an after
>> >>> >>> request
>> >>> >>>   callback.
>> >>> >>> * The flask.Flask class will avoid importing the provided import
>> name
>> >>> >>>   if it can (the required first parameter), to benefit tools which
>> >>> >>>   build Flask instances programmatically. The Flask class will
>> fall
>> >>> >>>   back to using import on systems with custom module hooks, e.g.
>> >>> >>> Google
>> >>> >>>   App Engine, or when the import name is inside a zip archive
>> >>> >>> (usually
>> >>> >>>   a .egg) prior to Python 2.7.
>> >>> >>> * Blueprints now have a decorator to add custom template filters
>> >>> >>>   application wide, flask.Blueprint.app_template_filter().
>> >>> >>> * The Flask and Blueprint classes now have a non-decorator method
>> for
>> >>> >>>   adding custom template filters application wide,
>> >>> >>>   flask.Flask.add_template_filter() and
>> >>> >>>   flask.Blueprint.add_app_template_filter().
>> >>> >>> * The flask.get_flashed_messages() function now allows rendering
>> >>> >>>   flashed message categories in separate blocks, through a
>> >>> >>>   category_filter argument.
>> >>> >>> * The flask.Flask.run() method now accepts None for host and port
>> >>> >>>   arguments, using default values when None. This allows for
>> calling
>> >>> >>>   run using configuration values, e.g.
>> >>> >>>   app.run(app.config.get('MYHOST'), app.config.get('MYPORT')),
>> with
>> >>> >>>   proper behavior whether or not a config file is provided.
>> >>> >>> * The flask.render_template() method now accepts a either an
>> iterable
>> >>> >>>   of template names or a single template name. Previously, it only
>> >>> >>>   accepted a single template name. On an iterable, the first
>> template
>> >>> >>>   found is rendered.
>> >>> >>> * Added flask.Flask.app_context() which works very similar to the
>> >>> >>>   request context but only provides access to the current
>> >>> >>> application.
>> >>> >>>   This also adds support for URL generation without an active
>> request
>> >>> >>>   context.
>> >>> >>> * View functions can now return a tuple with the first instance
>> being
>> >>> >>>   an instance of flask.Response. This allows for returning
>> >>> >>>   jsonify(error="error msg"), 400 from a view function.
>> >>> >>> * Flask and Blueprint now provide a get_send_file_max_age() hook
>> for
>> >>> >>>   subclasses to override behavior of serving static files from
>> Flask
>> >>> >>>   when using flask.Flask.send_static_file() (used for the default
>> >>> >>>   static file handler) and send_file(). This hook is provided a
>> >>> >>>   filename, which for example allows changing cache controls by
>> file
>> >>> >>>   extension. The default max-age for send_file and static files
>> can
>> >>> >>> be
>> >>> >>>   configured through a new SEND_FILE_MAX_AGE_DEFAULT configuration
>> >>> >>>   variable, which is used in the default get_send_file_max_age
>> >>> >>>   implementation.
>> >>> >>> * Fixed an assumption in sessions implementation which could break
>> >>> >>>   message flashing on sessions implementations which use external
>> >>> >>>   storage.
>> >>> >>> * Changed the behavior of tuple return values from functions. They
>> >>> >>> are
>> >>> >>>   no longer arguments to the response object, they now have a
>> defined
>> >>> >>>   meaning.
>> >>> >>> * Added flask.Flask.request_globals_class to allow a specific
>> class
>> >>> >>> to
>> >>> >>>   be used on creation of the g instance of each request.
>> >>> >>> * Added required_methods attribute to view functions to force-add
>> >>> >>>   methods on registration.
>> >>> >>> * Added flask.after_this_request().
>> >>> >>> * Added flask.stream_with_context() and the ability to push
>> contexts
>> >>> >>>   multiple times without producing unexpected behavior.
>> >>> >>>
>> >>> >>> I hopefully will also be able to provide the slides and recording
>> for
>> >>> >>> my
>> >>> >>> EuroPython talk on wednesday in time which covers some of the
>> >>> >>> internals
>> >>> >>> behind the changes for 0.9.
>> >>> >>>
>> >>> >>>
>> >>> >>> Regards,
>> >>> >>> Armin
>> >>> >>
>> >>> >>
>> >>> >> Great work! Thanks... waiting for the slides.
>> >>> >>
>> >>> >>
>> >>> >> --
>> >>> >> Chant Hare Krishna and Be Happy
>> >>> >>
>> >>> >> Eka
>> >>> >>
>> >>> >> --
>> >>> >> با تشکر
>> >>> >> افاضاتی
>> >>> >> http://www.efazati.org
>> >>> >>
>> >>> >>
>> >>> >
>> >>
>> >>
>> >>
>> >>
>> >> --
>> >> Anderson Pierre Cardoso
>> >> Computer Engineer - University of São Paulo
>> >>
>> >> http://www.apierrecardoso.com
>> >> twitter: @apierre_cardoso
>> >>
>> >>
>> >
>>
>> daz$ pip install Flask==0.9
>> Downloading/unpacking Flask==0.9
>> <snip>
>> Successfully installed Flask
>> Cleaning up...
>>
>> daz$ ./run_tests.py
>>
>> 
....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
>> ----------------------------------------------------------------------
>> Ran 756 tests in 43.502s
>>
>> OK
>>
>> Seamless, top job :)
>>
>
>


-- 
Delai Shi 施德来

Re: [flask] ANN: Flask 0.9 codename Camapri released today

From:
Simon Sapin
Date:
2012-07-04 @ 09:20
Le 04/07/2012 11:18, 施德来 delai a écrit :
> is 0.9 compatible with 0.8?  Can i simply upgrade flask to 0.9 without
> doing anything with my code?

Hi,

It will probably just work. See the details in the Upgrading docs:
http://flask.pocoo.org/docs/upgrading/#version-0-9

Regards,
-- 
Simon Sapin

Re: [flask] ANN: Flask 0.9 codename Camapri released today

From:
Bastian Hoyer
Date:
2012-07-04 @ 09:22
On Wed, Jul 4, 2012 at 11:18 AM, 施德来 delai <shidelai@gmail.com> wrote:
> is 0.9 compatible with 0.8?  Can i simply upgrade flask to 0.9 without doing
> anything with my code?

http://flask.pocoo.org/docs/upgrading/#version-0-9

Re: [flask] ANN: Flask 0.9 codename Camapri released today

From:
Kenneth Reitz
Date:
2012-07-04 @ 09:19
Try :)

--  
Kenneth Reitz


On Wednesday, July 4, 2012 at 5:18 AM, 施德来 delai wrote:

> is 0.9 compatible with 0.8?  Can i simply upgrade flask to 0.9 without 
doing anything with my code?
>  
> On Tue, Jul 3, 2012 at 1:28 AM, ol <ol@o1.no (mailto:ol@o1.no)> wrote:
> > Great work, much appreciated!
> >  
> > --
> > ol
> >  
> >  
> > On Mon, Jul 2, 2012 at 4:43 PM, Darren Worrall <darren@iweb.co.uk 
(mailto:darren@iweb.co.uk)> wrote:
> > > On 2 July 2012 15:30, Joe Esposito <espo58@gmail.com 
(mailto:espo58@gmail.com)> wrote:
> > > > Awesome work, Armin =)
> > > >
> > > > On Sun, Jul 1, 2012 at 9:09 PM, Anderson Cardoso 
<apierre.cardoso@gmail.com (mailto:apierre.cardoso@gmail.com)>
> > > > wrote:
> > > >>
> > > >> great work, thanks =)
> > > >>
> > > >>
> > > >>
> > > >> 2012/7/1 Alex <thinkpragmatic@gmail.com 
(mailto:thinkpragmatic@gmail.com)>
> > > >>>
> > > >>> Great work!
> > > >>> ...and I've just sent a pull request since the codename is mistyped ;-)
> > > >>>
> > > >>> Alex
> > > >>>
> > > >>> On Sun, Jul 1, 2012 at 9:38 PM, Mohamad Efazati 
<my.karatarh@gmail.com (mailto:my.karatarh@gmail.com)>
> > > >>> wrote:
> > > >>> > really amazing... and good work with documanting ;)
> > > >>> >
> > > >>> > 2012/7/1 Eka (Esteban Feldman) <ekagaurangadas@gmail.com 
(mailto:ekagaurangadas@gmail.com)>
> > > >>> >>
> > > >>> >> On Sun, Jul 1, 2012 at 10:57 AM, Armin Ronacher
> > > >>> >> <armin.ronacher@active-4.com 
(mailto:armin.ronacher@active-4.com)> wrote:
> > > >>> >>>
> > > >>> >>> Hi,
> > > >>> >>>
> > > >>> >>> Sorry for the delay in the announcement mail but it turned out that
> > > >>> >>> my
> > > >>> >>> mail server fell over.  Apparently an extra second can cause quite a
> > > >>> >>> problem :-)
> > > >>> >>>
> > > >>> >>> Flask 0.9 is hereby released: codename Campari.
> > > >>> >>>
> > > >>> >>> Changes from the changelog:
> > > >>> >>>
> > > >>> >>> * The flask.Request.on_json_loading_failed() now returns a JSON
> > > >>> >>>   formatted response by default.
> > > >>> >>> * The flask.url_for() function now can generate anchors to the
> > > >>> >>>   generated links.
> > > >>> >>> * The flask.url_for() function now can also explicitly generate URL
> > > >>> >>>   rules specific to a given HTTP method.
> > > >>> >>> * Logger now only returns the debug log setting if it was not set
> > > >>> >>>   explicitly.
> > > >>> >>> * Unregister a circular dependency between the WSGI environment and
> > > >>> >>> the
> > > >>> >>>   request object when shutting down the request. This means that
> > > >>> >>>   environ werkzeug.request will be None after the response was
> > > >>> >>> returned
> > > >>> >>>   to the WSGI server but has the advantage that the garbage 
collector
> > > >>> >>>   is not needed on CPython to tear down the request unless the user
> > > >>> >>>   created circular dependencies themselves.
> > > >>> >>> * Session is now stored after callbacks so that if the session
> > > >>> >>> payload
> > > >>> >>>   is stored in the session you can still modify it in an after
> > > >>> >>> request
> > > >>> >>>   callback.
> > > >>> >>> * The flask.Flask class will avoid importing the provided 
import name
> > > >>> >>>   if it can (the required first parameter), to benefit tools which
> > > >>> >>>   build Flask instances programmatically. The Flask class will fall
> > > >>> >>>   back to using import on systems with custom module hooks, e.g.
> > > >>> >>> Google
> > > >>> >>>   App Engine, or when the import name is inside a zip archive
> > > >>> >>> (usually
> > > >>> >>>   a .egg) prior to Python 2.7.
> > > >>> >>> * Blueprints now have a decorator to add custom template filters
> > > >>> >>>   application wide, flask.Blueprint.app_template_filter().
> > > >>> >>> * The Flask and Blueprint classes now have a non-decorator 
method for
> > > >>> >>>   adding custom template filters application wide,
> > > >>> >>>   flask.Flask.add_template_filter() and
> > > >>> >>>   flask.Blueprint.add_app_template_filter().
> > > >>> >>> * The flask.get_flashed_messages() function now allows rendering
> > > >>> >>>   flashed message categories in separate blocks, through a
> > > >>> >>>   category_filter argument.
> > > >>> >>> * The flask.Flask.run() method now accepts None for host and port
> > > >>> >>>   arguments, using default values when None. This allows for calling
> > > >>> >>>   run using configuration values, e.g.
> > > >>> >>>   app.run(app.config.get('MYHOST'), app.config.get('MYPORT')), with
> > > >>> >>>   proper behavior whether or not a config file is provided.
> > > >>> >>> * The flask.render_template() method now accepts a either an
iterable
> > > >>> >>>   of template names or a single template name. Previously, it only
> > > >>> >>>   accepted a single template name. On an iterable, the first
template
> > > >>> >>>   found is rendered.
> > > >>> >>> * Added flask.Flask.app_context() which works very similar to the
> > > >>> >>>   request context but only provides access to the current
> > > >>> >>> application.
> > > >>> >>>   This also adds support for URL generation without an 
active request
> > > >>> >>>   context.
> > > >>> >>> * View functions can now return a tuple with the first 
instance being
> > > >>> >>>   an instance of flask.Response. This allows for returning
> > > >>> >>>   jsonify(error="error msg"), 400 from a view function.
> > > >>> >>> * Flask and Blueprint now provide a get_send_file_max_age() hook for
> > > >>> >>>   subclasses to override behavior of serving static files from Flask
> > > >>> >>>   when using flask.Flask.send_static_file() (used for the default
> > > >>> >>>   static file handler) and send_file(). This hook is provided a
> > > >>> >>>   filename, which for example allows changing cache controls by file
> > > >>> >>>   extension. The default max-age for send_file and static files can
> > > >>> >>> be
> > > >>> >>>   configured through a new SEND_FILE_MAX_AGE_DEFAULT configuration
> > > >>> >>>   variable, which is used in the default get_send_file_max_age
> > > >>> >>>   implementation.
> > > >>> >>> * Fixed an assumption in sessions implementation which could break
> > > >>> >>>   message flashing on sessions implementations which use external
> > > >>> >>>   storage.
> > > >>> >>> * Changed the behavior of tuple return values from functions. They
> > > >>> >>> are
> > > >>> >>>   no longer arguments to the response object, they now have 
a defined
> > > >>> >>>   meaning.
> > > >>> >>> * Added flask.Flask.request_globals_class to allow a specific class
> > > >>> >>> to
> > > >>> >>>   be used on creation of the g instance of each request.
> > > >>> >>> * Added required_methods attribute to view functions to force-add
> > > >>> >>>   methods on registration.
> > > >>> >>> * Added flask.after_this_request().
> > > >>> >>> * Added flask.stream_with_context() and the ability to push contexts
> > > >>> >>>   multiple times without producing unexpected behavior.
> > > >>> >>>
> > > >>> >>> I hopefully will also be able to provide the slides and 
recording for
> > > >>> >>> my
> > > >>> >>> EuroPython talk on wednesday in time which covers some of the
> > > >>> >>> internals
> > > >>> >>> behind the changes for 0.9.
> > > >>> >>>
> > > >>> >>>
> > > >>> >>> Regards,
> > > >>> >>> Armin
> > > >>> >>
> > > >>> >>
> > > >>> >> Great work! Thanks... waiting for the slides.
> > > >>> >>
> > > >>> >>
> > > >>> >> --
> > > >>> >> Chant Hare Krishna and Be Happy
> > > >>> >>
> > > >>> >> Eka
> > > >>> >>
> > > >>> >> --
> > > >>> >> با تشکر
> > > >>> >> افاضاتی
> > > >>> >> http://www.efazati.org
> > > >>> >>
> > > >>> >>
> > > >>> >
> > > >>
> > > >>
> > > >>
> > > >>
> > > >> --
> > > >> Anderson Pierre Cardoso
> > > >> Computer Engineer - University of São Paulo
> > > >>
> > > >> http://www.apierrecardoso.com
> > > >> twitter: @apierre_cardoso
> > > >>
> > > >>
> > > >
> > >  
> > > daz$ pip install Flask==0.9
> > > Downloading/unpacking Flask==0.9
> > > <snip>
> > > Successfully installed Flask
> > > Cleaning up...
> > >  
> > > daz$ ./run_tests.py
> > > 
....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
> > > ----------------------------------------------------------------------
> > > Ran 756 tests in 43.502s
> > >  
> > > OK
> > >  
> > > Seamless, top job :)
> >  
>  
>  
>  
> --  
> Delai Shi 施德来
>  
>  

Re: [flask] ANN: Flask 0.9 codename Camapri released today

From:
施德来 delai
Date:
2012-07-04 @ 09:37
ha , thanks all

On Wed, Jul 4, 2012 at 5:19 PM, Kenneth Reitz <me@kennethreitz.com> wrote:

> Try :)
>
> --
> Kenneth Reitz
>
> On Wednesday, July 4, 2012 at 5:18 AM, 施德来 delai wrote:
>
> is 0.9 compatible with 0.8?  Can i simply upgrade flask to 0.9 without
> doing anything with my code?
>
> On Tue, Jul 3, 2012 at 1:28 AM, ol <ol@o1.no> wrote:
>
> Great work, much appreciated!
>
> --
> ol
>
>
> On Mon, Jul 2, 2012 at 4:43 PM, Darren Worrall <darren@iweb.co.uk> wrote:
>
> On 2 July 2012 15:30, Joe Esposito <espo58@gmail.com> wrote:
> > Awesome work, Armin =)
> >
> > On Sun, Jul 1, 2012 at 9:09 PM, Anderson Cardoso <
> apierre.cardoso@gmail.com>
> > wrote:
> >>
> >> great work, thanks =)
> >>
> >>
> >>
> >> 2012/7/1 Alex <thinkpragmatic@gmail.com>
> >>>
> >>> Great work!
> >>> ...and I've just sent a pull request since the codename is mistyped ;-)
> >>>
> >>> Alex
> >>>
> >>> On Sun, Jul 1, 2012 at 9:38 PM, Mohamad Efazati <my.karatarh@gmail.com
> >
> >>> wrote:
> >>> > really amazing... and good work with documanting ;)
> >>> >
> >>> > 2012/7/1 Eka (Esteban Feldman) <ekagaurangadas@gmail.com>
> >>> >>
> >>> >> On Sun, Jul 1, 2012 at 10:57 AM, Armin Ronacher
> >>> >> <armin.ronacher@active-4.com> wrote:
> >>> >>>
> >>> >>> Hi,
> >>> >>>
> >>> >>> Sorry for the delay in the announcement mail but it turned out that
> >>> >>> my
> >>> >>> mail server fell over.  Apparently an extra second can cause quite
> a
> >>> >>> problem :-)
> >>> >>>
> >>> >>> Flask 0.9 is hereby released: codename Campari.
> >>> >>>
> >>> >>> Changes from the changelog:
> >>> >>>
> >>> >>> * The flask.Request.on_json_loading_failed() now returns a JSON
> >>> >>>   formatted response by default.
> >>> >>> * The flask.url_for() function now can generate anchors to the
> >>> >>>   generated links.
> >>> >>> * The flask.url_for() function now can also explicitly generate URL
> >>> >>>   rules specific to a given HTTP method.
> >>> >>> * Logger now only returns the debug log setting if it was not set
> >>> >>>   explicitly.
> >>> >>> * Unregister a circular dependency between the WSGI environment and
> >>> >>> the
> >>> >>>   request object when shutting down the request. This means that
> >>> >>>   environ werkzeug.request will be None after the response was
> >>> >>> returned
> >>> >>>   to the WSGI server but has the advantage that the garbage
> collector
> >>> >>>   is not needed on CPython to tear down the request unless the user
> >>> >>>   created circular dependencies themselves.
> >>> >>> * Session is now stored after callbacks so that if the session
> >>> >>> payload
> >>> >>>   is stored in the session you can still modify it in an after
> >>> >>> request
> >>> >>>   callback.
> >>> >>> * The flask.Flask class will avoid importing the provided import
> name
> >>> >>>   if it can (the required first parameter), to benefit tools which
> >>> >>>   build Flask instances programmatically. The Flask class will fall
> >>> >>>   back to using import on systems with custom module hooks, e.g.
> >>> >>> Google
> >>> >>>   App Engine, or when the import name is inside a zip archive
> >>> >>> (usually
> >>> >>>   a .egg) prior to Python 2.7.
> >>> >>> * Blueprints now have a decorator to add custom template filters
> >>> >>>   application wide, flask.Blueprint.app_template_filter().
> >>> >>> * The Flask and Blueprint classes now have a non-decorator method
> for
> >>> >>>   adding custom template filters application wide,
> >>> >>>   flask.Flask.add_template_filter() and
> >>> >>>   flask.Blueprint.add_app_template_filter().
> >>> >>> * The flask.get_flashed_messages() function now allows rendering
> >>> >>>   flashed message categories in separate blocks, through a
> >>> >>>   category_filter argument.
> >>> >>> * The flask.Flask.run() method now accepts None for host and port
> >>> >>>   arguments, using default values when None. This allows for
> calling
> >>> >>>   run using configuration values, e.g.
> >>> >>>   app.run(app.config.get('MYHOST'), app.config.get('MYPORT')), with
> >>> >>>   proper behavior whether or not a config file is provided.
> >>> >>> * The flask.render_template() method now accepts a either an
> iterable
> >>> >>>   of template names or a single template name. Previously, it only
> >>> >>>   accepted a single template name. On an iterable, the first
> template
> >>> >>>   found is rendered.
> >>> >>> * Added flask.Flask.app_context() which works very similar to the
> >>> >>>   request context but only provides access to the current
> >>> >>> application.
> >>> >>>   This also adds support for URL generation without an active
> request
> >>> >>>   context.
> >>> >>> * View functions can now return a tuple with the first instance
> being
> >>> >>>   an instance of flask.Response. This allows for returning
> >>> >>>   jsonify(error="error msg"), 400 from a view function.
> >>> >>> * Flask and Blueprint now provide a get_send_file_max_age() hook
> for
> >>> >>>   subclasses to override behavior of serving static files from
> Flask
> >>> >>>   when using flask.Flask.send_static_file() (used for the default
> >>> >>>   static file handler) and send_file(). This hook is provided a
> >>> >>>   filename, which for example allows changing cache controls by
> file
> >>> >>>   extension. The default max-age for send_file and static files can
> >>> >>> be
> >>> >>>   configured through a new SEND_FILE_MAX_AGE_DEFAULT configuration
> >>> >>>   variable, which is used in the default get_send_file_max_age
> >>> >>>   implementation.
> >>> >>> * Fixed an assumption in sessions implementation which could break
> >>> >>>   message flashing on sessions implementations which use external
> >>> >>>   storage.
> >>> >>> * Changed the behavior of tuple return values from functions. They
> >>> >>> are
> >>> >>>   no longer arguments to the response object, they now have a
> defined
> >>> >>>   meaning.
> >>> >>> * Added flask.Flask.request_globals_class to allow a specific class
> >>> >>> to
> >>> >>>   be used on creation of the g instance of each request.
> >>> >>> * Added required_methods attribute to view functions to force-add
> >>> >>>   methods on registration.
> >>> >>> * Added flask.after_this_request().
> >>> >>> * Added flask.stream_with_context() and the ability to push
> contexts
> >>> >>>   multiple times without producing unexpected behavior.
> >>> >>>
> >>> >>> I hopefully will also be able to provide the slides and recording
> for
> >>> >>> my
> >>> >>> EuroPython talk on wednesday in time which covers some of the
> >>> >>> internals
> >>> >>> behind the changes for 0.9.
> >>> >>>
> >>> >>>
> >>> >>> Regards,
> >>> >>> Armin
> >>> >>
> >>> >>
> >>> >> Great work! Thanks... waiting for the slides.
> >>> >>
> >>> >>
> >>> >> --
> >>> >> Chant Hare Krishna and Be Happy
> >>> >>
> >>> >> Eka
> >>> >>
> >>> >> --
> >>> >> با تشکر
> >>> >> افاضاتی
> >>> >> http://www.efazati.org
> >>> >>
> >>> >>
> >>> >
> >>
> >>
> >>
> >>
> >> --
> >> Anderson Pierre Cardoso
> >> Computer Engineer - University of São Paulo
> >>
> >> http://www.apierrecardoso.com
> >> twitter: @apierre_cardoso
> >>
> >>
> >
>
> daz$ pip install Flask==0.9
> Downloading/unpacking Flask==0.9
> <snip>
> Successfully installed Flask
> Cleaning up...
>
> daz$ ./run_tests.py
>
> 
....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
> ----------------------------------------------------------------------
> Ran 756 tests in 43.502s
>
> OK
>
> Seamless, top job :)
>
>
>
>
>
> --
> Delai Shi 施德来
>
>
>
>


-- 
Delai Shi 施德来