pyfect-dev 0.1.0__py3-none-any.whl

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 (1265) hide show
  1. pyfect/__init__.py +729 -0
  2. pyfect/_all.py +242 -0
  3. pyfect/_background.py +28 -0
  4. pyfect/_binary_codecs.py +124 -0
  5. pyfect/_cached.py +165 -0
  6. pyfect/_catch.py +128 -0
  7. pyfect/_catch_reason.py +574 -0
  8. pyfect/_concurrency.py +291 -0
  9. pyfect/_context_effects.py +163 -0
  10. pyfect/_context_managers.py +76 -0
  11. pyfect/_core.py +368 -0
  12. pyfect/_digits.py +71 -0
  13. pyfect/_effect_args.py +46 -0
  14. pyfect/_effect_base.py +71 -0
  15. pyfect/_effect_concurrency.py +133 -0
  16. pyfect/_effect_eager.py +103 -0
  17. pyfect/_effect_errors.py +344 -0
  18. pyfect/_effect_folding.py +110 -0
  19. pyfect/_effect_hash.py +140 -0
  20. pyfect/_effect_logging.py +57 -0
  21. pyfect/_effect_metrics.py +102 -0
  22. pyfect/_effect_resources.py +179 -0
  23. pyfect/_effect_services.py +25 -0
  24. pyfect/_effect_timing.py +199 -0
  25. pyfect/_effect_tracing.py +99 -0
  26. pyfect/_equal.py +195 -0
  27. pyfect/_extras.py +43 -0
  28. pyfect/_fiber.py +969 -0
  29. pyfect/_fiber_all.py +134 -0
  30. pyfect/_fiber_collections.py +106 -0
  31. pyfect/_fn.py +706 -0
  32. pyfect/_hamt.py +174 -0
  33. pyfect/_interrupt_reason.py +33 -0
  34. pyfect/_isaac.py +149 -0
  35. pyfect/_iterables.py +231 -0
  36. pyfect/_js.py +263 -0
  37. pyfect/_js_date.py +87 -0
  38. pyfect/_json_text.py +286 -0
  39. pyfect/_json_value.py +9 -0
  40. pyfect/_layer_core.py +403 -0
  41. pyfect/_layer_for_life.py +33 -0
  42. pyfect/_layer_tracing.py +70 -0
  43. pyfect/_locked_ref.py +147 -0
  44. pyfect/_loop_thread.py +152 -0
  45. pyfect/_metric_ref.py +29 -0
  46. pyfect/_one_or_many.py +14 -0
  47. pyfect/_os_wait.py +118 -0
  48. pyfect/_path_posix.py +129 -0
  49. pyfect/_primitives.py +434 -0
  50. pyfect/_public.py +36 -0
  51. pyfect/_reasons.py +64 -0
  52. pyfect/_released.py +67 -0
  53. pyfect/_root.py +87 -0
  54. pyfect/_round_robin.py +73 -0
  55. pyfect/_some.py +17 -0
  56. pyfect/_stack.py +52 -0
  57. pyfect/_stack_frame.py +114 -0
  58. pyfect/_string_hash.py +35 -0
  59. pyfect/_subscriber_queue.py +47 -0
  60. pyfect/_tags.py +14 -0
  61. pyfect/_tracer_ref.py +21 -0
  62. pyfect/_tx_ops.py +77 -0
  63. pyfect/_unsubscripted.py +23 -0
  64. pyfect/_url.py +54 -0
  65. pyfect/_waiters.py +127 -0
  66. pyfect/_wake_tracking.py +98 -0
  67. pyfect/_wire_codec.py +123 -0
  68. pyfect/ai/__init__.py +73 -0
  69. pyfect/ai/_approvals.py +249 -0
  70. pyfect/ai/_decision_answers.py +185 -0
  71. pyfect/ai/_generated_client.py +298 -0
  72. pyfect/ai/_generated_support.py +84 -0
  73. pyfect/ai/_mcp/__init__.py +1 -0
  74. pyfect/ai/_mcp/batch.py +68 -0
  75. pyfect/ai/_mcp/client_transport.py +412 -0
  76. pyfect/ai/_mcp/client_wire.py +284 -0
  77. pyfect/ai/_mcp/core.py +490 -0
  78. pyfect/ai/_mcp/dispatch.py +1048 -0
  79. pyfect/ai/_mcp/http.py +462 -0
  80. pyfect/ai/_mcp/http_admission.py +269 -0
  81. pyfect/ai/_mcp/http_status.py +27 -0
  82. pyfect/ai/_mcp/input_wire.py +226 -0
  83. pyfect/ai/_mcp/log_levels.py +55 -0
  84. pyfect/ai/_mcp/param_headers.py +63 -0
  85. pyfect/ai/_mcp/projection.py +248 -0
  86. pyfect/ai/_mcp/register.py +683 -0
  87. pyfect/ai/_mcp/reverse_policy.py +155 -0
  88. pyfect/ai/_mcp/routing_header.py +24 -0
  89. pyfect/ai/_mcp/sessions.py +114 -0
  90. pyfect/ai/_mcp/stdio.py +110 -0
  91. pyfect/ai/_mcp/subscriptions.py +134 -0
  92. pyfect/ai/_mcp/tool_schema.py +35 -0
  93. pyfect/ai/_noul_answers.py +64 -0
  94. pyfect/ai/_openai_all_of.py +137 -0
  95. pyfect/ai/_openai_errors.py +233 -0
  96. pyfect/ai/_provider.py +439 -0
  97. pyfect/ai/_provider_tools.py +129 -0
  98. pyfect/ai/_stream_resolution.py +231 -0
  99. pyfect/ai/_structured_output_checks.py +138 -0
  100. pyfect/ai/_structured_output_codec.py +229 -0
  101. pyfect/ai/_structured_output_json.py +109 -0
  102. pyfect/ai/_tool_call_ids.py +80 -0
  103. pyfect/ai/ai_error.py +785 -0
  104. pyfect/ai/anthropic/__init__.py +28 -0
  105. pyfect/ai/anthropic/_errors.py +164 -0
  106. pyfect/ai/anthropic/_prompt.py +375 -0
  107. pyfect/ai/anthropic/_response.py +443 -0
  108. pyfect/ai/anthropic/_schema.py +206 -0
  109. pyfect/ai/anthropic/_stream.py +377 -0
  110. pyfect/ai/anthropic/_tools.py +248 -0
  111. pyfect/ai/anthropic/client.py +289 -0
  112. pyfect/ai/anthropic/config.py +32 -0
  113. pyfect/ai/anthropic/error.py +27 -0
  114. pyfect/ai/anthropic/language_model.py +366 -0
  115. pyfect/ai/anthropic/telemetry.py +51 -0
  116. pyfect/ai/anthropic/tool.py +570 -0
  117. pyfect/ai/anthropic_structured_output.py +138 -0
  118. pyfect/ai/chat.py +548 -0
  119. pyfect/ai/cloudflare/__init__.py +15 -0
  120. pyfect/ai/cloudflare/_errors.py +108 -0
  121. pyfect/ai/cloudflare/client.py +174 -0
  122. pyfect/ai/cloudflare/decision_model.py +117 -0
  123. pyfect/ai/cloudflare/schema.py +144 -0
  124. pyfect/ai/decision.py +290 -0
  125. pyfect/ai/decision_model.py +283 -0
  126. pyfect/ai/embedding_model.py +177 -0
  127. pyfect/ai/id_generator.py +79 -0
  128. pyfect/ai/language_model.py +1077 -0
  129. pyfect/ai/mcp_client.py +682 -0
  130. pyfect/ai/mcp_client_error.py +223 -0
  131. pyfect/ai/mcp_protocol.py +205 -0
  132. pyfect/ai/mcp_schema.py +1300 -0
  133. pyfect/ai/mcp_server.py +404 -0
  134. pyfect/ai/model.py +56 -0
  135. pyfect/ai/openai/__init__.py +49 -0
  136. pyfect/ai/openai/_errors.py +89 -0
  137. pyfect/ai/openai/_prompt.py +527 -0
  138. pyfect/ai/openai/_requests.py +34 -0
  139. pyfect/ai/openai/_response.py +569 -0
  140. pyfect/ai/openai/_schema.py +769 -0
  141. pyfect/ai/openai/_stream.py +771 -0
  142. pyfect/ai/openai/_tools.py +128 -0
  143. pyfect/ai/openai/_web_socket.py +295 -0
  144. pyfect/ai/openai/client.py +296 -0
  145. pyfect/ai/openai/client_generated.py +123 -0
  146. pyfect/ai/openai/config.py +34 -0
  147. pyfect/ai/openai/decision_model.py +177 -0
  148. pyfect/ai/openai/embedding_model.py +116 -0
  149. pyfect/ai/openai/error.py +8 -0
  150. pyfect/ai/openai/generated/__init__.py +7213 -0
  151. pyfect/ai/openai/generated/_recursive.py +18 -0
  152. pyfect/ai/openai/generated/_schemas_0.py +1015 -0
  153. pyfect/ai/openai/generated/_schemas_1.py +1016 -0
  154. pyfect/ai/openai/generated/_schemas_2.py +1017 -0
  155. pyfect/ai/openai/generated/_schemas_3.py +615 -0
  156. pyfect/ai/openai/generated/client.py +5298 -0
  157. pyfect/ai/openai/generated/types.py +8123 -0
  158. pyfect/ai/openai/language_model.py +304 -0
  159. pyfect/ai/openai/telemetry.py +19 -0
  160. pyfect/ai/openai/tool.py +391 -0
  161. pyfect/ai/openai_compat/__init__.py +25 -0
  162. pyfect/ai/openai_compat/_prompt.py +191 -0
  163. pyfect/ai/openai_compat/_request.py +153 -0
  164. pyfect/ai/openai_compat/_response.py +407 -0
  165. pyfect/ai/openai_compat/_schema.py +97 -0
  166. pyfect/ai/openai_compat/client.py +234 -0
  167. pyfect/ai/openai_compat/config.py +32 -0
  168. pyfect/ai/openai_compat/embedding_model.py +139 -0
  169. pyfect/ai/openai_compat/error.py +7 -0
  170. pyfect/ai/openai_compat/language_model.py +245 -0
  171. pyfect/ai/openai_compat/telemetry.py +51 -0
  172. pyfect/ai/openai_structured_output.py +118 -0
  173. pyfect/ai/openrouter/__init__.py +36 -0
  174. pyfect/ai/openrouter/_errors.py +186 -0
  175. pyfect/ai/openrouter/_prompt.py +272 -0
  176. pyfect/ai/openrouter/_response.py +226 -0
  177. pyfect/ai/openrouter/_stream.py +320 -0
  178. pyfect/ai/openrouter/client.py +283 -0
  179. pyfect/ai/openrouter/config.py +36 -0
  180. pyfect/ai/openrouter/decision_model.py +161 -0
  181. pyfect/ai/openrouter/error.py +23 -0
  182. pyfect/ai/openrouter/generated/__init__.py +3029 -0
  183. pyfect/ai/openrouter/generated/_recursive.py +15 -0
  184. pyfect/ai/openrouter/generated/_schemas_0.py +1015 -0
  185. pyfect/ai/openrouter/generated/_schemas_1.py +522 -0
  186. pyfect/ai/openrouter/generated/client.py +1445 -0
  187. pyfect/ai/openrouter/generated/types.py +4769 -0
  188. pyfect/ai/openrouter/language_model.py +345 -0
  189. pyfect/ai/openrouter/schema.py +165 -0
  190. pyfect/ai/prompt.py +664 -0
  191. pyfect/ai/response.py +768 -0
  192. pyfect/ai/response_id_tracker.py +82 -0
  193. pyfect/ai/telemetry.py +126 -0
  194. pyfect/ai/tokenizer.py +61 -0
  195. pyfect/ai/tool.py +536 -0
  196. pyfect/ai/toolkit.py +490 -0
  197. pyfect/ai/typesafe/__init__.py +17 -0
  198. pyfect/ai/typesafe/_errors.py +120 -0
  199. pyfect/ai/typesafe/client.py +146 -0
  200. pyfect/ai/typesafe/config.py +34 -0
  201. pyfect/ai/typesafe/decision_model.py +90 -0
  202. pyfect/ai/typesafe/schema.py +140 -0
  203. pyfect/batching/__init__.py +58 -0
  204. pyfect/batching/_api.py +71 -0
  205. pyfect/batching/_engine.py +229 -0
  206. pyfect/batching/_from_effect.py +76 -0
  207. pyfect/batching/_persisted.py +98 -0
  208. pyfect/batching/_request.py +133 -0
  209. pyfect/batching/_resolver.py +477 -0
  210. pyfect/batching/_with_cache.py +90 -0
  211. pyfect/big_decimal.py +500 -0
  212. pyfect/brand.py +114 -0
  213. pyfect/byte_size.py +354 -0
  214. pyfect/cache/__init__.py +29 -0
  215. pyfect/cache/_cache.py +426 -0
  216. pyfect/cache/_expiry.py +69 -0
  217. pyfect/cache/_scoped_cache.py +546 -0
  218. pyfect/case.py +174 -0
  219. pyfect/cause.py +462 -0
  220. pyfect/channel/__init__.py +155 -0
  221. pyfect/channel/_base.py +92 -0
  222. pyfect/channel/_catch.py +158 -0
  223. pyfect/channel/_catch_reason.py +572 -0
  224. pyfect/channel/_channel.py +158 -0
  225. pyfect/channel/_combinators.py +220 -0
  226. pyfect/channel/_concurrency_methods.py +217 -0
  227. pyfect/channel/_concurrent_map.py +118 -0
  228. pyfect/channel/_constructors.py +349 -0
  229. pyfect/channel/_context.py +232 -0
  230. pyfect/channel/_error_methods.py +336 -0
  231. pyfect/channel/_errors.py +180 -0
  232. pyfect/channel/_filters.py +225 -0
  233. pyfect/channel/_lifecycle.py +71 -0
  234. pyfect/channel/_lifecycle_methods.py +206 -0
  235. pyfect/channel/_loop.py +100 -0
  236. pyfect/channel/_merge.py +246 -0
  237. pyfect/channel/_repeat.py +154 -0
  238. pyfect/channel/_run.py +149 -0
  239. pyfect/channel/_run_methods.py +341 -0
  240. pyfect/channel/_sinks.py +88 -0
  241. pyfect/channel/_sources.py +238 -0
  242. pyfect/channel/_text.py +176 -0
  243. pyfect/channel/_transform_methods.py +415 -0
  244. pyfect/channel/_upstream.py +67 -0
  245. pyfect/channel_schema.py +131 -0
  246. pyfect/cli/__init__.py +79 -0
  247. pyfect/cli/_ansi.py +82 -0
  248. pyfect/cli/_command.py +469 -0
  249. pyfect/cli/_config.py +164 -0
  250. pyfect/cli/_environment.py +10 -0
  251. pyfect/cli/_help.py +195 -0
  252. pyfect/cli/_lexer.py +81 -0
  253. pyfect/cli/_parser.py +465 -0
  254. pyfect/cli/_settings.py +85 -0
  255. pyfect/cli/_suggest.py +33 -0
  256. pyfect/cli/_width.py +134 -0
  257. pyfect/cli/_wizard.py +317 -0
  258. pyfect/cli/argument.py +212 -0
  259. pyfect/cli/cli_config.py +40 -0
  260. pyfect/cli/cli_error.py +242 -0
  261. pyfect/cli/cli_output.py +305 -0
  262. pyfect/cli/command.py +440 -0
  263. pyfect/cli/completions/__init__.py +50 -0
  264. pyfect/cli/completions/_completer.ps1 +190 -0
  265. pyfect/cli/completions/_descriptor.py +182 -0
  266. pyfect/cli/completions/bash.py +300 -0
  267. pyfect/cli/completions/fish.py +164 -0
  268. pyfect/cli/completions/powershell.py +156 -0
  269. pyfect/cli/completions/zsh.py +189 -0
  270. pyfect/cli/flag.py +246 -0
  271. pyfect/cli/global_flag.py +99 -0
  272. pyfect/cli/help_doc.py +63 -0
  273. pyfect/cli/param.py +789 -0
  274. pyfect/cli/primitive.py +308 -0
  275. pyfect/cli/prompt/__init__.py +75 -0
  276. pyfect/cli/prompt/_auto_complete.py +205 -0
  277. pyfect/cli/prompt/_choices.py +104 -0
  278. pyfect/cli/prompt/_confirm.py +195 -0
  279. pyfect/cli/prompt/_core.py +512 -0
  280. pyfect/cli/prompt/_date.py +173 -0
  281. pyfect/cli/prompt/_date_parts.py +387 -0
  282. pyfect/cli/prompt/_file.py +372 -0
  283. pyfect/cli/prompt/_multi_select.py +204 -0
  284. pyfect/cli/prompt/_number.py +257 -0
  285. pyfect/cli/prompt/_select.py +117 -0
  286. pyfect/cli/prompt/_text.py +239 -0
  287. pyfect/cli/terminal_capabilities.py +118 -0
  288. pyfect/clock.py +150 -0
  289. pyfect/cluster/__init__.py +155 -0
  290. pyfect/cluster/_cluster_abandon.py +36 -0
  291. pyfect/cluster/_cluster_layer.py +122 -0
  292. pyfect/cluster/_entity_activation.py +16 -0
  293. pyfect/cluster/_entity_manager/__init__.py +22 -0
  294. pyfect/cluster/_entity_manager/_activation.py +540 -0
  295. pyfect/cluster/_entity_manager/_core.py +186 -0
  296. pyfect/cluster/_entity_manager/_decode.py +60 -0
  297. pyfect/cluster/_entity_manager/_manager.py +423 -0
  298. pyfect/cluster/_entity_manager/_state.py +113 -0
  299. pyfect/cluster/_entity_reaper.py +94 -0
  300. pyfect/cluster/_hash.py +13 -0
  301. pyfect/cluster/_interruptors.py +88 -0
  302. pyfect/cluster/_resource_map.py +179 -0
  303. pyfect/cluster/_resource_ref.py +266 -0
  304. pyfect/cluster/_shard_lock.py +14 -0
  305. pyfect/cluster/cluster_cron.py +230 -0
  306. pyfect/cluster/cluster_error.py +81 -0
  307. pyfect/cluster/cluster_http.py +210 -0
  308. pyfect/cluster/cluster_metrics.py +54 -0
  309. pyfect/cluster/cluster_schema.py +137 -0
  310. pyfect/cluster/cluster_socket.py +197 -0
  311. pyfect/cluster/cluster_workflow_engine/__init__.py +24 -0
  312. pyfect/cluster/cluster_workflow_engine/_engine.py +1099 -0
  313. pyfect/cluster/cluster_workflow_engine/_entities.py +298 -0
  314. pyfect/cluster/deliver_at.py +31 -0
  315. pyfect/cluster/entity/__init__.py +39 -0
  316. pyfect/cluster/entity/_entity.py +332 -0
  317. pyfect/cluster/entity/_handlers.py +168 -0
  318. pyfect/cluster/entity/_keep_alive.py +74 -0
  319. pyfect/cluster/entity/_queue.py +103 -0
  320. pyfect/cluster/entity/_request.py +34 -0
  321. pyfect/cluster/entity/_services.py +23 -0
  322. pyfect/cluster/entity/_test_client.py +237 -0
  323. pyfect/cluster/entity_address.py +25 -0
  324. pyfect/cluster/entity_id.py +20 -0
  325. pyfect/cluster/entity_proxy.py +161 -0
  326. pyfect/cluster/entity_proxy_server.py +103 -0
  327. pyfect/cluster/entity_resource.py +122 -0
  328. pyfect/cluster/entity_type.py +20 -0
  329. pyfect/cluster/envelope.py +307 -0
  330. pyfect/cluster/http_runner.py +254 -0
  331. pyfect/cluster/k8s_http_client.py +281 -0
  332. pyfect/cluster/k8s_types.py +1394 -0
  333. pyfect/cluster/machine_id.py +21 -0
  334. pyfect/cluster/message.py +219 -0
  335. pyfect/cluster/message_storage/__init__.py +67 -0
  336. pyfect/cluster/message_storage/_encoded.py +393 -0
  337. pyfect/cluster/message_storage/_memory.py +386 -0
  338. pyfect/cluster/message_storage/_noop.py +109 -0
  339. pyfect/cluster/message_storage/_service.py +388 -0
  340. pyfect/cluster/reply.py +236 -0
  341. pyfect/cluster/runner.py +32 -0
  342. pyfect/cluster/runner_address.py +23 -0
  343. pyfect/cluster/runner_health.py +93 -0
  344. pyfect/cluster/runner_server.py +286 -0
  345. pyfect/cluster/runner_storage.py +212 -0
  346. pyfect/cluster/runners/__init__.py +55 -0
  347. pyfect/cluster/runners/_local.py +460 -0
  348. pyfect/cluster/runners/_noop.py +57 -0
  349. pyfect/cluster/runners/_rpc.py +290 -0
  350. pyfect/cluster/runners/_service.py +113 -0
  351. pyfect/cluster/shard_id.py +39 -0
  352. pyfect/cluster/sharding/__init__.py +12 -0
  353. pyfect/cluster/sharding/_acquisition.py +490 -0
  354. pyfect/cluster/sharding/_clients.py +271 -0
  355. pyfect/cluster/sharding/_make.py +388 -0
  356. pyfect/cluster/sharding/_routing.py +296 -0
  357. pyfect/cluster/sharding/_runners_sync.py +198 -0
  358. pyfect/cluster/sharding/_service.py +91 -0
  359. pyfect/cluster/sharding/_singletons.py +183 -0
  360. pyfect/cluster/sharding/_state.py +296 -0
  361. pyfect/cluster/sharding/_storage_loop.py +421 -0
  362. pyfect/cluster/sharding_config.py +230 -0
  363. pyfect/cluster/sharding_registration_event.py +28 -0
  364. pyfect/cluster/single_runner.py +49 -0
  365. pyfect/cluster/singleton.py +36 -0
  366. pyfect/cluster/singleton_address.py +20 -0
  367. pyfect/cluster/snowflake.py +133 -0
  368. pyfect/cluster/socket_runner.py +67 -0
  369. pyfect/cluster/sql_message_storage.py +1001 -0
  370. pyfect/cluster/sql_runner_storage.py +841 -0
  371. pyfect/cluster/test_runner.py +23 -0
  372. pyfect/config/__init__.py +93 -0
  373. pyfect/config/_all.py +96 -0
  374. pyfect/config/_collections.py +291 -0
  375. pyfect/config/_config.py +261 -0
  376. pyfect/config/_constructors.py +106 -0
  377. pyfect/config/_error.py +27 -0
  378. pyfect/config/_leaf.py +92 -0
  379. pyfect/config/_scalars.py +193 -0
  380. pyfect/config/_schema.py +340 -0
  381. pyfect/config_provider/__init__.py +60 -0
  382. pyfect/config_provider/_dir.py +84 -0
  383. pyfect/config_provider/_dotenv.py +127 -0
  384. pyfect/config_provider/_env.py +79 -0
  385. pyfect/config_provider/_layers.py +80 -0
  386. pyfect/config_provider/_node.py +90 -0
  387. pyfect/config_provider/_provider.py +118 -0
  388. pyfect/config_provider/_unknown.py +62 -0
  389. pyfect/console/__init__.py +63 -0
  390. pyfect/console/_effects.py +134 -0
  391. pyfect/console/_live.py +156 -0
  392. pyfect/console/_service.py +49 -0
  393. pyfect/console/_table.py +90 -0
  394. pyfect/context.py +414 -0
  395. pyfect/cron/__init__.py +30 -0
  396. pyfect/cron/_model.py +183 -0
  397. pyfect/cron/_search.py +268 -0
  398. pyfect/cron/_text.py +202 -0
  399. pyfect/cron/_wall.py +42 -0
  400. pyfect/crypto.py +257 -0
  401. pyfect/date_time/__init__.py +77 -0
  402. pyfect/date_time/_calendar.py +209 -0
  403. pyfect/date_time/_current.py +118 -0
  404. pyfect/date_time/_epoch.py +22 -0
  405. pyfect/date_time/_iso.py +80 -0
  406. pyfect/date_time/_zones.py +135 -0
  407. pyfect/date_time/intl.py +144 -0
  408. pyfect/deferred.py +145 -0
  409. pyfect/devtools/__init__.py +24 -0
  410. pyfect/devtools/client.py +323 -0
  411. pyfect/devtools/layers.py +32 -0
  412. pyfect/devtools/schema.py +301 -0
  413. pyfect/devtools/server.py +72 -0
  414. pyfect/duration.py +295 -0
  415. pyfect/effect.py +565 -0
  416. pyfect/effectable.py +37 -0
  417. pyfect/encoding/__init__.py +62 -0
  418. pyfect/encoding/_archive.py +197 -0
  419. pyfect/encoding/_json_array_scanner.py +477 -0
  420. pyfect/encoding/base64.py +23 -0
  421. pyfect/encoding/base64_url.py +19 -0
  422. pyfect/encoding/encoding_error.py +17 -0
  423. pyfect/encoding/hex.py +28 -0
  424. pyfect/encoding/ini.py +188 -0
  425. pyfect/encoding/json_array.py +246 -0
  426. pyfect/encoding/ndjson.py +461 -0
  427. pyfect/encoding/schema_binary/__init__.py +257 -0
  428. pyfect/encoding/schema_binary/_channels.py +173 -0
  429. pyfect/encoding/schema_binary/_compile.py +584 -0
  430. pyfect/encoding/schema_binary/_decode.py +848 -0
  431. pyfect/encoding/schema_binary/_dictionary.py +90 -0
  432. pyfect/encoding/schema_binary/_encode.py +838 -0
  433. pyfect/encoding/schema_binary/_fingerprint.py +168 -0
  434. pyfect/encoding/schema_binary/_layout.py +350 -0
  435. pyfect/encoding/schema_binary/_literals.py +47 -0
  436. pyfect/encoding/schema_binary/_parser.py +163 -0
  437. pyfect/encoding/schema_binary/_reader.py +148 -0
  438. pyfect/encoding/schema_binary/_target.py +310 -0
  439. pyfect/encoding/schema_binary/_values.py +133 -0
  440. pyfect/encoding/schema_binary/_wire.py +253 -0
  441. pyfect/encoding/sse.py +476 -0
  442. pyfect/encoding/tar/__init__.py +396 -0
  443. pyfect/encoding/tar/_decoder.py +220 -0
  444. pyfect/encoding/tar/_encoder.py +83 -0
  445. pyfect/encoding/tar/_header.py +494 -0
  446. pyfect/encoding/tar/_model.py +82 -0
  447. pyfect/encoding/toml.py +375 -0
  448. pyfect/encoding/xml/__init__.py +222 -0
  449. pyfect/encoding/xml/_chars.py +119 -0
  450. pyfect/encoding/xml/_collector.py +106 -0
  451. pyfect/encoding/xml/_inputs.py +126 -0
  452. pyfect/encoding/xml/_model.py +114 -0
  453. pyfect/encoding/xml/_parser.py +694 -0
  454. pyfect/encoding/xml/_scanner.py +180 -0
  455. pyfect/encoding/xml/_writer.py +238 -0
  456. pyfect/encoding/yaml.py +739 -0
  457. pyfect/encoding/zip/__init__.py +392 -0
  458. pyfect/encoding/zip/_decoder.py +378 -0
  459. pyfect/encoding/zip/_format.py +122 -0
  460. pyfect/encoding/zip/_inflate.py +65 -0
  461. pyfect/encoding/zip/_model.py +86 -0
  462. pyfect/encoding/zip/_writer.py +311 -0
  463. pyfect/error_reporter.py +240 -0
  464. pyfect/errors.py +321 -0
  465. pyfect/eventlog/__init__.py +77 -0
  466. pyfect/eventlog/_conflicts.py +94 -0
  467. pyfect/eventlog/_crypto.py +64 -0
  468. pyfect/eventlog/_identity.py +26 -0
  469. pyfect/eventlog/_identity_derivation.py +79 -0
  470. pyfect/eventlog/_transferable_bytes.py +55 -0
  471. pyfect/eventlog/_uuid.py +33 -0
  472. pyfect/eventlog/event.py +115 -0
  473. pyfect/eventlog/event_group.py +55 -0
  474. pyfect/eventlog/event_journal.py +630 -0
  475. pyfect/eventlog/event_log.py +1039 -0
  476. pyfect/eventlog/event_log_encryption.py +219 -0
  477. pyfect/eventlog/event_log_message.py +357 -0
  478. pyfect/eventlog/event_log_remote.py +465 -0
  479. pyfect/eventlog/event_log_server.py +442 -0
  480. pyfect/eventlog/event_log_server_encrypted.py +322 -0
  481. pyfect/eventlog/event_log_server_unencrypted.py +814 -0
  482. pyfect/eventlog/event_log_session_auth.py +250 -0
  483. pyfect/eventlog/event_row.py +423 -0
  484. pyfect/eventlog/sql_event_journal.py +692 -0
  485. pyfect/eventlog/sql_event_log_server_encrypted.py +440 -0
  486. pyfect/eventlog/sql_event_log_server_unencrypted.py +568 -0
  487. pyfect/execution_plan/__init__.py +42 -0
  488. pyfect/execution_plan/_events.py +128 -0
  489. pyfect/execution_plan/_model.py +108 -0
  490. pyfect/execution_plan/_run.py +176 -0
  491. pyfect/exit.py +205 -0
  492. pyfect/fiber_handle.py +305 -0
  493. pyfect/fiber_map.py +350 -0
  494. pyfect/fiber_set.py +232 -0
  495. pyfect/file_system/__init__.py +69 -0
  496. pyfect/file_system/_copy.py +116 -0
  497. pyfect/file_system/_errors.py +32 -0
  498. pyfect/file_system/_file.py +177 -0
  499. pyfect/file_system/_live.py +351 -0
  500. pyfect/file_system/_model.py +72 -0
  501. pyfect/file_system/_noop.py +189 -0
  502. pyfect/file_system/_service.py +336 -0
  503. pyfect/file_system/_stat.py +69 -0
  504. pyfect/file_system/_watch.py +107 -0
  505. pyfect/filters.py +245 -0
  506. pyfect/graph/__init__.py +101 -0
  507. pyfect/graph/_all_pairs.py +150 -0
  508. pyfect/graph/_combine.py +259 -0
  509. pyfect/graph/_compact.py +143 -0
  510. pyfect/graph/_components.py +200 -0
  511. pyfect/graph/_cycles.py +144 -0
  512. pyfect/graph/_enumerate.py +168 -0
  513. pyfect/graph/_errors.py +51 -0
  514. pyfect/graph/_flow.py +164 -0
  515. pyfect/graph/_forest.py +109 -0
  516. pyfect/graph/_graph.py +269 -0
  517. pyfect/graph/_lowlink.py +98 -0
  518. pyfect/graph/_matching.py +101 -0
  519. pyfect/graph/_mutate.py +211 -0
  520. pyfect/graph/_query.py +138 -0
  521. pyfect/graph/_records.py +119 -0
  522. pyfect/graph/_render.py +109 -0
  523. pyfect/graph/_shortest.py +274 -0
  524. pyfect/graph/_snapshot.py +50 -0
  525. pyfect/graph/_store.py +136 -0
  526. pyfect/graph/_traverse.py +289 -0
  527. pyfect/graph/_view.py +384 -0
  528. pyfect/graph/_walker.py +70 -0
  529. pyfect/graphql/__init__.py +87 -0
  530. pyfect/graphql/_codec.py +117 -0
  531. pyfect/graphql/_http.py +309 -0
  532. pyfect/graphql/_schemas.py +39 -0
  533. pyfect/graphql/_slices.py +110 -0
  534. pyfect/graphql/_template.py +111 -0
  535. pyfect/graphql/_types.py +115 -0
  536. pyfect/graphql/_ws.py +395 -0
  537. pyfect/graphql/_ws_messages.py +120 -0
  538. pyfect/graphql/client.py +428 -0
  539. pyfect/graphql/client_error.py +285 -0
  540. pyfect/graphql/group.py +142 -0
  541. pyfect/graphql/middleware.py +98 -0
  542. pyfect/graphql/operation.py +409 -0
  543. pyfect/graphql/protocol.py +119 -0
  544. pyfect/graphql/resolver.py +574 -0
  545. pyfect/graphql/template.py +61 -0
  546. pyfect/hash_map.py +317 -0
  547. pyfect/hash_ring.py +206 -0
  548. pyfect/hash_set.py +163 -0
  549. pyfect/http/__init__.py +125 -0
  550. pyfect/http/_asgi_listener.py +272 -0
  551. pyfect/http/_authority.py +63 -0
  552. pyfect/http/_brotli.py +27 -0
  553. pyfect/http/_compression.py +52 -0
  554. pyfect/http/_field.py +18 -0
  555. pyfect/http/_foreign_path.py +27 -0
  556. pyfect/http/_form_data.py +34 -0
  557. pyfect/http/_httpx_options.py +120 -0
  558. pyfect/http/_in_memory.py +76 -0
  559. pyfect/http/_request_state.py +59 -0
  560. pyfect/http/_vary.py +14 -0
  561. pyfect/http/abort.py +65 -0
  562. pyfect/http/asgi/__init__.py +59 -0
  563. pyfect/http/asgi/_app.py +155 -0
  564. pyfect/http/asgi/_http.py +201 -0
  565. pyfect/http/asgi/_mount.py +263 -0
  566. pyfect/http/asgi/_scope.py +86 -0
  567. pyfect/http/asgi/_serve.py +72 -0
  568. pyfect/http/asgi/_types.py +13 -0
  569. pyfect/http/asgi/_web_socket.py +325 -0
  570. pyfect/http/body.py +437 -0
  571. pyfect/http/client/__init__.py +111 -0
  572. pyfect/http/client/_circuit_breaker.py +113 -0
  573. pyfect/http/client/_cookie_jar.py +120 -0
  574. pyfect/http/client/_make.py +252 -0
  575. pyfect/http/client/_rate_limit.py +423 -0
  576. pyfect/http/client/_redirects.py +93 -0
  577. pyfect/http/client/_retry.py +115 -0
  578. pyfect/http/client/_service.py +497 -0
  579. pyfect/http/cookies.py +444 -0
  580. pyfect/http/error.py +188 -0
  581. pyfect/http/etag.py +96 -0
  582. pyfect/http/file_like.py +49 -0
  583. pyfect/http/find_my_way/__init__.py +10 -0
  584. pyfect/http/find_my_way/_nodes.py +186 -0
  585. pyfect/http/find_my_way/_paths.py +43 -0
  586. pyfect/http/find_my_way/_query_string.py +67 -0
  587. pyfect/http/find_my_way/_router.py +401 -0
  588. pyfect/http/headers.py +343 -0
  589. pyfect/http/http_effect.py +198 -0
  590. pyfect/http/httpx_client.py +291 -0
  591. pyfect/http/hypercorn_server.py +122 -0
  592. pyfect/http/incoming_message.py +140 -0
  593. pyfect/http/live_server/__init__.py +191 -0
  594. pyfect/http/live_server/_body.py +164 -0
  595. pyfect/http/live_server/_exchange.py +321 -0
  596. pyfect/http/live_server/_head.py +194 -0
  597. pyfect/http/live_server/_inbound.py +156 -0
  598. pyfect/http/live_server/_listener.py +211 -0
  599. pyfect/http/live_server/_serve.py +225 -0
  600. pyfect/http/live_server/_timers.py +20 -0
  601. pyfect/http/live_server/_upgrade.py +108 -0
  602. pyfect/http/live_server/_websocket.py +286 -0
  603. pyfect/http/live_server/_ws_frames.py +242 -0
  604. pyfect/http/method.py +30 -0
  605. pyfect/http/middleware/__init__.py +61 -0
  606. pyfect/http/middleware/_compression.py +156 -0
  607. pyfect/http/middleware/_cors.py +129 -0
  608. pyfect/http/middleware/_decompression.py +274 -0
  609. pyfect/http/middleware/_forwarded.py +113 -0
  610. pyfect/http/middleware/_logger.py +73 -0
  611. pyfect/http/middleware/_search_params.py +34 -0
  612. pyfect/http/middleware/_tracer.py +153 -0
  613. pyfect/http/middleware/_types.py +16 -0
  614. pyfect/http/mime/__init__.py +69 -0
  615. pyfect/http/mime/_types.py +361 -0
  616. pyfect/http/multipart.py +613 -0
  617. pyfect/http/multipart_parser/__init__.py +348 -0
  618. pyfect/http/multipart_parser/_content_type.py +109 -0
  619. pyfect/http/multipart_parser/_headers.py +206 -0
  620. pyfect/http/multipart_parser/_search.py +85 -0
  621. pyfect/http/origin.py +146 -0
  622. pyfect/http/platform.py +593 -0
  623. pyfect/http/prometheus.py +34 -0
  624. pyfect/http/request.py +384 -0
  625. pyfect/http/response.py +474 -0
  626. pyfect/http/router/__init__.py +82 -0
  627. pyfect/http/router/_api.py +462 -0
  628. pyfect/http/router/_in_memory.py +76 -0
  629. pyfect/http/router/_markers.py +47 -0
  630. pyfect/http/router/_middleware.py +181 -0
  631. pyfect/http/router/_middleware_stack.py +51 -0
  632. pyfect/http/router/_provided.py +31 -0
  633. pyfect/http/router/_route.py +114 -0
  634. pyfect/http/router/_router.py +308 -0
  635. pyfect/http/schema.py +276 -0
  636. pyfect/http/server.py +199 -0
  637. pyfect/http/server_error.py +261 -0
  638. pyfect/http/server_request.py +729 -0
  639. pyfect/http/server_respondable.py +77 -0
  640. pyfect/http/server_response.py +569 -0
  641. pyfect/http/static_server/__init__.py +257 -0
  642. pyfect/http/static_server/_conditional.py +72 -0
  643. pyfect/http/static_server/_mime.py +55 -0
  644. pyfect/http/static_server/_range.py +53 -0
  645. pyfect/http/status.py +51 -0
  646. pyfect/http/template.py +161 -0
  647. pyfect/http/trace_context.py +91 -0
  648. pyfect/http/url.py +442 -0
  649. pyfect/http/url_params.py +304 -0
  650. pyfect/http/uvicorn_server.py +119 -0
  651. pyfect/http/web.py +171 -0
  652. pyfect/http/web_handler.py +463 -0
  653. pyfect/http/wire.py +209 -0
  654. pyfect/http_api/__init__.py +83 -0
  655. pyfect/http_api/_assets/scalar.js +8 -0
  656. pyfect/http_api/_assets/swagger-ui.css +3 -0
  657. pyfect/http_api/_assets/swagger-ui.js +4 -0
  658. pyfect/http_api/_client_method.py +220 -0
  659. pyfect/http_api/_client_payload.py +144 -0
  660. pyfect/http_api/_client_response.py +377 -0
  661. pyfect/http_api/_handlers.py +282 -0
  662. pyfect/http_api/_html.py +38 -0
  663. pyfect/http_api/_media_type.py +6 -0
  664. pyfect/http_api/_openapi_responses.py +164 -0
  665. pyfect/http_api/_openapi_schemas.py +163 -0
  666. pyfect/http_api/_path.py +102 -0
  667. pyfect/http_api/_payload.py +260 -0
  668. pyfect/http_api/_response.py +363 -0
  669. pyfect/http_api/_security.py +174 -0
  670. pyfect/http_api/api.py +265 -0
  671. pyfect/http_api/builder.py +447 -0
  672. pyfect/http_api/client.py +474 -0
  673. pyfect/http_api/endpoint.py +969 -0
  674. pyfect/http_api/error.py +280 -0
  675. pyfect/http_api/group.py +215 -0
  676. pyfect/http_api/middleware.py +232 -0
  677. pyfect/http_api/openapi.py +396 -0
  678. pyfect/http_api/scalar.py +143 -0
  679. pyfect/http_api/schema.py +713 -0
  680. pyfect/http_api/security.py +91 -0
  681. pyfect/http_api/swagger.py +69 -0
  682. pyfect/http_api/test.py +105 -0
  683. pyfect/json_patch.py +255 -0
  684. pyfect/json_pointer.py +100 -0
  685. pyfect/json_schema/__init__.py +66 -0
  686. pyfect/json_schema/_api.py +96 -0
  687. pyfect/json_schema/_converter.py +258 -0
  688. pyfect/json_schema/_draft04.py +198 -0
  689. pyfect/json_schema/_draft07.py +203 -0
  690. pyfect/json_schema/_keywords.py +202 -0
  691. pyfect/json_schema/_model.py +201 -0
  692. pyfect/json_schema/_openapi.py +208 -0
  693. pyfect/latch.py +127 -0
  694. pyfect/layer.py +479 -0
  695. pyfect/layer_map.py +279 -0
  696. pyfect/layer_ref.py +208 -0
  697. pyfect/logger/__init__.py +91 -0
  698. pyfect/logger/_batched.py +49 -0
  699. pyfect/logger/_console.py +116 -0
  700. pyfect/logger/_file.py +31 -0
  701. pyfect/logger/_formats.py +104 -0
  702. pyfect/logger/_layer.py +50 -0
  703. pyfect/logger/_level.py +53 -0
  704. pyfect/logger/_log.py +142 -0
  705. pyfect/logger/_model.py +163 -0
  706. pyfect/logger/_refs.py +78 -0
  707. pyfect/logger/_stdlib.py +54 -0
  708. pyfect/logger/_text.py +263 -0
  709. pyfect/logger/_tracer.py +35 -0
  710. pyfect/managed_runtime.py +393 -0
  711. pyfect/metric/__init__.py +119 -0
  712. pyfect/metric/_boundaries.py +27 -0
  713. pyfect/metric/_kinds.py +417 -0
  714. pyfect/metric/_metric.py +302 -0
  715. pyfect/metric/_prometheus.py +150 -0
  716. pyfect/metric/_refs.py +78 -0
  717. pyfect/metric/_runtime.py +75 -0
  718. pyfect/metric/_snapshot.py +97 -0
  719. pyfect/metric/_state.py +74 -0
  720. pyfect/msgspec.py +98 -0
  721. pyfect/mutable_hash_map.py +140 -0
  722. pyfect/mutable_hash_set.py +95 -0
  723. pyfect/net/__init__.py +18 -0
  724. pyfect/net/_errors.py +29 -0
  725. pyfect/net/address_resolver.py +179 -0
  726. pyfect/net/dns/__init__.py +92 -0
  727. pyfect/net/dns/_error.py +43 -0
  728. pyfect/net/dns/_records.py +335 -0
  729. pyfect/net/dns/_service.py +287 -0
  730. pyfect/net/dns/_system.py +89 -0
  731. pyfect/net/host.py +311 -0
  732. pyfect/net/ip_interface.py +202 -0
  733. pyfect/net/ip_network.py +250 -0
  734. pyfect/net/net_address/__init__.py +245 -0
  735. pyfect/net/net_address/_inet.py +412 -0
  736. pyfect/net/net_address/_ip.py +348 -0
  737. pyfect/net/net_address/_mac.py +119 -0
  738. pyfect/optic/__init__.py +50 -0
  739. pyfect/optic/_builtins.py +90 -0
  740. pyfect/optic/_data.py +97 -0
  741. pyfect/optic/_optic.py +422 -0
  742. pyfect/optic/_steps.py +151 -0
  743. pyfect/option.py +362 -0
  744. pyfect/otel/__init__.py +22 -0
  745. pyfect/otel/_attributes.py +67 -0
  746. pyfect/otel/_producer.py +322 -0
  747. pyfect/otel/_shutdown.py +26 -0
  748. pyfect/otel/_span.py +292 -0
  749. pyfect/otel/_wrapper.py +92 -0
  750. pyfect/otel/logger.py +154 -0
  751. pyfect/otel/metrics.py +126 -0
  752. pyfect/otel/resource.py +111 -0
  753. pyfect/otel/sdk.py +195 -0
  754. pyfect/otel/tracer.py +157 -0
  755. pyfect/partitioned_semaphore.py +211 -0
  756. pyfect/path.py +304 -0
  757. pyfect/persistence/__init__.py +77 -0
  758. pyfect/persistence/_columns.py +32 -0
  759. pyfect/persistence/_error.py +14 -0
  760. pyfect/persistence/_seconds.py +68 -0
  761. pyfect/persistence/_sql_keys.py +47 -0
  762. pyfect/persistence/circuit_breaker/__init__.py +120 -0
  763. pyfect/persistence/circuit_breaker/_breaker.py +317 -0
  764. pyfect/persistence/circuit_breaker/_errors.py +67 -0
  765. pyfect/persistence/circuit_breaker/_memory.py +243 -0
  766. pyfect/persistence/circuit_breaker/_redis.py +509 -0
  767. pyfect/persistence/circuit_breaker/_store.py +60 -0
  768. pyfect/persistence/circuit_breaker/_types.py +191 -0
  769. pyfect/persistence/key_value_store/__init__.py +51 -0
  770. pyfect/persistence/key_value_store/_layers.py +216 -0
  771. pyfect/persistence/key_value_store/_schema_store.py +91 -0
  772. pyfect/persistence/key_value_store/_sql.py +197 -0
  773. pyfect/persistence/key_value_store/_store.py +212 -0
  774. pyfect/persistence/persistable.py +164 -0
  775. pyfect/persistence/persisted_cache.py +159 -0
  776. pyfect/persistence/persisted_queue/__init__.py +75 -0
  777. pyfect/persistence/persisted_queue/_error.py +42 -0
  778. pyfect/persistence/persisted_queue/_mailbox.py +101 -0
  779. pyfect/persistence/persisted_queue/_memory.py +182 -0
  780. pyfect/persistence/persisted_queue/_queue.py +272 -0
  781. pyfect/persistence/persisted_queue/_redis.py +455 -0
  782. pyfect/persistence/persisted_queue/_redis_scripts.py +395 -0
  783. pyfect/persistence/persisted_queue/_sql.py +334 -0
  784. pyfect/persistence/persisted_queue/_sql_migrations.py +319 -0
  785. pyfect/persistence/persisted_queue/_sql_statements.py +441 -0
  786. pyfect/persistence/persisted_queue/_store.py +147 -0
  787. pyfect/persistence/persistence/__init__.py +84 -0
  788. pyfect/persistence/persistence/_kvs.py +135 -0
  789. pyfect/persistence/persistence/_memory.py +62 -0
  790. pyfect/persistence/persistence/_redis.py +162 -0
  791. pyfect/persistence/persistence/_service.py +276 -0
  792. pyfect/persistence/persistence/_sql.py +499 -0
  793. pyfect/persistence/rate_limiter/__init__.py +82 -0
  794. pyfect/persistence/rate_limiter/_errors.py +59 -0
  795. pyfect/persistence/rate_limiter/_limiter.py +325 -0
  796. pyfect/persistence/rate_limiter/_memory.py +217 -0
  797. pyfect/persistence/rate_limiter/_redis.py +485 -0
  798. pyfect/persistence/rate_limiter/_store.py +89 -0
  799. pyfect/persistence/redis/__init__.py +52 -0
  800. pyfect/persistence/redis/_error.py +12 -0
  801. pyfect/persistence/redis/_make.py +234 -0
  802. pyfect/persistence/redis/_script.py +78 -0
  803. pyfect/persistence/redis/_service.py +104 -0
  804. pyfect/persistence/redis_py.py +303 -0
  805. pyfect/persistence/user_directories.py +195 -0
  806. pyfect/platform.py +26 -0
  807. pyfect/platform_error.py +256 -0
  808. pyfect/pool/__init__.py +36 -0
  809. pyfect/pool/_pool.py +707 -0
  810. pyfect/pool/_state.py +161 -0
  811. pyfect/pool/_ttl.py +105 -0
  812. pyfect/pool/_waiters.py +116 -0
  813. pyfect/primary_key.py +35 -0
  814. pyfect/process/__init__.py +82 -0
  815. pyfect/process/_child.py +213 -0
  816. pyfect/process/_command.py +358 -0
  817. pyfect/process/_handle.py +77 -0
  818. pyfect/process/_live.py +455 -0
  819. pyfect/process/_os.py +78 -0
  820. pyfect/process/_pipes.py +291 -0
  821. pyfect/process/_spawner.py +75 -0
  822. pyfect/pubsub/__init__.py +33 -0
  823. pyfect/pubsub/_atomic.py +181 -0
  824. pyfect/pubsub/_hub.py +214 -0
  825. pyfect/pubsub/_pubsub.py +214 -0
  826. pyfect/pubsub/_replay.py +107 -0
  827. pyfect/pubsub/_subscription.py +226 -0
  828. pyfect/pull.py +132 -0
  829. pyfect/py.typed +0 -0
  830. pyfect/pydantic.py +188 -0
  831. pyfect/queue/__init__.py +33 -0
  832. pyfect/queue/_queue.py +525 -0
  833. pyfect/queue/_state.py +111 -0
  834. pyfect/queue/_views.py +55 -0
  835. pyfect/random.py +146 -0
  836. pyfect/rc_map.py +363 -0
  837. pyfect/rc_ref.py +271 -0
  838. pyfect/reactivity/__init__.py +53 -0
  839. pyfect/reactivity/_async_result_schema.py +227 -0
  840. pyfect/reactivity/_hydration.py +18 -0
  841. pyfect/reactivity/_live.py +21 -0
  842. pyfect/reactivity/_reactivity.py +256 -0
  843. pyfect/reactivity/_result_effect.py +17 -0
  844. pyfect/reactivity/_time.py +11 -0
  845. pyfect/reactivity/async_result.py +679 -0
  846. pyfect/reactivity/atom/__init__.py +143 -0
  847. pyfect/reactivity/atom/_combinators.py +223 -0
  848. pyfect/reactivity/atom/_constructors.py +80 -0
  849. pyfect/reactivity/atom/_conversions.py +79 -0
  850. pyfect/reactivity/atom/_effect.py +252 -0
  851. pyfect/reactivity/atom/_fn.py +341 -0
  852. pyfect/reactivity/atom/_kvs.py +101 -0
  853. pyfect/reactivity/atom/_optimistic.py +162 -0
  854. pyfect/reactivity/atom/_runtime.py +323 -0
  855. pyfect/reactivity/atom/_serializable.py +65 -0
  856. pyfect/reactivity/atom/_subscription_ref.py +102 -0
  857. pyfect/reactivity/atom/_swr.py +69 -0
  858. pyfect/reactivity/atom/_types.py +435 -0
  859. pyfect/reactivity/atom_http_api.py +667 -0
  860. pyfect/reactivity/atom_ref.py +260 -0
  861. pyfect/reactivity/atom_registry/__init__.py +219 -0
  862. pyfect/reactivity/atom_registry/_batch.py +96 -0
  863. pyfect/reactivity/atom_registry/_dispatcher.py +60 -0
  864. pyfect/reactivity/atom_registry/_lifetime.py +202 -0
  865. pyfect/reactivity/atom_registry/_node.py +423 -0
  866. pyfect/reactivity/atom_registry/_registry.py +380 -0
  867. pyfect/reactivity/atom_rpc.py +283 -0
  868. pyfect/reactivity/hydration.py +200 -0
  869. pyfect/redacted.py +83 -0
  870. pyfect/ref.py +129 -0
  871. pyfect/resource.py +98 -0
  872. pyfect/result.py +306 -0
  873. pyfect/rpc/__init__.py +64 -0
  874. pyfect/rpc/_encoded_schema.py +86 -0
  875. pyfect/rpc/_json_rpc.py +246 -0
  876. pyfect/rpc/_methods.py +177 -0
  877. pyfect/rpc/_rpc.py +498 -0
  878. pyfect/rpc/client/__init__.py +100 -0
  879. pyfect/rpc/client/_core.py +449 -0
  880. pyfect/rpc/client/_http.py +257 -0
  881. pyfect/rpc/client/_protocol.py +171 -0
  882. pyfect/rpc/client/_serialized.py +321 -0
  883. pyfect/rpc/client/_transports.py +328 -0
  884. pyfect/rpc/client/_worker.py +283 -0
  885. pyfect/rpc/client_error.py +35 -0
  886. pyfect/rpc/group.py +296 -0
  887. pyfect/rpc/message.py +299 -0
  888. pyfect/rpc/middleware.py +182 -0
  889. pyfect/rpc/schema.py +89 -0
  890. pyfect/rpc/serialization.py +366 -0
  891. pyfect/rpc/server/__init__.py +181 -0
  892. pyfect/rpc/server/_core.py +549 -0
  893. pyfect/rpc/server/_protocol.py +123 -0
  894. pyfect/rpc/server/_serialized.py +363 -0
  895. pyfect/rpc/server/_stdio.py +101 -0
  896. pyfect/rpc/server/_transports.py +427 -0
  897. pyfect/rpc/server/_worker.py +108 -0
  898. pyfect/rpc/test.py +74 -0
  899. pyfect/rpc/worker.py +92 -0
  900. pyfect/run.py +393 -0
  901. pyfect/schedule/__init__.py +91 -0
  902. pyfect/schedule/_combinators.py +168 -0
  903. pyfect/schedule/_constructors.py +223 -0
  904. pyfect/schedule/_cron.py +49 -0
  905. pyfect/schedule/_drive.py +191 -0
  906. pyfect/schedule/_model.py +405 -0
  907. pyfect/scheduler.py +575 -0
  908. pyfect/schema/__init__.py +866 -0
  909. pyfect/schema/_adapters.py +39 -0
  910. pyfect/schema/_arbitrary_constraint.py +242 -0
  911. pyfect/schema/_arbitrary_graph.py +325 -0
  912. pyfect/schema/_arbitrary_links.py +179 -0
  913. pyfect/schema/_arbitrary_number.py +112 -0
  914. pyfect/schema/_arrays.py +287 -0
  915. pyfect/schema/_assignable.py +118 -0
  916. pyfect/schema/_boolean_literals.py +31 -0
  917. pyfect/schema/_checks_number.py +216 -0
  918. pyfect/schema/_checks_order.py +140 -0
  919. pyfect/schema/_checks_size.py +277 -0
  920. pyfect/schema/_checks_string.py +241 -0
  921. pyfect/schema/_class.py +569 -0
  922. pyfect/schema/_codec_derivation.py +227 -0
  923. pyfect/schema/_codec_links.py +221 -0
  924. pyfect/schema/_codecs.py +316 -0
  925. pyfect/schema/_collections.py +172 -0
  926. pyfect/schema/_constructor_default.py +89 -0
  927. pyfect/schema/_data.py +440 -0
  928. pyfect/schema/_data_codecs.py +145 -0
  929. pyfect/schema/_decimal_regexp.py +243 -0
  930. pyfect/schema/_declare.py +68 -0
  931. pyfect/schema/_derive.py +292 -0
  932. pyfect/schema/_duration_codecs.py +27 -0
  933. pyfect/schema/_ecma_pattern.py +416 -0
  934. pyfect/schema/_error.py +26 -0
  935. pyfect/schema/_error_instance.py +222 -0
  936. pyfect/schema/_graph.py +271 -0
  937. pyfect/schema/_instances.py +240 -0
  938. pyfect/schema/_jsonschema/__init__.py +90 -0
  939. pyfect/schema/_jsonschema/_annotations.py +114 -0
  940. pyfect/schema/_jsonschema/_checks.py +253 -0
  941. pyfect/schema/_jsonschema/_compile.py +346 -0
  942. pyfect/schema/_jsonschema/_exact.py +19 -0
  943. pyfect/schema/_jsonschema/_merge.py +211 -0
  944. pyfect/schema/_jsonschema/_objects.py +231 -0
  945. pyfect/schema/_jsonschema/_references.py +221 -0
  946. pyfect/schema/_jsonschema/_template.py +69 -0
  947. pyfect/schema/_literals.py +147 -0
  948. pyfect/schema/_middleware.py +209 -0
  949. pyfect/schema/_net.py +522 -0
  950. pyfect/schema/_options.py +49 -0
  951. pyfect/schema/_parse.py +351 -0
  952. pyfect/schema/_parsed_text.py +37 -0
  953. pyfect/schema/_primitives.py +48 -0
  954. pyfect/schema/_record.py +41 -0
  955. pyfect/schema/_refine.py +81 -0
  956. pyfect/schema/_schema.py +158 -0
  957. pyfect/schema/_semver.py +144 -0
  958. pyfect/schema/_strategy/__init__.py +258 -0
  959. pyfect/schema/_strategy/_big_decimal.py +203 -0
  960. pyfect/schema/_strategy/_composites.py +119 -0
  961. pyfect/schema/_strategy/_leaves.py +94 -0
  962. pyfect/schema/_strategy/_net.py +133 -0
  963. pyfect/schema/_struct.py +87 -0
  964. pyfect/schema/_struct_keys.py +128 -0
  965. pyfect/schema/_tagged.py +254 -0
  966. pyfect/schema/_template_literal.py +172 -0
  967. pyfect/schema/_to_codec_array_from_single.py +115 -0
  968. pyfect/schema/_to_codec_go_json.py +174 -0
  969. pyfect/schema/_to_codec_json.py +73 -0
  970. pyfect/schema/_to_codec_string_tree.py +115 -0
  971. pyfect/schema/_to_differ_json_patch.py +44 -0
  972. pyfect/schema/_to_encoder_xml.py +119 -0
  973. pyfect/schema/_to_equivalence.py +186 -0
  974. pyfect/schema/_to_formatter.py +180 -0
  975. pyfect/schema/_to_iso.py +73 -0
  976. pyfect/schema/_to_strategy.py +31 -0
  977. pyfect/schema/_transform.py +210 -0
  978. pyfect/schema/_tree.py +27 -0
  979. pyfect/schema/_type_walk.py +53 -0
  980. pyfect/schema/_undefined.py +58 -0
  981. pyfect/schema/_value_codecs.py +84 -0
  982. pyfect/schema/_values.py +123 -0
  983. pyfect/schema/_void.py +86 -0
  984. pyfect/schema/ast/__init__.py +227 -0
  985. pyfect/schema/ast/_annotations.py +43 -0
  986. pyfect/schema/ast/_arrays.py +210 -0
  987. pyfect/schema/ast/_base.py +295 -0
  988. pyfect/schema/ast/_candidates.py +309 -0
  989. pyfect/schema/ast/_check.py +181 -0
  990. pyfect/schema/ast/_class.py +159 -0
  991. pyfect/schema/ast/_constructors.py +65 -0
  992. pyfect/schema/ast/_declaration.py +97 -0
  993. pyfect/schema/ast/_encoding.py +111 -0
  994. pyfect/schema/ast/_json.py +129 -0
  995. pyfect/schema/ast/_keywords.py +125 -0
  996. pyfect/schema/ast/_literal.py +157 -0
  997. pyfect/schema/ast/_objects.py +356 -0
  998. pyfect/schema/ast/_record.py +36 -0
  999. pyfect/schema/ast/_result.py +116 -0
  1000. pyfect/schema/ast/_steps.py +209 -0
  1001. pyfect/schema/ast/_suspend.py +65 -0
  1002. pyfect/schema/ast/_template_literal.py +256 -0
  1003. pyfect/schema/ast/_union.py +172 -0
  1004. pyfect/schema/getter/__init__.py +136 -0
  1005. pyfect/schema/getter/_binary.py +104 -0
  1006. pyfect/schema/getter/_coerce.py +196 -0
  1007. pyfect/schema/getter/_getter.py +243 -0
  1008. pyfect/schema/getter/_make.py +151 -0
  1009. pyfect/schema/getter/_text.py +141 -0
  1010. pyfect/schema/getter/_tree_record.py +170 -0
  1011. pyfect/schema/issue.py +420 -0
  1012. pyfect/schema/model/__init__.py +120 -0
  1013. pyfect/schema/model/_class.py +245 -0
  1014. pyfect/schema/model/_dates.py +103 -0
  1015. pyfect/schema/model/_fields.py +77 -0
  1016. pyfect/schema/model/_toolkit.py +114 -0
  1017. pyfect/schema/model/_uuid.py +69 -0
  1018. pyfect/schema/representation/__init__.py +424 -0
  1019. pyfect/schema/representation/_builtin_revivers.py +331 -0
  1020. pyfect/schema/representation/_code.py +106 -0
  1021. pyfect/schema/representation/_code_builtins.py +281 -0
  1022. pyfect/schema/representation/_code_document.py +563 -0
  1023. pyfect/schema/representation/_code_sort.py +111 -0
  1024. pyfect/schema/representation/_from.py +278 -0
  1025. pyfect/schema/representation/_import/__init__.py +78 -0
  1026. pyfect/schema/representation/_import/_finalize.py +121 -0
  1027. pyfect/schema/representation/_import/_intersect.py +467 -0
  1028. pyfect/schema/representation/_import/_js_order.py +66 -0
  1029. pyfect/schema/representation/_import/_keywords.py +224 -0
  1030. pyfect/schema/representation/_import/_nodes.py +199 -0
  1031. pyfect/schema/representation/_import/_translate.py +455 -0
  1032. pyfect/schema/representation/_json.py +520 -0
  1033. pyfect/schema/representation/_json_schema.py +178 -0
  1034. pyfect/schema/representation/_model.py +284 -0
  1035. pyfect/schema/representation/_revivers.py +89 -0
  1036. pyfect/schema/representation/_to.py +249 -0
  1037. pyfect/schema/transformation/__init__.py +99 -0
  1038. pyfect/schema/transformation/_builtins.py +314 -0
  1039. pyfect/schema/transformation/_durations.py +150 -0
  1040. pyfect/schema/transformation/_transformation.py +177 -0
  1041. pyfect/schema/variant_schema/__init__.py +69 -0
  1042. pyfect/schema/variant_schema/_class.py +188 -0
  1043. pyfect/schema/variant_schema/_defaults.py +30 -0
  1044. pyfect/schema/variant_schema/_field.py +32 -0
  1045. pyfect/schema/variant_schema/_struct.py +130 -0
  1046. pyfect/schema/variant_schema/_toolkit.py +160 -0
  1047. pyfect/scope.py +374 -0
  1048. pyfect/scoped_ref.py +124 -0
  1049. pyfect/semaphore.py +276 -0
  1050. pyfect/semver.py +403 -0
  1051. pyfect/semver_range.py +420 -0
  1052. pyfect/sink/__init__.py +131 -0
  1053. pyfect/sink/_combinators.py +151 -0
  1054. pyfect/sink/_constructors.py +187 -0
  1055. pyfect/sink/_context.py +87 -0
  1056. pyfect/sink/_folds.py +336 -0
  1057. pyfect/sink/_for_each.py +87 -0
  1058. pyfect/sink/_sink.py +265 -0
  1059. pyfect/sink/_steps.py +34 -0
  1060. pyfect/sink/_taking.py +183 -0
  1061. pyfect/socket/__init__.py +146 -0
  1062. pyfect/socket/_accepted.py +65 -0
  1063. pyfect/socket/_connection.py +384 -0
  1064. pyfect/socket/_errors.py +135 -0
  1065. pyfect/socket/_loop.py +66 -0
  1066. pyfect/socket/_net.py +281 -0
  1067. pyfect/socket/_socket.py +245 -0
  1068. pyfect/socket/_tls.py +88 -0
  1069. pyfect/socket/_tls_session.py +117 -0
  1070. pyfect/socket/_web_socket.py +555 -0
  1071. pyfect/socket/datagram/__init__.py +110 -0
  1072. pyfect/socket/datagram/_core.py +460 -0
  1073. pyfect/socket/datagram/_errors.py +102 -0
  1074. pyfect/socket/datagram/_live.py +675 -0
  1075. pyfect/socket/datagram/_model.py +217 -0
  1076. pyfect/socket/server.py +258 -0
  1077. pyfect/socket/ws.py +484 -0
  1078. pyfect/sql/__init__.py +60 -0
  1079. pyfect/sql/_loop.py +134 -0
  1080. pyfect/sql/clickhouse/__init__.py +74 -0
  1081. pyfect/sql/clickhouse/_connection.py +237 -0
  1082. pyfect/sql/clickhouse/_rows.py +87 -0
  1083. pyfect/sql/clickhouse/client.py +322 -0
  1084. pyfect/sql/clickhouse/config.py +241 -0
  1085. pyfect/sql/clickhouse/driver.py +434 -0
  1086. pyfect/sql/clickhouse/error.py +106 -0
  1087. pyfect/sql/clickhouse/migrator.py +47 -0
  1088. pyfect/sql/clickhouse/params.py +168 -0
  1089. pyfect/sql/client/__init__.py +35 -0
  1090. pyfect/sql/client/_client.py +309 -0
  1091. pyfect/sql/client/_sqlite_acquirers.py +130 -0
  1092. pyfect/sql/client/_transaction.py +410 -0
  1093. pyfect/sql/connection.py +87 -0
  1094. pyfect/sql/d1/__init__.py +48 -0
  1095. pyfect/sql/d1/api.py +270 -0
  1096. pyfect/sql/d1/client.py +344 -0
  1097. pyfect/sql/d1/config.py +55 -0
  1098. pyfect/sql/error.py +311 -0
  1099. pyfect/sql/libsql/__init__.py +58 -0
  1100. pyfect/sql/libsql/_connection.py +110 -0
  1101. pyfect/sql/libsql/_hrana.py +258 -0
  1102. pyfect/sql/libsql/_local.py +251 -0
  1103. pyfect/sql/libsql/_targets.py +28 -0
  1104. pyfect/sql/libsql/_values.py +46 -0
  1105. pyfect/sql/libsql/client.py +225 -0
  1106. pyfect/sql/libsql/config.py +170 -0
  1107. pyfect/sql/libsql/migrator.py +43 -0
  1108. pyfect/sql/libsql/sdk.py +123 -0
  1109. pyfect/sql/migrator.py +434 -0
  1110. pyfect/sql/model.py +324 -0
  1111. pyfect/sql/mssql/__init__.py +79 -0
  1112. pyfect/sql/mssql/_connection.py +169 -0
  1113. pyfect/sql/mssql/_driver.py +103 -0
  1114. pyfect/sql/mssql/_names.py +9 -0
  1115. pyfect/sql/mssql/_pool.py +125 -0
  1116. pyfect/sql/mssql/_tds.py +447 -0
  1117. pyfect/sql/mssql/_tds_params.py +155 -0
  1118. pyfect/sql/mssql/_worker.py +155 -0
  1119. pyfect/sql/mssql/client.py +344 -0
  1120. pyfect/sql/mssql/config.py +118 -0
  1121. pyfect/sql/mssql/error.py +111 -0
  1122. pyfect/sql/mssql/migrator.py +43 -0
  1123. pyfect/sql/mssql/parameter.py +44 -0
  1124. pyfect/sql/mssql/procedure.py +119 -0
  1125. pyfect/sql/mssql/types.py +137 -0
  1126. pyfect/sql/mysql/__init__.py +60 -0
  1127. pyfect/sql/mysql/_asyncmy.py +168 -0
  1128. pyfect/sql/mysql/_bind.py +76 -0
  1129. pyfect/sql/mysql/_connection.py +156 -0
  1130. pyfect/sql/mysql/_pool.py +63 -0
  1131. pyfect/sql/mysql/_session.py +262 -0
  1132. pyfect/sql/mysql/client.py +244 -0
  1133. pyfect/sql/mysql/config.py +108 -0
  1134. pyfect/sql/mysql/error.py +104 -0
  1135. pyfect/sql/mysql/migrator.py +44 -0
  1136. pyfect/sql/pg/__init__.py +82 -0
  1137. pyfect/sql/pg/_resolve.py +284 -0
  1138. pyfect/sql/pg/_session.py +380 -0
  1139. pyfect/sql/pg/client.py +398 -0
  1140. pyfect/sql/pg/config.py +142 -0
  1141. pyfect/sql/pg/connection.py +585 -0
  1142. pyfect/sql/pg/error.py +131 -0
  1143. pyfect/sql/pg/migrator.py +139 -0
  1144. pyfect/sql/pg/pool.py +265 -0
  1145. pyfect/sql/resolver.py +294 -0
  1146. pyfect/sql/result.py +24 -0
  1147. pyfect/sql/schema.py +116 -0
  1148. pyfect/sql/sqlite/__init__.py +26 -0
  1149. pyfect/sql/sqlite/_connection.py +230 -0
  1150. pyfect/sql/sqlite/_worker.py +71 -0
  1151. pyfect/sql/sqlite/client.py +248 -0
  1152. pyfect/sql/sqlite/migrator.py +43 -0
  1153. pyfect/sql/statement/__init__.py +144 -0
  1154. pyfect/sql/statement/_compiler.py +384 -0
  1155. pyfect/sql/statement/_segments.py +487 -0
  1156. pyfect/sql/statement/_statement.py +526 -0
  1157. pyfect/sql/statement/_transforms.py +93 -0
  1158. pyfect/sql/stream.py +88 -0
  1159. pyfect/stdio.py +206 -0
  1160. pyfect/stream/__init__.py +151 -0
  1161. pyfect/stream/_async_iterable.py +129 -0
  1162. pyfect/stream/_base.py +69 -0
  1163. pyfect/stream/_bridge_methods.py +139 -0
  1164. pyfect/stream/_catch.py +135 -0
  1165. pyfect/stream/_catch_reason.py +558 -0
  1166. pyfect/stream/_channel_methods.py +61 -0
  1167. pyfect/stream/_chunk_methods.py +169 -0
  1168. pyfect/stream/_chunking.py +310 -0
  1169. pyfect/stream/_concat.py +65 -0
  1170. pyfect/stream/_constructors.py +341 -0
  1171. pyfect/stream/_context.py +147 -0
  1172. pyfect/stream/_error_methods.py +254 -0
  1173. pyfect/stream/_execution_plan.py +199 -0
  1174. pyfect/stream/_fanout.py +154 -0
  1175. pyfect/stream/_fanout_methods.py +183 -0
  1176. pyfect/stream/_filter_methods.py +203 -0
  1177. pyfect/stream/_grouping.py +168 -0
  1178. pyfect/stream/_many.py +65 -0
  1179. pyfect/stream/_map_methods.py +233 -0
  1180. pyfect/stream/_mapping.py +126 -0
  1181. pyfect/stream/_run.py +114 -0
  1182. pyfect/stream/_run_methods.py +114 -0
  1183. pyfect/stream/_service_methods.py +36 -0
  1184. pyfect/stream/_sink_methods.py +151 -0
  1185. pyfect/stream/_sinking.py +277 -0
  1186. pyfect/stream/_sources.py +124 -0
  1187. pyfect/stream/_stream.py +162 -0
  1188. pyfect/stream/_taking.py +330 -0
  1189. pyfect/stream/_text.py +43 -0
  1190. pyfect/stream/_timing.py +294 -0
  1191. pyfect/stream/_timing_methods.py +252 -0
  1192. pyfect/stream/_zip_methods.py +279 -0
  1193. pyfect/stream/_zipping.py +213 -0
  1194. pyfect/subscription_ref.py +66 -0
  1195. pyfect/synchronized_ref.py +38 -0
  1196. pyfect/take.py +36 -0
  1197. pyfect/terminal/__init__.py +41 -0
  1198. pyfect/terminal/_keys.py +113 -0
  1199. pyfect/terminal/_live.py +223 -0
  1200. pyfect/terminal/_service.py +73 -0
  1201. pyfect/testing/__init__.py +122 -0
  1202. pyfect/testing/_assertions.py +92 -0
  1203. pyfect/testing/_clock.py +309 -0
  1204. pyfect/testing/_console.py +164 -0
  1205. pyfect/testing/_crypto.py +44 -0
  1206. pyfect/testing/_decorators.py +211 -0
  1207. pyfect/testing/_flaky.py +34 -0
  1208. pyfect/testing/_layers.py +153 -0
  1209. pyfect/testing/_prop.py +255 -0
  1210. pyfect/testing/_runners.py +84 -0
  1211. pyfect/testing/_runtime.py +174 -0
  1212. pyfect/testing/_schema.py +238 -0
  1213. pyfect/testing/plugin.py +59 -0
  1214. pyfect/tracer/__init__.py +107 -0
  1215. pyfect/tracer/_model.py +176 -0
  1216. pyfect/tracer/_native.py +172 -0
  1217. pyfect/tracer/_refs.py +87 -0
  1218. pyfect/tracer/_spans.py +269 -0
  1219. pyfect/transaction.py +340 -0
  1220. pyfect/trie.py +317 -0
  1221. pyfect/tx_chunk.py +127 -0
  1222. pyfect/tx_deferred.py +75 -0
  1223. pyfect/tx_hash_map.py +265 -0
  1224. pyfect/tx_hash_set.py +151 -0
  1225. pyfect/tx_priority_queue.py +224 -0
  1226. pyfect/tx_pubsub.py +194 -0
  1227. pyfect/tx_queue/__init__.py +27 -0
  1228. pyfect/tx_queue/_queue.py +359 -0
  1229. pyfect/tx_queue/_views.py +60 -0
  1230. pyfect/tx_reentrant_lock.py +201 -0
  1231. pyfect/tx_ref.py +79 -0
  1232. pyfect/tx_semaphore.py +136 -0
  1233. pyfect/tx_subscription_ref.py +118 -0
  1234. pyfect/workers/__init__.py +62 -0
  1235. pyfect/workers/_frames.py +82 -0
  1236. pyfect/workers/_mailbox.py +51 -0
  1237. pyfect/workers/_port.py +106 -0
  1238. pyfect/workers/_process.py +155 -0
  1239. pyfect/workers/_thread.py +100 -0
  1240. pyfect/workers/python_worker.py +133 -0
  1241. pyfect/workers/python_worker_runner.py +112 -0
  1242. pyfect/workers/transferable.py +103 -0
  1243. pyfect/workers/worker.py +273 -0
  1244. pyfect/workers/worker_error.py +86 -0
  1245. pyfect/workers/worker_runner.py +85 -0
  1246. pyfect/workflow/__init__.py +78 -0
  1247. pyfect/workflow/_crypto.py +23 -0
  1248. pyfect/workflow/_encoded.py +381 -0
  1249. pyfect/workflow/_memory.py +424 -0
  1250. pyfect/workflow/_result.py +43 -0
  1251. pyfect/workflow/_services.py +241 -0
  1252. pyfect/workflow/_suspension.py +153 -0
  1253. pyfect/workflow/activity.py +427 -0
  1254. pyfect/workflow/durable_clock.py +72 -0
  1255. pyfect/workflow/durable_deferred.py +403 -0
  1256. pyfect/workflow/durable_queue.py +259 -0
  1257. pyfect/workflow/workflow.py +509 -0
  1258. pyfect/workflow/workflow_engine.py +42 -0
  1259. pyfect/workflow/workflow_proxy.py +161 -0
  1260. pyfect/workflow/workflow_proxy_server.py +146 -0
  1261. pyfect_dev-0.1.0.dist-info/METADATA +296 -0
  1262. pyfect_dev-0.1.0.dist-info/RECORD +1265 -0
  1263. pyfect_dev-0.1.0.dist-info/WHEEL +4 -0
  1264. pyfect_dev-0.1.0.dist-info/entry_points.txt +3 -0
  1265. pyfect_dev-0.1.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,1394 @@
