ominfra 0.0.0.dev401__tar.gz → 0.0.0.dev403__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 (171) hide show
  1. {ominfra-0.0.0.dev401/ominfra.egg-info → ominfra-0.0.0.dev403}/PKG-INFO +3 -3
  2. ominfra-0.0.0.dev403/ominfra/clouds/aws/instancetypes/cache.json.gz +0 -0
  3. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/scripts/journald2aws.py +43 -27
  4. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/scripts/manage.py +54 -27
  5. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/scripts/supervisor.py +53 -27
  6. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403/ominfra.egg-info}/PKG-INFO +3 -3
  7. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra.egg-info/requires.txt +2 -2
  8. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/pyproject.toml +3 -3
  9. ominfra-0.0.0.dev401/ominfra/clouds/aws/instancetypes/cache.json.gz +0 -0
  10. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/LICENSE +0 -0
  11. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/MANIFEST.in +0 -0
  12. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/README.md +0 -0
  13. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/.manifests.json +0 -0
  14. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/__about__.py +0 -0
  15. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/__init__.py +0 -0
  16. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/__init__.py +0 -0
  17. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/__init__.py +0 -0
  18. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/__main__.py +0 -0
  19. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/auth.py +0 -0
  20. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/cli.py +0 -0
  21. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/dataclasses.py +0 -0
  22. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/instancetypes/__init__.py +0 -0
  23. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/instancetypes/__main__.py +0 -0
  24. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/instancetypes/cache.py +0 -0
  25. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/instancetypes/cli.py +0 -0
  26. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/journald2aws/__init__.py +0 -0
  27. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/journald2aws/__main__.py +0 -0
  28. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/journald2aws/cursor.py +0 -0
  29. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/journald2aws/driver.py +0 -0
  30. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/journald2aws/main.py +0 -0
  31. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/journald2aws/poster.py +0 -0
  32. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/logs.py +0 -0
  33. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/metadata.py +0 -0
  34. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/models/__init__.py +0 -0
  35. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/models/base.py +0 -0
  36. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/models/gen/__init__.py +0 -0
  37. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/models/gen/__main__.py +0 -0
  38. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/models/gen/cli.py +0 -0
  39. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/models/gen/gen.py +0 -0
  40. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/models/services/__init__.py +0 -0
  41. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/models/services/ec2.py +0 -0
  42. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/models/services/lambda_.py +0 -0
  43. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/models/services/rds.py +0 -0
  44. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/models/services/s3.py +0 -0
  45. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/aws/models/services/services.toml +0 -0
  46. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/gcp/__init__.py +0 -0
  47. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/gcp/api.py +0 -0
  48. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/clouds/gcp/auth.py +0 -0
  49. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/commands/__init__.py +0 -0
  50. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/commands/runners.py +0 -0
  51. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/commands/ssh.py +0 -0
  52. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/journald/__init__.py +0 -0
  53. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/journald/fields.py +0 -0
  54. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/journald/genmessages.py +0 -0
  55. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/journald/messages.py +0 -0
  56. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/journald/tailer.py +0 -0
  57. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/__init__.py +0 -0
  58. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/__main__.py +0 -0
  59. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/bootstrap.py +0 -0
  60. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/bootstrap_.py +0 -0
  61. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/commands/__init__.py +0 -0
  62. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/commands/base.py +0 -0
  63. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/commands/inject.py +0 -0
  64. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/commands/injection.py +0 -0
  65. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/commands/local.py +0 -0
  66. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/commands/marshal.py +0 -0
  67. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/commands/ping.py +0 -0
  68. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/commands/subprocess.py +0 -0
  69. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/commands/types.py +0 -0
  70. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/config.py +0 -0
  71. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/__init__.py +0 -0
  72. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/apps.py +0 -0
  73. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/commands.py +0 -0
  74. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/conf/__init__.py +0 -0
  75. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/conf/inject.py +0 -0
  76. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/conf/manager.py +0 -0
  77. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/conf/specs.py +0 -0
  78. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/config.py +0 -0
  79. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/deploy.py +0 -0
  80. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/git.py +0 -0
  81. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/inject.py +0 -0
  82. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/injection.py +0 -0
  83. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/interp.py +0 -0
  84. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/nginx.py +0 -0
  85. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/paths/__init__.py +0 -0
  86. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/paths/inject.py +0 -0
  87. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/paths/manager.py +0 -0
  88. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/paths/owners.py +0 -0
  89. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/paths/paths.py +0 -0
  90. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/paths/specs.py +0 -0
  91. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/paths/types.py +0 -0
  92. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/specs.py +0 -0
  93. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/systemd.py +0 -0
  94. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/tags.py +0 -0
  95. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/tmp.py +0 -0
  96. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/types.py +0 -0
  97. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/deploy/venvs.py +0 -0
  98. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/inject.py +0 -0
  99. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/main.py +0 -0
  100. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/marshal.py +0 -0
  101. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/remote/__init__.py +0 -0
  102. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/remote/_main.py +0 -0
  103. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/remote/channel.py +0 -0
  104. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/remote/config.py +0 -0
  105. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/remote/connection.py +0 -0
  106. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/remote/execution.py +0 -0
  107. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/remote/inject.py +0 -0
  108. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/remote/payload.py +0 -0
  109. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/remote/spawning.py +0 -0
  110. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/system/__init__.py +0 -0
  111. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/system/commands.py +0 -0
  112. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/system/config.py +0 -0
  113. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/system/inject.py +0 -0
  114. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/system/packages.py +0 -0
  115. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/system/platforms.py +0 -0
  116. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/targets/__init__.py +0 -0
  117. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/targets/bestpython.py +0 -0
  118. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/targets/bestpython.sh +0 -0
  119. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/targets/connection.py +0 -0
  120. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/targets/inject.py +0 -0
  121. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/manage/targets/targets.py +0 -0
  122. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/pyremote.py +0 -0
  123. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/scripts/__init__.py +0 -0
  124. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/LICENSE.txt +0 -0
  125. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/__init__.py +0 -0
  126. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/__main__.py +0 -0
  127. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/configs.py +0 -0
  128. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/dispatchers.py +0 -0
  129. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/dispatchersimpl.py +0 -0
  130. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/errors.py +0 -0
  131. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/events.py +0 -0
  132. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/groups.py +0 -0
  133. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/groupsimpl.py +0 -0
  134. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/http.py +0 -0
  135. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/inject.py +0 -0
  136. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/io.py +0 -0
  137. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/main.py +0 -0
  138. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/pipes.py +0 -0
  139. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/privileges.py +0 -0
  140. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/process.py +0 -0
  141. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/processimpl.py +0 -0
  142. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/setup.py +0 -0
  143. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/setupimpl.py +0 -0
  144. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/signals.py +0 -0
  145. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/spawning.py +0 -0
  146. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/spawningimpl.py +0 -0
  147. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/states.py +0 -0
  148. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/supervisor.py +0 -0
  149. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/types.py +0 -0
  150. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/utils/__init__.py +0 -0
  151. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/utils/collections.py +0 -0
  152. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/utils/diag.py +0 -0
  153. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/utils/fds.py +0 -0
  154. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/utils/fs.py +0 -0
  155. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/utils/os.py +0 -0
  156. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/utils/ostypes.py +0 -0
  157. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/utils/signals.py +0 -0
  158. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/utils/strings.py +0 -0
  159. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/supervisor/utils/users.py +0 -0
  160. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/systemd.py +0 -0
  161. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/tailscale/__init__.py +0 -0
  162. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/tailscale/api.py +0 -0
  163. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/tailscale/cli.py +0 -0
  164. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/threadworkers.py +0 -0
  165. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/tools/__init__.py +0 -0
  166. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra/tools/listresources.py +0 -0
  167. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra.egg-info/SOURCES.txt +0 -0
  168. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra.egg-info/dependency_links.txt +0 -0
  169. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra.egg-info/entry_points.txt +0 -0
  170. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/ominfra.egg-info/top_level.txt +0 -0
  171. {ominfra-0.0.0.dev401 → ominfra-0.0.0.dev403}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ominfra
