Metadata-Version: 2.1
Name: object-proxy
Version: 0.1a0
Summary: A minimalistic yet powerful object proxying utility
Home-page: https://github.com/aviksama/objectproxy
Author: Avik Samaddar
Author-email: eml2avik@gmail.com
License: UNKNOWN
Keywords: python objectproxy
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6

# ObjectProxy #
**A minimalistic yet powerful object proxying utility**

This readme attempts to explain the general use of this library.

### Installation ###
* Install from repository
```
pip install git+https://github.com/aviksama/objectproxy.git
```
### Example ###

Object proxy basically creates a proxy for any python object:

```python
class MyClass(object):

    def __init__(self, array=None):
        self.array = array or []

    def get_array_element(self, index):
        try:
            return self.array[index]
        except IndexError:
            return


def create_dictionary_of_objects(*args):
    mydict = dict()
    for index, arg in enumerate(args):
        mydict[index] = arg

```
Now lets create proxies for the objects above in random fashion

```python
>>> from objectproxy import ProxyElement, eval_proxy

>>> class_proxy = ProxyElement(MyClass, args=[[1,2,3],], kwargs={})
>>> function_proxy = ProxyElement(create_dictionary_of_objects, args=[class_proxy], kwargs={})
>>> class_proxy_ref = function_proxy.values()[0]
>>> class_proxy_array_element = class_proxy_ref.get_array_element(0)
>>> eval_proxy(class_proxy_array_element)
1
``` 
until `eval_proxy` is called on the proxy object, It doesn't call the parent methods. Hence all the parent methods and attributes are lazily evaluated. 

### Contribution guidelines ###

We appreciate your effort in contributing to this project. You can contribute in any of the following.
* Writing tests
* Code review
* Other guidelines
* Submit issues

In order to contribute please fork the repository, And make a GitHub pull request to `dev` branch.

### Who do I talk to? ###

* Repo owner or admin
* Other community or team contact





