-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
[networkx] More precise annotation for nested tuples #14287
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
base: main
Are you sure you want to change the base?
Conversation
|
||
from networkx.classes.graph import Graph, _Node | ||
from networkx.exception import NetworkXException | ||
from networkx.utils.backends import _dispatchable | ||
|
||
__all__ = ["from_nested_tuple", "from_prufer_sequence", "NotATree", "to_nested_tuple", "to_prufer_sequence"] | ||
|
||
_NestedTuple: TypeAlias = tuple[_NestedTuple, ...] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should the RHS include a union with some other type? This currently only allows tuples with tuple entries (ultimately terminating with empty tuples)
Huh, apparently that's correct:
https://networkx.org/documentation/stable/reference/algorithms/generated/networkx.algorithms.tree.coding.from_nested_tuple.html#from-nested-tuple
Nevermind then! Sorry for the noise :-)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unless my understanding is wrong, there should indeed be no other types but only nested tuples:
https://networkx.org/documentation/stable/reference/algorithms/generated/networkx.algorithms.tree.coding.from_nested_tuple.html
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No worries, thanks for taking a look :)
This comment has been minimized.
This comment has been minimized.
Co-authored-by: Brian Schubert <brianm.schubert@gmail.com>
According to mypy_primer, this change has no effect on the checked open source code. 🤖🎉 |
|
||
from networkx.classes.graph import Graph, _Node | ||
from networkx.exception import NetworkXException | ||
from networkx.utils.backends import _dispatchable | ||
|
||
__all__ = ["from_nested_tuple", "from_prufer_sequence", "NotATree", "to_nested_tuple", "to_prufer_sequence"] | ||
|
||
_NestedTuple: TypeAlias = tuple[_NestedTuple, ...] | ||
|
||
class NotATree(NetworkXException): ... | ||
|
||
@_dispatchable | ||
def to_nested_tuple(T: Graph[_Node], root: _Node, canonical_form: bool = False): ... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
While we're here...
def to_nested_tuple(T: Graph[_Node], root: _Node, canonical_form: bool = False): ... | |
def to_nested_tuple(T: Graph[_Node], root: _Node, canonical_form: bool = False) -> _NestedTuple: ... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good, I wasn't sure if the return hints were left out for a reason
Followup to #14218 based on the suggestion by @Avasam.