weclapp-client 0.1.0a1__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.
Files changed (41) hide show
  1. weclapp_client-0.1.0a1/.github/dependabot.yml +18 -0
  2. weclapp_client-0.1.0a1/.github/workflows/codeql-analysis.yml +70 -0
  3. weclapp_client-0.1.0a1/.github/workflows/coverage.yml +23 -0
  4. weclapp_client-0.1.0a1/.github/workflows/dependabot_automerge.yml +18 -0
  5. weclapp_client-0.1.0a1/.github/workflows/dev_test.yml +23 -0
  6. weclapp_client-0.1.0a1/.github/workflows/formatting.yml +30 -0
  7. weclapp_client-0.1.0a1/.github/workflows/no_byte_order_mark.yml +15 -0
  8. weclapp_client-0.1.0a1/.github/workflows/packaging_test.yml +21 -0
  9. weclapp_client-0.1.0a1/.github/workflows/python-publish.yml +56 -0
  10. weclapp_client-0.1.0a1/.github/workflows/pythonlint.yml +38 -0
  11. weclapp_client-0.1.0a1/.github/workflows/unittests.yml +23 -0
  12. weclapp_client-0.1.0a1/.gitignore +138 -0
  13. weclapp_client-0.1.0a1/.pre-commit-config.yaml +15 -0
  14. weclapp_client-0.1.0a1/PKG-INFO +217 -0
  15. weclapp_client-0.1.0a1/README.md +192 -0
  16. weclapp_client-0.1.0a1/docs/integrationstests.md +94 -0
  17. weclapp_client-0.1.0a1/docs/umsetzungsplan.md +616 -0
  18. weclapp_client-0.1.0a1/docs/weclapp_api_analyse.md +280 -0
  19. weclapp_client-0.1.0a1/domain-specific-terms.txt +2 -0
  20. weclapp_client-0.1.0a1/pyproject.toml +100 -0
  21. weclapp_client-0.1.0a1/src/weclapp_client/__init__.py +49 -0
  22. weclapp_client-0.1.0a1/src/weclapp_client/_converters.py +70 -0
  23. weclapp_client-0.1.0a1/src/weclapp_client/_http.py +258 -0
  24. weclapp_client-0.1.0a1/src/weclapp_client/_version.py +10 -0
  25. weclapp_client-0.1.0a1/src/weclapp_client/client.py +52 -0
  26. weclapp_client-0.1.0a1/src/weclapp_client/config.py +97 -0
  27. weclapp_client-0.1.0a1/src/weclapp_client/exceptions.py +111 -0
  28. weclapp_client-0.1.0a1/src/weclapp_client/models/__init__.py +26 -0
  29. weclapp_client-0.1.0a1/src/weclapp_client/models/base.py +61 -0
  30. weclapp_client-0.1.0a1/src/weclapp_client/models/custom_attribute.py +55 -0
  31. weclapp_client-0.1.0a1/src/weclapp_client/models/employee.py +44 -0
  32. weclapp_client-0.1.0a1/src/weclapp_client/models/user.py +64 -0
  33. weclapp_client-0.1.0a1/src/weclapp_client/py.typed +2 -0
  34. weclapp_client-0.1.0a1/src/weclapp_client/query.py +140 -0
  35. weclapp_client-0.1.0a1/src/weclapp_client/resources/__init__.py +3 -0
  36. weclapp_client-0.1.0a1/src/weclapp_client/resources/base.py +202 -0
  37. weclapp_client-0.1.0a1/src/weclapp_client/resources/custom_attribute_definitions.py +98 -0
  38. weclapp_client-0.1.0a1/src/weclapp_client/resources/employees.py +73 -0
  39. weclapp_client-0.1.0a1/src/weclapp_client/resources/users.py +56 -0
  40. weclapp_client-0.1.0a1/src/weclapp_client/testing.py +692 -0
  41. weclapp_client-0.1.0a1/uv.lock +1406 -0
