Skip to main content

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]

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.1.3.tar.gz (2.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

supers-0.1.3-py3-none-any.whl (3.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: supers-0.1.3.tar.gz
  • Upload date:
  • Size: 2.6 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.1.3.tar.gz
Algorithm Hash digest
SHA256 94b10e8d2627d61a145015c5097e5f3cabaef7ee7e2448df48a1928abe542dc9
MD5 b6b62a3a55269063273fcba38fa6ca34
BLAKE2b-256 2300552f39f0780045bfa5fdace71ad963d7416db1ef34ad0c1e6d43ddefe228

See more details on using hashes here.

File details

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

File metadata

  • Download URL: supers-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 3.6 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.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 def3712bed681ca0d06bef3ecdc7b9a886032449adabadc674e37cb7f516df8e
MD5 99c1facbf3dc46fa3f79068de91fac03
BLAKE2b-256 34fd0726316ea2b4f2d1b972abbc1132ed6d41a938b5d6b18197596368d1b03f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page