lib-shopware6-api-base 3.1.0__tar.gz → 3.1.2__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 (93) hide show
  1. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/CHANGELOG.md +18 -0
  2. lib_shopware6_api_base-3.1.2/Makefile +260 -0
  3. lib_shopware6_api_base-3.1.0/README.md → lib_shopware6_api_base-3.1.2/PKG-INFO +112 -10
  4. lib_shopware6_api_base-3.1.0/PKG-INFO → lib_shopware6_api_base-3.1.2/README.md +59 -63
  5. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/pyproject.toml +34 -26
  6. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/src/lib_shopware6_api_base/__init__conf__.py +1 -1
  7. lib_shopware6_api_base-3.1.0/mk +0 -4
  8. lib_shopware6_api_base-3.1.0/mk.py +0 -21
  9. lib_shopware6_api_base-3.1.0/scripts/__init__.py +0 -9
  10. lib_shopware6_api_base-3.1.0/scripts/__main__.py +0 -8
  11. lib_shopware6_api_base-3.1.0/scripts/_git.py +0 -122
  12. lib_shopware6_api_base-3.1.0/scripts/_metadata.py +0 -630
  13. lib_shopware6_api_base-3.1.0/scripts/_pip.py +0 -112
  14. lib_shopware6_api_base-3.1.0/scripts/_subprocess.py +0 -89
  15. lib_shopware6_api_base-3.1.0/scripts/_test_audit.py +0 -212
  16. lib_shopware6_api_base-3.1.0/scripts/_test_coverage.py +0 -265
  17. lib_shopware6_api_base-3.1.0/scripts/_test_steps.py +0 -387
  18. lib_shopware6_api_base-3.1.0/scripts/_utils.py +0 -83
  19. lib_shopware6_api_base-3.1.0/scripts/build.py +0 -52
  20. lib_shopware6_api_base-3.1.0/scripts/bump.py +0 -33
  21. lib_shopware6_api_base-3.1.0/scripts/bump_major.py +0 -21
  22. lib_shopware6_api_base-3.1.0/scripts/bump_minor.py +0 -21
  23. lib_shopware6_api_base-3.1.0/scripts/bump_patch.py +0 -21
  24. lib_shopware6_api_base-3.1.0/scripts/bump_version.py +0 -124
  25. lib_shopware6_api_base-3.1.0/scripts/clean.py +0 -75
  26. lib_shopware6_api_base-3.1.0/scripts/cli.py +0 -245
  27. lib_shopware6_api_base-3.1.0/scripts/dependencies.py +0 -611
  28. lib_shopware6_api_base-3.1.0/scripts/dev.py +0 -20
  29. lib_shopware6_api_base-3.1.0/scripts/help.py +0 -38
  30. lib_shopware6_api_base-3.1.0/scripts/install.py +0 -20
  31. lib_shopware6_api_base-3.1.0/scripts/menu.py +0 -637
  32. lib_shopware6_api_base-3.1.0/scripts/push.py +0 -351
  33. lib_shopware6_api_base-3.1.0/scripts/refractor.md +0 -114
  34. lib_shopware6_api_base-3.1.0/scripts/refractor.py +0 -1221
  35. lib_shopware6_api_base-3.1.0/scripts/release.py +0 -98
  36. lib_shopware6_api_base-3.1.0/scripts/run_cli.py +0 -71
  37. lib_shopware6_api_base-3.1.0/scripts/target_metadata.py +0 -205
  38. lib_shopware6_api_base-3.1.0/scripts/test.py +0 -455
  39. lib_shopware6_api_base-3.1.0/scripts/toml_config.py +0 -433
  40. lib_shopware6_api_base-3.1.0/scripts/version_current.py +0 -21
  41. lib_shopware6_api_base-3.1.0/tests/local_testscripts/lib_bash_functions.sh +0 -275
  42. lib_shopware6_api_base-3.1.0/tests/local_testscripts/run_clean.sh +0 -10
  43. lib_shopware6_api_base-3.1.0/tests/local_testscripts/run_pytest.sh +0 -35
  44. lib_shopware6_api_base-3.1.0/tests/local_testscripts/run_testloop.sh +0 -61
  45. lib_shopware6_api_base-3.1.0/tests/local_testscripts/run_testloop_pytest_and_mypy_only_no_setup.sh +0 -61
  46. lib_shopware6_api_base-3.1.0/tests/local_testscripts/run_testloop_windows.cmd +0 -33
  47. lib_shopware6_api_base-3.1.0/tests/local_testscripts/shellcheck.sh +0 -49
  48. lib_shopware6_api_base-3.1.0/tests/local_testscripts/testing_tools.py +0 -136
  49. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/.devcontainer/devcontainer.json +0 -0
  50. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/.devcontainer/settings.json +0 -0
  51. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/.github/actions/extract-metadata/action.yml +0 -0
  52. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/.github/dependabot.yml +0 -0
  53. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/.github/workflows/cicd_docker.yml +0 -0
  54. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/.github/workflows/codeql-analysis.yml +0 -0
  55. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/.github/workflows/default_release_public.yml +0 -0
  56. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/.gitignore +0 -0
  57. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/CODE_OF_CONDUCT.md +0 -0
  58. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/CONTRIBUTING.md +0 -0
  59. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/INSTALL.md +0 -0
  60. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/ISSUE_TEMPLATE.md +0 -0
  61. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/LICENSE +0 -0
  62. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/PULL_REQUEST_TEMPLATE.md +0 -0
  63. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/example.env +0 -0
  64. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/notebooks/Quickstart.ipynb +0 -0
  65. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/src/lib_shopware6_api_base/.gitignore +0 -0
  66. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/src/lib_shopware6_api_base/__init__.py +0 -0
  67. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/src/lib_shopware6_api_base/__main__.py +0 -0
  68. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/src/lib_shopware6_api_base/_compat.py +0 -0
  69. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/src/lib_shopware6_api_base/_http_common.py +0 -0
  70. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/src/lib_shopware6_api_base/conf_shopware6_api_base_classes.py +0 -0
  71. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/src/lib_shopware6_api_base/exit_codes.py +0 -0
  72. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/src/lib_shopware6_api_base/lib_shopware6_admin_client.py +0 -0
  73. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/src/lib_shopware6_api_base/lib_shopware6_api_base.py +0 -0
  74. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/src/lib_shopware6_api_base/lib_shopware6_api_base_cli.py +0 -0
  75. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/src/lib_shopware6_api_base/lib_shopware6_api_base_criteria.py +0 -0
  76. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/src/lib_shopware6_api_base/lib_shopware6_api_base_criteria_aggregation.py +0 -0
  77. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/src/lib_shopware6_api_base/lib_shopware6_api_base_criteria_filter.py +0 -0
  78. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/src/lib_shopware6_api_base/lib_shopware6_api_base_criteria_sorting.py +0 -0
  79. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/src/lib_shopware6_api_base/lib_shopware6_api_base_helpers.py +0 -0
  80. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/src/lib_shopware6_api_base/lib_shopware6_storefront_client.py +0 -0
  81. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/src/lib_shopware6_api_base/py.typed +0 -0
  82. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/tests/conf_test_docker.py +0 -0
  83. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/tests/conftest.py +0 -0
  84. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/tests/docker.env +0 -0
  85. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/tests/test_api_base.py +0 -0
  86. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/tests/test_cli.py +0 -0
  87. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/tests/test_conf_classes.py +0 -0
  88. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/tests/test_config.py +0 -0
  89. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/tests/test_criteria.py +0 -0
  90. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/tests/test_criteria_aggregation.py +0 -0
  91. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/tests/test_criteria_filter.py +0 -0
  92. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/tests/test_criteria_sorting.py +0 -0
  93. {lib_shopware6_api_base-3.1.0 → lib_shopware6_api_base-3.1.2}/tests/test_helpers.py +0 -0
