odoo-runbot 1.0.0__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 (424) hide show
  1. odoo_runbot-1.0.0/.gitignore +16 -0
  2. odoo_runbot-1.0.0/.gitlab-ci.yml +195 -0
  3. odoo_runbot-1.0.0/.idea/.gitignore +8 -0
  4. odoo_runbot-1.0.0/.idea/git_toolbox_blame.xml +6 -0
  5. odoo_runbot-1.0.0/.idea/inspectionProfiles/Project_Default.xml +20 -0
  6. odoo_runbot-1.0.0/.idea/jsonSchemas.xml +26 -0
  7. odoo_runbot-1.0.0/.idea/misc.xml +7 -0
  8. odoo_runbot-1.0.0/.idea/modules.xml +8 -0
  9. odoo_runbot-1.0.0/.idea/odoo-test.iml +19 -0
  10. odoo_runbot-1.0.0/.idea/ruff.xml +6 -0
  11. odoo_runbot-1.0.0/.idea/vcs.xml +17 -0
  12. odoo_runbot-1.0.0/.pre-commit-config.yaml +10 -0
  13. odoo_runbot-1.0.0/.python-version +1 -0
  14. odoo_runbot-1.0.0/.uv-cache/.gitignore +1 -0
  15. odoo_runbot-1.0.0/.uv-cache/CACHEDIR.TAG +1 -0
  16. odoo_runbot-1.0.0/.uv-cache/archive-v0/35uNhJ0HaTCNuoRMWpsKT/packaging/__init__.py +15 -0
  17. odoo_runbot-1.0.0/.uv-cache/archive-v0/35uNhJ0HaTCNuoRMWpsKT/packaging/_elffile.py +110 -0
  18. odoo_runbot-1.0.0/.uv-cache/archive-v0/35uNhJ0HaTCNuoRMWpsKT/packaging/_manylinux.py +263 -0
  19. odoo_runbot-1.0.0/.uv-cache/archive-v0/35uNhJ0HaTCNuoRMWpsKT/packaging/_musllinux.py +85 -0
  20. odoo_runbot-1.0.0/.uv-cache/archive-v0/35uNhJ0HaTCNuoRMWpsKT/packaging/_parser.py +354 -0
  21. odoo_runbot-1.0.0/.uv-cache/archive-v0/35uNhJ0HaTCNuoRMWpsKT/packaging/_structures.py +61 -0
  22. odoo_runbot-1.0.0/.uv-cache/archive-v0/35uNhJ0HaTCNuoRMWpsKT/packaging/_tokenizer.py +194 -0
  23. odoo_runbot-1.0.0/.uv-cache/archive-v0/35uNhJ0HaTCNuoRMWpsKT/packaging/licenses/__init__.py +145 -0
  24. odoo_runbot-1.0.0/.uv-cache/archive-v0/35uNhJ0HaTCNuoRMWpsKT/packaging/licenses/_spdx.py +759 -0
  25. odoo_runbot-1.0.0/.uv-cache/archive-v0/35uNhJ0HaTCNuoRMWpsKT/packaging/markers.py +331 -0
  26. odoo_runbot-1.0.0/.uv-cache/archive-v0/35uNhJ0HaTCNuoRMWpsKT/packaging/metadata.py +863 -0
  27. odoo_runbot-1.0.0/.uv-cache/archive-v0/35uNhJ0HaTCNuoRMWpsKT/packaging/py.typed +0 -0
  28. odoo_runbot-1.0.0/.uv-cache/archive-v0/35uNhJ0HaTCNuoRMWpsKT/packaging/requirements.py +91 -0
  29. odoo_runbot-1.0.0/.uv-cache/archive-v0/35uNhJ0HaTCNuoRMWpsKT/packaging/specifiers.py +1020 -0
  30. odoo_runbot-1.0.0/.uv-cache/archive-v0/35uNhJ0HaTCNuoRMWpsKT/packaging/tags.py +617 -0
  31. odoo_runbot-1.0.0/.uv-cache/archive-v0/35uNhJ0HaTCNuoRMWpsKT/packaging/utils.py +163 -0
  32. odoo_runbot-1.0.0/.uv-cache/archive-v0/35uNhJ0HaTCNuoRMWpsKT/packaging/version.py +582 -0
  33. odoo_runbot-1.0.0/.uv-cache/archive-v0/35uNhJ0HaTCNuoRMWpsKT/packaging-24.2.dist-info/LICENSE +3 -0
  34. odoo_runbot-1.0.0/.uv-cache/archive-v0/35uNhJ0HaTCNuoRMWpsKT/packaging-24.2.dist-info/LICENSE.APACHE +177 -0
  35. odoo_runbot-1.0.0/.uv-cache/archive-v0/35uNhJ0HaTCNuoRMWpsKT/packaging-24.2.dist-info/LICENSE.BSD +23 -0
  36. odoo_runbot-1.0.0/.uv-cache/archive-v0/35uNhJ0HaTCNuoRMWpsKT/packaging-24.2.dist-info/METADATA +102 -0
  37. odoo_runbot-1.0.0/.uv-cache/archive-v0/35uNhJ0HaTCNuoRMWpsKT/packaging-24.2.dist-info/RECORD +23 -0
  38. odoo_runbot-1.0.0/.uv-cache/archive-v0/35uNhJ0HaTCNuoRMWpsKT/packaging-24.2.dist-info/WHEEL +4 -0
  39. odoo_runbot-1.0.0/.uv-cache/archive-v0/JFyhSFF_JVUilv_v3T0JU/pathspec/__init__.py +76 -0
  40. odoo_runbot-1.0.0/.uv-cache/archive-v0/JFyhSFF_JVUilv_v3T0JU/pathspec/_meta.py +58 -0
  41. odoo_runbot-1.0.0/.uv-cache/archive-v0/JFyhSFF_JVUilv_v3T0JU/pathspec/gitignore.py +157 -0
  42. odoo_runbot-1.0.0/.uv-cache/archive-v0/JFyhSFF_JVUilv_v3T0JU/pathspec/pathspec.py +394 -0
  43. odoo_runbot-1.0.0/.uv-cache/archive-v0/JFyhSFF_JVUilv_v3T0JU/pathspec/pattern.py +213 -0
  44. odoo_runbot-1.0.0/.uv-cache/archive-v0/JFyhSFF_JVUilv_v3T0JU/pathspec/patterns/__init__.py +11 -0
  45. odoo_runbot-1.0.0/.uv-cache/archive-v0/JFyhSFF_JVUilv_v3T0JU/pathspec/patterns/gitwildmatch.py +421 -0
  46. odoo_runbot-1.0.0/.uv-cache/archive-v0/JFyhSFF_JVUilv_v3T0JU/pathspec/py.typed +1 -0
  47. odoo_runbot-1.0.0/.uv-cache/archive-v0/JFyhSFF_JVUilv_v3T0JU/pathspec/util.py +792 -0
  48. odoo_runbot-1.0.0/.uv-cache/archive-v0/JFyhSFF_JVUilv_v3T0JU/pathspec-0.12.1.dist-info/LICENSE +373 -0
  49. odoo_runbot-1.0.0/.uv-cache/archive-v0/JFyhSFF_JVUilv_v3T0JU/pathspec-0.12.1.dist-info/METADATA +647 -0
  50. odoo_runbot-1.0.0/.uv-cache/archive-v0/JFyhSFF_JVUilv_v3T0JU/pathspec-0.12.1.dist-info/RECORD +13 -0
  51. odoo_runbot-1.0.0/.uv-cache/archive-v0/JFyhSFF_JVUilv_v3T0JU/pathspec-0.12.1.dist-info/WHEEL +4 -0
  52. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/__about__.py +1 -0
  53. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/__init__.py +0 -0
  54. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/__main__.py +6 -0
  55. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/bridge/__init__.py +0 -0
  56. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/bridge/app.py +111 -0
  57. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/build.py +144 -0
  58. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/builders/__init__.py +0 -0
  59. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/builders/app.py +20 -0
  60. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/builders/binary.py +199 -0
  61. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/builders/config.py +862 -0
  62. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/builders/constants.py +43 -0
  63. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/builders/custom.py +54 -0
  64. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/builders/hooks/__init__.py +0 -0
  65. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/builders/hooks/custom.py +41 -0
  66. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/builders/hooks/plugin/__init__.py +0 -0
  67. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/builders/hooks/plugin/hooks.py +15 -0
  68. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/builders/hooks/plugin/interface.py +148 -0
  69. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/builders/hooks/version.py +71 -0
  70. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/builders/macos.py +58 -0
  71. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/builders/plugin/__init__.py +0 -0
  72. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/builders/plugin/hooks.py +18 -0
  73. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/builders/plugin/interface.py +441 -0
  74. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/builders/sdist.py +356 -0
  75. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/builders/utils.py +127 -0
  76. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/builders/wheel.py +822 -0
  77. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/cli/__init__.py +28 -0
  78. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/cli/dep/__init__.py +37 -0
  79. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/cli/dep/core.py +132 -0
  80. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/cli/metadata/__init__.py +58 -0
  81. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/cli/version/__init__.py +51 -0
  82. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/dep/__init__.py +0 -0
  83. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/dep/core.py +1 -0
  84. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/licenses/__init__.py +0 -0
  85. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/licenses/supported.py +1 -0
  86. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/metadata/__init__.py +0 -0
  87. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/metadata/core.py +1621 -0
  88. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/metadata/custom.py +41 -0
  89. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/metadata/plugin/__init__.py +0 -0
  90. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/metadata/plugin/hooks.py +14 -0
  91. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/metadata/plugin/interface.py +66 -0
  92. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/metadata/spec.py +598 -0
  93. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/metadata/utils.py +66 -0
  94. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/ouroboros.py +52 -0
  95. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/plugin/__init__.py +3 -0
  96. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/plugin/exceptions.py +2 -0
  97. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/plugin/manager.py +111 -0
  98. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/plugin/specs.py +23 -0
  99. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/plugin/utils.py +48 -0
  100. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/py.typed +0 -0
  101. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/utils/__init__.py +0 -0
  102. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/utils/constants.py +6 -0
  103. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/utils/context.py +170 -0
  104. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/utils/fs.py +26 -0
  105. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/version/__init__.py +0 -0
  106. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/version/core.py +58 -0
  107. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/version/scheme/__init__.py +0 -0
  108. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/version/scheme/plugin/__init__.py +0 -0
  109. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/version/scheme/plugin/hooks.py +14 -0
  110. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/version/scheme/plugin/interface.py +85 -0
  111. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/version/scheme/standard.py +98 -0
  112. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/version/source/__init__.py +0 -0
  113. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/version/source/code.py +64 -0
  114. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/version/source/env.py +29 -0
  115. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/version/source/plugin/__init__.py +0 -0
  116. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/version/source/plugin/hooks.py +16 -0
  117. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/version/source/plugin/interface.py +69 -0
  118. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling/version/source/regex.py +29 -0
  119. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling-1.27.0.dist-info/METADATA +80 -0
  120. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling-1.27.0.dist-info/RECORD +73 -0
  121. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling-1.27.0.dist-info/WHEEL +4 -0
  122. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling-1.27.0.dist-info/entry_points.txt +2 -0
  123. odoo_runbot-1.0.0/.uv-cache/archive-v0/Po7YlvqvYxDRLxXKtrN30/hatchling-1.27.0.dist-info/licenses/LICENSE.txt +9 -0
  124. odoo_runbot-1.0.0/.uv-cache/archive-v0/WdJAW7dWnQUOWIBwLL9OB/tomli/__init__.py +8 -0
  125. odoo_runbot-1.0.0/.uv-cache/archive-v0/WdJAW7dWnQUOWIBwLL9OB/tomli/_parser.py +770 -0
  126. odoo_runbot-1.0.0/.uv-cache/archive-v0/WdJAW7dWnQUOWIBwLL9OB/tomli/_re.py +112 -0
  127. odoo_runbot-1.0.0/.uv-cache/archive-v0/WdJAW7dWnQUOWIBwLL9OB/tomli/_types.py +10 -0
  128. odoo_runbot-1.0.0/.uv-cache/archive-v0/WdJAW7dWnQUOWIBwLL9OB/tomli/py.typed +1 -0
  129. odoo_runbot-1.0.0/.uv-cache/archive-v0/WdJAW7dWnQUOWIBwLL9OB/tomli-2.2.1.dist-info/LICENSE +21 -0
  130. odoo_runbot-1.0.0/.uv-cache/archive-v0/WdJAW7dWnQUOWIBwLL9OB/tomli-2.2.1.dist-info/METADATA +268 -0
  131. odoo_runbot-1.0.0/.uv-cache/archive-v0/WdJAW7dWnQUOWIBwLL9OB/tomli-2.2.1.dist-info/RECORD +9 -0
  132. odoo_runbot-1.0.0/.uv-cache/archive-v0/WdJAW7dWnQUOWIBwLL9OB/tomli-2.2.1.dist-info/WHEEL +4 -0
  133. odoo_runbot-1.0.0/.uv-cache/archive-v0/Y9R2V_BiBQdjPakDZlEKb/pluggy/__init__.py +37 -0
  134. odoo_runbot-1.0.0/.uv-cache/archive-v0/Y9R2V_BiBQdjPakDZlEKb/pluggy/_callers.py +182 -0
  135. odoo_runbot-1.0.0/.uv-cache/archive-v0/Y9R2V_BiBQdjPakDZlEKb/pluggy/_hooks.py +715 -0
  136. odoo_runbot-1.0.0/.uv-cache/archive-v0/Y9R2V_BiBQdjPakDZlEKb/pluggy/_manager.py +528 -0
  137. odoo_runbot-1.0.0/.uv-cache/archive-v0/Y9R2V_BiBQdjPakDZlEKb/pluggy/_result.py +104 -0
  138. odoo_runbot-1.0.0/.uv-cache/archive-v0/Y9R2V_BiBQdjPakDZlEKb/pluggy/_tracing.py +73 -0
  139. odoo_runbot-1.0.0/.uv-cache/archive-v0/Y9R2V_BiBQdjPakDZlEKb/pluggy/_version.py +16 -0
  140. odoo_runbot-1.0.0/.uv-cache/archive-v0/Y9R2V_BiBQdjPakDZlEKb/pluggy/_warnings.py +27 -0
  141. odoo_runbot-1.0.0/.uv-cache/archive-v0/Y9R2V_BiBQdjPakDZlEKb/pluggy/py.typed +0 -0
  142. odoo_runbot-1.0.0/.uv-cache/archive-v0/Y9R2V_BiBQdjPakDZlEKb/pluggy-1.5.0.dist-info/LICENSE +21 -0
  143. odoo_runbot-1.0.0/.uv-cache/archive-v0/Y9R2V_BiBQdjPakDZlEKb/pluggy-1.5.0.dist-info/METADATA +155 -0
  144. odoo_runbot-1.0.0/.uv-cache/archive-v0/Y9R2V_BiBQdjPakDZlEKb/pluggy-1.5.0.dist-info/RECORD +14 -0
  145. odoo_runbot-1.0.0/.uv-cache/archive-v0/Y9R2V_BiBQdjPakDZlEKb/pluggy-1.5.0.dist-info/WHEEL +5 -0
  146. odoo_runbot-1.0.0/.uv-cache/archive-v0/Y9R2V_BiBQdjPakDZlEKb/pluggy-1.5.0.dist-info/top_level.txt +1 -0
  147. odoo_runbot-1.0.0/.uv-cache/archive-v0/fhAJsiG2DmzZjIuyNH2cP/trove_classifiers/__init__.py +890 -0
  148. odoo_runbot-1.0.0/.uv-cache/archive-v0/fhAJsiG2DmzZjIuyNH2cP/trove_classifiers/__main__.py +4 -0
  149. odoo_runbot-1.0.0/.uv-cache/archive-v0/fhAJsiG2DmzZjIuyNH2cP/trove_classifiers/py.typed +0 -0
  150. odoo_runbot-1.0.0/.uv-cache/archive-v0/fhAJsiG2DmzZjIuyNH2cP/trove_classifiers-2025.2.18.16.dist-info/LICENSE +201 -0
  151. odoo_runbot-1.0.0/.uv-cache/archive-v0/fhAJsiG2DmzZjIuyNH2cP/trove_classifiers-2025.2.18.16.dist-info/METADATA +81 -0
  152. odoo_runbot-1.0.0/.uv-cache/archive-v0/fhAJsiG2DmzZjIuyNH2cP/trove_classifiers-2025.2.18.16.dist-info/RECORD +8 -0
  153. odoo_runbot-1.0.0/.uv-cache/archive-v0/fhAJsiG2DmzZjIuyNH2cP/trove_classifiers-2025.2.18.16.dist-info/WHEEL +5 -0
  154. odoo_runbot-1.0.0/.uv-cache/archive-v0/fhAJsiG2DmzZjIuyNH2cP/trove_classifiers-2025.2.18.16.dist-info/top_level.txt +1 -0
  155. odoo_runbot-1.0.0/.uv-cache/archive-v0/pDosHQLSKgIxX7W2XkWb_/hatch_regex_commit/__about__.py +1 -0
  156. odoo_runbot-1.0.0/.uv-cache/archive-v0/pDosHQLSKgIxX7W2XkWb_/hatch_regex_commit/__init__.py +0 -0
  157. odoo_runbot-1.0.0/.uv-cache/archive-v0/pDosHQLSKgIxX7W2XkWb_/hatch_regex_commit/exceptions.py +12 -0
  158. odoo_runbot-1.0.0/.uv-cache/archive-v0/pDosHQLSKgIxX7W2XkWb_/hatch_regex_commit/git.py +123 -0
  159. odoo_runbot-1.0.0/.uv-cache/archive-v0/pDosHQLSKgIxX7W2XkWb_/hatch_regex_commit/hooks.py +8 -0
  160. odoo_runbot-1.0.0/.uv-cache/archive-v0/pDosHQLSKgIxX7W2XkWb_/hatch_regex_commit/version_source.py +86 -0
  161. odoo_runbot-1.0.0/.uv-cache/archive-v0/pDosHQLSKgIxX7W2XkWb_/hatch_regex_commit-0.0.3.dist-info/METADATA +117 -0
  162. odoo_runbot-1.0.0/.uv-cache/archive-v0/pDosHQLSKgIxX7W2XkWb_/hatch_regex_commit-0.0.3.dist-info/RECORD +11 -0
  163. odoo_runbot-1.0.0/.uv-cache/archive-v0/pDosHQLSKgIxX7W2XkWb_/hatch_regex_commit-0.0.3.dist-info/WHEEL +4 -0
  164. odoo_runbot-1.0.0/.uv-cache/archive-v0/pDosHQLSKgIxX7W2XkWb_/hatch_regex_commit-0.0.3.dist-info/entry_points.txt +2 -0
  165. odoo_runbot-1.0.0/.uv-cache/archive-v0/pDosHQLSKgIxX7W2XkWb_/hatch_regex_commit-0.0.3.dist-info/licenses/LICENSE +21 -0
  166. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/.gitignore +1 -0
  167. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/CACHEDIR.TAG +1 -0
  168. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/bin/activate +116 -0
  169. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/bin/activate.bat +59 -0
  170. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/bin/activate.csh +76 -0
  171. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/bin/activate.fish +124 -0
  172. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/bin/activate.nu +117 -0
  173. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/bin/activate.ps1 +82 -0
  174. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/bin/activate_this.py +59 -0
  175. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/bin/deactivate.bat +39 -0
  176. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/bin/hatchling +10 -0
  177. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/bin/pydoc.bat +22 -0
  178. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/bin/python +1 -0
  179. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/bin/python3 +1 -0
  180. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/bin/python3.8 +1 -0
  181. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/get_requires_for_build_sdist.txt +1 -0
  182. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/_virtualenv.pth +1 -0
  183. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/_virtualenv.py +101 -0
  184. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatch_regex_commit/__about__.py +1 -0
  185. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatch_regex_commit/__init__.py +0 -0
  186. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatch_regex_commit/exceptions.py +12 -0
  187. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatch_regex_commit/git.py +123 -0
  188. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatch_regex_commit/hooks.py +8 -0
  189. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatch_regex_commit/version_source.py +86 -0
  190. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatch_regex_commit-0.0.3.dist-info/INSTALLER +1 -0
  191. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatch_regex_commit-0.0.3.dist-info/METADATA +117 -0
  192. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatch_regex_commit-0.0.3.dist-info/RECORD +13 -0
  193. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatch_regex_commit-0.0.3.dist-info/REQUESTED +0 -0
  194. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatch_regex_commit-0.0.3.dist-info/WHEEL +4 -0
  195. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatch_regex_commit-0.0.3.dist-info/entry_points.txt +2 -0
  196. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatch_regex_commit-0.0.3.dist-info/licenses/LICENSE +21 -0
  197. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/__about__.py +1 -0
  198. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/__init__.py +0 -0
  199. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/__main__.py +6 -0
  200. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/bridge/__init__.py +0 -0
  201. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/bridge/app.py +111 -0
  202. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/build.py +144 -0
  203. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/builders/__init__.py +0 -0
  204. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/builders/app.py +20 -0
  205. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/builders/binary.py +199 -0
  206. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/builders/config.py +862 -0
  207. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/builders/constants.py +43 -0
  208. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/builders/custom.py +54 -0
  209. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/builders/hooks/__init__.py +0 -0
  210. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/builders/hooks/custom.py +41 -0
  211. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/builders/hooks/plugin/__init__.py +0 -0
  212. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/builders/hooks/plugin/hooks.py +15 -0
  213. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/builders/hooks/plugin/interface.py +148 -0
  214. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/builders/hooks/version.py +71 -0
  215. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/builders/macos.py +58 -0
  216. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/builders/plugin/__init__.py +0 -0
  217. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/builders/plugin/hooks.py +18 -0
  218. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/builders/plugin/interface.py +441 -0
  219. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/builders/sdist.py +356 -0
  220. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/builders/utils.py +127 -0
  221. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/builders/wheel.py +822 -0
  222. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/cli/__init__.py +28 -0
  223. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/cli/dep/__init__.py +37 -0
  224. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/cli/dep/core.py +132 -0
  225. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/cli/metadata/__init__.py +58 -0
  226. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/cli/version/__init__.py +51 -0
  227. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/dep/__init__.py +0 -0
  228. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/dep/core.py +1 -0
  229. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/licenses/__init__.py +0 -0
  230. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/licenses/supported.py +1 -0
  231. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/metadata/__init__.py +0 -0
  232. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/metadata/core.py +1621 -0
  233. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/metadata/custom.py +41 -0
  234. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/metadata/plugin/__init__.py +0 -0
  235. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/metadata/plugin/hooks.py +14 -0
  236. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/metadata/plugin/interface.py +66 -0
  237. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/metadata/spec.py +598 -0
  238. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/metadata/utils.py +66 -0
  239. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/ouroboros.py +52 -0
  240. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/plugin/__init__.py +3 -0
  241. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/plugin/exceptions.py +2 -0
  242. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/plugin/manager.py +111 -0
  243. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/plugin/specs.py +23 -0
  244. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/plugin/utils.py +48 -0
  245. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/py.typed +0 -0
  246. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/utils/__init__.py +0 -0
  247. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/utils/constants.py +6 -0
  248. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/utils/context.py +170 -0
  249. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/utils/fs.py +26 -0
  250. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/version/__init__.py +0 -0
  251. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/version/core.py +58 -0
  252. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/version/scheme/__init__.py +0 -0
  253. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/version/scheme/plugin/__init__.py +0 -0
  254. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/version/scheme/plugin/hooks.py +14 -0
  255. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/version/scheme/plugin/interface.py +85 -0
  256. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/version/scheme/standard.py +98 -0
  257. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/version/source/__init__.py +0 -0
  258. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/version/source/code.py +64 -0
  259. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/version/source/env.py +29 -0
  260. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/version/source/plugin/__init__.py +0 -0
  261. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/version/source/plugin/hooks.py +16 -0
  262. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/version/source/plugin/interface.py +69 -0
  263. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling/version/source/regex.py +29 -0
  264. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling-1.27.0.dist-info/INSTALLER +1 -0
  265. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling-1.27.0.dist-info/METADATA +80 -0
  266. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling-1.27.0.dist-info/RECORD +76 -0
  267. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling-1.27.0.dist-info/REQUESTED +0 -0
  268. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling-1.27.0.dist-info/WHEEL +4 -0
  269. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling-1.27.0.dist-info/entry_points.txt +2 -0
  270. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/hatchling-1.27.0.dist-info/licenses/LICENSE.txt +9 -0
  271. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/packaging/__init__.py +15 -0
  272. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/packaging/_elffile.py +110 -0
  273. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/packaging/_manylinux.py +263 -0
  274. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/packaging/_musllinux.py +85 -0
  275. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/packaging/_parser.py +354 -0
  276. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/packaging/_structures.py +61 -0
  277. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/packaging/_tokenizer.py +194 -0
  278. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/packaging/licenses/__init__.py +145 -0
  279. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/packaging/licenses/_spdx.py +759 -0
  280. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/packaging/markers.py +331 -0
  281. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/packaging/metadata.py +863 -0
  282. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/packaging/py.typed +0 -0
  283. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/packaging/requirements.py +91 -0
  284. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/packaging/specifiers.py +1020 -0
  285. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/packaging/tags.py +617 -0
  286. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/packaging/utils.py +163 -0
  287. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/packaging/version.py +582 -0
  288. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/packaging-24.2.dist-info/INSTALLER +1 -0
  289. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/packaging-24.2.dist-info/LICENSE +3 -0
  290. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/packaging-24.2.dist-info/LICENSE.APACHE +177 -0
  291. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/packaging-24.2.dist-info/LICENSE.BSD +23 -0
  292. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/packaging-24.2.dist-info/METADATA +102 -0
  293. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/packaging-24.2.dist-info/RECORD +25 -0
  294. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/packaging-24.2.dist-info/REQUESTED +0 -0
  295. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/packaging-24.2.dist-info/WHEEL +4 -0
  296. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pathspec/__init__.py +76 -0
  297. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pathspec/_meta.py +58 -0
  298. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pathspec/gitignore.py +157 -0
  299. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pathspec/pathspec.py +394 -0
  300. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pathspec/pattern.py +213 -0
  301. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pathspec/patterns/__init__.py +11 -0
  302. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pathspec/patterns/gitwildmatch.py +421 -0
  303. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pathspec/py.typed +1 -0
  304. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pathspec/util.py +792 -0
  305. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pathspec-0.12.1.dist-info/INSTALLER +1 -0
  306. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pathspec-0.12.1.dist-info/LICENSE +373 -0
  307. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pathspec-0.12.1.dist-info/METADATA +647 -0
  308. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pathspec-0.12.1.dist-info/RECORD +15 -0
  309. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pathspec-0.12.1.dist-info/REQUESTED +0 -0
  310. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pathspec-0.12.1.dist-info/WHEEL +4 -0
  311. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pluggy/__init__.py +37 -0
  312. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pluggy/_callers.py +182 -0
  313. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pluggy/_hooks.py +715 -0
  314. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pluggy/_manager.py +528 -0
  315. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pluggy/_result.py +104 -0
  316. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pluggy/_tracing.py +73 -0
  317. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pluggy/_version.py +16 -0
  318. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pluggy/_warnings.py +27 -0
  319. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pluggy/py.typed +0 -0
  320. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pluggy-1.5.0.dist-info/INSTALLER +1 -0
  321. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pluggy-1.5.0.dist-info/LICENSE +21 -0
  322. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pluggy-1.5.0.dist-info/METADATA +155 -0
  323. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pluggy-1.5.0.dist-info/RECORD +16 -0
  324. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pluggy-1.5.0.dist-info/REQUESTED +0 -0
  325. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pluggy-1.5.0.dist-info/WHEEL +5 -0
  326. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/pluggy-1.5.0.dist-info/top_level.txt +1 -0
  327. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/tomli/__init__.py +8 -0
  328. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/tomli/_parser.py +770 -0
  329. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/tomli/_re.py +112 -0
  330. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/tomli/_types.py +10 -0
  331. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/tomli/py.typed +1 -0
  332. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/tomli-2.2.1.dist-info/INSTALLER +1 -0
  333. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/tomli-2.2.1.dist-info/LICENSE +21 -0
  334. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/tomli-2.2.1.dist-info/METADATA +268 -0
  335. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/tomli-2.2.1.dist-info/RECORD +11 -0
  336. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/tomli-2.2.1.dist-info/REQUESTED +0 -0
  337. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/tomli-2.2.1.dist-info/WHEEL +4 -0
  338. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/trove_classifiers/__init__.py +890 -0
  339. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/trove_classifiers/__main__.py +4 -0
  340. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/trove_classifiers/py.typed +0 -0
  341. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/trove_classifiers-2025.2.18.16.dist-info/INSTALLER +1 -0
  342. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/trove_classifiers-2025.2.18.16.dist-info/LICENSE +201 -0
  343. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/trove_classifiers-2025.2.18.16.dist-info/METADATA +81 -0
  344. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/trove_classifiers-2025.2.18.16.dist-info/RECORD +10 -0
  345. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/trove_classifiers-2025.2.18.16.dist-info/REQUESTED +0 -0
  346. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/trove_classifiers-2025.2.18.16.dist-info/WHEEL +5 -0
  347. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/lib/python3.8/site-packages/trove_classifiers-2025.2.18.16.dist-info/top_level.txt +1 -0
  348. odoo_runbot-1.0.0/.uv-cache/builds-v0/.tmpXY8UW3/pyvenv.cfg +5 -0
  349. odoo_runbot-1.0.0/.uv-cache/interpreter-v4/x86_64/503c359a16c7b4b8.msgpack +1 -0
  350. odoo_runbot-1.0.0/.uv-cache/interpreter-v4/x86_64/6c2078bb75587c01.msgpack +1 -0
  351. odoo_runbot-1.0.0/.uv-cache/interpreter-v4/x86_64/9c6ee42ff7eff1fc.msgpack +1 -0
  352. odoo_runbot-1.0.0/.uv-cache/sdists-v7/.git +0 -0
  353. odoo_runbot-1.0.0/.uv-cache/sdists-v7/.gitignore +0 -0
  354. odoo_runbot-1.0.0/.uv-cache/simple-v15/pypi/hatch-regex-commit.rkyv +0 -0
  355. odoo_runbot-1.0.0/.uv-cache/simple-v15/pypi/hatchling.rkyv +0 -0
  356. odoo_runbot-1.0.0/.uv-cache/simple-v15/pypi/packaging.rkyv +0 -0
  357. odoo_runbot-1.0.0/.uv-cache/simple-v15/pypi/pathspec.rkyv +0 -0
  358. odoo_runbot-1.0.0/.uv-cache/simple-v15/pypi/pluggy.rkyv +0 -0
  359. odoo_runbot-1.0.0/.uv-cache/simple-v15/pypi/tomli.rkyv +0 -0
  360. odoo_runbot-1.0.0/.uv-cache/simple-v15/pypi/trove-classifiers.rkyv +0 -0
  361. odoo_runbot-1.0.0/.uv-cache/wheels-v3/pypi/hatch-regex-commit/hatch_regex_commit-0.0.3-py3-none-any.http +0 -0
  362. odoo_runbot-1.0.0/.uv-cache/wheels-v3/pypi/hatch-regex-commit/hatch_regex_commit-0.0.3-py3-none-any.msgpack +0 -0
  363. odoo_runbot-1.0.0/.uv-cache/wheels-v3/pypi/hatchling/hatchling-1.27.0-py3-none-any.http +0 -0
  364. odoo_runbot-1.0.0/.uv-cache/wheels-v3/pypi/hatchling/hatchling-1.27.0-py3-none-any.msgpack +0 -0
  365. odoo_runbot-1.0.0/.uv-cache/wheels-v3/pypi/packaging/packaging-24.2-py3-none-any.http +0 -0
  366. odoo_runbot-1.0.0/.uv-cache/wheels-v3/pypi/packaging/packaging-24.2-py3-none-any.msgpack +0 -0
  367. odoo_runbot-1.0.0/.uv-cache/wheels-v3/pypi/pathspec/pathspec-0.12.1-py3-none-any.http +0 -0
  368. odoo_runbot-1.0.0/.uv-cache/wheels-v3/pypi/pathspec/pathspec-0.12.1-py3-none-any.msgpack +0 -0
  369. odoo_runbot-1.0.0/.uv-cache/wheels-v3/pypi/pluggy/pluggy-1.5.0-py3-none-any.http +0 -0
  370. odoo_runbot-1.0.0/.uv-cache/wheels-v3/pypi/pluggy/pluggy-1.5.0-py3-none-any.msgpack +0 -0
  371. odoo_runbot-1.0.0/.uv-cache/wheels-v3/pypi/tomli/tomli-2.2.1-py3-none-any.http +0 -0
  372. odoo_runbot-1.0.0/.uv-cache/wheels-v3/pypi/tomli/tomli-2.2.1-py3-none-any.msgpack +0 -0
  373. odoo_runbot-1.0.0/.uv-cache/wheels-v3/pypi/trove-classifiers/trove_classifiers-2025.2.18.16-py3-none-any.http +0 -0
  374. odoo_runbot-1.0.0/.uv-cache/wheels-v3/pypi/trove-classifiers/trove_classifiers-2025.2.18.16-py3-none-any.msgpack +0 -0
  375. odoo_runbot-1.0.0/PKG-INFO +64 -0
  376. odoo_runbot-1.0.0/README.md +46 -0
  377. odoo_runbot-1.0.0/docker-compose.yml +62 -0
  378. odoo_runbot-1.0.0/docs/antora.yml +21 -0
  379. odoo_runbot-1.0.0/docs/mkdocs/index.md +9 -0
  380. odoo_runbot-1.0.0/docs/modules/ROOT/nav.adoc +10 -0
  381. odoo_runbot-1.0.0/docs/modules/ROOT/pages/config_global.adoc +56 -0
  382. odoo_runbot-1.0.0/docs/modules/ROOT/pages/config_global_warning_filter.adoc +81 -0
  383. odoo_runbot-1.0.0/docs/modules/ROOT/pages/config_step.adoc +53 -0
  384. odoo_runbot-1.0.0/docs/modules/ROOT/pages/config_step_log_filter.adoc +52 -0
  385. odoo_runbot-1.0.0/docs/modules/ROOT/pages/index.adoc +6 -0
  386. odoo_runbot-1.0.0/docs/modules/ROOT/pages/sample.adoc +62 -0
  387. odoo_runbot-1.0.0/docs/modules/ROOT/pages/usage_ci_components.adoc +189 -0
  388. odoo_runbot-1.0.0/docs/modules/ROOT/pages/usage_cli.adoc +14 -0
  389. odoo_runbot-1.0.0/docs/modules/ROOT/partials/pyproject.toml +8 -0
  390. odoo_runbot-1.0.0/docs/modules/ROOT/partials/sample_config/pyproject_classic.toml +4 -0
  391. odoo_runbot-1.0.0/docs/modules/ROOT/partials/sample_config/pyproject_complex.toml +49 -0
  392. odoo_runbot-1.0.0/docs/modules/ROOT/partials/sample_config/pyproject_minimal.toml +2 -0
  393. odoo_runbot-1.0.0/docs/modules/ROOT/partials/sample_config/pyproject_simple_with_warmup.exp.toml +11 -0
  394. odoo_runbot-1.0.0/docs/modules/ROOT/partials/sample_config/pyproject_simple_with_warmup.toml +4 -0
  395. odoo_runbot-1.0.0/docs/modules/ROOT/partials/workflow.puml +0 -0
  396. odoo_runbot-1.0.0/mkdocs.yml +22 -0
  397. odoo_runbot-1.0.0/pyproject.toml +97 -0
  398. odoo_runbot-1.0.0/runbot-entrypoint.sh +17 -0
  399. odoo_runbot-1.0.0/src/odoo_runbot/__about__.py +3 -0
  400. odoo_runbot-1.0.0/src/odoo_runbot/__init__.py +12 -0
  401. odoo_runbot-1.0.0/src/odoo_runbot/_odoo_internal.py +136 -0
  402. odoo_runbot-1.0.0/src/odoo_runbot/cli.py +234 -0
  403. odoo_runbot-1.0.0/src/odoo_runbot/runbot_env.py +365 -0
  404. odoo_runbot-1.0.0/src/odoo_runbot/runbot_init.py +145 -0
  405. odoo_runbot-1.0.0/src/odoo_runbot/runbot_init_branch_resolver.py +169 -0
  406. odoo_runbot-1.0.0/src/odoo_runbot/runbot_run.py +153 -0
  407. odoo_runbot-1.0.0/src/odoo_runbot/runbot_run_logging.py +159 -0
  408. odoo_runbot-1.0.0/src/odoo_runbot/runbot_run_test.py +112 -0
  409. odoo_runbot-1.0.0/templates/simple.yml +71 -0
  410. odoo_runbot-1.0.0/tests/__init__.py +0 -0
  411. odoo_runbot-1.0.0/tests/odoo_project/.gitignore +17 -0
  412. odoo_runbot-1.0.0/tests/odoo_project/pyproject.toml +58 -0
  413. odoo_runbot-1.0.0/tests/odoo_project/rm-result.sh +9 -0
  414. odoo_runbot-1.0.0/tests/odoo_project/runbot_tester/__init__.py +1 -0
  415. odoo_runbot-1.0.0/tests/odoo_project/runbot_tester/__manifest__.py +12 -0
  416. odoo_runbot-1.0.0/tests/odoo_project/runbot_tester/models/__init__.py +9 -0
  417. odoo_runbot-1.0.0/tests/odoo_project/runbot_tester/models/runbot_tester.py +19 -0
  418. odoo_runbot-1.0.0/tests/odoo_project/runbot_tester/tests/__init__.py +1 -0
  419. odoo_runbot-1.0.0/tests/odoo_project/runbot_tester/tests/test_runbot_step1.py +12 -0
  420. odoo_runbot-1.0.0/tests/odoo_project/runbot_tester/tests/test_runbot_step2.py +65 -0
  421. odoo_runbot-1.0.0/tests/odoo_project/runbot_tester/tests/test_runbot_step3.py +21 -0
  422. odoo_runbot-1.0.0/tests/odoo_project/runbot_tester/tests/test_runbot_step4.py +15 -0
  423. odoo_runbot-1.0.0/tests/test_load_config.py +146 -0
  424. odoo_runbot-1.0.0/tests/test_log_warnings_as_test.py +242 -0
