FemtoAPI Python wrapper
Project description
Contents
This project contains a Python wrapper for calling the Femto API functions of MESc software and additional utilities for handling the data obtained from the API. These are bundled in the femtoapiwrap package that gets installed using basic setup.
For sample implementations for basic use cases, see the scripts in folder examples/basic.
Modules (it’s enough to import femtoapiwrap only):
femtoapiwrap.api: the low-level API functions
femtoapiwrap.hi: high-level types and methods
femtoapiwrap.utils: miscellaneous functions
femtoapiwrap.errors: custom exceptions
Install
Basic Setup
$ cd <project-root>
$ pip install -U .
Checking version:
import femtoapiwrap
print(femtoapiwrap.__version__)
Running Examples
Examples require additional dependencies, which can be installed like this:
$ pip install -U .[examples]
Generating Documentation
$ cd <project-root>
$ pip install -U .[doc]
$ cd doc
$ make clean
$ make html
Then you can find the documentation at <project-root>/doc/_build/index.html. Rebuilding often requires the deletion of <project-root>/doc/parts/stubs too.
Running Tests
Run tests with coverage report:
$ cd <project-root>
$ pip install .[test]
$ cd <project-root>/tests
$ coverage run --source femtoapiwrap -m unittest discover && coverage report
Some test cases need an accessible microscope or a running measurement. By default, these are skipped and can be activated by setting 1 to the environment variables FEMTOAPIWRAP_TEST_MICROSCOPE or FEMTOAPIWRAP_TEST_ONLINE respectively.
Purchase
To purchase FemtoAPI please contact sales@femtonics.eu.
Disclaimer
IN NO EVENT SHALL FEMTONICS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF FEMTONICS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
FEMTONICS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED HEREUNDER IS PROVIDED “AS IS”. FEMTONICS HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
Changelog
- 0.5.2
- hi.UnitMeta
New attributes t_step_in_ms, t_length_in_ms, t_length_in_ms_actual, file_handle and fs.
- hi.Roi.from_tree
Fixed loading optional fields (e. g. viewport_index).
- 0.5.1
- hi.HighFemtoApi.read_points
Fix: no longer raises EmptyJsonError when there are no points in the file.
- hi.Roi.to_px_coords
New parameter closed, with plotting example
- 0.5.0
- hi.Point.from_px_coords
Support for 3D points as well.
- hi.Roi
Breaking change: removed attributes viewport_rot and viewport_transl due to expected removal from FemtoAPI JSON object.
New attributes first_z_plane and last_z_plane for planned support of ROIs in zStack measurements (not yet implemented in MESc).
- hi.Roi.from_px_coords
Breaking change: replaced parameter viewport with viewport_index.
- hi.Roi.to_tree
Breaking change: removed parameters as the corresponding tree fields can be filled from the attributes.
- hi.{FileMeta, SessionMeta}.from_tree
Temporary fix to allow converted old MESc files pass the version validation.
- 0.4.0
- errors.*
Breaking changes: Exceptions are no longer inherited from IOError as that was merged with OSError and FemtoApiWrapError subclasses do not strictly related to OS error codes.
PEP-8 compliant and more informative naming:
ConnectionFailed -> ApiConnectionError
MicroscopeTimedOut -> MeasurementTimeoutError
NodeNotFound -> NodeNotFoundError
NoMetaData -> EmptyJsonError
InvalidDimension -> DimensionError
InvalidPointGroup -> PointSeriesKeyError
UnsupportedVersion -> JsonVersionError
- errors.ApiCommandError
New exception to contain error information about FemtoAPI command failures.
- errors.ApiLoginError
New exception.
- errors.NoMeasurementUnit
Removed, merged with NodeNotFoundError
- errors.InvalidMeasurementType
Removed, it was unused.
- 0.3.1
- hi.Roi
Added attribute background based on the previously unprocessed JSON-attribute "role".
- hi.Roi.from_px_coords
Added parameter background.
- 0.3.0
- hi.HighFemtoApi.online_frames
Fixed to take into account the actual number of frames received from MESc. Breaking change: The actual start index is now included in the iterator. Introduced the parameter strict to enforce chunks of equal length.
- 0.2.0.post1
Relaxed dependency version requirements.
- 0.2.0
Initial public release.
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 Distributions
Built Distribution
File details
Details for the file femtoapiwrap-0.5.3-py3-none-any.whl
.
File metadata
- Download URL: femtoapiwrap-0.5.3-py3-none-any.whl
- Upload date:
- Size: 45.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4adbb2ca36e739688947f47ee1b6731c19d5035c3aef5491c5e7cfa65ab5dc79 |
|
MD5 | dadb02cd4026fbdbd1932cfba1decd03 |
|
BLAKE2b-256 | 617140e28372c7c42c75b6be4ec9968e9497181419441a3497001bb9f78c2b17 |