Metadata-Version: 2.1
Name: rest_toolkit
Version: 0.15
Summary: REST toolkit
Home-page: https://github.com/wichert/rest_toolkit
Author: Wichert Akkerman
Author-email: wichert@wiggy.net
License: BSD
Description: *rest_toolkit* is a Python package which provides a very convenient way to
        build REST servers. It is build on top of
        `Pyramid <http://www.pylonsproject.org/projects/pyramid/about>`_, but you do not
        need to know much about Pyramid to use rest_toolkit.
        
        
        Quick example
        =============
        
        This is a minimal example which defines a ``Root`` resource with a ``GET``
        view, and starts a simple HTTP server. If you run this example you can request
        ``http://localhost:8080/`` and you will see a JSON response with a status
        message.
        
        ::
        
           from rest_toolkit import quick_serve
           from rest_toolkit import resource
        
        
           @resource('/')
           class Root(object):
               def __init__(self, request):
                   pass
        
        
           @Root.GET()
           def show_root(root, request):
               return {'status': 'OK'}
        
        
           if __name__ == '__main__':
               quick_serve()
        
        Changelog
        =========
        
        0.15 - April 5, 2018
        --------------------
        
        - Do not set content-type header on 204 responses.
        
        
        0.14 - May 25, 2017
        -------------------
        
        - Fix a Pyramid depcreation warning for ``unauthenticated_userid``.
        
        
        0.13 - August 18, 2016
        ----------------------
        
        - Preserve response exceptions raised by resource constructors or views if they
          already have a JSON content type.
        
        - Modify default JSON validation error response format: use the field with the
          validation error as key in the response data.
        
        - Use a custom ``rest_toolkit.ext.jsonschema.JSONValidationError`` exception for
          JSON validation errors. This allows for easy customisation of validation error
          response by defining a view for ``JSONValidationError``.
        
        
        0.12 - June 1, 2016 
        -------------------
        
        - Pass extra resource and controller arguments to the underlying ``add_view()``
          calls. This allows using predicates for views.
        
        
        0.11 - May 6, 2016
        ------------------
        
        - Allow ``update_from_dict`` to return a custom response, which will be used
          by the default PATCH and PUT views.
        
        
        0.10 - May 4, 2016
        ------------------
        
        - Do not require any permssions for OPTIONS requests. This can badly break
          authentication, since OPTIONS will be called to check if auth-related
          headers may be send.
        
        - Do not register catch-all exception view if debugging is enabled.
        
        
        0.9 - September 20, 2015
        ------------------------
        
        - Default to not allowing primary key changes for SQLResource objects. This can
          be toggled with a new ``allow_primary_key_change`` variable on the resource
          class.
        
        - Correctly set ``Access-Control-Allow-Methods`` header for resources using
          default views.
        
        
        0.8 - September 5, 2015
        -----------------------
        
        - Correctly handle OPTIONS requests for controllers.
        
        - Do not require any permissions for the generic error view. This fixes any
          errors being converted to forbidden errors on sites with a default
          permission.
        
        
        0.7 - March 12, 2015
        --------------------
        
        - Fix editing of SQL resource.
        
        - Update default views and validation extensions not to assume anything about
          the ``to_dict()`` return format.
        
        - If the ``rest_toolkit.debug`` is set, or the ``REST_TOOLKIT_DEBUG``
          environment variable is set to ``true``, or the pyramid's debug-all flag is
          set the system error exception handler will add the exception traceback to
          the response under a new ``traceback`` key.
        
        - Add basic support for collection resources. These can handle ``POST``
          requests to create child objects.
        
        
        0.6 - November 4, 2014
        ----------------------
        
        - Make sure controllers for resource whose path do not end in a slash are
          reachable.  This fixes `issue 12
          <https://github.com/wichert/rest_toolkit/issues/12>`_.
        
        - Fix mismatch between code and documentation: use ``request_method``
          as parameter name for the ``controller`` decorator.
        
        
        0.5 - October 24, 2014
        ----------------------
        
        - Allow overriding the request method for controllers. This fixes
          `issue 10 <https://github.com/wichert/rest_toolkit/issues/10>`_.
        
        - Add ``read_permission``, ``update_permission`` and ``delete_permission``
          options to the ``resource`` decorator to set permissions for default views.
          This fixes `issue 8 <https://github.com/wichert/rest_toolkit/issues/8>`_.
        
        - Rely on fixtures provided by pyramid_sqlalchemy for our SQL-related tests.
        
        - Preserve headers when converting a HTTP response to JSON. This fixes
          `issue 6 <https://github.com/wichert/rest_toolkit/issues/6>`_.
        
        - The route name for a resource can now be configured with a ``route_name`` parameter
          for the ``resource`` decorator.
        
        
        0.4.1 - July 18, 2014
        ---------------------
        
        - Make sure all raised HTTP exceptions are converted to JSON responses.
        
        
        0.4 - July 18, 2014
        -------------------
        
        This releases focuses on improving the documentation and fixing problems in the
        SQL extension.
        
        - Fix several errors in the SQLResource defaults views.
        
        - Configuring the SQL extension is no longer necessary if you use
          `pyramid_sqlalchemy <https://pyramid-sqlalchemy.readthedocs.org>`_ to handle
          SQLAlchemy integration.
        
        - `Travis <https://travis-ci.org/wichert/pyramid_sqlalchemy>`_ is now setup to
          automatically run tests on CPython 2.7, CPython 3.3, CPython 3.4 and PyPy.
        
        - Fix Python 3 compatibility problem in the generic error view.
        
        - Drop explicit Python 2.6 support. The tests use too many set literals to make
          Python 2.6 worthwile.
        
        - Modify EditableResource to not inherit from ViewableResource. This makes
          the separation between editing and viewing explicit, and works around the
          inability of Python to handle the inheritance schemes where a base classes 
          is used multiple times.
        
        - Remove the default value for ``replace`` in
          ``EditableResource.updat_from_dict()``. This did not serve a useful purpose,
          and could be confusing.
        
        - Set ``self.request`` in SQLResource constructor.
        
        
        0.3 - July 11, 2014
        -------------------
        
        This release fixes several critical errors in the SQL extension:
        
        - Fix the invoction of the context query.
        
        - Return not-found error from SQLResource instead of an internal error when no
          SQL row could be found.
        
        - Do not enable default views for SQLResource automatically. This should be
          an explicit decision by the user.
        
        
        0.2.2 - July 11, 2014
        ---------------------
        
        - Fix several errors in SQL extension.
        
        
        0.2.1 - July 10, 2014
        ---------------------
        
        - Add a MANIFEST.in to the source distribution installable.
        
        
        0.2 - July 9, 2014
        ------------------
        
        - Several demos showing how to use rest_toolkit with AngularJS have been added.
        
        - Support for default DELETE, GET, PATCH and PUT views has been added.
        
        - Various documentation fixes and improvements.
        
        
        0.1 - Released 24 June, 2014
        ----------------------------
        
        This is the first release.
        
Keywords: REST Pyramid
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Web Environment
Classifier: Framework :: Pyramid
Classifier: Intended Audience :: Developers
Classifier: License :: DFSG approved
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Provides-Extra: tests
