Skip to content
This repository has been archived by the owner on Nov 23, 2020. It is now read-only.

Releases: quantmind/pulsar

1.3.0

12 May 07:37
Compare
Choose a tag to compare

This is a backward incompatible version which works for python 3.5 and above.
The async/await syntax has been adopted in the whole codebase. It brings
several improvements in the API as well as bug fixes.

Core

  • Tidy up cython extensions, No more python 2 checks
  • Cython is no longer required when installing C extensions
  • Better dev version to avoid warning in command line for #213 6d369f0
  • Hindi pulsar, need double check c83e178
  • Overwrite pid file if the pid is stale, fixes #218, 00195c4
  • Regression fix in get_application #220

HttpClient

  • HttpClient support json parameter for easily posting JSON data 5256dc9
  • Http client stream with sync and async iterators e2f12de
  • Use certifi library if available
  • urlparams replaced by params, same as requests 08fed42
  • Don't raise error when content_type is given and data is bytes 18424cc
  • Verify parameter in http client. Fixes #191 4611261

WSGI

  • Removed AsyncString proxy to String f484062
  • Renamed async object to wait in test classes cbbc1a5
  • Refactored import file function 6bb5df0

GreenIO

Tests

  • Overall refactoring of the test suite.
  • The runtests script has been removed. tests are now run using setup.py #213
  • The pulsar_test package is included in the installation. It gives access to the pulsar_test.Test class for running tests using pulsar test suite
  • Added tests for flaskgreen and fixed bug in multiapp config 9bf37b1
  • Versioning supports pep440 for alpha and beta releases 468daa2
  • Don't run slugify test if unidecode package is not installed. Fixes #206

1.2.0

17 Mar 10:08
Compare
Choose a tag to compare

Pulsar 1.2 is broadly backward compatible with the 1.1 version with the only caveat that the is_async function is now deprecated and replaced by the isawaitable function. Warnings will be issued when used by client applications.

In addition, pulsar 1.2.x is the last minor release ("major.minor.micro") to support python 3.4.
From pulsar 1.3.x, support for python 3.4 will be dropped and the new async-await syntax will be used in the whole codebase.

New Features

  • Added isawaitable function and deprecated is_async which will be removed
    in version 1.3. Issue #203 6a2f9e4
  • Verify parameter in http client. Fixes #191 4611261
  • Hindi pulsar, need double check c83e178

Bug fixes and Enhancements

  • Versioning supports pep440 for alpha and beta
    releases too 468daa2
  • Tidy up cython extensions. No more py2 checks. Better dev version to avoid warning
    in command line 6d369f0
  • fix #211
  • Fix #209

Examples

  • Added Green Flask example applications to illustrate how to use synchronous web frameworks and
    pulsar greenio module 1855819

Test

  • Links test c80b163
  • Don't run slugify test if unidecode package is not installed. Fixes #206

Wsgi

  • Check for missing suffix in the file when serving media files bc6e04d

Fully compatible with async/await

19 Feb 17:32
Compare
Choose a tag to compare

Make sure the asyncio.coroutine decorator is used by all pulsar coroutines
This allows to use pulsar to write python 3.5 compatible code with the
async/await syntax. 709f9ff

Documentation

  • Mcve reference in the readme b49434d
  • Removed CHANGELOG.rst from the top level directory and created a folder inside
    the docs which contains a list of minor releases
  • Started using markdown in documentation. 6b20825

Http

  • Better keep-alive management of HTTP connections df1be4b
  • Http client uses the base class connection method rather than using a
    different one b584828
  • The http response object has the links attribute which return a parsed
    Links headers dictionary. Code from python requests 023ca50

Wsgi

  • Use file_response function in MediaMixin.serve_file method c012af1
  • FileRouter is now a proxy for MediaRouter

WSGI File Wrapper