@@ -0,0 +1,16 @@
1
+ # python generated files
2
+ __pycache__/
3
+ *.py[oc]
4
+ build/
5
+ dist/
6
+ site/
7
+ public/
8
+ wheels/
9
+ *.egg-info
10
+ docker_test/project_code
11
+
12
+ # venv
13
+ .venv/
14
+ report.xml
15
+ .coverage
16
+ .hatch-venv/
@@ -0,0 +1,195 @@
1
+ # yaml-language-server: $schema=https://gitlab.com/gitlab-org/gitlab/-/raw/master/app/assets/javascripts/editor/schema/ci.json
2
+ include:
3
+ - template: Jobs/Secret-Detection.gitlab-ci.yml
4
+ - component: $CI_SERVER_FQDN/gitlab-ci/project-quality/project-files@1.0.0
5
+ inputs:
6
+ file-path: "README.md"
7
+ name: "README"
8
+ - component: $CI_SERVER_FQDN/gitlab-ci/code-quality/ruff@1.0.0
9
+ - component: $CI_SERVER_FQDN/$CI_PROJECT_PATH/simple@$CI_COMMIT_SHA
10
+ inputs:
11
+ project-path: "tests/odoo_project"
12
+ odoo-version: "12.0"
13
+ - component: $CI_SERVER_FQDN/$CI_PROJECT_PATH/simple@$CI_COMMIT_SHA
14
+ inputs:
15
+ project-path: "tests/odoo_project"
16
+ odoo-version: "13.0"
17
+ - component: $CI_SERVER_FQDN/$CI_PROJECT_PATH/simple@$CI_COMMIT_SHA
18
+ inputs:
19
+ project-path: "tests/odoo_project"
20
+ odoo-version: "14.0"
21
+ - component: $CI_SERVER_FQDN/$CI_PROJECT_PATH/simple@$CI_COMMIT_SHA
22
+ inputs:
23
+ project-path: "tests/odoo_project"
24
+ odoo-version: "15.0"
25
+ - component: $CI_SERVER_FQDN/$CI_PROJECT_PATH/simple@$CI_COMMIT_SHA
26
+ inputs:
27
+ project-path: "tests/odoo_project"
28
+ odoo-version: "16.0"
29
+ - component: $CI_SERVER_FQDN/$CI_PROJECT_PATH/simple@$CI_COMMIT_SHA
30
+ inputs:
31
+ project-path: "tests/odoo_project"
32
+ odoo-version: "17.0"
33
+ - component: $CI_SERVER_FQDN/$CI_PROJECT_PATH/simple@$CI_COMMIT_SHA
34
+ inputs:
35
+ project-path: "tests/odoo_project"
36
+ odoo-version: "18.0"
37
+
38
+ .tmpl:runbot:self:ci:
39
+ variables:
40
+ ADDONS_GIT_PRIVATE_PROJECT: odoo-addons/blank-private
41
+ ADDONS_GIT_IMG_TESTER: dockers/odoo-img-tester
42
+ before_script:
43
+ - pip install .
44
+ - odoo-runbot --verbose --workdir="tests/odoo_project" diag
45
+
46
+ runbot:12.0:
47
+ extends: ".tmpl:runbot:self:ci"
48
+ runbot:13.0:
49
+ extends: ".tmpl:runbot:self:ci"
50
+ runbot:14.0:
51
+ extends: ".tmpl:runbot:self:ci"
52
+ runbot:15.0:
53
+ extends: ".tmpl:runbot:self:ci"
54
+ runbot:16.0:
55
+ extends: ".tmpl:runbot:self:ci"
56
+ runbot:17.0:
57
+ extends: ".tmpl:runbot:self:ci"
58
+ runbot:18.0:
59
+ extends: ".tmpl:runbot:self:ci"
60
+
61
+ secret_detection:
62
+ stage: .pre
63
+ tags: ["lint"]
64
+ rules:
65
+ - if: $CI_COMMIT_BRANCH
66
+ - if: $CI_COMMIT_TAG # overriding rules to ensure it runs on tags before the release.
67
+
68
+ check:mkdocs:
69
+ stage: test
70
+ tags: ["lint"]
71
+ image: python:3.12
72
+ before_script:
73
+ - pip install hatch
74
+ - hatch env create doc
75
+ script:
76
+ - hatch -e doc run mkdocs build --strict --verbose --site-dir test
77
+
78
+ build:python:uv:
79
+ stage: "build"
80
+ tags:
81
+ - "lint"
82
+ image: ghcr.io/astral-sh/uv:$UV_VERSION-python3.12-bookworm-slim
83
+ variables:
84
+ UV_CACHE_DIR: .uv-cache
85
+ UV_SYSTEM_PYTHON: 1
86
+ UV_VERSION: 0.5
87
+ # GitLab CI creates a separate mountpoint for the build directory,
88
+ # so we need to copy instead of using hard links.
89
+ UV_LINK_MODE: copy
90
+ cache:
91
+ - key:
92
+ files:
93
+ - uv.lock
94
+ paths:
95
+ - $UV_CACHE_DIR
96
+ script:
97
+ - uv build
98
+ # Your `uv` commands
99
+ - uv cache prune --ci
100
+ artifacts:
101
+ paths:
102
+ - "dist/"
103
+
104
+ pytest:38:
105
+ stage: "test"
106
+ tags:
107
+ - "lint"
108
+ image: python:3.8
109
+ before_script:
110
+ - pip install hatch
111
+ - hatch env create test
112
+ script:
113
+ - hatch -e test test --cover --junit-xml=report.xml # Generate test report in junit format
114
+ - hatch -e test run coverage report
115
+ - hatch -e test run coverage xml # for generating coverage.xml report
116
+ artifacts:
117
+ when: always
118
+ reports:
119
+ coverage_report:
120
+ coverage_format: cobertura
121
+ path: ./coverage.xml
122
+ junit: report.xml
123
+
124
+ publish:mkdocs:
125
+ stage: deploy
126
+ tags: ["lint"]
127
+ image: python:3.12
128
+ pages: true # specifies that this is a Pages job
129
+ before_script:
130
+ - pip install hatch
131
+ - hatch env create doc
132
+ script:
133
+ - hatch -e doc run mkdocs build --site-dir=public
134
+ artifacts:
135
+ paths:
136
+ - public
137
+ rules:
138
+ - if: $CI_COMMIT_TAG =~ /\d+/
139
+ # If we are tagging a release with a specific convention ("v" + number) and all
140
+ # previous checks succeeded, we proceed with creating a release automatically.
141
+ publish:release:
142
+ tags: ["lint"]
143
+ stage: deploy
144
+ image: registry.gitlab.com/gitlab-org/release-cli:latest
145
+ script: echo "Creating release $CI_COMMIT_TAG"
146
+ rules:
147
+ - if: $CI_COMMIT_TAG =~ /\d+/
148
+ release:
149
+ tag_name: $CI_COMMIT_TAG
150
+ description: "Release $CI_COMMIT_TAG of components repository $CI_PROJECT_PATH"
151
+
152
+ ".tmpl:publish:python":
153
+ stage: deploy
154
+ tags: [ "lint" ]
155
+ image: python:latest
156
+ dependencies: [ "build:python:uv" ]
157
+ variables:
158
+ PACKAGE_REGISTRY_USERNAME: "__token__"
159
+ before_script:
160
+ - pip install twine
161
+ script:
162
+ - python -m twine upload --verbose --repository $PACKAGE_REGISTRY -u $PACKAGE_REGISTRY_USERNAME -p $PACKAGE_REGISTRY_TOKEN dist/*
163
+
164
+ publish:pypi:test:
165
+ extends: ".tmpl:publish:python"
166
+ dependencies:
167
+ - "build:python:uv"
168
+ variables:
169
+ PACKAGE_REGISTRY: "testpypi"
170
+ PACKAGE_REGISTRY_TOKEN: $TESTPYPI_REGISTRY_TOKEN
171
+ rules:
172
+ - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH && $CI_COMMIT_TAG == null
173
+
174
+ publish:pypi:
175
+ extends: ".tmpl:publish:python"
176
+ dependencies: ["build:python:uv"]
177
+ variables:
178
+ PACKAGE_REGISTRY: "pypi"
179
+ PACKAGE_REGISTRY_TOKEN: $PYPI_REGISTRY_TOKEN
180
+ rules:
181
+ - if: $CI_COMMIT_TAG && $CI_COMMIT_REF_PROTECTED && $PYPI_REGISTRY_TOKEN
182
+ exists:
183
+ - pyproject.toml
184
+ when: on_success
185
+ - when: never
186
+
187
+ publish:pypi:gitlab:
188
+ extends: "publish:pypi"
189
+ script:
190
+ - python -m twine upload --verbose --repository-url ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi -u gitlab-ci-token -p $CI_JOB_TOKEN dist/*
191
+ rules:
192
+ - if: $CI_COMMIT_TAG && $CI_COMMIT_REF_PROTECTED
193
+ when: on_success
194
+ - when: never
195
+
@@ -0,0 +1,8 @@
1
+ # Default ignored files
2
+ /shelf/
3
+ /workspace.xml
4
+ # Editor-based HTTP Client requests
5
+ /httpRequests/
6
+ # Datasource local storage ignored files
7
+ /dataSources/
8
+ /dataSources.local.xml
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="GitToolBoxBlameSettings">
4
+ <option name="version" value="2" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,20 @@
1
+ <component name="InspectionProjectProfileManager">
2
+ <profile version="1.0">
3
+ <option name="myName" value="Project Default" />
4
+ <inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
5
+ <inspection_tool class="PyCompatibilityInspection" enabled="true" level="ERROR" enabled_by_default="true" editorAttributes="ERRORS_ATTRIBUTES">
6
+ <option name="ourVersions">
7
+ <value>
8
+ <list size="2">
9
+ <item index="0" class="java.lang.String" itemvalue="3.13" />
10
+ <item index="1" class="java.lang.String" itemvalue="3.8" />
11
+ </list>
12
+ </value>
13
+ </option>
14
+ </inspection_tool>
15
+ <inspection_tool class="PyMissingOrEmptyDocstringInspection" enabled="true" level="ERROR" enabled_by_default="false" editorAttributes="ERRORS_ATTRIBUTES">
16
+ <scope name="Project Files" level="WARNING" enabled="true" editorAttributes="WARNING_ATTRIBUTES" />
17
+ </inspection_tool>
18
+ <inspection_tool class="PyMissingTypeHintsInspection" enabled="true" level="ERROR" enabled_by_default="true" editorAttributes="ERRORS_ATTRIBUTES" />
19
+ </profile>
20
+ </component>
@@ -0,0 +1,26 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="JsonSchemaMappingsProjectConfiguration">
4
+ <state>
5
+ <map>
6
+ <entry key="gitlab-ci">
7
+ <value>
8
+ <SchemaInfo>
9
+ <option name="generatedName" value="New Schema" />
10
+ <option name="name" value="gitlab-ci" />
11
+ <option name="relativePathToSchema" value="https://gitlab.com/gitlab-org/gitlab/-/raw/master/app/assets/javascripts/editor/schema/ci.json" />
12
+ <option name="schemaVersion" value="JSON Schema 7" />
13
+ <option name="patterns">
14
+ <list>
15
+ <Item>
16
+ <option name="path" value=".gitlab-ci.yml" />
17
+ </Item>
18
+ </list>
19
+ </option>
20
+ </SchemaInfo>
21
+ </value>
22
+ </entry>
23
+ </map>
24
+ </state>
25
+ </component>
26
+ </project>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="Black">
4
+ <option name="sdkName" value="Python 3.11 (atlas)" />
5
+ </component>
6
+ <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.8 virtualenv at ~/workspace/gitlab-ci/mangono-odoo-tester/.venv" project-jdk-type="Python SDK" />
7
+ </project>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/mangono-odoo-tester.iml" filepath="$PROJECT_DIR$/.idea/mangono-odoo-tester.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,19 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="PYTHON_MODULE" version="4">
3
+ <component name="NewModuleRootManager">
4
+ <content url="file://$MODULE_DIR$">
5
+ <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
6
+ <sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" />
7
+ <excludeFolder url="file://$MODULE_DIR$/docker_test/project_code" />
8
+ </content>
9
+ <orderEntry type="jdk" jdkName="Python 3.8 virtualenv at ~/workspace/gitlab-ci/odoo-test/.hatch-venv/odoo-runbot" jdkType="Python SDK" />
10
+ <orderEntry type="sourceFolder" forTests="false" />
11
+ </component>
12
+ <component name="PackageRequirementsSettings">
13
+ <option name="requirementsPath" value="" />
14
+ </component>
15
+ <component name="PyDocumentationSettings">
16
+ <option name="format" value="GOOGLE" />
17
+ <option name="myDocStringFormat" value="Google" />
18
+ </component>
19
+ </module>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="RuffConfigService">
4
+ <option name="globalRuffExecutablePath" value="$USER_HOME$/.local/bin/ruff" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,17 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="IssueNavigationConfiguration">
4
+ <option name="links">
5
+ <list>
6
+ <IssueNavigationLink>
7
+ <option name="issueRegexp" value="\bodoo/(\w+)#(\d+)" />
8
+ <option name="linkRegexp" value="https://github.com/odoo/$1/issues/$2" />
9
+ </IssueNavigationLink>
10
+ </list>
11
+ </option>
12
+ </component>
13
+ <component name="VcsDirectoryMappings">
14
+ <mapping directory="" vcs="Git" />
15
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
16
+ </component>
17
+ </project>
@@ -0,0 +1,10 @@
1
+ repos:
2
+ - repo: https://github.com/astral-sh/ruff-pre-commit
3
+ # Ruff version.
4
+ rev: v0.9.6
5
+ hooks:
6
+ # Run the linter.
7
+ - id: ruff
8
+ args: [ --fix ]
9
+ # Run the formatter.
10
+ - id: ruff-format
@@ -0,0 +1 @@
1
+ 3.8.19
@@ -0,0 +1 @@
1
+ *
@@ -0,0 +1 @@
1
+ Signature: 8a477f597d28d172789f06886806bc55
@@ -0,0 +1,15 @@
1
+ # This file is dual licensed under the terms of the Apache License, Version
2
+ # 2.0, and the BSD License. See the LICENSE file in the root of this repository
3
+ # for complete details.
4
+
5
+ __title__ = "packaging"
6
+ __summary__ = "Core utilities for Python packages"
7
+ __uri__ = "https://github.com/pypa/packaging"
8
+
9
+ __version__ = "24.2"
10
+
11
+ __author__ = "Donald Stufft and individual contributors"
12
+ __email__ = "donald@stufft.io"
13
+
14
+ __license__ = "BSD-2-Clause or Apache-2.0"
15
+ __copyright__ = f"2014 {__author__}"
@@ -0,0 +1,110 @@
1
+ """
2
+ ELF file parser.
3
+
4
+ This provides a class ``ELFFile`` that parses an ELF executable in a similar
5
+ interface to ``ZipFile``. Only the read interface is implemented.
6
+
7
+ Based on: https://gist.github.com/lyssdod/f51579ae8d93c8657a5564aefc2ffbca
8
+ ELF header: https://refspecs.linuxfoundation.org/elf/gabi4+/ch4.eheader.html
9
+ """
10
+
11
+ from __future__ import annotations
12
+
13
+ import enum
14
+ import os
15
+ import struct
16
+ from typing import IO
17
+
18
+
19
+ class ELFInvalid(ValueError):
20
+ pass
21
+
22
+
23
+ class EIClass(enum.IntEnum):
24
+ C32 = 1
25
+ C64 = 2
26
+
27
+
28
+ class EIData(enum.IntEnum):
29
+ Lsb = 1
30
+ Msb = 2
31
+
32
+
33
+ class EMachine(enum.IntEnum):
34
+ I386 = 3
35
+ S390 = 22
36
+ Arm = 40
37
+ X8664 = 62
38
+ AArc64 = 183
39
+
40
+
41
+ class ELFFile:
42
+ """
43
+ Representation of an ELF executable.
44
+ """
45
+
46
+ def __init__(self, f: IO[bytes]) -> None:
47
+ self._f = f
48
+
49
+ try:
50
+ ident = self._read("16B")
51
+ except struct.error as e:
52
+ raise ELFInvalid("unable to parse identification") from e
53
+ magic = bytes(ident[:4])
54
+ if magic != b"\x7fELF":
55
+ raise ELFInvalid(f"invalid magic: {magic!r}")
56
+
57
+ self.capacity = ident[4] # Format for program header (bitness).
58
+ self.encoding = ident[5] # Data structure encoding (endianness).
59
+
60
+ try:
61
+ # e_fmt: Format for program header.
62
+ # p_fmt: Format for section header.
63
+ # p_idx: Indexes to find p_type, p_offset, and p_filesz.
64
+ e_fmt, self._p_fmt, self._p_idx = {
65
+ (1, 1): ("<HHIIIIIHHH", "<IIIIIIII", (0, 1, 4)), # 32-bit LSB.
66
+ (1, 2): (">HHIIIIIHHH", ">IIIIIIII", (0, 1, 4)), # 32-bit MSB.
67
+ (2, 1): ("<HHIQQQIHHH", "<IIQQQQQQ", (0, 2, 5)), # 64-bit LSB.
68
+ (2, 2): (">HHIQQQIHHH", ">IIQQQQQQ", (0, 2, 5)), # 64-bit MSB.
69
+ }[(self.capacity, self.encoding)]
70
+ except KeyError as e:
71
+ raise ELFInvalid(
72
+ f"unrecognized capacity ({self.capacity}) or "
73
+ f"encoding ({self.encoding})"
74
+ ) from e
75
+
76
+ try:
77
+ (
78
+ _,
79
+ self.machine, # Architecture type.
80
+ _,
81
+ _,
82
+ self._e_phoff, # Offset of program header.
83
+ _,
84
+ self.flags, # Processor-specific flags.
85
+ _,
86
+ self._e_phentsize, # Size of section.
87
+ self._e_phnum, # Number of sections.
88
+ ) = self._read(e_fmt)
89
+ except struct.error as e:
90
+ raise ELFInvalid("unable to parse machine and section information") from e
91
+
92
+ def _read(self, fmt: str) -> tuple[int, ...]:
93
+ return struct.unpack(fmt, self._f.read(struct.calcsize(fmt)))
94
+
95
+ @property
96
+ def interpreter(self) -> str | None:
97
+ """
98
+ The path recorded in the ``PT_INTERP`` section header.
99
+ """
100
+ for index in range(self._e_phnum):
101
+ self._f.seek(self._e_phoff + self._e_phentsize * index)
102
+ try:
103
+ data = self._read(self._p_fmt)
104
+ except struct.error:
105
+ continue
106
+ if data[self._p_idx[0]] != 3: # Not PT_INTERP.
107
+ continue
108
+ self._f.seek(data[self._p_idx[1]])
109
+ return os.fsdecode(self._f.read(data[self._p_idx[2]])).strip("\0")
110
+ return None