mbr / flask-nav

Easily create navigation for Flask applications.
http://pythonhosted.org/flask-nav/
MIT License
62 stars 37 forks source link

Fix deprecation warning for collections #27

Open shepherdjay opened 4 years ago

shepherdjay commented 4 years ago

Resolves this error

flask_nav\__init__.py:49: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
    class ElementRegistry(collections.MutableMapping):

Edit: Fixes #28

sbraz commented 3 years ago

The warning is an error in Python 3.10, could someone please merge this and make a new release?

ERROR tests/test_flasknav.py - AttributeError: module 'collections' has no attribute 'MutableMapping'                                                                                                              
sbraz commented 3 years ago

@shepherdjay I just noticed you also need to change the import or the module won't work:

diff --git a/flask_nav/__init__.py b/flask_nav/__init__.py
index 7c25dfa..5826b9e 100644
--- a/flask_nav/__init__.py
+++ b/flask_nav/__init__.py
@@ -1,4 +1,4 @@
-import collections
+import collections.abc
 from importlib import import_module
 import re

@@ -46,7 +46,7 @@ class NavbarRenderingError(Exception):
     pass

-class ElementRegistry(collections.MutableMapping):
+class ElementRegistry(collections.abc.MutableMapping):
     def __init__(self):
         self._elems = {}
shepherdjay commented 3 years ago

@sbraz - Updated - sorry did not see your earlier comment been in the middle of a move.

GarfieldTheFirst commented 1 year ago

Would it be possible to merge and release a new version? Ran into this issue as well and fixed it in analogous way locally. Would be very nice :).

Rachelonline commented 1 year ago

Yes, please merge this!