ominfra 0.0.0.dev432__tar.gz → 0.0.0.dev434__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.dev432/ominfra.egg-info → ominfra-0.0.0.dev434}/PKG-INFO +3 -3
  2. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/scripts/journald2aws.py +33 -22
  3. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/scripts/manage.py +33 -22
  4. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/scripts/supervisor.py +33 -22
  5. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434/ominfra.egg-info}/PKG-INFO +3 -3
  6. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra.egg-info/requires.txt +2 -2
  7. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/pyproject.toml +3 -3
  8. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/LICENSE +0 -0
  9. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/MANIFEST.in +0 -0
  10. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/README.md +0 -0
  11. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/.omlish-manifests.json +0 -0
  12. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/__about__.py +0 -0
  13. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/__init__.py +0 -0
  14. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/__init__.py +0 -0
  15. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/__init__.py +0 -0
  16. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/__main__.py +0 -0
  17. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/auth.py +0 -0
  18. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/cli.py +0 -0
  19. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/dataclasses.py +0 -0
  20. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/instancetypes/__init__.py +0 -0
  21. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/instancetypes/__main__.py +0 -0
  22. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/instancetypes/cache.json.gz +0 -0
  23. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/instancetypes/cache.py +0 -0
  24. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/instancetypes/cli.py +0 -0
  25. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/journald2aws/__init__.py +0 -0
  26. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/journald2aws/__main__.py +0 -0
  27. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/journald2aws/cursor.py +0 -0
  28. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/journald2aws/driver.py +0 -0
  29. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/journald2aws/main.py +0 -0
  30. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/journald2aws/poster.py +0 -0
  31. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/logs.py +0 -0
  32. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/metadata.py +0 -0
  33. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/models/__init__.py +0 -0
  34. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/models/base.py +0 -0
  35. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/models/gen/__init__.py +0 -0
  36. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/models/gen/__main__.py +0 -0
  37. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/models/gen/cli.py +0 -0
  38. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/models/gen/gen.py +0 -0
  39. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/models/services/__init__.py +0 -0
  40. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/models/services/ec2.py +0 -0
  41. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/models/services/lambda_.py +0 -0
  42. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/models/services/rds.py +0 -0
  43. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/models/services/s3.py +0 -0
  44. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/aws/models/services/services.toml +0 -0
  45. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/gcp/__init__.py +0 -0
  46. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/gcp/api.py +0 -0
  47. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/clouds/gcp/auth.py +0 -0
  48. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/commands/__init__.py +0 -0
  49. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/commands/runners.py +0 -0
  50. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/commands/ssh.py +0 -0
  51. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/journald/__init__.py +0 -0
  52. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/journald/fields.py +0 -0
  53. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/journald/genmessages.py +0 -0
  54. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/journald/messages.py +0 -0
  55. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/journald/tailer.py +0 -0
  56. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/__init__.py +0 -0
  57. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/__main__.py +0 -0
  58. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/bootstrap.py +0 -0
  59. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/bootstrap_.py +0 -0
  60. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/commands/__init__.py +0 -0
  61. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/commands/base.py +0 -0
  62. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/commands/inject.py +0 -0
  63. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/commands/injection.py +0 -0
  64. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/commands/local.py +0 -0
  65. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/commands/marshal.py +0 -0
  66. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/commands/ping.py +0 -0
  67. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/commands/subprocess.py +0 -0
  68. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/commands/types.py +0 -0
  69. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/config.py +0 -0
  70. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/__init__.py +0 -0
  71. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/apps.py +0 -0
  72. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/commands.py +0 -0
  73. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/conf/__init__.py +0 -0
  74. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/conf/inject.py +0 -0
  75. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/conf/manager.py +0 -0
  76. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/conf/specs.py +0 -0
  77. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/config.py +0 -0
  78. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/deploy.py +0 -0
  79. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/git.py +0 -0
  80. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/inject.py +0 -0
  81. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/injection.py +0 -0
  82. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/interp.py +0 -0
  83. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/nginx.py +0 -0
  84. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/paths/__init__.py +0 -0
  85. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/paths/inject.py +0 -0
  86. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/paths/manager.py +0 -0
  87. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/paths/owners.py +0 -0
  88. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/paths/paths.py +0 -0
  89. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/paths/specs.py +0 -0
  90. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/paths/types.py +0 -0
  91. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/specs.py +0 -0
  92. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/systemd.py +0 -0
  93. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/tags.py +0 -0
  94. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/tmp.py +0 -0
  95. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/types.py +0 -0
  96. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/deploy/venvs.py +0 -0
  97. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/inject.py +0 -0
  98. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/main.py +0 -0
  99. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/marshal.py +0 -0
  100. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/remote/__init__.py +0 -0
  101. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/remote/_main.py +0 -0
  102. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/remote/channel.py +0 -0
  103. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/remote/config.py +0 -0
  104. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/remote/connection.py +0 -0
  105. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/remote/execution.py +0 -0
  106. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/remote/inject.py +0 -0
  107. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/remote/payload.py +0 -0
  108. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/remote/spawning.py +0 -0
  109. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/system/__init__.py +0 -0
  110. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/system/commands.py +0 -0
  111. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/system/config.py +0 -0
  112. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/system/inject.py +0 -0
  113. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/system/packages.py +0 -0
  114. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/system/platforms.py +0 -0
  115. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/targets/__init__.py +0 -0
  116. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/targets/bestpython.py +0 -0
  117. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/targets/bestpython.sh +0 -0
  118. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/targets/connection.py +0 -0
  119. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/targets/inject.py +0 -0
  120. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/manage/targets/targets.py +0 -0
  121. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/pyremote.py +0 -0
  122. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/scripts/__init__.py +0 -0
  123. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/LICENSE.txt +0 -0
  124. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/__init__.py +0 -0
  125. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/__main__.py +0 -0
  126. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/configs.py +0 -0
  127. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/dispatchers.py +0 -0
  128. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/dispatchersimpl.py +0 -0
  129. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/errors.py +0 -0
  130. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/events.py +0 -0
  131. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/groups.py +0 -0
  132. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/groupsimpl.py +0 -0
  133. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/http.py +0 -0
  134. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/inject.py +0 -0
  135. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/io.py +0 -0
  136. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/main.py +0 -0
  137. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/pipes.py +0 -0
  138. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/privileges.py +0 -0
  139. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/process.py +0 -0
  140. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/processimpl.py +0 -0
  141. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/setup.py +0 -0
  142. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/setupimpl.py +0 -0
  143. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/signals.py +0 -0
  144. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/spawning.py +0 -0
  145. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/spawningimpl.py +0 -0
  146. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/states.py +0 -0
  147. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/supervisor.py +0 -0
  148. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/types.py +0 -0
  149. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/utils/__init__.py +0 -0
  150. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/utils/collections.py +0 -0
  151. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/utils/diag.py +0 -0
  152. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/utils/fds.py +0 -0
  153. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/utils/fs.py +0 -0
  154. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/utils/os.py +0 -0
  155. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/utils/ostypes.py +0 -0
  156. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/utils/signals.py +0 -0
  157. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/utils/strings.py +0 -0
  158. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/supervisor/utils/users.py +0 -0
  159. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/systemd.py +0 -0
  160. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/tailscale/__init__.py +0 -0
  161. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/tailscale/api.py +0 -0
  162. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/tailscale/cli.py +0 -0
  163. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/threadworkers.py +0 -0
  164. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/tools/__init__.py +0 -0
  165. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra/tools/listresources.py +0 -0
  166. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra.egg-info/SOURCES.txt +0 -0
  167. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra.egg-info/dependency_links.txt +0 -0
  168. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra.egg-info/entry_points.txt +0 -0
  169. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/ominfra.egg-info/top_level.txt +0 -0
  170. {ominfra-0.0.0.dev432 → ominfra-0.0.0.dev434}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ominfra
3
- Version: 0.0.0.dev432
3
+ Version: 0.0.0.dev434
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.dev432
18
- Requires-Dist: omlish==0.0.0.dev432
17
+ Requires-Dist: omdev==0.0.0.dev434
18
+ Requires-Dist: omlish==0.0.0.dev434
19
19
  Provides-Extra: all
20
20
  Requires-Dist: paramiko~=4.0; extra == "all"
21
21
  Requires-Dist: asyncssh~=2.21; extra == "all"
@@ -5527,16 +5527,17 @@ class CaptureLoggingContextImpl(CaptureLoggingContext):
5527
5527
  stack_offset: int = 0,
5528
5528
  stack_info: bool = False,
5529
5529
  ) -> None:
5530
- # TODO: Name, Msg, Extra
5531
-
5532
5530
  if time_ns is None:
5533
5531
  time_ns = time.time_ns()
5534
5532
 
5533
+ # Done early to not trample on sys.exc_info()
5534
+ exc = LoggingContextInfos.Exc.build(exc_info)
5535
+
5535
5536
  self._infos: ta.Dict[ta.Type[LoggingContextInfo], LoggingContextInfo] = {}
5536
5537
  self._set_info(
5537
5538
  LoggingContextInfos.Level.build(level),
5539
+ exc,
5538
5540
  LoggingContextInfos.Time.build(time_ns),
5539
- LoggingContextInfos.Exc.build(exc_info),
5540
5541
  )