3
- Version: 0.0.0.dev401
3
+ Version: 0.0.0.dev403
4
4
  Summary: ominfra
5
5
  Author: wrmsr
6
6
  License-Expression: BSD-3-Clause
@@ -14,8 +14,8 @@ Classifier: Programming Language :: Python :: 3.13
14
14
  Requires-Python: >=3.13
15
15
  Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
- Requires-Dist: omdev==0.0.0.dev401
18
- Requires-Dist: omlish==0.0.0.dev401
17
+ Requires-Dist: omdev==0.0.0.dev403
18
+ Requires-Dist: omlish==0.0.0.dev403
19
19
  Provides-Extra: all
20
20
  Requires-Dist: paramiko~=4.0; extra == "all"
21
21
  Requires-Dist: asyncssh~=2.21; extra == "all"
@@ -1781,24 +1781,40 @@ _GENERIC_ALIAS_TYPES = (
1781
1781
  )
1782
1782
 
1783
1783
 
1784
- def is_generic_alias(obj, *, origin: ta.Any = None) -> bool:
1784
+ def is_generic_alias(obj: ta.Any, *, origin: ta.Any = None) -> bool:
1785
1785
  return (
1786
1786
  isinstance(obj, _GENERIC_ALIAS_TYPES) and
1787
1787
  (origin is None or ta.get_origin(obj) is origin)
1788
1788
  )
1789
1789
 
1790
1790
 
1791
- is_union_alias = functools.partial(is_generic_alias, origin=ta.Union)
1792
1791
  is_callable_alias = functools.partial(is_generic_alias, origin=ta.Callable)
1793
1792
 
1794
1793
 
1795
1794
  ##
1796
1795
 
1797
1796
 
1797
+ _UNION_ALIAS_ORIGINS = frozenset([
1798
+ ta.get_origin(ta.Optional[int]),
1799
+ *(
1800
+ [
1801
+ ta.get_origin(int | None),
1802
+ ta.get_origin(getattr(ta, 'TypeVar')('_T') | None),
1803
+ ] if sys.version_info >= (3, 10) else ()
1804
+ ),
1805
+ ])
1806
+
1807
+
1808
+ def is_union_alias(obj: ta.Any) -> bool:
1809
+ return ta.get_origin(obj) in _UNION_ALIAS_ORIGINS
1810
+
1811
+
1812
+ #
1813
+
1814
+
1798
1815
  def is_optional_alias(spec: ta.Any) -> bool:
1799
1816
  return (
1800
- isinstance(spec, _GENERIC_ALIAS_TYPES) and # noqa
1801
- ta.get_origin(spec) is ta.Union and
1817
+ is_union_alias(spec) and
1802
1818
  len(ta.get_args(spec)) == 2 and
1803
1819
  any(a in (None, type(None)) for a in ta.get_args(spec))
1804
1820
  )
@@ -3943,32 +3959,32 @@ class ObjMarshalerManager:
3943
3959
  [e] = ta.get_args(ty)
3944
3960
  return IterableObjMarshaler(st, rec(e))
3945
3961
 
3946
- if is_union_alias(ty):
3947
- uts = frozenset(ta.get_args(ty))
3948
- if None in uts or type(None) in uts:
3949
- is_opt = True
3950
- uts = frozenset(ut for ut in uts if ut not in (None, type(None)))
3951
- else:
3952
- is_opt = False
3962
+ if is_union_alias(ty):
3963
+ uts = frozenset(ta.get_args(ty))
3964
+ if None in uts or type(None) in uts:
3965
+ is_opt = True
3966
+ uts = frozenset(ut for ut in uts if ut not in (None, type(None)))
3967
+ else:
3968
+ is_opt = False
3953
3969
 
