diff --git a/rope/base/oi/type_hinting/utils.py b/rope/base/oi/type_hinting/utils.py index b0a7aff97..2381c8472 100644 --- a/rope/base/oi/type_hinting/utils.py +++ b/rope/base/oi/type_hinting/utils.py @@ -1,6 +1,7 @@ from __future__ import annotations import logging +import sys from typing import TYPE_CHECKING, Optional, Union import rope.base.utils as base_utils @@ -81,7 +82,10 @@ def resolve_type( """ Find proper type object from its name. """ - deprecated_aliases = {"collections": "collections.abc"} + if sys.version_info < (3, 13): + deprecated_aliases = {"collections": "collections.abc"} + else: + deprecated_aliases = {"collections": "_collections_abc"} ret_type = None logging.debug("Looking for %s", type_name) if "." not in type_name: diff --git a/rope/contrib/autoimport/sqlite.py b/rope/contrib/autoimport/sqlite.py index 54a6d03cf..f06fdaca3 100644 --- a/rope/contrib/autoimport/sqlite.py +++ b/rope/contrib/autoimport/sqlite.py @@ -569,14 +569,17 @@ def filter_folders(folder: Path) -> bool: return list(OrderedDict.fromkeys(folder_paths)) def _safe_iterdir(self, folder: Path): - dirs = folder.iterdir() - while True: - try: - yield next(dirs) - except PermissionError: - pass - except StopIteration: - break + try: + dirs = folder.iterdir() + while True: + try: + yield next(dirs) + except PermissionError: + pass + except StopIteration: + break + except PermissionError: + pass def _get_available_packages(self) -> List[Package]: packages: List[Package] = [