c2cwsgiutils 6.2.0.dev66__tar.gz → 6.2.0.dev68__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.
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/PKG-INFO +31 -32
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/acceptance/connection.py +3 -3
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/acceptance/image.py +9 -9
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/pyproject.toml +1 -1
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/LICENSE +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/README.md +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/__init__.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/acceptance/__init__.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/acceptance/package-lock.json +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/acceptance/package.json +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/acceptance/print.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/acceptance/screenshot.js +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/acceptance/utils.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/auth.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/broadcast/__init__.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/broadcast/interface.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/broadcast/local.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/broadcast/redis.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/broadcast/utils.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/client_info.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/config_utils.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/coverage_setup.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/db.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/db_maintenance_view.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/debug/__init__.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/debug/_listeners.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/debug/_views.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/debug/utils.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/errors.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/health_check.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/index.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/loader.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/logging_view.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/models_graph.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/pretty_json.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/profiler.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/prometheus.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/py.typed +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/pyramid.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/pyramid_logging.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/redis_stats.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/redis_utils.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/request_tracking/__init__.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/request_tracking/_sql.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/scripts/__init__.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/scripts/genversion.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/scripts/stats_db.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/scripts/test_print.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/sentry.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/services.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/setup_process.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/sql_profiler/__init__.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/sql_profiler/_impl.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/sqlalchemylogger/README.md +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/sqlalchemylogger/__init__.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/sqlalchemylogger/_filters.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/sqlalchemylogger/_models.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/sqlalchemylogger/examples/example.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/sqlalchemylogger/handlers.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/static/favicon-16x16.png +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/static/favicon-32x32.png +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/stats_pyramid/__init__.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/stats_pyramid/_db_spy.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/stats_pyramid/_pyramid_spy.py +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/templates/index.html.mako +0 -0
- {c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/version.py +0 -0
@@ -1,13 +1,12 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.3
|
2
2
|
Name: c2cwsgiutils
|
3
|
-
Version: 6.2.0.
|
3
|
+
Version: 6.2.0.dev68
|
4
4
|
Summary: Common utilities for Camptocamp WSGI applications
|
5
|
-
Home-page: https://github.com/camptocamp/c2cwsgiutils
|
6
5
|
License: BSD-2-Clause
|
7
6
|
Keywords: geo,gis,sqlalchemy,orm,wsgi
|
8
7
|
Author: Camptocamp
|
9
8
|
Author-email: info@camptocamp.com
|
10
|
-
Requires-Python: >=3.10
|
9
|
+
Requires-Python: >=3.10,<4.0
|
11
10
|
Classifier: Development Status :: 5 - Production/Stable
|
12
11
|
Classifier: Environment :: Plugins
|
13
12
|
Classifier: Framework :: Pyramid
|
@@ -35,34 +34,34 @@ Provides-Extra: test-images
|
|
35
34
|
Provides-Extra: tests
|
36
35
|
Provides-Extra: waitress
|
37
36
|
Provides-Extra: webserver
|
38
|
-
Requires-Dist: Paste ; extra == "standard" or extra == "waitress" or extra == "all"
|
39
|
-
Requires-Dist: SQLAlchemy ; extra == "standard" or extra == "webserver" or extra == "waitress" or extra == "all"
|
40
|
-
Requires-Dist: SQLAlchemy-Utils ; extra == "standard" or extra == "webserver" or extra == "waitress" or extra == "all"
|
41
|
-
Requires-Dist: alembic ; extra == "standard" or extra == "alembic" or extra == "all"
|
42
|
-
Requires-Dist: boltons ; extra == "tests" or extra == "all"
|
43
|
-
Requires-Dist: cee_syslog_handler
|
44
|
-
Requires-Dist: cornice ; extra == "standard" or extra == "webserver" or extra == "waitress" or extra == "all"
|
45
|
-
Requires-Dist: coverage ; extra == "debug" or extra == "all"
|
46
|
-
Requires-Dist: gunicorn ; extra == "standard" or extra == "webserver" or extra == "all"
|
47
|
-
Requires-Dist: lxml ; extra == "tests" or extra == "all"
|
48
|
-
Requires-Dist: objgraph ; extra == "debug" or extra == "all"
|
49
|
-
Requires-Dist: prometheus-client ; extra == "standard" or extra == "webserver" or extra == "waitress" or extra == "all"
|
50
|
-
Requires-Dist: psutil ; extra == "debug" or extra == "all"
|
51
|
-
Requires-Dist: psycopg2 ; extra == "standard" or extra == "webserver" or extra == "waitress" or extra == "all"
|
52
|
-
Requires-Dist: pyjwt ; extra == "standard" or extra == "oauth2" or extra == "all"
|
53
|
-
Requires-Dist: pyramid ; extra == "standard" or extra == "webserver" or extra == "waitress" or extra == "all"
|
54
|
-
Requires-Dist: pyramid-tm ; extra == "standard" or extra == "webserver" or extra == "waitress" or extra == "all"
|
55
|
-
Requires-Dist: pyramid_mako ; extra == "standard" or extra == "webserver" or extra == "waitress" or extra == "all"
|
56
|
-
Requires-Dist: pyyaml
|
57
|
-
Requires-Dist: redis ; extra == "standard" or extra == "broadcast" or extra == "all"
|
58
|
-
Requires-Dist: requests
|
59
|
-
Requires-Dist: requests-oauthlib ; extra == "standard" or extra == "oauth2" or extra == "all"
|
60
|
-
Requires-Dist: scikit-image ; extra == "test-images"
|
61
|
-
Requires-Dist: sentry-sdk ; extra == "standard" or extra == "sentry" or extra == "all"
|
62
|
-
Requires-Dist: ujson
|
63
|
-
Requires-Dist: waitress ; extra == "standard" or extra == "dev" or extra == "waitress" or extra == "all"
|
64
|
-
Requires-Dist: zope.interface ; extra == "standard" or extra == "webserver" or extra == "waitress" or extra == "all"
|
65
|
-
Requires-Dist: zope.sqlalchemy ; extra == "standard" or extra == "webserver" or extra == "waitress" or extra == "all"
|
37
|
+
Requires-Dist: Paste (==3.10.1) ; extra == "standard" or extra == "waitress" or extra == "all"
|
38
|
+
Requires-Dist: SQLAlchemy (==2.0.37) ; extra == "standard" or extra == "webserver" or extra == "waitress" or extra == "all"
|
39
|
+
Requires-Dist: SQLAlchemy-Utils (==0.41.2) ; extra == "standard" or extra == "webserver" or extra == "waitress" or extra == "all"
|
40
|
+
Requires-Dist: alembic (==1.14.1) ; extra == "standard" or extra == "alembic" or extra == "all"
|
41
|
+
Requires-Dist: boltons (==24.1.0) ; extra == "tests" or extra == "all"
|
42
|
+
Requires-Dist: cee_syslog_handler (==0.6.0)
|
43
|
+
Requires-Dist: cornice (==6.1.0) ; extra == "standard" or extra == "webserver" or extra == "waitress" or extra == "all"
|
44
|
+
Requires-Dist: coverage (==7.6.10) ; extra == "debug" or extra == "all"
|
45
|
+
Requires-Dist: gunicorn (==23.0.0) ; extra == "standard" or extra == "webserver" or extra == "all"
|
46
|
+
Requires-Dist: lxml (==5.3.0) ; extra == "tests" or extra == "all"
|
47
|
+
Requires-Dist: objgraph (==3.6.2) ; extra == "debug" or extra == "all"
|
48
|
+
Requires-Dist: prometheus-client (==0.21.1) ; extra == "standard" or extra == "webserver" or extra == "waitress" or extra == "all"
|
49
|
+
Requires-Dist: psutil (==6.1.1) ; extra == "debug" or extra == "all"
|
50
|
+
Requires-Dist: psycopg2 (==2.9.10) ; extra == "standard" or extra == "webserver" or extra == "waitress" or extra == "all"
|
51
|
+
Requires-Dist: pyjwt (==2.10.1) ; extra == "standard" or extra == "oauth2" or extra == "all"
|
52
|
+
Requires-Dist: pyramid (==2.0.2) ; extra == "standard" or extra == "webserver" or extra == "waitress" or extra == "all"
|
53
|
+
Requires-Dist: pyramid-tm (==2.6) ; extra == "standard" or extra == "webserver" or extra == "waitress" or extra == "all"
|
54
|
+
Requires-Dist: pyramid_mako (==1.1.0) ; extra == "standard" or extra == "webserver" or extra == "waitress" or extra == "all"
|
55
|
+
Requires-Dist: pyyaml (==6.0.2)
|
56
|
+
Requires-Dist: redis (==5.2.1) ; extra == "standard" or extra == "broadcast" or extra == "all"
|
57
|
+
Requires-Dist: requests (==2.32.3)
|
58
|
+
Requires-Dist: requests-oauthlib (==2.0.0) ; extra == "standard" or extra == "oauth2" or extra == "all"
|
59
|
+
Requires-Dist: scikit-image (==0.25.1) ; extra == "test-images"
|
60
|
+
Requires-Dist: sentry-sdk (==2.20.0) ; extra == "standard" or extra == "sentry" or extra == "all"
|
61
|
+
Requires-Dist: ujson (==5.10.0)
|
62
|
+
Requires-Dist: waitress (==3.0.2) ; extra == "standard" or extra == "dev" or extra == "waitress" or extra == "all"
|
63
|
+
Requires-Dist: zope.interface (==7.2) ; extra == "standard" or extra == "webserver" or extra == "waitress" or extra == "all"
|
64
|
+
Requires-Dist: zope.sqlalchemy (==3.1) ; extra == "standard" or extra == "webserver" or extra == "waitress" or extra == "all"
|
66
65
|
Project-URL: Repository, https://github.com/camptocamp/c2cwsgiutils
|
67
66
|
Description-Content-Type: text/markdown
|
68
67
|
|
@@ -267,7 +267,7 @@ def _get_json(r: requests.Response) -> Any:
|
|
267
267
|
return None
|
268
268
|
else:
|
269
269
|
content_type = r.headers["Content-Type"].split(";")[0]
|
270
|
-
assert content_type == "application/json" or content_type.endswith(
|
271
|
-
"
|
272
|
-
)
|
270
|
+
assert content_type == "application/json" or content_type.endswith("+json"), (
|
271
|
+
f"{r.status_code}, {content_type}, {r.text}"
|
272
|
+
)
|
273
273
|
return r.json()
|
@@ -135,9 +135,9 @@ def check_image( # pylint: disable=too-many-locals,too-many-statements
|
|
135
135
|
# Convert to boolean
|
136
136
|
mask = mask == 0
|
137
137
|
|
138
|
-
assert (
|
139
|
-
|
140
|
-
)
|
138
|
+
assert mask.shape[0] == image_to_check.shape[0] and mask.shape[1] == image_to_check.shape[1], (
|
139
|
+
f"Mask and image should have the same shape ({mask.shape} != {image_to_check.shape})"
|
140
|
+
)
|
141
141
|
image_to_check[mask] = background_color
|
142
142
|
|
143
143
|
if not os.path.exists(result_folder):
|
@@ -153,14 +153,14 @@ def check_image( # pylint: disable=too-many-locals,too-many-statements
|
|
153
153
|
expected = normalize_image(expected)
|
154
154
|
|
155
155
|
if mask is not None:
|
156
|
-
assert (
|
157
|
-
expected
|
158
|
-
)
|
156
|
+
assert expected.shape[0] == mask.shape[0] and expected.shape[1] == mask.shape[1], (
|
157
|
+
f"Mask and expected image should have the same shape ({mask.shape} != {expected.shape})"
|
158
|
+
)
|
159
159
|
expected[mask] = background_color
|
160
160
|
|
161
|
-
assert (
|
162
|
-
expected.shape
|
163
|
-
)
|
161
|
+
assert expected.shape == image_to_check.shape, (
|
162
|
+
f"Images have different shapes expected {expected.shape} != actual {image_to_check.shape}"
|
163
|
+
)
|
164
164
|
score, diff = skimage.metrics.structural_similarity(
|
165
165
|
expected, image_to_check, multichannel=True, full=True, channel_axis=2
|
166
166
|
)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/acceptance/package-lock.json
RENAMED
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
|
File without changes
|
{c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/request_tracking/__init__.py
RENAMED
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
|
{c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/sqlalchemylogger/README.md
RENAMED
File without changes
|
{c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/sqlalchemylogger/__init__.py
RENAMED
File without changes
|
{c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/sqlalchemylogger/_filters.py
RENAMED
File without changes
|
{c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/sqlalchemylogger/_models.py
RENAMED
File without changes
|
File without changes
|
{c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/sqlalchemylogger/handlers.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/stats_pyramid/__init__.py
RENAMED
File without changes
|
File without changes
|
{c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/stats_pyramid/_pyramid_spy.py
RENAMED
File without changes
|
{c2cwsgiutils-6.2.0.dev66 → c2cwsgiutils-6.2.0.dev68}/c2cwsgiutils/templates/index.html.mako
RENAMED
File without changes
|
File without changes
|