[wx]Python event programming framework
Project description
fsleyes-props is a library which is used by used by FSLeyes, and which allows you to:
Listen for change to attributes on a python object,
Automatically generate wxpython widgets which are bound to attributes of a python object
Automatically generate a command line interface to set values of the attributes of a python object.
To do this, you just need to subclass the fsleyes)props.HasProperties class (also available as fsleyes_props.Props), and add some PropertyBase types as class attributes.
Installation
You can install fsleyes-props via pip. If you are using Linux, you need to install wxPython first, as binaries are not available on PyPI. Change the URL for your specific platform:
pip install -f https://extras.wxpython.org/wxPython4/extras/linux/gtk2/ubuntu-16.04/ wxpython
Then install fsleyes-props like so:
pip install fsleyes-props
fsleyes-props is also available on conda-forge:
conda install -c conda-forge fsleyes-props
Dependencies
All of the dependencies of fsleyes-props are listed in the requirements.txt file. fsleyes-props can be used without wxPython, but GUI functionality will not be available.
Dependencies for running the tests and building documentation are listed in the requirements-dev.txt file.
Documentation
The fsleyes-props API documentation is hosted at https://open.win.ox.ac.uk/pages/fsl/fsleyes/props/.
fsleyes-props is documented using sphinx. You can build the API documentation by running:
pip install -r requirements-dev.txt python setup.py doc
The HTML documentation will be generated and saved in the doc/html/ directory.
Tests
Run the test suite via:
pip install -r requirements-dev.txt python setup.py test
Many of the tests assume that a display is accessible - if you are running on a headless machine, you may need to run the tests using xvfb-run.
Example usage
>>> import fsleyes_props as props
>>>
>>> class PropObj(props.Props):
>>> myProperty = props.Boolean()
>>>
>>> myPropObj = PropObj()
>>>
>>> # Access the property value as a normal attribute:
>>> myPropObj.myProperty = True
>>> myPropObj.myProperty
True
>>>
>>> # Receive notification of property value changes
>>> def myPropertyChanged(value, *args):
>>> print(f'New property value: {value}')
>>>
>>> myPropObj.listen('myProperty', 'myListener', myPropertyChanged)
>>>
>>> myPropObj.myProperty = False
New property value: False
>>>
>>> # Remove a previously added listener
>>> myPropObj.remove('myListener')
Contributing
If you would like to contribute to fsleyes-props, take a look at the fslpy contributing guide.
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
Built Distribution
Hashes for fsleyes_props-1.10.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63cd3acfe0b06930ccf058cd9730151973b9d772d02a74605bd538328a5b83ad |
|
MD5 | aca326eeefac84ef86295be17c2cdfd6 |
|
BLAKE2b-256 | 1fbdf0d5cfc9abb63ab51af8aebfa30e64a77bab904563a9926f2cf110091c3f |