Download .venv/Lib/site-packages/libpasteurize/fixes/fix_annotations.py from DrDavis/PythonProject1: direct link, hf CLI and curl.
- Browser
- Download file 1.58 kB
-
https://huggingface.co/DrDavis/PythonProject1/resolve/main/.venv/Lib/site-packages/libpasteurize/fixes/fix_annotations.py
- Command line
-
hf download hf://DrDavis/PythonProject1/.venv/Lib/site-packages/libpasteurize/fixes/fix_annotations.py
-
curl -L -o fix_annotations.py https://huggingface.co/DrDavis/PythonProject1/resolve/main/.venv/Lib/site-packages/libpasteurize/fixes/fix_annotations.py
1.58 kB
| u""" | |
| Fixer to remove function annotations | |
| """ | |
| from lib2to3 import fixer_base | |
| from lib2to3.pgen2 import token | |
| from lib2to3.fixer_util import syms | |
| warning_text = u"Removing function annotations completely." | |
| def param_without_annotations(node): | |
| return node.children[0] | |
| class FixAnnotations(fixer_base.BaseFix): | |
| warned = False | |
| def warn_once(self, node, reason): | |
| if not self.warned: | |
| self.warned = True | |
| self.warning(node, reason=reason) | |
| PATTERN = u""" | |
| funcdef< 'def' any parameters< '(' [params=any] ')' > ['->' ret=any] ':' any* > | |
| """ | |
| def transform(self, node, results): | |
| u""" | |
| This just strips annotations from the funcdef completely. | |
| """ | |
| params = results.get(u"params") | |
| ret = results.get(u"ret") | |
| if ret is not None: | |
| assert ret.prev_sibling.type == token.RARROW, u"Invalid return annotation" | |
| self.warn_once(node, reason=warning_text) | |
| ret.prev_sibling.remove() | |
| ret.remove() | |
| if params is None: return | |
| if params.type == syms.typedargslist: | |
| # more than one param in a typedargslist | |
| for param in params.children: | |
| if param.type == syms.tname: | |
| self.warn_once(node, reason=warning_text) | |
| param.replace(param_without_annotations(param)) | |
| elif params.type == syms.tname: | |
| # one param | |
| self.warn_once(node, reason=warning_text) | |
| params.replace(param_without_annotations(params)) | |