ominfra 0.0.0.dev372__tar.gz → 0.0.0.dev373__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.dev372/ominfra.egg-info → ominfra-0.0.0.dev373}/PKG-INFO +3 -3
  2. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/scripts/journald2aws.py +63 -3
  3. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/scripts/manage.py +63 -3
  4. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/scripts/supervisor.py +63 -3
  5. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373/ominfra.egg-info}/PKG-INFO +3 -3
  6. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra.egg-info/requires.txt +2 -2
  7. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/pyproject.toml +3 -3
  8. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/LICENSE +0 -0
  9. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/MANIFEST.in +0 -0
  10. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/README.md +0 -0
  11. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/.manifests.json +0 -0
  12. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/__about__.py +0 -0
  13. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/__init__.py +0 -0
  14. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/__init__.py +0 -0
  15. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/__init__.py +0 -0
  16. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/__main__.py +0 -0
  17. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/auth.py +0 -0
  18. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/cli.py +0 -0
  19. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/dataclasses.py +0 -0
  20. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/instancetypes/__init__.py +0 -0
  21. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/instancetypes/__main__.py +0 -0
  22. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/instancetypes/cache.json.gz +0 -0
  23. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/instancetypes/cache.py +0 -0
  24. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/instancetypes/cli.py +0 -0
  25. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/journald2aws/__init__.py +0 -0
  26. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/journald2aws/__main__.py +0 -0
  27. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/journald2aws/cursor.py +0 -0
  28. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/journald2aws/driver.py +0 -0
  29. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/journald2aws/main.py +0 -0
  30. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/journald2aws/poster.py +0 -0
  31. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/logs.py +0 -0
  32. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/metadata.py +0 -0
  33. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/models/__init__.py +0 -0
  34. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/models/base.py +0 -0
  35. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/models/gen/__init__.py +0 -0
  36. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/models/gen/__main__.py +0 -0
  37. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/models/gen/cli.py +0 -0
  38. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/models/gen/gen.py +0 -0
  39. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/models/services/__init__.py +0 -0
  40. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/models/services/ec2.py +0 -0
  41. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/models/services/lambda_.py +0 -0
  42. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/models/services/rds.py +0 -0
  43. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/models/services/s3.py +0 -0
  44. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/aws/models/services/services.toml +0 -0
  45. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/gcp/__init__.py +0 -0
  46. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/gcp/api.py +0 -0
  47. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/clouds/gcp/auth.py +0 -0
  48. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/commands/__init__.py +0 -0
  49. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/commands/runners.py +0 -0
  50. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/commands/ssh.py +0 -0
  51. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/journald/__init__.py +0 -0
  52. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/journald/fields.py +0 -0
  53. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/journald/genmessages.py +0 -0
  54. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/journald/messages.py +0 -0
  55. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/journald/tailer.py +0 -0
  56. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/__init__.py +0 -0
  57. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/__main__.py +0 -0
  58. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/bootstrap.py +0 -0
  59. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/bootstrap_.py +0 -0
  60. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/commands/__init__.py +0 -0
  61. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/commands/base.py +0 -0
  62. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/commands/inject.py +0 -0
  63. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/commands/injection.py +0 -0
  64. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/commands/local.py +0 -0
  65. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/commands/marshal.py +0 -0
  66. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/commands/ping.py +0 -0
  67. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/commands/subprocess.py +0 -0
  68. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/commands/types.py +0 -0
  69. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/config.py +0 -0
  70. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/__init__.py +0 -0
  71. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/apps.py +0 -0
  72. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/commands.py +0 -0
  73. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/conf/__init__.py +0 -0
  74. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/conf/inject.py +0 -0
  75. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/conf/manager.py +0 -0
  76. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/conf/specs.py +0 -0
  77. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/config.py +0 -0
  78. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/deploy.py +0 -0
  79. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/git.py +0 -0
  80. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/inject.py +0 -0
  81. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/injection.py +0 -0
  82. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/interp.py +0 -0
  83. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/nginx.py +0 -0
  84. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/paths/__init__.py +0 -0
  85. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/paths/inject.py +0 -0
  86. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/paths/manager.py +0 -0
  87. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/paths/owners.py +0 -0
  88. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/paths/paths.py +0 -0
  89. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/paths/specs.py +0 -0
  90. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/paths/types.py +0 -0
  91. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/specs.py +0 -0
  92. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/systemd.py +0 -0
  93. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/tags.py +0 -0
  94. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/tmp.py +0 -0
  95. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/types.py +0 -0
  96. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/deploy/venvs.py +0 -0
  97. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/inject.py +0 -0
  98. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/main.py +0 -0
  99. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/marshal.py +0 -0
  100. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/remote/__init__.py +0 -0
  101. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/remote/_main.py +0 -0
  102. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/remote/channel.py +0 -0
  103. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/remote/config.py +0 -0
  104. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/remote/connection.py +0 -0
  105. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/remote/execution.py +0 -0
  106. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/remote/inject.py +0 -0
  107. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/remote/payload.py +0 -0
  108. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/remote/spawning.py +0 -0
  109. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/system/__init__.py +0 -0
  110. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/system/commands.py +0 -0
  111. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/system/config.py +0 -0
  112. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/system/inject.py +0 -0
  113. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/system/packages.py +0 -0
  114. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/system/platforms.py +0 -0
  115. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/targets/__init__.py +0 -0
  116. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/targets/bestpython.py +0 -0
  117. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/targets/bestpython.sh +0 -0
  118. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/targets/connection.py +0 -0
  119. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/targets/inject.py +0 -0
  120. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/manage/targets/targets.py +0 -0
  121. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/pyremote.py +0 -0
  122. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/scripts/__init__.py +0 -0
  123. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/LICENSE.txt +0 -0
  124. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/__init__.py +0 -0
  125. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/__main__.py +0 -0
  126. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/configs.py +0 -0
  127. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/dispatchers.py +0 -0
  128. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/dispatchersimpl.py +0 -0
  129. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/errors.py +0 -0
  130. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/events.py +0 -0
  131. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/groups.py +0 -0
  132. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/groupsimpl.py +0 -0
  133. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/http.py +0 -0
  134. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/inject.py +0 -0
  135. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/io.py +0 -0
  136. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/main.py +0 -0
  137. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/pipes.py +0 -0
  138. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/privileges.py +0 -0
  139. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/process.py +0 -0
  140. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/processimpl.py +0 -0
  141. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/setup.py +0 -0
  142. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/setupimpl.py +0 -0
  143. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/signals.py +0 -0
  144. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/spawning.py +0 -0
  145. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/spawningimpl.py +0 -0
  146. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/states.py +0 -0
  147. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/supervisor.py +0 -0
  148. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/types.py +0 -0
  149. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/utils/__init__.py +0 -0
  150. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/utils/collections.py +0 -0
  151. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/utils/diag.py +0 -0
  152. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/utils/fds.py +0 -0
  153. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/utils/fs.py +0 -0
  154. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/utils/os.py +0 -0
  155. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/utils/ostypes.py +0 -0
  156. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/utils/signals.py +0 -0
  157. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/utils/strings.py +0 -0
  158. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/supervisor/utils/users.py +0 -0
  159. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/systemd.py +0 -0
  160. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/tailscale/__init__.py +0 -0
  161. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/tailscale/api.py +0 -0
  162. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/tailscale/cli.py +0 -0
  163. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/threadworkers.py +0 -0
  164. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/tools/__init__.py +0 -0
  165. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra/tools/listresources.py +0 -0
  166. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra.egg-info/SOURCES.txt +0 -0
  167. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra.egg-info/dependency_links.txt +0 -0
  168. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra.egg-info/entry_points.txt +0 -0
  169. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/ominfra.egg-info/top_level.txt +0 -0
  170. {ominfra-0.0.0.dev372 → ominfra-0.0.0.dev373}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ominfra
3
- Version: 0.0.0.dev372
3
+ Version: 0.0.0.dev373
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.13
14
14
  License-File: LICENSE
15
- Requires-Dist: omdev==0.0.0.dev372
16
- Requires-Dist: omlish==0.0.0.dev372
15
+ Requires-Dist: omdev==0.0.0.dev373
16
+ Requires-Dist: omlish==0.0.0.dev373
17
17
  Provides-Extra: all
18
18
  Requires-Dist: paramiko~=3.5; extra == "all"
19
19
  Requires-Dist: asyncssh~=2.21; extra == "all"
@@ -3423,7 +3423,6 @@ class aclosing(contextlib.AbstractAsyncContextManager): # noqa
3423
3423
  """
3424
3424
  TODO:
3425
3425
  - pickle stdlib objs? have to pin to 3.8 pickle protocol, will be cross-version
3426
- - literals
3427
3426
  - Options.sequence_cls = list, mapping_cls = dict, ... - def with_mutable_containers() -> Options
3428
3427
  """
3429
3428
 
@@ -3537,6 +3536,28 @@ class OptionalObjMarshaler(ObjMarshaler):
3537
3536
  return self.item.unmarshal(o, ctx)
3538
3537
 
3539
3538
 
3539
+ @dc.dataclass(frozen=True)
3540
+ class PrimitiveUnionObjMarshaler(ObjMarshaler):
3541
+ pt: ta.Tuple[type, ...]
3542
+ x: ta.Optional[ObjMarshaler] = None
3543
+
3544
+ def marshal(self, o: ta.Any, ctx: 'ObjMarshalContext') -> ta.Any:
3545
+ if isinstance(o, self.pt):
3546
+ return o
3547
+ elif self.x is not None:
3548
+ return self.x.marshal(o, ctx)
3549
+ else:
3550
+ raise TypeError(o)
3551
+
3552
+ def unmarshal(self, o: ta.Any, ctx: 'ObjMarshalContext') -> ta.Any:
3553
+ if isinstance(o, self.pt):
3554
+ return o
3555
+ elif self.x is not None:
3556
+ return self.x.unmarshal(o, ctx)
3557
+ else:
3558
+ raise TypeError(o)
3559
+
3560
+
3540
3561
  @dc.dataclass(frozen=True)
