Render type names as forward references if they haven't been defined yet.
(self, s: str)
| 138 | self.defined.add(name) |
| 139 | |
| 140 | def render_types(self, s: str) -> str: |
| 141 | """Render type names as forward references if they haven't been defined yet.""" |
| 142 | if not self.remaining: |
| 143 | return s |
| 144 | |
| 145 | # Add quotes to names that haven't been defined yet (forward references). |
| 146 | # Need to fix optionals because `"File" | None` is not a valid annotation. |
| 147 | # The whole annotation needs to be quoted (`"File | None"`). |
| 148 | s = re.sub(rf"\b({'|'.join(self.remaining)})\b", r'"\1"', s).replace( |
| 149 | '" | None', |
| 150 | ' | None"', |
| 151 | ) |
| 152 | return re.sub( |
| 153 | rf'list\["({"|".join(self.remaining)})"\] \| None', r'"list[\1] | None"', s |
| 154 | ) |
| 155 | |
| 156 | |
| 157 | _H = TypeVar("_H", bound=GraphQLNamedType) |
no test coverage detected