c2cwsgiutils 6.2.0.dev210__tar.gz → 6.2.0.dev213__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.dev210 → c2cwsgiutils-6.2.0.dev213}/PKG-INFO +1 -1
  2. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/prometheus.py +5 -0
  3. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/pyproject.toml +1 -1
  4. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/LICENSE +0 -0
  5. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/README.md +0 -0
  6. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/__init__.py +0 -0
  7. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/acceptance/__init__.py +0 -0
  8. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/acceptance/connection.py +0 -0
  9. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/acceptance/image.py +0 -0
  10. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/acceptance/package-lock.json +0 -0
  11. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/acceptance/package.json +0 -0
  12. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/acceptance/print.py +0 -0
  13. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/acceptance/screenshot.js +0 -0
  14. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/acceptance/utils.py +0 -0
  15. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/auth.py +0 -0
  16. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/broadcast/__init__.py +0 -0
  17. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/broadcast/interface.py +0 -0
  18. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/broadcast/local.py +0 -0
  19. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/broadcast/redis.py +0 -0
  20. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/broadcast/utils.py +0 -0
  21. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/client_info.py +0 -0
  22. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/config_utils.py +0 -0
  23. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/coverage_setup.py +0 -0
  24. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/db.py +0 -0
  25. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/db_maintenance_view.py +0 -0
  26. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/debug/__init__.py +0 -0
  27. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/debug/_listeners.py +0 -0
  28. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/debug/_views.py +0 -0
  29. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/debug/utils.py +0 -0
  30. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/errors.py +0 -0
  31. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/health_check.py +0 -0
  32. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/index.py +0 -0
  33. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/loader.py +0 -0
  34. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/logging_view.py +0 -0
  35. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/models_graph.py +0 -0
  36. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/pretty_json.py +0 -0
  37. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/profiler.py +0 -0
  38. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/py.typed +0 -0
  39. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/pyramid.py +0 -0
  40. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/pyramid_logging.py +0 -0
  41. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/redis_stats.py +0 -0
  42. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/redis_utils.py +0 -0
  43. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/request_tracking/__init__.py +0 -0
  44. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/request_tracking/_sql.py +0 -0
  45. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/scripts/__init__.py +0 -0
  46. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/scripts/genversion.py +0 -0
  47. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/scripts/stats_db.py +0 -0
  48. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/scripts/test_print.py +0 -0
  49. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/sentry.py +0 -0
  50. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/services.py +0 -0
  51. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/setup_process.py +0 -0
  52. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/sql_profiler/__init__.py +0 -0
  53. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/sql_profiler/_impl.py +0 -0
  54. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/sqlalchemylogger/README.md +0 -0
  55. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/sqlalchemylogger/__init__.py +0 -0
  56. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/sqlalchemylogger/_filters.py +0 -0
  57. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/sqlalchemylogger/_models.py +0 -0
  58. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/sqlalchemylogger/examples/__init__.py +0 -0
  59. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/sqlalchemylogger/examples/example.py +0 -0
  60. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/sqlalchemylogger/handlers.py +0 -0
  61. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/static/favicon-16x16.png +0 -0
  62. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/static/favicon-32x32.png +0 -0
  63. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/stats_pyramid/__init__.py +0 -0
  64. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/stats_pyramid/_db_spy.py +0 -0
  65. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/stats_pyramid/_pyramid_spy.py +0 -0
  66. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/templates/index.html.mako +0 -0
  67. {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: c2cwsgiutils
3
- Version: 6.2.0.dev210
3
+ Version: 6.2.0.dev213
4
4
  Summary: Common utilities for Camptocamp WSGI applications
5
5
  License-Expression: BSD-2-Clause
6
6
  License-File: LICENSE
@@ -148,6 +148,7 @@ class MultiProcessCustomCollector(prometheus_client.registry.Collector):
148
148
  def _deserialize_collected_data(
149
149
  results: list[list[SerializedMetric]],
150
150
  ) -> Generator[prometheus_client.core.Metric, None, None]:
151
+ imported = set()
151
152
  for serialized_collection in results:
152
153
  if serialized_collection is None:
153
154
  continue
@@ -165,6 +166,10 @@ def _deserialize_collected_data(
165
166
  else:
166
167
  raise NotImplementedError
167
168
  for sample in serialized_metric["samples"]:
169
+ canonical = (sample["name"], frozenset(sample.get("labels", {}).items()))
170
+ if canonical in imported:
171
+ continue
172
+ imported.add(canonical)
168
173
  metric.samples.append(
169
174
  prometheus_client.metrics_core.Sample(**sample), # type: ignore[attr-defined]
170
175
  )
@@ -225,7 +225,7 @@ include = [
225
225
  ]
226
226
  requires-python = ">=3.11"
227
227
  dependencies = ["requests", "pyyaml", "ujson", "cee_syslog_handler", "prometheus-client"]
228
- version = "6.2.0.dev210"
228
+ version = "6.2.0.dev213"
229
229
 
230
230
  [project.urls]
231
231
  repository = "https://github.com/camptocamp/c2cwsgiutils"