Modern docs! This fixes a couple of issues introduced in the previous patches and generally cleans up a lot of mess. Change-Id: Ib964c16251bce12fe498b13455ed3515ef205916 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
12 KiB
Changes
1.0.0 (future)
- Remove support for turbogears
- Remove support for cornice
- Remove support for ExtDirect
- Remove support for SOAP
- Remove support for the SPORE protocol
- Remove SQLAlchemy support. It has never actually worked to begin with.
0.9.2 (2017-02-14)
TODO.
0.9.1 (2017-01-04)
Fix packaging issues.
0.9.0 (2017-01-04)
TODO.
0.8.0 (2015-08-25)
Changes that may break your app:
- Returns 400 if unexpected attributes are added to complex types (#1277571).
Other changes:
- Returns 415 when Content-Type is invalid (#1419110)
- Returns 400 if a complex input type is not a json object (#1423634)
- Fix error reports with ArrayType and DictType invalid inputs (#1428185, #1428628)
- Update README
0.7.0 (2015-05-13)
- Ensure UserType objects are converted to basetype
- Convert built-in types when passed as strings
- Multiple protocol accept or content-type matching
- Raise an InvalidInput if you get a ValueError from JSON data
- Remove unsupported python versions from setup.cfg
- Clean up setup.py and add requirements.txt
- Add full MIT license
- Fix i18n when formatting exception
- Cleanup up logging
- Make it possible to use the Response to return a non-default return type
- several fixes for SOAP protocol
0.6.4 (2014-11-20)
- Include tests in the source distribution
0.6.3 (2014-11-19)
- Disable universal wheels
0.6.2 (2014-11-18)
- Flask adapter complex types now supports flask.ext.restful
- Allow disabling complex types auto-register
- Documentation edits
- Various documentation build fixes
- Fix passing Dict and Array based UserType as params
0.6.1 (2014-05-02)
- Fix error: variable 'kw' referenced before assignment
- Fix default handling for zero values
- Fixing spelling mistakes
- A proper check of UuidType
- pecan: cleanup, use global vars and staticmethod
- args_from_args() to work with an instance of UserType
0.6 (2014-02-06)
- Add 'readonly' parameter to wsattr
- Fix typos in documents and comments
- Support dynamic types
- Support building wheels (PEP-427)
- Fix a typo in the types documentation
- Add IntegerType and some classes for validation
- Use assertRaises() for negative tests
- Remove the duplicated error message from Enum
- Drop description from 403 flask test case
- Fix SyntaxWarning under Python 3
0.5b6 (2013-10-16)
- Add improved support for HTTP response codes in cornice apps.
- Handle mandatory attributes
- Fix error code returned when None is used in an Enum
- Handle list and dict for body type in REST protocol
- Fix Sphinx for Python 3
- Add custom error code to ClientSideError
- Return a ClientSideError if unable to convert data
- Validate body when using Pecan
0.5b5 (2013-09-16)
More packaging fixes.
0.5b4 (2013-09-11)
Fixes some release-related files for the stackforge release process. No user-facing bug fixes or features over what 0.5b3 provides.
0.5b3 (2013-09-04)
The project moved to stackforge. Mind the new URLs for the repository, bug report etc (see the documentation).
- Allow non-default status code return with the pecan adapter (Angus Salked).
- Fix returning objects with object attributes set to None on rest-json & ExtDirect.
- Allow error details to be set on the Response object (experimental !).
- Fix: Content-Type header is not set anymore when the return type is None on the pecan adapter.
- Support unicode message in ClientSideError (Mehdi Abaakouk).
- Use pbr instead of d2to1 (Julien Danjou).
- Python 3.3 support (Julien Danjou).
- Pecan adapter: returned status can now be set on exceptions (Vitaly Kostenko).
- TG adapters: returned status can be set on exceptions (Ryan Petrello).
- six >= 1.4.0 support (Julien Danjou).
- Require ordereddict from pypi for python < 2.6 (Ryan Petrello).
- Make the code PEP8 compliant (Ryan Petrello).
0.5b2 (2013-04-18)
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.
Pecan adapter: Debug mode (which returns the exception tracebacks to the client) can be enabled by the pecan application configuration.
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 parametermultiple_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
tofloat
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
).
- Implements server-side DataStore (
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 aUnset
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.