1
+ """Kubernetes resource types for the cluster's Kubernetes helpers (Effect's
2
+ ``K8sTypes``): the transitive closure of ``Pod`` from kubernetes-types
3
+ 1.30.0, generated from the Kubernetes OpenAPI definitions
4
+ (https://github.com/silverlyra/kubernetes-types, Apache-2.0), as
5
+ ``TypedDict``s of the API's JSON. Field documentation is the Kubernetes API
6
+ reference's.
7
+
8
+ Generated from Effect's ``K8sTypes.ts``.
9
+ """
10
+
11
+ from typing import Literal, NotRequired, ReadOnly, TypedDict
12
+
13
+ type Time = str
14
+ """An RFC 3339 timestamp."""
15
+
16
+ type Quantity = str
17
+ """A fixed-point number with an optional SI suffix (``"500m"``, ``"1Gi"``)."""
18
+
19
+
20
+ class AWSElasticBlockStoreVolumeSource(TypedDict):
21
+ """Represents a Persistent Disk resource in AWS."""
22
+
23
+ fsType: NotRequired[str]
24
+ partition: NotRequired[int]
25
+ readOnly: NotRequired[bool]
26
+ volumeID: str
27
+
28
+
29
+ class NodeSelectorRequirement(TypedDict):
30
+ """A node selector requirement is a selector that contains values, a key, and an operator
31
+ that relates the key and values.
32
+ """
33
+
34
+ key: str
35
+ operator: str
36
+ values: NotRequired[list[str]]
37
+
38
+
39
+ class NodeSelectorTerm(TypedDict):
40
+ """A null or empty node selector term matches no objects. The requirements of them are
41
+ ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
42
+ """
43
+
44
+ matchExpressions: NotRequired[list[NodeSelectorRequirement]]
45
+ matchFields: NotRequired[list[NodeSelectorRequirement]]
46
+
47
+
48
+ class PreferredSchedulingTerm(TypedDict):
49
+ """An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's
50
+ a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
51
+ """
52
+
53
+ preference: NodeSelectorTerm
54
+ weight: int
55
+
56
+
57
+ class NodeSelector(TypedDict):
58
+ """A node selector represents the union of the results of one or more label queries over a
59
+ set of nodes; that is, it represents the OR of the selectors represented by the node
60
+ selector terms.
61
+ """
62
+
63
+ nodeSelectorTerms: list[NodeSelectorTerm]
64
+
65
+
66
+ class NodeAffinity(TypedDict):
67
+ """Node affinity is a group of node affinity scheduling rules."""
68
+
69
+ preferredDuringSchedulingIgnoredDuringExecution: NotRequired[list[PreferredSchedulingTerm]]
70
+ requiredDuringSchedulingIgnoredDuringExecution: NotRequired[NodeSelector]
71
+
72
+
73
+ class LabelSelectorRequirement(TypedDict):
74
+ """A label selector requirement is a selector that contains values, a key, and an operator
75
+ that relates the key and values.
76
+ """
77
+
78
+ key: str
79
+ operator: str
80
+ values: NotRequired[list[str]]
81
+
82
+
83
+ class LabelSelector(TypedDict):
84
+ """A label selector is a label query over a set of resources. The result of matchLabels and
85
+ matchExpressions are ANDed. An empty label selector matches all objects. A null label
86
+ selector matches no objects.
87
+ """
88
+
89
+ matchExpressions: NotRequired[list[LabelSelectorRequirement]]
90
+ matchLabels: NotRequired[dict[str, str]]
91
+
92
+
93
+ class PodAffinityTerm(TypedDict):
94
+ """Defines a set of pods (namely those matching the labelSelector relative to the given
95
+ namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-
96
+ affinity) with, where co-located is defined as running on a node whose value of the
97
+ label with key <topologyKey> matches that of any node on which a pod of the set of pods
98
+ is running
99
+ """
100
+
101
+ labelSelector: NotRequired[LabelSelector]
102
+ matchLabelKeys: NotRequired[list[str]]
103
+ mismatchLabelKeys: NotRequired[list[str]]
104
+ namespaceSelector: NotRequired[LabelSelector]
105
+ namespaces: NotRequired[list[str]]
106
+ topologyKey: str
107
+
108
+
109
+ class WeightedPodAffinityTerm(TypedDict):
110
+ """The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to
111
+ find the most preferred node(s)
112
+ """
113
+
114
+ podAffinityTerm: PodAffinityTerm
115
+ weight: int
116
+
117
+
118
+ class PodAffinity(TypedDict):
119
+ """Pod affinity is a group of inter pod affinity scheduling rules."""
120
+
121
+ preferredDuringSchedulingIgnoredDuringExecution: NotRequired[list[WeightedPodAffinityTerm]]
122
+ requiredDuringSchedulingIgnoredDuringExecution: NotRequired[list[PodAffinityTerm]]
123
+
124
+
125
+ class PodAntiAffinity(TypedDict):
126
+ """Pod anti affinity is a group of inter pod anti affinity scheduling rules."""
127
+
128
+ preferredDuringSchedulingIgnoredDuringExecution: NotRequired[list[WeightedPodAffinityTerm]]
129
+ requiredDuringSchedulingIgnoredDuringExecution: NotRequired[list[PodAffinityTerm]]
130
+
131
+
132
+ class Affinity(TypedDict):
133
+ """Affinity is a group of affinity scheduling rules."""
134
+
135
+ nodeAffinity: NotRequired[NodeAffinity]
136
+ podAffinity: NotRequired[PodAffinity]
137
+ podAntiAffinity: NotRequired[PodAntiAffinity]
138
+
139
+
140
+ class AppArmorProfile(TypedDict):
141
+ """AppArmorProfile defines a pod or container's AppArmor settings."""
142
+
143
+ localhostProfile: NotRequired[str]
144
+ type: str
145
+
146
+
147
+ class AzureDiskVolumeSource(TypedDict):
148
+ """AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod."""
149
+
150
+ cachingMode: NotRequired[str]
151
+ diskName: str
152
+ diskURI: str
153
+ fsType: NotRequired[str]
154
+ kind: NotRequired[str]
155
+ readOnly: NotRequired[bool]
156
+
157
+
158
+ class AzureFileVolumeSource(TypedDict):
159
+ """AzureFile represents an Azure File Service mount on the host and bind mount to the pod."""
160
+
161
+ readOnly: NotRequired[bool]
162
+ secretName: str
163
+ shareName: str
164
+
165
+
166
+ class LocalObjectReference(TypedDict):
167
+ """LocalObjectReference contains enough information to let you locate the referenced object
168
+ inside the same namespace.
169
+ """
170
+
171
+ name: NotRequired[str]
172
+
173
+
174
+ class CSIVolumeSource(TypedDict):
175
+ """Represents a source location of a volume to mount, managed by an external CSI driver"""
176
+
177
+ driver: str
178
+ fsType: NotRequired[str]
179
+ nodePublishSecretRef: NotRequired[LocalObjectReference]
180
+ readOnly: NotRequired[bool]
181
+ volumeAttributes: NotRequired[dict[str, str]]
182
+
183
+
184
+ class Capabilities(TypedDict):
185
+ """Adds and removes POSIX capabilities from running containers."""
186
+
187
+ add: NotRequired[list[str]]
188
+ drop: NotRequired[list[str]]
189
+
190
+
191
+ class CephFSVolumeSource(TypedDict):
192
+ """Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do
193
+ not support ownership management or SELinux relabeling.
194
+ """
195
+
196
+ monitors: list[str]
197
+ path: NotRequired[str]
198
+ readOnly: NotRequired[bool]
199
+ secretFile: NotRequired[str]
200
+ secretRef: NotRequired[LocalObjectReference]
201
+ user: NotRequired[str]
202
+
203
+
204
+ class CinderVolumeSource(TypedDict):
205
+ """Represents a cinder volume resource in Openstack. A Cinder volume must exist before
206
+ mounting to a container. The volume must also be in the same region as the kubelet.
207
+ Cinder volumes support ownership management and SELinux relabeling.
208
+ """
209
+
210
+ fsType: NotRequired[str]
211
+ readOnly: NotRequired[bool]
212
+ secretRef: NotRequired[LocalObjectReference]
213
+ volumeID: str
214
+
215
+
216
+ class ClaimSource(TypedDict):
217
+ """ClaimSource describes a reference to a ResourceClaim."""
218
+
219
+ resourceClaimName: NotRequired[str]
220
+ resourceClaimTemplateName: NotRequired[str]
221
+
222
+
223
+ class ClusterTrustBundleProjection(TypedDict):
224
+ """ClusterTrustBundleProjection describes how to select a set of ClusterTrustBundle objects
225
+ and project their contents into the pod filesystem.
226
+ """
227
+
228
+ labelSelector: NotRequired[LabelSelector]
229
+ name: NotRequired[str]
230
+ optional: NotRequired[bool]
231
+ path: str
232
+ signerName: NotRequired[str]
233
+
234
+
235
+ class ConfigMapEnvSource(TypedDict):
236
+ """ConfigMapEnvSource selects a ConfigMap to populate the environment variables with."""
237
+
238
+ name: NotRequired[str]
239
+ optional: NotRequired[bool]
240
+
241
+
242
+ class ConfigMapKeySelector(TypedDict):
243
+ """Selects a key from a ConfigMap."""
244
+
245
+ key: str
246
+ name: NotRequired[str]
247
+ optional: NotRequired[bool]
248
+
249
+
250
+ class KeyToPath(TypedDict):
251
+ """Maps a string key to a path within a volume."""
252
+
253
+ key: str
254
+ mode: NotRequired[int]
255
+ path: str
256
+
257
+
258
+ class ConfigMapProjection(TypedDict):
259
+ """Adapts a ConfigMap into a projected volume."""
260
+
261
+ items: NotRequired[list[KeyToPath]]
262
+ name: NotRequired[str]
263
+ optional: NotRequired[bool]
264
+
265
+
266
+ class ConfigMapVolumeSource(TypedDict):
267
+ """Adapts a ConfigMap into a volume."""
268
+
269
+ defaultMode: NotRequired[int]
270
+ items: NotRequired[list[KeyToPath]]
271
+ name: NotRequired[str]
272
+ optional: NotRequired[bool]
273
+
274
+
275
+ class ObjectFieldSelector(TypedDict):
276
+ """ObjectFieldSelector selects an APIVersioned field of an object."""
277
+
278
+ apiVersion: NotRequired[str]
279
+ fieldPath: str
280
+
281
+
282
+ class ResourceFieldSelector(TypedDict):
283
+ """ResourceFieldSelector represents container resources (cpu, memory) and their output
284
+ format
285
+ """
286
+
287
+ containerName: NotRequired[str]
288
+ divisor: NotRequired[Quantity]
289
+ resource: str
290
+
291
+
292
+ class SecretKeySelector(TypedDict):
293
+ """SecretKeySelector selects a key of a Secret."""
294
+
295
+ key: str
296
+ name: NotRequired[str]
297
+ optional: NotRequired[bool]
298
+
299
+
300
+ class EnvVarSource(TypedDict):
301
+ """EnvVarSource represents a source for the value of an EnvVar."""
302
+
303
+ configMapKeyRef: NotRequired[ConfigMapKeySelector]
304
+ fieldRef: NotRequired[ObjectFieldSelector]
305
+ resourceFieldRef: NotRequired[ResourceFieldSelector]
306
+ secretKeyRef: NotRequired[SecretKeySelector]
307
+
308
+
309
+ class EnvVar(TypedDict):
310
+ """EnvVar represents an environment variable present in a Container."""
311
+
312
+ name: str
313
+ value: NotRequired[str]
314
+ valueFrom: NotRequired[EnvVarSource]
315
+
316
+
317
+ class SecretEnvSource(TypedDict):
318
+ """SecretEnvSource selects a Secret to populate the environment variables with."""
319
+
320
+ name: NotRequired[str]
321
+ optional: NotRequired[bool]
322
+
323
+
324
+ class EnvFromSource(TypedDict):
325
+ """EnvFromSource represents the source of a set of ConfigMaps"""
326
+
327
+ configMapRef: NotRequired[ConfigMapEnvSource]
328
+ prefix: NotRequired[str]
329
+ secretRef: NotRequired[SecretEnvSource]
330
+
331
+
332
+ class ExecAction(TypedDict):
333
+ """ExecAction describes a "run in container" action."""
334
+
335
+ command: NotRequired[list[str]]
336
+
337
+
338
+ class HTTPHeader(TypedDict):
339
+ """HTTPHeader describes a custom header to be used in HTTP probes"""
340
+
341
+ name: str
342
+ value: str
343
+
344
+
345
+ class HTTPGetAction(TypedDict):
346
+ """HTTPGetAction describes an action based on HTTP Get requests."""
347
+
348
+ host: NotRequired[str]
349
+ httpHeaders: NotRequired[list[HTTPHeader]]
350
+ path: NotRequired[str]
351
+ port: int | str
352
+ scheme: NotRequired[str]
353
+
354
+
355
+ class SleepAction(TypedDict):
356
+ """SleepAction describes a "sleep" action."""
357
+
358
+ seconds: int
359
+
360
+
361
+ class TCPSocketAction(TypedDict):
362
+ """TCPSocketAction describes an action based on opening a socket"""
363
+
364
+ host: NotRequired[str]
365
+ port: int | str
366
+
367
+
368
+ class LifecycleHandler(TypedDict):
369
+ """LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One
370
+ and only one of the fields, except TCPSocket must be specified.
371
+ """
372
+
373
+ exec: NotRequired[ExecAction]
374
+ httpGet: NotRequired[HTTPGetAction]
375
+ sleep: NotRequired[SleepAction]
376
+ tcpSocket: NotRequired[TCPSocketAction]
377
+
378
+
379
+ class Lifecycle(TypedDict):
380
+ """Lifecycle describes actions that the management system should take in response to
381
+ container lifecycle events. For the PostStart and PreStop lifecycle handlers, management
382
+ of the container blocks until the action is complete, unless the container process
383
+ fails, in which case the handler is aborted.
384
+ """
385
+
386
+ postStart: NotRequired[LifecycleHandler]
387
+ preStop: NotRequired[LifecycleHandler]
388
+
389
+
390
+ class GRPCAction(TypedDict):
391
+ """GRPCAction specifies an action involving a gRPC service."""
392
+
393
+ port: int
394
+ service: NotRequired[str]
395
+
396
+
397
+ class Probe(TypedDict):
398
+ """Probe describes a health check to be performed against a container to determine whether
399
+ it is alive or ready to receive traffic.
400
+ """
401
+
402
+ exec: NotRequired[ExecAction]
403
+ failureThreshold: NotRequired[int]
404
+ grpc: NotRequired[GRPCAction]
405
+ httpGet: NotRequired[HTTPGetAction]
406
+ initialDelaySeconds: NotRequired[int]
407
+ periodSeconds: NotRequired[int]
408
+ successThreshold: NotRequired[int]
409
+ tcpSocket: NotRequired[TCPSocketAction]
410
+ terminationGracePeriodSeconds: NotRequired[int]
411
+ timeoutSeconds: NotRequired[int]
412
+
413
+
414
+ class ContainerPort(TypedDict):
415
+ """ContainerPort represents a network port in a single container."""
416
+
417
+ containerPort: int
418
+ hostIP: NotRequired[str]
419
+ hostPort: NotRequired[int]
420
+ name: NotRequired[str]
421
+ protocol: NotRequired[str]
422
+
423
+
424
+ class ContainerResizePolicy(TypedDict):
425
+ """ContainerResizePolicy represents resource resize policy for the container."""
426
+
427
+ resourceName: str
428
+ restartPolicy: str
429
+
430
+
431
+ class ResourceClaim(TypedDict):
432
+ """ResourceClaim references one entry in PodSpec.ResourceClaims."""
433
+
434
+ name: str
435
+
436
+
437
+ class ResourceRequirements(TypedDict):
438
+ """ResourceRequirements describes the compute resource requirements."""
439
+
440
+ claims: NotRequired[list[ResourceClaim]]
441
+ limits: NotRequired[dict[str, Quantity]]
442
+ requests: NotRequired[dict[str, Quantity]]
443
+
444
+
445
+ class SELinuxOptions(TypedDict):
446
+ """SELinuxOptions are the labels to be applied to the container"""
447
+
448
+ level: NotRequired[str]
449
+ role: NotRequired[str]
450
+ type: NotRequired[str]
451
+ user: NotRequired[str]
452
+
453
+
454
+ class SeccompProfile(TypedDict):
455
+ """SeccompProfile defines a pod/container's seccomp profile settings. Only one profile
456
+ source may be set.
457
+ """
458
+
459
+ localhostProfile: NotRequired[str]
460
+ type: str
461
+
462
+
463
+ class WindowsSecurityContextOptions(TypedDict):
464
+ """WindowsSecurityContextOptions contain Windows-specific options and credentials."""
465
+
466
+ gmsaCredentialSpec: NotRequired[str]
467
+ gmsaCredentialSpecName: NotRequired[str]
468
+ hostProcess: NotRequired[bool]
469
+ runAsUserName: NotRequired[str]
470
+
471
+
472
+ class SecurityContext(TypedDict):
473
+ """SecurityContext holds security configuration that will be applied to a container. Some
474
+ fields are present in both SecurityContext and PodSecurityContext. When both are set,
475
+ the values in SecurityContext take precedence.
476
+ """
477
+
478
+ allowPrivilegeEscalation: NotRequired[bool]
479
+ appArmorProfile: NotRequired[AppArmorProfile]
480
+ capabilities: NotRequired[Capabilities]
481
+ privileged: NotRequired[bool]
482
+ procMount: NotRequired[str]
483
+ readOnlyRootFilesystem: NotRequired[bool]
484
+ runAsGroup: NotRequired[int]
485
+ runAsNonRoot: NotRequired[bool]
486
+ runAsUser: NotRequired[int]
487
+ seLinuxOptions: NotRequired[SELinuxOptions]
488
+ seccompProfile: NotRequired[SeccompProfile]
489
+ windowsOptions: NotRequired[WindowsSecurityContextOptions]
490
+
491
+
492
+ class VolumeDevice(TypedDict):
493
+ """volumeDevice describes a mapping of a raw block device within a container."""
494
+
495
+ devicePath: str
496
+ name: str
497
+
498
+
499
+ class VolumeMount(TypedDict):
500
+ """VolumeMount describes a mounting of a Volume within a container."""
501
+
502
+ mountPath: str
503
+ mountPropagation: NotRequired[str]
504
+ name: str
505
+ readOnly: NotRequired[bool]
506
+ recursiveReadOnly: NotRequired[str]
507
+ subPath: NotRequired[str]
508
+ subPathExpr: NotRequired[str]
509
+
510
+
511
+ class Container(TypedDict):
512
+ """A single application container that you want to run within a pod."""
513
+
514
+ args: NotRequired[list[str]]
515
+ command: NotRequired[list[str]]
516
+ env: NotRequired[list[EnvVar]]
517
+ envFrom: NotRequired[list[EnvFromSource]]
518
+ image: NotRequired[str]
519
+ imagePullPolicy: NotRequired[str]
520
+ lifecycle: NotRequired[Lifecycle]
521
+ livenessProbe: NotRequired[Probe]
522
+ name: str
523
+ ports: NotRequired[list[ContainerPort]]
524
+ readinessProbe: NotRequired[Probe]
525
+ resizePolicy: NotRequired[list[ContainerResizePolicy]]
526
+ resources: NotRequired[ResourceRequirements]
527
+ restartPolicy: NotRequired[str]
528
+ securityContext: NotRequired[SecurityContext]
529
+ startupProbe: NotRequired[Probe]
530
+ stdin: NotRequired[bool]
531
+ stdinOnce: NotRequired[bool]
532
+ terminationMessagePath: NotRequired[str]
533
+ terminationMessagePolicy: NotRequired[str]
534
+ tty: NotRequired[bool]
535
+ volumeDevices: NotRequired[list[VolumeDevice]]
536
+ volumeMounts: NotRequired[list[VolumeMount]]
537
+ workingDir: NotRequired[str]
538
+
539
+
540
+ class ContainerStateRunning(TypedDict):
541
+ """ContainerStateRunning is a running state of a container."""
542
+
543
+ startedAt: NotRequired[Time]
544
+
545
+
546
+ class ContainerStateTerminated(TypedDict):
547
+ """ContainerStateTerminated is a terminated state of a container."""
548
+
549
+ containerID: NotRequired[str]
550
+ exitCode: int
551
+ finishedAt: NotRequired[Time]
552
+ message: NotRequired[str]
553
+ reason: NotRequired[str]
554
+ signal: NotRequired[int]
555
+ startedAt: NotRequired[Time]
556
+
557
+
558
+ class ContainerStateWaiting(TypedDict):
559
+ """ContainerStateWaiting is a waiting state of a container."""
560
+
561
+ message: NotRequired[str]
562
+ reason: NotRequired[str]
563
+
564
+
565
+ class ContainerState(TypedDict):
566
+ """ContainerState holds a possible state of container. Only one of its members may be
567
+ specified. If none of them is specified, the default one is ContainerStateWaiting.
568
+ """
569
+
570
+ running: NotRequired[ContainerStateRunning]
571
+ terminated: NotRequired[ContainerStateTerminated]
572
+ waiting: NotRequired[ContainerStateWaiting]
573
+
574
+
575
+ class VolumeMountStatus(TypedDict):
576
+ """VolumeMountStatus shows status of volume mounts."""
577
+
578
+ mountPath: str
579
+ name: str
580
+ readOnly: NotRequired[bool]
581
+ recursiveReadOnly: NotRequired[str]
582
+
583
+
584
+ class ContainerStatus(TypedDict):
585
+ """ContainerStatus contains details for the current status of this container."""
586
+
587
+ allocatedResources: NotRequired[dict[str, Quantity]]
588
+ containerID: NotRequired[str]
589
+ image: str
590
+ imageID: str
591
+ lastState: NotRequired[ContainerState]
592
+ name: str
593
+ ready: bool
594
+ resources: NotRequired[ResourceRequirements]
595
+ restartCount: int
596
+ started: NotRequired[bool]
597
+ state: NotRequired[ContainerState]
598
+ volumeMounts: NotRequired[list[VolumeMountStatus]]
599
+
600
+
601
+ class DownwardAPIVolumeFile(TypedDict):
602
+ """DownwardAPIVolumeFile represents information to create the file containing the pod field"""
603
+
604
+ fieldRef: NotRequired[ObjectFieldSelector]
605
+ mode: NotRequired[int]
606
+ path: str
607
+ resourceFieldRef: NotRequired[ResourceFieldSelector]
608
+
609
+
610
+ class DownwardAPIProjection(TypedDict):
611
+ """Represents downward API info for projecting into a projected volume. Note that this is
612
+ identical to a downwardAPI volume source without the default mode.
613
+ """
614
+
615
+ items: NotRequired[list[DownwardAPIVolumeFile]]
616
+
617
+
618
+ class DownwardAPIVolumeSource(TypedDict):
619
+ """DownwardAPIVolumeSource represents a volume containing downward API info. Downward API
620
+ volumes support ownership management and SELinux relabeling.
621
+ """
622
+
623
+ defaultMode: NotRequired[int]
624
+ items: NotRequired[list[DownwardAPIVolumeFile]]
625
+
626
+
627
+ class EmptyDirVolumeSource(TypedDict):
628
+ """Represents an empty directory for a pod. Empty directory volumes support ownership
629
+ management and SELinux relabeling.
630
+ """
631
+
632
+ medium: NotRequired[str]
633
+ sizeLimit: NotRequired[Quantity]
634
+
635
+
636
+ class EphemeralContainer(TypedDict):
637
+ """An EphemeralContainer is a temporary container that you may add to an existing Pod for
638
+ user-initiated activities such as debugging. Ephemeral containers have no resource or
639
+ scheduling guarantees, and they will not be restarted when they exit or when a Pod is
640
+ removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the
641
+ Pod to exceed its resource allocation.
642
+ """
643
+
644
+ args: NotRequired[list[str]]
645
+ command: NotRequired[list[str]]
646
+ env: NotRequired[list[EnvVar]]
647
+ envFrom: NotRequired[list[EnvFromSource]]
648
+ image: NotRequired[str]
649
+ imagePullPolicy: NotRequired[str]
650
+ lifecycle: NotRequired[Lifecycle]
651
+ livenessProbe: NotRequired[Probe]
652
+ name: str
653
+ ports: NotRequired[list[ContainerPort]]
654
+ readinessProbe: NotRequired[Probe]
655
+ resizePolicy: NotRequired[list[ContainerResizePolicy]]
656
+ resources: NotRequired[ResourceRequirements]
657
+ restartPolicy: NotRequired[str]
658
+ securityContext: NotRequired[SecurityContext]
659
+ startupProbe: NotRequired[Probe]
660
+ stdin: NotRequired[bool]
661
+ stdinOnce: NotRequired[bool]
662
+ targetContainerName: NotRequired[str]
663
+ terminationMessagePath: NotRequired[str]
664
+ terminationMessagePolicy: NotRequired[str]
665
+ tty: NotRequired[bool]
666
+ volumeDevices: NotRequired[list[VolumeDevice]]
667
+ volumeMounts: NotRequired[list[VolumeMount]]
668
+ workingDir: NotRequired[str]
669
+
670
+
671
+ class FieldsV1(TypedDict):
672
+ """FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format."""
673
+
674
+ pass
675
+
676
+
677
+ class ManagedFieldsEntry(TypedDict):
678
+ """ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource
679
+ that the fieldset applies to.
680
+ """
681
+
682
+ apiVersion: NotRequired[str]
683
+ fieldsType: NotRequired[str]
684
+ fieldsV1: NotRequired[FieldsV1]
685
+ manager: NotRequired[str]
686
+ operation: NotRequired[str]
687
+ subresource: NotRequired[str]
688
+ time: NotRequired[Time]
689
+
690
+
691
+ class OwnerReference(TypedDict):
692
+ """OwnerReference contains enough information to let you identify an owning object. An
693
+ owning object must be in the same namespace as the dependent, or be cluster-scoped, so
694
+ there is no namespace field.
695
+ """
696
+
697
+ apiVersion: str
698
+ blockOwnerDeletion: NotRequired[bool]
699
+ controller: NotRequired[bool]
700
+ kind: str
701
+ name: str
702
+ uid: str
703
+
704
+
705
+ class ObjectMeta(TypedDict):
706
+ """ObjectMeta is metadata that all persisted resources must have, which includes all
707
+ objects users must create.
708
+ """
709
+
710
+ annotations: NotRequired[dict[str, str]]
711
+ creationTimestamp: NotRequired[ReadOnly[Time]]
712
+ deletionGracePeriodSeconds: NotRequired[ReadOnly[int]]
713
+ deletionTimestamp: NotRequired[ReadOnly[Time]]
714
+ finalizers: NotRequired[list[str]]
715
+ generateName: NotRequired[str]
716
+ generation: NotRequired[ReadOnly[int]]
717
+ labels: NotRequired[dict[str, str]]
718
+ managedFields: NotRequired[list[ManagedFieldsEntry]]
719
+ name: NotRequired[str]
720
+ namespace: NotRequired[str]
721
+ ownerReferences: NotRequired[list[OwnerReference]]
722
+ resourceVersion: NotRequired[ReadOnly[str]]
723
+ selfLink: NotRequired[str]
724
+ uid: NotRequired[ReadOnly[str]]
725
+
726
+
727
+ class TypedLocalObjectReference(TypedDict):
728
+ """TypedLocalObjectReference contains enough information to let you locate the typed
729
+ referenced object inside the same namespace.
730
+ """
731
+
732
+ apiGroup: NotRequired[str]
733
+ kind: str
734
+ name: str
735
+
736
+
737
+ class TypedObjectReference(TypedDict):
738
+ """TypedObjectReference contains enough information to locate a typed referenced object."""
739
+
740
+ apiGroup: NotRequired[str]
741
+ kind: str
742
+ name: str
743
+ namespace: NotRequired[str]
744
+
745
+
746
+ class VolumeResourceRequirements(TypedDict):
747
+ """VolumeResourceRequirements describes the storage resource requirements for a volume."""
748
+
749
+ limits: NotRequired[dict[str, Quantity]]
750
+ requests: NotRequired[dict[str, Quantity]]
751
+
752
+
753
+ class PersistentVolumeClaimSpec(TypedDict):
754
+ """PersistentVolumeClaimSpec describes the common attributes of storage devices and allows
755
+ a Source for provider-specific attributes
756
+ """
757
+
758
+ accessModes: NotRequired[list[str]]
759
+ dataSource: NotRequired[TypedLocalObjectReference]
760
+ dataSourceRef: NotRequired[TypedObjectReference]
761
+ resources: NotRequired[VolumeResourceRequirements]
762
+ selector: NotRequired[LabelSelector]
763
+ storageClassName: NotRequired[str]
764
+ volumeAttributesClassName: NotRequired[str]
765
+ volumeMode: NotRequired[str]
766
+ volumeName: NotRequired[str]
767
+
768
+
769
+ class PersistentVolumeClaimTemplate(TypedDict):
770
+ """PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part
771
+ of an EphemeralVolumeSource.
772
+ """
773
+
774
+ metadata: NotRequired[ObjectMeta]
775
+ spec: PersistentVolumeClaimSpec
776
+
777
+
778
+ class EphemeralVolumeSource(TypedDict):
779
+ """Represents an ephemeral volume that is handled by a normal storage driver."""
780
+
781
+ volumeClaimTemplate: NotRequired[PersistentVolumeClaimTemplate]
782
+
783
+
784
+ class FCVolumeSource(TypedDict):
785
+ """Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as
786
+ read/write once. Fibre Channel volumes support ownership management and SELinux
787
+ relabeling.
788
+ """
789
+
790
+ fsType: NotRequired[str]
791
+ lun: NotRequired[int]
792
+ readOnly: NotRequired[bool]
793
+ targetWWNs: NotRequired[list[str]]
794
+ wwids: NotRequired[list[str]]
795
+
796
+
797
+ class FlexVolumeSource(TypedDict):
798
+ """FlexVolume represents a generic volume resource that is provisioned/attached using an
799
+ exec based plugin.
800
+ """
801
+
802
+ driver: str
803
+ fsType: NotRequired[str]
804
+ options: NotRequired[dict[str, str]]
805
+ readOnly: NotRequired[bool]
806
+ secretRef: NotRequired[LocalObjectReference]
807
+
808
+
809
+ class FlockerVolumeSource(TypedDict):
810
+ """Represents a Flocker volume mounted by the Flocker agent. One and only one of
811
+ datasetName and datasetUUID should be set. Flocker volumes do not support ownership
812
+ management or SELinux relabeling.
813
+ """
814
+
815
+ datasetName: NotRequired[str]
816
+ datasetUUID: NotRequired[str]
817
+
818
+
819
+ class GCEPersistentDiskVolumeSource(TypedDict):
820
+ """Represents a Persistent Disk resource in Google Compute Engine."""
821
+
822
+ fsType: NotRequired[str]
823
+ partition: NotRequired[int]
824
+ pdName: str
825
+ readOnly: NotRequired[bool]
826
+
827
+
828
+ class GitRepoVolumeSource(TypedDict):
829
+ """Represents a volume that is populated with the contents of a git repository. Git repo
830
+ volumes do not support ownership management. Git repo volumes support SELinux
831
+ relabeling.
832
+ """
833
+
834
+ directory: NotRequired[str]
835
+ repository: str
836
+ revision: NotRequired[str]
837
+
838
+
839
+ class GlusterfsVolumeSource(TypedDict):
840
+ """Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not
841
+ support ownership management or SELinux relabeling.
842
+ """
843
+
844
+ endpoints: str
845
+ path: str
846
+ readOnly: NotRequired[bool]
847
+
848
+
849
+ class HostAlias(TypedDict):
850
+ """HostAlias holds the mapping between IP and hostnames that will be injected as an entry
851
+ in the pod's hosts file.
852
+ """
853
+
854
+ hostnames: NotRequired[list[str]]
855
+ ip: NotRequired[str]
856
+
857
+
858
+ class HostIP(TypedDict):
859
+ """HostIP represents a single IP address allocated to the host."""
860
+
861
+ ip: NotRequired[str]
862
+
863
+
864
+ class HostPathVolumeSource(TypedDict):
865
+ """Represents a host path mapped into a pod. Host path volumes do not support ownership
866
+ management or SELinux relabeling.
867
+ """
868
+
869
+ path: str
870
+ type: NotRequired[str]
871
+
872
+
873
+ class ISCSIVolumeSource(TypedDict):
874
+ """Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI
875
+ volumes support ownership management and SELinux relabeling.
876
+ """
877
+
878
+ chapAuthDiscovery: NotRequired[bool]
879
+ chapAuthSession: NotRequired[bool]
880
+ fsType: NotRequired[str]
881
+ initiatorName: NotRequired[str]
882
+ iqn: str
883
+ iscsiInterface: NotRequired[str]
884
+ lun: int
885
+ portals: NotRequired[list[str]]
886
+ readOnly: NotRequired[bool]
887
+ secretRef: NotRequired[LocalObjectReference]
888
+ targetPortal: str
889
+
890
+
891
+ class NFSVolumeSource(TypedDict):
892
+ """Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support
893
+ ownership management or SELinux relabeling.
894
+ """
895
+
896
+ path: str
897
+ readOnly: NotRequired[bool]
898
+ server: str
899
+
900
+
901
+ class PersistentVolumeClaimVolumeSource(TypedDict):
902
+ """PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This
903
+ volume finds the bound PV and mounts that volume for the pod. A
904
+ PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of
905
+ volume that is owned by someone else (the system).
906
+ """
907
+
908
+ claimName: str
909
+ readOnly: NotRequired[bool]
910
+
911
+
912
+ class PhotonPersistentDiskVolumeSource(TypedDict):
913
+ """Represents a Photon Controller persistent disk resource."""
914
+
915
+ fsType: NotRequired[str]
916
+ pdID: str
917
+
918
+
919
+ class PodDNSConfigOption(TypedDict):
920
+ """PodDNSConfigOption defines DNS resolver options of a pod."""
921
+
922
+ name: NotRequired[str]
923
+ value: NotRequired[str]
924
+
925
+
926
+ class PodDNSConfig(TypedDict):
927
+ """PodDNSConfig defines the DNS parameters of a pod in addition to those generated from
928
+ DNSPolicy.
929
+ """
930
+
931
+ nameservers: NotRequired[list[str]]
932
+ options: NotRequired[list[PodDNSConfigOption]]
933
+ searches: NotRequired[list[str]]
934
+
935
+
936
+ class PodOS(TypedDict):
937
+ """PodOS defines the OS parameters of a pod."""
938
+
939
+ name: str
940
+
941
+
942
+ class PodReadinessGate(TypedDict):
943
+ """PodReadinessGate contains the reference to a pod condition"""
944
+
945
+ conditionType: str
946
+
947
+
948
+ class PodResourceClaim(TypedDict):
949
+ """PodResourceClaim references exactly one ResourceClaim through a ClaimSource. It adds a
950
+ name to it that uniquely identifies the ResourceClaim inside the Pod. Containers that
951
+ need access to the ResourceClaim reference it with this name.
952
+ """
953
+
954
+ name: str
955
+ source: NotRequired[ClaimSource]
956
+
957
+
958
+ class PodSchedulingGate(TypedDict):
959
+ """PodSchedulingGate is associated to a Pod to guard its scheduling."""
960
+
961
+ name: str
962
+
963
+
964
+ class Sysctl(TypedDict):
965
+ """Sysctl defines a kernel parameter to be set"""
966
+
967
+ name: str
968
+ value: str
969
+
970
+
971
+ class PodSecurityContext(TypedDict):
972
+ """PodSecurityContext holds pod-level security attributes and common container settings.
973
+ Some fields are also present in container.securityContext. Field values of
974
+ container.securityContext take precedence over field values of PodSecurityContext.
975
+ """
976
+
977
+ appArmorProfile: NotRequired[AppArmorProfile]
978
+ fsGroup: NotRequired[int]
979
+ fsGroupChangePolicy: NotRequired[str]
980
+ runAsGroup: NotRequired[int]
981
+ runAsNonRoot: NotRequired[bool]
982
+ runAsUser: NotRequired[int]
983
+ seLinuxOptions: NotRequired[SELinuxOptions]
984
+ seccompProfile: NotRequired[SeccompProfile]
985
+ supplementalGroups: NotRequired[list[int]]
986
+ sysctls: NotRequired[list[Sysctl]]
987
+ windowsOptions: NotRequired[WindowsSecurityContextOptions]
988
+
989
+
990
+ class Toleration(TypedDict):
991
+ """The pod this Toleration is attached to tolerates any taint that matches the triple
992
+ <key,value,effect> using the matching operator <operator>.
993
+ """
994
+
995
+ effect: NotRequired[str]
996
+ key: NotRequired[str]
997
+ operator: NotRequired[str]
998
+ tolerationSeconds: NotRequired[int]
999
+ value: NotRequired[str]
1000
+
1001
+
1002
+ class TopologySpreadConstraint(TypedDict):
1003
+ """TopologySpreadConstraint specifies how to spread matching pods among the given topology."""
1004
+
1005
+ labelSelector: NotRequired[LabelSelector]
1006
+ matchLabelKeys: NotRequired[list[str]]
1007
+ maxSkew: int
1008
+ minDomains: NotRequired[int]
1009
+ nodeAffinityPolicy: NotRequired[str]
1010
+ nodeTaintsPolicy: NotRequired[str]
1011
+ topologyKey: str
1012
+ whenUnsatisfiable: str
1013
+
1014
+
1015
+ class PortworxVolumeSource(TypedDict):
1016
+ """PortworxVolumeSource represents a Portworx volume resource."""
1017
+
1018
+ fsType: NotRequired[str]
1019
+ readOnly: NotRequired[bool]
1020
+ volumeID: str
1021
+
1022
+
1023
+ class SecretProjection(TypedDict):
1024
+ """Adapts a secret into a projected volume."""
1025
+
1026
+ items: NotRequired[list[KeyToPath]]
1027
+ name: NotRequired[str]
1028
+ optional: NotRequired[bool]
1029
+
1030
+
1031
+ class ServiceAccountTokenProjection(TypedDict):
1032
+ """ServiceAccountTokenProjection represents a projected service account token volume. This
1033
+ projection can be used to insert a service account token into the pods runtime
1034
+ filesystem for use against APIs (Kubernetes API Server or otherwise).
1035
+ """
1036
+
1037
+ audience: NotRequired[str]
1038
+ expirationSeconds: NotRequired[int]
1039
+ path: str
1040
+
1041
+
1042
+ class VolumeProjection(TypedDict):
1043
+ """Projection that may be projected along with other supported volume types"""
1044
+
1045
+ clusterTrustBundle: NotRequired[ClusterTrustBundleProjection]
1046
+ configMap: NotRequired[ConfigMapProjection]
1047
+ downwardAPI: NotRequired[DownwardAPIProjection]
1048
+ secret: NotRequired[SecretProjection]
1049
+ serviceAccountToken: NotRequired[ServiceAccountTokenProjection]
1050
+
1051
+
1052
+ class ProjectedVolumeSource(TypedDict):
1053
+ """Represents a projected volume source"""
1054
+
1055
+ defaultMode: NotRequired[int]
1056
+ sources: NotRequired[list[VolumeProjection]]
1057
+
1058
+
1059
+ class QuobyteVolumeSource(TypedDict):
1060
+ """Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not
1061
+ support ownership management or SELinux relabeling.
1062
+ """
1063
+
1064
+ group: NotRequired[str]
1065
+ readOnly: NotRequired[bool]
1066
+ registry: str
1067
+ tenant: NotRequired[str]
1068
+ user: NotRequired[str]
1069
+ volume: str
1070
+
1071
+
1072
+ class RBDVolumeSource(TypedDict):
1073
+ """Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes
1074
+ support ownership management and SELinux relabeling.
1075
+ """
1076
+
1077
+ fsType: NotRequired[str]
1078
+ image: str
1079
+ keyring: NotRequired[str]
1080
+ monitors: list[str]
1081
+ pool: NotRequired[str]
1082
+ readOnly: NotRequired[bool]
1083
+ secretRef: NotRequired[LocalObjectReference]
1084
+ user: NotRequired[str]
1085
+
1086
+
1087
+ class ScaleIOVolumeSource(TypedDict):
1088
+ """ScaleIOVolumeSource represents a persistent ScaleIO volume"""
1089
+
1090
+ fsType: NotRequired[str]
1091
+ gateway: str
1092
+ protectionDomain: NotRequired[str]
1093
+ readOnly: NotRequired[bool]
1094
+ secretRef: LocalObjectReference
1095
+ sslEnabled: NotRequired[bool]
1096
+ storageMode: NotRequired[str]
1097
+ storagePool: NotRequired[str]
1098
+ system: str
1099
+ volumeName: NotRequired[str]
1100
+
1101
+
1102
+ class SecretVolumeSource(TypedDict):
1103
+ """Adapts a Secret into a volume."""
1104
+
1105
+ defaultMode: NotRequired[int]
1106
+ items: NotRequired[list[KeyToPath]]
1107
+ optional: NotRequired[bool]
1108
+ secretName: NotRequired[str]
1109
+
1110
+
1111
+ class StorageOSVolumeSource(TypedDict):
1112
+ """Represents a StorageOS persistent volume resource."""
1113
+
1114
+ fsType: NotRequired[str]
1115
+ readOnly: NotRequired[bool]
1116
+ secretRef: NotRequired[LocalObjectReference]
1117
+ volumeName: NotRequired[str]
1118
+ volumeNamespace: NotRequired[str]
1119
+
1120
+
1121
+ class VsphereVirtualDiskVolumeSource(TypedDict):
1122
+ """Represents a vSphere volume resource."""
1123
+
1124
+ fsType: NotRequired[str]
1125
+ storagePolicyID: NotRequired[str]
1126
+ storagePolicyName: NotRequired[str]
1127
+ volumePath: str
1128
+
1129
+
1130
+ class Volume(TypedDict):
1131
+ """Volume represents a named volume in a pod that may be accessed by any container in the
1132
+ pod.
1133
+ """
1134
+
1135
+ awsElasticBlockStore: NotRequired[AWSElasticBlockStoreVolumeSource]
1136
+ azureDisk: NotRequired[AzureDiskVolumeSource]
1137
+ azureFile: NotRequired[AzureFileVolumeSource]
1138
+ cephfs: NotRequired[CephFSVolumeSource]
1139
+ cinder: NotRequired[CinderVolumeSource]
1140
+ configMap: NotRequired[ConfigMapVolumeSource]
1141
+ csi: NotRequired[CSIVolumeSource]
1142
+ downwardAPI: NotRequired[DownwardAPIVolumeSource]
1143
+ emptyDir: NotRequired[EmptyDirVolumeSource]
1144
+ ephemeral: NotRequired[EphemeralVolumeSource]
1145
+ fc: NotRequired[FCVolumeSource]
1146
+ flexVolume: NotRequired[FlexVolumeSource]
1147
+ flocker: NotRequired[FlockerVolumeSource]
1148
+ gcePersistentDisk: NotRequired[GCEPersistentDiskVolumeSource]
1149
+ gitRepo: NotRequired[GitRepoVolumeSource]
1150
+ glusterfs: NotRequired[GlusterfsVolumeSource]
1151
+ hostPath: NotRequired[HostPathVolumeSource]
1152
+ iscsi: NotRequired[ISCSIVolumeSource]
1153
+ name: str
1154
+ nfs: NotRequired[NFSVolumeSource]
1155
+ persistentVolumeClaim: NotRequired[PersistentVolumeClaimVolumeSource]
1156
+ photonPersistentDisk: NotRequired[PhotonPersistentDiskVolumeSource]
1157
+ portworxVolume: NotRequired[PortworxVolumeSource]
1158
+ projected: NotRequired[ProjectedVolumeSource]
1159
+ quobyte: NotRequired[QuobyteVolumeSource]
1160
+ rbd: NotRequired[RBDVolumeSource]
1161
+ scaleIO: NotRequired[ScaleIOVolumeSource]
1162
+ secret: NotRequired[SecretVolumeSource]
1163
+ storageos: NotRequired[StorageOSVolumeSource]
1164
+ vsphereVolume: NotRequired[VsphereVirtualDiskVolumeSource]
1165
+
1166
+
1167
+ class PodSpec(TypedDict):
1168
+ """PodSpec is a description of a pod."""
1169
+
1170
+ activeDeadlineSeconds: NotRequired[int]
1171
+ affinity: NotRequired[Affinity]
1172
+ automountServiceAccountToken: NotRequired[bool]
1173
+ containers: list[Container]
1174
+ dnsConfig: NotRequired[PodDNSConfig]
1175
+ dnsPolicy: NotRequired[str]
1176
+ enableServiceLinks: NotRequired[bool]
1177
+ ephemeralContainers: NotRequired[list[EphemeralContainer]]
1178
+ hostAliases: NotRequired[list[HostAlias]]
1179
+ hostIPC: NotRequired[bool]
1180
+ hostNetwork: NotRequired[bool]
1181
+ hostPID: NotRequired[bool]
1182
+ hostUsers: NotRequired[bool]
1183
+ hostname: NotRequired[str]
1184
+ imagePullSecrets: NotRequired[list[LocalObjectReference]]
1185
+ initContainers: NotRequired[list[Container]]
1186
+ nodeName: NotRequired[str]
1187
+ nodeSelector: NotRequired[dict[str, str]]
1188
+ os: NotRequired[PodOS]
1189
+ overhead: NotRequired[dict[str, Quantity]]
1190
+ preemptionPolicy: NotRequired[str]
1191
+ priority: NotRequired[int]
1192
+ priorityClassName: NotRequired[str]
1193
+ readinessGates: NotRequired[list[PodReadinessGate]]
1194
+ resourceClaims: NotRequired[list[PodResourceClaim]]
1195
+ restartPolicy: NotRequired[str]
1196
+ runtimeClassName: NotRequired[str]
1197
+ schedulerName: NotRequired[str]
1198
+ schedulingGates: NotRequired[list[PodSchedulingGate]]
1199
+ securityContext: NotRequired[PodSecurityContext]
1200
+ serviceAccount: NotRequired[str]
1201
+ serviceAccountName: NotRequired[str]
1202
+ setHostnameAsFQDN: NotRequired[bool]
1203
+ shareProcessNamespace: NotRequired[bool]
1204
+ subdomain: NotRequired[str]
1205
+ terminationGracePeriodSeconds: NotRequired[int]
1206
+ tolerations: NotRequired[list[Toleration]]
1207
+ topologySpreadConstraints: NotRequired[list[TopologySpreadConstraint]]
1208
+ volumes: NotRequired[list[Volume]]
1209
+
1210
+
1211
+ class PodCondition(TypedDict):
1212
+ """PodCondition contains details for the current condition of this pod."""
1213
+
1214
+ lastProbeTime: NotRequired[Time]
1215
+ lastTransitionTime: NotRequired[Time]
1216
+ message: NotRequired[str]
1217
+ reason: NotRequired[str]
1218
+ status: str
1219
+ type: str
1220
+
1221
+
1222
+ class PodIP(TypedDict):
1223
+ """PodIP represents a single IP address allocated to the pod."""
1224
+
1225
+ ip: NotRequired[str]
1226
+
1227
+
1228
+ class PodResourceClaimStatus(TypedDict):
1229
+ """PodResourceClaimStatus is stored in the PodStatus for each PodResourceClaim which
1230
+ references a ResourceClaimTemplate. It stores the generated name for the corresponding
1231
+ ResourceClaim.
1232
+ """
1233
+
1234
+ name: str
1235
+ resourceClaimName: NotRequired[str]
1236
+
1237
+
1238
+ class PodStatus(TypedDict):
1239
+ """PodStatus represents information about the status of a pod. Status may trail the actual
1240
+ state of a system, especially if the node that hosts the pod cannot contact the control
1241
+ plane.
1242
+ """
1243
+
1244
+ conditions: NotRequired[list[PodCondition]]
1245
+ containerStatuses: NotRequired[list[ContainerStatus]]
1246
+ ephemeralContainerStatuses: NotRequired[list[ContainerStatus]]
1247
+ hostIP: NotRequired[str]
1248
+ hostIPs: NotRequired[list[HostIP]]
1249
+ initContainerStatuses: NotRequired[list[ContainerStatus]]
1250
+ message: NotRequired[str]
1251
+ nominatedNodeName: NotRequired[str]
1252
+ phase: NotRequired[str]
1253
+ podIP: NotRequired[str]
1254
+ podIPs: NotRequired[list[PodIP]]
1255
+ qosClass: NotRequired[str]
1256
+ reason: NotRequired[str]
1257
+ resize: NotRequired[str]
1258
+ resourceClaimStatuses: NotRequired[list[PodResourceClaimStatus]]
1259
+ startTime: NotRequired[Time]
1260
+
1261
+
1262
+ class Pod(TypedDict):
1263
+ """Pod is a collection of containers that can run on a host. This resource is created by
1264
+ clients and scheduled onto hosts.
1265
+ """
1266
+
1267
+ apiVersion: NotRequired[Literal["v1"]]
1268
+ kind: NotRequired[Literal["Pod"]]
1269
+ metadata: NotRequired[ObjectMeta]
1270
+ spec: NotRequired[PodSpec]
1271
+ status: NotRequired[ReadOnly[PodStatus]]
1272
+
1273
+
1274
+ __all__ = [
1275
+ "AWSElasticBlockStoreVolumeSource",
1276
+ "Affinity",
1277
+ "AppArmorProfile",
1278
+ "AzureDiskVolumeSource",
1279
+ "AzureFileVolumeSource",
1280
+ "CSIVolumeSource",
1281
+ "Capabilities",
1282
+ "CephFSVolumeSource",
1283
+ "CinderVolumeSource",
1284
+ "ClaimSource",
1285
+ "ClusterTrustBundleProjection",
1286
+ "ConfigMapEnvSource",
1287
+ "ConfigMapKeySelector",
1288
+ "ConfigMapProjection",
1289
+ "ConfigMapVolumeSource",
1290
+ "Container",
1291
+ "ContainerPort",
1292
+ "ContainerResizePolicy",
1293
+ "ContainerState",
1294
+ "ContainerStateRunning",
1295
+ "ContainerStateTerminated",
1296
+ "ContainerStateWaiting",
1297
+ "ContainerStatus",
1298
+ "DownwardAPIProjection",
1299
+ "DownwardAPIVolumeFile",
1300
+ "DownwardAPIVolumeSource",
1301
+ "EmptyDirVolumeSource",
1302
+ "EnvFromSource",
1303
+ "EnvVar",
1304
+ "EnvVarSource",
1305
+ "EphemeralContainer",
1306
+ "EphemeralVolumeSource",
1307
+ "ExecAction",
1308
+ "FCVolumeSource",
1309
+ "FieldsV1",
1310
+ "FlexVolumeSource",
1311
+ "FlockerVolumeSource",
1312
+ "GCEPersistentDiskVolumeSource",
1313
+ "GRPCAction",
1314
+ "GitRepoVolumeSource",
1315
+ "GlusterfsVolumeSource",
1316
+ "HTTPGetAction",
1317
+ "HTTPHeader",
1318
+ "HostAlias",
1319
+ "HostIP",
1320
+ "HostPathVolumeSource",
1321
+ "ISCSIVolumeSource",
1322
+ "KeyToPath",
1323
+ "LabelSelector",
1324
+ "LabelSelectorRequirement",
1325
+ "Lifecycle",
1326
+ "LifecycleHandler",
1327
+ "LocalObjectReference",
1328
+ "ManagedFieldsEntry",
1329
+ "NFSVolumeSource",
1330
+ "NodeAffinity",
1331
+ "NodeSelector",
1332
+ "NodeSelectorRequirement",
1333
+ "NodeSelectorTerm",
1334
+ "ObjectFieldSelector",
1335
+ "ObjectMeta",
1336
+ "OwnerReference",
1337
+ "PersistentVolumeClaimSpec",
1338
+ "PersistentVolumeClaimTemplate",
1339
+ "PersistentVolumeClaimVolumeSource",
1340
+ "PhotonPersistentDiskVolumeSource",
1341
+ "Pod",
1342
+ "PodAffinity",
1343
+ "PodAffinityTerm",
1344
+ "PodAntiAffinity",
1345
+ "PodCondition",
1346
+ "PodDNSConfig",
1347
+ "PodDNSConfigOption",
1348
+ "PodIP",
1349
+ "PodOS",
1350
+ "PodReadinessGate",
1351
+ "PodResourceClaim",
1352
+ "PodResourceClaimStatus",
1353
+ "PodSchedulingGate",
1354
+ "PodSecurityContext",
1355
+ "PodSpec",
1356
+ "PodStatus",
1357
+ "PortworxVolumeSource",
1358
+ "PreferredSchedulingTerm",
1359
+ "Probe",
1360
+ "ProjectedVolumeSource",
1361
+ "Quantity",
1362
+ "QuobyteVolumeSource",
1363
+ "RBDVolumeSource",
1364
+ "ResourceClaim",
1365
+ "ResourceFieldSelector",
1366
+ "ResourceRequirements",
1367
+ "SELinuxOptions",
1368
+ "ScaleIOVolumeSource",
1369
+ "SeccompProfile",
1370
+ "SecretEnvSource",
1371
+ "SecretKeySelector",
1372
+ "SecretProjection",
1373
+ "SecretVolumeSource",
1374
+ "SecurityContext",
1375
+ "ServiceAccountTokenProjection",
1376
+ "SleepAction",
1377
+ "StorageOSVolumeSource",
1378
+ "Sysctl",
1379
+ "TCPSocketAction",
1380
+ "Time",
1381
+ "Toleration",
1382
+ "TopologySpreadConstraint",
1383
+ "TypedLocalObjectReference",
1384
+ "TypedObjectReference",
1385
+ "Volume",
1386
+ "VolumeDevice",
1387
+ "VolumeMount",
1388
+ "VolumeMountStatus",
1389
+ "VolumeProjection",
1390
+ "VolumeResourceRequirements",
1391
+ "VsphereVirtualDiskVolumeSource",
1392
+ "WeightedPodAffinityTerm",
1393
+ "WindowsSecurityContextOptions",
1394
+ ]