c2cwsgiutils 6.2.0.dev400__tar.gz → 6.2.0.dev404__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 (67) hide show
  1. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/PKG-INFO +5 -2
  2. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/debug/_views.py +4 -4
  3. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/pyproject.toml +13 -13
  4. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/LICENSE +0 -0
  5. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/README.md +0 -0
  6. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/__init__.py +0 -0
  7. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/acceptance/__init__.py +0 -0
  8. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/acceptance/connection.py +0 -0
  9. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/acceptance/image.py +0 -0
  10. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/acceptance/package-lock.json +0 -0
  11. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/acceptance/package.json +0 -0
  12. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/acceptance/print.py +0 -0
  13. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/acceptance/screenshot.js +0 -0
  14. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/acceptance/utils.py +0 -0
  15. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/auth.py +0 -0
  16. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/broadcast/__init__.py +0 -0
  17. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/broadcast/interface.py +0 -0
  18. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/broadcast/local.py +0 -0
  19. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/broadcast/redis.py +0 -0
  20. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/broadcast/utils.py +0 -0
  21. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/client_info.py +0 -0
  22. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/config_utils.py +0 -0
  23. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/coverage_setup.py +0 -0
  24. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/db.py +0 -0
  25. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/db_maintenance_view.py +0 -0
  26. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/debug/__init__.py +0 -0
  27. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/debug/_listeners.py +0 -0
  28. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/debug/utils.py +0 -0
  29. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/errors.py +0 -0
  30. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/health_check.py +0 -0
  31. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/index.py +0 -0
  32. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/loader.py +0 -0
  33. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/logging_view.py +0 -0
  34. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/models_graph.py +0 -0
  35. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/pretty_json.py +0 -0
  36. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/profiler.py +0 -0
  37. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/prometheus.py +0 -0
  38. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/py.typed +0 -0
  39. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/pyramid.py +0 -0
  40. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/pyramid_logging.py +0 -0
  41. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/redis_stats.py +0 -0
  42. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/redis_utils.py +0 -0
  43. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/request_tracking/__init__.py +0 -0
  44. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/request_tracking/_sql.py +0 -0
  45. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/scripts/__init__.py +0 -0
  46. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/scripts/genversion.py +0 -0
  47. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/scripts/stats_db.py +0 -0
  48. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/scripts/test_print.py +0 -0
  49. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/sentry.py +0 -0
  50. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/services.py +0 -0
  51. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/setup_process.py +0 -0
  52. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/sql_profiler/__init__.py +0 -0
  53. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/sql_profiler/_impl.py +0 -0
  54. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/sqlalchemylogger/README.md +0 -0
  55. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/sqlalchemylogger/__init__.py +0 -0
  56. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/sqlalchemylogger/_filters.py +0 -0
  57. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/sqlalchemylogger/_models.py +0 -0
  58. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/sqlalchemylogger/examples/__init__.py +0 -0
  59. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/sqlalchemylogger/examples/example.py +0 -0
  60. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/sqlalchemylogger/handlers.py +0 -0
  61. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/static/favicon-16x16.png +0 -0
  62. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/static/favicon-32x32.png +0 -0
  63. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/stats_pyramid/__init__.py +0 -0
  64. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/stats_pyramid/_db_spy.py +0 -0
  65. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/stats_pyramid/_pyramid_spy.py +0 -0
  66. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/templates/index.html.mako +0 -0
  67. {c2cwsgiutils-6.2.0.dev400 → c2cwsgiutils-6.2.0.dev404}/c2cwsgiutils/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: c2cwsgiutils
3
- Version: 6.2.0.dev400
3
+ Version: 6.2.0.dev404
4
4
  Summary: Common utilities for Camptocamp WSGI applications
5
5
  License-Expression: BSD-2-Clause
6
6
  License-File: LICENSE
@@ -63,7 +63,10 @@ Requires-Dist: lxml ; extra == "all"
63
63
  Requires-Dist: lxml ; extra == "tests"
64
64
  Requires-Dist: objgraph ; extra == "all"
65
65
  Requires-Dist: objgraph ; extra == "debug"
