Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to the Semantic Versioning scheme.

0.5.5 - 2018-8-01

Fixed

  • Issue with sending JSON list Body using @json annotation.

0.5.4 - 2018-6-26

Fixed

  • When using uplink.AiohttpClient with aiohttp>=3.0, the underlying aiohttp.ClientSession would remain open on program exit.

0.5.3 - 2018-5-31

Fixed

  • Issue where adding two or more response handlers (i.e., functions decorated with uplink.response_handler) to a method caused a ``TypeError`.

0.5.2 - 2018-5-30

Fixed

  • Applying returns.json decorator without arguments should produce JSON responses when the decorated method is lacking a return value annotation.

0.5.1 - 2018-4-10

Added

  • Decorator uplink.returns.model for specifying custom return type without indicating a specific data deserialization format.

Fixed

  • Have uplink.Body decorator accept any type, not just mappings.
  • Reintroduce the uplink.returns decorator.

0.5.0 - 2018-4-06

Added

  • Decorators for convenient registration of custom serialization. (uplink.dumps) and deserialization (uplink.loads) strategies.
  • Support for setting nested JSON fields with uplink.Field and uplink.json.
  • Optional args parameter to HTTP method decorators (e.g., uplink.get) for another Python 2.7-compatible alternative to annotating consumer method arguments with function annotations.
  • Decorator uplink.returns.json for converting HTTP response bodies into JSON objects or custom Python objects.
  • Support for converting collections (e.g., converting a response body into a list of users).

Changed

  • Leveraging built-in converters (such as uplink.converters.MarshmallowConverter) no longer requires providing the converter when instantiating an uplink.Consumer subclass, as these converters are now implicitly included.

Fixed

  • uplink.response_handler and uplink.error_handler properly adopts the name and docstring of the wrapped function.

0.4.1 - 2018-3-10

Fixed

  • Enforce method-level decorators override class-level decorators when they conflict.

0.4.0 - 2018-2-10

Added

  • Support for Basic Authentication.
  • The response_handler decorator for defining custom response handlers.
  • The error_handler decorator for defining custom error handlers.
  • The inject decorator for injecting other kinds of middleware.
  • The Consumer._inject method for adding middleware to a consumer instance.
  • Support for annotating constructor arguments of a Consumer subclass with built-in function annotations like Query and Header.

0.3.0 - 2018-1-09

Added

  • HTTP HEAD request decorator by @brandonio21.
  • Support for returning deserialized response objects using marshmallow schemas.
  • Constructor parameter for Query and QueryMap to support already encoded URL parameters.
  • Support for using requests.Session and aiohttp.ClientSession instances with the client parameter of the Consumer constructor.

Changed

  • aiohttp and twisted are now optional dependencies/extras.

Fixed

  • Fix for calling a request method with super, by @brandonio21.
  • Fix issue where method decorators would incorrectly decorate inherited request methods.

0.2.2 - 2017-11-23

Fixed

  • Fix for error raised when an object that is not a class is passed into the client parameter of the Consumer constructor, by @kadrach.

0.2.0 - 2017-11-03

Added

  • The class uplink.Consumer by @itstehkman. Consumer classes should inherit this base. class, and creating consumer instances happens through instantiation.
  • Support for asyncio for Python 3.4 and above.
  • Support for twisted for all supported Python versions.

Changed

  • BREAKING: Invoking a consumer method now builds and executes the request, removing the extra step of calling the execute method.

Deprecated

  • Building consumer instances with uplink.build. Instead, Consumer classes should inherit uplink.Consumer.

Fixed

  • Header link for version 0.1.1 in changelog.

0.1.1 - 2017-10-21

Added

  • Contribution guide, CONTRIBUTING.rst.
  • “Contributing” Section in README.rst that links to contribution guide.
  • AUTHORS.rst file for listing project contributors.
  • Adopt Contributor Covenant Code of Conduct.

Changed

  • Replaced tentative contributing instructions in preview notice on documentation homepage with link to contribution guide.

0.1.0 - 2017-10-19

Added

  • Python ports for almost all method and argument annotations in Retrofit.
  • Adherence to the variation of the semantic versioning scheme outlined in the official Python package distribution tutorial.
  • MIT License
  • Documentation with introduction, instructions for installing, and quick getting started guide covering the builder and all method and argument annotations.
  • README that contains GitHub API v3 example, installation instructions with pip, and link to online documentation.