- Notifications
You must be signed in to change notification settings - Fork15
Description
Not going to suggest going through and adding type hints to all possible functions, but I think they would be especially useful on the i/o functions since you are traversing libraries and types - this would help the already good interoperability in mixed contexts where people are converting to and from different types, help people know what to expect with static analysis tools. I recognize that you might not have the correct packages imported/installed since they are optionals, but there are a few strategies that might work there -- splitting up the i/o module into a package with submodules where you try and import the necessary packages at the module level and then use string type hints:
something like...
IMPORTED=Falsetry:importnetworkxasnxfromnetworkx.classes.digraphimportDiGraphIMPORTED=TrueexceptImportErrorase:# probably some logging idkraiseedefto_networkx(m,edge_attribute:str='weight')->'DiGraph': ...
that's pretty clumsy but hopefully illustrates the idea.
part of:pyOpenSci/software-submission#81