To be released.
Released on February 23, 2021.
nirum.rpcmodule andClient,Service, andWsgiAppin the module, had been deprecated since 0.6.0, are now completely obsolete.- Annotation parameters (
service_annotations,method_annotations, andparameter_annotations) ofnirum.transport.Transport.call()method now can take multiple arguments. - Since Nirum compiler became to give
__nirum_type__attribute to every generated classes (see also the pull request),nirum.deserialize.deserialize_meta()function also became to leverage it if present. - Since Nirum compiler became to give
__nirum_tag_classes__mapping to every generated union classes (see also the pull request),nirum.deserialize.deserialize_union_type()function also became to lerverage it if present. - Removed unmaintained below codes. Now these will be generated by Nirum, automatically. - nirum/deserialize.py - nirum/serialize.py - nirum/validate.py - tests/deserialize_test.py - tests/serialize_test.py - tests/validate_test.py
Released on April 5, 2018.
- Added missing equality functions (i.e.,
==,!=operators, &hash()function) tonirum.datastructures.Mapandnirum.datastructures.List. [#110]
Released on February 11, 2018.
- Added
is_optional_type()to ensure optional type includesNonetype. nirum.datastructures.Listbecame to show its contents when it's passed torepr(). [#103, #108 by Chang-soo Han]
Released on December 9, 2017.
- Made
nirum.datastructures.Listto copy the given value so that it doesn't refer given value's state and is immutable.
Released on July 11, 2017.
Deprecated
nirum.rpcmodule.This module and all it has provided are deprecated or obsolete. The most of them are now distributed as separated packages, or replaced by a newer concept. See also the below for details.
It will be completely obsolete at version 0.7.0.
Client transport layer. [#79]
Added
nirum.transport.Transportinterface.The recent builds of Nirum compiler became to generate
*_Clientclasses taking anirum.transport.Transportinstance through their constructor.Use nirum-python-http (PyPI handle:
nirum-http) instead for HTTP client of services e.g.:from yourservice import YourService_Client from nirum_http import HttpTransport transport = HttpTransport('https://service-host/') client = YourService_Client(transport)
Deprecated
nirum.rpc.Clienttype. The recent builds of Nirum compiler became to generate*_Clientclasses for services without subclassingnirum.rpc.Client.The deprecated
nirum.rpc.Clientwill be completely obsolete at version 0.7.0.
nirum.rpc.Servicewas moved tonirum.service.Service.The recent builds of Nirum compiler became to generate service classes that inherit
nirum.service.Serviceinstead ofnirum.rpc.Service.The deprecated
nirum.rpc.Servicewill be completely obsolete at version 0.7.0.Deprecated
nirum.rpc.WsgiApp. This will be completely obsolete at version 0.7.0.Use nirum-python-wsgi (PyPI handle:
nirum-wsgi) instead.nirum-servercommand is obsolete. The same command is now provided by nirum-python-wsgi (PyPI handle:nirum-wsgi), a separated package.nirum.func.import_string()function andnirum.func.IMPORT_REconstant are obsolete.Fixed
NameErrorraised from forward references. [compiler #138]
Released on April 5, 2018.
- Fixed a bug that
hash()onnirum.datastructures.Listhad raisedTypeError.
Released on April 5, 2018.
- Added missing equality functions (i.e.,
==,!=operators, &hash()function) tonirum.datastructures.Mapandnirum.datastructures.List. [#110]
Released on December 9, 2017.
- Made
nirum.datastructures.Listto copy the given value so that it doesn't refer given value's state and is immutable.
Released on July 6, 2017.
- Fixed a serialization bug that other set-like (i.e.
collections.Set) types than Python built-insethadn't been reduced to simpler forms so that they can be encoded to JSON. - Fixed a serialization bug that other list-like (i.e.
collections.Sequence) types than Python built-inlisthadn't been reduced to simpler forms so that they can be encoded to JSON.
Released on June 23, 2017.
urlofnirum.rpc.Clientandmethodofnirum.rpc.Client.make_requestnow can be bothunicodeandstron Python 2.7. [#87]nirum.rpc.Clienthad been an old-style class on Python 2, but now it became a new-style class also on Python 2. (As Python 3 has only new-style class, there's no change on Python 3.)
Released on June 22, 2017.
- Added Python 3.6 support.
- Fixed a bug that service client methods hadn't raised the proper error
type but
nirum.exc.UnexpectedNirumResponseErrorinstead. [#71] - Wheel distributions (
nirum-*.whl) are now universal between Python 2 and 3. [#78] nirum.rpc.Servicehad been an old-style class on Python 2, but now it became a new-style class also on Python 2. (As Python 3 has only new-style class, there's no change on Python 3.) [#83]nirum.rpc.Clientand its subtype became to raiseTypeErrorwith a better error message when itsmake_request()method is overridden and it returns a wrong artity of tuple. [#80]nirum.rpc.WsgiAppand its subtype became to raiseTypeErrorwith a better error message when itsmake_response()method is overridden and it returns a wrong artity of tuple. [#80]- Fixed a bug that
Client.ping()method had always raisedTypeError. [#80] - Corrected a typo
Acceptson request headersClientmakes toAccept.
Released on June 1, 2017.
- Service methods became able to specify its error type. [#71]
- Added
nirum-servercommand to run simply Nirum service.
Released on April 5, 2018.
- Added missing equality functions (i.e.,
==,!=operators, &hash()function) tonirum.datastructures.Mapandnirum.datastructures.List. [#110]
Released on July 6, 2017.
- Fixed a serialization bug that other set-like (i.e.
collections.Set) types than Python built-insethadn't been reduced to simpler forms so that they can be encoded to JSON. - Fixed a serialization bug that other list-like (i.e.
collections.Sequence) types than Python built-inlisthadn't been reduced to simpler forms so that they can be encoded to JSON.
Released on May 2, 2017.
- Compare type with its abstract type in
nirum.validate.validate_type.
Released on March 20, 2017.
- Encoding of map types was changed according to the Nirum serialization specification. [#66]
- Added
nirum.datastructuresmodule andnirum.datastructures.Mapwhich is an immutable dictionary. [#66] - Added
nirum.datastructures.Listwhich is an immutable list. [#49] - Aliased
nirum.datastructures.Mapasmap_type, andnirum.datastructures.Listaslist_typeto avoid name conflict with user-defined types.