c2cwsgiutils 6.2.0.dev74__py3-none-any.whl → 6.2.0.dev75__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.
Files changed (52) hide show
  1. c2cwsgiutils/__init__.py +4 -4
  2. c2cwsgiutils/acceptance/__init__.py +4 -1
  3. c2cwsgiutils/acceptance/connection.py +45 -32
  4. c2cwsgiutils/acceptance/image.py +45 -39
  5. c2cwsgiutils/acceptance/print.py +2 -2
  6. c2cwsgiutils/acceptance/utils.py +4 -4
  7. c2cwsgiutils/auth.py +20 -13
  8. c2cwsgiutils/broadcast/__init__.py +25 -16
  9. c2cwsgiutils/broadcast/interface.py +8 -4
  10. c2cwsgiutils/broadcast/local.py +9 -4
  11. c2cwsgiutils/broadcast/redis.py +19 -12
  12. c2cwsgiutils/client_info.py +3 -2
  13. c2cwsgiutils/config_utils.py +14 -10
  14. c2cwsgiutils/coverage_setup.py +5 -5
  15. c2cwsgiutils/db.py +54 -47
  16. c2cwsgiutils/db_maintenance_view.py +7 -8
  17. c2cwsgiutils/debug/__init__.py +1 -2
  18. c2cwsgiutils/debug/_listeners.py +6 -4
  19. c2cwsgiutils/debug/_views.py +15 -10
  20. c2cwsgiutils/debug/utils.py +5 -5
  21. c2cwsgiutils/errors.py +15 -10
  22. c2cwsgiutils/health_check.py +79 -60
  23. c2cwsgiutils/index.py +35 -37
  24. c2cwsgiutils/loader.py +5 -4
  25. c2cwsgiutils/logging_view.py +13 -6
  26. c2cwsgiutils/models_graph.py +5 -5
  27. c2cwsgiutils/pretty_json.py +3 -2
  28. c2cwsgiutils/profiler.py +1 -2
  29. c2cwsgiutils/prometheus.py +6 -6
  30. c2cwsgiutils/pyramid.py +1 -1
  31. c2cwsgiutils/pyramid_logging.py +9 -4
  32. c2cwsgiutils/redis_stats.py +12 -7
  33. c2cwsgiutils/redis_utils.py +18 -10
  34. c2cwsgiutils/request_tracking/__init__.py +20 -12
  35. c2cwsgiutils/request_tracking/_sql.py +2 -1
  36. c2cwsgiutils/scripts/genversion.py +10 -9
  37. c2cwsgiutils/scripts/stats_db.py +29 -13
  38. c2cwsgiutils/sentry.py +44 -20
  39. c2cwsgiutils/setup_process.py +7 -4
  40. c2cwsgiutils/sql_profiler/_impl.py +12 -11
  41. c2cwsgiutils/sqlalchemylogger/_models.py +3 -3
  42. c2cwsgiutils/sqlalchemylogger/examples/__init__.py +0 -0
  43. c2cwsgiutils/sqlalchemylogger/handlers.py +8 -9
  44. c2cwsgiutils/stats_pyramid/_db_spy.py +12 -3
  45. c2cwsgiutils/stats_pyramid/_pyramid_spy.py +10 -9
  46. c2cwsgiutils/version.py +10 -7
  47. {c2cwsgiutils-6.2.0.dev74.dist-info → c2cwsgiutils-6.2.0.dev75.dist-info}/METADATA +1 -1
  48. c2cwsgiutils-6.2.0.dev75.dist-info/RECORD +68 -0
  49. c2cwsgiutils-6.2.0.dev74.dist-info/RECORD +0 -67
  50. {c2cwsgiutils-6.2.0.dev74.dist-info → c2cwsgiutils-6.2.0.dev75.dist-info}/LICENSE +0 -0
  51. {c2cwsgiutils-6.2.0.dev74.dist-info → c2cwsgiutils-6.2.0.dev75.dist-info}/WHEEL +0 -0
  52. {c2cwsgiutils-6.2.0.dev74.dist-info → c2cwsgiutils-6.2.0.dev75.dist-info}/entry_points.txt +0 -0
c2cwsgiutils/version.py CHANGED
@@ -3,14 +3,15 @@ import logging
3
3
  import os
4
4
  import re
5
5
  import warnings
