basedpyright 1.28.3 → 1.28.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) hide show
  1. package/dist/pyright-langserver.js +1 -1
  2. package/dist/pyright-langserver.js.map +1 -1
  3. package/dist/pyright.js +1 -1
  4. package/dist/pyright.js.map +1 -1
  5. package/dist/typeshed-fallback/commit.txt +1 -1
  6. package/dist/typeshed-fallback/stdlib/_hashlib.pyi +15 -2
  7. package/dist/typeshed-fallback/stdlib/_socket.pyi +2 -2
  8. package/dist/typeshed-fallback/stdlib/_typeshed/__init__.pyi +7 -4
  9. package/dist/typeshed-fallback/stdlib/asyncio/__init__.pyi +2 -178
  10. package/dist/typeshed-fallback/stdlib/asyncio/base_events.pyi +3 -2
  11. package/dist/typeshed-fallback/stdlib/asyncio/events.pyi +3 -2
  12. package/dist/typeshed-fallback/stdlib/builtins.pyi +51 -33
  13. package/dist/typeshed-fallback/stdlib/configparser.pyi +61 -42
  14. package/dist/typeshed-fallback/stdlib/contextlib.pyi +5 -5
  15. package/dist/typeshed-fallback/stdlib/distutils/cmd.pyi +1 -1
  16. package/dist/typeshed-fallback/stdlib/distutils/dist.pyi +3 -3
  17. package/dist/typeshed-fallback/stdlib/distutils/fancy_getopt.pyi +15 -5
  18. package/dist/typeshed-fallback/stdlib/functools.pyi +18 -13
  19. package/dist/typeshed-fallback/stdlib/getopt.pyi +15 -3
  20. package/dist/typeshed-fallback/stdlib/hashlib.pyi +2 -1
  21. package/dist/typeshed-fallback/stdlib/heapq.pyi +2 -2
  22. package/dist/typeshed-fallback/stdlib/hmac.pyi +2 -2
  23. package/dist/typeshed-fallback/stdlib/http/server.pyi +2 -1
  24. package/dist/typeshed-fallback/stdlib/importlib/metadata/__init__.pyi +1 -1
  25. package/dist/typeshed-fallback/stdlib/importlib/readers.pyi +11 -7
  26. package/dist/typeshed-fallback/stdlib/inspect.pyi +10 -10
  27. package/dist/typeshed-fallback/stdlib/logging/config.pyi +6 -1
  28. package/dist/typeshed-fallback/stdlib/math.pyi +33 -3
  29. package/dist/typeshed-fallback/stdlib/multiprocessing/connection.pyi +9 -9
  30. package/dist/typeshed-fallback/stdlib/pathlib.pyi +13 -9
  31. package/dist/typeshed-fallback/stdlib/pkgutil.pyi +6 -6
  32. package/dist/typeshed-fallback/stdlib/shutil.pyi +9 -5
  33. package/dist/typeshed-fallback/stdlib/socketserver.pyi +8 -8
  34. package/dist/typeshed-fallback/stdlib/statistics.pyi +14 -15
  35. package/dist/typeshed-fallback/stdlib/tarfile.pyi +181 -162
  36. package/dist/typeshed-fallback/stdlib/types.pyi +27 -4
  37. package/dist/typeshed-fallback/stdlib/typing.pyi +10 -7
  38. package/dist/typeshed-fallback/stdlib/typing_extensions.pyi +95 -48
  39. package/dist/typeshed-fallback/stdlib/unittest/case.pyi +5 -1
  40. package/dist/typeshed-fallback/stdlib/xml/dom/NodeFilter.pyi +7 -4
  41. package/dist/typeshed-fallback/stdlib/xml/dom/__init__.pyi +84 -53
  42. package/dist/typeshed-fallback/stdlib/xml/dom/expatbuilder.pyi +66 -45
  43. package/dist/typeshed-fallback/stdlib/xml/dom/minidom.pyi +524 -193
  44. package/dist/typeshed-fallback/stdlib/xml/dom/pulldom.pyi +70 -55
  45. package/dist/typeshed-fallback/stdlib/xml/dom/xmlbuilder.pyi +20 -49
  46. package/dist/typeshed-fallback/stdlib/xml/etree/ElementInclude.pyi +13 -10
  47. package/dist/typeshed-fallback/stdlib/xml/etree/ElementPath.pyi +19 -12
  48. package/dist/typeshed-fallback/stdlib/xml/etree/ElementTree.pyi +83 -41
  49. package/dist/typeshed-fallback/stdlib/xml/sax/_exceptions.pyi +5 -5
  50. package/dist/typeshed-fallback/stdlib/xml/sax/expatreader.pyi +53 -24
  51. package/dist/typeshed-fallback/stdlib/xml/sax/handler.pyi +48 -17
  52. package/dist/typeshed-fallback/stdlib/xml/sax/saxutils.pyi +24 -16
  53. package/dist/typeshed-fallback/stdlib/xml/sax/xmlreader.pyi +59 -56
  54. package/dist/typeshed-fallback/stdlib/zipfile/__init__.pyi +0 -8
  55. package/dist/typeshed-fallback/stdlib/zipfile/_path/__init__.pyi +32 -52
  56. package/dist/typeshed-fallback/stubs/Deprecated/deprecated/classic.pyi +6 -1
  57. package/dist/typeshed-fallback/stubs/Deprecated/deprecated/sphinx.pyi +1 -0
  58. package/dist/typeshed-fallback/stubs/Pygments/METADATA.toml +1 -1
  59. package/dist/typeshed-fallback/stubs/Pygments/pygments/plugin.pyi +11 -3
  60. package/dist/typeshed-fallback/stubs/RPi.GPIO/RPi/GPIO/__init__.pyi +1 -1
  61. package/dist/typeshed-fallback/stubs/WTForms/wtforms/validators.pyi +13 -5
  62. package/dist/typeshed-fallback/stubs/WebOb/webob/__init__.pyi +15 -0
  63. package/dist/typeshed-fallback/stubs/WebOb/webob/_types.pyi +21 -0
  64. package/dist/typeshed-fallback/stubs/WebOb/webob/acceptparse.pyi +496 -285
  65. package/dist/typeshed-fallback/stubs/WebOb/webob/byterange.pyi +2 -0
  66. package/dist/typeshed-fallback/stubs/WebOb/webob/cachecontrol.pyi +75 -75
  67. package/dist/typeshed-fallback/stubs/WebOb/webob/client.pyi +2 -0
  68. package/dist/typeshed-fallback/stubs/WebOb/webob/compat.pyi +24 -0
  69. package/dist/typeshed-fallback/stubs/WebOb/webob/cookies.pyi +39 -34
  70. package/dist/typeshed-fallback/stubs/WebOb/webob/datetime_utils.pyi +16 -0
  71. package/dist/typeshed-fallback/stubs/WebOb/webob/dec.pyi +40 -40
  72. package/dist/typeshed-fallback/stubs/WebOb/webob/descriptors.pyi +23 -34
  73. package/dist/typeshed-fallback/stubs/WebOb/webob/etag.pyi +11 -18
  74. package/dist/typeshed-fallback/stubs/WebOb/webob/exc.pyi +70 -7
  75. package/dist/typeshed-fallback/stubs/WebOb/webob/headers.pyi +20 -2
  76. package/dist/typeshed-fallback/stubs/WebOb/webob/multidict.pyi +97 -31
  77. package/dist/typeshed-fallback/stubs/WebOb/webob/request.pyi +70 -79
  78. package/dist/typeshed-fallback/stubs/WebOb/webob/response.pyi +62 -62
  79. package/dist/typeshed-fallback/stubs/WebOb/webob/static.pyi +12 -9
  80. package/dist/typeshed-fallback/stubs/WebOb/webob/util.pyi +2 -5
  81. package/dist/typeshed-fallback/stubs/atheris/METADATA.toml +4 -0
  82. package/dist/typeshed-fallback/stubs/boltons/boltons/dictutils.pyi +1 -3
  83. package/dist/typeshed-fallback/stubs/boltons/boltons/tbutils.pyi +13 -13
  84. package/dist/typeshed-fallback/stubs/braintree/METADATA.toml +1 -1
  85. package/dist/typeshed-fallback/stubs/braintree/braintree/__init__.pyi +1 -0
  86. package/dist/typeshed-fallback/stubs/braintree/braintree/braintree_gateway.pyi +2 -0
  87. package/dist/typeshed-fallback/stubs/braintree/braintree/credit_card.pyi +1 -0
  88. package/dist/typeshed-fallback/stubs/braintree/braintree/error_codes.pyi +40 -0
  89. package/dist/typeshed-fallback/stubs/braintree/braintree/paypal_payment_resource.pyi +10 -0
  90. package/dist/typeshed-fallback/stubs/braintree/braintree/paypal_payment_resource_gateway.pyi +10 -0
  91. package/dist/typeshed-fallback/stubs/braintree/braintree/test/credit_card_numbers.pyi +1 -0
  92. package/dist/typeshed-fallback/stubs/braintree/braintree/test/nonces.pyi +1 -0
  93. package/dist/typeshed-fallback/stubs/cffi/METADATA.toml +2 -2
  94. package/dist/typeshed-fallback/stubs/cffi/_cffi_backend.pyi +8 -8
  95. package/dist/typeshed-fallback/stubs/cffi/cffi/recompiler.pyi +1 -0
  96. package/dist/typeshed-fallback/stubs/corus/METADATA.toml +4 -0
  97. package/dist/typeshed-fallback/stubs/dirhash/METADATA.toml +2 -0
  98. package/dist/typeshed-fallback/stubs/dirhash/dirhash/__init__.pyi +93 -0
  99. package/dist/typeshed-fallback/stubs/dirhash/dirhash/cli.pyi +5 -0
  100. package/dist/typeshed-fallback/stubs/fanstatic/METADATA.toml +1 -1
  101. package/dist/typeshed-fallback/stubs/fanstatic/fanstatic/registry.pyi +8 -3
  102. package/dist/typeshed-fallback/stubs/fpdf2/fpdf/fonts.pyi +2 -8
  103. package/dist/typeshed-fallback/stubs/geopandas/geopandas/geodataframe.pyi +1 -1
  104. package/dist/typeshed-fallback/stubs/geopandas/geopandas/io/sql.pyi +0 -3
  105. package/dist/typeshed-fallback/stubs/gevent/gevent/hub.pyi +1 -1
  106. package/dist/typeshed-fallback/stubs/gevent/gevent/libev/corecext.pyi +1 -1
  107. package/dist/typeshed-fallback/stubs/gevent/gevent/libev/corecffi.pyi +1 -1
  108. package/dist/typeshed-fallback/stubs/gevent/gevent/libuv/loop.pyi +1 -1
  109. package/dist/typeshed-fallback/stubs/google-cloud-ndb/METADATA.toml +0 -1
  110. package/dist/typeshed-fallback/stubs/greenlet/greenlet/_greenlet.pyi +5 -1
  111. package/dist/typeshed-fallback/stubs/hdbcli/hdbcli/dbapi.pyi +1 -1
  112. package/dist/typeshed-fallback/stubs/hnswlib/METADATA.toml +1 -1
  113. package/dist/typeshed-fallback/stubs/hnswlib/hnswlib.pyi +8 -6
  114. package/dist/typeshed-fallback/stubs/humanfriendly/METADATA.toml +3 -0
  115. package/dist/typeshed-fallback/stubs/ibm-db/METADATA.toml +1 -1
  116. package/dist/typeshed-fallback/stubs/icalendar/icalendar/__init__.pyi +6 -6
  117. package/dist/typeshed-fallback/stubs/mock/METADATA.toml +1 -1
  118. package/dist/typeshed-fallback/stubs/mock/mock/backports.pyi +6 -1
  119. package/dist/typeshed-fallback/stubs/mock/mock/mock.pyi +1 -1
  120. package/dist/typeshed-fallback/stubs/mysqlclient/MySQLdb/_mysql.pyi +32 -32
  121. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/__init__.pyi +3 -0
  122. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/approximation/clique.pyi +5 -4
  123. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/approximation/clustering_coefficient.pyi +3 -3
  124. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/approximation/connectivity.pyi +5 -3
  125. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/approximation/distance_measures.pyi +3 -3
  126. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/approximation/dominating_set.pyi +3 -4
  127. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/approximation/kcomponents.pyi +2 -1
  128. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/approximation/matching.pyi +2 -1
  129. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/approximation/maxcut.pyi +8 -2
  130. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/approximation/ramsey.pyi +2 -1
  131. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/approximation/steinertree.pyi +4 -2
  132. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/approximation/traveling_salesman.pyi +33 -23
  133. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/approximation/treewidth.pyi +4 -2
  134. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/approximation/vertex_cover.pyi +2 -3
  135. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/assortativity/connectivity.pyi +3 -1
  136. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/assortativity/correlation.pyi +6 -4
  137. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/assortativity/mixing.pyi +16 -8
  138. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/assortativity/neighbor_degree.pyi +7 -1
  139. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/assortativity/pairs.pyi +6 -3
  140. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/asteroidal.pyi +3 -2
  141. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/bipartite/__init__.pyi +1 -0
  142. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/bipartite/basic.pyi +8 -6
  143. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/bipartite/centrality.pyi +4 -3
  144. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/bipartite/cluster.pyi +5 -3
  145. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/bipartite/covering.pyi +3 -1
  146. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/bipartite/edgelist.pyi +13 -12
  147. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/bipartite/extendability.pyi +5 -0
  148. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/bipartite/generators.pyi +22 -8
  149. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/bipartite/matching.pyi +11 -5
  150. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/bipartite/matrix.pyi +9 -7
  151. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/bipartite/projection.pyi +9 -5
  152. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/bipartite/redundancy.pyi +3 -1
  153. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/bipartite/spectral.pyi +2 -3
  154. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/boundary.pyi +53 -58
  155. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/bridges.pyi +5 -6
  156. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/centrality/betweenness.pyi +7 -5
  157. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/centrality/betweenness_subset.pyi +10 -2
  158. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/centrality/closeness.pyi +7 -7
  159. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/centrality/current_flow_betweenness.pyi +9 -9
  160. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/centrality/current_flow_betweenness_subset.pyi +16 -3
  161. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/centrality/current_flow_closeness.pyi +2 -3
  162. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/centrality/eigenvector.pyi +10 -3
  163. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/centrality/flow_matrix.pyi +4 -0
  164. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/centrality/group.pyi +16 -12
  165. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/centrality/harmonic.pyi +3 -1
  166. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/centrality/katz.pyi +15 -10
  167. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/centrality/laplacian.pyi +6 -4
  168. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/centrality/load.pyi +3 -4
  169. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/centrality/percolation.pyi +6 -2
  170. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/centrality/reaching.pyi +9 -3
  171. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/centrality/second_order.pyi +2 -1
  172. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/centrality/subgraph_alg.pyi +5 -4
  173. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/centrality/trophic.pyi +5 -3
  174. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/centrality/voterank_alg.pyi +2 -3
  175. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/chordal.pyi +3 -3
  176. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/clique.pyi +9 -14
  177. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/cluster.pyi +10 -7
  178. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/coloring/equitable_coloring.pyi +2 -1
  179. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/coloring/greedy_coloring.pyi +2 -20
  180. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/communicability_alg.pyi +3 -2
  181. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/community/asyn_fluid.pyi +3 -3
  182. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/community/centrality.pyi +5 -2
  183. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/community/community_utils.pyi +2 -1
  184. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/community/divisive.pyi +5 -2
  185. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/community/kclique.pyi +2 -1
  186. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/community/kernighan_lin.pyi +7 -1
  187. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/community/label_propagation.pyi +4 -2
  188. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/community/louvain.pyi +13 -2
  189. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/community/lukes.pyi +2 -3
  190. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/community/modularity_max.pyi +3 -4
  191. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/community/quality.pyi +3 -2
  192. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/components/biconnected.pyi +5 -4
  193. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/components/connected.pyi +5 -4
  194. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/components/semiconnected.pyi +2 -3
  195. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/components/strongly_connected.pyi +5 -5
  196. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/components/weakly_connected.pyi +3 -3
  197. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/connectivity/connectivity.pyi +29 -23
  198. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/connectivity/cuts.pyi +21 -5
  199. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/connectivity/disjoint_paths.pyi +17 -16
  200. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/connectivity/edge_augmentation.pyi +5 -4
  201. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/connectivity/edge_kcomponents.pyi +7 -5
  202. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/connectivity/kcomponents.pyi +3 -2
  203. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/connectivity/kcutsets.pyi +5 -3
  204. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/connectivity/stoerwagner.pyi +2 -1
  205. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/core.pyi +9 -8
  206. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/covering.pyi +4 -2
  207. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/cuts.pyi +10 -9
  208. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/cycles.pyi +9 -6
  209. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/d_separation.pyi +3 -1
  210. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/dag.pyi +13 -10
  211. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/distance_measures.pyi +8 -9
  212. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/distance_regular.pyi +4 -3
  213. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/dominance.pyi +3 -2
  214. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/dominating.pyi +4 -2
  215. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/efficiency_measures.pyi +2 -1
  216. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/euler.pyi +8 -5
  217. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/flow/boykovkolmogorov.pyi +6 -7
  218. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/flow/capacityscaling.pyi +4 -1
  219. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/flow/dinitz_alg.pyi +6 -7
  220. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/flow/edmondskarp.pyi +6 -7
  221. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/flow/gomory_hu.pyi +3 -2
  222. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/flow/maxflow.pyi +34 -5
  223. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/flow/mincost.pyi +7 -4
  224. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/flow/networksimplex.pyi +3 -1
  225. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/flow/preflowpush.pyi +5 -6
  226. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/flow/shortestaugmentingpath.pyi +6 -7
  227. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/flow/utils.pyi +1 -0
  228. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/graph_hashing.pyi +12 -4
  229. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/graphical.pyi +9 -6
  230. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/hierarchy.pyi +1 -3
  231. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/hybrid.pyi +3 -2
  232. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/isolate.pyi +4 -3
  233. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/isomorphism/ismags.pyi +1 -0
  234. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/isomorphism/isomorph.pyi +11 -4
  235. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/isomorphism/isomorphvf2.pyi +5 -0
  236. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/isomorphism/temporalisomorphvf2.pyi +2 -0
  237. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/isomorphism/tree_isomorphism.pyi +2 -1
  238. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/isomorphism/vf2pp.pyi +6 -3
  239. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/isomorphism/vf2userfunc.pyi +2 -0
  240. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/link_analysis/hits_alg.pyi +9 -2
  241. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/link_analysis/pagerank_alg.pyi +16 -14
  242. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/link_prediction.pyi +9 -10
  243. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/lowest_common_ancestors.pyi +5 -3
  244. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/matching.pyi +7 -6
  245. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/minors/contraction.pyi +10 -7
  246. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/mis.pyi +6 -1
  247. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/moral.pyi +2 -1
  248. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/node_classification.pyi +3 -2
  249. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/non_randomness.pyi +2 -3
  250. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/operators/all.pyi +7 -4
  251. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/operators/binary.pyi +11 -11
  252. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/operators/product.pyi +14 -7
  253. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/operators/unary.pyi +2 -2
  254. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/planarity.pyi +6 -3
  255. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/polynomials.pyi +3 -2
  256. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/reciprocity.pyi +4 -3
  257. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/regular.pyi +4 -3
  258. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/richclub.pyi +3 -3
  259. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/shortest_paths/astar.pyi +22 -3
  260. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/shortest_paths/dense.pyi +7 -5
  261. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/shortest_paths/generic.pyi +33 -11
  262. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/shortest_paths/unweighted.pyi +9 -8
  263. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/shortest_paths/weighted.pyi +116 -30
  264. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/similarity.pyi +69 -55
  265. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/simple_paths.pyi +11 -8
  266. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/smallworld.pyi +6 -6
  267. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/smetric.pyi +2 -1
  268. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/sparsifiers.pyi +3 -3
  269. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/structuralholes.pyi +5 -3
  270. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/summarization.pyi +5 -3
  271. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/swap.pyi +8 -5
  272. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/threshold.pyi +3 -4
  273. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/time_dependent.pyi +5 -0
  274. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/tournament.pyi +8 -8
  275. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/traversal/beamsearch.pyi +5 -2
  276. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/traversal/breadth_first_search.pyi +16 -7
  277. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/traversal/depth_first_search.pyi +20 -8
  278. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/traversal/edgebfs.pyi +2 -3
  279. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/traversal/edgedfs.pyi +2 -3
  280. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/tree/branchings.pyi +13 -6
  281. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/tree/coding.pyi +8 -4
  282. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/tree/mst.pyi +22 -6
  283. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/tree/operations.pyi +2 -1
  284. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/tree/recognition.pyi +6 -4
  285. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/triads.pyi +11 -8
  286. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/vitality.pyi +2 -1
  287. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/voronoi.pyi +10 -1
  288. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/walks.pyi +5 -0
  289. package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/wiener.pyi +2 -3
  290. package/dist/typeshed-fallback/stubs/networkx/networkx/classes/coreviews.pyi +3 -1
  291. package/dist/typeshed-fallback/stubs/networkx/networkx/classes/graph.pyi +4 -3
  292. package/dist/typeshed-fallback/stubs/networkx/networkx/classes/multidigraph.pyi +2 -0
  293. package/dist/typeshed-fallback/stubs/networkx/networkx/classes/multigraph.pyi +3 -0
  294. package/dist/typeshed-fallback/stubs/networkx/networkx/classes/reportviews.pyi +39 -9
  295. package/dist/typeshed-fallback/stubs/networkx/networkx/generators/__init__.pyi +2 -0
  296. package/dist/typeshed-fallback/stubs/networkx/networkx/generators/time_series.pyi +4 -0
  297. package/dist/typeshed-fallback/stubs/passlib/passlib/hosts.pyi +3 -1
  298. package/dist/typeshed-fallback/stubs/peewee/peewee.pyi +19 -19
  299. package/dist/typeshed-fallback/stubs/protobuf/google/protobuf/descriptor.pyi +6 -0
  300. package/dist/typeshed-fallback/stubs/psycopg2/psycopg2/_psycopg.pyi +1 -1
  301. package/dist/typeshed-fallback/stubs/pycurl/METADATA.toml +1 -1
  302. package/dist/typeshed-fallback/stubs/pycurl/pycurl.pyi +18 -0
  303. package/dist/typeshed-fallback/stubs/pygit2/METADATA.toml +2 -0
  304. package/dist/typeshed-fallback/stubs/pyinstaller/PyInstaller/building/build_main.pyi +19 -7
  305. package/dist/typeshed-fallback/stubs/pyinstaller/PyInstaller/building/splash.pyi +18 -16
  306. package/dist/typeshed-fallback/stubs/pyinstaller/PyInstaller/utils/hooks/__init__.pyi +1 -1
  307. package/dist/typeshed-fallback/stubs/pynput/METADATA.toml +1 -1
  308. package/dist/typeshed-fallback/stubs/pynput/pynput/_util.pyi +4 -4
  309. package/dist/typeshed-fallback/stubs/pynput/pynput/keyboard/__init__.pyi +4 -2
  310. package/dist/typeshed-fallback/stubs/pynput/pynput/keyboard/_base.pyi +3 -0
  311. package/dist/typeshed-fallback/stubs/pynput/pynput/mouse/__init__.pyi +6 -3
  312. package/dist/typeshed-fallback/stubs/pyserial/serial/tools/miniterm.pyi +2 -2
  313. package/dist/typeshed-fallback/stubs/pytz/pytz/tzinfo.pyi +3 -3
  314. package/dist/typeshed-fallback/stubs/pywin32/METADATA.toml +1 -1
  315. package/dist/typeshed-fallback/stubs/pywin32/pythoncom.pyi +19 -2
  316. package/dist/typeshed-fallback/stubs/pywin32/win32/lib/win32con.pyi +4895 -4764
  317. package/dist/typeshed-fallback/stubs/pywin32/win32/lib/win32timezone.pyi +81 -42
  318. package/dist/typeshed-fallback/stubs/pywin32/win32/lib/winerror.pyi +7258 -2574
  319. package/dist/typeshed-fallback/stubs/pywin32/win32/servicemanager.pyi +1 -1
  320. package/dist/typeshed-fallback/stubs/pywin32/win32/win32trace.pyi +1 -1
  321. package/dist/typeshed-fallback/stubs/pywin32/win32/win32ts.pyi +1 -0
  322. package/dist/typeshed-fallback/stubs/pywin32/win32com/client/__init__.pyi +3 -1
  323. package/dist/typeshed-fallback/stubs/regex/regex/regex.pyi +5 -5
  324. package/dist/typeshed-fallback/stubs/requests/requests/__init__.pyi +12 -13
  325. package/dist/typeshed-fallback/stubs/requests-oauthlib/requests_oauthlib/oauth1_auth.pyi +3 -0
  326. package/dist/typeshed-fallback/stubs/setuptools/METADATA.toml +4 -3
  327. package/dist/typeshed-fallback/stubs/setuptools/distutils/ccompiler.pyi +11 -0
  328. package/dist/typeshed-fallback/stubs/setuptools/distutils/compilers/C/base.pyi +1 -0
  329. package/dist/typeshed-fallback/stubs/setuptools/distutils/compilers/C/errors.pyi +1 -0
  330. package/dist/typeshed-fallback/stubs/setuptools/distutils/compilers/C/msvc.pyi +1 -0
  331. package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/_msvccompiler.pyi +2 -21
  332. package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/archive_util.pyi +1 -1
  333. package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/ccompiler.pyi +13 -178
  334. package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/command/bdist_rpm.pyi +6 -6
  335. package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/command/build.pyi +2 -2
  336. package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/command/build_clib.pyi +2 -2
  337. package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/command/build_ext.pyi +2 -2
  338. package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/command/build_py.pyi +3 -3
  339. package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/command/install.pyi +5 -5
  340. package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/command/install_data.pyi +1 -1
  341. package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/command/install_lib.pyi +4 -4
  342. package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/command/install_scripts.pyi +2 -2
  343. package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/command/sdist.pyi +6 -6
  344. package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/compat/__init__.pyi +6 -1
  345. package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/compilers/C/base.pyi +196 -0
  346. package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/compilers/C/errors.pyi +6 -0
  347. package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/compilers/C/msvc.pyi +24 -0
  348. package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/dist.pyi +23 -20
  349. package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/errors.pyi +12 -6
  350. package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/filelist.pyi +12 -11
  351. package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/spawn.pyi +6 -1
  352. package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/util.pyi +6 -6
  353. package/dist/typeshed-fallback/stubs/setuptools/setuptools/command/bdist_wheel.pyi +0 -2
  354. package/dist/typeshed-fallback/stubs/simplejson/simplejson/encoder.pyi +1 -1
  355. package/dist/typeshed-fallback/stubs/six/six/moves/builtins.pyi +0 -1
  356. package/dist/typeshed-fallback/stubs/tqdm/METADATA.toml +4 -1
  357. package/dist/typeshed-fallback/stubs/tqdm/tqdm/asyncio.pyi +4 -3
  358. package/dist/typeshed-fallback/stubs/tqdm/tqdm/std.pyi +10 -3
  359. package/dist/typeshed-fallback/stubs/tree-sitter-languages/METADATA.toml +6 -0
  360. package/dist/typeshed-fallback/stubs/vobject/vobject/vcard.pyi +15 -8
  361. package/dist/typeshed-fallback/stubs/watchpoints/METADATA.toml +2 -0
  362. package/dist/typeshed-fallback/stubs/watchpoints/watchpoints/__init__.pyi +10 -0
  363. package/dist/typeshed-fallback/stubs/watchpoints/watchpoints/ast_monkey.pyi +3 -0
  364. package/dist/typeshed-fallback/stubs/watchpoints/watchpoints/util.pyi +6 -0
  365. package/dist/typeshed-fallback/stubs/watchpoints/watchpoints/watch.pyi +68 -0
  366. package/dist/typeshed-fallback/stubs/watchpoints/watchpoints/watch_element.pyi +56 -0
  367. package/dist/typeshed-fallback/stubs/watchpoints/watchpoints/watch_print.pyi +24 -0
  368. package/dist/typeshed-fallback/stubs/zstd/METADATA.toml +1 -1
  369. package/package.json +1 -1
  370. package/dist/typeshed-fallback/stubs/setuptools/pkg_resources/__init__.pyi +0 -543
  371. package/dist/typeshed-fallback/stubs/setuptools/pkg_resources/_vendored_packaging/__init__.pyi +0 -8
  372. package/dist/typeshed-fallback/stubs/setuptools/pkg_resources/_vendored_packaging/markers.pyi +0 -13
  373. package/dist/typeshed-fallback/stubs/setuptools/pkg_resources/_vendored_packaging/requirements.pyi +0 -14
  374. package/dist/typeshed-fallback/stubs/setuptools/pkg_resources/_vendored_packaging/specifiers.pyi +0 -66
  375. package/dist/typeshed-fallback/stubs/setuptools/pkg_resources/_vendored_packaging/version.pyi +0 -49
@@ -2,6 +2,8 @@ from collections.abc import Iterator
2
2
  from typing import overload
3
3
  from typing_extensions import Self
4
4
 
5
+ __all__ = ["Range", "ContentRange"]
6
+
5
7
  class Range:
6
8
  start: int | None
7
9
  end: int | None
@@ -1,96 +1,96 @@
1
- from collections.abc import Callable, MutableMapping
2
- from typing import Any, Generic, Literal, TypeVar, overload
3
- from typing_extensions import Self, TypeAlias
4
-
5
- from webob.request import Request
6
- from webob.response import Response
1
+ from _typeshed import SupportsItems
2
+ from collections.abc import Callable
3
+ from typing import Any, Generic, Literal, overload
4
+ from typing_extensions import Self, TypeVar
7
5
 
8
6
  _T = TypeVar("_T")
9
- _KT = TypeVar("_KT")
10
- _VT = TypeVar("_VT")
11
- _NoneLiteral = TypeVar("_NoneLiteral")
12
- _Type: TypeAlias = type
7
+ _DefaultT = TypeVar("_DefaultT", default=None)
8
+ _NoneLiteral = TypeVar("_NoneLiteral", default=None)
9
+ _ScopeT = TypeVar("_ScopeT", Literal["request"], Literal["response"], None, default=None)
10
+ _ScopeT2 = TypeVar("_ScopeT2", Literal["request"], Literal["response"], None)
13
11
 
14
- class UpdateDict(dict[_KT, _VT]):
12
+ class UpdateDict(dict[str, Any]):
15
13
  updated: Callable[..., Any] | None
16
14
  updated_args: tuple[Any, ...] | None
17
15
 
18
- class exists_property:
19
- prop: str
20
- type: str | None
21
- def __init__(self, prop: str, type: str | None = None) -> None: ...
16
+ class exists_property(Generic[_ScopeT]):
17
+ def __init__(self, prop: str, type: _ScopeT = ...) -> None: ...
22
18
  @overload
23
- def __get__(self, obj: None, type: _Type | None = None) -> Self: ...
19
+ def __get__(self, obj: None, type: type[CacheControl[Any]] | None = None) -> Self: ...
24
20
  @overload
25
- def __get__(self, obj: Any, type: _Type | None = None) -> bool: ...
26
- def __set__(self, obj: Any, value: bool | None) -> None: ...
27
- def __delete__(self, obj: Any) -> None: ...
28
-
29
- class value_property(Generic[_T, _NoneLiteral]):
30
- prop: str
31
- default: _T | None
32
- none: _NoneLiteral
33
- type: str | None
21
+ def __get__(self: exists_property[None], obj: CacheControl[Any], type: type[CacheControl[Any]] | None = None) -> bool: ...
34
22
  @overload
35
- def __init__(self, prop: str, default: None = None, none: None = None, type: str | None = None) -> None: ...
23
+ def __get__(self, obj: CacheControl[_ScopeT], type: type[CacheControl[Any]] | None = None) -> bool: ...
36
24
  @overload
37
- def __init__(self, prop: str, default: _T, none: _NoneLiteral, type: str | None = None) -> None: ...
25
+ def __set__(self: exists_property[None], obj: CacheControl[Any], value: bool | None) -> None: ...
38
26
  @overload
39
- def __get__(self, obj: None, type: _Type | None = None) -> Self: ...
27
+ def __set__(self, obj: CacheControl[_ScopeT], value: bool | None) -> None: ...
40
28
  @overload
41
- def __get__(self, obj: Any, type: _Type | None = None) -> _T | _NoneLiteral | None: ...
42
- def __set__(self, obj: Any, value: _T | Literal[True] | None) -> None: ...
43
- def __delete__(self, obj: Any) -> None: ...
44
-
45
- class _IntValueProperty(value_property[int, _NoneLiteral]):
46
- def __set__(self, obj: Any, value: int | None) -> None: ...
29
+ def __delete__(self, obj: CacheControl[Any]) -> None: ...
30
+ @overload
31
+ def __delete__(self, obj: CacheControl[_ScopeT]) -> None: ...
47
32
 
48
- class _BaseCacheControl:
49
- update_dict = UpdateDict
50
- properties: MutableMapping[str, Any]
51
- type: Literal["request", "response"] | None
52
- @classmethod
33
+ class value_property(Generic[_T, _DefaultT, _NoneLiteral, _ScopeT]):
34
+ def __init__(self, prop: str, default: _DefaultT = ..., none: _NoneLiteral = ..., type: _ScopeT = ...) -> None: ...
53
35
  @overload
54
- def parse(cls, header: str, updates_to: None = None, type: None = None) -> _AnyCacheControl: ...
55
- @classmethod
36
+ def __get__(self, obj: None, type: type[CacheControl[Any]] | None = None) -> Self: ...
56
37
  @overload
57
- def parse(cls, header: str, updates_to: Request, type: Literal["request"]) -> _RequestCacheControl: ...
58
- @classmethod
38
+ def __get__(
39
+ self: value_property[_T, _DefaultT, _NoneLiteral, None],
40
+ obj: CacheControl[Any] | None,
41
+ type: type[CacheControl[Any]] | None = None,
42
+ ) -> _T | _DefaultT | _NoneLiteral: ...
59
43
  @overload
60
- def parse(cls, header: str, updates_to: Response, type: Literal["response"]) -> _ResponseCacheControl: ...
61
-
62
- no_cache: value_property[str, Literal["*"]]
63
- no_store: exists_property
64
- no_transform: exists_property
65
- max_age: _IntValueProperty[Literal[-1]]
66
- def copy(self) -> Self: ...
67
-
68
- class _RequestCacheControl(_BaseCacheControl):
69
- type: Literal["request"]
70
- max_stale: _IntValueProperty[Literal["*"]]
71
- min_fresh: _IntValueProperty[None]
72
- only_if_cached: exists_property
73
-
74
- class _ResponseCacheControl(_BaseCacheControl):
75
- type: Literal["response"]
76
- public: exists_property
77
- private: value_property[str, Literal["*"]]
78
- must_revalidate: exists_property
79
- proxy_revalidate: exists_property
80
- s_maxage: _IntValueProperty[None]
81
- s_max_age: _IntValueProperty[None]
82
- stale_while_revalidate: _IntValueProperty[None]
83
- stale_if_error: _IntValueProperty[None]
84
-
85
- class _AnyCacheControl(_RequestCacheControl, _ResponseCacheControl):
86
- type: None # type: ignore[assignment]
44
+ def __get__(
45
+ self, obj: CacheControl[_ScopeT] | None, type: type[CacheControl[Any]] | None = None
46
+ ) -> _T | _DefaultT | _NoneLiteral: ...
47
+ @overload
48
+ def __set__(
49
+ self: value_property[_T, _DefaultT, _NoneLiteral, None],
50
+ obj: CacheControl[Any],
51
+ value: _T | _DefaultT | Literal[True] | None,
52
+ ) -> None: ...
53
+ @overload
54
+ def __set__(self, obj: CacheControl[_ScopeT], value: _T | _DefaultT | Literal[True] | None) -> None: ...
55
+ @overload
56
+ def __delete__(self, obj: CacheControl[Any]) -> None: ...
57
+ @overload
58
+ def __delete__(self, obj: CacheControl[_ScopeT]) -> None: ...
87
59
 
88
- class CacheControl(_AnyCacheControl):
60
+ class CacheControl(Generic[_ScopeT]):
61
+ header_value: str
62
+ update_dict: type[UpdateDict]
63
+ properties: dict[str, Any]
64
+ type: _ScopeT
65
+ def __init__(self, properties: dict[str, Any], type: _ScopeT) -> None: ...
89
66
  @overload
90
- def __init__(self: _AnyCacheControl, properties: MutableMapping[str, Any], type: None) -> None: ...
67
+ @classmethod
68
+ def parse(
69
+ cls, header: str, updates_to: Callable[[dict[str, Any]], Any] | None = None, type: None = None
70
+ ) -> CacheControl[None]: ...
91
71
  @overload
92
- def __init__(self: _RequestCacheControl, properties: MutableMapping[str, Any], type: Literal["request"]) -> None: ...
72
+ @classmethod
73
+ def parse(cls, header: str, updates_to: Callable[[dict[str, Any]], Any] | None, type: _ScopeT2) -> CacheControl[_ScopeT2]: ...
93
74
  @overload
94
- def __init__(self: _ResponseCacheControl, properties: MutableMapping[str, Any], type: Literal["response"]) -> None: ...
75
+ @classmethod
76
+ def parse(
77
+ cls, header: str, updates_to: Callable[[dict[str, Any]], Any] | None = None, *, type: _ScopeT2
78
+ ) -> CacheControl[_ScopeT2]: ...
79
+ max_stale: value_property[int, None, Literal["*"], Literal["request"]]
80
+ min_fresh: value_property[int, None, None, Literal["request"]]
81
+ only_if_cached: exists_property[Literal["request"]]
82
+ public: exists_property[Literal["response"]]
83
+ private: value_property[str, None, Literal["*"], Literal["response"]]
84
+ no_cache: value_property[str, None, Literal["*"], None]
85
+ no_store: exists_property[None]
86
+ no_transform: exists_property[None]
87
+ must_revalidate: exists_property[Literal["response"]]
88
+ proxy_revalidate: exists_property[Literal["response"]]
89
+ max_age: value_property[int, None, Literal[-1], None]
90
+ s_maxage: value_property[int, None, None, Literal["response"]]
91
+ s_max_age = s_maxage
92
+ stale_while_revalidate: value_property[int, None, None, Literal["response"]]
93
+ stale_if_error: value_property[int, None, None, Literal["response"]]
94
+ def copy(self) -> Self: ...
95
95
 
96
- def serialize_cache_control(properties: MutableMapping[str, Any] | _BaseCacheControl) -> str: ...
96
+ def serialize_cache_control(properties: SupportsItems[str, Any] | CacheControl[Any]) -> str: ...
@@ -3,6 +3,8 @@ from collections.abc import Iterable
3
3
  from http.client import HTTPConnection, HTTPMessage, HTTPSConnection
4
4
  from typing import ClassVar
5
5
 
6
+ __all__ = ["send_request_app", "SendRequest"]
7
+
6
8
  class SendRequest:
7
9
  def __init__(self, HTTPConnection: type[HTTPConnection] = ..., HTTPSConnection: type[HTTPSConnection] = ...) -> None: ...
8
10
  def __call__(self, environ: WSGIEnvironment, start_response: StartResponse) -> Iterable[bytes]: ...
