'horiba-sdk' is a package that provides source code for the development with Horiba devices
Project description
horiba-python-sdk
🛠️ Usage
-
Install the sdk:
pip install horiba-python-sdk
or install with
Poetry
poetry add horiba-python-sdk
-
Create a file named
center_scan.py
and copy-paste the content ofexamples/asynchronous_examples/center_scan.py
-
Run the example with:
python center_scan.py
👩💻 First steps as contributor
Initialize your code
- Initialize
git
inside your repo:
cd horiba-python-sdk
git init
- If you don't have
Poetry
installed run:
make poetry-download
- Initialize poetry and install
pre-commit
hooks:
make install
make pre-commit-install
- Run the codestyle:
make codestyle
- Upload initial code to GitHub:
git add .
git commit -m ":tada: Initial commit"
git branch -M main
git remote add origin https://github.com/ThatsTheEnd/horiba-python-sdk.git
git push -u origin main
Poetry
Want to know more about Poetry? Check its documentation.
Details about Poetry
Poetry's commands are very intuitive and easy to learn, like:
poetry add numpy@latest
poetry run pytest
poetry publish --build
etc
Building and releasing your package
Building a new version of the application contains steps:
-
Bump the version of your package
poetry version <version>
. You can pass the new version explicitly, or a rule such asmajor
,minor
, orpatch
. For more details, refer to the Semantic Versions standard. -
Update the
CHANGELOG.md
withgit-changelog -B auto -Tio CHANGELOG.md
-
Make a commit to
GitHub
. -
Create a tag and push it. The release is automatically triggered on tag push:
git tag vX.Y.Z # where the version MUST match the one you indicated before git push --tags
Makefile usage
Makefile
contains a lot of functions for faster development.
1. Download and remove Poetry
To download and install Poetry run:
make poetry-download
To uninstall
make poetry-remove
2. Install all dependencies and pre-commit hooks
Install requirements:
make install
Pre-commit hooks coulb be installed after git init
via
make pre-commit-install
3. Codestyle
Automatic formatting uses pyupgrade
, isort
and black
.
make codestyle
# or use synonym
make formatting
Codestyle checks only, without rewriting files:
make check-codestyle
Note:
check-codestyle
usesisort
,black
anddarglint
library
Update all dev libraries to the latest version using one comand
make update-dev-deps
4. Code security
make check-safety
This command launches Poetry
integrity checks as well as identifies security issues with Safety
and Bandit
.
make check-safety
5. Type checks
Run mypy
static type checker
make mypy
6. Tests with coverage badges
Run pytest
make test
7. All linters
Of course there is a command to rule run all linters in one:
make lint
the same as:
make test
make check-codestyle
make mypy
make check-safety
8. Docker
make docker-build
which is equivalent to:
make docker-build VERSION=latest
Remove docker image with
make docker-remove
More information about docker.
9. Cleanup
Delete pycache files
make pycache-remove
Remove package build
make build-remove
Delete .DS_STORE files
make dsstore-remove
Remove .mypycache
make mypycache-remove
Or to remove all above run:
make cleanup
📚 Documentation
The latest documentation can be found at
horiba-python-sdk.readthedocs.io.
In order to build it locally, run the following in the docs/
folder:
make html
The documentation will then be built under docs/build/html/
.
Documentation is built each time a commit is pushed on main
or for pull
requests. When release tags are created in the repo, readthedocs will also tag
the documentation accordingly
🚀 Features
Development features
- Supports for
Python 3.9
and higher. Poetry
as the dependencies manager. See configuration inpyproject.toml
.- Automatic codestyle with
ruff
- Ready-to-use
pre-commit
hooks with code-formatting. - Type checks with
mypy
; security checks withsafety
andbandit
- Testing with
pytest
. - Ready-to-use
.editorconfig
,.dockerignore
, and.gitignore
. You don't have to worry about those things.
Deployment features
GitHub
integration: issue and pr templates.Github Actions
with predefined build workflow as the default CI/CD.- Everything is already set up for security checks, codestyle checks, code formatting, testing, linting, docker builds, etc with
Makefile
. More details in makefile-usage. - Dockerfile for your package.
- Always up-to-date dependencies with
@dependabot
. You will only enable it. - Automatic drafts of new releases with
Release Drafter
. You may see the list of labels inrelease-drafter.yml
. Works perfectly with Semantic Versions specification.
Open source community features
- Ready-to-use Pull Requests templates and several Issue templates.
- Files such as:
LICENSE
,CONTRIBUTING.md
,CODE_OF_CONDUCT.md
, andSECURITY.md
are generated automatically. - Semantic Versions specification with
Release Drafter
.
📈 Releases
You can see the list of available releases on the GitHub Releases page.
We follow Semantic Versions specification.
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 |
🛡 License
This project is licensed under the terms of the MIT
license. See LICENSE for more details.
📃 Citation
@misc{horiba-python-sdk,
author = {ZühlkeEngineering},
title = {'horiba-python-sdk' is a package that provides source code for the development with Horiba devices},
year = {2023},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/ThatsTheEnd/horiba-python-sdk}}
}
Credits
This project was generated with python-package-template
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 Distribution
Built Distribution
Hashes for horiba_sdk-0.3.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0376382ac62b1edeb115863785efada07b3bd200337ca6f6f453dd4705b3d3a4 |
|
MD5 | a231be9a6643e1f477fcc622e846dba4 |
|
BLAKE2b-256 | ef7f7206ec0770ca9c0e1f5c7cb425e1f2c0afccbc7da7d5ae3fe6faf2bcdebc |