wsme/doc/changes.rst
Christophe de Vienne 018594d262 Changed the way datas of complex types are stored. In previous versions, an
attribute was added to the type for each attribute, its name being the
attribute name prefixed with '_'.

Starting with this version, a single attribute _wsme_dataholder is added to
the instance.

The motivation behind this change is to avoid adding too many attributes to
the object and potential collisions with user attributes.
2013-04-12 12:51:56 +02:00

8.0 KiB

Changes

next

  • Changed the way datas of complex types are stored. In previous versions, an attribute was added to the type for each attribute, its name being the attribute name prefixed with '_'.

    Starting with this version, a single attribute _wsme_dataholder is added to the instance.

    The motivation behind this change is to avoid adding too many attributes to the object.

  • Add a special type 'HostRequest' that allow a function to ask for the host framework request object in its arguments.

  • New adapter: wsmeext.flask, for the Flask framework.

  • Fix: the cornice adapter was not usable.

  • Fix: Submodules of wsmeext were missing in the packages.

  • Fix: The demo app was still depending on the WSME-Soap package (which has been merged into WSME in 0.5b1).

  • Fix: A function with only on 'body' parameter would fail when being called.

  • Fix: Missing arguments were poorly reported by the frameworks adapters.

0.5b1 (2013-01-30)

  • Introduce a new kind of adapters that rely on the framework routing. Adapters are provided for Pecan, TurboGears and cornice.
  • Reorganised the rest protocol implementation to ease the implementation of adapters that rely only on the host framework routing system.
  • The default rest @expose decorator does not wrap the decorated function anymore. If needed to expose a same function several times, a parameter multiple_expose=True has been introduced.
  • Remove the wsme.release module
  • Fix == operator on ArrayType
  • Adapted the wsme.sphinxext module to work with the function exposed by the wsme.pecan adapter.
  • Allow promotion of int to float on float attributes (Doug Hellman)
  • Add a samples_slot option to the .. autotype directive to choose where the data samples whould be inserted (Doug Hellman).
  • Add sample() to ArrayType and DictType (Doug Hellman).
  • New syntax for object arrays as GET parameters, without brackets. Ex: ?o.f1=a&o.f1=b&o.f2=c&o.f2=d is an array of two objects: [{'f1': 'a', 'f2': 'c']}, {'f1': 'b', 'f2': 'd']}.
  • @signature (and its @wsexpose frontends) has a new parameter: ignore_extra_args.
  • Fix boolean as input type support in the soap implementation (Craig McDaniel).
  • Fix empty/nil strings distinction in soap (Craig McDaniel).
  • Improved unittests code coverage.
  • Ported the soap implementation to python 3.
  • Moved non-core features (adapters, sphinx extension) to the wsmeext module.
  • Change the GET parameter name for passing the request body as a parameter is now from 'body' to '__body__'
  • The soap, extdirect and sqlalchemy packages have been merged into the main package.
  • Changed the documentation theme to "Cloud".

0.4 (2012-10-15)

  • Automatically converts unicode strings to/from ascii bytes.
  • Use d2to1 to simplify setup.py.
  • Implements the SPORE specification.
  • Fixed a few things in the documentation

0.4b1 (2012-09-14)

  • Now supports Python 3.2
  • String types handling is clearer.
  • New wsme.types.File type.
  • Supports cross-referenced types.
  • Various bugfixes.
  • Tests code coverage is now over 95%.
  • RESTful protocol can now use the http method.
  • UserTypes can now be given a name that will be used in the documentation.
  • Complex types can inherit wsme.types.Base. They will have a default constructor and be registered automatically.
  • Removed the wsme.wsgi.adapt function if favor of wsme.WSRoot.wsgiapp

Extensions

wsme-soap
  • Function names now starts with a lowercase letter.
  • Fixed issues with arrays (issue #3).
  • Fixed empty array handling.
wsme-sqlalchemy

This new extension makes it easy to create webservices on top of a SQLAlchemy set of mapped classes.

wsme-extdirect
  • Implements server-side DataStore (wsmeext.extdirect.datastore.DataStoreController).
  • Add Store and Model javascript definition auto-generation
  • Add Store server-side based on SQLAlchemy mapped classes (wsmeext.extdirect.sadatastore.SADataStoreController).

0.3 (2012-04-20)

  • Initial Sphinx integration.

0.3b2 (2012-03-29)

  • Fixed issues with the TG1 adapter.
  • Now handle dict and UserType types as GET/POST params.
  • Better handling of application/x-www-form-urlencoded encoded POSTs in rest protocols.
  • wsattr now takes a 'default' parameter that will be returned instead of 'Unset' if no value has been set.

0.3b1 (2012-01-19)

  • Per-call database transaction handling.
  • Unset is now imported in the wsme module
  • Attributes of complex types can now have a different name in the public api and in the implementation.
  • Complex arguments can now be sent as GET/POST params in the rest protocols.
  • The restjson protocol do not nest the results in an object anymore.
  • Improved the documentation
  • Fix array attributes validation.
  • Fix date|time parsing errors.
  • Fix Unset values validation.
  • Fix registering of complex types inheriting form already registered complex types.
  • Fix user types, str and None values encoding/decoding.

0.2.0 (2011-10-29)

  • Added batch-calls abilities.
  • Introduce a UnsetType and a Unset constant so that non-mandatory attributes can remain unset (which is different from null).
  • Fix: If a complex type was only used as an input type, it was not registered.
  • Add support for user types.
  • Add an Enum type (which is a user type).
  • The 'binary' type is now a user type.
  • Complex types:
    • Fix inspection of complex types with inheritance.
    • Fix inspection of self-referencing complex types.
    • wsattr is now a python Descriptor, which makes it possible to retrieve the attribute definition on a class while manipulating values on the instance.
    • Add strong type validation on assignment (made possible by the use of Descriptors).
  • ExtDirect:
    • Implements batch calls
    • Fix None values conversion
    • Fix transaction result : 'action' and 'method' were missing.

0.1.1 (2011-10-20)

  • Changed the internal API by introducing a CallContext object. It makes it easier to implement some protocols that have a transaction or call id that has to be returned. It will also make it possible to implement batch-calls in a later version.
  • More test coverage.
  • Fix a problem with array attribute types not being registered.
  • Fix the mandatory / default detection on function arguments.
  • Fix issues with the SOAP protocol implementation which should now work properly with a suds client.
  • Fix issues with the ExtDirect protocol implementation.

0.1.0 (2011-10-14)

  • Protocol insertion order now influence the protocol selection
  • Move the soap protocol implementation in a separate lib, WSME-Soap
  • Introduce a new protocol ExtDirect in the WSME-ExtDirect lib.

0.1.0a4 (2011-10-12)

  • Change the way framework adapters works. Now the adapter modules have a simple adapt function that adapt a wsme.WSRoot instance. This way a same root can be integrated in several framework.
  • Protocol lookup now use entry points in the group [wsme.protocols].

0.1.0a3 (2011-10-11)

  • Add specialised WSRoot classes for easy integration as a WSGI Application (wsme.wsgi.WSRoot) or a TurboGears 1.x controller (wsme.tg1.WSRoot).
  • Improve the documentation.
  • More unit tests and code-coverage.

0.1.0a2 (2011-10-07)

  • Added support for arrays in all the protocols

0.1.0a1 (2011-10-04)

Initial public release.