ominfra 0.0.0.dev219__tar.gz → 0.0.0.dev221__tar.gz

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 (170) hide show
  1. {ominfra-0.0.0.dev219/ominfra.egg-info → ominfra-0.0.0.dev221}/PKG-INFO +3 -3
  2. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/models/gen/gen.py +2 -2
  3. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/scripts/supervisor.py +61 -24
  4. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221/ominfra.egg-info}/PKG-INFO +3 -3
  5. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra.egg-info/requires.txt +2 -2
  6. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/pyproject.toml +3 -3
  7. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/LICENSE +0 -0
  8. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/MANIFEST.in +0 -0
  9. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/README.rst +0 -0
  10. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/.manifests.json +0 -0
  11. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/__about__.py +0 -0
  12. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/__init__.py +0 -0
  13. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/__init__.py +0 -0
  14. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/__init__.py +0 -0
  15. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/__main__.py +0 -0
  16. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/auth.py +0 -0
  17. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/cli.py +0 -0
  18. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/dataclasses.py +0 -0
  19. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/instancetypes/__init__.py +0 -0
  20. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/instancetypes/__main__.py +0 -0
  21. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/instancetypes/cache.json.gz +0 -0
  22. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/instancetypes/cache.py +0 -0
  23. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/instancetypes/cli.py +0 -0
  24. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/journald2aws/__init__.py +0 -0
  25. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/journald2aws/__main__.py +0 -0
  26. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/journald2aws/cursor.py +0 -0
  27. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/journald2aws/driver.py +0 -0
  28. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/journald2aws/main.py +0 -0
  29. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/journald2aws/poster.py +0 -0
  30. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/logs.py +0 -0
  31. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/metadata.py +0 -0
  32. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/models/__init__.py +0 -0
  33. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/models/base.py +0 -0
  34. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/models/gen/__init__.py +0 -0
  35. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/models/gen/__main__.py +0 -0
  36. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/models/gen/cli.py +0 -0
  37. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/models/services/__init__.py +0 -0
  38. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/models/services/ec2.py +0 -0
  39. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/models/services/lambda_.py +0 -0
  40. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/models/services/rds.py +0 -0
  41. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/models/services/s3.py +0 -0
  42. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/aws/models/services/services.toml +0 -0
  43. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/gcp/__init__.py +0 -0
  44. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/gcp/api.py +0 -0
  45. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/clouds/gcp/auth.py +0 -0
  46. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/commands/__init__.py +0 -0
  47. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/commands/runners.py +0 -0
  48. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/commands/ssh.py +0 -0
  49. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/journald/__init__.py +0 -0
  50. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/journald/fields.py +0 -0
  51. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/journald/genmessages.py +0 -0
  52. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/journald/messages.py +0 -0
  53. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/journald/tailer.py +0 -0
  54. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/__init__.py +0 -0
  55. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/__main__.py +0 -0
  56. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/bootstrap.py +0 -0
  57. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/bootstrap_.py +0 -0
  58. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/commands/__init__.py +0 -0
  59. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/commands/base.py +0 -0
  60. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/commands/inject.py +0 -0
  61. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/commands/injection.py +0 -0
  62. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/commands/local.py +0 -0
  63. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/commands/marshal.py +0 -0
  64. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/commands/ping.py +0 -0
  65. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/commands/subprocess.py +0 -0
  66. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/commands/types.py +0 -0
  67. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/config.py +0 -0
  68. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/__init__.py +0 -0
  69. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/apps.py +0 -0
  70. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/commands.py +0 -0
  71. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/conf/__init__.py +0 -0
  72. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/conf/inject.py +0 -0
  73. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/conf/manager.py +0 -0
  74. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/conf/specs.py +0 -0
  75. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/config.py +0 -0
  76. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/deploy.py +0 -0
  77. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/git.py +0 -0
  78. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/inject.py +0 -0
  79. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/injection.py +0 -0
  80. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/interp.py +0 -0
  81. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/nginx.py +0 -0
  82. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/paths/__init__.py +0 -0
  83. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/paths/inject.py +0 -0
  84. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/paths/manager.py +0 -0
  85. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/paths/owners.py +0 -0
  86. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/paths/paths.py +0 -0
  87. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/paths/specs.py +0 -0
  88. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/paths/types.py +0 -0
  89. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/specs.py +0 -0
  90. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/systemd.py +0 -0
  91. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/tags.py +0 -0
  92. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/tmp.py +0 -0
  93. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/types.py +0 -0
  94. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/deploy/venvs.py +0 -0
  95. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/inject.py +0 -0
  96. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/main.py +0 -0
  97. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/marshal.py +0 -0
  98. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/remote/__init__.py +0 -0
  99. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/remote/_main.py +0 -0
  100. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/remote/channel.py +0 -0
  101. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/remote/config.py +0 -0
  102. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/remote/connection.py +0 -0
  103. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/remote/execution.py +0 -0
  104. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/remote/inject.py +0 -0
  105. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/remote/payload.py +0 -0
  106. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/remote/spawning.py +0 -0
  107. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/system/__init__.py +0 -0
  108. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/system/commands.py +0 -0
  109. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/system/config.py +0 -0
  110. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/system/inject.py +0 -0
  111. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/system/packages.py +0 -0
  112. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/system/platforms.py +0 -0
  113. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/targets/__init__.py +0 -0
  114. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/targets/bestpython.py +0 -0
  115. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/targets/bestpython.sh +0 -0
  116. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/targets/connection.py +0 -0
  117. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/targets/inject.py +0 -0
  118. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/manage/targets/targets.py +0 -0
  119. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/pyremote.py +0 -0
  120. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/scripts/__init__.py +0 -0
  121. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/scripts/journald2aws.py +0 -0
  122. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/scripts/manage.py +0 -0
  123. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/LICENSE.txt +0 -0
  124. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/__init__.py +0 -0
  125. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/__main__.py +0 -0
  126. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/configs.py +0 -0
  127. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/dispatchers.py +0 -0
  128. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/dispatchersimpl.py +0 -0
  129. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/events.py +0 -0
  130. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/exceptions.py +0 -0
  131. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/groups.py +0 -0
  132. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/groupsimpl.py +0 -0
  133. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/http.py +0 -0
  134. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/inject.py +0 -0
  135. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/io.py +0 -0
  136. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/main.py +0 -0
  137. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/pipes.py +0 -0
  138. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/privileges.py +0 -0
  139. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/process.py +0 -0
  140. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/processimpl.py +0 -0
  141. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/setup.py +0 -0
  142. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/setupimpl.py +0 -0
  143. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/signals.py +0 -0
  144. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/spawning.py +0 -0
  145. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/spawningimpl.py +0 -0
  146. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/states.py +0 -0
  147. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/supervisor.py +0 -0
  148. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/types.py +0 -0
  149. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/utils/__init__.py +0 -0
  150. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/utils/collections.py +0 -0
  151. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/utils/diag.py +0 -0
  152. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/utils/fds.py +0 -0
  153. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/utils/fs.py +0 -0
  154. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/utils/os.py +0 -0
  155. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/utils/ostypes.py +0 -0
  156. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/utils/signals.py +0 -0
  157. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/utils/strings.py +0 -0
  158. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/supervisor/utils/users.py +0 -0
  159. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/systemd.py +0 -0
  160. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/tailscale/__init__.py +0 -0
  161. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/tailscale/api.py +0 -0
  162. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/tailscale/cli.py +0 -0
  163. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/threadworkers.py +0 -0
  164. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/tools/__init__.py +0 -0
  165. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra/tools/listresources.py +0 -0
  166. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra.egg-info/SOURCES.txt +0 -0
  167. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra.egg-info/dependency_links.txt +0 -0
  168. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra.egg-info/entry_points.txt +0 -0
  169. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/ominfra.egg-info/top_level.txt +0 -0
  170. {ominfra-0.0.0.dev219 → ominfra-0.0.0.dev221}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: ominfra
3
- Version: 0.0.0.dev219
3
+ Version: 0.0.0.dev221
4
4
  Summary: ominfra
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -12,8 +12,8 @@ Classifier: Operating System :: OS Independent
12
12
  Classifier: Operating System :: POSIX
13
13
  Requires-Python: >=3.12
14
14
  License-File: LICENSE
15
- Requires-Dist: omdev==0.0.0.dev219
16
- Requires-Dist: omlish==0.0.0.dev219
15
+ Requires-Dist: omdev==0.0.0.dev221
16
+ Requires-Dist: omlish==0.0.0.dev221
17
17
  Provides-Extra: all
18
18
  Requires-Dist: paramiko~=3.5; extra == "all"
19
19
  Requires-Dist: asyncssh~=2.18; extra == "all"
@@ -10,8 +10,8 @@ import keyword
10
10
  import typing as ta
11
11
 
12
12
  from omlish import check
13
- from omlish import collections as col
14
13
  from omlish import lang
14
+ from omlish.algorithm import all as alg
15
15
 
16
16
 
17
17
  if ta.TYPE_CHECKING:
@@ -134,7 +134,7 @@ class ModelGen:
134
134
  dct[shape.name] = deps
135
135
  todo.update(deps - seen)
136
136
 
137
- return list(lang.flatten(sorted(s - cls.BASE_SHAPE_NAMES) for s in col.mut_toposort(dct)))
137
+ return list(lang.flatten(sorted(s - cls.BASE_SHAPE_NAMES) for s in alg.mut_toposort(dct)))
138
138
 
139
139
  #
140
140
 
@@ -6850,12 +6850,20 @@ class HttpHandlerResponse:
6850
6850
  data: ta.Optional[HttpHandlerResponseData] = None
6851
6851
  close_connection: ta.Optional[bool] = None
6852
6852
 
6853
+ def close(self) -> None:
6854
+ if isinstance(d := self.data, HttpHandlerResponseStreamedData):
6855
+ d.close()
6856
+
6853
6857
 
6854
6858
  @dc.dataclass(frozen=True)
6855
6859
  class HttpHandlerResponseStreamedData:
6856
6860
  iter: ta.Iterable[bytes]
6857
6861
  length: ta.Optional[int] = None
6858
6862
 
6863
+ def close(self) -> None:
6864
+ if hasattr(d := self.iter, 'close'):
6865
+ d.close() # noqa
6866
+
6859
6867
 
6860
6868
  class HttpHandlerError(Exception):
6861
6869
  pass
@@ -7383,6 +7391,10 @@ class CoroHttpServer:
7383
7391
  return h
7384
7392
  return None
7385
7393
 
7394
+ def close(self) -> None:
7395
+ if isinstance(d := self.data, HttpHandlerResponseStreamedData):
7396
+ d.close()
7397
+
7386
7398
  #
7387
7399
 
7388
7400
  def _build_response_head_bytes(self, a: _Response) -> bytes:
@@ -7595,12 +7607,20 @@ class CoroHttpServer:
7595
7607
  #
7596
7608
 
7597
7609
  def coro_handle(self) -> ta.Generator[Io, ta.Optional[bytes], None]:
7598
- while True:
7599
- gen = self.coro_handle_one()
7610
+ return self._coro_run_handler(self._coro_handle_one())
7600
7611
 
7601
- o = next(gen)
7602
- i: ta.Optional[bytes]
7603
- while True:
7612
+ def _coro_run_handler(
7613
+ self,
7614
+ gen: ta.Generator[
7615
+ ta.Union[AnyLogIo, AnyReadIo, _Response],
7616
+ ta.Optional[bytes],
7617
+ None,
7618
+ ],
7619
+ ) -> ta.Generator[Io, ta.Optional[bytes], None]:
7620
+ i: ta.Optional[bytes]
7621
+ o: ta.Any = next(gen)
7622
+ while True:
7623
+ try:
7604
7624
  if isinstance(o, self.AnyLogIo):
7605
7625
  i = None
7606
7626
  yield o
@@ -7618,8 +7638,13 @@ class CoroHttpServer:
7618
7638
  for b in self._yield_response_data(r):
7619
7639
  yield self.WriteIo(b)
7620
7640
 
7641
+ o.close()
7642
+ if o.close_connection:
7643
+ break
7644
+ o = None
7645
+
7621
7646
  else:
7622
- raise TypeError(o)
7647
+ raise TypeError(o) # noqa
7623
7648
 
7624
7649
  try:
7625
7650
  o = gen.send(i)
@@ -7628,7 +7653,13 @@ class CoroHttpServer:
7628
7653
  except StopIteration:
7629
7654
  break
7630
7655
 
7631
- def coro_handle_one(self) -> ta.Generator[
7656
+ except Exception: # noqa
7657
+ if hasattr(o, 'close'):
7658
+ o.close()
7659
+
7660
+ raise
7661
+
7662
+ def _coro_handle_one(self) -> ta.Generator[
7632
7663
  ta.Union[AnyLogIo, AnyReadIo, _Response],
7633
7664
  ta.Optional[bytes],
7634
7665
  None,
@@ -7708,28 +7739,34 @@ class CoroHttpServer:
7708
7739
  yield self._build_error_response(err)
7709
7740
  return
7710
7741
 
7711
- # Build internal response
7742
+ try:
7743
+ # Build internal response
7712
7744
 
7713
- response_headers = handler_response.headers or {}
7714
- response_data = handler_response.data
7745
+ response_headers = handler_response.headers or {}
7746
+ response_data = handler_response.data
7715
7747
 
7716
- headers: ta.List[CoroHttpServer._Header] = [
7717
- *self._make_default_headers(),
7718
- ]
7748
+ headers: ta.List[CoroHttpServer._Header] = [
7749
+ *self._make_default_headers(),
7750
+ ]
7719
7751
 
7720
- for k, v in response_headers.items():
7721
- headers.append(self._Header(k, v))
7752
+ for k, v in response_headers.items():
7753
+ headers.append(self._Header(k, v))
7722
7754
 
7723
- if handler_response.close_connection and 'Connection' not in headers:
7724
- headers.append(self._Header('Connection', 'close'))
7755
+ if handler_response.close_connection and 'Connection' not in headers:
7756
+ headers.append(self._Header('Connection', 'close'))
7725
7757
 
7726
- yield self._Response(
7727
- version=parsed.version,
7728
- code=http.HTTPStatus(handler_response.status),
7729
- headers=headers,
7730
- data=response_data,
7731
- close_connection=handler_response.close_connection,
7732
- )
7758
+ yield self._Response(
7759
+ version=parsed.version,
7760
+ code=http.HTTPStatus(handler_response.status),
7761
+ headers=headers,
7762
+ data=response_data,
7763
+ close_connection=handler_response.close_connection,
7764
+ )
7765
+
7766
+ except Exception: # noqa
7767
+ handler_response.close()
7768
+
7769
+ raise
7733
7770
 
7734
7771
 
7735
7772
  ##
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: ominfra
3
- Version: 0.0.0.dev219
3
+ Version: 0.0.0.dev221
4
4
  Summary: ominfra
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -12,8 +12,8 @@ Classifier: Operating System :: OS Independent
12
12
  Classifier: Operating System :: POSIX
13
13
  Requires-Python: >=3.12
14
14
  License-File: LICENSE
15
- Requires-Dist: omdev==0.0.0.dev219
16
- Requires-Dist: omlish==0.0.0.dev219
15
+ Requires-Dist: omdev==0.0.0.dev221
16
+ Requires-Dist: omlish==0.0.0.dev221
17
17
  Provides-Extra: all
18
18
  Requires-Dist: paramiko~=3.5; extra == "all"
19
19
  Requires-Dist: asyncssh~=2.18; extra == "all"
@@ -1,5 +1,5 @@
1
- omdev==0.0.0.dev219
2
- omlish==0.0.0.dev219
1
+ omdev==0.0.0.dev221
2
+ omlish==0.0.0.dev221
3
3
 
4
4
  [all]
5
5
  paramiko~=3.5
@@ -12,7 +12,7 @@ authors = [
12
12
  urls = {source = 'https://github.com/wrmsr/omlish'}
13
13
  license = {text = 'BSD-3-Clause'}
14
14
  requires-python = '>=3.12'
15
- version = '0.0.0.dev219'
15
+ version = '0.0.0.dev221'
16
16
  classifiers = [
17
17
  'License :: OSI Approved :: BSD License',
18
18
  'Development Status :: 2 - Pre-Alpha',
@@ -22,8 +22,8 @@ classifiers = [
22
22
  ]
23
23
  description = 'ominfra'
24
24
  dependencies = [
25
- 'omdev == 0.0.0.dev219',
26
- 'omlish == 0.0.0.dev219',
25
+ 'omdev == 0.0.0.dev221',
26
+ 'omlish == 0.0.0.dev221',
27
27
  ]
28
28
 
29
29
  [project.optional-dependencies]
File without changes
File without changes