@@ -0,0 +1,24 @@
1
+ import sys
2
+ from html import escape as escape
3
+ from io import FileIO, TextIOWrapper
4
+ from queue import Empty as Empty, Queue as Queue
5
+ from typing import IO
6
+
7
+ if sys.version_info >= (3, 13):
8
+ # NOTE: These are the only attributes we realistically care about
9
+ class cgi_FieldStorage:
10
+ filename: str
11
+ file: IO[bytes]
12
+ def make_file(self) -> TextIOWrapper | FileIO: ...
13
+
14
+ def parse_header(line: str) -> tuple[str, dict[str, str]]: ...
15
+
16
+ else:
17
+ from cgi import FieldStorage as _cgi_FieldStorage, parse_header as parse_header
18
+
19
+ class cgi_FieldStorage(_cgi_FieldStorage):
20
+ # NOTE: The only kinds of objects of this type the user is exposed to
21
+ # will contain a file with a filename. We're technically lying
22
+ # if people create their own instances, but that shouldn't happen
23
+ filename: str
24
+ file: IO[bytes]
@@ -1,15 +1,25 @@
1
1
  from _typeshed import sentinel
2
2
  from _typeshed.wsgi import WSGIEnvironment
3
- from collections.abc import Callable, Collection, ItemsView, Iterator, KeysView, MutableMapping, ValuesView
3
+ from collections.abc import Collection, ItemsView, Iterator, KeysView, MutableMapping, ValuesView
4
4
  from datetime import date, datetime, timedelta
5
- from hashlib import _Hash
5
+ from time import _TimeTuple, struct_time
6
6
  from typing import Any, Literal, Protocol, TypeVar, overload
7
7
  from typing_extensions import TypeAlias
8
8
 
9
- from webob.descriptors import _AsymmetricProperty
10
- from webob.request import Request
9
+ from webob._types import AsymmetricProperty
10
+ from webob.request import BaseRequest
11
11
  from webob.response import Response
12
12
 
13
+ __all__ = [
14
+ "Cookie",
15
+ "CookieProfile",
16
+ "SignedCookieProfile",
17
+ "SignedSerializer",
18
+ "JSONSerializer",
19
+ "Base64Serializer",
20
+ "make_cookie",
21
+ ]
22
+
13
23
  _T = TypeVar("_T")
14
24
  # we accept both the official spelling and the one used in the WebOb docs
15
25
  # the implementation compares after lower() so technically there are more
@@ -27,7 +37,7 @@ class RequestCookies(MutableMapping[str, str]):
27
37
  @overload
28
38
  def get(self, name: str, default: None = None) -> str | None: ...
29
39
  @overload
30
- def get(self, name: str, default: str | _T) -> str | _T: ...
40
+ def get(self, name: str, default: _T) -> str | _T: ...
31
41
  def __delitem__(self, name: str) -> None: ...
32
42
  def keys(self) -> KeysView[str]: ...
33
43
  def values(self) -> ValuesView[str]: ...
@@ -37,11 +47,11 @@ class RequestCookies(MutableMapping[str, str]):
37
47
  def __len__(self) -> int: ...
38
48
  def clear(self) -> None: ...
39
49
 
40
- class Cookie(dict[str, Morsel]):
50
+ class Cookie(dict[bytes, Morsel]):
41
51
  def __init__(self, input: str | None = None) -> None: ...
42
52
  def load(self, data: str) -> None: ...
43
- def add(self, key: str | bytes, val: str | bytes) -> Morsel: ...
44
- def __setitem__(self, key: str | bytes, val: str | bytes) -> Morsel: ... # type: ignore[override]
53
+ def add(self, key: str | bytes, val: str | bytes) -> Morsel | dict[bytes, bytes]: ...
54
+ def __setitem__(self, key: str | bytes, val: str | bytes) -> Morsel | dict[bytes, bytes]: ... # type: ignore[override]
45
55
  def serialize(self, full: bool = True) -> str: ...
46
56
  def values(self) -> list[Morsel]: ... # type: ignore[override]
47
57
  def __str__(self, full: bool = True) -> str: ...
@@ -62,17 +72,12 @@ class Morsel(dict[bytes, bytes | bool | None]):
62
72
  def comment(self) -> bytes | None: ...
63
73
  @comment.setter
64
74
  def comment(self, v: bytes | None) -> None: ...
65
- expires: _AsymmetricProperty[bytes | None, datetime | date | timedelta | int | str | bytes | None]
66
- max_age: _AsymmetricProperty[bytes | None, timedelta | int | str | bytes]
67
- @property
68
- def httponly(self) -> bool | None: ...
69
- @httponly.setter
70
- def httponly(self, v: bool) -> None: ...
71
- @property
72
- def secure(self) -> bool | None: ...
73
- @secure.setter
74
- def secure(self, v: bool) -> None: ...
75
- samesite: _AsymmetricProperty[bytes | None, _SameSitePolicy | None]
75
+ expires: AsymmetricProperty[bytes | None, datetime | date | timedelta | _TimeTuple | struct_time | int | str | bytes | None]
76
+ max_age: AsymmetricProperty[bytes | None, timedelta | int | str | bytes | None]
77
+ httponly: AsymmetricProperty[bool, bool | None]
78
+ secure: AsymmetricProperty[bool, bool | None]
79
+ samesite: AsymmetricProperty[bytes, _SameSitePolicy | bytes]
80
+ def __setitem__(self, k: str | bytes, v: bytes | bool | None) -> None: ...
76
81
  def serialize(self, full: bool = True) -> str: ...
77
82
  def __str__(self, full: bool = True) -> str: ...
78
83
 
@@ -82,8 +87,8 @@ def make_cookie(
82
87
  max_age: int | timedelta | None = None,
83
88
  path: str = "/",
84
89
  domain: str | None = None,
85
- secure: bool = False,
86
- httponly: bool = False,
90
+ secure: bool | None = False,
91
+ httponly: bool | None = False,
87
92
  comment: str | None = None,
88
93
  samesite: _SameSitePolicy | None = None,
89
94
  ) -> str: ...
@@ -99,14 +104,15 @@ class Base64Serializer:
99
104
  def loads(self, bstruct: bytes) -> Any: ...
100
105
 
101
106
  class SignedSerializer:
102
- salt: str
103
- secret: str
107
+ salt: str | bytes
108
+ secret: str | bytes
104
109
  hashalg: str
105
110
  salted_secret: bytes
106
- digestmod: Callable[[bytes], _Hash]
107
111
  digest_size: int
108
112
  serializer: _Serializer
109
- def __init__(self, secret: str, salt: str, hashalg: str = "sha512", serializer: _Serializer | None = None) -> None: ...
113
+ def __init__(
114
+ self, secret: str | bytes, salt: str | bytes, hashalg: str = "sha512", serializer: _Serializer | None = None
115
+ ) -> None: ...
110
116
  def dumps(self, appstruct: Any) -> bytes: ...
111
117
  def loads(self, bstruct: bytes) -> Any: ...
112
118
 
@@ -119,7 +125,7 @@ class CookieProfile:
119
125
  path: str
120
126
  domains: Collection[str] | None
121
127
  serializer: _Serializer
122
- request: Request | None
128
+ request: BaseRequest | None
123
129
  def __init__(
124
130
  self,
125
131
  cookie_name: str,
@@ -133,8 +139,8 @@ class CookieProfile:
133
139
  domains: Collection[str] | None = None,
134
140
  serializer: _Serializer | None = None,
135
141
  ) -> None: ...
136
- def __call__(self, request: Request) -> CookieProfile: ...
137
- def bind(self, request: Request) -> CookieProfile: ...
142
+ def __call__(self, request: BaseRequest) -> CookieProfile: ...
143
+ def bind(self, request: BaseRequest) -> CookieProfile: ...
138
144
  def get_value(self) -> Any | None: ...
139
145
  def set_cookies(
140
146
  self,
@@ -159,10 +165,9 @@ class CookieProfile:
159
165
  ) -> list[tuple[str, str]]: ...
160
166
 
161
167
  class SignedCookieProfile(CookieProfile):
162
- secret: str
163
- salt: str
168
+ secret: str | bytes
169
+ salt: str | bytes
164
170
  hashalg: str
165
- serializer: SignedSerializer
166
171
  original_serializer: _Serializer
167
172
  def __init__(
168
173
  self,
@@ -171,12 +176,12 @@ class SignedCookieProfile(CookieProfile):
171
176
  cookie_name: str,
172
177
  secure: bool = False,
173
178
  max_age: int | timedelta | None = None,
174
- httponly: bool = False,
179
+ httponly: bool | None = False,
175
180
  samesite: _SameSitePolicy | None = None,
176
181
  path: str = "/",
177
182
  domains: Collection[str] | None = None,
178
183
  hashalg: str = "sha512",
179
184
  serializer: _Serializer | None = None,
180
185
  ) -> None: ...
