Metadata-Version: 2.4
Name: gpype
Version: 4.1.0
Summary: A Python Software Development Kit for BCI/Neuroscience Applications
Author-email: "g.tec medical engineering GmbH" <support@gtec.at>
License-Expression: LicenseRef-GNCL
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: Linux
Classifier: Environment :: WebAssembly :: Emscripten
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE-GNCL.txt
Requires-Dist: numpy>=1.24.4
Requires-Dist: scipy>=1.10.1
Requires-Dist: sympy>=1.13.0
Requires-Dist: psutil>=6.1.1; sys_platform != "emscripten"
Requires-Dist: ioiocore<6,>=5.1.0
Requires-Dist: websockets>=12.0
Requires-Dist: gtec_licensing>=2.3.0; sys_platform != "emscripten"
Requires-Dist: gtec_attest>=1.0.0; sys_platform != "emscripten"
Requires-Dist: gtec_oscar>=1.3.1
Provides-Extra: gui
Requires-Dist: PySide6<6.12,>=6.10.1; extra == "gui"
Requires-Dist: pyqtgraph>=0.13.3; extra == "gui"
Provides-Extra: devices
Requires-Dist: gtec-ble>=2.9.4; extra == "devices"
Requires-Dist: gtec_gds>=1.7.3; extra == "devices"
Requires-Dist: gtec-unicorn>=1.0.0; ((sys_platform == "win32" and platform_machine == "AMD64") or (sys_platform == "linux" and platform_machine == "x86_64") or (sys_platform == "darwin" and platform_machine == "arm64")) and extra == "devices"
Requires-Dist: gtec_pp>=1.2.0; sys_platform == "win32" and extra == "devices"
Requires-Dist: pynput>=1.8.1; extra == "devices"
Requires-Dist: pyobjc==11.1; sys_platform == "darwin" and extra == "devices"
Provides-Extra: lsl
Requires-Dist: pylsl>=1.18.2; extra == "lsl"
Provides-Extra: formats
Requires-Dist: h5py>=3.7.0; extra == "formats"
Requires-Dist: pyedflib>=0.1.30; extra == "formats"
Provides-Extra: all
Requires-Dist: gpype[devices,gui,lsl]; extra == "all"
Requires-Dist: h5py>=3.7.0; extra == "all"
Requires-Dist: pyedflib>=0.1.30; (sys_platform != "win32" or python_version < "3.13") and extra == "all"
Provides-Extra: doc
Requires-Dist: sphinx>=7.1.2; extra == "doc"
Requires-Dist: sphinx-rtd-theme>=2.0.1; extra == "doc"
Requires-Dist: myst-parser>=3.0.1; extra == "doc"
Requires-Dist: sphinx-autodoc-typehints>=2.0.1; extra == "doc"
Requires-Dist: rstcheck; extra == "doc"
Requires-Dist: sphinx-lint; extra == "doc"
Requires-Dist: sphinx-design; extra == "doc"
Requires-Dist: sphinxcontrib-gtagjs; extra == "doc"
Requires-Dist: sphinxext-opengraph; extra == "doc"
Requires-Dist: sphinx-sitemap; extra == "doc"
Requires-Dist: sphinx-reredirects; extra == "doc"
Provides-Extra: test
Requires-Dist: pytest-cov>=5.0.0; extra == "test"
Requires-Dist: pytest-html>=4.1.1; extra == "test"
Requires-Dist: pytest-qt>=4.4.0; extra == "test"
Requires-Dist: tomli; python_version < "3.11" and extra == "test"
Requires-Dist: coverage>=7.6.1; extra == "test"
Requires-Dist: setuptools_scm; extra == "test"
Requires-Dist: pyinstaller; extra == "test"
Requires-Dist: pytest-timeout>=2.3.1; extra == "test"
Requires-Dist: nox; extra == "test"
Requires-Dist: pandas>=2.2; extra == "test"
Requires-Dist: matplotlib>=3.9; extra == "test"
Provides-Extra: build
Requires-Dist: setuptools>=75.3.2; extra == "build"
Requires-Dist: cython>=3.1.1; extra == "build"
Requires-Dist: build>=1.2.2; extra == "build"
Requires-Dist: wheel>=0.45.1; extra == "build"
Requires-Dist: tomli; python_version < "3.11" and extra == "build"
Requires-Dist: setuptools_scm; extra == "build"
Provides-Extra: lint
Requires-Dist: flake8==7.3.0; extra == "lint"
Requires-Dist: black==25.1.0; extra == "lint"
Requires-Dist: isort==6.0.1; extra == "lint"
Provides-Extra: apps
Requires-Dist: pyinstaller; extra == "apps"
Provides-Extra: pypi
Requires-Dist: twine; extra == "pypi"
Provides-Extra: release
Requires-Dist: paramiko; extra == "release"
Requires-Dist: requests; extra == "release"
Dynamic: license-file

