Skip to content

add Optional to type hints when default is None#2139

Merged
wanghan-iapcm merged 1 commit into
deepmodeling:develfrom
njzjz:fix-typing-optional
Nov 29, 2022
Merged

add Optional to type hints when default is None#2139
wanghan-iapcm merged 1 commit into
deepmodeling:develfrom
njzjz:fix-typing-optional

Conversation

@njzjz

@njzjz njzjz commented Nov 28, 2022

Copy link
Copy Markdown
Member

script:

from glob import glob
import re

regex = re.compile(r"([^,\(\)= ]+):[ ]*((?!Optional)[^,\(\)= ]+)[ ]*=[ ]*None")

for ii in glob("deepmd/**/*.py", recursive=True):
    with open(ii, 'r') as ff:
        content = ff.read()        
    has_optional = "Optional" in content
    has_typing = "from typing" in content
        
    content, nsub = regex.subn(r"\1: Optional[\2] = None", content)
    if nsub > 0:
        if not has_optional:
            if has_typing:
                content = content.replace("from typing import", "from typing import Optional,")
            else:
                content = "from typing import Optional\n" + content
            
        with open(ii, 'w') as ff:
            ff.write(content)

Signed-off-by: Jinzhe Zeng <jinzhe.zeng@rutgers.edu>
@wanghan-iapcm wanghan-iapcm merged commit fe213b1 into deepmodeling:devel Nov 29, 2022
mingzhong15 pushed a commit to mingzhong15/deepmd-kit that referenced this pull request Jan 15, 2023
script:

```py
from glob import glob
import re

regex = re.compile(r"([^,\(\)= ]+):[ ]*((?!Optional)[^,\(\)= ]+)[ ]*=[ ]*None")

for ii in glob("deepmd/**/*.py", recursive=True):
    with open(ii, 'r') as ff:
        content = ff.read()
    has_optional = "Optional" in content
    has_typing = "from typing" in content

    content, nsub = regex.subn(r"\1: Optional[\2] = None", content)
    if nsub > 0:
        if not has_optional:
            if has_typing:
                content = content.replace("from typing import", "from typing import Optional,")
            else:
                content = "from typing import Optional\n" + content

        with open(ii, 'w') as ff:
            ff.write(content)
```

Signed-off-by: Jinzhe Zeng <jinzhe.zeng@rutgers.edu>
njzjz added a commit to njzjz/deepmd-kit that referenced this pull request Mar 2, 2023
This PR does the same thing as deepmodeling#2139.

Signed-off-by: Jinzhe Zeng <jinzhe.zeng@rutgers.edu>
wanghan-iapcm pushed a commit that referenced this pull request Mar 3, 2023
This PR does the same thing as #2139.

---------

Signed-off-by: Jinzhe Zeng <jinzhe.zeng@rutgers.edu>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants