c2cwsgiutils 5.0.2__py3-none-any.whl → 5.0.4__py3-none-any.whl

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.
@@ -1,3 +1,4 @@
1
+ import os
1
2
  import re
2
3
  from typing import Any, Callable, Dict
3
4
 
@@ -22,6 +23,15 @@ class Filter:
22
23
  else:
23
24
  _handle_others(environ)
24
25
 
26
+ if "C2CWSGIUTILS_FORCE_PROTO" in os.environ:
27
+ environ["wsgi.url_scheme"] = os.environ["C2CWSGIUTILS_FORCE_PROTO"]
28
+ if "C2CWSGIUTILS_FORCE_HOST" in os.environ:
29
+ environ["HTTP_HOST"] = os.environ["C2CWSGIUTILS_FORCE_HOST"]
30
+ if "C2CWSGIUTILS_FORCE_SERVER_NAME" in os.environ:
31
+ environ["SERVER_NAME"] = os.environ["C2CWSGIUTILS_FORCE_SERVER_NAME"]
32
+ if "C2CWSGIUTILS_FORCE_REMOTE_ADDR" in os.environ:
33
+ environ["REMOTE_ADDR"] = os.environ["C2CWSGIUTILS_FORCE_REMOTE_ADDR"]
34
+
25
35
  return self._application(environ, start_response)
26
36
 
27
37
 
@@ -76,7 +76,7 @@ class SQLAlchemyHandler(logging.Handler):
76
76
  try:
77
77
  self.session.bulk_save_objects(logs)
78
78
  self.session.commit()
79
- except (SQLAlchemyError):
79
+ except SQLAlchemyError:
80
80
  try:
81
81
  self.create_db()
82
82
  self.session.rollback()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: c2cwsgiutils
3
- Version: 5.0.2
3
+ Version: 5.0.4
4
4
  Summary: Common utilities for Camptocamp WSGI applications
5
5
  Home-page: https://github.com/camptocamp/c2cwsgiutils
6
6
  Author: Camptocamp
@@ -744,3 +744,10 @@ To make a release:
744
744
  - Tag the GIT commit.
745
745
  - Add the new branch name in the `.github/workflows/rebuild.yaml` and
746
746
  `.github/workflows/audit.yaml` files.
747
+
748
+ ## Pserve
749
+
750
+ Pserve will not set the headers in the environment then if you are behind a reverse proxy, you will have
751
+ wrong values in client information, you can force them by using the environment variables:
752
+ `C2CWSGIUTILS_FORCE_PROTO`, `C2CWSGIUTILS_FORCE_HOST` `C2CWSGIUTILS_FORCE_SERVER_NAME` and
753
+ `C2CWSGIUTILS_FORCE_REMOTE_ADDR`.
@@ -1,6 +1,6 @@
1
1
  c2cwsgiutils/__init__.py,sha256=GAp4F7ZzG07CJKSO64i0JUlCMQklx2OGRZgDbU4rFiY,803
2
2
  c2cwsgiutils/auth.py,sha256=KG-J0usHVpVw0Tz7LUOdhsF2gjMF-6S_w5Fmvg1rDro,6487
3
- c2cwsgiutils/client_info.py,sha256=k1jTv3_NVLeMgJURjcgUbH4tmHPjW39UuOWXPJF7DN8,3050
3
+ c2cwsgiutils/client_info.py,sha256=YFteIwNamIc3LIsaYv2C1MZRS6crJYoId5TgxYNvDSw,3601
4
4
  c2cwsgiutils/config_utils.py,sha256=aN_New-YukyZ08--z2CsjTSS6YfDsI5pc_ciNewjxS0,1496
5
5
  c2cwsgiutils/coverage_setup.py,sha256=jg_SAgEZnOqbZvbenyES6ReO3bRS8YyNM3qUzjpch6I,839
6
6
  c2cwsgiutils/db.py,sha256=q8kAxzA36cR1W-QtPcXagWSwDbCoDJhoQ12QckpdQQ8,15325
@@ -52,17 +52,17 @@ c2cwsgiutils/sql_profiler/_impl.py,sha256=ohH42gQ1VBeUj4ggff6vT3JwQohrDvSvqQLGCR
52
52
  c2cwsgiutils/sqlalchemylogger/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
