9999_AsyncStreamT = TypeVar ("_AsyncStreamT" , bound = AsyncStream [Any ])
100100
101101if TYPE_CHECKING :
102- from httpx ._config import DEFAULT_TIMEOUT_CONFIG as HTTPX_DEFAULT_TIMEOUT
102+ from httpx ._config import (
103+ DEFAULT_TIMEOUT_CONFIG , # pyright: ignore[reportPrivateImportUsage]
104+ )
105+
106+ HTTPX_DEFAULT_TIMEOUT = DEFAULT_TIMEOUT_CONFIG
103107else :
104108 try :
105109 from httpx ._config import DEFAULT_TIMEOUT_CONFIG as HTTPX_DEFAULT_TIMEOUT
@@ -116,6 +120,7 @@ class PageInfo:
116120
117121 url : URL | NotGiven
118122 params : Query | NotGiven
123+ json : Body | NotGiven
119124
120125 @overload
121126 def __init__ (
@@ -131,19 +136,30 @@ def __init__(
131136 params : Query ,
132137 ) -> None : ...
133138
139+ @overload
140+ def __init__ (
141+ self ,
142+ * ,
143+ json : Body ,
144+ ) -> None : ...
145+
134146 def __init__ (
135147 self ,
136148 * ,
137149 url : URL | NotGiven = NOT_GIVEN ,
150+ json : Body | NotGiven = NOT_GIVEN ,
138151 params : Query | NotGiven = NOT_GIVEN ,
139152 ) -> None :
140153 self .url = url
154+ self .json = json
141155 self .params = params
142156
143157 @override
144158 def __repr__ (self ) -> str :
145159 if self .url :
146160 return f"{ self .__class__ .__name__ } (url={ self .url } )"
161+ if self .json :
162+ return f"{ self .__class__ .__name__ } (json={ self .json } )"
147163 return f"{ self .__class__ .__name__ } (params={ self .params } )"
148164
149165
@@ -192,6 +208,19 @@ def _info_to_options(self, info: PageInfo) -> FinalRequestOptions:
192208 options .url = str (url )
193209 return options
194210
211+ if not isinstance (info .json , NotGiven ):
212+ if not is_mapping (info .json ):
213+ raise TypeError ("Pagination is only supported with mappings" )
214+
215+ if not options .json_data :
216+ options .json_data = {** info .json }
217+ else :
218+ if not is_mapping (options .json_data ):
219+ raise TypeError ("Pagination is only supported with mappings" )
220+
221+ options .json_data = {** options .json_data , ** info .json }
222+ return options
223+
195224 raise ValueError ("Unexpected PageInfo state" )
196225
197226
0 commit comments