3954
- um: ObjMarshaler
3955
- if not uts:
3956
- raise TypeError(ty)
3957
- elif len(uts) == 1:
3958
- um = rec(check.single(uts))
3970
+ um: ObjMarshaler
3971
+ if not uts:
3972
+ raise TypeError(ty)
3973
+ elif len(uts) == 1:
3974
+ um = rec(check.single(uts))
3975
+ else:
3976
+ pt = tuple({ut for ut in uts if ut in _OBJ_MARSHALER_PRIMITIVE_TYPES})
3977
+ np_uts = {ut for ut in uts if ut not in _OBJ_MARSHALER_PRIMITIVE_TYPES}
3978
+ if not np_uts:
3979
+ um = PrimitiveUnionObjMarshaler(pt)
3980
+ elif len(np_uts) == 1:
3981
+ um = PrimitiveUnionObjMarshaler(pt, x=rec(check.single(np_uts)))
3959
3982
  else:
3960
- pt = tuple({ut for ut in uts if ut in _OBJ_MARSHALER_PRIMITIVE_TYPES})
3961
- np_uts = {ut for ut in uts if ut not in _OBJ_MARSHALER_PRIMITIVE_TYPES}
3962
- if not np_uts:
3963
- um = PrimitiveUnionObjMarshaler(pt)
3964
- elif len(np_uts) == 1:
3965
- um = PrimitiveUnionObjMarshaler(pt, x=rec(check.single(np_uts)))
3966
- else:
3967
- raise TypeError(ty)
3983
+ raise TypeError(ty)
3968
3984
 
3969
- if is_opt:
3970
- um = OptionalObjMarshaler(um)
3971
- return um
3985
+ if is_opt:
3986
+ um = OptionalObjMarshaler(um)
3987
+ return um
3972
3988
 
3973
3989
  raise TypeError(ty)
3974
3990
 
@@ -3216,24 +3216,40 @@ _GENERIC_ALIAS_TYPES = (
3216
3216
  )
3217
3217
 
3218
3218
 
3219
- def is_generic_alias(obj, *, origin: ta.Any = None) -> bool:
3219
+ def is_generic_alias(obj: ta.Any, *, origin: ta.Any = None) -> bool:
3220
3220
  return (
3221
3221
  isinstance(obj, _GENERIC_ALIAS_TYPES) and
3222
3222
  (origin is None or ta.get_origin(obj) is origin)
3223
3223
  )
3224
3224
 
3225
3225
 
3226
- is_union_alias = functools.partial(is_generic_alias, origin=ta.Union)
3227
3226
  is_callable_alias = functools.partial(is_generic_alias, origin=ta.Callable)
3228
3227
 
3229
3228
 
3230
3229
  ##
3231
3230
 
3232
3231
 
3232
+ _UNION_ALIAS_ORIGINS = frozenset([
3233
+ ta.get_origin(ta.Optional[int]),
3234
+ *(
3235
+ [
3236
+ ta.get_origin(int | None),
3237
+ ta.get_origin(getattr(ta, 'TypeVar')('_T') | None),
3238
+ ] if sys.version_info >= (3, 10) else ()
3239
+ ),
3240
+ ])
3241
+
3242
+
3243
+ def is_union_alias(obj: ta.Any) -> bool:
3244
+ return ta.get_origin(obj) in _UNION_ALIAS_ORIGINS
3245
+
3246
+
3247
+ #
3248
+
3249
+
3233
3250
  def is_optional_alias(spec: ta.Any) -> bool:
3234
3251
  return (
3235
- isinstance(spec, _GENERIC_ALIAS_TYPES) and # noqa
3236
- ta.get_origin(spec) is ta.Union and
3252
+ is_union_alias(spec) and
3237
3253
  len(ta.get_args(spec)) == 2 and
3238
3254
  any(a in (None, type(None)) for a in ta.get_args(spec))
3239
3255
  )
@@ -3650,6 +3666,16 @@ class Func3(ta.Generic[A0, A1, A2, T]):
3650
3666
  return self.fn(a0, a1, a2)
3651
3667
 
3652
3668
 
3669
+ ##
3670
+
3671
+
3672
+ _TYPING_ANNOTATIONS_ATTR = '__annotate__' if sys.version_info >= (3, 14) else '__annotations__'
3673
+
3674
+
3675
+ def typing_annotations_attr() -> str:
3676
+ return _TYPING_ANNOTATIONS_ATTR
3677
+
3678
+
3653
3679
  ########################################
3654
3680
  # ../../../omlish/logs/filters.py
3655
3681
 
@@ -5669,6 +5695,7 @@ def _get_argparse_arg_ann_kwargs(ann: ta.Any) -> ta.Mapping[str, ta.Any]:
5669
5695
  class _ArgparseCliAnnotationBox:
5670
5696
  def __init__(self, annotations: ta.Mapping[str, ta.Any]) -> None:
5671
5697
  super().__init__()
5698
+
5672
5699
  self.__annotations__ = annotations # type: ignore
5673
5700
 
5674
5701
 
@@ -7883,32 +7910,32 @@ class ObjMarshalerManager:
7883
7910
  [e] = ta.get_args(ty)
7884
7911
  return IterableObjMarshaler(st, rec(e))
7885
7912
 
7886
- if is_union_alias(ty):
7887
- uts = frozenset(ta.get_args(ty))
7888
- if None in uts or type(None) in uts:
7889
- is_opt = True
7890
- uts = frozenset(ut for ut in uts if ut not in (None, type(None)))
7891
- else:
7892
- is_opt = False
7913
+ if is_union_alias(ty):
7914
+ uts = frozenset(ta.get_args(ty))
7915
+ if None in uts or type(None) in uts:
7916
+ is_opt = True
7917
+ uts = frozenset(ut for ut in uts if ut not in (None, type(None)))
7918
+ else:
7919
+ is_opt = False
7893
7920
 
7894
- um: ObjMarshaler
7895
- if not uts:
7896
- raise TypeError(ty)
7897
- elif len(uts) == 1:
7898
- um = rec(check.single(uts))
7921
+ um: ObjMarshaler
7922
+ if not uts:
7923
+ raise TypeError(ty)
7924
+ elif len(uts) == 1:
7925
+ um = rec(check.single(uts))
7926
+ else:
7927
+ pt = tuple({ut for ut in uts if ut in _OBJ_MARSHALER_PRIMITIVE_TYPES})
7928
+ np_uts = {ut for ut in uts if ut not in _OBJ_MARSHALER_PRIMITIVE_TYPES}
7929
+ if not np_uts:
7930
+ um = PrimitiveUnionObjMarshaler(pt)
7931
+ elif len(np_uts) == 1:
7932
+ um = PrimitiveUnionObjMarshaler(pt, x=rec(check.single(np_uts)))
7899
7933
  else:
7900
- pt = tuple({ut for ut in uts if ut in _OBJ_MARSHALER_PRIMITIVE_TYPES})
7901
- np_uts = {ut for ut in uts if ut not in _OBJ_MARSHALER_PRIMITIVE_TYPES}
7902
- if not np_uts:
7903
- um = PrimitiveUnionObjMarshaler(pt)
7904
- elif len(np_uts) == 1:
7905
- um = PrimitiveUnionObjMarshaler(pt, x=rec(check.single(np_uts)))
7906
- else:
7907
- raise TypeError(ty)
7934
+ raise TypeError(ty)
7908
7935
 
