pydiagral 1.0.0__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- 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))
|