3541
3562
  class LiteralObjMarshaler(ObjMarshaler):
3542
3563
  item: ObjMarshaler
@@ -3735,6 +3756,13 @@ _OBJ_MARSHALER_GENERIC_ITERABLE_TYPES: ta.Dict[ta.Any, type] = {
3735
3756
  collections.abc.MutableSequence: list,
3736
3757
  }
3737
3758
 
3759
+ _OBJ_MARSHALER_PRIMITIVE_TYPES: ta.Set[type] = {
3760
+ int,
3761
+ float,
3762
+ bool,
3763
+ str,
3764
+ }
3765
+
3738
3766
 
3739
3767
  ##
3740
3768
 
@@ -3883,8 +3911,16 @@ class ObjMarshalerManager:
3883
3911
 
3884
3912
  if is_literal_type(ty):
3885
3913
  lvs = frozenset(get_literal_type_args(ty))
3914
+ if None in lvs:
3915
+ is_opt = True
3916
+ lvs -= frozenset([None])
3917
+ else:
3918
+ is_opt = False
3886
3919
  lty = check.single(set(map(type, lvs)))
3887
- return LiteralObjMarshaler(rec(lty), lvs)
3920
+ lm: ObjMarshaler = LiteralObjMarshaler(rec(lty), lvs)
3921
+ if is_opt:
3922
+ lm = OptionalObjMarshaler(lm)
3923
+ return lm
3888
3924
 
3889
3925
  if is_generic_alias(ty):
3890
3926
  try:
@@ -3904,7 +3940,31 @@ class ObjMarshalerManager:
3904
3940
  return IterableObjMarshaler(st, rec(e))
3905
3941
 
3906
3942
  if is_union_alias(ty):