7909
- if is_opt:
7910
- um = OptionalObjMarshaler(um)
7911
- return um
7936
+ if is_opt:
7937
+ um = OptionalObjMarshaler(um)
7938
+ return um
7912
7939
 
7913
7940
  raise TypeError(ty)
7914
7941
 
@@ -2760,24 +2760,40 @@ _GENERIC_ALIAS_TYPES = (
2760
2760
  )
2761
2761
 
2762
2762
 
2763
- def is_generic_alias(obj, *, origin: ta.Any = None) -> bool:
2763
+ def is_generic_alias(obj: ta.Any, *, origin: ta.Any = None) -> bool:
2764
2764
  return (
2765
2765
  isinstance(obj, _GENERIC_ALIAS_TYPES) and
2766
2766
  (origin is None or ta.get_origin(obj) is origin)
2767
2767
  )
2768
2768
 
2769
2769
 
2770
- is_union_alias = functools.partial(is_generic_alias, origin=ta.Union)
2771
2770
  is_callable_alias = functools.partial(is_generic_alias, origin=ta.Callable)
2772
2771
 
2773
2772
 
2774
2773
  ##
2775
2774
 
2776
2775
 
2776
+ _UNION_ALIAS_ORIGINS = frozenset([
2777
+ ta.get_origin(ta.Optional[int]),
2778
+ *(
2779
+ [
2780
+ ta.get_origin(int | None),
2781
+ ta.get_origin(getattr(ta, 'TypeVar')('_T') | None),
2782
+ ] if sys.version_info >= (3, 10) else ()
2783
+ ),
2784
+ ])
2785
+
2786
+
2787
+ def is_union_alias(obj: ta.Any) -> bool:
2788
+ return ta.get_origin(obj) in _UNION_ALIAS_ORIGINS
2789
+
2790
+
2791
+ #
2792
+
2793
+
2777
2794
  def is_optional_alias(spec: ta.Any) -> bool:
2778
2795
  return (
2779
- isinstance(spec, _GENERIC_ALIAS_TYPES) and # noqa
2780
- ta.get_origin(spec) is ta.Union and
2796
+ is_union_alias(spec) and
2781
2797
  len(ta.get_args(spec)) == 2 and
2782
2798
  any(a in (None, type(None)) for a in ta.get_args(spec))
2783
2799
  )
@@ -2981,6 +2997,16 @@ class Func3(ta.Generic[A0, A1, A2, T]):
2981
2997
  return self.fn(a0, a1, a2)
2982
2998
 
2983
2999
 
3000
+ ##
3001
+
3002
+
3003
+ _TYPING_ANNOTATIONS_ATTR = '__annotate__' if sys.version_info >= (3, 14) else '__annotations__'
3004
+
3005
+
3006
+ def typing_annotations_attr() -> str:
3007
+ return _TYPING_ANNOTATIONS_ATTR
3008
+
3009
+
2984
3010
  ########################################
2985
3011
  # ../../../omlish/logs/filters.py
2986
3012
 
@@ -6422,32 +6448,32 @@ class ObjMarshalerManager:
6422
6448
  [e] = ta.get_args(ty)
6423
6449
  return IterableObjMarshaler(st, rec(e))
6424
6450
 
6425
- if is_union_alias(ty):
6426
- uts = frozenset(ta.get_args(ty))
6427
- if None in uts or type(None) in uts:
6428
- is_opt = True
6429
- uts = frozenset(ut for ut in uts if ut not in (None, type(None)))
6430
- else:
6431
- is_opt = False
6451
+ if is_union_alias(ty):
6452
+ uts = frozenset(ta.get_args(ty))
6453
+ if None in uts or type(None) in uts:
6454
+ is_opt = True
6455
+ uts = frozenset(ut for ut in uts if ut not in (None, type(None)))
6456
+ else:
6457
+ is_opt = False
6432
6458
 