5541
5542
 
5542
5543
  if caller is not CaptureLoggingContextImpl.NOT_SET:
@@ -6171,22 +6172,6 @@ class LoggingContextInfoRecordAdapters:
6171
6172
  args=rec.args,
6172
6173
  )
6173
6174
 
6174
- # FIXME: handled specially - all unknown attrs on LogRecord
6175
- # class Extra(Adapter[LoggingContextInfos.Extra]):
6176
- # _record_attrs: ta.ClassVar[ta.Mapping[str, ta.Union[ta.Any, ta.Tuple[ta.Any, ta.Any]]]] = dict()
6177
- #
6178
- # def info_to_record(self, info: ta.Optional[LoggingContextInfos.Extra]) -> ta.Mapping[str, ta.Any]:
6179
- # # FIXME:
6180
- # # if extra is not None:
6181
- # # for key in extra:
6182
- # # if (key in ["message", "asctime"]) or (key in rv.__dict__):
6183
- # # raise KeyError("Attempt to overwrite %r in LogRecord" % key)
6184
- # # rv.__dict__[key] = extra[key]
6185
- # return dict()
6186
- #
6187
- # def record_to_info(self, rec: logging.LogRecord) -> ta.Optional[LoggingContextInfos.Extra]:
6188
- # return None
6189
-
6190
6175
  class Time(RequiredAdapter[LoggingContextInfos.Time]):
6191
6176
  info_cls: ta.ClassVar[ta.Type[LoggingContextInfos.Time]] = LoggingContextInfos.Time
6192
6177
 
@@ -6567,13 +6552,20 @@ class LoggingContextLogRecord(logging.LogRecord):
6567
6552
  # - exc_info: LoggingExcInfoTuple | None
6568
6553
  # - func: str | None = None -> funcName
6569
6554
  # - sinfo: str | None = None -> stack_info
6555
+ #
6570
6556
 
6571
6557
  def __init__(self, *, _logging_context: LoggingContext) -> None: # noqa
6572
- self._logging_context = _logging_context
6558
+ self.__dict__.update(_logging_context=_logging_context)
6573
6559
 
6574
6560
  for ad in _LOGGING_CONTEXT_INFO_RECORD_ADAPTERS_:
6575
6561
  self.__dict__.update(ad.context_to_record(_logging_context))
6576
6562
 
6563
+ _logging_context: LoggingContext
6564
+
6565
+ # FIXME: track extra
6566
+ # def __setattr__(self, key, value):
6567
+ # super().__setattr__(key, value)
6568
+
6577
6569
 
6578
6570
  ##
6579
6571
 
@@ -6586,10 +6578,29 @@ class LogRecordLoggingContext(LoggingContext):
6586
6578
 
6587
6579
  self._rec = rec
6588
6580
 