3907
- return OptionalObjMarshaler(rec(get_optional_alias_arg(ty)))
3943
+ uts = frozenset(ta.get_args(ty))
3944
+ if None in uts or type(None) in uts:
3945
+ is_opt = True
3946
+ uts = frozenset(ut for ut in uts if ut not in (None, type(None)))
3947
+ else:
3948
+ is_opt = False
3949
+
3950
+ um: ObjMarshaler
3951
+ if not uts:
3952
+ raise TypeError(ty)
3953
+ elif len(uts) == 1:
3954
+ um = rec(check.single(uts))
3955
+ else:
3956
+ pt = tuple({ut for ut in uts if ut in _OBJ_MARSHALER_PRIMITIVE_TYPES})
3957
+ np_uts = {ut for ut in uts if ut not in _OBJ_MARSHALER_PRIMITIVE_TYPES}
3958
+ if not np_uts:
3959
+ um = PrimitiveUnionObjMarshaler(pt)
3960
+ elif len(np_uts) == 1:
3961
+ um = PrimitiveUnionObjMarshaler(pt, x=rec(check.single(np_uts)))
3962
+ else:
3963
+ raise TypeError(ty)
3964
+
3965
+ if is_opt:
3966
+ um = OptionalObjMarshaler(um)
3967
+ return um
3908
3968
 
3909
3969
  raise TypeError(ty)
3910
3970
 
@@ -7211,7 +7211,6 @@ inj = InjectionApi()
7211
7211
  """
7212
7212
  TODO:
7213
7213
  - pickle stdlib objs? have to pin to 3.8 pickle protocol, will be cross-version
7214
- - literals
7215
7214
  - Options.sequence_cls = list, mapping_cls = dict, ... - def with_mutable_containers() -> Options
7216
7215
  """
7217
7216
 
@@ -7325,6 +7324,28 @@ class OptionalObjMarshaler(ObjMarshaler):
7325
7324
  return self.item.unmarshal(o, ctx)
7326
7325
 
7327
7326
 
7327
+ @dc.dataclass(frozen=True)
7328
+ class PrimitiveUnionObjMarshaler(ObjMarshaler):
7329
+ pt: ta.Tuple[type, ...]
7330
+ x: ta.Optional[ObjMarshaler] = None
7331
+
7332
+ def marshal(self, o: ta.Any, ctx: 'ObjMarshalContext') -> ta.Any:
7333
+ if isinstance(o, self.pt):
7334
+ return o
7335
+ elif self.x is not None:
7336
+ return self.x.marshal(o, ctx)
7337
+ else:
7338
+ raise TypeError(o)
7339
+
7340
+ def unmarshal(self, o: ta.Any, ctx: 'ObjMarshalContext') -> ta.Any:
7341
+ if isinstance(o, self.pt):
7342
+ return o
7343
+ elif self.x is not None:
7344
+ return self.x.unmarshal(o, ctx)
7345
+ else:
7346
+ raise TypeError(o)
7347
+
7348
+
7328
7349
  @dc.dataclass(frozen=True)
7329
7350
  class LiteralObjMarshaler(ObjMarshaler):
7330
7351
  item: ObjMarshaler
@@ -7523,6 +7544,13 @@ _OBJ_MARSHALER_GENERIC_ITERABLE_TYPES: ta.Dict[ta.Any, type] = {
7523
7544
  collections.abc.MutableSequence: list,
7524
7545
  }
7525
7546
 
7547
+ _OBJ_MARSHALER_PRIMITIVE_TYPES: ta.Set[type] = {
7548
+ int,
7549
+ float,
7550
+ bool,
7551
+ str,
7552
+ }
7553
+
7526
7554
 
7527
7555
  ##
7528
7556
 
@@ -7671,8 +7699,16 @@ class ObjMarshalerManager:
7671
7699
 
7672
7700
  if is_literal_type(ty):
7673
7701
  lvs = frozenset(get_literal_type_args(ty))
7702
+ if None in lvs:
7703
+ is_opt = True
7704
+ lvs -= frozenset([None])
7705
+ else:
7706
+ is_opt = False
7674
7707
  lty = check.single(set(map(type, lvs)))
