@@ -41,6 +41,10 @@ def async_iterable(self, type: str) -> str:
4141 def async_iterator (self , type : str ) -> str :
4242 raise NotImplementedError ()
4343
44+ @abc .abstractmethod
45+ def async_generator (self , type : str ) -> str :
46+ raise NotImplementedError ()
47+
4448 @abc .abstractmethod
4549 def imports (self ) -> Dict [str , Optional [Set [str ]]]:
4650 """
@@ -93,6 +97,10 @@ def async_iterator(self, type: str) -> str:
9397 self ._imports ["typing" ].add ("AsyncIterator" )
9498 return f"AsyncIterator[{ type } ]"
9599
100+ def async_generator (self , type : str ) -> str :
101+ self ._imports ["typing" ].add ("AsyncGenerator" )
102+ return f"AsyncGenerator[{ type } , None]"
103+
96104 def imports (self ) -> Dict [str , Optional [Set [str ]]]:
97105 return {k : v if v else None for k , v in self ._imports .items ()}
98106
@@ -129,6 +137,10 @@ def async_iterator(self, type: str) -> str:
129137 self ._imported = True
130138 return f"typing.AsyncIterator[{ type } ]"
131139
140+ def async_generator (self , type : str ) -> str :
141+ self ._imported = True
142+ return f"typing.AsyncGenerator[{ type } , None]"
143+
132144 def imports (self ) -> Dict [str , Optional [Set [str ]]]:
133145 if self ._imported :
134146 return {"typing" : None }
@@ -169,5 +181,9 @@ def async_iterator(self, type: str) -> str:
169181 self ._imports ["collections.abc" ].add ("AsyncIterator" )
170182 return f'"AsyncIterator[{ type } ]"'
171183
184+ def async_generator (self , type : str ) -> str :
185+ self ._imports ["collections.abc" ].add ("AsyncGenerator" )
186+ return f'"AsyncGenerator[{ type } , None]"'
187+
172188 def imports (self ) -> Dict [str , Optional [Set [str ]]]:
173189 return {k : v if v else None for k , v in self ._imports .items ()}
0 commit comments