Skip to main content

Pimp your Class/Property/Methods with useful functionality

Project description

Pimp My Class

[![Coverage Status](https://coveralls.io/repos/github/hgrecco/pimpmyclass/badge.svg?branch=master)](https://coveralls.io/github/hgrecco/pimpmyclass?branch=master) [![Build Status](https://travis-ci.org/hgrecco/pimpmyclass.svg?branch=master)](https://travis-ci.org/hgrecco/pimpmyclass) ![Python Version](https://img.shields.io/pypi/pyversions/pimpmyclass.svg) [![Python Version](https://img.shields.io/pypi/v/pimpmyclass.svg)](https://pypi.org/project/pimpmyclass/) [![Documentation Status](https://readthedocs.org/projects/pimpmyclass/badge/?version=latest)](https://pimpmyclass.readthedocs.io/en/latest/?badge=latest)

This library provides base classes to enable useful behavior in Python Objects.

The central purpose of the library is to extend python properties to allow:

  • get/set logging.

  • get/set timing, success and failure stats.

  • async locking.

  • get/set coercion and conversion.

  • value cache

  • prevent unnecessary set.

  • read once properties

But most importantly, it allows owner specific configurations. Properties are class attributes, and therefore it is difficult to have a property which is, for exampled cached, in an object but not cached in another instance of the same class.

The library also provides DictProperties: that is properties that can be accessed by key; and also methods!

Each capability is isolated in individual classes allowing you to pick only what you need.

https://github.com/hgrecco/pimpmyclass

Authors

Hernan E. Grecco <hernan.grecco@gmail.com>

pimpmyclass changelog

0.4.2 (2019-01-21)

  • Created get/set _notifiy to be called after succesfull get/set.

0.4.1 (2019-01-19)

  • Document log_values.

  • Check for key being member of list/tuple/set in dictproperties.

  • Fixed bug that precluded composing properties/methods with config.

0.4 (2019-01-19)

  • Renamed Config to InstanceConfig and implemented Config for instance independent configuration.

  • Implemented automatic filling of Config and InstanceConfig with kwargs.

  • Implemented default, value and type checking for Config and InstanceConfig

  • More testing and docs.

0.3 (2019-01-16)

  • Implemented log_values to toggle how values are logged

  • Improved testing.

  • Split GetSetCacheProperty into GetCacheProperty and SetCacheProperty

0.2 (2018-11-27)

  • Added the possibility to use Python Enum as keys in DictFeat.

0.1.3 (2018-04-04)

  • Removed keyword argument from DictFeat signal for greater compatibility with Qt.

0.1.2 (2018-04-04)

  • Fixed repr in BoundedProperty.

0.1.1 (2018-03-28)

  • Fixed check_signature when params is empty.

0.1 (2018-03-23)

  • first public release.

Supported by

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