Metadata-Version: 2.1
Name: nirum
Version: 0.7.0
Summary: The Nirum runtime library for Python
Home-page: https://github.com/nirum-lang/nirum-python
Author: Kang Hyojun
Author-email: iam.kanghyojun@gmail.com
License: MIT license
Description: nirum-python
        ============
        
        .. image:: https://badge.fury.io/py/nirum.svg
           :target: https://pypi.org/project/nirum/
           :alt: Latest PyPI version
        
        .. image:: https://api.travis-ci.com/nirum-lang/nirum-python.svg
           :target: https://travis-ci.com/nirum-lang/nirum-python
           :alt: Build status
        
        The Nirum_ runtime library for Python.  Distributed under MIT license.
        
        (You probably don't need to directly use this package.)
        
        .. _Nirum: https://github.com/nirum-lang/nirum
        
        
        Changelog
        =========
        
        Version 0.7.0
        -------------
        
        Released on February 23, 2021.
        
        - ``nirum.rpc`` module and ``Client``, ``Service``, and ``WsgiApp`` in
          the module, had been deprecated since 0.6.0, are now completely obsolete.
        - Annotation parameters (``service_annotations``, ``method_annotations``, and
          ``parameter_annotations``) of ``nirum.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
        
        __ https://github.com/spoqa/nirum/pull/192
        __ https://github.com/spoqa/nirum/pull/192
        
        
        Version 0.6.3
        -------------
        
        Released on April 5, 2018.
        
        - Added missing equality functions (i.e., ``==``, ``!=`` operators, & ``hash()``
          function) to ``nirum.datastructures.Map`` and ``nirum.datastructures.List``.
          [`#110`_]
        
        
        Version 0.6.2
        -------------
        
        Released on February 11, 2018.
        
        - Added ``is_optional_type()`` to ensure optional type includes ``None`` type.
        - ``nirum.datastructures.List`` became to show its contents when it's passed
          to ``repr()``.  [`#103`__, `#108`__ by Chang-soo Han]
        
        __ https://github.com/nirum-lang/nirum-python/issues/103
        __ https://github.com/nirum-lang/nirum-python/pull/108
        
        
        Version 0.6.1
        -------------
        
        Released on December 9, 2017.
        
        - Made ``nirum.datastructures.List`` to copy the given value so that
          it doesn't refer given value's state and is immutable.
        
        
        Version 0.6.0
        -------------
        
        Released on July 11, 2017.
        
        - Deprecated ``nirum.rpc`` module.
        
          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.Transport`` interface.
        
            The recent builds of Nirum compiler became to generate ``*_Client`` classes
            taking a ``nirum.transport.Transport`` instance through their constructor.
        
            Use nirum-python-http_ (PyPI handle: ``nirum-http``) instead for HTTP
            client of services e.g.:
        
            .. code-block:: python
        
               from yourservice import YourService_Client
               from nirum_http import HttpTransport
        
               transport = HttpTransport('https://service-host/')
               client = YourService_Client(transport)
        
          - Deprecated ``nirum.rpc.Client`` type.  The recent builds of Nirum compiler
            became to generate ``*_Client`` classes for services without subclassing
            ``nirum.rpc.Client``.
        
            The deprecated ``nirum.rpc.Client`` will be completely obsolete at
            version 0.7.0.
        
        - ``nirum.rpc.Service`` was moved to ``nirum.service.Service``.
        
          The recent builds of Nirum compiler became to generate service classes
          that inherit ``nirum.service.Service`` instead of ``nirum.rpc.Service``.
        
          The deprecated ``nirum.rpc.Service`` will 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-server`` command is obsolete.  The same command is now provided
          by nirum-python-wsgi_ (PyPI handle: ``nirum-wsgi``), a separated package.
        
        - ``nirum.func.import_string()`` function and ``nirum.func.IMPORT_RE`` constant
          are obsolete.
        
        - Fixed ``NameError`` raised from forward references.  [`compiler #138`_]
        
        .. _#79: https://github.com/nirum-lang/nirum-python/issues/79
        .. _compiler #138: https://github.com/nirum-lang/nirum/issues/138
        .. _nirum-python-http: https://github.com/nirum-lang/nirum-python-http
        .. _nirum-python-wsgi: https://github.com/nirum-lang/nirum-python-wsgi
        
        
        Version 0.5.6
        -------------
        
        Released on April 5, 2018.
        
        - Fixed a bug that ``hash()`` on ``nirum.datastructures.List`` had raised
          ``TypeError``.
        
        
        Version 0.5.5
        -------------
        
        Released on April 5, 2018.
        
        - Added missing equality functions (i.e., ``==``, ``!=`` operators, & ``hash()``
          function) to ``nirum.datastructures.Map`` and ``nirum.datastructures.List``.
          [`#110`_]
        
        .. _#110: https://github.com/nirum-lang/nirum-python/issues/110
        
        
        Version 0.5.4
        -------------
        
        Released on December 9, 2017.
        
        - Made ``nirum.datastructures.List`` to copy the given value so that
          it doesn't refer given value's state and is immutable.
        
        
        Version 0.5.3
        -------------
        
        Released on July 6, 2017.
        
        - Fixed a serialization bug that other set-like (i.e. ``collections.Set``) types
          than Python built-in ``set`` hadn'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-in ``list`` hadn't been reduced to simpler forms so
          that they can be encoded to JSON.
        
        
        Version 0.5.2
        -------------
        
        Released on June 23, 2017.
        
        - ``url`` of ``nirum.rpc.Client`` and
          ``method`` of ``nirum.rpc.Client.make_request``
          now can be both ``unicode`` and ``str`` on Python 2.7. [`#87`_]
        - ``nirum.rpc.Client`` had 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.)
        
        .. _#87: https://github.com/nirum-lang/nirum-python/pull/87
        
        
        Version 0.5.1
        -------------
        
        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.UnexpectedNirumResponseError`` instead.  [`#71`_]
        - Wheel distributions (``nirum-*.whl``) are now universal between Python 2
          and 3.  [`#78`_]
        - ``nirum.rpc.Service`` had 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.Client`` and its subtype became to raise ``TypeError`` with
          a better error message when its ``make_request()`` method is overridden and
          it returns a wrong artity of tuple.  [`#80`_]
        - ``nirum.rpc.WsgiApp`` and its subtype became to raise ``TypeError`` with
          a better error message when its ``make_response()`` method is overridden and
          it returns a wrong artity of tuple.  [`#80`_]
        - Fixed a bug that ``Client.ping()`` method had always raised ``TypeError``.
          [`#80`_]
        - Corrected a typo ``Accepts`` on request headers ``Client`` makes to
          ``Accept``.
        
        .. _#78: https://github.com/nirum-lang/nirum-python/pull/78
        .. _#83: https://github.com/nirum-lang/nirum-python/issues/83
        .. _#80: https://github.com/nirum-lang/nirum-python/pull/80
        
        
        Version 0.5.0
        -------------
        
        Released on June 1, 2017.
        
        - Service methods became able to specify its error type. [`#71`_]
        - Added ``nirum-server`` command to run simply Nirum service.
        
        .. _#71: https://github.com/nirum-lang/nirum-python/issues/71
        
        
        Version 0.4.3
        -------------
        
        Released on April 5, 2018.
        
        - Added missing equality functions (i.e., ``==``, ``!=`` operators, & ``hash()``
          function) to ``nirum.datastructures.Map`` and ``nirum.datastructures.List``.
          [`#110`_]
        
        
        Version 0.4.2
        -------------
        
        Released on July 6, 2017.
        
        - Fixed a serialization bug that other set-like (i.e. ``collections.Set``) types
          than Python built-in ``set`` hadn'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-in ``list`` hadn't been reduced to simpler forms so
          that they can be encoded to JSON.
        
        
        Version 0.4.1
        -------------
        
        Released on May 2, 2017.
        
        - Compare type with its abstract type in ``nirum.validate.validate_type``.
        
        
        Version 0.4.0
        -------------
        
        Released on March 20, 2017.
        
        - Encoding of map types was changed according to the `Nirum serialization
          specification`__.  [`#66`_]
        - Added ``nirum.datastructures`` module and ``nirum.datastructures.Map``
          which is an immutable dictionary.  [`#66`_]
        - Added ``nirum.datastructures.List`` which is an immutable list.
          [`#49`_]
        - Aliased ``nirum.datastructures.Map`` as ``map_type``, and
          ``nirum.datastructures.List`` as ``list_type`` to avoid name
          conflict with user-defined types.
        
        __ https://github.com/nirum-lang/nirum/blob/f1629787f45fef17eeab8b4f030c34580e0446b8/docs/serialization.md
        .. _#66: https://github.com/nirum-lang/nirum-python/pull/66
        .. _#49: https://github.com/nirum-lang/nirum-python/issues/49
        
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
Classifier: Topic :: Software Development :: Code Generators
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Object Brokering
Provides-Extra: tests
Provides-Extra: docs
