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
@@ -1,34 +1,33 @@
1
1
  import datetime
2
2
  import io
3
- import sys
4
- from _typeshed import ExcInfo, ReadableBuffer, SupportsItems, SupportsKeysAndGetItem, SupportsNoArgReadline, SupportsRead
3
+ from _typeshed import OptExcInfo, SupportsKeysAndGetItem, SupportsNoArgReadline, SupportsRead, WriteableBuffer
5
4
  from _typeshed.wsgi import WSGIApplication, WSGIEnvironment
6
5
  from collections.abc import Iterable, Mapping
7
6
  from re import Pattern
8
- from tempfile import _TemporaryFileWrapper
9
7
  from typing import IO, Any, ClassVar, Literal, Protocol, TypedDict, TypeVar, overload
10
8
  from typing_extensions import Self, TypeAlias
11
9
 
10
+ from webob._types import AsymmetricProperty, AsymmetricPropertyWithDelete, SymmetricProperty, SymmetricPropertyWithDelete
12
11
  from webob.acceptparse import _AcceptCharsetProperty, _AcceptEncodingProperty, _AcceptLanguageProperty, _AcceptProperty
13
12
  from webob.byterange import Range
14
- from webob.cachecontrol import _RequestCacheControl
13
+ from webob.cachecontrol import CacheControl
14
+ from webob.client import SendRequest
15
+ from webob.compat import cgi_FieldStorage
15
16
  from webob.cookies import RequestCookies
16
- from webob.descriptors import _AsymmetricProperty, _AsymmetricPropertyWithDelete, _authorization, _DateProperty
17
+ from webob.descriptors import _authorization, _DateProperty
17
18
  from webob.etag import IfRange, IfRangeDate, _ETagProperty
18
19
  from webob.headers import EnvironHeaders
19
20
  from webob.multidict import GetDict, MultiDict, NestedMultiDict, NoVars
20
- from webob.response import Response, _HTTPHeader
21
+ from webob.response import Response
21
22
 
22
- if sys.version_info >= (3, 13):
23
- _FieldStorage: TypeAlias = Any
24
- else:
25
- from cgi import FieldStorage as _FieldStorage
23
+ __all__ = ["BaseRequest", "Request", "LegacyRequest"]
26
24
 
27
25
  _T = TypeVar("_T")
28
- _HTTPMethod: TypeAlias = Literal["GET", "HEAD", "POST", "PUT", "DELETE", "PATCH"]
26
+ _HTTPMethod: TypeAlias = Literal["GET", "HEAD", "POST", "PUT", "DELETE", "CONNECT", "OPTIONS", "TRACE", "PATCH"]
29
27
  _ListOrTuple: TypeAlias = list[_T] | tuple[_T, ...]
28
+ _RequestCacheControl: TypeAlias = CacheControl[Literal["request"]]
30
29
 
31
- class _SupportsReadAndNoArgReadline(SupportsRead[bytes], SupportsNoArgReadline[bytes], Protocol): ...
30
+ class _SupportsReadAndNoArgReadline(SupportsRead[str | bytes], SupportsNoArgReadline[str | bytes], Protocol): ...
32
31
 
33
32
  class _RequestCacheControlDict(TypedDict, total=False):
34
33
  max_stale: int
@@ -39,11 +38,7 @@ class _RequestCacheControlDict(TypedDict, total=False):
39
38
  no_transform: bool
40
39
  max_age: int
41
40
 
42
- # On py313 this subclasses `Any`, hence the type: ignore.
43
- # This is needed for the regr_test.py script, which uses --disallow-subclassing-any
44
- class _FieldStorageWithFile(_FieldStorage): # type: ignore[misc]
45
- file: IO[bytes]
46
- filename: str
41
+ _FieldStorageWithFile = cgi_FieldStorage
47
42
 
48
43
  class _NoDefault: ...
49
44
 
@@ -52,7 +47,6 @@ NoDefault: _NoDefault
52
47
  class BaseRequest:
53
48
  request_body_tempfile_limit: ClassVar[int]
54
49
  environ: WSGIEnvironment
55
- method: _HTTPMethod
56
50
  def __init__(self, environ: WSGIEnvironment, **kw: Any) -> None: ...
57
51
  @overload
58
52
  def encget(self, key: str, default: _T, encattr: str | None = None) -> str | _T: ...
@@ -66,44 +60,29 @@ class BaseRequest:
66
60
  def body_file(self) -> SupportsRead[bytes]: ...
67
61
  @body_file.setter
68
62
  def body_file(self, value: SupportsRead[bytes]) -> None: ...
69
- content_length: int | None
70
- body_file_raw: SupportsRead[bytes]
63
+ @body_file.deleter
64
+ def body_file(self) -> None: ...
65
+ content_length: SymmetricPropertyWithDelete[int | None]
66
+ body_file_raw: SymmetricProperty[SupportsRead[bytes]]
71
67
  is_body_seekable: bool
72
68
  @property
73
69
  def body_file_seekable(self) -> IO[bytes]: ...
74
- url_encoding: str
75
- @property
76
- def scheme(self) -> str | None: ...
77
- @scheme.setter
78
- def scheme(self, value: str | None) -> None: ...
79
- @property
80
- def http_version(self) -> str | None: ...
81
- @http_version.setter
82
- def http_version(self, value: str | None) -> None: ...
83
- remote_user: str | None
84
- remote_host: str | None
85
- remote_addr: str | None
86
- query_string: str
87
- @property
88
- def server_name(self) -> str | None: ...
89
- @server_name.setter
90
- def server_name(self, value: str | None) -> None: ...
91
- @property
92
- def server_port(self) -> int | None: ...
93
- @server_port.setter
94
- def server_port(self, value: int | None) -> None: ...
95
- script_name: str
96
- @property
97
- def path_info(self) -> str | None: ...
98
- @path_info.setter
99
- def path_info(self, value: str | None) -> None: ...
100
- uscript_name: str # bw compat
101
- @property
102
- def upath_info(self) -> str | None: ... # bw compat
103
- @upath_info.setter
104
- def upath_info(self, value: str | None) -> None: ... # bw compat
105
- content_type: str | None
106
- headers: _AsymmetricProperty[EnvironHeaders, SupportsItems[str, str] | Iterable[tuple[str, str]]]
70
+ url_encoding: AsymmetricPropertyWithDelete[str, str | None]
71
+ scheme: SymmetricProperty[str]
72
+ method: AsymmetricPropertyWithDelete[_HTTPMethod, _HTTPMethod | None]
73
+ http_version: SymmetricProperty[str]
74
+ remote_user: SymmetricPropertyWithDelete[str | None]
75
+ remote_host: SymmetricPropertyWithDelete[str | None]
76
+ remote_addr: SymmetricPropertyWithDelete[str | None]
77
+ query_string: AsymmetricPropertyWithDelete[str, str | None]
78
+ server_name: SymmetricProperty[str]
79
+ server_port: SymmetricProperty[int]
80
+ script_name: AsymmetricPropertyWithDelete[str, str | None]
81
+ path_info: SymmetricProperty[str]
82
+ uscript_name = script_name # bw compat
83
+ upath_info = path_info # bw compat
84
+ content_type: AsymmetricPropertyWithDelete[str, str | None]
85
+ headers: AsymmetricProperty[EnvironHeaders, SupportsKeysAndGetItem[str, str] | Iterable[tuple[str, str]]]
107
86
  @property
108
87
  def client_addr(self) -> str | None: ...
109
88
  @property
@@ -123,24 +102,29 @@ class BaseRequest:
123
102
  def relative_url(self, other_url: str, to_application: bool = False) -> str: ...
124
103
  def path_info_pop(self, pattern: Pattern[str] | None = None) -> str | None: ...
125
104
  def path_info_peek(self) -> str | None: ...
126
- urlvars: dict[str, str]
127
- urlargs: tuple[str]
105
+ urlvars: SymmetricPropertyWithDelete[dict[str, str]]
106
+ urlargs: SymmetricPropertyWithDelete[tuple[str, ...]]
128
107
  @property
129
108
  def is_xhr(self) -> bool: ...
130
- host: str
109
+ host: SymmetricPropertyWithDelete[str]
131
110
  @property
132
111
  def domain(self) -> str: ...
133
- body: bytes
134
- json: Any
135
- json_body: Any
136
- text: str
112
+ @property
113
+ def body(self) -> bytes: ...
114
+ @body.setter
115
+ def body(self, value: bytes | None) -> None: ...
116
+ @body.deleter
117
+ def body(self) -> None: ...
118
+ json: SymmetricPropertyWithDelete[Any]
119
+ json_body: SymmetricPropertyWithDelete[Any]
120
+ text: SymmetricPropertyWithDelete[str]
137
121
  @property
138
122
  def POST(self) -> MultiDict[str, str | _FieldStorageWithFile] | NoVars: ...
139
123
  @property
140
124
  def GET(self) -> GetDict: ...
141
125
  @property
142
126
  def params(self) -> NestedMultiDict[str, str | _FieldStorageWithFile]: ...
