Skip to main content

License: ISC - See LICENSE file This is a simple piece of code born out of our frustration with the repetitiveness of calling overriden methods in python. having to write :: super(TheCurrentClassThatImIn, self).the_method_that_im_currently_in(all, the, arguments, again) every time you want to do that is just not DRY and makes refactoring that much more tedious. Wouldn't it be much coolder if you could just write self.super() instead? Yeah we thought so too. In the superclass of the class where you want to use this you need to make the superproxy available like this: class SuperClass(object): super = SuperProxy() Afterwards you can just use it in three forms in any method: - Auto-pick-up all available arguments and call the super method of the current method :: self.super() - Call super method of current method but with explicit arguments self.super(some\_arguments) - Get a proxy for the superclass and call a specific method with specific arguments self.super.whatever\_method(whatever, arguments) (self.super is the same as super(CurrentClass, self) but more DRY) Known Bugs: ----------- - Works only for object subclasses (new style classes) - Doesn't find super-methods of decorated methods as the code of the current method can't be found in the class object under the name of the method. TODO: ----- - Find a way so you can do something like from simple\_super import use\_in\_object to get every object enhanced by its niceness. Changelog: ---------- 1.0.5 and 1.0.6 (2016-09-07) - package for pypi to have an easy dependency - small cleanups to make it easier to step over this code in the debugger 1.0.4 (2010-06-06) - Add heuristic to move arguments to kwargs if lower method has more named arguments than the upper method 1.0.3 (2010-05-31) - Added compatibility for Python 3 - Moved stand-alone functions into nice classes 1.0.2 (2010-03-27) - Simplistic heuristic detection if self.super() or self.super(\*args, \*\*kwargs) was called so we can pass the right parameters - Made simple\_super compatible with Python 2.3 and old-style classes 1.0.1 - do not add arguments if subclass uses self.super() and super class does not get any arguments besides self. 1.0 - initial release

Project description

UNKNOWN

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

simplesuper-1.0.6.tar.gz (5.2 kB view details)

Uploaded Source

File details

Details for the file simplesuper-1.0.6.tar.gz.

File metadata

File hashes

Hashes for simplesuper-1.0.6.tar.gz
Algorithm Hash digest
SHA256 54b8c65b28d3e6b75f59400a1e038e62791f1619e7e8facfe76f09d148ba011c
MD5 97694a1c75e0d3aae7ac210ee0a10897
BLAKE2b-256 402607bf52efa1ef04a5763995c1423ab0ec2d42bcd3e04a7cea43266a15a629

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