Skip to content

Releases: rsokl/custom_inherit

Release v2.4.1

18 Feb 19:41
173650f
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.4.0...v2.4.1

Release v2.4.0

28 Aug 02:51
7e08197
Compare
Choose a tag to compare

Thanks to @AntoineD for providing the main improvements for this release, and to those who commented in #38 to shed light on the issues fixed by this release.

This release contains compatibility-breaking changes/fixes for the google_with_merge, numpy_with_merge, and numpy_napoleon_with_merge styles.

Specifically, the merging behavior was changed such that only those docstring sections that contain <name> : <description> style lists (e.g. the Parameters or Args sections) will be merged. Thus sections like Notes will no longer be included in the merging process.

What Does This Fix?

Compounding, repeated sections via multiple-inheritance

Prior to this release, using these styles with multiple inheritance created multiply-repeated inherited sections (see #38). E.g.

class Parent(metaclass=DocInheritMeta(style="numpy_with_merge")):
    """Parent.

    Notes
    -----
    Blah
    """
    pass


class Child1(Parent):
    """Child1. 

    Methods
    -------
    meth: does something
    """
    pass


class Child2(Parent):
    """Child 2.

    Methods
    -------
    blah : does not much
    """


class GrandChild(Child1, Child2):
    """Grand Child."""
    pass

would produce the following docstring for GrandChild

Grand Child.

Methods
-------
blah : does not much
meth: does something

Notes
-----
Blah
Blah
Blah
Blah

Given the changes introduced in v2.4.0, the docstring for GrandChild will now be

Grand Child.

Methods
-------
blah : does not much
meth: does something

Notes
-----
Blah

De-duplicating repeated parameters

Before:

class Parent(metaclass=DocInheritMeta(style="numpy_with_merge")):
    """Parent.

    Attributes
    ----------
    x : int
    y : int
    """
    pass


class Child(Parent):
    """Child.
    
    Attributes
    ----------
    y : float
    z : float
    """
    pass

the docstring of Child would be:

Child.

Attributes
----------
x : int
y : int
y : float
z : float

in v2.4.0, it will be:

Child.

Attributes
----------
x : int
y : float
z : float

Docstring sections included in merging:

  • Attributes
  • Parameters
  • Methods
  • Other Parameters
  • Args
  • Arguments
  • Keyword Args
  • Keyword Arguments

v2.3.2

25 Jul 17:45
8bdab4c
Compare
Choose a tag to compare

Fixes a bug to ensure that DocInheritMeta returns a distinct metaclass instead of mutating it.

Methods section is now recognized in NumPy-style docstrings

24 Jan 22:06
9c9aa86
Compare
Choose a tag to compare

Previously, the Methods section in a NumPy-style docstring was not recognized

New behavior:

    class Parent(metaclass=DocInheritMeta(style="numpy_with_merge"))::
        """Parent summary.

        Methods
        -------
        meth
        """
        pass

    class Child(Parent):
        """Child summary.

        Attributes
        ----------
        a: hello
        """
        pass

Child will have the docstring

Child summary.

Attributes
----------
a: hello

Methods
-------
 meth