143
- cookies: _AsymmetricProperty[RequestCookies, SupportsKeysAndGetItem[str, str] | Iterable[tuple[str, str]]]
127
+ cookies: AsymmetricProperty[RequestCookies, SupportsKeysAndGetItem[str, str] | Iterable[tuple[str, str]]]
144
128
  def copy(self) -> Self: ...
145
129
  def copy_get(self) -> Self: ...
146
130
  @property
@@ -149,7 +133,7 @@ class BaseRequest:
149
133
  def is_body_readable(self, flag: bool) -> None: ...
150
134
  def make_body_seekable(self) -> None: ...
151
135
  def copy_body(self) -> None: ...
152
- def make_tempfile(self) -> _TemporaryFileWrapper[bytes]: ...
136
+ def make_tempfile(self) -> io.BufferedRandom: ...
153
137
  def remove_conditional_headers(
154
138
  self, remove_encoding: bool = True, remove_range: bool = True, remove_match: bool = True, remove_modified: bool = True
155
139
  ) -> None: ...
@@ -157,24 +141,24 @@ class BaseRequest:
157
141
  accept_charset: _AcceptCharsetProperty
158
142
  accept_encoding: _AcceptEncodingProperty
159
143
  accept_language: _AcceptLanguageProperty
160
- authorization: _AsymmetricPropertyWithDelete[_authorization | None, tuple[str, str | dict[str, str]] | list[Any] | str | None]
161
- cache_control: _AsymmetricPropertyWithDelete[
162
- _RequestCacheControl | None, _RequestCacheControl | _RequestCacheControlDict | str | None
144
+ authorization: AsymmetricPropertyWithDelete[_authorization | None, tuple[str, str | dict[str, str]] | list[Any] | str | None]
145
+ cache_control: AsymmetricPropertyWithDelete[
146
+ _RequestCacheControl, _RequestCacheControl | _RequestCacheControlDict | str | None
163
147
  ]
164
148
  if_match: _ETagProperty
165
149
  if_none_match: _ETagProperty
166
150
  date: _DateProperty
167
151
  if_modified_since: _DateProperty
168
152
  if_unmodified_since: _DateProperty
169
- if_range: _AsymmetricPropertyWithDelete[
170
- IfRange | IfRangeDate | None, IfRange | IfRangeDate | datetime.datetime | datetime.date | str | None
153
+ if_range: AsymmetricPropertyWithDelete[
154
+ IfRange | IfRangeDate, IfRange | IfRangeDate | datetime.datetime | datetime.date | str | None
171
155
  ]
172
- max_forwards: int | None
173
- pragma: str | None
174
- range: _AsymmetricPropertyWithDelete[Range | None, tuple[int, int | None] | list[int | None] | list[int] | str | None]
175
- referer: str | None
176
- referrer: str | None
177
- user_agent: str | None
156
+ max_forwards: SymmetricPropertyWithDelete[int | None]
157
+ pragma: SymmetricPropertyWithDelete[str | None]
158
+ range: AsymmetricPropertyWithDelete[Range | None, tuple[int, int | None] | list[int | None] | list[int] | str | None]
159
+ referer: SymmetricPropertyWithDelete[str | None]
160
+ referrer = referer
161
+ user_agent: SymmetricPropertyWithDelete[str | None]
178
162
  def as_bytes(self, skip_body: bool = False) -> bytes: ...
179
163
  def as_text(self) -> str: ...
180
164
  @classmethod
@@ -186,15 +170,21 @@ class BaseRequest:
186
170
  @overload
187
171
  def call_application(
188
172
  self, application: WSGIApplication, catch_exc_info: Literal[False] = False
189
- ) -> tuple[str, list[_HTTPHeader], Iterable[bytes]]: ...
173
+ ) -> tuple[str, list[tuple[str, str]], Iterable[bytes]]: ...
190
174
  @overload
191
175
  def call_application(
192
176
  self, application: WSGIApplication, catch_exc_info: Literal[True]
193
- ) -> tuple[str, list[_HTTPHeader], Iterable[bytes], ExcInfo | None]: ...
177
+ ) -> tuple[str, list[tuple[str, str]], Iterable[bytes], OptExcInfo | None]: ...
178
+ @overload
179
+ def call_application(
180
+ self, application: WSGIApplication, catch_exc_info: bool
181
+ ) -> (
182
+ tuple[str, list[tuple[str, str]], Iterable[bytes], OptExcInfo | None] | tuple[str, list[tuple[str, str]], Iterable[bytes]]
183
+ ): ...
194
184
  ResponseClass: type[Response]
195
185
  def send(self, application: WSGIApplication | None = None, catch_exc_info: bool = False) -> Response: ...
