Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/build-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,5 @@ on:
jobs:
documentation:
uses: sensirion/.github/.github/workflows/driver.python.documentation.yml@main
with:
use-project-requirements: true
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
BSD 3-Clause License

Copyright (c) 2025, Sensirion AG
Copyright (c) 2026, Sensirion AG
All rights reserved.

Redistribution and use in source and binary forms, with or without
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Click [here](https://sensirion.com/sen6x-air-quality-sensor-platform) to learn m



The default I²C address of [SEN62](https://www.sensirion.com/products/catalog/SEN62) is **0x6B**.
The default I²C address of [SEN62](https://www.sensirion.com/products/catalog/SEN62) is **0x6b**.



Expand Down
11 changes: 6 additions & 5 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@
# list see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html


import os
import sys
from datetime import datetime

import pkg_resources
import importlib.metadata as metadata
import sphinx.ext.autodoc

import sensirion_i2c_sen62
Expand All @@ -17,16 +18,16 @@
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))

# -- Project information -----------------------------------------------------
distribution = pkg_resources.get_distribution('sensirion_i2c_sen62')
distribution = metadata.distribution("sensirion_i2c_sen62")

project = u'sensirion_i2c_sen62'
project = distribution.name
copyright = u'{} Sensirion AG, Switzerland'.format(datetime.now().year)
author = 'Sensirion AG'

# The short X.Y version
version = sensirion_i2c_sen62.__version__
version = distribution.version
# The full version, including alpha/beta/rc tags
release = sensirion_i2c_sen62.__version__
release = distribution.version

# -- General configuration ---------------------------------------------------

Expand Down
6 changes: 3 additions & 3 deletions examples/example_usage_linux_sen62.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# (c) Copyright 2025 Sensirion AG, Switzerland
# (c) Copyright 2026 Sensirion AG, Switzerland
#
# THIS FILE IS AUTOMATICALLY GENERATED!
#
# Generator: sensirion-driver-generator 1.3.4
# Generator: sensirion-driver-generator 1.5.3
# Product: sen62
# Model-Version: 1.0.0
# Model-Version: 1.0.1
#

import argparse
Expand Down
6 changes: 3 additions & 3 deletions examples/example_usage_sensorbridge_sen62.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# (c) Copyright 2025 Sensirion AG, Switzerland
# (c) Copyright 2026 Sensirion AG, Switzerland
#
# THIS FILE IS AUTOMATICALLY GENERATED!
#
# Generator: sensirion-driver-generator 1.3.4
# Generator: sensirion-driver-generator 1.5.3
# Product: sen62
# Model-Version: 1.0.0
# Model-Version: 1.0.1
#

import argparse
Expand Down
6 changes: 3 additions & 3 deletions metadata.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# driver generation metadata
generator_version: 1.3.4
model_version: 1.0.0
generator_version: 1.5.3
model_version: 1.0.1
dg_status: released
is_manually_modified: false
first_generated: '2025-11-03 14:47'
last_generated: '2025-11-03 14:47'
last_generated: '2026-03-26 10:47'
66 changes: 66 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
[build-system]
requires = ["hatchling >= 1.26", "wheel >= 0.45.0"]
build-backend = "hatchling.build"

[project]
name = "sensirion_i2c_sen62"
description = "I2C driver for the Sensirion SEN62 sensor family"

readme = "README.md"
version = "0.1.0"
requires-python = ">=3.8,<4.0"

authors = [
{ name = "Sensirion", email = "info@sensirion.com" },
]

license = "BSD-3-Clause"
license-files = ["LICENSE"]

keywords = [
"Sensirion SEN62",
"I2C",
"SEN62",
]

classifiers = [
"Intended Audience :: Developers",
"Topic :: System :: Hardware :: Hardware Drivers",
"Topic :: Software Development :: Libraries :: Python Modules",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
]

dependencies = [
"sensirion-driver-adapters>=2.3.0,<3.0",
"sensirion-driver-support-types>=1.2.0,<2.0",
"sensirion-i2c-driver>=1.0,<2.0",
"sensirion-shdlc-sensorbridge>=0.1.0,<2.0"
]

[project.optional-dependencies]

docs=[
"jinja2~=3.1.6",
"sphinx-rtd-theme==3.0.2",
"sphinx==8.2.3",
"lazy-object-proxy ~=1.7.1",
"sphinx-autoapi~=3.0.0",
]

test= [
"flake8>=7.1.0",
"mock~=5.2.0",
"pytest>=8.3.5",
"pytest-cov>=5.0.0",
"mypy~=1.13.0",
"setuptools>=73.2.0"
]

[project.urls]
Changelog = "https://github.com/Sensirion/python-i2c-sen62/blob/master/CHANGELOG.md"
Repository = "https://github.com/Sensirion/python-i2c-sen62"
Documentation = "https://sensirion.github.io/python-i2c-sen62"

13 changes: 5 additions & 8 deletions sensirion_i2c_sen62/commands.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# (c) Copyright 2025 Sensirion AG, Switzerland
# (c) Copyright 2026 Sensirion AG, Switzerland
#
# THIS FILE IS AUTOMATICALLY GENERATED!
#
# Generator: sensirion-driver-generator 1.3.4
# Generator: sensirion-driver-generator 1.5.3
# Product: sen62
# Model-Version: 1.0.0
# Model-Version: 1.0.1
#
"""
The transfer classes specify the data that is transferred between host and sensor. The generated transfer classes
Expand All @@ -25,12 +25,9 @@ class DeviceStatus(BitfieldContainer):
reserved2 = BitField(offset=5, width=1)
rht_error = BitField(offset=6, width=1)
gas_error = BitField(offset=7, width=1)
reserved3 = BitField(offset=8, width=1)
reserved4 = BitField(offset=9, width=1)
reserved5 = BitField(offset=10, width=1)
reserved3 = BitField(offset=8, width=3)
pm_error = BitField(offset=11, width=1)
reserved6 = BitField(offset=12, width=1)
reserved7 = BitField(offset=13, width=8)
reserved6 = BitField(offset=12, width=9)
fan_speed_warning = BitField(offset=21, width=1)


Expand Down
6 changes: 3 additions & 3 deletions sensirion_i2c_sen62/device.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# (c) Copyright 2025 Sensirion AG, Switzerland
# (c) Copyright 2026 Sensirion AG, Switzerland
#
# THIS FILE IS AUTOMATICALLY GENERATED!
#
# Generator: sensirion-driver-generator 1.3.4
# Generator: sensirion-driver-generator 1.5.3
# Product: sen62
# Model-Version: 1.0.0
# Model-Version: 1.0.1
#
"""
The class Sen62DeviceBase implements the low level interface of the sensor.
Expand Down
6 changes: 3 additions & 3 deletions sensirion_i2c_sen62/result_types.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# (c) Copyright 2025 Sensirion AG, Switzerland
# (c) Copyright 2026 Sensirion AG, Switzerland
#
# THIS FILE IS AUTOMATICALLY GENERATED!
#
# Generator: sensirion-driver-generator 1.3.4
# Generator: sensirion-driver-generator 1.5.3
# Product: sen62
# Model-Version: 1.0.0
# Model-Version: 1.0.1
#
"""
The signal classes specify transformations of the raw sensor signals into a meaningful units.
Expand Down
4 changes: 3 additions & 1 deletion sensirion_i2c_sen62/version.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import absolute_import, division, print_function
import importlib.metadata as metadata
from typing import Final

version = "0.1.0"
version: Final[str] = metadata.version("sensirion_i2c_sen62")
69 changes: 2 additions & 67 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,70 +1,5 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from setuptools import setup

import os
import re

from setuptools import setup, find_packages

# Python versions this package is compatible with
python_requires = '>=3.6, <4'

# Packages that this package imports. List everything apart from standard lib packages.
install_requires = [
'sensirion-i2c-driver>=1.0.0,<2.0',
'sensirion-driver-adapters>=2.3.0,<3.0',
'sensirion-driver-support-types>=1.2.0,<2.0',
'sensirion-shdlc-sensorbridge>=0.1.0,<0.3.0'
]

# Packages required for tests and docs
extras_require = {
'test': [
'flake8~=3.7.8',
'pytest~=6.2.5',
'pytest-cov~=3.0.0',
]
}

# Read version number from version.py
version_line = open("sensirion_i2c_sen62/version.py", "rt").read()
result = re.search(r"^version = ['\"]([^'\"]*)['\"]", version_line, re.M)
if result:
version_string = result.group(1)
else:
raise RuntimeError("Unable to find version string")

# Use README.rst and CHANGELOG.md as package description
root_path = os.path.dirname(__file__)
long_description = open(os.path.join(root_path, 'README.md')).read()

setup(
name='sensirion_i2c_sen62',
version=version_string,
author='Sensirion',
author_email='info@sensirion.com',
description='I2C driver for the Sensirion SEN62 sensor family',
license='BSD',
keywords="""Sensirion SEN62
I2C
SEN62""",
project_urls={
"Documentation": "https://sensirion.github.io/python-i2c-sen62",
"Repository": "https://github.com/Sensirion/python-i2c-sen62",
"Changelog": "https://github.com/Sensirion/python-i2c-sen62/blob/master/CHANGELOG.md",
},
packages=find_packages(exclude=['tests', 'tests.*']),
long_description=long_description,
long_description_content_type='text/markdown',
python_requires=python_requires,
install_requires=install_requires,
extras_require=extras_require,
classifiers=[
'Intended Audience :: Developers',
'License :: OSI Approved :: BSD License',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.11',
'Topic :: Software Development :: Libraries :: Python Modules'
]
)
setup()
6 changes: 3 additions & 3 deletions tests/test_sen62.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# (c) Copyright 2025 Sensirion AG, Switzerland
# (c) Copyright 2026 Sensirion AG, Switzerland
#
# THIS FILE IS AUTOMATICALLY GENERATED!
#
# Generator: sensirion-driver-generator 1.3.4
# Generator: sensirion-driver-generator 1.5.3
# Product: sen62
# Model-Version: 1.0.0
# Model-Version: 1.0.1
#

import pytest
Expand Down
Loading