pywire-auth 0.2.0__tar.gz → 0.3.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.
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/CHANGELOG.md +7 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/PKG-INFO +2 -2
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/pyproject.toml +2 -2
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/src/pywire_auth/__init__.py +1 -0
- pywire_auth-0.3.0/src/pywire_auth/_compat.py +35 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/.gitignore +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/README.md +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/scripts/check +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/scripts/test +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/src/pywire_auth/_protocols.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/src/pywire_auth/actions.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/src/pywire_auth/integration.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/src/pywire_auth/local/__init__.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/src/pywire_auth/local/idp.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/src/pywire_auth/local/routes.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/src/pywire_auth/local/token.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/src/pywire_auth/middleware.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/src/pywire_auth/providers/__init__.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/src/pywire_auth/providers/auth0.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/src/pywire_auth/providers/base.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/src/pywire_auth/providers/facebook.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/src/pywire_auth/providers/generic.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/src/pywire_auth/providers/github.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/src/pywire_auth/providers/google.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/src/pywire_auth/providers/microsoft.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/src/pywire_auth/routes.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/src/pywire_auth/stores/__init__.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/src/pywire_auth/stores/memory.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/src/pywire_auth/stores/sqlalchemy.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/tests/test_actions.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/tests/test_integration.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/tests/test_local_idp.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/tests/test_local_routes.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/tests/test_memory_store.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/tests/test_middleware.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/tests/test_providers.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/tests/test_routes.py +0 -0
- {pywire_auth-0.2.0 → pywire_auth-0.3.0}/tests/test_sqlalchemy_store.py +0 -0
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.3.0](https://github.com/pywire/pywire/compare/pywire-auth-v0.2.0...pywire-auth-v0.3.0) (2026-05-02)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* cross-package version floors with runtime checks ([#181](https://github.com/pywire/pywire/issues/181)) ([9ec02a3](https://github.com/pywire/pywire/commit/9ec02a330d500ceb83a24547e6012acd1d828137))
|
|
9
|
+
|
|
3
10
|
## [0.2.0](https://github.com/pywire/pywire/compare/pywire-auth-v0.1.1...pywire-auth-v0.2.0) (2026-04-21)
|
|
4
11
|
|
|
5
12
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pywire-auth
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: Authentication providers and identity store adapters for PyWire
|
|
5
5
|
Author-email: Reece Holmdahl <reece@pywire.dev>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -8,7 +8,7 @@ Requires-Python: >=3.11
|
|
|
8
8
|
Requires-Dist: argon2-cffi>=23.1
|
|
9
9
|
Requires-Dist: authlib>=1.3
|
|
10
10
|
Requires-Dist: httpx>=0.25
|
|
11
|
-
Requires-Dist: pywire
|
|
11
|
+
Requires-Dist: pywire>=0.13.0
|
|
12
12
|
Requires-Dist: starlette>=0.31
|
|
13
13
|
Provides-Extra: apple
|
|
14
14
|
Provides-Extra: auth0
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "pywire-auth"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.3.0"
|
|
8
8
|
description = "Authentication providers and identity store adapters for PyWire"
|
|
9
9
|
authors = [
|
|
10
10
|
{ name = "Reece Holmdahl", email = "reece@pywire.dev" },
|
|
@@ -12,7 +12,7 @@ authors = [
|
|
|
12
12
|
requires-python = ">=3.11"
|
|
13
13
|
license = "MIT"
|
|
14
14
|
dependencies = [
|
|
15
|
-
"pywire",
|
|
15
|
+
"pywire>=0.13.0",
|
|
16
16
|
"starlette>=0.31",
|
|
17
17
|
"authlib>=1.3",
|
|
18
18
|
"httpx>=0.25",
|
|
@@ -15,6 +15,7 @@ Public API:
|
|
|
15
15
|
:class:`BaseOAuth2Provider`, :class:`BaseOIDCProvider`
|
|
16
16
|
"""
|
|
17
17
|
|
|
18
|
+
from pywire_auth import _compat as _compat # noqa: F401 (runs version floor checks)
|
|
18
19
|
from pywire_auth._protocols import AuthStore, OIDCProvider
|
|
19
20
|
from pywire_auth.actions import AuthActions
|
|
20
21
|
from pywire_auth.integration import connect_auth
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"""Runtime version-floor checks for upstream packages.
|
|
2
|
+
|
|
3
|
+
See packages/pywire/src/pywire/_compat.py for the rationale and
|
|
4
|
+
CLAUDE.md "Version Floors" for the bump protocol.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from importlib.metadata import PackageNotFoundError, version
|
|
8
|
+
|
|
9
|
+
_FLOORS = {
|
|
10
|
+
"pywire": "0.13.0",
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def _parse(v: str) -> tuple[int, ...]:
|
|
15
|
+
out: list[int] = []
|
|
16
|
+
for chunk in v.split("."):
|
|
17
|
+
digits = ""
|
|
18
|
+
for ch in chunk:
|
|
19
|
+
if not ch.isdigit():
|
|
20
|
+
break
|
|
21
|
+
digits += ch
|
|
22
|
+
out.append(int(digits) if digits else 0)
|
|
23
|
+
return tuple(out)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
for _pkg, _min in _FLOORS.items():
|
|
27
|
+
try:
|
|
28
|
+
_installed = version(_pkg)
|
|
29
|
+
except PackageNotFoundError:
|
|
30
|
+
continue
|
|
31
|
+
if _parse(_installed) < _parse(_min):
|
|
32
|
+
raise ImportError(
|
|
33
|
+
f"pywire-auth requires {_pkg}>={_min} but found {_installed}. "
|
|
34
|
+
f"Run: pip install -U '{_pkg}>={_min}'"
|
|
35
|
+
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|