196
186
  get_response = send
197
- def make_default_send_app(self) -> WSGIApplication: ...
187
+ def make_default_send_app(self) -> SendRequest: ...
198
188
  @classmethod
199
189
  def blank(
200
190
  cls,
@@ -207,7 +197,7 @@ class BaseRequest:
207
197
  ) -> Self: ...
208
198
 
209
199
  class LegacyRequest(BaseRequest):
210
- @property
200
+ @property # type: ignore[override]
211
201
  def uscript_name(self) -> str: ...
212
202
  @uscript_name.setter
213
203
  def uscript_name(self, value: str) -> None: ...
@@ -242,13 +232,14 @@ class LimitedLengthFile(io.RawIOBase):
242
232
  maxlen: int
243
233
  remaining: int
244
234
  def __init__(self, file: SupportsRead[bytes], maxlen: int) -> None: ...
235
+ def fileno(self) -> int: ...
245
236
  @staticmethod
246
237
  def readable() -> Literal[True]: ...
247
- def readinto(self, buff: ReadableBuffer) -> int: ...
238
+ def readinto(self, buff: WriteableBuffer) -> int: ...
248
239
 
249
240
  class Transcoder:
250
241
  charset: str
251
242
  errors: str
252
243
  def __init__(self, charset: str, errors: str = "strict") -> None: ...
253
244
  def transcode_query(self, q: str) -> str: ...
254
- def transcode_fs(self, fs: _FieldStorage, content_type: str) -> io.BytesIO: ...
245
+ def transcode_fs(self, fs: cgi_FieldStorage, content_type: str) -> io.BytesIO: ...
@@ -2,23 +2,22 @@ from _typeshed import SupportsItems, SupportsRead
2
2
  from _typeshed.wsgi import StartResponse, WSGIApplication, WSGIEnvironment
3
3
  from collections.abc import Iterable, Iterator, Sequence
4
4
  from datetime import timedelta
5
- from typing import IO, Any, Literal, Protocol, TypedDict
6
- from typing_extensions import TypeAlias
5
+ from typing import IO, Any, Literal, Protocol, TypedDict, TypeVar, overload
6
+ from typing_extensions import Self, TypeAlias
7
7
 
8
+ from webob._types import AsymmetricProperty, AsymmetricPropertyWithDelete, SymmetricProperty, SymmetricPropertyWithDelete
8
9
  from webob.byterange import ContentRange
9
- from webob.cachecontrol import _ResponseCacheControl
10
+ from webob.cachecontrol import CacheControl
10
11
  from webob.cookies import _SameSitePolicy
11
- from webob.descriptors import (
12
- _AsymmetricProperty,
13
- _AsymmetricPropertyWithDelete,
14
- _authorization,
15
- _ContentRangeParams,
16
- _DateProperty,
17
- _ListProperty,
18
- )
12
+ from webob.descriptors import _authorization, _ContentRangeParams, _DateProperty, _ListProperty
19
13
  from webob.headers import ResponseHeaders
20
14
  from webob.request import Request
21
15
 
16
+ __all__ = ["Response"]
17
+
18
+ _ResponseT = TypeVar("_ResponseT", bound=Response)
19
+ _ResponseCacheControl: TypeAlias = CacheControl[Literal["response"]]
20
+
22
21
  class _ResponseCacheExpires(Protocol):
