ulfsri / pyAlicat

Python API for acquisition and control of Alicat mass flow meters and controllers.
https://ulfsri.github.io/pyAlicat/
MIT License
0 stars 1 forks source link

pyAlicat

pyAlicat

[![Build status](https://github.com/ulfsri/pyAlicat/workflows/build/badge.svg?branch=main&event=push)](https://github.com/ulfsri/pyAlicat/actions?query=workflow%3Abuild) [![Python Version](https://img.shields.io/pypi/pyversions/pyalicat.svg)](https://pypi.org/project/pyAlicat/) [![Dependencies Status](https://img.shields.io/badge/dependencies-up%20to%20date-brightgreen.svg)](https://github.com/ulfsri/pyAlicat/pulls?utf8=%E2%9C%93&q=is%3Apr%20author%3Aapp%2Fdependabot) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Security: bandit](https://img.shields.io/badge/security-bandit-green.svg)](https://github.com/PyCQA/bandit) [![Pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/ulfsri/pyAlicat/blob/main/.pre-commit-config.yaml) [![Semantic Versions](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--versions-e10079.svg)](https://github.com/ulfsri/pyAlicat/releases) [![License](https://img.shields.io/github/license/ulfsri/pyalicat)](https://github.com/ulfsri/pyAlicat/blob/main/LICENSE) ![Coverage Report](assets/images/coverage.svg) Python API for acquisition and control of Alicat mass flow meters and controllers. See [Alicat Serial Communications Guide](https://www.alicat.com/wp-content/documents/Alicat-Serial-Primer.pdf) for reference

Installation

pip install -U pyAlicat

or install with Poetry

poetry add pyAlicat

Makefile usage

Makefile contains a lot of functions for faster development.

1. Download and remove Poetry

To download and install Poetry run: ```bash make poetry-download ``` To uninstall ```bash make poetry-remove ```

2. Install all dependencies and pre-commit hooks

Install requirements: ```bash make install ``` Pre-commit hooks coulb be installed after `git init` via ```bash make pre-commit-install ```

3. Codestyle

Automatic formatting uses `pyupgrade`, `isort` and `black`. ```bash make codestyle # or use synonym make formatting ``` Codestyle checks only, without rewriting files: ```bash make check-codestyle ``` > Note: `check-codestyle` uses `isort`, `black` and `darglint` library Update all dev libraries to the latest version using one comand ```bash make update-dev-deps ```

4. Code security

```bash make check-safety ``` This command launches `Poetry` integrity checks as well as identifies security issues with `Safety` and `Bandit`. ```bash make check-safety ```

5. Type checks

Run `mypy` static type checker ```bash make mypy ```

6. Tests with coverage badges

Run `pytest` ```bash make test ```

7. All linters

Of course there is a command to ~~rule~~ run all linters in one: ```bash make lint ``` the same as: ```bash make test && make check-codestyle && make mypy && make check-safety ```

8. Docker

```bash make docker-build ``` which is equivalent to: ```bash make docker-build VERSION=latest ``` Remove docker image with ```bash make docker-remove ``` More information [about docker](https://github.com/ulfsri/pyAlicat/tree/main/docker).

9. Cleanup

Delete pycache files ```bash make pycache-remove ``` Remove package build ```bash make build-remove ``` Delete .DS_STORE files ```bash make dsstore-remove ``` Remove .mypycache ```bash make mypycache-remove ``` Or to remove all above run: ```bash make cleanup ```

πŸ“ˆ Releases

You can see the list of available releases on the GitHub Releases page.

We follow Semantic Versions specification.

We use Release Drafter. As pull requests are merged, a draft release is kept up-to-date listing the changes, ready to publish when you’re ready. With the categories option, you can categorize pull requests in release notes using labels.

List of labels and corresponding titles

Label Title in Releases
enhancement, feature πŸš€ Features
bug, refactoring, bugfix, fix πŸ”§ Fixes & Refactoring
build, ci, testing πŸ“¦ Build System & CI/CD
breaking πŸ’₯ Breaking Changes
documentation πŸ“ Documentation
dependencies ⬆️ Dependencies updates

You can update it in release-drafter.yml.

GitHub creates the bug, enhancement, and documentation labels for you. Dependabot creates the dependencies label. Create the remaining labels on the Issues tab of your GitHub repository, when you need them.

πŸ›‘ License

License

This project is licensed under the terms of the MIT license. See LICENSE for more details.

πŸ“ƒ Citation

@misc{pyAlicat,
  author = {ulfsri},
  title = {Python API for acquisition and control of Alicat mass flow meters and controllers},
  year = {2024},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/ulfsri/pyAlicat}}
}

Credits πŸš€ Your next Python package needs a bleeding-edge project structure.

This project was generated with python-package-template

Logo design by Natalya England