66
- Requires-Dist: prometheus-client
66
+ Requires-Dist: prometheus-client ; extra == "all"
67
+ Requires-Dist: prometheus-client ; extra == "standard"
68
+ Requires-Dist: prometheus-client ; extra == "waitress"
69
+ Requires-Dist: prometheus-client ; extra == "webserver"
67
70
  Requires-Dist: psutil ; extra == "all"
68
71
  Requires-Dist: psutil ; extra == "debug"
69
72
  Requires-Dist: psycopg[binary] (>=3.2,<4.0) ; extra == "all"
@@ -1,6 +1,6 @@
1
1
  # Copyright (c) 2026, Camptocamp SA
2
2
 
3
- import datetime
3
+ import datetime as dt
4
4
  import gc
5
5
  import logging
6
6
  import os
@@ -164,10 +164,10 @@ def _error(request: pyramid.request.Request) -> Any:
164
164
  def _time(request: pyramid.request.Request) -> Any:
165
165
  del request # unused
166
166
  return {
167
- "local_time": str(datetime.datetime.now()), # noqa: DTZ005
168
- "gmt_time": str(datetime.datetime.now(datetime.UTC)),
167
+ "local_time": str(dt.datetime.now()), # noqa: DTZ005
168
+ "gmt_time": str(dt.datetime.now(dt.UTC)),
169
169
  "epoch": time.time(),
170
- "timezone": datetime.datetime.now().astimezone().tzname(),
170
+ "timezone": dt.datetime.now().astimezone().tzname(),
171
171
  }
172
172
 
173
173
 