6
- from typing import Optional, cast
6
+ from pathlib import Path
7
+ from typing import cast
7
8
 
8
9
  import prometheus_client
9
10
  import pyramid.config
10
11
 
11
12
  from c2cwsgiutils import auth, config_utils, prometheus
12
13
 
13
- _VERSIONS_PATH = "/app/versions.json"
14
+ _VERSIONS_PATH = Path("/app/versions.json")
14
15
  _LOG = logging.getLogger(__name__)
15
16
 
16
17
  _PACKAGES = os.environ.get("C2C_PROMETHEUS_PACKAGES", "c2cwsgiutils,pyramid,gunicorn,SQLAlchemy").split(",")
@@ -52,10 +53,12 @@ class _View:
52
53
 
53
54
  def includeme(config: pyramid.config.Configurator) -> None:
54
55
  """Initialize the versions view."""
55
- if os.path.isfile(_VERSIONS_PATH):
56
+ if _VERSIONS_PATH.is_file():
56
57
  versions = _read_versions()
57
58
  config.add_route(
58
- "c2c_versions", config_utils.get_base_path(config) + r"/versions.json", request_method="GET"
59
+ "c2c_versions",
60
+ config_utils.get_base_path(config) + r"/versions.json",
61
+ request_method="GET",
59
62
  )
60
63
  config.add_view(_View(versions), route_name="c2c_versions", renderer="fast_json", http_cache=0)
61
64
  _LOG.info("Installed the /versions.json service")
@@ -83,14 +86,14 @@ def includeme(config: pyramid.config.Configurator) -> None:
83
86
 
84
87
  def _read_versions() -> dict[str, dict[str, str]]:
85
88
  """Read the version."""
86
- with open(_VERSIONS_PATH, encoding="utf-8") as file:
89
+ with _VERSIONS_PATH.open(encoding="utf-8") as file:
87
90
  versions = json.load(file)
88
91
  return cast(dict[str, dict[str, str]], versions)
89
92
 
90
93
 
91
- def get_version() -> Optional[str]:
94
+ def get_version() -> str | None:
92
95
  """Get the version."""
93
- if not os.path.isfile(_VERSIONS_PATH):
96
+ if not _VERSIONS_PATH.is_file():
94
97
  return None
95
98
  versions = _read_versions()
