Skip to content
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

Add Arguments typing to Lambda & FunctionDef #1174

Merged
merged 2 commits into from Sep 15, 2021

Conversation

DanielNoord
Copy link
Collaborator

Steps

  • For new features or bug fixes, add a ChangeLog entry describing what your PR does.
  • Write a good description on what the PR does.

Description

This should fix some of the problems we were having with args.??? in #1170.
See this comment #1170 (comment)
This should make it possible to remove the disable's added in that PR.

/CC @cdce8p

Type of Changes

Type
βœ“ πŸ”¨ Refactoring

Related Issue

@DanielNoord DanielNoord mentioned this pull request Sep 15, 2021
2 tasks
Copy link
Member

@cdce8p cdce8p left a comment

Choose a reason for hiding this comment

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

Looks good overall. I'm going to merge that first. You should be able to remove the pylint: disable calls from #1170 then.


:type: Arguments or list
"""
self.args: Arguments
Copy link
Member

Choose a reason for hiding this comment

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

At some point we should probably enforce that postinit is actually called. Otherwise self.args might not be set when accessed. Task for another time. (It's somewhere on my long list.)

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This is already note the case.. Of the two places creating a FunctioDef only one does this. Oh well... πŸ˜„

Copy link
Member

@cdce8p cdce8p Sep 15, 2021

Choose a reason for hiding this comment

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

Which one do you mean? raw_building, objectmodel, and rebuilder are fine. Am I missing something? I didn't notice any errors while running the tests either.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

https://github.com/PyCQA/astroid/blob/9a7878a78a284571d3788afc42203089185cfcbf/astroid/raw_building.py#L127-L150

The postinit is called on Arguments, but the FunctionDef.postinit method is never called.

Copy link
Member

Choose a reason for hiding this comment

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

At least func.args is still assigned. So it won't break (just yet).

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Something to fix in the future I guess. Seems like the Lambda and FunctionDef class could use a refactor anyway.

Copy link
Member

Choose a reason for hiding this comment

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

Someday... Too many other things open at the moment πŸ˜ͺ

Copy link
Member

Choose a reason for hiding this comment

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

Someday... Too many other things open at the moment

Yeah let's finish up 2.11 first and the typing MR first. The code is getting better little by little and that's great, but let's merge what we did already. There are a lot of changes in those, and conflicts could become a problem.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I expect to have pylint-dev/pylint#4980 ready for review in 5-10 minutes!

@cdce8p cdce8p added this to the 2.8.1 milestone Sep 15, 2021
@cdce8p cdce8p added Maintenance Discussion or action around maintaining astroid or the dev workflow pylint-tested PRs that don't cause major regressions with pylint labels Sep 15, 2021
@cdce8p cdce8p merged commit 47529c4 into pylint-dev:main Sep 15, 2021
@DanielNoord DanielNoord deleted the typing-args branch September 15, 2021 14:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Maintenance Discussion or action around maintaining astroid or the dev workflow pylint-tested PRs that don't cause major regressions with pylint
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants