Metadata-Version: 2.1
Name: subproxy
Version: 0.0.4
Summary: General Subprocess Proxy Object
Home-page: https://github.com/yycho0108/Subproxy
Author: Yoonyoung Cho
Author-email: jchocholate@gmail.com
License: MIT
Download-URL: https://github.com/yycho0108/Subproxy
Keywords: multiprocessing,proxy
Platform: Linux
Classifier: Development Status :: 1 - Planning
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Requires-Python: >=3.6
Description-Content-Type: text/markdown

# Subproxy

General Subprocess Proxy Object.


## Installation

Mostly targetting pip for package management for now:

```bash
pip3 install subproxy
```

## Usage

Simplest example:

```python
from subproxy import subproxy

class MyClass:
    pass

MyClassProxy = subproxy(MyClass)

# now MyClassProxy may be treated like `MyClass`,
# except when it doesn't work.

```

Also see the [test file](tests/test_subproxy.py) for a quick reference.

## Limitations

While the proxy generally works, we do have to draw the line somewhere
in transitioning between native objects and proxy objects.

Therefore, the below code would work:

```python
MyClassProxy = subproxy(MyClass)
p = MyClassProxy()
p.a = 'b'
print(p.a) # 'b'
```

But the below code would not work:

```python
MyClassProxy = subproxy(MyClass)
p = MyClassProxy()
p.a = {'a':0, 'b':1}
p.a['a'] = 1
print(p.a['a']) # still 0
```

This is because `p.a` would return a `dict` rather than a `subproxy(dict)`.

## Packaging

```bash
# opti
python3 setup.py sdist bdist_wheel
twine upload dist/*
```