96
99
  return versions["main"]["git_hash"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: c2cwsgiutils
3
- Version: 6.2.0.dev74
3
+ Version: 6.2.0.dev75
4
4
  Summary: Common utilities for Camptocamp WSGI applications
5
5
  License: BSD-2-Clause
6
6
  Keywords: geo,gis,sqlalchemy,orm,wsgi
@@ -0,0 +1,68 @@
1
+ c2cwsgiutils/__init__.py,sha256=DecyA-tMmcT1jt2Bd7zEO9Yse8WcOKEEppxS6omH-mY,4047
2
+ c2cwsgiutils/acceptance/__init__.py,sha256=mSv7pmy7fF6i3JfNX_Ws-8x6jHgT7W3AK4bZTnkoosI,1515
3
+ c2cwsgiutils/acceptance/connection.py,sha256=nXwDSRpqVaOBr_mhZ3jdOSJIxHCHub6atADa04dpiO4,9911
4
+ c2cwsgiutils/acceptance/image.py,sha256=f5gd3zswSuYkZp2gzSk4697itoCyRgsLe8sy3BxPN-w,9315
5
+ c2cwsgiutils/acceptance/package-lock.json,sha256=BTOPc5lkvZ_D5__FYckm0fi9Nyru2wgvO7xakvk5oCI,42616
6
+ c2cwsgiutils/acceptance/package.json,sha256=ClHsOOzzwKrN7PL-7bcfIGiojA3MNBrk6fP_62soCuw,101
7
+ c2cwsgiutils/acceptance/print.py,sha256=i6UxfSuZ8z9grC_P2qn0yU6RXLbNCcopPMOgjc8D1rI,2555
8
+ c2cwsgiutils/acceptance/screenshot.js,sha256=FAJYIWOLJFMm0MNggKzo3mIybtN-VtKLdMzPhQ9pO1g,2041
9
+ c2cwsgiutils/acceptance/utils.py,sha256=zTu-CRL4ZwFrluiM6rPvcGsXsC2Aq_r4L7oVyucQkbY,1920
10
+ c2cwsgiutils/auth.py,sha256=VWilgapDz9bw_1D1UnHrJPLmX546waflQ2-72fbRmHo,9753
11
+ c2cwsgiutils/broadcast/__init__.py,sha256=ZXegEEeBNlVD1k2lBn3EVlBvvRM-My5v34_wJ_ijU6s,4501
12
+ c2cwsgiutils/broadcast/interface.py,sha256=FUK6ZTcqleM3oI3bq_dRPWnbH8Q54fdJzL3Y1QKyE5E,685
13
+ c2cwsgiutils/broadcast/local.py,sha256=I0dT3Y6nRJ4JanEbXQLuKG7aENtmizJR0Y6lRJ7f1mY,1369
14
+ c2cwsgiutils/broadcast/redis.py,sha256=K3sKNCJE0j4N40JOGMh9lhJbAnrAlv14k4ceMiBt8Zk,5447
15
+ c2cwsgiutils/broadcast/utils.py,sha256=0fQZXPu3p_5LEJpGenJwiiMxECQjJhjZBjIkBk8h-ng,272
16
+ c2cwsgiutils/client_info.py,sha256=pik4rMw_GFIEjNVDO0b4aspO_eTLS3ts7dwGXmywdNE,4039
17
+ c2cwsgiutils/config_utils.py,sha256=S_Px7uvx7U36nndor0IIvXOOe5B5mcH-BcklRlkj-dM,1526
18
+ c2cwsgiutils/coverage_setup.py,sha256=4xz9nRoYxC-8cCkMNhE06DGk0pr1azNSQK36u6wgBSM,935
19
+ c2cwsgiutils/db.py,sha256=S9tzxjyTonxP2bEsRSPzd_c_b1eWX8BHdZc-x1UzU3s,16568
20
+ c2cwsgiutils/db_maintenance_view.py,sha256=VzcJ7G8rHQNtIZSDLQxPt_nXZYeJwwsDyPYuHgPmY6w,3073
21
+ c2cwsgiutils/debug/__init__.py,sha256=-MM2PJ1Dhpi7T1CvDO8JpTuO9cnRNv4DFVoCxkCZuLo,1333
22
+ c2cwsgiutils/debug/_listeners.py,sha256=UhKbvnwwOhsuA8Q6RBmQs83lO00yMe--WGVEETaD-yk,4271
23
+ c2cwsgiutils/debug/_views.py,sha256=F2C6K18yUVAQRE4pxzkVag4Axp0a3OPQtHdy3F7xf6U,8648
24
+ c2cwsgiutils/debug/utils.py,sha256=GpQQ0LgDCJ57IZmJwjIi2GkFAnHPLHeNtDT-zmMbLTY,2338
25
+ c2cwsgiutils/errors.py,sha256=EXb4AODAqn1T3AOaQ-39XlAHfNxjSkgFUJJhciDjrSQ,6748
26
+ c2cwsgiutils/health_check.py,sha256=-fIbWap37UIsmbkG7aN_vzhD4xWJBjRRjDlAWRDXc5k,20834
27
+ c2cwsgiutils/index.py,sha256=5NbRP2G-GeZhRa7Bv6XB-7-LJlxc_aSPgvxZCnoY49M,17979
28
+ c2cwsgiutils/loader.py,sha256=bvokKtBzC2-GkZGHPuxQPGROd8T5MrnM5u2kRnGdbDQ,1421
29
+ c2cwsgiutils/logging_view.py,sha256=TfPNgiLLm86UnTJF1i6J1u8Nnyh8HaUK6pZAZfGJRjY,3491
30
+ c2cwsgiutils/models_graph.py,sha256=Ca09i6SfLJ1i4tHewth3XnY9hccFnkUSlkBi-XoVCSY,2709
31
+ c2cwsgiutils/pretty_json.py,sha256=-BxW_772VK-DuJNWo1hN9VYmTECRrKE_bMD2VysIwCE,1721
32
+ c2cwsgiutils/profiler.py,sha256=NiEMhkpBbvFXZtfk_znC9Msa5CR7Dq4sIMEn4e1W8Lk,758
33
+ c2cwsgiutils/prometheus.py,sha256=_f2tctAIjmp0j6AzQR-G6aci50Vr5AKtNGFbVHfcJMg,8701
34
+ c2cwsgiutils/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
+ c2cwsgiutils/pyramid.py,sha256=t0INCb-kpLdswWALIhSLXNMWT0kTIvjlQRfUbyp8HZ8,1396
36
+ c2cwsgiutils/pyramid_logging.py,sha256=ZuzDwTWMCIAt9mWDdZla-6N6p9cnCkzUaGrt2vtN3d0,3973
37
+ c2cwsgiutils/redis_stats.py,sha256=JwMo7Ytc1xaaRGCLkxkWNIS8Dci23k0Il1QQjdTelU8,1737
38
+ c2cwsgiutils/redis_utils.py,sha256=8lxqVZTMzHMoo-QOxqWLcNdVE7HF8N8JZEH_nocv2NY,4884
39
+ c2cwsgiutils/request_tracking/__init__.py,sha256=ONYs7oH5YK90_-0liz6fwP3wQgzC3yHdcBPZf0v_tzA,4194
40
+ c2cwsgiutils/request_tracking/_sql.py,sha256=Z3xVF1Le_2_O2y5K4B2qQy9iqJo4N0uRmYQ6VND5sHw,585
41
+ c2cwsgiutils/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
+ c2cwsgiutils/scripts/genversion.py,sha256=PgZkUSqwomGEaoRlgV3ufki33rfmjsmNBGTXBu62jHk,2031
43
+ c2cwsgiutils/scripts/stats_db.py,sha256=YLVIyMoDsG1lN-raQQb6VJS5kRvW8lJj8nI1-G6WKNo,10611
44
+ c2cwsgiutils/scripts/test_print.py,sha256=pLqqVZ9cVvjdD3MdJQ7Ul8i5OIBFvo1Gnr78rdH0Dh4,2130
45
+ c2cwsgiutils/sentry.py,sha256=eKY3n7Fu-Mtoe_iqKFIlE4cDbCw3nZ2hMZ5gqmOh5ZE,6913
46
+ c2cwsgiutils/services.py,sha256=AxdiH2S8gfEQpOY36R4WqKtJ-3P4OXhx0srTm5G5070,1569
47
+ c2cwsgiutils/setup_process.py,sha256=Ox2Q7T7J9CaZ55Bomg3r1cW5FxKZaMSbfkwGMkbkl7U,3585
48
+ c2cwsgiutils/sql_profiler/__init__.py,sha256=YR8003lCNNGC2eZdyIt5gt76-1frG5szw8IYE_EsQB4,921
49
+ c2cwsgiutils/sql_profiler/_impl.py,sha256=2j1m-ffyr8BgsJKs2ctZ5lpLY6oiym_d2h3YEvdQ3xU,3803
50
+ c2cwsgiutils/sqlalchemylogger/README.md,sha256=qXfyhGC4Kbt-Ye_geTPm_1InpclhthmKZpc66rqB4as,2018
51
+ c2cwsgiutils/sqlalchemylogger/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
+ c2cwsgiutils/sqlalchemylogger/_filters.py,sha256=OJQ9_WA-fd9fMZ7TUNFzHHTPI6msw2NVBl5RoeYFnGw,752
53
+ c2cwsgiutils/sqlalchemylogger/_models.py,sha256=m-gnw_K1wXS3_JUwGskEZP6dR5TEePT1d4Ef2vzeB-s,1475
54
+ c2cwsgiutils/sqlalchemylogger/examples/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
+ c2cwsgiutils/sqlalchemylogger/examples/example.py,sha256=n48dJdUi1FH1hfBMAbfHLGPSb1bOVD8pXMxXB57PnpQ,460
56
+ c2cwsgiutils/sqlalchemylogger/handlers.py,sha256=6j1fmQx423e6sLn3DYREAu9GWe-SXL3mHu5xzYR2wO4,4950
57
+ c2cwsgiutils/static/favicon-16x16.png,sha256=LKk6RFvb3NlPIZdDfAodE8H9IN8KM6CMGnMx4vOHlUQ,887
58
+ c2cwsgiutils/static/favicon-32x32.png,sha256=i4ucx08zAZARd8e7JTMGK-gb5WcOmyuDN6IN4brsEOo,1216
59
+ c2cwsgiutils/stats_pyramid/__init__.py,sha256=0NizIUbaPbNf6bPye7pGrF9AaFerIN30EhEMts1XgfY,801
60
+ c2cwsgiutils/stats_pyramid/_db_spy.py,sha256=_E5_KFipmsOdqD849mde4EDIlXS7ae0oClZb7GmZRLo,2992
61
+ c2cwsgiutils/stats_pyramid/_pyramid_spy.py,sha256=KFxxKdEKrmDeA1zpps-BPiB2c4hhR2GlgJvq6KOTyjU,3498
62
+ c2cwsgiutils/templates/index.html.mako,sha256=cK8qGBDeQG5SiJJCfvL0oKpgacr7dPKx634AAQivmjA,1416
63
+ c2cwsgiutils/version.py,sha256=3SzSbPTaURGvBHxXomKcN4ZMC1rE5-ksOWlh-_JPqSQ,3154
64
+ c2cwsgiutils-6.2.0.dev75.dist-info/LICENSE,sha256=6bEOU0n7ued3SA-DQCsHQaACONMMRzGHmH5XhDVeD-U,1304
65
+ c2cwsgiutils-6.2.0.dev75.dist-info/METADATA,sha256=2s8K1KDv80rIl0TDaVo3yiv6Tbsd5AUt68ubAS4mGko,36598
66
+ c2cwsgiutils-6.2.0.dev75.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
67
+ c2cwsgiutils-6.2.0.dev75.dist-info/entry_points.txt,sha256=ujgqMTL1awN9qDg8WXmrF7m0fgR-hslUM6zKH86pvy0,703
68
+ c2cwsgiutils-6.2.0.dev75.dist-info/RECORD,,
@@ -1,67 +0,0 @@
1
- c2cwsgiutils/__init__.py,sha256=HVSc-4O8i2aB0ozEI4AI8Xsb-4S6fAwhl8uRhv-DsFg,4057
2
- c2cwsgiutils/acceptance/__init__.py,sha256=5PeqPHxAPMRbZpKk1XlC9RCyotegSsKVfPxADYAgG7w,1502
3
- c2cwsgiutils/acceptance/connection.py,sha256=y9Gs4lX2PfL6GyUrskXLYh_PtCsfF0X6UGXcm1A9GcY,9836
4
- c2cwsgiutils/acceptance/image.py,sha256=cmXFrQ12iH8cs8ZHkKaEiusDE5WJAl-LLiM5xV4hWhs,9290
5
- c2cwsgiutils/acceptance/package-lock.json,sha256=BTOPc5lkvZ_D5__FYckm0fi9Nyru2wgvO7xakvk5oCI,42616
6
- c2cwsgiutils/acceptance/package.json,sha256=ClHsOOzzwKrN7PL-7bcfIGiojA3MNBrk6fP_62soCuw,101
7
- c2cwsgiutils/acceptance/print.py,sha256=DOPDHUP9wfM75qiPYhFI1P3awQKIBH-edO_TmhCjT8k,2568
8
- c2cwsgiutils/acceptance/screenshot.js,sha256=FAJYIWOLJFMm0MNggKzo3mIybtN-VtKLdMzPhQ9pO1g,2041
9
- c2cwsgiutils/acceptance/utils.py,sha256=beq_pGJCMBRMmzLERw7z79vc9KtX5gY-g37WiUHa4q8,1901
10
- c2cwsgiutils/auth.py,sha256=Ct-EbyBLm75yDUL4FdiYteuUb1zjqLP_7N61scm25pE,9710
11
- c2cwsgiutils/broadcast/__init__.py,sha256=9vhFSNUwMqNp73D3LXnQJeLOYB49VUU4KwIoOvDaS3o,4484
12
- c2cwsgiutils/broadcast/interface.py,sha256=AkDT_m0eXTQp3mmMLf9KRtpXnWoVhJpb_UNjCbHM-3I,665
13
- c2cwsgiutils/broadcast/local.py,sha256=BZ0iDmU81W8C3Xzs9Dz9jRdTO-WXXvA_7Z5xV6RWoNA,1317
14
- c2cwsgiutils/broadcast/redis.py,sha256=B31HvuwRb3ty2JBJBm-_eAJc-6IXxYCBW-BIuDulByY,5386
15
- c2cwsgiutils/broadcast/utils.py,sha256=0fQZXPu3p_5LEJpGenJwiiMxECQjJhjZBjIkBk8h-ng,272
16
- c2cwsgiutils/client_info.py,sha256=MIlD88JJ-IL3GwhJsMB73IbsWcglMkdnCyOgDEQG8ns,4004
17
- c2cwsgiutils/config_utils.py,sha256=vkBu-3GQsE94NOBOvT5FE-Ij29EUrKnDsmdUdtu_yzo,1524
18
- c2cwsgiutils/coverage_setup.py,sha256=nQkMiynQQ7M400q-tw8HtRutQy_Y8r5U-FwnC3AwEmM,936
19
- c2cwsgiutils/db.py,sha256=YvJKo1cXhKcjYwRpUkQbx70YOnOgsYJ5wID5rkLhF6g,16262
20
- c2cwsgiutils/db_maintenance_view.py,sha256=1y_sfjnHsvl98yzTM24rqmchqGIXDp61KTwraXJZM0s,3102
21
- c2cwsgiutils/debug/__init__.py,sha256=a2RytL9_DgqiJzc5CCdKd1yF2sSk6SCIVh1gUrWVq1o,1364
22
- c2cwsgiutils/debug/_listeners.py,sha256=-fk3KFeB_E4m_YFXJ5MfxuqfA1sWCje9p3FH_93WfXM,4248
23
- c2cwsgiutils/debug/_views.py,sha256=xwXyuQzwvzX3MjMwbPFVwzbtKUTjcemCMe7DyXQMNpY,8547
24
- c2cwsgiutils/debug/utils.py,sha256=sIKZHQ8empzxE2OI3h7Uce8cvv4O7AD1y_VYeZfLVCA,2320
25
- c2cwsgiutils/errors.py,sha256=miNVnEX9qBtwaRnny_k9IcBbbw-8vC3unFumi2w5Q9w,6679
26
- c2cwsgiutils/health_check.py,sha256=GqnnhW2Zb-EBoTqcYTZK1uGzBzZ7U2ILO-q5DBPqqfI,20207
27
- c2cwsgiutils/index.py,sha256=ag7A8HJ9MgU72etDBuFMaci-xKjOD9R8OOm3UMEoQJY,18002
28
- c2cwsgiutils/loader.py,sha256=VbvENJZgl3Mmkysx-BODSl_Qh3LtQrz51pZ1F_A50Rk,1400
29
- c2cwsgiutils/logging_view.py,sha256=wa2hCjGKkpRwrCA4K6Zk1Z3hPGUMB6SJAnki-_lLY00,3384
30
- c2cwsgiutils/models_graph.py,sha256=AROTzCHJCjjOiOmQj_Hk40WQdIPaHFLgN4Jech1aUzc,2683
31
- c2cwsgiutils/pretty_json.py,sha256=houw_oeU63CgzQTPlBrrYzinpE-UtqPeYLfTXdLHyu0,1711
32
- c2cwsgiutils/profiler.py,sha256=3902yp1rHpSNpsYKmqs_IrEpFg9P2QqNtjyolk53ZgQ,778
33
- c2cwsgiutils/prometheus.py,sha256=vTb0cDO30DQwjVdu0qCFEyTAOv7jeUFioDjTCbp1bYA,8712
34
- c2cwsgiutils/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
- c2cwsgiutils/pyramid.py,sha256=kSCsBG5IPd0-tsXwdiJ3cj_yj-AxQYFusvTxPE6AaeQ,1388
36
- c2cwsgiutils/pyramid_logging.py,sha256=U1MD7xEAGH7QdX7FA6O12eHhzMx76i1WCXtf_EiJgVE,3911
37
- c2cwsgiutils/redis_stats.py,sha256=yUVVNGR_rIecH4uRfRWMySERCTYMWtJhSXAs0iK4TAs,1646
38
- c2cwsgiutils/redis_utils.py,sha256=kY1QbZWVnUI-bxCeJOxn5VBfna2hS1oUQxx9HEws_ww,4813
39
- c2cwsgiutils/request_tracking/__init__.py,sha256=ZeCxPJNrUxKLDmV5bOs0zmD9vx0FFIPs7T3xDNG-5BU,4146
40
- c2cwsgiutils/request_tracking/_sql.py,sha256=ZOQ3hD5z-WasfBzNig75fjrCvw4tGr1rhWOv97iLYws,572
41
- c2cwsgiutils/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
- c2cwsgiutils/scripts/genversion.py,sha256=SZswHR6qbeErcxn5d5yAa4QPnw9z4LCeP9GOweTj16g,2014
43
- c2cwsgiutils/scripts/stats_db.py,sha256=EaI1WAHGKj-sUWpznIOs8yMlgx2pnzwAksA8hA-nF28,10452
44
- c2cwsgiutils/scripts/test_print.py,sha256=pLqqVZ9cVvjdD3MdJQ7Ul8i5OIBFvo1Gnr78rdH0Dh4,2130
45
- c2cwsgiutils/sentry.py,sha256=ZnWo0-8xgwWxDG_wo9gI8rDtZlKgcZXorG3b0tU5Hh0,6508
46
- c2cwsgiutils/services.py,sha256=AxdiH2S8gfEQpOY36R4WqKtJ-3P4OXhx0srTm5G5070,1569
47
- c2cwsgiutils/setup_process.py,sha256=K4o3feB98zKoPiI2k7MnTsItwf_i-NSL8ziUmGnYg_Q,3553
48
- c2cwsgiutils/sql_profiler/__init__.py,sha256=YR8003lCNNGC2eZdyIt5gt76-1frG5szw8IYE_EsQB4,921
49
- c2cwsgiutils/sql_profiler/_impl.py,sha256=OdhAn-5x84Bz5RCldhgjX50b6yxSLnLh5nydNgHvgGc,3801
50
- c2cwsgiutils/sqlalchemylogger/README.md,sha256=qXfyhGC4Kbt-Ye_geTPm_1InpclhthmKZpc66rqB4as,2018
51
- c2cwsgiutils/sqlalchemylogger/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
- c2cwsgiutils/sqlalchemylogger/_filters.py,sha256=OJQ9_WA-fd9fMZ7TUNFzHHTPI6msw2NVBl5RoeYFnGw,752
53
- c2cwsgiutils/sqlalchemylogger/_models.py,sha256=A9SQ8AqUazCMemVjp5p_1x4bZG3LAYW9pOXT84FdNkE,1471
54
- c2cwsgiutils/sqlalchemylogger/examples/example.py,sha256=n48dJdUi1FH1hfBMAbfHLGPSb1bOVD8pXMxXB57PnpQ,460
55
- c2cwsgiutils/sqlalchemylogger/handlers.py,sha256=hDDWmiV6ksEcRCJlqIdQW3P9hq2BTC70wrLmY0vYkyA,4979
56
- c2cwsgiutils/static/favicon-16x16.png,sha256=LKk6RFvb3NlPIZdDfAodE8H9IN8KM6CMGnMx4vOHlUQ,887
57
- c2cwsgiutils/static/favicon-32x32.png,sha256=i4ucx08zAZARd8e7JTMGK-gb5WcOmyuDN6IN4brsEOo,1216
58
- c2cwsgiutils/stats_pyramid/__init__.py,sha256=0NizIUbaPbNf6bPye7pGrF9AaFerIN30EhEMts1XgfY,801
59
- c2cwsgiutils/stats_pyramid/_db_spy.py,sha256=A61t6VKIrRRIjbyZTldmAUl_Q3ZDVFYqyxjuntzmllc,2919
60
- c2cwsgiutils/stats_pyramid/_pyramid_spy.py,sha256=GnJRlLSAPl4PwQH5jfmc2OX5Hz9MSRRVJT2VcqkniVE,3518
61
- c2cwsgiutils/templates/index.html.mako,sha256=cK8qGBDeQG5SiJJCfvL0oKpgacr7dPKx634AAQivmjA,1416
62
- c2cwsgiutils/version.py,sha256=7H3URblj26Ql0bL3eXtP0LSRBeW4HbEsQ8O_BfWNr90,3124
63
- c2cwsgiutils-6.2.0.dev74.dist-info/LICENSE,sha256=6bEOU0n7ued3SA-DQCsHQaACONMMRzGHmH5XhDVeD-U,1304
64
- c2cwsgiutils-6.2.0.dev74.dist-info/METADATA,sha256=8gcNieAEaDdPnstxKSdK3r-DkkkGgS5GTy8aWuHPavw,36598
65
- c2cwsgiutils-6.2.0.dev74.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
66
- c2cwsgiutils-6.2.0.dev74.dist-info/entry_points.txt,sha256=ujgqMTL1awN9qDg8WXmrF7m0fgR-hslUM6zKH86pvy0,703
67
- c2cwsgiutils-6.2.0.dev74.dist-info/RECORD,,