Metadata-Version: 2.4
Name: hardpy
Version: 0.18.0
Summary: HardPy library for device testing
Project-URL: Homepage, https://github.com/everypinio/hardpy/
Project-URL: Documentation, https://everypinio.github.io/hardpy/
Project-URL: Repository, https://github.com/everypinio/hardpy/
Project-URL: Changelog, https://everypinio.github.io/hardpy/changelog/
Author-email: Everypin <info@everypin.io>
License-Expression: GPL-3.0-or-later
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: Pytest
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
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: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Software Development :: Testing :: Acceptance
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Requires-Dist: fastapi>=0.100.1
Requires-Dist: glom>=23.3.0
Requires-Dist: jinja2<4,>=3
Requires-Dist: keyring<26,>=25.0.0
Requires-Dist: natsort>=8.4.0
Requires-Dist: oauthlib<4,>=3.1.0
Requires-Dist: py-machineid~=0.6.0
Requires-Dist: pycouchdb<2,>=1.14.2
Requires-Dist: pydantic<3,>=2.4.0
Requires-Dist: pytest<9,>=7
Requires-Dist: qrcode>=8
Requires-Dist: requests-oauth2client<2,>=1.5.0
Requires-Dist: requests-oauthlib<3,>=2.0.0
Requires-Dist: requests<3,>=2.30.0
Requires-Dist: tomli-w<2,>=1.1.0
Requires-Dist: tomli<3,>=2.0.1
Requires-Dist: typer<1,>=0.12
Requires-Dist: tzlocal~=5.2
Requires-Dist: uvicorn>=0.23.2
Provides-Extra: build
Requires-Dist: build==1.0.3; extra == 'build'
Provides-Extra: dev
Requires-Dist: mypy>=1.11.0; extra == 'dev'
Requires-Dist: ruff==0.8.0; extra == 'dev'
Requires-Dist: wemake-python-styleguide>=0.19.2; extra == 'dev'
Provides-Extra: tests
Requires-Dist: psutil~=7.0.0; extra == 'tests'
Requires-Dist: pytest-timeout==2.4.0; extra == 'tests'
Description-Content-Type: text/markdown

<h1 align="center">
    <img src="https://raw.githubusercontent.com/everypinio/hardpy/main/docs/img/logo256.png" alt="HardPy" style="width:150px;">
</h1>

<p align="center">
HardPy is a python library for creating a test bench for devices.
</p>

<div align="center">

[![PyPI version](https://img.shields.io/pypi/v/hardpy)](https://pypi.org/project/hardpy/)
![python versions](https://img.shields.io/pypi/pyversions/hardpy.svg)
[![pytest versions](https://img.shields.io/badge/pytest-%3E%3D7.0%20%3C9.0-blue)](https://docs.pytest.org/en/latest/)
[![Documentation](https://img.shields.io/badge/Documentation%20-Overview%20-%20%23007ec6)](https://everypinio.github.io/hardpy/)
[![Reddit](https://img.shields.io/badge/-Reddit-FF4500?style=flat&logo=reddit&logoColor=white)](https://www.reddit.com/r/HardPy)
[![Telegram](https://img.shields.io/badge/-Telegram-2CA5E0?style=flat&logo=telegram&logoColor=white)](https://t.me/everypin)

</div>

---

## Overview

HardPy allows you to:

* Create test benches for devices using [pytest](https://docs.pytest.org/);
* Use a browser to view, start, stop, and interact with tests;
* Store test results in the [CouchDB](https://couchdb.apache.org/) database;
* Store test results on the [StandCloud](https://standcloud.io/) analytics platform.

<h1 align="center">
    <img src="https://raw.githubusercontent.com/everypinio/hardpy/main/docs/img/hardpy_panel.gif" alt="hardpy panel" style="width:550px;">
</h1>

## To Install

```bash
pip install hardpy
```

## Getting Started

1. Create your first test bench.
```bash
hardpy init
```
2. Launch [CouchDB](https://couchdb.apache.org/) database via [docker compose](https://docs.docker.com/compose/) in the background.
```bash
cd tests
docker compose up -d
```
3. Launch HardPy operator panel.
```bash
hardpy run
```
4. View operator panel in browser: http://localhost:8000/
5. View the latest test report: http://localhost:5984/_utils

    Login and password: **dev**, database - **runstore**.

## Examples

For more examples of using **HardPy**, see the [examples](https://github.com/everypinio/hardpy/tree/main/examples) folder and the [documentation](https://everypinio.github.io/hardpy/examples/).

## Measurement instruments

**HardPy** does not contain any drivers for interacting with measuring equipment. 
However, **HardPy** allows you to work with any Python code, meaning you can use 
open libraries to interact with measuring equipment.

* [InstrumentKit](https://github.com/instrumentkit/InstrumentKit)
* [Instrumental](https://github.com/mabuchilab/Instrumental)
* [PyMeasure](https://github.com/pymeasure/pymeasure)
* [PyTango](https://gitlab.com/tango-controls/pytango)
* [QCoDeS](https://github.com/microsoft/Qcodes)
* [QCoDeS contrib drivers](https://github.com/QCoDeS/Qcodes_contrib_drivers) 