6433
- um: ObjMarshaler
6434
- if not uts:
6435
- raise TypeError(ty)
6436
- elif len(uts) == 1:
6437
- um = rec(check.single(uts))
6459
+ um: ObjMarshaler
6460
+ if not uts:
6461
+ raise TypeError(ty)
6462
+ elif len(uts) == 1:
6463
+ um = rec(check.single(uts))
6464
+ else:
6465
+ pt = tuple({ut for ut in uts if ut in _OBJ_MARSHALER_PRIMITIVE_TYPES})
6466
+ np_uts = {ut for ut in uts if ut not in _OBJ_MARSHALER_PRIMITIVE_TYPES}
6467
+ if not np_uts:
6468
+ um = PrimitiveUnionObjMarshaler(pt)
6469
+ elif len(np_uts) == 1:
6470
+ um = PrimitiveUnionObjMarshaler(pt, x=rec(check.single(np_uts)))
6438
6471
  else:
6439
- pt = tuple({ut for ut in uts if ut in _OBJ_MARSHALER_PRIMITIVE_TYPES})
6440
- np_uts = {ut for ut in uts if ut not in _OBJ_MARSHALER_PRIMITIVE_TYPES}
6441
- if not np_uts:
6442
- um = PrimitiveUnionObjMarshaler(pt)
6443
- elif len(np_uts) == 1:
6444
- um = PrimitiveUnionObjMarshaler(pt, x=rec(check.single(np_uts)))
6445
- else:
6446
- raise TypeError(ty)
6472
+ raise TypeError(ty)
6447
6473
 
6448
- if is_opt:
6449
- um = OptionalObjMarshaler(um)
6450
- return um
6474
+ if is_opt:
6475
+ um = OptionalObjMarshaler(um)
6476
+ return um
6451
6477
 
6452
6478
  raise TypeError(ty)
6453
6479
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ominfra
3
- Version: 0.0.0.dev401
3
+ Version: 0.0.0.dev403
4
4
  Summary: ominfra
5
5
  Author: wrmsr
6
6
  License-Expression: BSD-3-Clause
@@ -14,8 +14,8 @@ Classifier: Programming Language :: Python :: 3.13
14
14
  Requires-Python: >=3.13
15
15
  Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
- Requires-Dist: omdev==0.0.0.dev401
18
- Requires-Dist: omlish==0.0.0.dev401
17
+ Requires-Dist: omdev==0.0.0.dev403
18
+ Requires-Dist: omlish==0.0.0.dev403
19
19
  Provides-Extra: all
20
20
  Requires-Dist: paramiko~=4.0; extra == "all"
21
21
  Requires-Dist: asyncssh~=2.21; extra == "all"
@@ -1,5 +1,5 @@
1
- omdev==0.0.0.dev401
2
- omlish==0.0.0.dev401
1
+ omdev==0.0.0.dev403
2
+ omlish==0.0.0.dev403
3
3
 
4
4
  [all]
5
5
  paramiko~=4.0
@@ -13,7 +13,7 @@ urls = {source = 'https://github.com/wrmsr/omlish'}
13
13
  license = 'BSD-3-Clause'
14
14
  readme = 'README.md'
15
15
  requires-python = '>=3.13'
16
- version = '0.0.0.dev401'
16
+ version = '0.0.0.dev403'
17
17
  classifiers = [
18
18
  'Development Status :: 2 - Pre-Alpha',
19
19
  'Intended Audience :: Developers',
@@ -24,8 +24,8 @@ classifiers = [
24
24
  ]
25
25
  description = 'ominfra'
26
26
  dependencies = [
27
- 'omdev == 0.0.0.dev401',
28
- 'omlish == 0.0.0.dev401',
27
+ 'omdev == 0.0.0.dev403',
28
+ 'omlish == 0.0.0.dev403',
29
29
  ]
30
30
 
31
31
  [project.optional-dependencies]
File without changes
File without changes
File without changes