@@ -85,7 +85,7 @@ standard = [
85
85
  "SQLAlchemy-Utils",
86
86
  "zope.interface",
87
87
  "zope.sqlalchemy",
88
- "prometheus_client",
88
+ "prometheus-client",
89
89
  "pyramid_mako",
90
90
  # waitress
91
91
  "waitress",
@@ -107,7 +107,7 @@ webserver = [
107
107
  "SQLAlchemy-Utils",
108
108
  "zope.interface",
109
109
  "zope.sqlalchemy",
110
- "prometheus_client",
110
+ "prometheus-client",
111
111
  "pyramid_mako"]
112
112
  waitress = [
113
113
  "waitress",
@@ -120,7 +120,7 @@ waitress = [
120
120
  "SQLAlchemy-Utils",
121
121
  "zope.interface",
122
122
  "zope.sqlalchemy",
123
- "prometheus_client",
123
+ "prometheus-client",
124
124
  "pyramid_mako"]
125
125
  tests = ["lxml", "boltons"]
126
126
  all = [
@@ -147,7 +147,7 @@ all = [
147
147
  "SQLAlchemy-Utils",
148
148
  "zope.interface",
149
149
  "zope.sqlalchemy",
150
- "prometheus_client",
150
+ "prometheus-client",
151
151
  "pyramid_mako",
152
152
  # tests
153
153
  "lxml",
@@ -160,7 +160,7 @@ test_images = ["scikit-image"]
160
160
 
161
161
  [tool.poetry.group.dev.dependencies]
162
162
  # pylint = { version = "2.15.6" }
163
- prospector = { version = "1.19.1", extras = ["with_bandit", "with_mypy", "with_pyroma", "with_ruff"] }
163
+ prospector = { version = "1.20.0", extras = ["with_bandit", "with_mypy", "with_pyroma", "with_ruff"] }
164
164
  prospector-profile-duplicated = "1.12.0"
165
165
  prospector-profile-utils = "1.27.0"
166
166
  junit2html = "31.1.4"
@@ -173,8 +173,8 @@ types-redis = "4.6.0.20241004"
173
173
  types-ujson = "5.10.0.20250822"
174
174
  types-python-dateutil = "2.9.0.20260807"
175
175
  typing_extensions = "4.16.0"
176
- ruff = "0.16.9"
177
- pylint = "4.0.9"
176
+ ruff = "0.17.3"
177
+ pylint = "4.1.3"
178
178
 
179
179
  [tool.poetry-dynamic-versioning]
180
180
  enable = false
@@ -229,8 +229,8 @@ include = [
229
229
  "c2cwsgiutils/acceptance/package-lock.json",
230
230
  ]
231
231
  requires-python = ">=3.11"
232
- dependencies = ["requests", "pyyaml", "ujson", "cee_syslog_handler", "prometheus-client", "setuptools<81.0.0"]
233
- version = "6.2.0.dev400"
232
+ dependencies = ["requests", "pyyaml", "ujson", "cee_syslog_handler", "setuptools<81.0.0"]
233
+ version = "6.2.0.dev404"
234
234
 
235
235
  [project.urls]
236
236
  repository = "https://github.com/camptocamp/c2cwsgiutils"
@@ -244,12 +244,12 @@ c2cwsgiutils-test-print = "c2cwsgiutils.scripts.test_print:main"
244
244
  c2cwsgiutils-check-es = "c2cwsgiutils.scripts.check_es:main"
245
245
 
246
246
  [project.optional-dependencies]
247
- standard = ["alembic", "cornice", "redis", "gunicorn", "psycopg[binary]>=3.2,<4.0", "pyramid", "pyramid-tm", "sentry-sdk", "SQLAlchemy<3.0.0,>=2.1.0", "SQLAlchemy-Utils", "zope.interface", "zope.sqlalchemy", "pyjwt", "requests-oauthlib", "waitress", "pyramid_mako", "Paste"]
247
+ standard = ["alembic", "cornice", "redis", "gunicorn", "psycopg[binary]<4.0,>=3.2", "pyramid", "pyramid-tm", "sentry-sdk", "SQLAlchemy<3.0.0,>=2.1.0", "SQLAlchemy-Utils", "zope.interface", "zope.sqlalchemy", "pyjwt", "requests-oauthlib", "waitress", "pyramid_mako", "Paste", "prometheus-client"]
248
248
  alembic = ["alembic"]
249
- all = ["alembic", "boltons", "cornice", "redis", "gunicorn", "lxml", "objgraph", "psycopg[binary]>=3.2,<4.0", "pyramid", "pyramid-tm", "sentry-sdk", "SQLAlchemy<3.0.0,>=2.1.0", "SQLAlchemy-Utils", "zope.interface", "zope.sqlalchemy", "pyjwt", "requests-oauthlib", "waitress", "pyramid_mako", "psutil", "Paste", "coverage"]
249
+ all = ["alembic", "boltons", "cornice", "redis", "gunicorn", "lxml", "objgraph", "psycopg[binary]<4.0,>=3.2", "pyramid", "pyramid-tm", "sentry-sdk", "SQLAlchemy<3.0.0,>=2.1.0", "SQLAlchemy-Utils", "zope.interface", "zope.sqlalchemy", "pyjwt", "requests-oauthlib", "waitress", "pyramid_mako", "psutil", "Paste", "coverage", "prometheus-client"]
250
250
  tests = ["boltons", "lxml"]
251
- webserver = ["cornice", "gunicorn", "psycopg[binary]>=3.2,<4.0", "pyramid", "pyramid-tm", "SQLAlchemy<3.0.0,>=2.1.0", "SQLAlchemy-Utils", "zope.interface", "zope.sqlalchemy", "pyramid_mako"]
252
- waitress = ["cornice", "psycopg[binary]>=3.2,<4.0", "pyramid", "pyramid-tm", "SQLAlchemy<3.0.0,>=2.1.0", "SQLAlchemy-Utils", "zope.interface", "zope.sqlalchemy", "waitress", "pyramid_mako", "Paste"]
251
+ webserver = ["cornice", "gunicorn", "psycopg[binary]<4.0,>=3.2", "pyramid", "pyramid-tm", "SQLAlchemy<3.0.0,>=2.1.0", "SQLAlchemy-Utils", "zope.interface", "zope.sqlalchemy", "pyramid_mako", "prometheus-client"]
252
+ waitress = ["cornice", "psycopg[binary]<4.0,>=3.2", "pyramid", "pyramid-tm", "SQLAlchemy<3.0.0,>=2.1.0", "SQLAlchemy-Utils", "zope.interface", "zope.sqlalchemy", "waitress", "pyramid_mako", "Paste", "prometheus-client"]
253
253
  broadcast = ["redis"]
254
254
  debug = ["objgraph", "psutil", "coverage"]
255
255
  sentry = ["sentry-sdk"]