Metadata-Version: 2.5
Name: plesty-pyforpicam
Version: 0.5.0
Summary: Python ctypes bindings for Princeton Instruments PICam cameras.
Author-email: Frederik Benthin <frederik.benthin@fkp.uni-hannover.de>, Christopher Borchers <christopher.borchers@fkp.uni-hannover.de>, Tom Rakow <tom.rakow@fkp.uni-hannover.de>
Maintainer-email: Plesty Development Team <plesty.dev@example.com>
License-Expression: GPL-3.0-or-later
License-File: COPYING
License-File: LICENSE
Requires-Python: >=3.12
Requires-Dist: numpy>=1.24
Requires-Dist: plesty-lib<1,>=0.4
Description-Content-Type: text/markdown

# Plesty PyForPICam

Python `ctypes` bindings for the Princeton Instruments **PICam** library.

This is a low-level support module for
[`plesty-picamccd`](https://gitlab.com/plesty/hub/devices/princeton_instruments/picamccd):
it wraps the C functions exposed by the PICam SDK (`Picam.dll`) as plain
synchronous Python functions. It is not a Plesty device on its own — it provides
the raw call surface that a device driver builds on.

Async use is not baked in here. Callers that need `await` wrap the consuming
device with `plesty.lib.device.async_wrapper.AsyncWrapperSafe`, which offloads
the blocking `ctypes` calls to a worker thread.

## Installation

```bash
uv add "plesty-pyforpicam @ git+https://gitlab.com/plesty/hub/devices/princeton_instruments/pyforpicam.git"
```

## Usage

```python
import plesty.pyforpicam as pyforpicam
from plesty.pyforpicam.PiFunctions import Picam_InitializeLibrary
```

Each `Picam_*` function takes the loaded PICam handle as its first argument and
returns `True` on success, raising the matching `PicamError` subclass otherwise.

## License

Licensed under the GNU General Public License, version 3 or later
(GPL-3.0-or-later); see `LICENSE`. Note that `PiFunctions.py` derives from
PythonForPicam by Joe Lowney, distributed under the GNU General Public License
(see `COPYING`), and has been modified by the Plesty team.
