-
I propose that Rope 1.x (The Python 3 version-only version of Rope) should support only Python 3.9 and above. My reasons:
@property
def decorators(self):
try:
return self.ast_node.decorator_list
except AttributeError:
return getattr(self.ast_node, "decorators", None) Unless I am mistaken, in Python 3.9+ this would become: @property
def decorators(self):
return self.ast_node.decorator_list
Your comments, please. |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 4 replies
-
The version of Python that rope supports is explicitly defined in the pyproject.toml and in the Github Actions. But roughly, we follow the Python's Support Schedule. Rope supports any version of Python that is not yet reached its end of life status. Python 3.8 EOL is scheduled for 14 Oct 2024, so we'll need to retain 3.8 support until then, unfortunately. Unlike end-user application like leo, rope is a library, so it cannot be choosy when it comes to what environment it is going to be installed into. Most large corporate projects are not going to be running the latest version of Python either, and large projects are the kind of projects that'll benefit the most from automated refactoring tools, so it's not really desirable to drop support for older Python versions too early. |
Beta Was this translation helpful? Give feedback.
-
@lieryan Thanks for these comments. Summary: Rope 1.0 will support:
A global search shows there are:
All other only_for_versions_higher decorators could be removed. |
Beta Was this translation helpful? Give feedback.
-
@lieryan My apologies for the confusion. What I meant by 1.0 was the release that supports only Python 3. What is the correct term? |
Beta Was this translation helpful? Give feedback.
-
@lieryan Thanks for the clarification. From now on I'll refer to the 1.x release, or python3-only code. |
Beta Was this translation helpful? Give feedback.
The version of Python that rope supports is explicitly defined in the pyproject.toml and in the Github Actions.
But roughly, we follow the Python's Support Schedule. Rope supports any version of Python that is not yet reached its end of life status. Python 3.8 EOL is scheduled for 14 Oct 2024, so we'll need to retain 3.8 support until then, unfortunately.
Unlike end-user application like leo, rope is a library, so it cannot be choosy when it comes to what environment it is going to be installed into. Most large corporate projects are not going to be running the latest version of Python either, and large projects are the kind of projects that'll benefit the most from automated refactoring …