Skip to main content

Call a function in all superclasses as easy as `supers(self).foo(42)`

Project description

Supers: Call a function in all superclasses as easy as supers(self).foo(42)

Python package codecov Code style: black

Installation

pip install supers

Development installation

pip install -e .[tests,build]

Example

Say you have a class inheriting from multiple parent classes, and you would like a function for each parent. With supers this becomes as easy as:

from supers import supers

class Parent1:
    def __init__(self, m:float):
        self.m1 = m * 1

    def mult(self, value):
        return value * self.m1

class Parent2:
    def __init__(self, m:float):
        self.m2 = m * 2

    def mult(self, value):
        return value * self.m2

class Child(Parent1, Parent2):
    def __init__(self, m):
        supers(self).__init__(m)

    def allmult(self, val):
        return supers(self).mult(val)

c = Child(m=10)

# Parent attributes were updated
assert c.m1 == 10 
assert c.m2 == 20

# Parent1.mult is called as expected
assert c.mult(10) == 100

# Each parent is called and results are returned in a list
assert c.allmult(10) == supers(c).mult(10) == [100, 200]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

supers-0.2.0.tar.gz (3.0 kB view details)

Uploaded Source

Built Distribution

supers-0.2.0-py3-none-any.whl (4.1 kB view details)

Uploaded Python 3

File details

Details for the file supers-0.2.0.tar.gz.

File metadata

  • Download URL: supers-0.2.0.tar.gz
  • Upload date:
  • Size: 3.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0.post20200714 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.6.10

File hashes

Hashes for supers-0.2.0.tar.gz
Algorithm Hash digest
SHA256 13c8d40a8ac9af25009a7faca45f40c9bfbe6ff3dae863ccbdb58e998d167f40
MD5 9c395e6b0c467e86d3064869ad27e302
BLAKE2b-256 93b5a887c6fef337f939c842767a5405e48614378fbf9908b960555284d13fdd

See more details on using hashes here.

File details

Details for the file supers-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: supers-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 4.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0.post20200714 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.6.10

File hashes

Hashes for supers-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e99cd8856784e10f2c7d392512118d157f2c69b75f234252f0dffd5d33032852
MD5 32d731c38df919130825a1369e25f1df
BLAKE2b-256 7be2ccab13136645e24d1e25b8181b4b80b12aeb8ab0e058854c059f4174b691

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page