7675
- return LiteralObjMarshaler(rec(lty), lvs)
7708
+ lm: ObjMarshaler = LiteralObjMarshaler(rec(lty), lvs)
7709
+ if is_opt:
7710
+ lm = OptionalObjMarshaler(lm)
7711
+ return lm
7676
7712
 
7677
7713
  if is_generic_alias(ty):
7678
7714
  try:
@@ -7692,7 +7728,31 @@ class ObjMarshalerManager:
7692
7728
  return IterableObjMarshaler(st, rec(e))
7693
7729
 
7694
7730
  if is_union_alias(ty):
7695
- return OptionalObjMarshaler(rec(get_optional_alias_arg(ty)))
7731
+ uts = frozenset(ta.get_args(ty))
7732
+ if None in uts or type(None) in uts:
7733
+ is_opt = True
7734
+ uts = frozenset(ut for ut in uts if ut not in (None, type(None)))
7735
+ else:
7736
+ is_opt = False
7737
+
7738
+ um: ObjMarshaler
7739
+ if not uts:
7740
+ raise TypeError(ty)
7741
+ elif len(uts) == 1:
7742
+ um = rec(check.single(uts))
7743
+ else:
7744
+ pt = tuple({ut for ut in uts if ut in _OBJ_MARSHALER_PRIMITIVE_TYPES})
7745
+ np_uts = {ut for ut in uts if ut not in _OBJ_MARSHALER_PRIMITIVE_TYPES}
7746
+ if not np_uts:
7747
+ um = PrimitiveUnionObjMarshaler(pt)
7748
+ elif len(np_uts) == 1:
7749
+ um = PrimitiveUnionObjMarshaler(pt, x=rec(check.single(np_uts)))
7750
+ else:
7751
+ raise TypeError(ty)
7752
+
7753
+ if is_opt:
7754
+ um = OptionalObjMarshaler(um)
7755
+ return um
7696
7756
 
7697
7757
  raise TypeError(ty)
7698
7758
 
@@ -5902,7 +5902,6 @@ inj = InjectionApi()
5902
5902
  """
5903
5903
  TODO:
5904
5904
  - pickle stdlib objs? have to pin to 3.8 pickle protocol, will be cross-version
5905
- - literals
5906
5905
  - Options.sequence_cls = list, mapping_cls = dict, ... - def with_mutable_containers() -> Options
5907
5906
  """
5908
5907
 
@@ -6016,6 +6015,28 @@ class OptionalObjMarshaler(ObjMarshaler):
6016
6015
  return self.item.unmarshal(o, ctx)
6017
6016
 
6018
6017
 
6018
+ @dc.dataclass(frozen=True)
6019
+ class PrimitiveUnionObjMarshaler(ObjMarshaler):
6020
+ pt: ta.Tuple[type, ...]
6021
+ x: ta.Optional[ObjMarshaler] = None
6022
+
6023
+ def marshal(self, o: ta.Any, ctx: 'ObjMarshalContext') -> ta.Any:
6024
+ if isinstance(o, self.pt):
6025
+ return o
6026
+ elif self.x is not None:
6027
+ return self.x.marshal(o, ctx)
6028
+ else:
6029
+ raise TypeError(o)
6030
+
6031
+ def unmarshal(self, o: ta.Any, ctx: 'ObjMarshalContext') -> ta.Any:
6032
+ if isinstance(o, self.pt):
6033
+ return o
6034
+ elif self.x is not None:
6035
+ return self.x.unmarshal(o, ctx)
6036
+ else:
6037
+ raise TypeError(o)
6038
+
6039
+
6019
6040
  @dc.dataclass(frozen=True)
6020
6041
  class LiteralObjMarshaler(ObjMarshaler):
6021
6042
  item: ObjMarshaler
@@ -6214,6 +6235,13 @@ _OBJ_MARSHALER_GENERIC_ITERABLE_TYPES: ta.Dict[ta.Any, type] = {
6214
6235
  collections.abc.MutableSequence: list,
6215
6236
  }