23
22
  def __call__(
24
23
  self,
@@ -52,8 +51,6 @@ class _ResponseCacheControlDict(TypedDict, total=False):
52
51
  stale_while_revalidate: int
53
52
  stale_if_error: int
54
53
 
55
- _HTTPHeader: TypeAlias = tuple[str, str]
56
-
57
54
  class Response:
58
55
  default_content_type: str
59
56
  default_charset: str
@@ -62,69 +59,68 @@ class Response:
62
59
  default_body_encoding: str
63
60
  request: Request | None
64
61
  environ: WSGIEnvironment | None
65
- status: str
62
+ status: AsymmetricProperty[str, int | str | bytes]
66
63
  conditional_response: bool
67
-
68
64
  def __init__(
69
65
  self,
70
66
  body: bytes | str | None = None,
71
- status: str | None = None,
72
- headerlist: list[_HTTPHeader] | None = None,
73
- app_iter: Iterator[bytes] | None = None,
67
+ status: int | str | bytes | None = None,
68
+ headerlist: list[tuple[str, str]] | None = None,
69
+ app_iter: Iterable[bytes] | None = None,
74
70
  content_type: str | None = None,
75
71
  conditional_response: bool | None = None,
76
72
  charset: str = ...,
77
73
  **kw: Any,
78
74
  ) -> None: ...
79
75
  @classmethod
80
- def from_file(cls, fp: IO[str]) -> Response: ...
76
+ def from_file(cls, fp: IO[str] | IO[bytes]) -> Response: ...
81
77
  def copy(self) -> Response: ...
82
- status_code: int
83
- status_int: int
84
- headerlist: _AsymmetricPropertyWithDelete[list[_HTTPHeader], Iterable[_HTTPHeader] | SupportsItems[str, str]]
85
- headers: _AsymmetricProperty[ResponseHeaders, SupportsItems[str, str] | Iterable[tuple[str, str]]]
86
- body: bytes
87
- json: Any
88
- json_body: Any
78
+ status_code: SymmetricProperty[int]
79
+ status_int: SymmetricProperty[int]
80
+ headerlist: AsymmetricPropertyWithDelete[list[tuple[str, str]], Iterable[tuple[str, str]] | SupportsItems[str, str]]
81
+ headers: AsymmetricProperty[ResponseHeaders, SupportsItems[str, str] | Iterable[tuple[str, str]]]
82
+ body: SymmetricPropertyWithDelete[bytes]
83
+ json: SymmetricPropertyWithDelete[Any]
84
+ json_body: SymmetricPropertyWithDelete[Any]
89
85
  @property
90
86
  def has_body(self) -> bool: ...
91
- text: str
92
- unicode_body: str # deprecated
93
- ubody: str # deprecated
94
- body_file: _AsymmetricPropertyWithDelete[ResponseBodyFile, SupportsRead[bytes]]
95
- content_length: int | None
96
- def write(self, text: str | bytes) -> None: ...
97
- app_iter: Iterator[bytes]
87
+ text: SymmetricPropertyWithDelete[str]
88
+ unicode_body: SymmetricPropertyWithDelete[str] # deprecated
89
+ ubody: SymmetricPropertyWithDelete[str] # deprecated
90
+ body_file: AsymmetricPropertyWithDelete[ResponseBodyFile, SupportsRead[bytes]]
91
+ content_length: AsymmetricPropertyWithDelete[int | None, int | str | bytes | None]
92
+ def write(self, text: str | bytes) -> int: ...
93
+ app_iter: SymmetricPropertyWithDelete[Iterable[bytes]]
98
94
  allow: _ListProperty
99
95
  vary: _ListProperty
100
- content_encoding: str | None
101
- content_language: _ListProperty
102
- content_location: str | None
103
- content_md5: str | None
104
- content_disposition: str | None
105
- accept_ranges: str | None
106
- content_range: _AsymmetricPropertyWithDelete[ContentRange | None, _ContentRangeParams]
96
+ content_encoding: SymmetricPropertyWithDelete[str | None]
97
+ content_language: SymmetricPropertyWithDelete[str | None]
98
+ content_location: SymmetricPropertyWithDelete[str | None]
99
+ content_md5: SymmetricPropertyWithDelete[str | None]
100
+ content_disposition: SymmetricPropertyWithDelete[str | None]
101
+ accept_ranges: SymmetricPropertyWithDelete[str | None]
102
+ content_range: AsymmetricPropertyWithDelete[ContentRange | None, _ContentRangeParams]
107
103
  date: _DateProperty
108
104
  expires: _DateProperty
109
105
  last_modified: _DateProperty
110
- etag: _AsymmetricPropertyWithDelete[str | None, tuple[str, bool] | str | None]
106
+ etag: AsymmetricPropertyWithDelete[str | None, tuple[str, bool] | str | None]
111
107
  @property
112
108
  def etag_strong(self) -> str | None: ...
113
- location: str | None
114
- pragma: str | None
115
- age: int | None
109
+ location: SymmetricPropertyWithDelete[str | None]
110
+ pragma: SymmetricPropertyWithDelete[str | None]
111
+ age: SymmetricPropertyWithDelete[int | None]
116
112
  retry_after: _DateProperty
117
- server: str | None
118
- www_authenticate: _AsymmetricPropertyWithDelete[
113
+ server: SymmetricPropertyWithDelete[str | None]
114
+ www_authenticate: AsymmetricPropertyWithDelete[
119
115
  _authorization | None, tuple[str, str | dict[str, str]] | list[Any] | str | None
120
116
  ]
121
- charset: str | None
122
- content_type: str | None
123
- content_type_params: _AsymmetricPropertyWithDelete[dict[str, str], SupportsItems[str, str] | None]
117
+ charset: SymmetricPropertyWithDelete[str | None]
118
+ content_type: SymmetricPropertyWithDelete[str | None]
119
+ content_type_params: AsymmetricPropertyWithDelete[dict[str, str], SupportsItems[str, str] | None]
124
120
  def set_cookie(
125
121
  self,
126
- name: str,
127
- value: str | None = "",
122
+ name: str | bytes,
123
+ value: str | bytes | None = "",
128
124
  max_age: int | timedelta | None = None,
129
125
  path: str = "/",
130
126
  domain: str | None = None,
@@ -134,11 +130,14 @@ class Response:
134
130
  overwrite: bool = False,
135
131
  samesite: _SameSitePolicy | None = None,
136
132
  ) -> None: ...
137
- def delete_cookie(self, name: str, path: str = "/", domain: str | None = None) -> None: ...
138
- def unset_cookie(self, name: str, strict: bool = True) -> None: ...
139
- def merge_cookies(self, resp: Response | WSGIApplication) -> None: ...
140
- cache_control: _AsymmetricProperty[_ResponseCacheControl, _ResponseCacheControl | _ResponseCacheControlDict | str | None]
141
- cache_expires: _AsymmetricProperty[_ResponseCacheExpires, timedelta | int | bool | None]
133
+ def delete_cookie(self, name: str | bytes, path: str = "/", domain: str | None = None) -> None: ...
134
+ def unset_cookie(self, name: str | bytes, strict: bool = True) -> None: ...
135
+ @overload
136
+ def merge_cookies(self, resp: _ResponseT) -> _ResponseT: ...
137
+ @overload
138
+ def merge_cookies(self, resp: WSGIApplication) -> WSGIApplication: ...
139
+ cache_control: AsymmetricProperty[_ResponseCacheControl, _ResponseCacheControl | _ResponseCacheControlDict | str | None]
140
+ cache_expires: AsymmetricProperty[_ResponseCacheExpires, timedelta | int | bool | None]
142
141
  def encode_content(self, encoding: Literal["gzip", "identity"] = "gzip", lazy: bool = False) -> None: ...
143
142
  def decode_content(self) -> None: ...
144
143
  def md5_etag(self, body: bytes | None = None, set_content_md5: bool = False) -> None: ...
@@ -154,8 +153,9 @@ class ResponseBodyFile:
154
153
  def __init__(self, response: Response) -> None: ...
155
154
  @property
156
155
  def encoding(self) -> str | None: ...
156
+ # NOTE: Technically this is an instance attribute and not a method
157
157
  def write(self, text: str | bytes) -> int: ...
158
- def writelines(self, seq: Sequence[str | bytes]) -> int: ...
158
+ def writelines(self, seq: Sequence[str | bytes]) -> None: ...
159
159
  def flush(self) -> None: ...
160
160
  def tell(self) -> int: ...
161
161
 
@@ -163,15 +163,15 @@ class AppIterRange:
163
163
  app_iter: Iterator[bytes]
164
164
  start: int
165
165
  stop: int | None
166
- def __init__(self, app_iter: Iterator[bytes], start: int, stop: int | None) -> None: ...
167
- def __iter__(self) -> Iterator[bytes]: ...
166
+ def __init__(self, app_iter: Iterable[bytes], start: int, stop: int | None) -> None: ...
167
+ def __iter__(self) -> Self: ...
168
168
  def next(self) -> bytes: ...
169
169
  __next__ = next
170
170
  def close(self) -> None: ...
171
171
 
172
172
  class EmptyResponse:
173
- def __init__(self, app_iter: Iterator[bytes] | None = None) -> None: ...
174
- def __iter__(self) -> Iterator[bytes]: ...
175
- def __len__(self) -> int: ...
173
+ def __init__(self, app_iter: Iterable[bytes] | None = None) -> None: ...
174
+ def __iter__(self) -> Self: ...
175
+ def __len__(self) -> Literal[0]: ...
176
176
  def next(self) -> bytes: ...
177
177
  __next__ = next
@@ -1,4 +1,5 @@
1
- from _typeshed import StrOrBytesPath
1
+ from _typeshed import StrPath
2
+ from _typeshed.wsgi import WSGIApplication
2
3
  from collections.abc import Iterator
3
4
  from typing import IO, Any
4
5
 
@@ -6,14 +7,16 @@ from webob.dec import wsgify
6
7
  from webob.request import Request
7
8
  from webob.response import Response
8
9
 
10
+ __all__ = ["FileApp", "DirectoryApp"]
11
+
9
12
  BLOCK_SIZE: int
10
13
 
11
14
  class FileApp:
12
- filename: StrOrBytesPath
15
+ filename: StrPath
13
16
  kw: dict[str, Any]
14
- def __init__(self, filename: StrOrBytesPath, **kw: Any) -> None: ...
17
+ def __init__(self, filename: StrPath, **kw: Any) -> None: ...
15
18
  @wsgify
16
- def __call__(self, req: Request) -> Response: ...
19
+ def __call__(self, req: Request) -> WSGIApplication: ...
17
20
 
18
21
  class FileIter:
19
22
  file: IO[bytes]
@@ -24,14 +27,14 @@ class FileIter:
24
27
  __iter__ = app_iter_range
25
28
 
26
29
  class DirectoryApp:
27
- path: str | bytes
28
- index_page: str | None
30
+ path: StrPath
31
+ index_page: str
29
32
  hide_index_with_redirect: bool
30
33
  fileapp_kw: dict[str, Any]
31
34
  def __init__(
32
- self, path: StrOrBytesPath, index_page: str = "index.html", hide_index_with_redirect: bool = False, **kw: Any
35
+ self, path: StrPath, index_page: str = "index.html", hide_index_with_redirect: bool = False, **kw: Any
33
36
  ) -> None: ...
34
- def make_fileapp(self, path: StrOrBytesPath) -> FileApp: ...
37
+ def make_fileapp(self, path: StrPath) -> FileApp: ...
35
38
  @wsgify
36
39
  def __call__(self, req: Request) -> Response | FileApp: ...
37
- def index(self, req: Request, path: StrOrBytesPath) -> Response | FileApp: ...
40
+ def index(self, req: Request, path: StrPath) -> Response | FileApp: ...
@@ -1,10 +1,7 @@
1
1
  from collections.abc import Callable
2
- from typing import AnyStr, Protocol
2
+ from typing import AnyStr
3
3
 
4
- class _HasHTML(Protocol):
5
- def __html__(self) -> str: ...
6
-
7
- def html_escape(s: str | bytes | _HasHTML) -> str: ...
4
+ def html_escape(s: object) -> str: ...
8
5
  def header_docstring(header: str, rfc_section: str) -> str: ...
9
6
  def warn_deprecation(text: str, version: str, stacklevel: int) -> None: ...
10
7
 
@@ -4,3 +4,7 @@ partial_stub = true
4
4
 
5
5
  [tool.stubtest]
6
6
  ignore_missing_stub = true
7
+ # TODO (2025-03-05): unskip once `atheris` can be installed on `ubuntu-24.04`,
8
+ # see https://github.com/python/typeshed/pull/13582 and
9
+ # https://github.com/google/atheris/issues/82
10
+ skip = true
@@ -91,9 +91,7 @@ class FrozenDict(dict[_KT, _VT]):
91
91
  @classmethod
92
92
  def fromkeys(cls, keys: Iterable[_KT], value: _VT | None = None) -> Self: ... # type: ignore[override]
93
93
  def updated(self, *a, **kw) -> Self: ...
94
- # Can't noqa because of https://github.com/plinss/flake8-noqa/pull/30
95
- # Signature conflicts with superclass, so let's just omit it
96
- # def __ior__(self, *a, **kw) -> NoReturn: ...
94
+ def __ior__(self, *a, **kw) -> NoReturn: ... # type: ignore[misc] # noqa: Y034 # Signature conflicts with superclass
97
95
  def __setitem__(self, *a, **kw) -> NoReturn: ...
98
96
  def __delitem__(self, *a, **kw) -> NoReturn: ...
99
97
  def update(self, *a, **kw) -> NoReturn: ...
@@ -22,31 +22,31 @@ class Callpoint:
22
22
  def from_tb(cls, tb: TracebackType) -> Self: ...
23
23
  def tb_frame_str(self) -> str: ...
24
24
 
25
- _CallpointT = TypeVar("_CallpointT", bound=Callpoint, covariant=True, default=Callpoint)
25
+ _CallpointT_co = TypeVar("_CallpointT_co", bound=Callpoint, covariant=True, default=Callpoint)
26
26
 
27
- class TracebackInfo(Generic[_CallpointT]):
28
- callpoint_type: type[_CallpointT]
29
- frames: list[_CallpointT]
30
- def __init__(self, frames: list[_CallpointT]) -> None: ...
27
+ class TracebackInfo(Generic[_CallpointT_co]):
28
+ callpoint_type: type[_CallpointT_co]
29
+ frames: list[_CallpointT_co]
30
+ def __init__(self, frames: list[_CallpointT_co]) -> None: ...
31
31
  @classmethod
32
32
  def from_frame(cls, frame: FrameType | None = None, level: int = 1, limit: int | None = None) -> Self: ...
33
33
  @classmethod
34
34
  def from_traceback(cls, tb: TracebackType | None = None, limit: int | None = None) -> Self: ...
35
35
  @classmethod
36
- def from_dict(cls, d: Mapping[Literal["frames"], list[_CallpointT]]) -> Self: ...
37
- def to_dict(self) -> dict[str, list[dict[str, _CallpointT]]]: ...
36
+ def from_dict(cls, d: Mapping[Literal["frames"], list[_CallpointT_co]]) -> Self: ...
37
+ def to_dict(self) -> dict[str, list[dict[str, _CallpointT_co]]]: ...
38
38
  def __len__(self) -> int: ...
39
- def __iter__(self) -> Iterator[_CallpointT]: ...
39
+ def __iter__(self) -> Iterator[_CallpointT_co]: ...
40
40
  def get_formatted(self) -> str: ...
41
41
 
42
- _TracebackInfoT = TypeVar("_TracebackInfoT", bound=TracebackInfo, covariant=True, default=TracebackInfo)
42
+ _TracebackInfoT_co = TypeVar("_TracebackInfoT_co", bound=TracebackInfo, covariant=True, default=TracebackInfo)
43
43
 
44
- class ExceptionInfo(Generic[_TracebackInfoT]):
45
- tb_info_type: type[_TracebackInfoT]
44
+ class ExceptionInfo(Generic[_TracebackInfoT_co]):
45
+ tb_info_type: type[_TracebackInfoT_co]
46
46
  exc_type: str
47
47
  exc_msg: str
48
- tb_info: _TracebackInfoT
49
- def __init__(self, exc_type: str, exc_msg: str, tb_info: _TracebackInfoT) -> None: ...
48
+ tb_info: _TracebackInfoT_co
49
+ def __init__(self, exc_type: str, exc_msg: str, tb_info: _TracebackInfoT_co) -> None: ...
50
50
  @classmethod
51
51
  def from_exc_info(cls, exc_type: type[BaseException], exc_value: BaseException, traceback: TracebackType) -> Self: ...
52
52
  @classmethod
@@ -1,2 +1,2 @@
1
- version = "4.33.*"
1
+ version = "4.34.*"
2
2
  upstream_repository = "https://github.com/braintree/braintree_python"
@@ -49,6 +49,7 @@ from braintree.payment_method import PaymentMethod as PaymentMethod
49
49
  from braintree.payment_method_nonce import PaymentMethodNonce as PaymentMethodNonce
50
50
  from braintree.payment_method_parser import parse_payment_method as parse_payment_method
51
51
  from braintree.paypal_account import PayPalAccount as PayPalAccount
52
+ from braintree.paypal_payment_resource import PayPalPaymentResource as PayPalPaymentResource
52
53
  from braintree.plan import Plan as Plan
53
54
  from braintree.plan_gateway import PlanGateway as PlanGateway
54
55
  from braintree.processor_response_types import ProcessorResponseTypes as ProcessorResponseTypes
@@ -18,6 +18,7 @@ from braintree.oauth_gateway import OAuthGateway
18
18
  from braintree.payment_method_gateway import PaymentMethodGateway
19
19
  from braintree.payment_method_nonce_gateway import PaymentMethodNonceGateway
20
20
  from braintree.paypal_account_gateway import PayPalAccountGateway
21
+ from braintree.paypal_payment_resource_gateway import PayPalPaymentResourceGateway
21
22
  from braintree.plan_gateway import PlanGateway
22
23
  from braintree.sepa_direct_debit_account_gateway import SepaDirectDebitAccountGateway
23
24
  from braintree.settlement_batch_summary_gateway import SettlementBatchSummaryGateway
@@ -49,6 +50,7 @@ class BraintreeGateway:
49
50
  payment_method: PaymentMethodGateway
50
51
  payment_method_nonce: PaymentMethodNonceGateway
51
52
  paypal_account: PayPalAccountGateway
53
+ paypal_payment_resource: PayPalPaymentResourceGateway
52
54
  plan: PlanGateway
53
55
  sepa_direct_debit_account: SepaDirectDebitAccountGateway
54
56
  settlement_batch_summary: SettlementBatchSummaryGateway
@@ -54,6 +54,7 @@ class CreditCard(Resource):
54
54
  Payroll: type[CardTypeIndicator]
55
55
  Prepaid: type[CardTypeIndicator]
56
56
  ProductId: type[CardTypeIndicator]
57
+ PrepaidReloadable: type[CardTypeIndicator]
57
58
  @staticmethod
58
59
  def create(params: Incomplete | None = None): ...
59
60
  @staticmethod