Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
0d7fdd2
Refine type: ignore commment
lieryan Apr 4, 2024
bb0c437
Add dedent to movetest.py
lieryan Apr 4, 2024
ee6b724
Add more test descriptions on movetest.py
lieryan Apr 4, 2024
a2c1cd0
Disambiguated cases where mod1 is always used as origin_module
lieryan Apr 4, 2024
fee9c2e
Disambiguated cases where mod2 is always used as destination_module
lieryan Apr 4, 2024
77f9761
Disambiguated cases where mod1 is always used as destination_module
lieryan Apr 4, 2024
dfb14d5
Disambiguated cases where mod2 is always used as origin_module
lieryan Apr 4, 2024
a007e3a
Disambiguated cases where mod4 is always used as destination_module_i…
lieryan Apr 4, 2024
75910f0
Disambiguated cases where mod4 is always used as origin_module_in_pkg
lieryan Apr 4, 2024
4ff784e
Disambiguated cases where pkg is always used as destination_pkg_root
lieryan Apr 4, 2024
26a929e
Disambiguated cases where pkg2 is always used as destination_pkg_root
lieryan Apr 4, 2024
b7dfa96
Add explicit exception messages in assertRaisesRegex
lieryan Apr 4, 2024
c45231d
Refactor movetest.py to use _move()/_move_to_attr() more consistently
lieryan Apr 4, 2024
f5799ac
Add type checking to movetest.py
lieryan Apr 4, 2024
4ca7a98
Refactor test_moving_to_a_module_with_encoding_cookie
lieryan Apr 4, 2024
6bb67ca
Add type annotation to get_changes() in move.py
lieryan Apr 4, 2024
964dc8e
Update CHANGELOG.md
lieryan Apr 4, 2024
9ae39be
Update black target version
lieryan Apr 4, 2024
3be1fd4
Add TYPE_CHECKING to coverage exclusion
lieryan Apr 4, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# **Upcoming release**

- #785 Refactoring movetest.py (@lieryan)

# Release 1.13.0

- #781, #783 Isolate tests that uses external_fixturepkg into a venv (@lieryan)
- #751 Check for ast.Attributes when finding occurrences in fstrings (@sandratsy)
- #777, #698 add validation to refuse Rename refactoring to a python keyword (@lieryan)
Expand Down
10 changes: 8 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -75,14 +75,20 @@ packages = [

[tool.black]
target-version = [
'py36',
'py37',
'py38',
'py39',
'py310',
'py311',
'py312',
]
include = 'rope/.*\.pyi?$'
force-exclude = 'ropetest|rope/base/prefs.py'

[tool.coverage.report]
exclude_also = [
"if TYPE_CHECKING:",
]

[tool.isort]
profile = "black"

Expand Down
6 changes: 3 additions & 3 deletions rope/contrib/generate.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
from typing import Literal, Optional

from rope.base.project import Project
from rope.base.resources import Resource
from rope.base.resources import Resource, File, Folder

GenerateKind = Literal[
"variable",
Expand Down Expand Up @@ -51,7 +51,7 @@ def create_generate(
return generate(project, resource, offset, goal_resource=goal_resource)


def create_module(project, name, sourcefolder=None):
def create_module(project, name, sourcefolder=None) -> File:
"""Creates a module and returns a `rope.base.resources.File`"""
if sourcefolder is None:
sourcefolder = project.root
Expand All @@ -62,7 +62,7 @@ def create_module(project, name, sourcefolder=None):
return parent.create_file(packages[-1] + ".py")


def create_package(project, name, sourcefolder=None):
def create_package(project, name, sourcefolder=None) -> Folder:
"""Creates a package and returns a `rope.base.resources.Folder`"""
if sourcefolder is None:
sourcefolder = project.root
Expand Down
13 changes: 8 additions & 5 deletions rope/refactor/move.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,9 @@ def __init__(self, project, resource, offset):

def get_changes(
self,
dest_attr,
new_name=None,
resources=None,
dest_attr: str,
new_name: Optional[str] = None,
resources: Optional[List[resources.File]] = None,
task_handle=taskhandle.DEFAULT_TASK_HANDLE, # FIXME: this is unused
):
"""Return the changes needed for this refactoring
Expand Down Expand Up @@ -335,7 +335,7 @@ def get_changes(
# "Resource" has no attribute "has_child"
if dest is None or not dest.exists():
raise exceptions.RefactoringError("Move destination does not exist.")
if dest.is_folder() and dest.has_child("__init__.py"): # type:ignore
if dest.is_folder() and dest.has_child("__init__.py"): # type: ignore[attr-defined]
dest = dest.get_child("__init__.py") # type:ignore
# The previous guards protect against this mypy complaint:
# Item "None" of "Union[str, Resource, None]" has no attribute "is_folder"
Expand Down Expand Up @@ -519,7 +519,10 @@ def __init__(self, project, resource):
self.import_tools = self.tools.import_tools

def get_changes(
self, dest, resources=None, task_handle=taskhandle.DEFAULT_TASK_HANDLE
self,
dest: resources.Resource,
resources: Optional[List[resources.File]] = None,
task_handle=taskhandle.DEFAULT_TASK_HANDLE,
):
if resources is None:
resources = self.project.get_python_files()
Expand Down
Loading