# g.Pype

[![Powered by g.tec](https://img.shields.io/badge/powered_by-g.tec-003e6b)](http://gtec.at)
[![PyPI](https://img.shields.io/pypi/v/gpype.svg?label=version&color=003e6b)](https://pypi.org/project/gpype/)
[![Python](https://img.shields.io/pypi/pyversions/gpype.svg?color=003e6b)](https://pypi.org/project/gpype/)
![Tests](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fgtec-medical-engineering%2Fgpype%2Fbadges%2Ftests.json)
![Coverage](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fgtec-medical-engineering%2Fgpype%2Fbadges%2Fcoverage.json)
[![License](https://img.shields.io/badge/license-GNCL-003e6b)](https://github.com/gtec-medical-engineering/gpype/blob/main/LICENSE-GNCL.txt)
[![Documentation](https://img.shields.io/badge/doc-gpype.gtec.at-003e6b)](https://gpype.gtec.at/)

g.Pype is a Python Software Development Kit (SDK) for building neuroscience and Brain-Computer Interface (BCI) applications. It is designed to be simple to use, with a clear and well-documented coding interface with many examples that help you get started quickly. It provides essential building blocks that can be combined and adapted to your needs, while remaining open to integration with other Python packages. g.Pype runs pipelines in real time or offline over a recording, on Windows, macOS and Linux.


# Quickstart

Install `gpype` and clone the GitHub repository:

```shell
pip install "gpype[all]"
git clone https://github.com/gtec-medical-engineering/gpype.git
```

g.Pype supports Python 3.10 to 3.14. On Windows with Python 3.13 or 3.14, `gpype[all]` leaves out EDF support, because its package, pyedflib, publishes no wheel there; `pip install "gpype[formats]"` adds it where Microsoft C++ Build Tools are installed.

Navigate to the subfolder `./gpype/examples` and run the example scripts directly from your IDE (e.g., VS Code, PyCharm, ...).

# Supported devices and platforms

| Device | Connection | Platforms |
| --- | --- | --- |
| BCI Core-4, BCI Core-8, gCore | Bluetooth Low Energy | Windows, macOS, Linux (x86_64, aarch64) |
| Unicorn Hybrid Black | Bluetooth | Windows, macOS, Linux |
| g.Nautilus | wireless, through the GDS service | Windows, macOS, Linux |
| g.USBamp | USB, through the GDS service | Windows, macOS, Linux |
| g.HIamp | USB, through the GDS service | Windows, macOS, Linux |

Any other device joins through Lab Streaming Layer or UDP beside a g.tec amplifier, and a pipeline runs on the built-in signal generator with no hardware at all. The full table, with channels, rates and extras, is in the manual's [Supported Devices and Platforms](https://gpype.gtec.at/content/1_basic_concepts/supported_devices.html); measured timing accuracy on every amplifier and platform is on its [benchmarks page](https://gpype.gtec.at/content/4_advanced_topics/benchmarks.html).

# Documentation
Full documentation is available at [gpype.gtec.at](https://gpype.gtec.at).

# License
`gpype` is licensed under the **g.tec Non-Commercial License (GNCL)**. See the [LICENSE](https://github.com/gtec-medical-engineering/gpype/blob/main/LICENSE-GNCL.txt) file for details.