6216
6237
 
6238
+ _OBJ_MARSHALER_PRIMITIVE_TYPES: ta.Set[type] = {
6239
+ int,
6240
+ float,
6241
+ bool,
6242
+ str,
6243
+ }
6244
+
6217
6245
 
6218
6246
  ##
6219
6247
 
@@ -6362,8 +6390,16 @@ class ObjMarshalerManager:
6362
6390
 
6363
6391
  if is_literal_type(ty):
6364
6392
  lvs = frozenset(get_literal_type_args(ty))
6393
+ if None in lvs:
6394
+ is_opt = True
6395
+ lvs -= frozenset([None])
6396
+ else:
6397
+ is_opt = False
6365
6398
  lty = check.single(set(map(type, lvs)))
6366
- return LiteralObjMarshaler(rec(lty), lvs)
6399
+ lm: ObjMarshaler = LiteralObjMarshaler(rec(lty), lvs)
6400
+ if is_opt:
6401
+ lm = OptionalObjMarshaler(lm)
6402
+ return lm
6367
6403
 
6368
6404
  if is_generic_alias(ty):
6369
6405
  try:
@@ -6383,7 +6419,31 @@ class ObjMarshalerManager:
6383
6419
  return IterableObjMarshaler(st, rec(e))
6384
6420
 
6385
6421
  if is_union_alias(ty):
6386
- return OptionalObjMarshaler(rec(get_optional_alias_arg(ty)))
6422
+ uts = frozenset(ta.get_args(ty))
6423
+ if None in uts or type(None) in uts:
6424
+ is_opt = True
6425
+ uts = frozenset(ut for ut in uts if ut not in (None, type(None)))
6426
+ else:
6427
+ is_opt = False
6428
+
6429
+ um: ObjMarshaler
6430
+ if not uts:
6431
+ raise TypeError(ty)
6432
+ elif len(uts) == 1:
6433
+ um = rec(check.single(uts))
6434
+ else:
6435
+ pt = tuple({ut for ut in uts if ut in _OBJ_MARSHALER_PRIMITIVE_TYPES})
6436
+ np_uts = {ut for ut in uts if ut not in _OBJ_MARSHALER_PRIMITIVE_TYPES}
6437
+ if not np_uts:
6438
+ um = PrimitiveUnionObjMarshaler(pt)
6439
+ elif len(np_uts) == 1:
6440
+ um = PrimitiveUnionObjMarshaler(pt, x=rec(check.single(np_uts)))
6441
+ else:
6442
+ raise TypeError(ty)
6443
+
6444
+ if is_opt:
6445
+ um = OptionalObjMarshaler(um)
6446
+ return um
6387
6447
 
6388
6448
  raise TypeError(ty)
6389
6449
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ominfra
3
- Version: 0.0.0.dev372
3
+ Version: 0.0.0.dev373
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.13
14
14
  License-File: LICENSE
15
- Requires-Dist: omdev==0.0.0.dev372
16
- Requires-Dist: omlish==0.0.0.dev372
15
+ Requires-Dist: omdev==0.0.0.dev373
16
+ Requires-Dist: omlish==0.0.0.dev373
17
17
  Provides-Extra: all
18
18
  Requires-Dist: paramiko~=3.5; extra == "all"
19
19
  Requires-Dist: asyncssh~=2.21; extra == "all"
@@ -1,5 +1,5 @@
1
- omdev==0.0.0.dev372
2
- omlish==0.0.0.dev372
1
+ omdev==0.0.0.dev373
2
+ omlish==0.0.0.dev373
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.13'
15
- version = '0.0.0.dev372'
15
+ version = '0.0.0.dev373'
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.dev372',
26
- 'omlish == 0.0.0.dev372',
25
+ 'omdev == 0.0.0.dev373',
26
+ 'omlish == 0.0.0.dev373',
27
27
  ]
28
28
 
29
29
  [project.optional-dependencies]
File without changes
File without changes
File without changes