Skip to content

Commit 174306f

Browse files
authored
Silence various deprecation warnings (#315)
* Rename webargs missing argument to load_default * Bump Flask-Caching to 2.0, update cache name * Silence sqlalchemy warning (cf https://docs.sqlalchemy.org/en/14/core/custom_types.html#backend-agnostic-guid-type) * Install OpenCV from PyPI
1 parent c5b7fe7 commit 174306f

File tree

17 files changed

+152
-112
lines changed

17 files changed

+152
-112
lines changed

Dockerfile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ RUN apt-get update && apt-get install -y \
1111
poppler-utils ffmpeg libavcodec-extra \
1212
unzip \
1313
libpq-dev postgresql-client postgresql-client-common python3-psycopg2 \
14-
python3-opencv \
1514
&& rm -rf /var/lib/apt/lists/*
1615

1716
# set locale
@@ -39,6 +38,10 @@ RUN wget https://github.com/gramps-project/addons/archive/refs/heads/master.zip
3938
&& unzip -p master.zip addons-master/gramps$GRAMPS_VERSION/download/PostgreSQL.addon.tgz | \
4039
tar -xvz -C /root/.gramps/gramps$GRAMPS_VERSION/plugins && rm master.zip
4140

41+
# install OpenCV
42+
RUN python3 -m pip install --no-cache-dir --extra-index-url https://www.piwheels.org/simple \
43+
opencv-python
44+
4245
# install gunicorn
4346
RUN python3 -m pip install --no-cache-dir --extra-index-url https://www.piwheels.org/simple \
4447
gunicorn

gramps_webapi/api/__init__.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,10 @@ def register_endpt(resource: Type[Resource], url: str, name: str):
299299
@api_blueprint.route("/media/<string:handle>/thumbnail/<int:size>")
300300
@jwt_required_ifauth
301301
@use_args(
302-
{"square": fields.Boolean(missing=False), "jwt": fields.String(required=False)},
302+
{
303+
"square": fields.Boolean(load_default=False),
304+
"jwt": fields.String(required=False),
305+
},
303306
location="query",
304307
)
305308
@thumbnail_cache.cached(make_cache_key=make_cache_key_thumbnails)
@@ -315,7 +318,10 @@ def get_thumbnail(args, handle, size):
315318
)
316319
@jwt_required_ifauth
317320
@use_args(
318-
{"square": fields.Boolean(missing=False), "jwt": fields.String(required=False)},
321+
{
322+
"square": fields.Boolean(load_default=False),
323+
"jwt": fields.String(required=False),
324+
},
319325
location="query",
320326
)
321327
@thumbnail_cache.cached(make_cache_key=make_cache_key_thumbnails)
@@ -331,7 +337,10 @@ def get_cropped(args, handle: str, x1: int, y1: int, x2: int, y2: int):
331337
)
332338
@jwt_required_ifauth
333339
@use_args(
334-
{"square": fields.Boolean(missing=False), "jwt": fields.String(required=False)},
340+
{
341+
"square": fields.Boolean(load_default=False),
342+
"jwt": fields.String(required=False),
343+
},
335344
location="query",
336345
)
337346
@thumbnail_cache.cached(make_cache_key=make_cache_key_thumbnails)

gramps_webapi/api/resources/base.py

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ class GrampsObjectResource(GrampsObjectResourceHelper, Resource):
162162

163163
@use_args(
164164
{
165-
"backlinks": fields.Boolean(missing=False),
165+
"backlinks": fields.Boolean(load_default=False),
166166
"extend": fields.DelimitedList(
167167
fields.Str(validate=validate.Length(min=1)),
168168
validate=validate.ContainsOnly(
@@ -192,7 +192,9 @@ class GrampsObjectResource(GrampsObjectResourceHelper, Resource):
192192
),
193193
"format_options": fields.Str(validate=validate.Length(min=1)),
194194
"keys": fields.DelimitedList(fields.Str(validate=validate.Length(min=1))),
195-
"locale": fields.Str(missing=None, validate=validate.Length(min=1, max=5)),
195+
"locale": fields.Str(
196+
load_default=None, validate=validate.Length(min=1, max=5)
197+
),
196198
"profile": fields.DelimitedList(
197199
fields.Str(validate=validate.Length(min=1)),
198200
validate=validate.ContainsOnly(
@@ -211,8 +213,8 @@ class GrampsObjectResource(GrampsObjectResourceHelper, Resource):
211213
"skipkeys": fields.DelimitedList(
212214
fields.Str(validate=validate.Length(min=1))
213215
),
214-
"soundex": fields.Boolean(missing=False),
215-
"strip": fields.Boolean(missing=False),
216+
"soundex": fields.Boolean(load_default=False),
217+
"strip": fields.Boolean(load_default=False),
216218
},
217219
location="query",
218220
)
@@ -284,9 +286,9 @@ class GrampsObjectsResource(GrampsObjectResourceHelper, Resource):
284286

285287
@use_args(
286288
{
287-
"backlinks": fields.Boolean(missing=False),
289+
"backlinks": fields.Boolean(load_default=False),
288290
"dates": fields.Str(
289-
missing=None,
291+
load_default=None,
290292
validate=validate.Regexp(
291293
r"^([0-9]+|\*)/([1-9]|1[0-2]|\*)/([1-9]|1[0-9]|2[0-9]|3[0-1]|\*)$|"
292294
r"^-[0-9]+/([1-9]|1[0-2])/([1-9]|1[0-9]|2[0-9]|3[0-1])$|"
@@ -326,9 +328,11 @@ class GrampsObjectsResource(GrampsObjectResourceHelper, Resource):
326328
"format_options": fields.Str(validate=validate.Length(min=1)),
327329
"gramps_id": fields.Str(validate=validate.Length(min=1)),
328330
"keys": fields.DelimitedList(fields.Str(validate=validate.Length(min=1))),
329-
"locale": fields.Str(missing=None, validate=validate.Length(min=1, max=5)),
330-
"page": fields.Integer(missing=0, validate=validate.Range(min=1)),
331-
"pagesize": fields.Integer(missing=20, validate=validate.Range(min=1)),
331+
"locale": fields.Str(
332+
load_default=None, validate=validate.Length(min=1, max=5)
333+
),
334+
"page": fields.Integer(load_default=0, validate=validate.Range(min=1)),
335+
"pagesize": fields.Integer(load_default=20, validate=validate.Range(min=1)),
332336
"profile": fields.DelimitedList(
333337
fields.Str(validate=validate.Length(min=1)),
334338
validate=validate.ContainsOnly(
@@ -349,9 +353,9 @@ class GrampsObjectsResource(GrampsObjectResourceHelper, Resource):
349353
fields.Str(validate=validate.Length(min=1))
350354
),
351355
"sort": fields.DelimitedList(fields.Str(validate=validate.Length(min=1))),
352-
"soundex": fields.Boolean(missing=False),
353-
"strip": fields.Boolean(missing=False),
354-
"filemissing": fields.Boolean(missing=False),
356+
"soundex": fields.Boolean(load_default=False),
357+
"strip": fields.Boolean(load_default=False),
358+
"filemissing": fields.Boolean(load_default=False),
355359
},
356360
location="query",
357361
)

gramps_webapi/api/resources/events.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,10 +87,12 @@ def db_handle(self) -> DbReadBase:
8787

8888
@use_args(
8989
{
90-
"as_age": fields.Boolean(missing=True),
91-
"locale": fields.Str(missing=None, validate=validate.Length(min=1, max=5)),
90+
"as_age": fields.Boolean(load_default=True),
91+
"locale": fields.Str(
92+
load_default=None, validate=validate.Length(min=1, max=5)
93+
),
9294
"precision": fields.Integer(
93-
missing=2, validate=validate.Range(min=1, max=3)
95+
load_default=2, validate=validate.Range(min=1, max=3)
9496
),
9597
},
9698
location="query",

gramps_webapi/api/resources/exporters.py

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -183,19 +183,19 @@ class ExporterFileResource(ProtectedResource, GrampsJSONEncoder):
183183

184184
@use_args(
185185
{
186-
"compress": fields.Boolean(missing=True),
187-
"current_year": fields.Integer(missing=None),
188-
"event": fields.Str(missing=None),
189-
"gramps_id": fields.Str(missing=None),
190-
"handle": fields.Str(missing=None),
191-
"include_children": fields.Boolean(missing=True),
192-
"include_individuals": fields.Boolean(missing=True),
193-
"include_marriages": fields.Boolean(missing=True),
194-
"include_media": fields.Boolean(missing=True),
195-
"include_places": fields.Boolean(missing=True),
196-
"include_witnesses": fields.Boolean(missing=True),
186+
"compress": fields.Boolean(load_default=True),
187+
"current_year": fields.Integer(load_default=None),
188+
"event": fields.Str(load_default=None),
189+
"gramps_id": fields.Str(load_default=None),
190+
"handle": fields.Str(load_default=None),
191+
"include_children": fields.Boolean(load_default=True),
192+
"include_individuals": fields.Boolean(load_default=True),
193+
"include_marriages": fields.Boolean(load_default=True),
194+
"include_media": fields.Boolean(load_default=True),
195+
"include_places": fields.Boolean(load_default=True),
196+
"include_witnesses": fields.Boolean(load_default=True),
197197
"living": fields.Str(
198-
missing="IncludeAll",
198+
load_default="IncludeAll",
199199
validate=validate.OneOf(
200200
[
201201
"IncludeAll",
@@ -206,16 +206,16 @@ class ExporterFileResource(ProtectedResource, GrampsJSONEncoder):
206206
]
207207
),
208208
),
209-
"locale": fields.Str(missing=None),
210-
"note": fields.Str(missing=None),
211-
"person": fields.Str(missing=None),
212-
"private": fields.Boolean(missing=False),
213-
"reference": fields.Boolean(missing=False),
209+
"locale": fields.Str(load_default=None),
210+
"note": fields.Str(load_default=None),
211+
"person": fields.Str(load_default=None),
212+
"private": fields.Boolean(load_default=False),
213+
"reference": fields.Boolean(load_default=False),
214214
"sequence": fields.Str(
215-
missing="privacy,living,person,event,note,reference"
215+
load_default="privacy,living,person,event,note,reference"
216216
),
217-
"translate_headers": fields.Boolean(missing=True),
218-
"years_after_death": fields.Integer(missing=0),
217+
"translate_headers": fields.Boolean(load_default=True),
218+
"years_after_death": fields.Integer(load_default=0),
219219
"jwt": fields.String(required=False),
220220
},
221221
location="query",

gramps_webapi/api/resources/facts.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,10 @@ class FactsResource(ProtectedResource, GrampsJSONEncoder):
9797

9898
@use_args(
9999
{
100-
"gramps_id": fields.Str(missing=None, validate=validate.Length(min=1)),
101-
"handle": fields.Str(missing=None, validate=validate.Length(min=1)),
100+
"gramps_id": fields.Str(load_default=None, validate=validate.Length(min=1)),
101+
"handle": fields.Str(load_default=None, validate=validate.Length(min=1)),
102102
"living": fields.Str(
103-
missing="IncludeAll",
103+
load_default="IncludeAll",
104104
validate=validate.OneOf(
105105
[
106106
"IncludeAll",
@@ -111,10 +111,12 @@ class FactsResource(ProtectedResource, GrampsJSONEncoder):
111111
]
112112
),
113113
),
114-
"locale": fields.Str(missing=None, validate=validate.Length(min=2, max=5)),
115-
"person": fields.Str(missing=None, validate=validate.Length(min=1)),
116-
"private": fields.Boolean(missing=False),
117-
"rank": fields.Integer(missing=1, validate=validate.Range(min=1)),
114+
"locale": fields.Str(
115+
load_default=None, validate=validate.Length(min=2, max=5)
116+
),
117+
"person": fields.Str(load_default=None, validate=validate.Length(min=1)),
118+
"private": fields.Boolean(load_default=False),
119+
"rank": fields.Integer(load_default=1, validate=validate.Range(min=1)),
118120
},
119121
location="query",
120122
)

gramps_webapi/api/resources/file.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class MediaFileResource(ProtectedResource):
4545

4646
@use_args(
4747
{
48-
"download": fields.Boolean(missing=False),
48+
"download": fields.Boolean(load_default=False),
4949
"jwt": fields.String(required=False),
5050
},
5151
location="query",
@@ -67,7 +67,7 @@ def get(self, args: Dict, handle) -> Response:
6767

6868
@use_args(
6969
{
70-
"uploadmissing": fields.Boolean(missing=False),
70+
"uploadmissing": fields.Boolean(load_default=False),
7171
},
7272
location="query",
7373
)

gramps_webapi/api/resources/filters.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -161,18 +161,18 @@ class RuleSchema(Schema):
161161

162162
name = fields.Str(required=True, validate=validate.Length(min=1))
163163
values = fields.List(fields.Raw, required=False)
164-
regex = fields.Boolean(required=False, missing=False)
164+
regex = fields.Boolean(required=False, load_default=False)
165165

166166

167167
class FilterSchema(Schema):
168168
"""Structure for a filter."""
169169

170170
function = fields.Str(
171171
required=False,
172-
missing="and",
172+
load_default="and",
173173
validate=validate.OneOf(["and", "or", "xor", "one"]),
174174
)
175-
invert = fields.Boolean(required=False, missing=False)
175+
invert = fields.Boolean(required=False, load_default=False)
176176
rules = fields.List(
177177
fields.Nested(RuleSchema), required=True, validate=validate.Length(min=1)
178178
)
@@ -192,7 +192,8 @@ class FiltersResources(ProtectedResource, GrampsJSONEncoder):
192192
"""Filters resources."""
193193

194194
@use_args(
195-
{}, location="query",
195+
{},
196+
location="query",
196197
)
197198
def get(self, args: Dict[str, str]) -> Response:
198199
"""Get available custom filters and rules."""
@@ -286,7 +287,10 @@ def get(self, namespace: str, name: str) -> Response:
286287
return self.response(200, filter_list[0])
287288

288289
@use_args(
289-
{"force": fields.Str(validate=validate.Length(equal=0)),}, location="query",
290+
{
291+
"force": fields.Str(validate=validate.Length(equal=0)),
292+
},
293+
location="query",
290294
)
291295
def delete(self, args: Dict, namespace: str, name: str) -> Response:
292296
"""Delete a custom filter."""

gramps_webapi/api/resources/living.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,13 @@ class LivingResource(ProtectedResource, GrampsJSONEncoder):
3838
@use_args(
3939
{
4040
"average_generation_gap": fields.Integer(
41-
missing=None, validate=validate.Range(min=1)
41+
load_default=None, validate=validate.Range(min=1)
4242
),
4343
"max_age_probably_alive": fields.Integer(
44-
missing=None, validate=validate.Range(min=1)
44+
load_default=None, validate=validate.Range(min=1)
4545
),
4646
"max_sibling_age_difference": fields.Integer(
47-
missing=None, validate=validate.Range(min=1)
47+
load_default=None, validate=validate.Range(min=1)
4848
),
4949
},
5050
location="query",
@@ -72,14 +72,16 @@ class LivingDatesResource(ProtectedResource, GrampsJSONEncoder):
7272
@use_args(
7373
{
7474
"average_generation_gap": fields.Integer(
75-
missing=None, validate=validate.Range(min=1)
75+
load_default=None, validate=validate.Range(min=1)
76+
),
77+
"locale": fields.Str(
78+
load_default=None, validate=validate.Length(min=1, max=5)
7679
),
77-
"locale": fields.Str(missing=None, validate=validate.Length(min=1, max=5)),
7880
"max_age_probably_alive": fields.Integer(
79-
missing=None, validate=validate.Range(min=1)
81+
load_default=None, validate=validate.Range(min=1)
8082
),
8183
"max_sibling_age_difference": fields.Integer(
82-
missing=None, validate=validate.Range(min=1)
84+
load_default=None, validate=validate.Range(min=1)
8385
),
8486
},
8587
location="query",

gramps_webapi/api/resources/relations.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,10 @@ class RelationResource(ProtectedResource, GrampsJSONEncoder):
3838

3939
@use_args(
4040
{
41-
"depth": fields.Integer(missing=15, validate=validate.Range(min=2)),
42-
"locale": fields.Str(missing=None, validate=validate.Length(min=1, max=5)),
41+
"depth": fields.Integer(load_default=15, validate=validate.Range(min=2)),
42+
"locale": fields.Str(
43+
load_default=None, validate=validate.Length(min=1, max=5)
44+
),
4345
},
4446
location="query",
4547
)
@@ -76,8 +78,10 @@ class RelationsResource(ProtectedResource, GrampsJSONEncoder):
7678

7779
@use_args(
7880
{
79-
"depth": fields.Integer(missing=15, validate=validate.Range(min=2)),
80-
"locale": fields.Str(missing=None, validate=validate.Length(min=1, max=5)),
81+
"depth": fields.Integer(load_default=15, validate=validate.Range(min=2)),
82+
"locale": fields.Str(
83+
load_default=None, validate=validate.Length(min=1, max=5)
84+
),
8185
},
8286
location="query",
8387
)

0 commit comments

Comments
 (0)