Skip to content

Releases: seequent/pure_interface

v8.0.3

11 Dec 19:29
59e5713
Compare
Choose a tag to compare

Adds support for python 3.13

v8.0.2

28 Apr 22:41
5360334
Compare
Choose a tag to compare

What's Changed

  • Fixes type hint on register_adapter #105
  • permits & handles singledispatchmethod #106

v8.0.1

05 Mar 04:09
Compare
Choose a tag to compare

Fixes bug when dataclass decorator is used with property implementation of an attribute.

v8.0.0

15 Nov 23:58
Compare
Choose a tag to compare

Version 8.0 is not backwards compatible with version 7.x.
The way concrete types are created has changed to be in line with typing.Protocol. This also made writing a mypy plugin easier (maybe even possible).
As per Protocols, a class now has to directly inherit from Interface to be considered an interface type, this was not the case in previous versions.
This also removes the annoying idiom of concrete classes being created with object in the bases list.

Given

class MyInterface(Interface):
      ...

in version 7.x and earlier

class SubInterface(MyInterface):
       ...

class Concrete(MyInterface, object):
     ....

however in version 8.0

class SubInterface(MyInterface, Interface):
       ...

class Concrete(MyInterface):
     ....

To assist in migrating existing code a simple script for listing interface classes is attached.

Other changes:

  • Removed allow_implicit parameter to provided_by (it was pointless).
  • Removed pure_interface.dataclass decorator in favour of supporting decorator from standard library.
  • Added mypy plugin.

v7.3.0

21 Jul 02:40
3eb91bd
Compare
Choose a tag to compare

Adds sub_interface_of decorator.
Drops official support for Python 3.7
Adds py.typed marker file for type-hinting.
Interfaces may now subclass typing.Generic.

v7.1.0

01 May 22:01
Compare
Choose a tag to compare

Removed deprecated base class mro fixing.
Fixed generic classes breaking type_is_interface.
Fixed fallback delegates accidentally creating interface attributes on sub-classes.

v7.0.1

27 Apr 23:24
f757d65
Compare
Choose a tag to compare

Fixes #91 Delegate subclasses no longer override base class methods and attributes.

v7.0.0

01 Mar 23:01
82337ef
Compare
Choose a tag to compare

This release removes abc.abstractmethod, abc.abstractclassmethod and abc.abstractstaticmethod from pure_interface.
Refactored python module into a package.
Added Delegate class.
Fixed bug handling generics #80.

v6.0.2

29 Aug 03:34
Compare
Choose a tag to compare

Handle byte code generated with -OO flag in 3.10 and 3.11

v6.0.1

22 Aug 04:43
Compare
Choose a tag to compare

Fixes bug not accepting empty async def methods.