@@ -5,6 +5,24 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [3.1.2] - 2026-06-08
9
+
10
+ ### Changed
11
+
12
+ - **Tooling**: project automation converted to the standard BMK `Makefile`; `make test`, `make testintegration`, `make push`, `make release`, and `make bump-*` now run via the `bmk` uv-tool. The vendored `scripts/` package (plus `mk` / `mk.py`) and the dead `tests/local_testscripts/` helpers were removed.
13
+ - **Docs**: README gained a "Development" section documenting how to run the unit suite (`make test`) and the dockware-backed integration suite (`make testintegration`), including prerequisites.
14
+ - Refreshed dependency minimums to current releases (`pydantic`, `pydantic-settings`, `httpx2`, `lib_cli_exit_tools`, and dev/build tooling) via the bmk dependency update.
15
+
16
+ ### Fixed
17
+
18
+ - pip-audit: ignore shared dev-venv audit noise (`aiohttp`, `paramiko`, `pyjwt`) — not dependencies of this project and absent from CI's clean env; present only because sibling editable projects share the local venv.
19
+
20
+ ## [3.1.1] - 2026-06-08
21
+
22
+ ### Fixed
23
+
24
+ - pip-audit: ignore `PYSEC-2026-196` (pip 26.1.1, env-only GHA runner image, fix in pip 26.1.2, awaiting runner bump) — unblocks the scheduled CI vulnerability scan.
25
+
8
26
  ## [3.1.0] - 2026-06-01
9
27
 
10
28
  ### Changed