181
- def __call__(self, request: Request) -> SignedCookieProfile: ...
182
- def bind(self, request: Request) -> SignedCookieProfile: ...
186
+ def __call__(self, request: BaseRequest) -> SignedCookieProfile: ...
187
+ def bind(self, request: BaseRequest) -> SignedCookieProfile: ...
@@ -1,6 +1,22 @@
1
1
  from datetime import date, datetime, timedelta, tzinfo
2
2
  from time import _TimeTuple, struct_time
3
3
 
4
+ __all__ = [
5
+ "UTC",
6
+ "timedelta_to_seconds",
7
+ "year",
8
+ "month",
9
+ "week",
10
+ "day",
11
+ "hour",
12
+ "minute",
13
+ "second",
14
+ "parse_date",
15
+ "serialize_date",
16
+ "parse_date_delta",
17
+ "serialize_date_delta",
18
+ ]
19
+
4
20
  class _UTC(tzinfo):
5
21
  def dst(self, dt: datetime | None) -> timedelta: ...
6
22
  def utcoffset(self, dt: datetime | None) -> timedelta: ...
@@ -1,42 +1,42 @@
1
1
  from _typeshed.wsgi import StartResponse, WSGIApplication, WSGIEnvironment
2
2
  from collections.abc import Callable, Iterable, Mapping
3
- from typing import Any, Generic, TypeVar, overload
4
- from typing_extensions import Concatenate, Never, ParamSpec, Self, TypeAlias
3
+ from typing import Any, Generic, overload
4
+ from typing_extensions import Concatenate, Never, ParamSpec, Self, TypeAlias, TypeVar
5
5
 
6
- from webob.request import Request
6
+ from webob.request import BaseRequest, Request
7
7
  from webob.response import Response
8
8
 
9
+ __all__ = ["wsgify"]
10
+
9
11
  _AnyResponse: TypeAlias = Response | WSGIApplication | str | None
10
12
  _S = TypeVar("_S")
11
13
  _AppT = TypeVar("_AppT", bound=WSGIApplication)
12
14
  _AppT_contra = TypeVar("_AppT_contra", bound=WSGIApplication, contravariant=True)
13
- _RequestT = TypeVar("_RequestT", bound=Request)
14
- _RequestT_contra = TypeVar("_RequestT_contra", bound=Request, contravariant=True)
15
+ _RequestT = TypeVar("_RequestT", bound=BaseRequest)
16
+ _RequestT_contra = TypeVar("_RequestT_contra", bound=BaseRequest, default=Request, contravariant=True)
15
17
  _P = ParamSpec("_P")
16
18
  _P2 = ParamSpec("_P2")
17
19
 
18
- _RequestHandlerCallable: TypeAlias = Callable[Concatenate[_RequestT_contra, _P], _AnyResponse]
19
- _RequestHandlerMethod: TypeAlias = Callable[Concatenate[Any, _RequestT_contra, _P], _AnyResponse]
20
- _MiddlewareCallable: TypeAlias = Callable[Concatenate[_RequestT_contra, _AppT_contra, _P], _AnyResponse]
21
- _MiddlewareMethod: TypeAlias = Callable[Concatenate[Any, _RequestT_contra, _AppT_contra, _P], _AnyResponse]
22
- _RequestHandler: TypeAlias = _RequestHandlerCallable[_RequestT_contra, _P] | _RequestHandlerMethod[_RequestT_contra, _P]
23
- _Middleware: TypeAlias = (
24
- _MiddlewareCallable[_RequestT_contra, _AppT_contra, _P] | _MiddlewareMethod[_RequestT_contra, _AppT_contra, _P]
25
- )
20
+ _RequestHandlerCallable: TypeAlias = Callable[Concatenate[_RequestT, _P], _AnyResponse]
21
+ _RequestHandlerMethod: TypeAlias = Callable[Concatenate[Any, _RequestT, _P], _AnyResponse]
22
+ _MiddlewareCallable: TypeAlias = Callable[Concatenate[_RequestT, _AppT, _P], _AnyResponse]
23
+ _MiddlewareMethod: TypeAlias = Callable[Concatenate[Any, _RequestT, _AppT, _P], _AnyResponse]
24
+ _RequestHandler: TypeAlias = _RequestHandlerCallable[_RequestT, _P] | _RequestHandlerMethod[_RequestT, _P]
25
+ _Middleware: TypeAlias = _MiddlewareCallable[_RequestT, _AppT, _P] | _MiddlewareMethod[_RequestT, _AppT, _P]
26
26
 
27
- class wsgify(Generic[_RequestT_contra, _P]):
28
- RequestClass: type[Request]
27
+ class wsgify(Generic[_P, _RequestT_contra]):
28
+ RequestClass: type[_RequestT_contra]
29
29
  func: _RequestHandler[_RequestT_contra, _P] | None
30
30
  args: tuple[Any, ...]
31
31
  kwargs: dict[str, Any]
32
32
  middleware_wraps: WSGIApplication | None
33
33
  # NOTE: We disallow passing args/kwargs using this direct API, because
34
34
  # we can't really make it work as a decorator this way, these
35
- # arguments should only really be used indrectly through the
35
+ # arguments should only really be used indirectly through the
36
36
  # middleware decorator, where we can be more type safe
37
37
  @overload
38
38
  def __init__(
39
- self: wsgify[Request, []],
39
+ self: wsgify[[], Request],
40
40
  func: _RequestHandler[Request, []] | None = None,
41
41
  RequestClass: None = None,
42
42
  args: tuple[()] = (),
@@ -45,7 +45,7 @@ class wsgify(Generic[_RequestT_contra, _P]):
45
45
  ) -> None: ...
46
46
  @overload
47
47
  def __init__(
48
- self: wsgify[_RequestT_contra, []], # pyright: ignore[reportInvalidTypeVarUse] #11780
48
+ self: wsgify[[], _RequestT_contra], # pyright: ignore[reportInvalidTypeVarUse] #11780
49
49
  func: _RequestHandler[_RequestT_contra, []] | None,
50
50
  RequestClass: type[_RequestT_contra],
51
51
  args: tuple[()] = (),
@@ -54,7 +54,7 @@ class wsgify(Generic[_RequestT_contra, _P]):
54
54
  ) -> None: ...
55
55
  @overload
56
56
  def __init__(
57
- self: wsgify[_RequestT_contra, []], # pyright: ignore[reportInvalidTypeVarUse] #11780
57
+ self: wsgify[[], _RequestT_contra], # pyright: ignore[reportInvalidTypeVarUse] #11780
58
58
  func: _RequestHandler[_RequestT_contra, []] | None = None,
59
59
  *,
60
60
  RequestClass: type[_RequestT_contra],
@@ -64,7 +64,7 @@ class wsgify(Generic[_RequestT_contra, _P]):
64
64
  ) -> None: ...
65
65
  @overload
66
66
  def __init__(
67
- self: wsgify[Request, [_AppT_contra]],
67
+ self: wsgify[[_AppT_contra], Request],
68
68
  func: _Middleware[Request, _AppT_contra, []] | None = None,
69
69
  RequestClass: None = None,
70
70
  args: tuple[()] = (),
@@ -74,7 +74,7 @@ class wsgify(Generic[_RequestT_contra, _P]):
74
74
  ) -> None: ...
75
75
  @overload
76
76
  def __init__(
77
- self: wsgify[_RequestT_contra, [_AppT_contra]], # pyright: ignore[reportInvalidTypeVarUse] #11780
77
+ self: wsgify[[_AppT_contra], _RequestT_contra], # pyright: ignore[reportInvalidTypeVarUse] #11780
78
78
  func: _Middleware[_RequestT_contra, _AppT_contra, []] | None,
79
79
  RequestClass: type[_RequestT_contra],
80
80
  args: tuple[()] = (),
@@ -84,7 +84,7 @@ class wsgify(Generic[_RequestT_contra, _P]):
84
84
  ) -> None: ...