04 Feb 08:57
Compare
Choose a tag to compare
  • Removed release application and created a new repository for it (https://github.com/quantmind/git-agile)
  • wait method in greenio app accepts an extra parameter for checking if in child greenlet
  • Specialised MustBeInChildGreenlet error for functions which should be called on a child greenlet
  • Critical bug fix in pubsub subscribe method for Redis backend
  • Added an asynchronous wsgi.file_wrapper to the WSGI environment
  • Added file_response utility to serve local files
  • Introduced pulsar.ensure_future in place of pulsar.async

HTTP client improvements

06 Jan 21:15
Compare
Choose a tag to compare
  • Full support for python 3.5

Core

  • Added CI for python 3.5
  • Added debug properties to all AsyncObject. The property returns the event loop
    debug mode flag

HttpClient

  • Backward incompatible changes with API much closer to requests_ and far better support for streaming both uploads and downloads
  • Added content attribute to HttpResponse, in line with requests_
  • Ability to pass stream=True during a request, same API as python requests_
  • Added the raw property to the Http Response, it can be used in conjunction with
    stream to stream http data. Similar API to requests_
  • Renamed proxy_info to proxies, same API as python requests_
  • You can now pass proxies dictionary during a request
  • Stream uploads by passing a generator as data parameter
  • Better websocket upgrade process
  • Tidy up CONNECT request url (for tunneling)
  • Added tests for proxyserver example using requests_

WSGI

  • Both wsgi and http apps use the same pulsar.utils.httpurl.http_chunks
    function for transfer-encoding chunked
  • render_error escapes the Exception message to prevent XSS_

Data Store

  • Better pulsards_url function, default value form cfg.data_store
  • key_value_save set to empty list by default (no persistence)

Examples

  • Refactored proxy server example
  • Updated django chat example so that warning are no longer issued

.. _requests: http://docs.python-requests.org/
.. _XSS: https://en.wikipedia.org/wiki/Cross-site_scripting
.. _async-await: https://www.python.org/dev/peps/pep-0492/#specification

Minor Bug fixes

10 Dec 15:15
Compare
Choose a tag to compare

Api

  • Improvements in the release application
  • Handle StopIteration in green pool [182]

Release App and Bug fixes

26 Nov 14:51
Compare
Choose a tag to compare

Api

  • Pulsar Protocol requires loop as first parameter during initialisation
  • Actor uses event loop set_debug method when running with the --debug flag
  • GreenWSGI handler moved to pulsar.apps.greenio.wsgi
  • Added the release application for making releases. Used by pulsar and other packages.

Internals

  • Use actor_stop rather than loop.stop when handling OS signals which kill an actor.
  • Better close method for TCPServer
  • sudoless testing in travis

Bug Fixes

  • Bug fix in HttpRedirect.location attribute

Redis Lock and Twitter Streaming Example

12 Nov 14:58
Compare
Choose a tag to compare
  • Asynchronous Redis locking primitive for distributing computing
  • Added the Twitter Streaming tutorial
  • Added Javascript directory in examples and a gruntfile for compiling and linting scripts
  • Better handling of Ctrl-C in the test application
  • Data streaming for multipart/form-data content type
  • Write EOF before closing connections
  • Documentation and bug fixes

JSON-RPC Batch and Bug fixes

21 Jul 06:37
Compare
Choose a tag to compare
  • Flake8 on all codebase
  • Added JSON-RPC 2.0 Batch - part of specification (by artemmus)
  • Attach configuration connection_made and connection_lost
    to connections of TCP and UDP servers (connection providers).
  • Bug fix in Connection data_received method. The data_processed
    event was not triggered.
  • Process title does not append arbiter to the main process name.
  • Added a snippet in examples on how to build a simple framework for remote
    objects.
  • Better handling of content-type headers in the HTTP client requests
  • Test coverage at 87%

Better handling of RouterParameter

16 Jun 20:50
Compare
Choose a tag to compare
  • Test WSGI environment does not use asynchronous stream
  • Bug fixes in pulsar data store commands
  • Critical bug fix in WSGI Router default parameters (RouterParameter).
  • Increased test coverage
  • Code cleanup and several internal fixes