6589
- self._infos: ta.Dict[ta.Type[LoggingContextInfo], LoggingContextInfo] = {
6590
- type(info): info
6581
+ infos: ta.List[LoggingContextInfo] = [
6582
+ info
6591
6583
  for ad in _LOGGING_CONTEXT_INFO_RECORD_ADAPTERS_
6592
6584
  if (info := ad.record_to_info(rec)) is not None
6585
+ ]
6586
+
6587
+ # FIXME:
6588
+ # if extra is not None:
6589
+ # for key in extra:
6590
+ # if (key in ["message", "asctime"]) or (key in rv.__dict__):
6591
+ # raise KeyError("Attempt to overwrite %r in LogRecord" % key)
6592
+ # rv.__dict__[key] = extra[key]
6593
+
6594
+ if (extra := {
6595
+ a: v
6596
+ for a, v in rec.__dict__.items()
6597
+ if a not in _KNOWN_STD_LOGGING_RECORD_ATTR_SET
6598
+ }):
6599
+ infos.append(LoggingContextInfos.Extra(extra))
6600
+
6601
+ self._infos: ta.Dict[ta.Type[LoggingContextInfo], LoggingContextInfo] = {
6602
+ type(info): info
6603
+ for info in infos
6593
6604
  }
6594
6605
 
6595
6606
  def get_info(self, ty: ta.Type[LoggingContextInfoT]) -> ta.Optional[LoggingContextInfoT]:
@@ -10165,16 +10165,17 @@ class CaptureLoggingContextImpl(CaptureLoggingContext):
10165
10165
  stack_offset: int = 0,
10166
10166
  stack_info: bool = False,
10167
10167
  ) -> None:
10168
- # TODO: Name, Msg, Extra
10169
-
10170
10168
  if time_ns is None:
10171
10169
  time_ns = time.time_ns()
10172
10170
 
10171
+ # Done early to not trample on sys.exc_info()
10172
+ exc = LoggingContextInfos.Exc.build(exc_info)
10173
+
10173
10174
  self._infos: ta.Dict[ta.Type[LoggingContextInfo], LoggingContextInfo] = {}
10174
10175
  self._set_info(
10175
10176
  LoggingContextInfos.Level.build(level),
10177
+ exc,
10176
10178
  LoggingContextInfos.Time.build(time_ns),
10177
- LoggingContextInfos.Exc.build(exc_info),
10178
10179
  )
10179
10180
 
10180
10181
  if caller is not CaptureLoggingContextImpl.NOT_SET:
@@ -11408,22 +11409,6 @@ class LoggingContextInfoRecordAdapters:
11408
11409
  args=rec.args,
11409
11410
  )
11410
11411
 
11411
- # FIXME: handled specially - all unknown attrs on LogRecord
11412
- # class Extra(Adapter[LoggingContextInfos.Extra]):
11413
- # _record_attrs: ta.ClassVar[ta.Mapping[str, ta.Union[ta.Any, ta.Tuple[ta.Any, ta.Any]]]] = dict()
11414
- #
11415
- # def info_to_record(self, info: ta.Optional[LoggingContextInfos.Extra]) -> ta.Mapping[str, ta.Any]:
11416
- # # FIXME:
11417
- # # if extra is not None:
11418
- # # for key in extra:
11419
- # # if (key in ["message", "asctime"]) or (key in rv.__dict__):
11420
- # # raise KeyError("Attempt to overwrite %r in LogRecord" % key)
11421
- # # rv.__dict__[key] = extra[key]
11422
- # return dict()
11423
- #
11424
- # def record_to_info(self, rec: logging.LogRecord) -> ta.Optional[LoggingContextInfos.Extra]:
11425
- # return None
11426
-
11427
11412
  class Time(RequiredAdapter[LoggingContextInfos.Time]):
11428
11413
  info_cls: ta.ClassVar[ta.Type[LoggingContextInfos.Time]] = LoggingContextInfos.Time
11429
11414
 
@@ -11804,13 +11789,20 @@ class LoggingContextLogRecord(logging.LogRecord):
11804
11789
  # - exc_info: LoggingExcInfoTuple | None
11805
11790
  # - func: str | None = None -> funcName
11806
11791
  # - sinfo: str | None = None -> stack_info
11792
+ #
11807
11793
 
11808
11794
  def __init__(self, *, _logging_context: LoggingContext) -> None: # noqa
11809
- self._logging_context = _logging_context
11795
+ self.__dict__.update(_logging_context=_logging_context)
11810
11796
 
11811
11797
  for ad in _LOGGING_CONTEXT_INFO_RECORD_ADAPTERS_:
11812
11798
  self.__dict__.update(ad.context_to_record(_logging_context))
11813
11799
 
11800
+ _logging_context: LoggingContext
11801
+
11802
+ # FIXME: track extra
11803
+ # def __setattr__(self, key, value):
11804
+ # super().__setattr__(key, value)
11805
+
11814
11806
 
11815
11807
  ##
11816
11808
 
@@ -11823,10 +11815,29 @@ class LogRecordLoggingContext(LoggingContext):
11823
11815
 
11824
11816
  self._rec = rec
11825
11817
 
11826
- self._infos: ta.Dict[ta.Type[LoggingContextInfo], LoggingContextInfo] = {
11827
- type(info): info
11818
+ infos: ta.List[LoggingContextInfo] = [
11819
+ info
11828
11820
  for ad in _LOGGING_CONTEXT_INFO_RECORD_ADAPTERS_
11829
11821
  if (info := ad.record_to_info(rec)) is not None
11822
+ ]
11823
+
11824
+ # FIXME:
11825
+ # if extra is not None:
11826
+ # for key in extra:
11827
+ # if (key in ["message", "asctime"]) or (key in rv.__dict__):
11828
+ # raise KeyError("Attempt to overwrite %r in LogRecord" % key)
11829
+ # rv.__dict__[key] = extra[key]
11830
+
11831
+ if (extra := {
11832
+ a: v
11833
+ for a, v in rec.__dict__.items()
11834
+ if a not in _KNOWN_STD_LOGGING_RECORD_ATTR_SET
11835
+ }):
11836
+ infos.append(LoggingContextInfos.Extra(extra))
11837
+
11838
+ self._infos: ta.Dict[ta.Type[LoggingContextInfo], LoggingContextInfo] = {
11839
+ type(info): info
11840
+ for info in infos
11830
11841
  }
11831
11842
 
11832
11843
  def get_info(self, ty: ta.Type[LoggingContextInfoT]) -> ta.Optional[LoggingContextInfoT]:
@@ -8651,16 +8651,17 @@ class CaptureLoggingContextImpl(CaptureLoggingContext):
8651
8651
  stack_offset: int = 0,
8652
8652
  stack_info: bool = False,
8653
8653
  ) -> None:
8654
- # TODO: Name, Msg, Extra
8655
-
8656
8654
  if time_ns is None:
8657
8655
  time_ns = time.time_ns()
8658
8656
 
8657
+ # Done early to not trample on sys.exc_info()
8658
+ exc = LoggingContextInfos.Exc.build(exc_info)
8659
+
8659
8660
  self._infos: ta.Dict[ta.Type[LoggingContextInfo], LoggingContextInfo] = {}
8660
8661
  self._set_info(
8661
8662
  LoggingContextInfos.Level.build(level),
8663
+ exc,
8662
8664
  LoggingContextInfos.Time.build(time_ns),
8663
- LoggingContextInfos.Exc.build(exc_info),
8664
8665
  )
8665
8666
 
8666
8667
  if caller is not CaptureLoggingContextImpl.NOT_SET:
@@ -10016,22 +10017,6 @@ class LoggingContextInfoRecordAdapters:
10016
10017
  args=rec.args,
10017
10018
  )
10018
10019
 
10019
- # FIXME: handled specially - all unknown attrs on LogRecord
10020
- # class Extra(Adapter[LoggingContextInfos.Extra]):
10021
- # _record_attrs: ta.ClassVar[ta.Mapping[str, ta.Union[ta.Any, ta.Tuple[ta.Any, ta.Any]]]] = dict()
10022
- #
10023
- # def info_to_record(self, info: ta.Optional[LoggingContextInfos.Extra]) -> ta.Mapping[str, ta.Any]:
10024
- # # FIXME:
10025
- # # if extra is not None:
10026
- # # for key in extra:
10027
- # # if (key in ["message", "asctime"]) or (key in rv.__dict__):
10028
- # # raise KeyError("Attempt to overwrite %r in LogRecord" % key)
10029
- # # rv.__dict__[key] = extra[key]
10030
- # return dict()
10031
- #
10032
- # def record_to_info(self, rec: logging.LogRecord) -> ta.Optional[LoggingContextInfos.Extra]:
10033
- # return None
10034
-
10035
10020
  class Time(RequiredAdapter[LoggingContextInfos.Time]):
