Dynamic python object access & manipulation across threads/processes.
Project description
shareable
Dynamic python object access & manipulation across threads/processes
Installation:
pip install shareable
Example:
# make a test class:
class Test:
def __init__(self, name, age):
self.name = name
self.age = age
def get_details(self):
return self.name, self.age
# in terminal 1
>>> from shareable import Shareable
>>> test = Test('DB Cooper', 50)
>>> s = Shareable(test)
>>> s
'Shareable(DB Cooper, 50)'
# in terminal 2:
>>> from shareable import Shareable
>>> s = Shareable()
'Connection established'
>>> print(s['name'])
'DB Cooper'
>>> s['name'] = 'new name'
# back in terminal 1:
'Connection established'
>>> print(s['name'])
'new name'
>>> print(s.methods())
'["age", "get_details", "name"]'
Support for complex objects:
>>> import pandas as pd
>>> import numpy as np
>>> df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
>>> s = Sharedable(df)
>>> s['info']()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 100 entries, 0 to 99
Data columns (total 4 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 A 100 non-null int64
1 B 100 non-null int64
2 C 100 non-null int64
3 D 100 non-null int64
dtypes: int64(4)
memory usage: 3.2 KB
# terminal 2:
>>> s = Shareable()
'Connection established'
>>> s['columns']
Index(['A', 'B', 'C', 'D'], dtype='object')
Gracefully handles resources on keyboard or explicit exit:
>>> s = Shareable()
>>> exit()
'Destroyed shared resources'
'Killed all child processes'
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
shareable-0.3a0.tar.gz
(5.7 kB
view hashes)
Built Distribution
Close
Hashes for shareable-0.3a0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f7fabe598d9a3db19c14db0e08e004cfdbbbf59a13c4617443a8214e59d91ae |
|
MD5 | acb0628e64876dde628ef71ccf2b3ac9 |
|
BLAKE2b-256 | ecc95a73621adf61a6a2cf2bc1705223eba8b16633347d282fc0394665f41186 |