pydiagral 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pydiagral-1.0.0/.devcontainer/Dockerfile.dev +30 -0
- pydiagral-1.0.0/.devcontainer/devcontainer.json +48 -0
- pydiagral-1.0.0/.github/FUNDING.yml +1 -0
- pydiagral-1.0.0/.github/dependabot.yml +8 -0
- pydiagral-1.0.0/.github/labels.yml +40 -0
- pydiagral-1.0.0/.github/workflows/docs.yaml +39 -0
- pydiagral-1.0.0/.github/workflows/labeler.yml +21 -0
- pydiagral-1.0.0/.github/workflows/lint.yaml +26 -0
- pydiagral-1.0.0/.github/workflows/lock.yml +21 -0
- pydiagral-1.0.0/.github/workflows/pytest.yaml +50 -0
- pydiagral-1.0.0/.github/workflows/release.yaml +57 -0
- pydiagral-1.0.0/.github/workflows/semantic-prs.yml +20 -0
- pydiagral-1.0.0/.gitignore +165 -0
- pydiagral-1.0.0/.releaserc +27 -0
- pydiagral-1.0.0/.vscode/extensions.json +7 -0
- pydiagral-1.0.0/.vscode/settings.json +7 -0
- pydiagral-1.0.0/CHANGELOG.md +41 -0
- pydiagral-1.0.0/LICENSE +674 -0
- pydiagral-1.0.0/PKG-INFO +828 -0
- pydiagral-1.0.0/README.md +127 -0
- pydiagral-1.0.0/docs/api.md +12 -0
- pydiagral-1.0.0/docs/exceptions.md +18 -0
- pydiagral-1.0.0/docs/how-to-find-diagral-serial.png +0 -0
- pydiagral-1.0.0/docs/index.md +82 -0
- pydiagral-1.0.0/docs/models.md +16 -0
- pydiagral-1.0.0/docs/pydiagral-Logo.png +0 -0
- pydiagral-1.0.0/example_code.py +174 -0
- pydiagral-1.0.0/mkdocs.yml +18 -0
- pydiagral-1.0.0/pyproject.toml +225 -0
- pydiagral-1.0.0/src/pydiagral/__init__.py +28 -0
- pydiagral-1.0.0/src/pydiagral/api.py +1249 -0
- pydiagral-1.0.0/src/pydiagral/constants.py +4 -0
- pydiagral-1.0.0/src/pydiagral/exceptions.py +39 -0
- pydiagral-1.0.0/src/pydiagral/models.py +1498 -0
- pydiagral-1.0.0/src/pydiagral/utils.py +14 -0
- pydiagral-1.0.0/tests/__init__.py +1 -0
- pydiagral-1.0.0/tests/data/configuration_sample.json +354 -0
- pydiagral-1.0.0/tests/data/system_details_sample.json +13 -0
- pydiagral-1.0.0/tests/test_pydiagral_api.py +2268 -0
@@ -0,0 +1,30 @@
|
|
1
|
+
# Use the Python 3.12 base image for development containers
|
2
|
+
ARG VARIANT="3.12"
|
3
|
+
FROM mcr.microsoft.com/devcontainers/python:1-${VARIANT}
|
4
|
+
|
5
|
+
# Configure the shell for RUN commands
|
6
|
+
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
7
|
+
|
8
|
+
# Set the working directory
|
9
|
+
WORKDIR /workspaces
|
10
|
+
|
11
|
+
# Copy files into the container
|
12
|
+
COPY pyproject.toml ./
|
13
|
+
COPY LICENSE ./
|
14
|
+
COPY README.md ./
|
15
|
+
|
16
|
+
# Install pip-tools
|
17
|
+
RUN pip install --upgrade pip && pip install pip-tools
|
18
|
+
|
19
|
+
# Generate requirements.txt from pyproject.toml and install dependencies
|
20
|
+
RUN pip-compile pyproject.toml -o requirements.txt && \
|
21
|
+
pip install -r requirements.txt
|
22
|
+
|
23
|
+
# Install the project in editable mode
|
24
|
+
RUN pip install -e .[dev]
|
25
|
+
|
26
|
+
# Set the default shell to bash instead of sh
|
27
|
+
ENV SHELL /bin/bash
|
28
|
+
|
29
|
+
# Keep the container running
|
30
|
+
CMD ["bash"]
|
@@ -0,0 +1,48 @@
|
|
1
|
+
{
|
2
|
+
"name": "pydiagral Dev",
|
3
|
+
"context": "..",
|
4
|
+
"dockerFile": "./Dockerfile.dev",
|
5
|
+
"features": {
|
6
|
+
"ghcr.io/devcontainers/features/github-cli:1": {}
|
7
|
+
},
|
8
|
+
"postCreateCommand": "pip install -e .",
|
9
|
+
"runArgs": ["-e", "GIT_EDITOR=code --wait"],
|
10
|
+
"customizations": {
|
11
|
+
"vscode": {
|
12
|
+
"extensions": [
|
13
|
+
"charliermarsh.ruff",
|
14
|
+
"ms-python.vscode-pylance",
|
15
|
+
"visualstudioexptteam.vscodeintellicode",
|
16
|
+
"redhat.vscode-yaml",
|
17
|
+
"esbenp.prettier-vscode",
|
18
|
+
"GitHub.vscode-pull-request-github",
|
19
|
+
"GitHub.copilot"
|
20
|
+
],
|
21
|
+
// Please keep this file in sync with settings in .vscode/settings.default.json
|
22
|
+
"settings": {
|
23
|
+
"python.defaultInterpreterPath": "/usr/local/bin/python",
|
24
|
+
"python.pythonPath": "/usr/local/bin/python",
|
25
|
+
"python.terminal.activateEnvInCurrentTerminal": true,
|
26
|
+
"python.testing.pytestArgs": ["--no-cov"],
|
27
|
+
"pylint.importStrategy": "fromEnvironment",
|
28
|
+
"python.linting.enabled": true,
|
29
|
+
"python.linting.ruffEnabled": true,
|
30
|
+
"python.linting.pylintEnabled": false,
|
31
|
+
"python.linting.flake8Enabled": false,
|
32
|
+
"editor.formatOnPaste": false,
|
33
|
+
"editor.formatOnSave": true,
|
34
|
+
"editor.formatOnType": true,
|
35
|
+
"files.trimTrailingWhitespace": true,
|
36
|
+
"terminal.integrated.profiles.linux": {
|
37
|
+
"zsh": {
|
38
|
+
"path": "/usr/bin/zsh"
|
39
|
+
}
|
40
|
+
},
|
41
|
+
"terminal.integrated.defaultProfile.linux": "zsh",
|
42
|
+
"[python]": {
|
43
|
+
"editor.defaultFormatter": "charliermarsh.ruff"
|
44
|
+
}
|
45
|
+
}
|
46
|
+
}
|
47
|
+
}
|
48
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
github: [mguyard]
|
@@ -0,0 +1,40 @@
|
|
1
|
+
---
|
2
|
+
# Conventional Commit related labels (match entries in `semantics-prs.yml`).
|
3
|
+
- name: bug
|
4
|
+
description: Something isn't working
|
5
|
+
color: d73a4a
|
6
|
+
- name: chore
|
7
|
+
description: Chore
|
8
|
+
color: bfdadc
|
9
|
+
- name: ci
|
10
|
+
description: Continuous Integration
|
11
|
+
color: 4a97d6
|
12
|
+
- name: documentation
|
13
|
+
description: Improvements or additions to documentation
|
14
|
+
color: 0075ca
|
15
|
+
- name: feature
|
16
|
+
description: New feature or request
|
17
|
+
color: a2eeef
|
18
|
+
- name: performance
|
19
|
+
description: Performance
|
20
|
+
color: '016175'
|
21
|
+
- name: refactoring
|
22
|
+
description: Refactoring
|
23
|
+
color: ef67c4
|
24
|
+
- name: testing
|
25
|
+
description: Testing
|
26
|
+
color: b1fc6f
|
27
|
+
|
28
|
+
# Other labels
|
29
|
+
- name: breaking
|
30
|
+
description: Breaking Changes
|
31
|
+
color: bfd4f2
|
32
|
+
- name: help wanted
|
33
|
+
description: Extra attention is needed
|
34
|
+
color: 008672
|
35
|
+
- name: question
|
36
|
+
description: Further information is requested
|
37
|
+
color: d876e3
|
38
|
+
- name: waiting
|
39
|
+
description: Waiting for something
|
40
|
+
color: daa036
|
@@ -0,0 +1,39 @@
|
|
1
|
+
name: Generate and Deploy Documentation
|
2
|
+
|
3
|
+
on:
|
4
|
+
release:
|
5
|
+
types: [published]
|
6
|
+
workflow_dispatch:
|
7
|
+
inputs:
|
8
|
+
release:
|
9
|
+
description: 'Release to generate and deploy documentation for'
|
10
|
+
required: true
|
11
|
+
default: 'latest'
|
12
|
+
|
13
|
+
jobs:
|
14
|
+
deploy-docs:
|
15
|
+
runs-on: ubuntu-latest
|
16
|
+
steps:
|
17
|
+
- name: Checkout Code
|
18
|
+
uses: actions/checkout@v4
|
19
|
+
with:
|
20
|
+
ref: ${{ github.event.inputs.release || github.ref }}
|
21
|
+
|
22
|
+
- name: Set up Python
|
23
|
+
uses: actions/setup-python@v4
|
24
|
+
with:
|
25
|
+
python-version: '3.12'
|
26
|
+
|
27
|
+
- name: Install dependencies
|
28
|
+
run: |
|
29
|
+
pip install --upgrade pip
|
30
|
+
pip install mkdocs mkdocstrings[python] mkdocs-material
|
31
|
+
|
32
|
+
- name: Build documentation
|
33
|
+
run: mkdocs build --strict
|
34
|
+
|
35
|
+
- name: Deploy to GitHub Pages
|
36
|
+
uses: peaceiris/actions-gh-pages@v4
|
37
|
+
with:
|
38
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
39
|
+
publish_dir: ./site
|
@@ -0,0 +1,21 @@
|
|
1
|
+
---
|
2
|
+
name: Manage labels
|
3
|
+
|
4
|
+
on:
|
5
|
+
push:
|
6
|
+
branches:
|
7
|
+
- main
|
8
|
+
workflow_dispatch:
|
9
|
+
|
10
|
+
jobs:
|
11
|
+
labeler:
|
12
|
+
name: Labeler
|
13
|
+
runs-on: ubuntu-latest
|
14
|
+
steps:
|
15
|
+
- name: Check out the repository
|
16
|
+
uses: actions/checkout@v4
|
17
|
+
|
18
|
+
- name: Run Labeler
|
19
|
+
uses: crazy-max/ghaction-github-labeler@v5.0.0
|
20
|
+
with:
|
21
|
+
skip-delete: true
|
@@ -0,0 +1,26 @@
|
|
1
|
+
name: Ruff Linter
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ dev ]
|
6
|
+
pull_request:
|
7
|
+
branches: [ main, beta ]
|
8
|
+
workflow_dispatch:
|
9
|
+
inputs:
|
10
|
+
branch:
|
11
|
+
description: 'Branch to run linter on'
|
12
|
+
required: true
|
13
|
+
default: 'dev'
|
14
|
+
|
15
|
+
jobs:
|
16
|
+
ruff:
|
17
|
+
runs-on: ubuntu-latest
|
18
|
+
if: github.event_name != 'workflow_dispatch' || github.event.inputs.branch == 'dev'
|
19
|
+
steps:
|
20
|
+
- uses: actions/checkout@v4
|
21
|
+
with:
|
22
|
+
ref: ${{ github.event.inputs.branch || github.ref }}
|
23
|
+
- uses: chartboost/ruff-action@v1
|
24
|
+
with:
|
25
|
+
args: check --output-format=github --verbose
|
26
|
+
src: "."
|
@@ -0,0 +1,21 @@
|
|
1
|
+
name: Lock
|
2
|
+
|
3
|
+
# yamllint disable-line rule:truthy
|
4
|
+
on:
|
5
|
+
schedule:
|
6
|
+
- cron: '23 13 * * *'
|
7
|
+
workflow_dispatch:
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
lock:
|
11
|
+
if: github.repository_owner == 'mguyard'
|
12
|
+
runs-on: ubuntu-latest
|
13
|
+
steps:
|
14
|
+
- uses: dessant/lock-threads@v5.0.1
|
15
|
+
with:
|
16
|
+
github-token: ${{ github.token }}
|
17
|
+
issue-inactive-days: '30'
|
18
|
+
issue-lock-reason: ''
|
19
|
+
pr-inactive-days: '30'
|
20
|
+
pr-lock-reason: ''
|
21
|
+
log-output: true
|
@@ -0,0 +1,50 @@
|
|
1
|
+
name: PyTest
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ dev ]
|
6
|
+
pull_request:
|
7
|
+
branches: [ main, beta ]
|
8
|
+
workflow_dispatch:
|
9
|
+
inputs:
|
10
|
+
branch:
|
11
|
+
description: 'Branch to run linter on'
|
12
|
+
required: true
|
13
|
+
default: 'dev'
|
14
|
+
|
15
|
+
jobs:
|
16
|
+
pytest:
|
17
|
+
runs-on: ubuntu-latest
|
18
|
+
|
19
|
+
steps:
|
20
|
+
- name: Checkout code
|
21
|
+
uses: actions/checkout@v4
|
22
|
+
|
23
|
+
- name: Set up Python
|
24
|
+
uses: actions/setup-python@v4
|
25
|
+
with:
|
26
|
+
python-version: '3.12' # Replace with the version of Python you are using
|
27
|
+
|
28
|
+
- name: Set the PYPROJECT_VERSION environment variable
|
29
|
+
run: echo "PYPROJECT_VERSION=0.1.0-dev" >> $GITHUB_ENV
|
30
|
+
|
31
|
+
- name: Install dependencies
|
32
|
+
run: |
|
33
|
+
python -m pip install --upgrade pip setuptools wheel hatchling
|
34
|
+
pip install pytest pytest-asyncio pytest-html
|
35
|
+
|
36
|
+
- name: Install pydiagral
|
37
|
+
run: |
|
38
|
+
pip install --upgrade hatchling
|
39
|
+
pip install -e .
|
40
|
+
|
41
|
+
- name: Run tests
|
42
|
+
run: |
|
43
|
+
pytest -v --html=report.html --self-contained-html
|
44
|
+
|
45
|
+
- name: Upload test report
|
46
|
+
if: always()
|
47
|
+
uses: actions/upload-artifact@v4
|
48
|
+
with:
|
49
|
+
name: pytest-report
|
50
|
+
path: report.html
|
@@ -0,0 +1,57 @@
|
|
1
|
+
name: Generate Release and publish to PyPI
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- main
|
7
|
+
- beta
|
8
|
+
workflow_dispatch:
|
9
|
+
|
10
|
+
jobs:
|
11
|
+
release:
|
12
|
+
name: Release
|
13
|
+
runs-on: ubuntu-latest
|
14
|
+
environment:
|
15
|
+
name: Semver
|
16
|
+
steps:
|
17
|
+
- name: Checkout
|
18
|
+
uses: actions/checkout@v4
|
19
|
+
with:
|
20
|
+
fetch-depth: 0
|
21
|
+
|
22
|
+
- name: Set up Python
|
23
|
+
uses: actions/setup-python@v4
|
24
|
+
with:
|
25
|
+
python-version: "3.10"
|
26
|
+
|
27
|
+
- name: Install dependencies
|
28
|
+
run: |
|
29
|
+
python -m pip install --upgrade pip
|
30
|
+
python -m pip install hatchling twine
|
31
|
+
|
32
|
+
- name: Semantic Release
|
33
|
+
id: semantic
|
34
|
+
uses: cycjimmy/semantic-release-action@v4
|
35
|
+
with:
|
36
|
+
branch: ${{ github.ref_name }} # Utiliser la branche actuelle
|
37
|
+
env:
|
38
|
+
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
|
39
|
+
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
|
40
|
+
|
41
|
+
- name: Show version
|
42
|
+
if: steps.semantic.outputs.new_release_published == 'true'
|
43
|
+
run: |
|
44
|
+
echo ${{ steps.semantic.outputs.new_release_version }}
|
45
|
+
echo ${{ steps.semantic.outputs.new_release_major_version }}
|
46
|
+
echo ${{ steps.semantic.outputs.new_release_minor_version }}
|
47
|
+
echo ${{ steps.semantic.outputs.new_release_patch_version }}
|
48
|
+
|
49
|
+
- name: Build package
|
50
|
+
if: steps.semantic.outputs.new_release_published == 'true'
|
51
|
+
run: python -m hatchling build
|
52
|
+
env:
|
53
|
+
PYPROJECT_VERSION: ${{ steps.semantic.outputs.new_release_version }}
|
54
|
+
|
55
|
+
- name: Publish to PyPI
|
56
|
+
if: steps.semantic.outputs.new_release_published == 'true'
|
57
|
+
run: twine upload dist/* -u __token__ -p "${{ secrets.PYPI_TOKEN }}"
|
@@ -0,0 +1,20 @@
|
|
1
|
+
---
|
2
|
+
name: Semantic PR
|
3
|
+
|
4
|
+
on:
|
5
|
+
pull_request_target:
|
6
|
+
types:
|
7
|
+
- opened
|
8
|
+
- edited
|
9
|
+
- synchronize
|
10
|
+
- reopened
|
11
|
+
|
12
|
+
jobs:
|
13
|
+
main:
|
14
|
+
name: Validate PR title
|
15
|
+
runs-on: ubuntu-latest
|
16
|
+
steps:
|
17
|
+
- uses: ytanikin/PRConventionalCommits@1.2.0
|
18
|
+
with:
|
19
|
+
task_types: '["feat","fix","docs","test","ci","refactor","perf","chore"]'
|
20
|
+
custom_labels: '{"feat": "feature", "fix": "bug", "docs": "documentation", "test": "testing", "ci": "ci", "refactor": "refactoring", "perf": "performance", "chore": "chore"}'
|
@@ -0,0 +1,165 @@
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
2
|
+
__pycache__/
|
3
|
+
*.py[cod]
|
4
|
+
*$py.class
|
5
|
+
|
6
|
+
# C extensions
|
7
|
+
*.so
|
8
|
+
|
9
|
+
# Distribution / packaging
|
10
|
+
.Python
|
11
|
+
build/
|
12
|
+
develop-eggs/
|
13
|
+
dist/
|
14
|
+
downloads/
|
15
|
+
eggs/
|
16
|
+
.eggs/
|
17
|
+
lib/
|
18
|
+
lib64/
|
19
|
+
parts/
|
20
|
+
sdist/
|
21
|
+
var/
|
22
|
+
wheels/
|
23
|
+
share/python-wheels/
|
24
|
+
*.egg-info/
|
25
|
+
.installed.cfg
|
26
|
+
*.egg
|
27
|
+
MANIFEST
|
28
|
+
|
29
|
+
# PyInstaller
|
30
|
+
# Usually these files are written by a python script from a template
|
31
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
32
|
+
*.manifest
|
33
|
+
*.spec
|
34
|
+
|
35
|
+
# Installer logs
|
36
|
+
pip-log.txt
|
37
|
+
pip-delete-this-directory.txt
|
38
|
+
|
39
|
+
# Unit test / coverage reports
|
40
|
+
htmlcov/
|
41
|
+
.tox/
|
42
|
+
.nox/
|
43
|
+
.coverage
|
44
|
+
.coverage.*
|
45
|
+
.cache
|
46
|
+
nosetests.xml
|
47
|
+
coverage.xml
|
48
|
+
*.cover
|
49
|
+
*.py,cover
|
50
|
+
.hypothesis/
|
51
|
+
.pytest_cache/
|
52
|
+
cover/
|
53
|
+
|
54
|
+
# Translations
|
55
|
+
*.mo
|
56
|
+
*.pot
|
57
|
+
|
58
|
+
# Django stuff:
|
59
|
+
*.log
|
60
|
+
local_settings.py
|
61
|
+
db.sqlite3
|
62
|
+
db.sqlite3-journal
|
63
|
+
|
64
|
+
# Flask stuff:
|
65
|
+
instance/
|
66
|
+
.webassets-cache
|
67
|
+
|
68
|
+
# Scrapy stuff:
|
69
|
+
.scrapy
|
70
|
+
|
71
|
+
# Sphinx documentation
|
72
|
+
docs/_build/
|
73
|
+
|
74
|
+
# PyBuilder
|
75
|
+
.pybuilder/
|
76
|
+
target/
|
77
|
+
|
78
|
+
# Jupyter Notebook
|
79
|
+
.ipynb_checkpoints
|
80
|
+
|
81
|
+
# IPython
|
82
|
+
profile_default/
|
83
|
+
ipython_config.py
|
84
|
+
|
85
|
+
# pyenv
|
86
|
+
# For a library or package, you might want to ignore these files since the code is
|
87
|
+
# intended to run in multiple environments; otherwise, check them in:
|
88
|
+
# .python-version
|
89
|
+
|
90
|
+
# pipenv
|
91
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
92
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
93
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
94
|
+
# install all needed dependencies.
|
95
|
+
#Pipfile.lock
|
96
|
+
|
97
|
+
# poetry
|
98
|
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
99
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
100
|
+
# commonly ignored for libraries.
|
101
|
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
102
|
+
#poetry.lock
|
103
|
+
|
104
|
+
# pdm
|
105
|
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
106
|
+
#pdm.lock
|
107
|
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
108
|
+
# in version control.
|
109
|
+
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
|
110
|
+
.pdm.toml
|
111
|
+
.pdm-python
|
112
|
+
.pdm-build/
|
113
|
+
|
114
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
115
|
+
__pypackages__/
|
116
|
+
|
117
|
+
# Celery stuff
|
118
|
+
celerybeat-schedule
|
119
|
+
celerybeat.pid
|
120
|
+
|
121
|
+
# SageMath parsed files
|
122
|
+
*.sage.py
|
123
|
+
|
124
|
+
# Environments
|
125
|
+
.env
|
126
|
+
.venv
|
127
|
+
env/
|
128
|
+
venv/
|
129
|
+
ENV/
|
130
|
+
env.bak/
|
131
|
+
venv.bak/
|
132
|
+
|
133
|
+
# Spyder project settings
|
134
|
+
.spyderproject
|
135
|
+
.spyproject
|
136
|
+
|
137
|
+
# Rope project settings
|
138
|
+
.ropeproject
|
139
|
+
|
140
|
+
# mkdocs documentation
|
141
|
+
/site
|
142
|
+
|
143
|
+
# mypy
|
144
|
+
.mypy_cache/
|
145
|
+
.dmypy.json
|
146
|
+
dmypy.json
|
147
|
+
|
148
|
+
# Pyre type checker
|
149
|
+
.pyre/
|
150
|
+
|
151
|
+
# pytype static type analyzer
|
152
|
+
.pytype/
|
153
|
+
|
154
|
+
# Cython debug symbols
|
155
|
+
cython_debug/
|
156
|
+
|
157
|
+
# PyCharm
|
158
|
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
159
|
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
160
|
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
161
|
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
162
|
+
#.idea/
|
163
|
+
|
164
|
+
# Exclusion of env file
|
165
|
+
.env
|
@@ -0,0 +1,27 @@
|
|
1
|
+
{
|
2
|
+
"branches": [
|
3
|
+
"main",
|
4
|
+
{
|
5
|
+
"name": "beta",
|
6
|
+
"prerelease": true
|
7
|
+
}
|
8
|
+
],
|
9
|
+
"plugins": [
|
10
|
+
"@semantic-release/commit-analyzer",
|
11
|
+
"@semantic-release/release-notes-generator",
|
12
|
+
[
|
13
|
+
"@semantic-release/changelog",
|
14
|
+
{
|
15
|
+
"changelogFile": "CHANGELOG.md"
|
16
|
+
}
|
17
|
+
],
|
18
|
+
["@semantic-release/git", {
|
19
|
+
"assets": [
|
20
|
+
"CHANGELOG.md",
|
21
|
+
"pyproject.toml"
|
22
|
+
],
|
23
|
+
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
|
24
|
+
}],
|
25
|
+
"@semantic-release/github"
|
26
|
+
]
|
27
|
+
}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# 1.0.0 (2025-02-22)
|
2
|
+
|
3
|
+
|
4
|
+
### Bug Fixes
|
5
|
+
|
6
|
+
* Add data in debug request log ([8951ce5](https://github.com/mguyard/pydiagral/commit/8951ce5cc4e7c896aa87bf99312253138fa8a247))
|
7
|
+
* Allow detail and user fields in WebHookNotification model to be optional ([0ca68c3](https://github.com/mguyard/pydiagral/commit/0ca68c348a8dcaa58929c987f97ef57b3c8a5efc))
|
8
|
+
* Allow detail and user fields in WebHookNotification model to be optional ([5499bbb](https://github.com/mguyard/pydiagral/commit/5499bbbb341f82b19a1513441b861ea720ad0363))
|
9
|
+
* Bad object name use in test script ([71d740d](https://github.com/mguyard/pydiagral/commit/71d740daa812daf4d704581c0e4a862565b5c441))
|
10
|
+
* Change aiohttp dependancy from static version 3.10.5 to ^3.8.0 ([d509427](https://github.com/mguyard/pydiagral/commit/d50942725f424d361f725999c803470c8a5636e0))
|
11
|
+
* Rename test script to don't block pytest ([ec8323f](https://github.com/mguyard/pydiagral/commit/ec8323fdcd6e06ee6aadf5cd2005e7245aa0d219))
|
12
|
+
* Resolve aiohttp dependancy syntax ([d9fddcf](https://github.com/mguyard/pydiagral/commit/d9fddcf5801d41f54d1f0409ded98ff7e9717f6c))
|
13
|
+
* Resolve issue with Anomalies model and optional fields ([027289a](https://github.com/mguyard/pydiagral/commit/027289a78356ecceb4cf5b8d3121dbcba258b619))
|
14
|
+
* Resolve issue with field name containing underscore but without field alias ([1ee94a5](https://github.com/mguyard/pydiagral/commit/1ee94a5de79efa61de668434de830df5abd7ed2d))
|
15
|
+
* Resolve issue with previous commit where body data was extracted and not passed ([957a49a](https://github.com/mguyard/pydiagral/commit/957a49af6ceff43fbc07662bef2bb6e5da08cb80))
|
16
|
+
* Resolve issue with WebHookNotification dataclass ([b0a4c46](https://github.com/mguyard/pydiagral/commit/b0a4c46fcf817e509879da8046a7f90a1a2d9afb))
|
17
|
+
* Return User in WebHookNotification model ([39fc249](https://github.com/mguyard/pydiagral/commit/39fc2493e4abe3aa2e2c2c94ffc483e197efc12d))
|
18
|
+
* set is_valid_email methode as private with __ ([90795a5](https://github.com/mguyard/pydiagral/commit/90795a5a15c6c110b1eda56309450e2c042e7721))
|
19
|
+
* Update of models to more match models name purposed in Diagral API and ajust test.py script ([798ddd0](https://github.com/mguyard/pydiagral/commit/798ddd039db6909faf354b7fc463446c260d24eb))
|
20
|
+
* Update return types in DiagralAPI::get_devices_info methods for improved data handling ([a48ea90](https://github.com/mguyard/pydiagral/commit/a48ea90f97f3c9ac72c5b0ef736feaa301720e54))
|
21
|
+
* Update WebHookNotification model to require detail and user fields with improved initialization ([b373e3e](https://github.com/mguyard/pydiagral/commit/b373e3e0727334a422c741e64da0947d69c43df5))
|
22
|
+
|
23
|
+
|
24
|
+
### Features
|
25
|
+
|
26
|
+
* Add a class method to create a WebHookNotification instance from a dictionary ([1e17e78](https://github.com/mguyard/pydiagral/commit/1e17e78cbb0275424b4a3c4a1731a23d2b57660a))
|
27
|
+
* Add a data model for the device list and update the method for retrieving device information ([8b4160a](https://github.com/mguyard/pydiagral/commit/8b4160a8d9426ab3ffe79ce44cdecba82ae90e8b))
|
28
|
+
* Add alarm_type to WebHookNotification and implement alarm type determination based on alarm_code ([fc87d91](https://github.com/mguyard/pydiagral/commit/fc87d91f868e10cf8594cc916167b2ba0ae68927))
|
29
|
+
* Add an asynchronous method to retrieve device information from the alarm configuration ([fe1bd8f](https://github.com/mguyard/pydiagral/commit/fe1bd8f46894af25399c27fac07ed6c49c6f644c))
|
30
|
+
* Add an optional device_label field to WebHookNotificationDetail ([c429777](https://github.com/mguyard/pydiagral/commit/c42977737b9ac83d7c17b0a48667c0c2f9f362d5))
|
31
|
+
* Add apikey argument in validate_apikey and delete_apikey function ([3c40eab](https://github.com/mguyard/pydiagral/commit/3c40eabfe6100bea6715a789b4d9bb03500fe962))
|
32
|
+
* Add function to identity webhook type based on alarm_code provided in webhook notification ([088a3c0](https://github.com/mguyard/pydiagral/commit/088a3c03e4aed8f20074ed1b55e1880f9e0ee242))
|
33
|
+
* Add model for Webhook Notification ([ca1fe40](https://github.com/mguyard/pydiagral/commit/ca1fe4079ef3c0c54c0589ced92621fef73fa6cf))
|
34
|
+
* Add WebHookNotificationUser model to represent users triggering webhook notifications and include it in WebHookNotification model ([d13341f](https://github.com/mguyard/pydiagral/commit/d13341f5ee328c6c4c8c56d046182885d1fc256c))
|
35
|
+
* Allow get_configuration function to return results ([f94956a](https://github.com/mguyard/pydiagral/commit/f94956abb4aea8e38aa78451e2d0d6c28c162405))
|
36
|
+
* Implement webhook registration, update, and deletion functionality ([37d2c40](https://github.com/mguyard/pydiagral/commit/37d2c40151bd7dbe3244bd33ae97e88589aad6d0))
|
37
|
+
* Improve test script example with more easy usage ([8636b6f](https://github.com/mguyard/pydiagral/commit/8636b6f0c809af94f9b090e5decdfc46dac05e4c))
|
38
|
+
* Improve test script example with more easy usage ([3199f64](https://github.com/mguyard/pydiagral/commit/3199f64e154f848c745d7e0e6287325b04479355))
|
39
|
+
* Include timezone (utc) in the created_at answer for get_anomalies function + test adaptation ([9005af8](https://github.com/mguyard/pydiagral/commit/9005af8637000f94e3ff3007696b228d855565f0))
|
40
|
+
* Inplementation of new methods ([d8a2c18](https://github.com/mguyard/pydiagral/commit/d8a2c18637803436a12b13fe7ce813217b5c8357))
|
41
|
+
* Update get_anomalies method to return an empty dict if no anomalies are found ([ad2b1da](https://github.com/mguyard/pydiagral/commit/ad2b1daa3b2396866a7f69bfe6aefc0b054dc76d))
|