53
  c2cwsgiutils/sqlalchemylogger/_filters.py,sha256=OJQ9_WA-fd9fMZ7TUNFzHHTPI6msw2NVBl5RoeYFnGw,752
54
54
  c2cwsgiutils/sqlalchemylogger/_models.py,sha256=aHzaVA05kPNa2B_s5kLtEMCTLmr9TgH3Gv2PzVYGhxo,1422
55
- c2cwsgiutils/sqlalchemylogger/handlers.py,sha256=96b3Li6pRuNsajwZ1ezGQdf327WoUlA1OA6-zFHpIJM,4688
55
+ c2cwsgiutils/sqlalchemylogger/handlers.py,sha256=UQ-vfUzMlzvtFoKxVWCkm1wdI_PcYqktGKksSpiXe2E,4686
56
56
  c2cwsgiutils/stats_pyramid/__init__.py,sha256=Vxncq4iRCIlrPjiugQVARqg3VjAMK5H3iMXpWO3NISo,971
57
57
  c2cwsgiutils/stats_pyramid/_db_spy.py,sha256=qTQ7xkvE6TN6mcOUhcPpOQBJla-yNY08lV05OZdjGkA,2841
58
58
  c2cwsgiutils/stats_pyramid/_pyramid_spy.py,sha256=tDm3Y-kRVp1Y_jEaz1bFlWHCeXkHMAogOKE6qN-rO08,2886
59
59
  c2cwsgiutils/stats_pyramid/_views.py,sha256=c3PfyrXzG6I184-bWUrHpR1bt3xyIMgs5mfcZ6NjEwU,527
60
- c2cwsgiutils-5.0.2.data/scripts/c2cwsgiutils-run,sha256=q738ALYHJIJq9wOhvIbZruZDegQcClfYm9GEq4y4qYU,579
60
+ c2cwsgiutils-5.0.4.data/scripts/c2cwsgiutils-run,sha256=q738ALYHJIJq9wOhvIbZruZDegQcClfYm9GEq4y4qYU,579
61
61
  tests/acceptance/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
62
  tests/acceptance/test_utils.py,sha256=_4GDX0Lx5bAUJq5WRm0aj-nTllIXDcmo3bqRrbAgs20,380
63
- c2cwsgiutils-5.0.2.dist-info/LICENSE.txt,sha256=PQNFSY2-jzHIwQ_UxvzxLVY5yLryW_lVLHVgUCvtKos,1668
64
- c2cwsgiutils-5.0.2.dist-info/METADATA,sha256=Z7DUMpbQXK3fqk0yIK3phCzAZvglYRF1RRAKVpiGc7g,31575
65
- c2cwsgiutils-5.0.2.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
66
- c2cwsgiutils-5.0.2.dist-info/entry_points.txt,sha256=Be1vjq5sdITjO6XLdVDIwxii-UoYZcVlQoJ2la0yntk,1138
67
- c2cwsgiutils-5.0.2.dist-info/top_level.txt,sha256=U2UMa3vcTM_6GxZe2f8KeOi-8gIcUruUnmhVSZZ27BI,19
68
- c2cwsgiutils-5.0.2.dist-info/RECORD,,
63
+ c2cwsgiutils-5.0.4.dist-info/LICENSE.txt,sha256=PQNFSY2-jzHIwQ_UxvzxLVY5yLryW_lVLHVgUCvtKos,1668
64
+ c2cwsgiutils-5.0.4.dist-info/METADATA,sha256=jCbLiI1Mmm9_JFWZwxmYhqlyR6kuOh1nC-kv1KTBBE0,31908
65
+ c2cwsgiutils-5.0.4.dist-info/WHEEL,sha256=a7TGlA-5DaHMRrarXjVbQagU3Man_dCnGIWMJr5kRWo,91
66
+ c2cwsgiutils-5.0.4.dist-info/entry_points.txt,sha256=Be1vjq5sdITjO6XLdVDIwxii-UoYZcVlQoJ2la0yntk,1138
67
+ c2cwsgiutils-5.0.4.dist-info/top_level.txt,sha256=U2UMa3vcTM_6GxZe2f8KeOi-8gIcUruUnmhVSZZ27BI,19
68
+ c2cwsgiutils-5.0.4.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.40.0)
2
+ Generator: setuptools (75.4.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5