Skip to content

Commit e1e2852

Browse files
woutdenolfsloria
andauthored
since Flask 2.2: MethodView no longer has a metaclass (#238)
* since Flask 2.2: MethodView no longer has a metaclass * Update changelog Co-authored-by: Steven Loria <[email protected]>
1 parent d384f62 commit e1e2852

File tree

4 files changed

+11
-3
lines changed

4 files changed

+11
-3
lines changed

CHANGELOG.rst

+8
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
Changelog
22
---------
33

4+
0.11.2 (unreleased)
5+
*******************
6+
7+
Bug fixes:
8+
9+
* Fix Flask 2.2 support (:issue:`237`).
10+
Thanks :user:`woutdenolf` for the catch and patch.
11+
412
0.11.1 (2022-03-29)
513
*******************
614

docs/usage.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ Use the :func:`use_kwargs <flask_apispec.annotations.use_kwargs>` and :func:`mar
2525
def list_pets(**kwargs):
2626
return Pet.query.filter_by(**kwargs).all()
2727
28-
Decorators can also be applied to view classes, e.g. Flask's :class:`MethodView <flask.views.MethodView>` or flask-restful's :class:`Resource <flask_restful.Resource>`. For correct inheritance behavior, view classes should use the `ResourceMeta` meta-class; for convenience, **flask-apispec** provides `MethodResource`, which inherits from `MethodView` and uses the `ResourceMeta` and `MethodViewType` meta-classes.
28+
Decorators can also be applied to view classes, e.g. Flask's :class:`MethodView <flask.views.MethodView>` or flask-restful's :class:`Resource <flask_restful.Resource>`. For correct inheritance behavior, view classes should use the `ResourceMeta` meta-class; for convenience, **flask-apispec** provides `MethodResource`, which inherits from `MethodView` and uses the `ResourceMeta` meta-class.
2929

3030
.. code-block:: python
3131

examples/petstore.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ def get_pet(pet_id):
7676

7777
docs.register(get_pet)
7878

79-
class MethodResourceMeta(ResourceMeta, flask.views.MethodViewType):
79+
class MethodResourceMeta(ResourceMeta, type(flask.views.MethodView)):
8080
pass
8181

8282
class MethodResource(flask.views.MethodView, metaclass=MethodResourceMeta):

flask_apispec/views.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def __new__(mcs, name, bases, attrs):
3838
return klass
3939

4040

41-
class MethodResourceMeta(ResourceMeta, flask.views.MethodViewType):
41+
class MethodResourceMeta(ResourceMeta, type(flask.views.MethodView)):
4242
pass
4343

4444

0 commit comments

Comments
 (0)