10036
10021
  info_cls: ta.ClassVar[ta.Type[LoggingContextInfos.Time]] = LoggingContextInfos.Time
10037
10022
 
@@ -10412,13 +10397,20 @@ class LoggingContextLogRecord(logging.LogRecord):
10412
10397
  # - exc_info: LoggingExcInfoTuple | None
10413
10398
  # - func: str | None = None -> funcName
10414
10399
  # - sinfo: str | None = None -> stack_info
10400
+ #
10415
10401
 
10416
10402
  def __init__(self, *, _logging_context: LoggingContext) -> None: # noqa
10417
- self._logging_context = _logging_context
10403
+ self.__dict__.update(_logging_context=_logging_context)
10418
10404
 
10419
10405
  for ad in _LOGGING_CONTEXT_INFO_RECORD_ADAPTERS_:
10420
10406
  self.__dict__.update(ad.context_to_record(_logging_context))
10421
10407
 
10408
+ _logging_context: LoggingContext
10409
+
10410
+ # FIXME: track extra
10411
+ # def __setattr__(self, key, value):
10412
+ # super().__setattr__(key, value)
10413
+
10422
10414
 
10423
10415
  ##
10424
10416
 
@@ -10431,10 +10423,29 @@ class LogRecordLoggingContext(LoggingContext):
10431
10423
 
10432
10424
  self._rec = rec
10433
10425
 
10434
- self._infos: ta.Dict[ta.Type[LoggingContextInfo], LoggingContextInfo] = {
10435
- type(info): info
10426
+ infos: ta.List[LoggingContextInfo] = [
10427
+ info
10436
10428
  for ad in _LOGGING_CONTEXT_INFO_RECORD_ADAPTERS_
10437
10429
  if (info := ad.record_to_info(rec)) is not None
10430
+ ]
10431
+
10432
+ # FIXME:
10433
+ # if extra is not None:
10434
+ # for key in extra:
10435
+ # if (key in ["message", "asctime"]) or (key in rv.__dict__):
10436
+ # raise KeyError("Attempt to overwrite %r in LogRecord" % key)
10437
+ # rv.__dict__[key] = extra[key]
10438
+
10439
+ if (extra := {
10440
+ a: v
10441
+ for a, v in rec.__dict__.items()
10442
+ if a not in _KNOWN_STD_LOGGING_RECORD_ATTR_SET
10443
+ }):
10444
+ infos.append(LoggingContextInfos.Extra(extra))
10445
+
10446
+ self._infos: ta.Dict[ta.Type[LoggingContextInfo], LoggingContextInfo] = {
10447
+ type(info): info
10448
+ for info in infos
10438
10449
  }
10439
10450
 
10440
10451
  def get_info(self, ty: ta.Type[LoggingContextInfoT]) -> ta.Optional[LoggingContextInfoT]:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ominfra
3
- Version: 0.0.0.dev432
3
+ Version: 0.0.0.dev434
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.dev432
18
- Requires-Dist: omlish==0.0.0.dev432
17
+ Requires-Dist: omdev==0.0.0.dev434
18
+ Requires-Dist: omlish==0.0.0.dev434
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.dev432
2
- omlish==0.0.0.dev432
1
+ omdev==0.0.0.dev434
2
+ omlish==0.0.0.dev434
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.dev432'
16
+ version = '0.0.0.dev434'
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.dev432',
28
- 'omlish == 0.0.0.dev432',
27
+ 'omdev == 0.0.0.dev434',
28
+ 'omlish == 0.0.0.dev434',
29
29
  ]
30
30
 
31
31
  [project.optional-dependencies]
File without changes
File without changes
File without changes