Metadata-Version: 2.2
Name: pimpmyclass
Version: 0.4.3
Summary: Pimp your Class/Property/Methods with useful functionality
Home-page: https://github.com/hgrecco/pimpmyclass
Author: Hernan E. Grecco
Author-email: hernan.grecco@gmail.com
License: BSD
Keywords: classes properties descriptors decorators
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Libraries
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Requires-Python: >=3.6
License-File: LICENSE
License-File: AUTHORS
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: requires-python
Dynamic: summary

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.3 (2019-04-30)
------------------

- Changed signal is only emitted when the cache value actually changes.


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.