@@ -0,0 +1,260 @@
1
+ # BMK MAKEFILE 2.9.4
2
+ # do not alter this file - it might be overwritten on new versions of BMK
3
+ # if You want to alter it, remove the first line # BMK MAKEFILE 1.0 - then it is a custom makefile and will not be overwritten
4
+ # bmk Makefile — thin wrapper using `uv tool install` for persistent bmk
5
+ #
6
+ # Usage:
7
+ # make test # run test suite
8
+ # make test --verbose # forward extra flags
9
+ # make bump-patch # bump patch version
10
+ # make push fix login bug # push with commit message
11
+ # make custom deploy # run custom command
12
+ # make custom deploy --dry-run
13
+ #
14
+ # On every invocation, bmk is (re-)installed as a persistent uv tool
15
+ # together with the current project's dependencies (read from ./pyproject.toml).
16
+ # This ensures pyright, pytest, pip-audit etc. can resolve the full
17
+ # dependency tree without PYTHONPATH hacks or a local .venv.
18
+ #
19
+ # Arguments after the target name are forwarded automatically.
20
+ # You can also use ARGS="..." explicitly if preferred.
21
+
22
+ SHELL := /bin/bash
23
+ .DEFAULT_GOAL := help
24
+
25
+ # Use absolute path to the uv tool binary so active virtualenvs cannot shadow it.
26
+ BMK := $(HOME)/.local/bin/bmk
27
+ ARGS ?=
28
+
29
+ # ──────────────────────────────────────────────────────────────
30
+ # Ensure bmk + project deps are installed as a persistent uv tool
31
+ # ──────────────────────────────────────────────────────────────
32
+ # --reinstall re-resolves deps on every call (fast when cached).
33
+ # Fallback handles first-time install where --reinstall would fail.
34
+ .PHONY: _ensure_bmk
35
+ _ensure_bmk:
36
+ @uv tool install --reinstall bmk --with . 2>/dev/null || uv tool install bmk --with .
37
+
38
+ # ──────────────────────────────────────────────────────────────
39
+ # Argument forwarding via MAKECMDGOALS
40
+ # ──────────────────────────────────────────────────────────────
41
+ # Allows natural argument passing: make push fix login bug
42
+ # instead of: make push ARGS="fix login bug"
43
+
44
+ # All targets that accept trailing arguments
45
+ _BMK_TARGETS := test t test-human th testintegration testi ti testintegration-human tih \
46
+ codecov coverage cov \
47
+ build bld clean cln cl run \
48
+ bump-major bump-minor bump-patch bump \
49
+ commit c push psh p release rel r \
50
+ dependencies deps d dependencies-update \
51
+ config config-deploy config-generate-examples \
52
+ send-email send-notification custom \
53
+ info logdemo
54
+
55
+ ifneq (,$(filter $(_BMK_TARGETS),$(firstword $(MAKECMDGOALS))))
56
+ # Capture everything after the first word as extra arguments
57
+ _EXTRA := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))
58
+ # Append to ARGS (so explicit ARGS="..." still works alongside)
59
+ override ARGS += $(_EXTRA)
60
+ endif
61
+
62
+ # ──────────────────────────────────────────────────────────────
63
+ # Test & Quality
64
+ # ──────────────────────────────────────────────────────────────
65
+
66
+ .PHONY: test t
67
+ test: _ensure_bmk ## Run test suite [alias: t]
68
+ $(BMK) test $(ARGS)
69
+ t: _ensure_bmk
70
+ $(BMK) test $(ARGS)
71
+
72
+ .PHONY: test-human th
73
+ test-human: _ensure_bmk ## Run test suite with human-readable output [alias: th]
74
+ $(BMK) test --human $(ARGS)
75
+ th: _ensure_bmk
76
+ $(BMK) test --human $(ARGS)
77
+
78
+ .PHONY: testintegration testi ti
79
+ testintegration: _ensure_bmk ## Run integration tests only [aliases: testi, ti]
80
+ $(BMK) testintegration $(ARGS)
81
+ testi ti: _ensure_bmk
82
+ $(BMK) testintegration $(ARGS)
83
+
84
+ .PHONY: testintegration-human tih
85
+ testintegration-human: _ensure_bmk ## Run integration tests with human-readable output [alias: tih]
86
+ $(BMK) testintegration --human $(ARGS)
87
+ tih: _ensure_bmk
88
+ $(BMK) testintegration --human $(ARGS)
89
+
90
+ .PHONY: codecov coverage cov
91
+ codecov: _ensure_bmk ## Upload coverage report to Codecov [aliases: coverage, cov]
92
+ $(BMK) codecov $(ARGS)
93
+ coverage cov: _ensure_bmk
94
+ $(BMK) codecov $(ARGS)
95
+
96
+ # ──────────────────────────────────────────────────────────────
97
+ # Build & Clean
98
+ # ──────────────────────────────────────────────────────────────
99
+
100
+ .PHONY: build bld
101
+ build: _ensure_bmk ## Build wheel and sdist artifacts [alias: bld]
102
+ $(BMK) build $(ARGS)
103
+ bld: _ensure_bmk
104
+ $(BMK) build $(ARGS)
105
+
106
+ .PHONY: clean cln cl
107
+ clean: _ensure_bmk ## Remove build artifacts and caches [aliases: cln, cl]
108
+ $(BMK) clean $(ARGS)
109
+ cln cl: _ensure_bmk
110
+ $(BMK) clean $(ARGS)
111
+
112
+ # ──────────────────────────────────────────────────────────────
113
+ # Run
114
+ # ──────────────────────────────────────────────────────────────
115
+
116
+ .PHONY: run
117
+ run: _ensure_bmk ## Run the project CLI
118
+ $(BMK) run $(ARGS)
119
+
120
+ # ──────────────────────────────────────────────────────────────
121
+ # Version Bumping
122
+ # ──────────────────────────────────────────────────────────────
123
+
124
+ .PHONY: bump-major
125
+ bump-major: _ensure_bmk ## Bump major version (X+1).0.0
126
+ $(BMK) bump major $(ARGS)
127
+
128
+ .PHONY: bump-minor
129
+ bump-minor: _ensure_bmk ## Bump minor version X.(Y+1).0
130
+ $(BMK) bump minor $(ARGS)
131
+
132
+ .PHONY: bump-patch
133
+ bump-patch: _ensure_bmk ## Bump patch version X.Y.(Z+1)
134
+ $(BMK) bump patch $(ARGS)
135
+
136
+ .PHONY: bump
137
+ bump: bump-patch ## Bump patch version (default for bump)
138
+
139
+ # ──────────────────────────────────────────────────────────────
140
+ # Git Operations
141
+ # ──────────────────────────────────────────────────────────────
142
+
143
+ .PHONY: commit c
144
+ commit: _ensure_bmk ## Create a git commit with timestamped message [alias: c]
145
+ $(BMK) commit $(ARGS)
146
+ c: _ensure_bmk
147
+ $(BMK) commit $(ARGS)
148
+
149
+ .PHONY: push psh p
150
+ push: _ensure_bmk ## Run tests, commit, and push to remote [aliases: psh, p]
151
+ $(BMK) push $(ARGS)
152
+ psh p: _ensure_bmk
153
+ $(BMK) push $(ARGS)
154
+
155
+ .PHONY: release rel r
156
+ release: _ensure_bmk ## Create a versioned release (tag + GitHub release) [aliases: rel, r]
157
+ $(BMK) release $(ARGS)
158
+ rel r: _ensure_bmk
159
+ $(BMK) release $(ARGS)
160
+
161
+ # ──────────────────────────────────────────────────────────────
162
+ # Dependencies
163
+ # ──────────────────────────────────────────────────────────────
164
+
165
+ .PHONY: dependencies deps d
166
+ dependencies: _ensure_bmk ## Check and list project dependencies [aliases: deps, d]
167
+ $(BMK) dependencies $(ARGS)
168
+ deps d: _ensure_bmk
169
+ $(BMK) dependencies $(ARGS)
170
+
171
+ .PHONY: dependencies-update
172
+ dependencies-update: _ensure_bmk ## Update dependencies to latest versions
173
+ $(BMK) dependencies update $(ARGS)
174
+
175
+ # ──────────────────────────────────────────────────────────────
176
+ # Configuration
177
+ # ──────────────────────────────────────────────────────────────
178
+
179
+ .PHONY: config
180
+ config: _ensure_bmk ## Show current merged configuration
181
+ $(BMK) config $(ARGS)
182
+
183
+ .PHONY: config-deploy
184
+ config-deploy: _ensure_bmk ## Deploy configuration to system/user directories
185
+ $(BMK) config-deploy $(ARGS)
186
+
187
+ .PHONY: config-generate-examples
188
+ config-generate-examples: _ensure_bmk ## Generate example configuration files
189
+ $(BMK) config-generate-examples $(ARGS)
190
+
191
+ # ──────────────────────────────────────────────────────────────
192
+ # Email
193
+ # ──────────────────────────────────────────────────────────────
194
+
195
+ .PHONY: send-email
196
+ send-email: _ensure_bmk ## Send an email via configured SMTP
197
+ $(BMK) send-email $(ARGS)
198
+
199
+ .PHONY: send-notification
200
+ send-notification: _ensure_bmk ## Send a plain-text notification email
201
+ $(BMK) send-notification $(ARGS)
202
+
203
+ # ──────────────────────────────────────────────────────────────
204
+ # Custom Commands
205
+ # ──────────────────────────────────────────────────────────────
206
+
207
+ .PHONY: custom
208
+ custom: _ensure_bmk ## Run a custom command (make custom <name> [args...])
209
+ $(BMK) custom $(ARGS)
210
+
211
+ # ──────────────────────────────────────────────────────────────
212
+ # Info & Demos
213
+ # ──────────────────────────────────────────────────────────────
214
+
215
+ .PHONY: info
216
+ info: _ensure_bmk ## Print resolved package metadata
217
+ $(BMK) info $(ARGS)
218
+
219
+ .PHONY: logdemo
220
+ logdemo: _ensure_bmk ## Run logging demonstration
221
+ $(BMK) logdemo $(ARGS)
222
+
223
+ .PHONY: version-current
224
+ version-current: _ensure_bmk ## Print current version
225
+ $(BMK) --version
226
+
227
+ # ──────────────────────────────────────────────────────────────
228
+ # Development
229
+ # ──────────────────────────────────────────────────────────────
230
+
231
+ .PHONY: dev
232
+ dev: ## Install package with dev extras (editable)
233
+ uv pip install -e ".[dev]"
234
+
235
+
236
+ .PHONY: install
237
+ install: ## Editable install (no dev extras)
238
+ uv pip install -e .
239
+
240
+ # ──────────────────────────────────────────────────────────────
241
+ # Help
242
+ # ──────────────────────────────────────────────────────────────
243
+
244
+ .PHONY: help
245
+ help: ## Show this help
246
+ @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | \
247
+ awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-26s\033[0m %s\n", $$1, $$2}' | \
248
+ sort
249
+
250
+ # ──────────────────────────────────────────────────────────────
251
+ # No-op overrides for trailing argument words (MUST be last)
252
+ # ──────────────────────────────────────────────────────────────
253
+ # Placed after all real target definitions so the no-op recipes
254
+ # override them. This prevents "make push codecov fix" from
255
+ # executing the real codecov target — "codecov" is an argument
256
+ # to push, not a separate command.
257
+ ifneq (,$(_EXTRA))
258
+ $(_EXTRA):
259
+ @:
260
+ endif
@@ -1,3 +1,56 @@
1
+ Metadata-Version: 2.4
2
+ Name: lib_shopware6_api_base
3
+ Version: 3.1.2
4
+ Summary: python3 base API client for shopware6
5
+ Project-URL: Homepage, https://github.com/bitranox/lib_shopware6_api_base
6
+ Project-URL: Documentation, https://github.com/bitranox/lib_shopware6_api_base/blob/master/README.md
7
+ Project-URL: Repository, https://github.com/bitranox/lib_shopware6_api_base.git
8
+ Project-URL: Changelog, https://github.com/bitranox/lib_shopware6_api_base/blob/master/CHANGELOG.md
9
+ Author-email: bitranox <bitranox@gmail.com>
10
+ License: MIT
11
+ License-File: LICENSE
12
+ Keywords: api,shopware
13
+ Classifier: Environment :: Console
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3 :: Only
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
22
+ Classifier: Programming Language :: Python :: 3.14
23
+ Classifier: Typing :: Typed
24
+ Requires-Python: >=3.10
25
+ Requires-Dist: httpx2>=2.3.0
26
+ Requires-Dist: lib-cli-exit-tools>=2.3.1
27
+ Requires-Dist: orjson
28
+ Requires-Dist: pydantic-settings>=2.14.1
29
+ Requires-Dist: pydantic>=2.13.4
30
+ Requires-Dist: rich-click
31
+ Provides-Extra: dev
32
+ Requires-Dist: bandit>=1.9.4; extra == 'dev'
33
+ Requires-Dist: build>=1.5.0; extra == 'dev'
34
+ Requires-Dist: codecov-cli>=11.2.8; extra == 'dev'
35
+ Requires-Dist: httpx2>=2.3.0; extra == 'dev'
36
+ Requires-Dist: hypothesis>=6.155.2; extra == 'dev'
37
+ Requires-Dist: import-linter>=2.11; extra == 'dev'
38
+ Requires-Dist: jaraco-context>=6.1.2; extra == 'dev'
39
+ Requires-Dist: pip-audit>=2.10.0; extra == 'dev'
40
+ Requires-Dist: pynacl>=1.6.2; extra == 'dev'
41
+ Requires-Dist: pyright[nodejs]>=1.1.410; extra == 'dev'
42
+ Requires-Dist: pytest-cov>=7.1.0; extra == 'dev'
43
+ Requires-Dist: pytest>=9.0.3; extra == 'dev'
44
+ Requires-Dist: python-multipart>=0.0.32; extra == 'dev'
45
+ Requires-Dist: rtoml>=0.13.0; extra == 'dev'
46
+ Requires-Dist: ruff>=0.15.16; extra == 'dev'
47
+ Requires-Dist: textual>=8.2.7; extra == 'dev'
48
+ Requires-Dist: twine>=6.2.0; extra == 'dev'
49
+ Requires-Dist: urllib3>=2.7.0; extra == 'dev'
50
+ Requires-Dist: virtualenv>=21.4.2; extra == 'dev'
51
+ Requires-Dist: wheel>=0.47.0; extra == 'dev'
52
+ Description-Content-Type: text/markdown
53
+
1
54
  # lib_shopware6_api_base
2
55
 
3
56
  <!-- Badges -->
@@ -58,6 +111,9 @@ This is the base abstraction layer. For higher-level functions, see [lib_shopwar
58
111
  - [Associations](#associations)
59
112
  - [CLI Usage](#cli-usage)
60
113
  - [Installation](#installation)
114
+ - [Development](#development)
115
+ - [Running tests](#running-tests)
116
+ - [Integration tests](#integration-tests)
61
117
  - [Requirements](#requirements)
62
118
  - [Changelog](CHANGELOG.md)
63
119
  - [License](#license)
@@ -102,17 +158,17 @@ SHOPWARE_STORE_API_SW_ACCESS_KEY="SWSCXXXXXXXXXXXXXXXXXX"
102
158
 
103
159
  All environment variables use the `SHOPWARE_` prefix to avoid collision with system variables.
104
160
 
105
- | Variable | Description | Example |
106
- |----------|-------------|---------|
107
- | `SHOPWARE_ADMIN_API_URL` | Admin API endpoint | `https://shop.example.com/api` |
108
- | `SHOPWARE_STOREFRONT_API_URL` | Storefront API endpoint | `https://shop.example.com/store-api` |
109
- | `SHOPWARE_INSECURE_TRANSPORT` | Allow HTTP (dev only) | `0` (production) or `1` (dev) |
110
- | `SHOPWARE_USERNAME` | Admin user email | `admin@example.com` |
111
- | `SHOPWARE_PASSWORD` | Admin user password | `secret` |
161
+ | Variable | Description | Example |
162
+ |----------|---------------------------------------------------------------|---------|
163
+ | `SHOPWARE_ADMIN_API_URL` | Admin API endpoint | `https://shop.example.com/api` |
164
+ | `SHOPWARE_STOREFRONT_API_URL` | Storefront API endpoint | `https://shop.example.com/store-api` |
165
+ | `SHOPWARE_INSECURE_TRANSPORT` | Allow HTTP (dev only) | `0` (production) or `1` (dev) |
166
+ | `SHOPWARE_USERNAME` | Admin user email | `admin@example.com` |
167
+ | `SHOPWARE_PASSWORD` | Admin user password | `secret` |
112
168
  | `SHOPWARE_CLIENT_ID` | Integration Access ID | `SWIA...` |
113
- | `SHOPWARE_CLIENT_SECRET` | Integration Secret | `...` |
114
- | `SHOPWARE_GRANT_TYPE` | Auth method | `USER_CREDENTIALS` or `RESOURCE_OWNER` |
115
- | `SHOPWARE_STORE_API_SW_ACCESS_KEY` | Storefront access key | `SWSC...` |
169
+ | `SHOPWARE_CLIENT_SECRET` | Integration Secret | `...` |
170
+ | `SHOPWARE_GRANT_TYPE` | Auth method | `USER_CREDENTIALS` or `RESOURCE_OWNER` |
171
+ | `SHOPWARE_STORE_API_SW_ACCESS_KEY` | Storefront access key | `SWSC...` |
116
172
 
117
173
  ### Loading Configuration
118
174
 
@@ -434,6 +490,52 @@ pip install lib_shopware6_api_base
434
490
 
435
491
  ---
436
492
 
493
+ ## Development
494
+
495
+ Project automation runs through a `Makefile` that delegates to [`bmk`](https://pypi.org/project/bmk/)
496
+ (installed automatically as a persistent `uv` tool on first use). Run `make help` to list all targets.
497
+
498
+ ### Running tests
499
+
500
+ ```bash
501
+ make test # lint (ruff), type-check (pyright), import-linter,
502
+ # bandit, pip-audit, and the unit test suite with coverage
503
+ make testintegration # integration tests only (see prerequisites below)
504
+ ```
505
+
506
+ `make test` runs the full quality gate but **excludes** the integration tests
507
+ (`pytest -m "not integration"`). `make testintegration` runs **only** the
508
+ integration suite (`pytest -m integration`).
509
+
510
+ ### Integration tests
511
+
512
+ The integration tests exercise the Admin and Storefront clients against a real
513
+ Shopware instance using the [dockware](https://developer.shopware.com/docs/guides/installation/dockware)
514
+ container. The test harness starts and stops the container automatically — no
515
+ manual setup or credentials are required (`tests/docker.env` ships the dockware
516
+ defaults).
517
+
518
+ Prerequisites:
519
+
520
+ - **Docker** installed and running, with a **Linux** container engine
521
+ (`docker info --format '{{.OSType}}'` → `linux`). If Docker is unavailable or
522
+ not Linux, the integration tests are **skipped** (not failed).
523
+ - **Port 80** free — the container is published on `-p 80:80`.
524
+ - First run pulls `dockware/dev:latest` (a few GB), so it takes a while.
525
+
526
+ Tip: for fast repeated runs, start the container once and leave it up — the
527
+ harness reuses a running container (and only tears down one it started itself):
528
+
529
+ ```bash
530
+ docker run -d --rm -p 80:80 --name dockware dockware/dev:latest
531
+ make testintegration # reuses the running container, finishes in seconds
532
+ ```
533
+
534
+ CI runs the unit and integration suites as separate jobs across Linux, macOS,
535
+ and Windows for Python 3.10–3.14.
536
+
537
+ ---
538
+
437
539
  ## Requirements
438
540
 
439
541
  Automatically installed dependencies:
@@ -1,56 +1,3 @@
1
- Metadata-Version: 2.4
2
- Name: lib_shopware6_api_base
3
- Version: 3.1.0
4
- Summary: python3 base API client for shopware6
5
- Project-URL: Homepage, https://github.com/bitranox/lib_shopware6_api_base
6
- Project-URL: Documentation, https://github.com/bitranox/lib_shopware6_api_base/blob/master/README.md
7
- Project-URL: Repository, https://github.com/bitranox/lib_shopware6_api_base.git
8
- Project-URL: Changelog, https://github.com/bitranox/lib_shopware6_api_base/blob/master/CHANGELOG.md
9
- Author-email: bitranox <bitranox@gmail.com>
10
- License: MIT
11
- License-File: LICENSE
12
- Keywords: api,shopware
13
- Classifier: Environment :: Console
14
- Classifier: License :: OSI Approved :: MIT License
15
- Classifier: Operating System :: OS Independent
16
- Classifier: Programming Language :: Python :: 3
17
- Classifier: Programming Language :: Python :: 3 :: Only
18
- Classifier: Programming Language :: Python :: 3.10
19
- Classifier: Programming Language :: Python :: 3.11
20
- Classifier: Programming Language :: Python :: 3.12
21
- Classifier: Programming Language :: Python :: 3.13
22
- Classifier: Programming Language :: Python :: 3.14
23
- Classifier: Typing :: Typed
24
- Requires-Python: >=3.10
25
- Requires-Dist: httpx2>=2.2.0
26
- Requires-Dist: lib-cli-exit-tools>=2.2.4
27
- Requires-Dist: orjson
28
- Requires-Dist: pydantic-settings>=2.12.0
29
- Requires-Dist: pydantic>=2.12.5
30
- Requires-Dist: rich-click
31
- Provides-Extra: dev
32
- Requires-Dist: bandit>=1.9.3; extra == 'dev'
33
- Requires-Dist: build>=1.4.0; extra == 'dev'
34
- Requires-Dist: codecov-cli>=11.2.6; extra == 'dev'
35
- Requires-Dist: httpx2>=2.2.0; extra == 'dev'
36
- Requires-Dist: hypothesis>=6.151.4; extra == 'dev'
37
- Requires-Dist: import-linter>=2.9; extra == 'dev'
38
- Requires-Dist: jaraco-context>=6.1.0; extra == 'dev'
39
- Requires-Dist: pip-audit>=2.10.0; extra == 'dev'
40
- Requires-Dist: pynacl>=1.6.2; extra == 'dev'
41
- Requires-Dist: pyright[nodejs]>=1.1.408; extra == 'dev'
42
- Requires-Dist: pytest-cov>=7.0.0; extra == 'dev'
43
- Requires-Dist: pytest>=9.0.2; extra == 'dev'
44
- Requires-Dist: python-multipart>=0.0.27; extra == 'dev'
45
- Requires-Dist: rtoml>=0.13.0; extra == 'dev'
46
- Requires-Dist: ruff>=0.14.14; extra == 'dev'
47
- Requires-Dist: textual>=7.5.0; extra == 'dev'
48
- Requires-Dist: twine>=6.2.0; extra == 'dev'
49
- Requires-Dist: urllib3>=2.6.3; extra == 'dev'
50
- Requires-Dist: virtualenv>=20.36.1; extra == 'dev'
51
- Requires-Dist: wheel>=0.46.3; extra == 'dev'
52
- Description-Content-Type: text/markdown
53
-
54
1
  # lib_shopware6_api_base
55
2
 
56
3
  <!-- Badges -->
@@ -111,6 +58,9 @@ This is the base abstraction layer. For higher-level functions, see [lib_shopwar
111
58
  - [Associations](#associations)
112
59
  - [CLI Usage](#cli-usage)
113
60
  - [Installation](#installation)
61
+ - [Development](#development)
62
+ - [Running tests](#running-tests)
63
+ - [Integration tests](#integration-tests)
114
64
  - [Requirements](#requirements)
115
65
  - [Changelog](CHANGELOG.md)
116
66
  - [License](#license)
@@ -155,17 +105,17 @@ SHOPWARE_STORE_API_SW_ACCESS_KEY="SWSCXXXXXXXXXXXXXXXXXX"
155
105
 
156
106
  All environment variables use the `SHOPWARE_` prefix to avoid collision with system variables.
157
107
 
158
- | Variable | Description | Example |
159
- |----------|-------------|---------|
160
- | `SHOPWARE_ADMIN_API_URL` | Admin API endpoint | `https://shop.example.com/api` |
161
- | `SHOPWARE_STOREFRONT_API_URL` | Storefront API endpoint | `https://shop.example.com/store-api` |
162
- | `SHOPWARE_INSECURE_TRANSPORT` | Allow HTTP (dev only) | `0` (production) or `1` (dev) |
163
- | `SHOPWARE_USERNAME` | Admin user email | `admin@example.com` |
164
- | `SHOPWARE_PASSWORD` | Admin user password | `secret` |
108
+ | Variable | Description | Example |
109
+ |----------|---------------------------------------------------------------|---------|
110
+ | `SHOPWARE_ADMIN_API_URL` | Admin API endpoint | `https://shop.example.com/api` |
111
+ | `SHOPWARE_STOREFRONT_API_URL` | Storefront API endpoint | `https://shop.example.com/store-api` |
112
+ | `SHOPWARE_INSECURE_TRANSPORT` | Allow HTTP (dev only) | `0` (production) or `1` (dev) |
113
+ | `SHOPWARE_USERNAME` | Admin user email | `admin@example.com` |
114
+ | `SHOPWARE_PASSWORD` | Admin user password | `secret` |
165
115
  | `SHOPWARE_CLIENT_ID` | Integration Access ID | `SWIA...` |
166
- | `SHOPWARE_CLIENT_SECRET` | Integration Secret | `...` |
167
- | `SHOPWARE_GRANT_TYPE` | Auth method | `USER_CREDENTIALS` or `RESOURCE_OWNER` |
168
- | `SHOPWARE_STORE_API_SW_ACCESS_KEY` | Storefront access key | `SWSC...` |
116
+ | `SHOPWARE_CLIENT_SECRET` | Integration Secret | `...` |
117
+ | `SHOPWARE_GRANT_TYPE` | Auth method | `USER_CREDENTIALS` or `RESOURCE_OWNER` |
118
+ | `SHOPWARE_STORE_API_SW_ACCESS_KEY` | Storefront access key | `SWSC...` |
169
119
 
170
120
  ### Loading Configuration
171
121
 
@@ -487,6 +437,52 @@ pip install lib_shopware6_api_base
487
437
 
488
438
  ---
489
439
 
440
+ ## Development
441
+
442
+ Project automation runs through a `Makefile` that delegates to [`bmk`](https://pypi.org/project/bmk/)
443
+ (installed automatically as a persistent `uv` tool on first use). Run `make help` to list all targets.
444
+
445
+ ### Running tests
446
+
447
+ ```bash
448
+ make test # lint (ruff), type-check (pyright), import-linter,
449
+ # bandit, pip-audit, and the unit test suite with coverage
450
+ make testintegration # integration tests only (see prerequisites below)
451
+ ```
452
+
453
+ `make test` runs the full quality gate but **excludes** the integration tests
454
+ (`pytest -m "not integration"`). `make testintegration` runs **only** the
455
+ integration suite (`pytest -m integration`).
456
+
457
+ ### Integration tests
458
+
459
+ The integration tests exercise the Admin and Storefront clients against a real
460
+ Shopware instance using the [dockware](https://developer.shopware.com/docs/guides/installation/dockware)
461
+ container. The test harness starts and stops the container automatically — no
462
+ manual setup or credentials are required (`tests/docker.env` ships the dockware
463
+ defaults).
464
+
465
+ Prerequisites:
466
+
467
+ - **Docker** installed and running, with a **Linux** container engine
468
+ (`docker info --format '{{.OSType}}'` → `linux`). If Docker is unavailable or
469
+ not Linux, the integration tests are **skipped** (not failed).
470
+ - **Port 80** free — the container is published on `-p 80:80`.
471
+ - First run pulls `dockware/dev:latest` (a few GB), so it takes a while.
472
+
473
+ Tip: for fast repeated runs, start the container once and leave it up — the
474
+ harness reuses a running container (and only tears down one it started itself):
475
+
476
+ ```bash
477
+ docker run -d --rm -p 80:80 --name dockware dockware/dev:latest
478
+ make testintegration # reuses the running container, finishes in seconds
479
+ ```
480
+
481
+ CI runs the unit and integration suites as separate jobs across Linux, macOS,
482
+ and Windows for Python 3.10–3.14.
483
+
484
+ ---
485
+
490
486
  ## Requirements
491
487
 
492
488
  Automatically installed dependencies: