mcp-souschef 2.8.0__py3-none-any.whl → 3.2.0__py3-none-any.whl

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 (36) hide show
  1. {mcp_souschef-2.8.0.dist-info → mcp_souschef-3.2.0.dist-info}/METADATA +159 -384
  2. mcp_souschef-3.2.0.dist-info/RECORD +47 -0
  3. {mcp_souschef-2.8.0.dist-info → mcp_souschef-3.2.0.dist-info}/WHEEL +1 -1
  4. souschef/__init__.py +31 -7
  5. souschef/assessment.py +1451 -105
  6. souschef/ci/common.py +126 -0
  7. souschef/ci/github_actions.py +3 -92
  8. souschef/ci/gitlab_ci.py +2 -52
  9. souschef/ci/jenkins_pipeline.py +2 -59
  10. souschef/cli.py +149 -16
  11. souschef/converters/playbook.py +378 -138
  12. souschef/converters/resource.py +12 -11
  13. souschef/converters/template.py +177 -0
  14. souschef/core/__init__.py +6 -1
  15. souschef/core/metrics.py +313 -0
  16. souschef/core/path_utils.py +233 -19
  17. souschef/core/validation.py +53 -0
  18. souschef/deployment.py +71 -12
  19. souschef/generators/__init__.py +13 -0
  20. souschef/generators/repo.py +695 -0
  21. souschef/parsers/attributes.py +1 -1
  22. souschef/parsers/habitat.py +1 -1
  23. souschef/parsers/inspec.py +25 -2
  24. souschef/parsers/metadata.py +5 -3
  25. souschef/parsers/recipe.py +1 -1
  26. souschef/parsers/resource.py +1 -1
  27. souschef/parsers/template.py +1 -1
  28. souschef/server.py +1039 -121
  29. souschef/ui/app.py +486 -374
  30. souschef/ui/pages/ai_settings.py +74 -8
  31. souschef/ui/pages/cookbook_analysis.py +3216 -373
  32. souschef/ui/pages/validation_reports.py +274 -0
  33. mcp_souschef-2.8.0.dist-info/RECORD +0 -42
  34. souschef/converters/cookbook_specific.py.backup +0 -109
  35. {mcp_souschef-2.8.0.dist-info → mcp_souschef-3.2.0.dist-info}/entry_points.txt +0 -0
  36. {mcp_souschef-2.8.0.dist-info → mcp_souschef-3.2.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,47 @@
1
+ souschef/__init__.py,sha256=EqHUtFUSPV2fOQO3lhmyhMPfX7cUso88I6rEjvG8PRA,1434
2
+ souschef/assessment.py,sha256=zsgdnMvaHDN-3FSJ3W8q7a1lsDFS0qqklUg4G0n5IOs,98094
3
+ souschef/ci/__init__.py,sha256=GHaqDk4auB2kI7_fQtF2FRg5nP-iX6wJchj_uTlXcYg,411
4
+ souschef/ci/common.py,sha256=vHX1wtDNaTPiPfwW9If3aBm1hRmnTto2r3MkZGwYPTM,4757
5
+ souschef/ci/github_actions.py,sha256=EVnnOPTLCeUmTfR-acpLp-c_dxapMfrrDWaK4SSBkdM,7818
6
+ souschef/ci/gitlab_ci.py,sha256=4FcK8edci3ixuiUtYb6EFaAfsqjz0OBmW-lyPLH3YzY,6708
7
+ souschef/ci/jenkins_pipeline.py,sha256=XEuZrVKVmOlQOKucgGcd3vhAFh5qT05ILNnjKjkqTPU,7362
8
+ souschef/cli.py,sha256=8kxVkvg9eFOWIII29p9sQm9u2Z6kfhmdJThBlpxTdrA,38159
9
+ souschef/converters/__init__.py,sha256=kkPm758XiFDdUYvdVPAVjssFvf15LasJcob1EY1EMIs,681
10
+ souschef/converters/cookbook_specific.py,sha256=ZvE9-bZtyXuf2E3HW4E9_GWzAqtm7e4YHj9qm1Xu_XI,3767
11
+ souschef/converters/habitat.py,sha256=4eVGAcX0576zLXW9yqYvuaRxOK2g6BOIJo_ws-PonHU,22516
12
+ souschef/converters/playbook.py,sha256=dyeAzcCyWcBUc6o9IcBTB4N4XVIX4cImNFsNe2TXTSU,94395
13
+ souschef/converters/resource.py,sha256=NYMcp1-obg_ad_XPuYDuUH_0j65agRbAeWzXPfbSi5c,13570
14
+ souschef/converters/template.py,sha256=swX7LpWrKZgFtg6MaR7rltShBkPDbQAb65d1NF_nILo,5447
15
+ souschef/core/__init__.py,sha256=PXiZSEfXw77te3SvMRKy0_g0CwQqworbgFLca89u7wA,1969
16
+ souschef/core/constants.py,sha256=AyIpc9cJjQEDc1yOcoKc_2-cJB4PekSpPKEK2S9jDl8,5122
17
+ souschef/core/errors.py,sha256=zj_LHDRxUvHmcs-nZjOWu4B_MhY5WVq2okyZOxyycCI,8605
18
+ souschef/core/metrics.py,sha256=k56opuVmRorrBwErbxLgXu_GkfGZXA_rEfhcsHs1JHI,9850
19
+ souschef/core/path_utils.py,sha256=eU5lNujUX45MbMahstm4C0gJxKN14QIKaxmgD6O5l9U,8993
20
+ souschef/core/ruby_utils.py,sha256=vUeFZBdjbFFFJlwo4fIboR23rXmbcYL2Tztt4RYhps0,1043
21
+ souschef/core/validation.py,sha256=DXfkm1p5prSAJ-Oruk5JekNiDFI49Dql1bGEzKymYXs,19158
22
+ souschef/deployment.py,sha256=UKxq9G06b7de_5ioA7RdxdjwQaW2mJKf6WlNl0Sq5wk,62193
23
+ souschef/filesystem/__init__.py,sha256=2H7Pdeedz0MfmgpRlmii_vx61qr0jtxFndT0APPm6Qs,142
24
+ souschef/filesystem/operations.py,sha256=OMMozBfV_o70b47KioiZ2i6HViiUQPE5mVBeKcKFepo,1654
25
+ souschef/generators/__init__.py,sha256=T_XShFRPEceciUCq3q0EzYkAloN7CtoCq63kWzpQPW4,254
26
+ souschef/generators/repo.py,sha256=RUc8uCHPF5SXFWn43eSRph1hAZwQxLKLwYbnZN0CdcQ,18851
27
+ souschef/parsers/__init__.py,sha256=gF-vPslzs9iLxsaDzFnWDPpYFDAIwyAifjUwzYurPLg,1104
28
+ souschef/parsers/attributes.py,sha256=ss0H7QAPAZEf2YPrln7yXVHWQIjV4vqlcmLR8ZZXiNo,18250
29
+ souschef/parsers/habitat.py,sha256=n2mb5ydcIqday4TH_bmp6Nka0VxoMpKM5doaCh8ClY0,10494
30
+ souschef/parsers/inspec.py,sha256=Ln0Y2_HyOavGRkHY_srb4r0XA_0u6vlck-XANmzMkb0,34839
31
+ souschef/parsers/metadata.py,sha256=qDPLgZLblACDvSJxE4Jo5GIZSaB01uYS68DrEYrO0yE,6420
32
+ souschef/parsers/recipe.py,sha256=PNGQKVv0wwqj_q8WYT2NjsSavLA9WXdo2C9bp6pY9qc,7101
33
+ souschef/parsers/resource.py,sha256=WcKsUjP3yZx2-2nsTUTLPxIxtfwEihHVNkv3OC6bBHs,5359
34
+ souschef/parsers/template.py,sha256=v51BMUHmr9FYwE7zDNFA01dsClWHLrc_YD3rCM-2lqc,10543
35
+ souschef/profiling.py,sha256=a6Pn57CZR3UPR1YIY8gfbuTPRuPkFrfIFBmctOcaZgY,17315
36
+ souschef/server.py,sha256=jtNiPX9uWP5KoRCZj0nasBlxPooAy5AHKcW-HO0YWU4,122047
37
+ souschef/ui/__init__.py,sha256=U3W6X4ww7CxQVuetcocObWn5iY6lUFiNX7WoDBJeD34,195
38
+ souschef/ui/app.py,sha256=0lFphbMTL21H_CpT9rO2tITj48b4_zK8YZqW2_sm8TU,101744
39
+ souschef/ui/health_check.py,sha256=mEzec8L6XPRekOBAXngqQz5dnzal-a4p3D70mkPriiA,903
40
+ souschef/ui/pages/ai_settings.py,sha256=tIwgWBqxCEqFykmrLRPiVQjl-m-I1Mbq0RoB1YA5faM,17774
41
+ souschef/ui/pages/cookbook_analysis.py,sha256=qcCYtnk01XGD14wbQe5EzT3Fx_ETkIjMhz8r3ZOXwm8,146148
42
+ souschef/ui/pages/validation_reports.py,sha256=R3xHTJb_y2b0tI8N0qPF1oS4f9ZVb539_82dj5nmmxA,7593
43
+ mcp_souschef-3.2.0.dist-info/METADATA,sha256=8yGaW_bXIxvKHzwS7x_gBMXqH850qif_HuTyq2nnDVY,41878
44
+ mcp_souschef-3.2.0.dist-info/WHEEL,sha256=3ny-bZhpXrU6vSQ1UPG34FoxZBp3lVcvK0LkgUz6VLk,88
45
+ mcp_souschef-3.2.0.dist-info/entry_points.txt,sha256=NVSk61tLG4W0xEkWGOMXAVCIUyodyZCY_j3Z_0m6rkQ,80
46
+ mcp_souschef-3.2.0.dist-info/licenses/LICENSE,sha256=t31dYSuvYYNw6trj-coWSsLK-Tg_Iyl8ObcolQcrUKM,1078
47
+ mcp_souschef-3.2.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.2.1
2
+ Generator: poetry-core 2.3.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
souschef/__init__.py CHANGED
@@ -1,18 +1,42 @@
1
1
  """SousChef: AI-powered Chef to Ansible converter."""
2
2
 
3
- from souschef.assessment import (
3
+ from pathlib import Path
4
+
5
+ import tomllib
6
+
7
+
8
+ # Read version from pyproject.toml
9
+ def _get_version() -> str:
10
+ """Get version from pyproject.toml."""
11
+ pyproject_path = Path(__file__).parent.parent / "pyproject.toml"
12
+ try:
13
+ with pyproject_path.open("rb") as f:
14
+ data = tomllib.load(f)
15
+ version = data.get("tool", {}).get("poetry", {}).get("version")
16
+ return str(version) if version else "unknown"
17
+ except OSError:
18
+ return "unknown"
19
+
20
+
21
+ __version__ = _get_version()
22
+
23
+ from souschef.assessment import ( # noqa: E402
4
24
  analyse_cookbook_dependencies,
5
25
  assess_chef_migration_complexity,
6
26
  generate_migration_plan,
7
27
  generate_migration_report,
8
28
  validate_conversion,
9
29
  )
10
- from souschef.deployment import (
11
- analyse_chef_application_patterns,
12
- )
13
- from souschef.server import (
14
- analyse_chef_search_patterns,
15
- )
30
+ from souschef.deployment import analyse_chef_application_patterns # noqa: E402
31
+
32
+ # Import server functions only if MCP is available
33
+ try:
34
+ from souschef.server import analyse_chef_search_patterns
35
+ except ImportError:
36
+ # Define a placeholder function for when MCP is not available
37
+ def analyse_chef_search_patterns(*args, **kwargs):
38
+ raise NotImplementedError("MCP server not available")
39
+
16
40
 
17
41
  __all__ = [
18
42
  "analyse_cookbook_dependencies",