85
85
  @overload
86
86
  def __init__(
87
- self: wsgify[_RequestT_contra, [_AppT_contra]], # pyright: ignore[reportInvalidTypeVarUse] #11780
87
+ self: wsgify[[_AppT_contra], _RequestT_contra], # pyright: ignore[reportInvalidTypeVarUse] #11780
88
88
  func: _Middleware[_RequestT_contra, _AppT_contra, []] | None = None,
89
89
  *,
90
90
  RequestClass: type[_RequestT_contra],
@@ -93,7 +93,7 @@ class wsgify(Generic[_RequestT_contra, _P]):
93
93
  middleware_wraps: _AppT_contra,
94
94
  ) -> None: ...
95
95
  @overload
96
- def __get__(self, obj: None, type: type[_S]) -> _unbound_wsgify[_RequestT_contra, _P, _S]: ...
96
+ def __get__(self, obj: None, type: type[_S]) -> _unbound_wsgify[_P, _S, _RequestT_contra]: ...
97
97
  @overload
98
98
  def __get__(self, obj: object, type: type | None = None) -> Self: ...
99
99
  @overload
@@ -118,34 +118,34 @@ class wsgify(Generic[_RequestT_contra, _P]):
118
118
  @classmethod
119
119
  def middleware(
120
120
  cls, middle_func: None = None, app: None | _AppT = None, *_: _P.args, **kw: _P.kwargs
121
- ) -> _UnboundMiddleware[Any, _AppT, _P]: ...
121
+ ) -> _UnboundMiddleware[_P, _AppT, Any]: ...
122
122
  @overload
123
123
  @classmethod
124
124
  def middleware(
125
125
  cls, middle_func: _MiddlewareCallable[_RequestT, _AppT, _P2], app: None = None
126
- ) -> _MiddlewareFactory[_RequestT, _AppT, _P2]: ...
126
+ ) -> _MiddlewareFactory[_P2, _AppT, _RequestT]: ...
127
127
  @overload
128
128
  @classmethod
129
129
  def middleware(
130
130
  cls, middle_func: _MiddlewareMethod[_RequestT, _AppT, _P2], app: None = None
131
- ) -> _MiddlewareFactory[_RequestT, _AppT, _P2]: ...
131
+ ) -> _MiddlewareFactory[_P2, _AppT, _RequestT]: ...
132
132
  @overload
133
133
  @classmethod
134
134
  def middleware(
135
135
  cls, middle_func: _MiddlewareMethod[_RequestT, _AppT, _P2], app: None = None, *_: _P2.args, **kw: _P2.kwargs
136
- ) -> _MiddlewareFactory[_RequestT, _AppT, _P2]: ...
136
+ ) -> _MiddlewareFactory[_P2, _AppT, _RequestT]: ...
137
137
  @overload
138
138
  @classmethod
139
139
  def middleware(
140
140
  cls, middle_func: _MiddlewareMethod[_RequestT, _AppT, _P2], app: _AppT
141
- ) -> type[wsgify[_RequestT, Concatenate[_AppT, _P2]]]: ...
141
+ ) -> type[wsgify[Concatenate[_AppT, _P2], _RequestT]]: ...
142
142
  @overload
143
143
  @classmethod
144
144
  def middleware(
145
145
  cls, middle_func: _MiddlewareMethod[_RequestT, _AppT, _P2], app: _AppT, *_: _P2.args, **kw: _P2.kwargs
146
- ) -> type[wsgify[_RequestT, Concatenate[_AppT, _P2]]]: ...
146
+ ) -> type[wsgify[Concatenate[_AppT, _P2], _RequestT]]: ...
147
147
 
148
- class _unbound_wsgify(wsgify[_RequestT_contra, _P], Generic[_RequestT_contra, _P, _S]):
148
+ class _unbound_wsgify(wsgify[_P, _RequestT_contra], Generic[_P, _S, _RequestT_contra]):
149
149
  @overload # type: ignore[override]
150
150
  def __call__(self, __self: _S, env: WSGIEnvironment, /, start_response: StartResponse) -> Iterable[bytes]: ...
151
151
  @overload
@@ -155,13 +155,13 @@ class _unbound_wsgify(wsgify[_RequestT_contra, _P], Generic[_RequestT_contra, _P
155
155
  @overload
156
156
  def __call__(self, __self: _S, /, req: _RequestT_contra, *args: _P.args, **kw: _P.kwargs) -> _AnyResponse: ...
157
157
 
158
- class _UnboundMiddleware(Generic[_RequestT_contra, _AppT_contra, _P]):
159
- wrapper_class: type[wsgify[_RequestT_contra, Concatenate[_AppT_contra, _P]]]
158
+ class _UnboundMiddleware(Generic[_P, _AppT_contra, _RequestT_contra]):
159
+ wrapper_class: type[wsgify[Concatenate[_AppT_contra, _P], _RequestT_contra]]
160
160
  app: _AppT_contra | None
161
161
  kw: dict[str, Any]
162
162
  def __init__(
163
163
  self,
164
- wrapper_class: type[wsgify[_RequestT_contra, Concatenate[_AppT_contra, _P]]],
164
+ wrapper_class: type[wsgify[Concatenate[_AppT_contra, _P], _RequestT_contra]],
165
165
  app: _AppT_contra | None,
166
166
  kw: dict[str, Any],
167
167
  ) -> None: ...
@@ -170,19 +170,19 @@ class _UnboundMiddleware(Generic[_RequestT_contra, _AppT_contra, _P]):
170
170
  @overload
171
171
  def __call__(
172
172
  self, func: _Middleware[_RequestT_contra, _AppT_contra, _P], app: None = None
173
- ) -> wsgify[_RequestT_contra, Concatenate[_AppT_contra, _P]]: ...
173
+ ) -> wsgify[Concatenate[_AppT_contra, _P], _RequestT_contra]: ...
174
174
  @overload
175
175
  def __call__(
176
176
  self, func: _Middleware[_RequestT_contra, _AppT_contra, _P], app: _AppT_contra
177
- ) -> wsgify[_RequestT_contra, Concatenate[_AppT_contra, _P]]: ...
177
+ ) -> wsgify[Concatenate[_AppT_contra, _P], _RequestT_contra]: ...
178
178
 
179
- class _MiddlewareFactory(Generic[_RequestT_contra, _AppT_contra, _P]):
180
- wrapper_class: type[wsgify[_RequestT_contra, Concatenate[_AppT_contra, _P]]]
179
+ class _MiddlewareFactory(Generic[_P, _AppT_contra, _RequestT_contra]):
180
+ wrapper_class: type[wsgify[Concatenate[_AppT_contra, _P], _RequestT_contra]]
181
181
  middleware: _Middleware[_RequestT_contra, _AppT_contra, _P]
182
182
  kw: dict[str, Any]
183
183
  def __init__(
184
184
  self,
185
- wrapper_class: type[wsgify[_RequestT_contra, Concatenate[_AppT_contra, _P]]],
185
+ wrapper_class: type[wsgify[Concatenate[_AppT_contra, _P], _RequestT_contra]],
186
186
  middleware: _Middleware[_RequestT_contra, _AppT_contra, _P],
187
187
  kw: dict[str, Any],
188
188
  ) -> None: ...
@@ -191,6 +191,6 @@ class _MiddlewareFactory(Generic[_RequestT_contra, _AppT_contra, _P]):
191
191
  @overload
192
192
  def __call__(
193
193
  self, app: None = None, *_: _P.args, **config: _P.kwargs
194
- ) -> _MiddlewareFactory[_RequestT_contra, _AppT_contra, []]: ...
194
+ ) -> _MiddlewareFactory[[], _AppT_contra, _RequestT_contra]: ...
195
195
  @overload
196
- def __call__(self, app: _AppT_contra, *_: _P.args, **config: _P.kwargs) -> wsgify[_RequestT_contra, [_AppT_contra]]: ...
196
+ def __call__(self, app: _AppT_contra, *_: _P.args, **config: _P.kwargs) -> wsgify[[_AppT_contra], _RequestT_contra]: ...