Skip to main content

A decorator to automatically detect mismatch when overriding a method.

Project description

https://api.travis-ci.org/mkorpela/overrides.svg https://coveralls.io/repos/mkorpela/overrides/badge.svg https://img.shields.io/pypi/v/overrides.svg http://pepy.tech/badge/overrides

A decorator to automatically detect mismatch when overriding a method. See http://stackoverflow.com/questions/1167617/in-python-how-do-i-indicate-im-overriding-a-method

All checks are done when a class or a method is created and not when a method is executed or an instance of a class is created. This means that performace implications are minimal.

Installation

$ pip install overrides

Usage

from overrides import overrides

class SuperClass(object):

    def method(self):
        """This is the doc for a method and will be shown in subclass method too!"""
        return 2

class SubClass(SuperClass):

    @overrides
    def method(self):
        return 1

Enforcing usage

from overrides import EnforceOverrides, final, overrides

class SuperClass(EnforceOverrides):

    @final
    def method(self):
        """This is the doc for a method and will be shown in subclass method too!"""
        return 2

    def method2(self):
        """This is the doc for a method and will be shown in subclass method too!"""
        return 2

    def method3(self):
        """This is the doc for a method and will be shown in subclass method too!"""
        return 2

# THIS FAILS
class SubClass1(SuperClass):

    def method(self): # <-- overriding a final method
        return 1


# THIS FAILS
class SubClass2(SuperClass):

    def method2(self): # <-- @overrides decorator missing
        return 1

# THIS ONE IS OK
class SubClass3(SuperClass):

    @overrides
    def method2(self):
        return 1

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

overrides-2.7.0.tar.gz (4.5 kB view hashes)

Uploaded Source

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