Skip to content

bpo-38307: Add end_lineno attribute to pyclbr _Objects #24348

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

kebab-mai-haddi
Copy link
Contributor

@kebab-mai-haddi kebab-mai-haddi commented Jan 27, 2021

For back-compatibility, make the new constructor parameter for public classes Function and Class
keyword-only with a default of None.

bpo-38307: Provide class' and function's end line in order to provide the scope of the classes and functions in a module.

https://bugs.python.org/issue38307

Aviral Srivastava and others added 23 commits September 28, 2019 13:21
…va254084/cpython into endline-in-readmodule-module
@kebab-mai-haddi kebab-mai-haddi changed the title Endline in readmodule module bpo-38307: Endline in readmodule of pyclbr Jan 27, 2021
Copy link
Member

@terryjreedy terryjreedy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the revised patch. On the issue, I questioned whether we can insert end_lineno within the existing signatures. I have posted to pydev for additional opinions. The patch otherwise looks fine except for the blurb, which I would revise before merging.

@@ -0,0 +1,4 @@
Adds end line no in class' use: generating dependency.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can’t parse this line 🙂
(and second line starting with colon seems strange)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Neither could I nor the doc tests. I replaced it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, @terryjreedy !
But how could you push a change to my forked repository?

(I am not objecting to it, I just do not understand how another person can push to mine repo)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When you made the PR, you left a checkmark in the box that says to allow core developers ('Members of Python' when you mouse over the icons) to modify the files in this branch. If you had removed it, I would have asked to put is back in if possible. To pull to your local repository, which you should do before making further changes, checkout this branch, endline-in-readmodule-module, and, I believe, if you defined 'origin' as the devguide suggests

git pull origin endline-in-readmodule-module

Don't use rebase.

@terryjreedy
Copy link
Member

terryjreedy commented Jan 27, 2021

Tests/macOS just says 'Error'. I suspect that this is not related to patch.
Travis and Pipelines failures are due to bad markup in the blurb.

The revised blurb should pass. It may still be too wordy.

The person merging this should likely add a What's New entry. The details will depend on where the new argument is added.

This is worth an addition to Misc/Acks. This should not be done until just before merging, or after.

@terryjreedy
Copy link
Member

Since retests had the same 'default role used' complaint, I removed all markup.

@kebab-mai-haddi
Copy link
Contributor Author

Since retests had the same 'default role used' complaint, I removed all markup.

Thanks, @terryjreedy . All tests passed, does this mean the PR will be merged as per the standards?

@merwok
Copy link
Member

merwok commented Jan 28, 2021

There is a discussion about this change : it breaks compatibility but for something that was not supposed to be used directly — more changes are suggested to break with a clear message rather than appear to work.

@kebab-mai-haddi
Copy link
Contributor Author

@terryjreedy , so should I modify the PR with end_lineno=None?

Copy link
Member

@terryjreedy terryjreedy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Before merging, an entry for pyclbr should be added to Improved Modules in Doc/whatsnew/3.10.rst. I think the following is enough.

Add an 'end_lineno' attribute to the Class and Function objects that appear in the
tree returned by pyclbr functions. (Contributed by Aviral Srivastava in bpo-38307.)

(With bpo marked-up as for other entries.)

@terryjreedy
Copy link
Member

I am making the changes now.

@terryjreedy terryjreedy changed the title bpo-38307: Endline in readmodule of pyclbr bpo-38307: Add endline to pyclbr Objects Feb 1, 2021
@terryjreedy terryjreedy changed the title bpo-38307: Add endline to pyclbr Objects bpo-38307: Add end_lineno attribute to pyclbr _Objects Feb 1, 2021
@terryjreedy terryjreedy added the type-feature A feature request or enhancement label Feb 1, 2021
@terryjreedy terryjreedy merged commit 000cde5 into python:master Feb 1, 2021
@kebab-mai-haddi
Copy link
Contributor Author

Thank you @terryjreedy !

Does this mean that new installations of Python will have this change or should one wait for the tag release?
I know making from source will have the change but wasn't sure about which version of Python would have this change. Can you help me understand that?

Thanks again!

@merwok
Copy link
Member

merwok commented Feb 1, 2021

As a new feature, this will be released in Python 3.10.

@terryjreedy
Copy link
Member

I don't know what you mean by a tag release, but 3.10.0a5, with Windows and macOS installers should be coming soon and will include this. 3.10.0 should be out next September.

adorilson pushed a commit to adorilson/cpython that referenced this pull request Mar 13, 2021
For back-compatibility, make the new constructor parameter for public classes Function and Class
keyword-only with a default of None.

Co-authored-by: Aviral Srivastava <aviralsrivastava@Avirals-MacBook-Air.local
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type-feature A feature request or enhancement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants