Skip to main content

Dynamic python object access & manipulation across threads/processes.

Project description

shareable

alt text alt text

Dynamic python object access & manipulation across threads/processes

Installation: requires python3.8+

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


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.6a0.tar.gz (7.4 kB view hashes)

Uploaded Source

Built Distribution

shareable-0.6a0-py3-none-any.whl (8.6 kB view hashes)

Uploaded Python 3

Supported by

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