@@ -0,0 +1,18 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5
+
6
+ version: 2
7
+ updates:
8
+ - package-ecosystem: "pip" # See documentation for possible values
9
+ directory: "/" # Location of package manifests
10
+ schedule:
11
+ interval: "weekly"
12
+ reviewers:
13
+ - "@Hochfrequenz/python-developers-review-team"
14
+ # Maintain dependencies for GitHub Actions
15
+ - package-ecosystem: "github-actions"
16
+ directory: "/"
17
+ schedule:
18
+ interval: "weekly"
@@ -0,0 +1,70 @@
1
+ # For most projects, this workflow file will not need changing; you simply need
2
+ # to commit it to your repository.
3
+ #
4
+ # You may wish to alter this file to override the set of languages analyzed,
5
+ # or to provide custom queries or build logic.
6
+ #
7
+ # ******** NOTE ********
8
+ # We have attempted to detect the languages in your repository. Please check
9
+ # the `language` matrix defined below to confirm you have the correct set of
10
+ # supported CodeQL languages.
11
+ #
12
+ name: "CodeQL"
13
+
14
+ on:
15
+ push:
16
+ branches: [main]
17
+ pull_request:
18
+ # The branches below must be a subset of the branches above
19
+ branches: [main]
20
+ schedule:
21
+ - cron: "29 14 * * 6"
22
+
23
+ jobs:
24
+ analyze:
25
+ name: Analyze
26
+ runs-on: ubuntu-latest
27
+ permissions:
28
+ actions: read
29
+ contents: read
30
+ security-events: write
31
+
32
+ strategy:
33
+ fail-fast: false
34
+ matrix:
35
+ language: ["python"]
36
+ # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
37
+ # Learn more about CodeQL language support at https://git.io/codeql-language-support
38
+
39
+ steps:
40
+ - name: Checkout repository
41
+ uses: actions/checkout@v7
42
+
43
+ # Initializes the CodeQL tools for scanning.
44
+ - name: Initialize CodeQL
45
+ uses: github/codeql-action/init@v4.38.2
46
+ with:
47
+ languages: ${{ matrix.language }}
48
+ # If you wish to specify custom queries, you can do so here or in a config file.
49
+ # By default, queries listed here will override any specified in a config file.
50
+ # Prefix the list here with "+" to use these queries and those in the config file.
51
+ # queries: ./path/to/local/query, your-org/your-repo/queries@main
52
+
53
+ # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
54
+ # If this step fails, then you should remove it and run the build manually (see below)
55
+ - name: Autobuild
56
+ uses: github/codeql-action/autobuild@v4.38.2
57
+
58
+ # ℹ️ Command-line programs to run using the OS shell.
59
+ # 📚 https://git.io/JvXDl
60
+
61
+ # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
62
+ # and modify them (or add more) to build your code if your project
63
+ # uses a compiled language
64
+
65
+ #- run: |
66
+ # make bootstrap
67
+ # make release
68
+
69
+ - name: Perform CodeQL Analysis
70
+ uses: github/codeql-action/analyze@v4.38.2
@@ -0,0 +1,23 @@
1
+ name: "Coverage"
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request: {}
7
+ jobs:
8
+ coverage:
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - uses: actions/checkout@v7
12
+ - name: Install uv
13
+ uses: astral-sh/setup-uv@v10.2.0
14
+ with:
15
+ python-version: "3.14"
16
+ - name: Install Dependencies
17
+ run: uv sync --group coverage
18
+ - name: Run Tests and Record Coverage
19
+ working-directory: unittests
20
+ run: |
21
+ uv run coverage run -m pytest --basetemp=.tmp
22
+ uv run coverage html --omit .venv/*,unittests/*
23
+ uv run coverage report --fail-under 80 --omit .venv/*,unittests/*
@@ -0,0 +1,18 @@
1
+ name: Dependabot auto-approve / -merge
2
+ on: pull_request
3
+
4
+ jobs:
5
+ dependabot:
6
+ permissions:
7
+ contents: write
8
+ pull-requests: write
9
+ runs-on: ubuntu-latest
10
+ env:
11
+ PR_URL: ${{github.event.pull_request.html_url}}
12
+ GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
13
+ if: ${{ github.actor == 'dependabot[bot]' }}
14
+ steps:
15
+ - name: Approve a PR
16
+ run: gh pr review --approve "$PR_URL"
17
+ - name: Enable auto-merge for Dependabot PRs
18
+ run: gh pr merge --auto --squash "$PR_URL"
@@ -0,0 +1,23 @@
1
+ name: "Test Dev Environment"
2
+ # Checks that the dev environment (uv sync --group dev) can be set up.
3
+ # This might not work, if different linting/testing groups refer to different versions of the same lib (e.g. typing-extensions).
4
+ # Different versions of the same package might work for isolated specific groups (only linting, only testing...) but the dev group inherits from all of them.
5
+ on:
6
+ push:
7
+ branches: [main]
8
+ pull_request: {}
9
+ jobs:
10
+ check:
11
+ runs-on: ${{ matrix.os }}
12
+ strategy:
13
+ matrix:
14
+ python-version: ["3.11", "3.12", "3.13", "3.14"]
15
+ os: [ubuntu-latest]
16
+ steps:
17
+ - uses: actions/checkout@v7
18
+ - name: Install uv
19
+ uses: astral-sh/setup-uv@v10.2.0
20
+ with:
21
+ python-version: ${{ matrix.python-version }}
22
+ - name: Create a Dev Environment
23
+ run: uv sync --group dev
@@ -0,0 +1,30 @@
1
+ name: "Formatting"
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request: {}
7
+ jobs:
8
+ format:
9
+ # the "black"/"isort" matrix values are kept only so the required status check names
10
+ # ("format (black)", "format (isort)") stay stable; both now run ruff under the hood.
11
+ # Renaming them would require updating the branch protection required-checks list too.
12
+ name: "format (${{ matrix.tool }})"
13
+ runs-on: ubuntu-latest
14
+ strategy:
15
+ matrix:
16
+ include:
17
+ - tool: code
18
+ command: ruff format --check .
19
+ - tool: imports
20
+ command: ruff check --select I .
21
+ steps:
22
+ - uses: actions/checkout@v7
23
+ - name: Install uv
24
+ uses: astral-sh/setup-uv@v10.2.0
25
+ with:
26
+ python-version: "3.14"
27
+ - name: Install dependencies
28
+ run: uv sync --group linting
29
+ - name: ${{ matrix.tool }} Code Formatter
30
+ run: uv run ${{ matrix.command }}
@@ -0,0 +1,15 @@
1
+ name: Prevent ByteOrderMarks
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request: {}
8
+
9
+ jobs:
10
+ bom-check:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v7
14
+ - uses: arma-actions/bom-check@v1
15
+ name: Check for BOM
@@ -0,0 +1,21 @@
1
+ name: "Packaging Test"
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request: {}
7
+ jobs:
8
+ check_packaging:
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - uses: actions/checkout@v7
12
+ - name: Install uv
13
+ uses: astral-sh/setup-uv@v10.2.0
14
+ with:
15
+ python-version: "3.14"
16
+ - name: Install dependencies
17
+ run: uv sync --group packaging
18
+ - name: Run Packaging Test
19
+ run: |
20
+ uv run python -m build
21
+ uv run twine check dist/*
@@ -0,0 +1,56 @@
1
+ # Publishes the package to PyPI via trusted publishing when a GitHub release with a tag "v*" is published.
2
+ #
3
+ # One-time setup (see README, section "Releasing"):
4
+ # - GitHub environment "release" in the repository settings. If its deployment branches are restricted, add a rule of
5
+ # type *Tag* matching "v*": a release deploys from the tag, not from a branch.
6
+ # - Trusted publisher on PyPI: project "weclapp-client", owner "Hochfrequenz", repository "weclapp_client.py",
7
+ # workflow "python-publish.yml", environment "release".
8
+
9
+ name: Upload Python Package
10
+
11
+ on:
12
+ release:
13
+ types: [published]
14
+
15
+ jobs:
16
+ tests:
17
+ if: startsWith(github.ref, 'refs/tags/v')
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - uses: actions/checkout@v7
21
+ - name: Install uv
22
+ uses: astral-sh/setup-uv@v10.2.0
23
+ with:
24
+ python-version: "3.14"
25
+ - name: Install dependencies
26
+ run: uv sync --group tests
27
+ - name: Run tests
28
+ run: uv run pytest
29
+
30
+ build-n-publish:
31
+ name: Build and publish Python distributions to PyPI
32
+ runs-on: ubuntu-latest
33
+ needs: tests
34
+ # strongly recommended by PyPI for trusted publishing: https://docs.pypi.org/trusted-publishers/adding-a-publisher/
35
+ environment: release
36
+ permissions:
37
+ # mandatory for trusted publishing
38
+ id-token: write
39
+ steps:
40
+ - uses: actions/checkout@v7
41
+ with:
42
+ # hatch-vcs derives the version from the git tag
43
+ fetch-depth: 0
44
+ - name: Install uv
45
+ uses: astral-sh/setup-uv@v10.2.0
46
+ with:
47
+ python-version: "3.14"
48
+ - name: Install dependencies
49
+ run: uv sync --group packaging
50
+ - name: Build wheel and source distributions
51
+ run: uv run python -m build
52
+ - name: Check distributions
53
+ run: uv run twine check dist/*
54
+ - name: Publish distributions to PyPI
55
+ if: startsWith(github.ref, 'refs/tags/v')
56
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,38 @@
1
+ name: "Linting"
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request: {}
7
+ jobs:
8
+ lint:
9
+ # the name must not depend on the commands below: repositories built from this template use it as a
10
+ # required status check in their branch ruleset, and GitHub would otherwise append the whole command
11
+ # string - so renaming the package, or any edit to a lint invocation, silently makes the required
12
+ # check unreportable and blocks every pull request
13
+ name: "Python Code Quality and Lint (${{ matrix.linter-env }})"
14
+ runs-on: ubuntu-latest
15
+ strategy:
16
+ matrix:
17
+ include:
18
+ - linter-env: linting
19
+ commands: |
20
+ uv run ruff check src/weclapp_client unittests
21
+ - linter-env: type_check
22
+ commands: |
23
+ uv run mypy --show-error-codes src/weclapp_client --strict
24
+ uv run mypy --show-error-codes unittests --strict
25
+ - linter-env: spell_check
26
+ commands: |
27
+ uv run codespell --ignore-words=domain-specific-terms.txt src
28
+ uv run codespell --ignore-words=domain-specific-terms.txt README.md
29
+ steps:
30
+ - uses: actions/checkout@v7
31
+ - name: Install uv
32
+ uses: astral-sh/setup-uv@v10.2.0
33
+ with:
34
+ python-version: "3.14"
35
+ - name: Install Dependencies
36
+ run: uv sync --group ${{ matrix.linter-env }}
37
+ - name: Run ${{ matrix.linter-env }}
38
+ run: ${{ matrix.commands }}
@@ -0,0 +1,23 @@
1
+ name: "Unittests"
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request: {}
7
+ jobs:
8
+ pytest:
9
+ runs-on: ${{ matrix.os }}
10
+ strategy:
11
+ matrix:
12
+ python-version: ["3.11", "3.12", "3.13", "3.14"]
13
+ os: [ubuntu-latest]
14
+ steps:
15
+ - uses: actions/checkout@v7
16
+ - name: Install uv
17
+ uses: astral-sh/setup-uv@v10.2.0
18
+ with:
19
+ python-version: ${{ matrix.python-version }}
20
+ - name: Install Dependencies
21
+ run: uv sync --group tests
22
+ - name: Run the Unit Tests
23
+ run: uv run pytest
@@ -0,0 +1,138 @@
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
+ pip-wheel-metadata/
24
+ share/python-wheels/
25
+ *.egg-info/
26
+ .installed.cfg
27
+ *.egg
28
+ MANIFEST
29
+
30
+ # PyInstaller
31
+ # Usually these files are written by a python script from a template
32
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
33
+ *.manifest
34
+ *.spec
35
+
36
+ # Installer logs
37
+ pip-log.txt
38
+ pip-delete-this-directory.txt
39
+
40
+ # Unit test / coverage reports
41
+ htmlcov/
42
+ .tox/
43
+ .nox/
44
+ .coverage
45
+ .coverage.*
46
+ .cache
47
+ nosetests.xml
48
+ coverage.xml
49
+ *.cover
50
+ *.py,cover
51
+ .hypothesis/
52
+ .pytest_cache/
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
+ target/
76
+
77
+ # Jupyter Notebook
78
+ .ipynb_checkpoints
79
+
80
+ # IPython
81
+ profile_default/
82
+ ipython_config.py
83
+
84
+ # pyenv
85
+ .python-version
86
+
87
+ # pipenv
88
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
89
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
90
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
91
+ # install all needed dependencies.
92
+ #Pipfile.lock
93
+
94
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
95
+ __pypackages__/
96
+
97
+ # Celery stuff
98
+ celerybeat-schedule
99
+ celerybeat.pid
100
+
101
+ # SageMath parsed files
102
+ *.sage.py
103
+
104
+ # Environments
105
+ .env
106
+ .venv
107
+ env/
108
+ venv/
109
+ ENV/
110
+ env.bak/
111
+ venv.bak/
112
+
113
+ # Spyder project settings
114
+ .spyderproject
115
+ .spyproject
116
+
117
+ # Rope project settings
118
+ .ropeproject
119
+
120
+ # mkdocs documentation
121
+ /site
122
+
123
+ # mypy
124
+ .mypy_cache/
125
+ .dmypy.json
126
+ dmypy.json
127
+
128
+ # Pyre type checker
129
+ .pyre/
130
+
131
+ .idea/
132
+
133
+ # vscode settings
134
+ .vscode/
135
+
136
+
137
+ # pytest basetemp used by the coverage workflow
138
+ .tmp/
@@ -0,0 +1,15 @@
1
+ # to update all repo revisions just run: pre-commit autoupdate
2
+ repos:
3
+ - repo: https://github.com/pre-commit/pre-commit-hooks
4
+ rev: v4.4.0
5
+ hooks:
6
+ - id: check-yaml
7
+ - id: end-of-file-fixer
8
+ - id: trailing-whitespace
9
+ - repo: https://github.com/astral-sh/ruff-pre-commit
10
+ rev: v0.16.0
11
+ hooks:
12
+ - id: ruff-check
13
+ args: [--fix]
14
+ files: ^(src/weclapp_client|unittests)/
15
+ - id: ruff-format