redeploy 0.2.4__tar.gz → 0.2.6__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 (102) hide show
  1. {redeploy-0.2.4 → redeploy-0.2.6}/PKG-INFO +6 -6
  2. {redeploy-0.2.4 → redeploy-0.2.6}/README.md +5 -5
  3. {redeploy-0.2.4 → redeploy-0.2.6}/pyproject.toml +1 -1
  4. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/__init__.py +1 -1
  5. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/cli.py +629 -107
  6. redeploy-0.2.6/redeploy/dsl_python/__init__.py +77 -0
  7. redeploy-0.2.6/redeploy/dsl_python/context.py +39 -0
  8. redeploy-0.2.6/redeploy/dsl_python/decorators.py +137 -0
  9. redeploy-0.2.6/redeploy/dsl_python/docker_steps.py +211 -0
  10. redeploy-0.2.6/redeploy/dsl_python/exceptions.py +44 -0
  11. redeploy-0.2.6/redeploy/dsl_python/runner.py +205 -0
  12. redeploy-0.2.6/redeploy/dsl_python/steps.py +294 -0
  13. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/test_examples.py +23 -22
  14. redeploy-0.2.6/redeploy/tests/test_version_cli.py +665 -0
  15. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy.egg-info/PKG-INFO +6 -6
  16. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy.egg-info/SOURCES.txt +7 -0
  17. redeploy-0.2.4/redeploy/tests/test_version_cli.py +0 -172
  18. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/apply/__init__.py +0 -0
  19. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/apply/executor.py +0 -0
  20. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/data_sync.py +0 -0
  21. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/detect/__init__.py +0 -0
  22. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/detect/detector.py +0 -0
  23. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/detect/probes.py +0 -0
  24. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/detect/remote.py +0 -0
  25. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/detect/templates.py +0 -0
  26. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/detect/workflow.py +0 -0
  27. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/discovery.py +0 -0
  28. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/dsl/__init__.py +0 -0
  29. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/dsl/loader.py +0 -0
  30. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/dsl/parser.py +0 -0
  31. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/fleet.py +0 -0
  32. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/iac/__init__.py +0 -0
  33. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/iac/base.py +0 -0
  34. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/iac/docker_compose.py +0 -0
  35. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/iac/parsers/__init__.py +0 -0
  36. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/iac/parsers/compose.py +0 -0
  37. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/iac/registry.py +0 -0
  38. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/models.py +0 -0
  39. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/observe.py +0 -0
  40. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/parse.py +0 -0
  41. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/patterns.py +0 -0
  42. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/plan/__init__.py +0 -0
  43. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/plan/planner.py +0 -0
  44. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/plugins/__init__.py +0 -0
  45. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/plugins/builtin/__init__.py +0 -0
  46. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/plugins/builtin/browser_reload.py +0 -0
  47. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/plugins/builtin/notify.py +0 -0
  48. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/plugins/builtin/systemd_reload.py +0 -0
  49. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/ssh.py +0 -0
  50. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/steps.py +0 -0
  51. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/__init__.py +0 -0
  52. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/test_cli.py +0 -0
  53. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/test_data_sync.py +0 -0
  54. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/test_discovery.py +0 -0
  55. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/test_dsl.py +0 -0
  56. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/test_executor.py +0 -0
  57. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/test_fleet.py +0 -0
  58. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/test_git_integration.py +0 -0
  59. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/test_iac.py +0 -0
  60. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/test_manifest.py +0 -0
  61. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/test_models.py +0 -0
  62. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/test_observe.py +0 -0
  63. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/test_parse.py +0 -0
  64. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/test_patterns.py +0 -0
  65. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/test_planner_edge.py +0 -0
  66. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/test_plugins.py +0 -0
  67. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/test_probes.py +0 -0
  68. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/test_public_api.py +0 -0
  69. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/test_ssh.py +0 -0
  70. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/test_templates.py +0 -0
  71. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/test_verify.py +0 -0
  72. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/test_version.py +0 -0
  73. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/test_version_changelog.py +0 -0
  74. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/test_version_manifest.py +0 -0
  75. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/test_version_sources.py +0 -0
  76. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/tests/test_workflow.py +0 -0
  77. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/verify.py +0 -0
  78. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/version/__init__.py +0 -0
  79. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/version/bump.py +0 -0
  80. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/version/changelog.py +0 -0
  81. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/version/commits.py +0 -0
  82. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/version/diff.py +0 -0
  83. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/version/git_integration.py +0 -0
  84. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/version/git_transaction.py +0 -0
  85. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/version/manifest.py +0 -0
  86. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/version/sources/__init__.py +0 -0
  87. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/version/sources/base.py +0 -0
  88. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/version/sources/json_.py +0 -0
  89. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/version/sources/plain.py +0 -0
  90. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/version/sources/regex.py +0 -0
  91. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/version/sources/toml_.py +0 -0
  92. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/version/sources/yaml_.py +0 -0
  93. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/version/transaction.py +0 -0
  94. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy/version.py +0 -0
  95. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy.egg-info/dependency_links.txt +0 -0
  96. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy.egg-info/entry_points.txt +0 -0
  97. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy.egg-info/requires.txt +0 -0
  98. {redeploy-0.2.4 → redeploy-0.2.6}/redeploy.egg-info/top_level.txt +0 -0
  99. {redeploy-0.2.4 → redeploy-0.2.6}/setup.cfg +0 -0
  100. {redeploy-0.2.4 → redeploy-0.2.6}/tests/test_iac.py +0 -0
  101. {redeploy-0.2.4 → redeploy-0.2.6}/tests/test_parse.py +0 -0
  102. {redeploy-0.2.4 → redeploy-0.2.6}/tests/test_redeploy.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: redeploy
3
- Version: 0.2.4
3
+ Version: 0.2.6
4
4
  Summary: Infrastructure migration toolkit: detect → plan → apply
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -26,17 +26,17 @@ Requires-Dist: pfix>=0.1.60; extra == "dev"
26
26
 
27
27
  ## AI Cost Tracking
28
28
 
29
- ![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-0.2.4-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
30
- ![AI Cost](https://img.shields.io/badge/AI%20Cost-$3.30-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-5.3h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fqwen%2Fqwen3--coder--next-lightgrey)
29
+ ![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-0.2.6-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
30
+ ![AI Cost](https://img.shields.io/badge/AI%20Cost-$3.75-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-7.4h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fqwen%2Fqwen3--coder--next-lightgrey)
31
31
 
32
- - 🤖 **LLM usage:** $3.3000 (22 commits)
33
- - 👤 **Human dev:** ~$533 (5.3h @ $100/h, 30min dedup)
32
+ - 🤖 **LLM usage:** $3.7500 (25 commits)
33
+ - 👤 **Human dev:** ~$738 (7.4h @ $100/h, 30min dedup)
34
34
 
35
35
  Generated on 2026-04-20 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)
36
36
 
37
37
  ---
38
38
 
39
- ![PyPI](https://img.shields.io/badge/pypi-redeploy-blue) ![Version](https://img.shields.io/badge/version-0.2.4-blue) ![Python](https://img.shields.io/badge/python-3.10+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
39
+ ![PyPI](https://img.shields.io/badge/pypi-redeploy-blue) ![Version](https://img.shields.io/badge/version-0.2.6-blue) ![Python](https://img.shields.io/badge/python-3.10+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
40
40
 
41
41
  Infrastructure migration and device deploy toolkit — VPS, Raspberry Pi kiosk, Podman Quadlet, k3s.
42
42
 
@@ -3,17 +3,17 @@
3
3
 
4
4
  ## AI Cost Tracking
5
5
 
6
- ![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-0.2.4-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
7
- ![AI Cost](https://img.shields.io/badge/AI%20Cost-$3.30-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-5.3h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fqwen%2Fqwen3--coder--next-lightgrey)
6
+ ![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-0.2.6-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
7
+ ![AI Cost](https://img.shields.io/badge/AI%20Cost-$3.75-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-7.4h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fqwen%2Fqwen3--coder--next-lightgrey)
8
8
 
9
- - 🤖 **LLM usage:** $3.3000 (22 commits)
10
- - 👤 **Human dev:** ~$533 (5.3h @ $100/h, 30min dedup)
9
+ - 🤖 **LLM usage:** $3.7500 (25 commits)
10
+ - 👤 **Human dev:** ~$738 (7.4h @ $100/h, 30min dedup)
11
11
 
12
12
  Generated on 2026-04-20 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)
13
13
 
14
14
  ---
15
15
 
16
- ![PyPI](https://img.shields.io/badge/pypi-redeploy-blue) ![Version](https://img.shields.io/badge/version-0.2.4-blue) ![Python](https://img.shields.io/badge/python-3.10+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
16
+ ![PyPI](https://img.shields.io/badge/pypi-redeploy-blue) ![Version](https://img.shields.io/badge/version-0.2.6-blue) ![Python](https://img.shields.io/badge/python-3.10+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
17
17
 
18
18
  Infrastructure migration and device deploy toolkit — VPS, Raspberry Pi kiosk, Podman Quadlet, k3s.
19
19
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "redeploy"
7
- version = "0.2.4"
7
+ version = "0.2.6"
8
8
  description = "Infrastructure migration toolkit: detect → plan → apply"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -7,7 +7,7 @@ Public API (stable from 0.2.0, semver guaranteed)::
7
7
 
8
8
  Everything not listed in ``__all__`` is internal and may change without notice.
9
9
  """
10
- __version__ = "0.2.4"
10
+ __version__ = "0.2.6"
11
11
 
12
12
  # ── Core models ───────────────────────────────────────────────────────────────
13
13
  from .models import ( # noqa: F401