mfcli 0.2.0__tar.gz → 0.2.1__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 (146) hide show
  1. {mfcli-0.2.0 → mfcli-0.2.1}/BUILD.md +93 -93
  2. {mfcli-0.2.0 → mfcli-0.2.1}/CONFIGURATION.md +549 -549
  3. {mfcli-0.2.0 → mfcli-0.2.1}/INSTALL.md +396 -396
  4. {mfcli-0.2.0 → mfcli-0.2.1}/LICENSE +21 -21
  5. {mfcli-0.2.0 → mfcli-0.2.1}/MANIFEST.in +38 -38
  6. {mfcli-0.2.0 → mfcli-0.2.1}/MCP_SETUP.md +449 -422
  7. {mfcli-0.2.0 → mfcli-0.2.1}/PKG-INFO +956 -841
  8. {mfcli-0.2.0 → mfcli-0.2.1}/README.md +898 -783
  9. {mfcli-0.2.0 → mfcli-0.2.1}/install.ps1 +176 -176
  10. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/agents/controller/agent.py +19 -19
  11. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/agents/controller/config.yaml +27 -27
  12. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/agents/controller/tools.py +42 -42
  13. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/agents/tools/general.py +118 -118
  14. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/alembic/env.py +61 -61
  15. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/alembic/script.py.mako +28 -28
  16. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/alembic/versions/6ccc0c7c397c_added_fields_to_pdf_parts_model.py +39 -39
  17. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/alembic/versions/769019ef4870_added_gemini_file_path_to_pdf_part_model.py +33 -33
  18. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/alembic/versions/7a2e3a779fdc_added_functional_block_and_component_.py +54 -54
  19. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/alembic/versions/7d5adb2a47a7_added_pdf_parts_model.py +41 -41
  20. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/alembic/versions/7fcb7d6a5836_init.py +167 -167
  21. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/alembic/versions/e0f2b5765c72_added_cascade_delete_for_models_that_.py +32 -32
  22. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/alembic.ini +147 -147
  23. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/cli/dependencies.py +59 -59
  24. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/cli/main.py +200 -192
  25. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/client/chroma_db.py +184 -184
  26. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/client/docling.py +44 -44
  27. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/client/gemini.py +252 -252
  28. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/client/llama_parse.py +38 -38
  29. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/client/vector_db.py +93 -93
  30. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/constants/base_enum.py +18 -18
  31. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/constants/file_types.py +189 -189
  32. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/constants/gemini.py +1 -1
  33. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/constants/openai.py +5 -5
  34. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/constants/pipeline_run_status.py +2 -2
  35. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/crud/file.py +42 -42
  36. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/crud/functional_blocks.py +26 -26
  37. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/crud/netlist.py +18 -18
  38. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/crud/pipeline_run.py +17 -17
  39. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/crud/project.py +144 -99
  40. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/digikey/digikey.py +105 -105
  41. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/main.py +5 -5
  42. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/mcp/configs/cline_mcp_settings.json +10 -10
  43. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/mcp/configs/mfcli.mcp.json +7 -7
  44. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/mcp/mcp_instance.py +6 -6
  45. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/mcp/server.py +37 -37
  46. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/mcp/state_manager.py +51 -51
  47. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/mcp/tools/query_knowledgebase.py +108 -108
  48. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/__init__.py +9 -9
  49. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/base.py +10 -10
  50. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/bom.py +71 -71
  51. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/datasheet.py +10 -10
  52. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/debug_setup.py +64 -64
  53. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/file.py +43 -43
  54. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/file_docket.py +94 -94
  55. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/file_metadata.py +19 -19
  56. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/functional_blocks.py +94 -94
  57. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/llm_response.py +5 -5
  58. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/mcu.py +97 -97
  59. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/mcu_errata.py +26 -26
  60. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/netlist.py +59 -59
  61. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/pdf_parts.py +25 -25
  62. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/pipeline_run.py +34 -34
  63. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/project.py +27 -27
  64. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/project_metadata.py +15 -15
  65. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/bom_netlist_mapper.py +28 -28
  66. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/bom/bom.py +74 -74
  67. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/debug_setup/debug_setup.py +71 -71
  68. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/debug_setup/instructions.py +150 -150
  69. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/functional_blocks/functional_blocks.py +93 -93
  70. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/functional_blocks/instructions.py +34 -34
  71. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/functional_blocks/validator.py +94 -94
  72. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/generator.py +258 -258
  73. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/generator_base.py +18 -18
  74. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/mcu/instructions.py +156 -156
  75. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/mcu/mcu.py +84 -84
  76. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/mcu_errata/__init__.py +1 -1
  77. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/mcu_errata/instructions.py +77 -77
  78. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/mcu_errata/mcu_errata.py +95 -95
  79. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/summary/summary.py +47 -47
  80. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/classifier.py +93 -93
  81. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/data_enricher.py +15 -15
  82. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/extractor.py +34 -34
  83. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/extractors/pdf.py +12 -12
  84. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/parser.py +120 -120
  85. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/parsers/netlist/edif.py +93 -93
  86. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/parsers/netlist/kicad_legacy_net.py +326 -326
  87. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/parsers/netlist/kicad_spice.py +135 -135
  88. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/parsers/netlist/pads.py +185 -185
  89. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/parsers/netlist/protel.py +166 -166
  90. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/parsers/netlist/protel_detector.py +29 -29
  91. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/pipeline.py +470 -419
  92. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/preprocessors/user_guide.py +127 -127
  93. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/run_context.py +32 -32
  94. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/schema_mapper.py +89 -89
  95. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/sub_classifier.py +115 -115
  96. mfcli-0.2.1/mfcli/utils/cline_rules.py +256 -0
  97. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/config.py +33 -33
  98. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/configurator.py +324 -324
  99. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/data_cleaner.py +114 -82
  100. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/datasheet_vectorizer.py +283 -281
  101. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/directory_manager.py +116 -96
  102. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/file_upload.py +298 -298
  103. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/files.py +16 -16
  104. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/http_requests.py +54 -54
  105. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/kb_lister.py +89 -89
  106. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/kb_remover.py +173 -173
  107. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/logger.py +28 -28
  108. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/mcp_configurator.py +394 -311
  109. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/migrations.py +18 -18
  110. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/orm.py +43 -43
  111. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/pdf_splitter.py +63 -63
  112. mfcli-0.2.1/mfcli/utils/pre_uninstall.py +167 -0
  113. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/query_service.py +22 -22
  114. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/system_check.py +306 -306
  115. mfcli-0.2.1/mfcli/utils/tools.py +98 -0
  116. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/vectorizer.py +28 -28
  117. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli.egg-info/SOURCES.txt +2 -0
  118. {mfcli-0.2.0 → mfcli-0.2.1}/pyproject.toml +75 -74
  119. {mfcli-0.2.0 → mfcli-0.2.1}/setup.cfg +4 -4
  120. mfcli-0.2.0/mfcli/utils/tools.py +0 -31
  121. {mfcli-0.2.0 → mfcli-0.2.1}/install.sh +0 -0
  122. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/.env.example +0 -0
  123. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/__init__.py +0 -0
  124. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/agents/__init__.py +0 -0
  125. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/agents/controller/__init__.py +0 -0
  126. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/cli/__init__.py +0 -0
  127. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/client/__init__.py +0 -0
  128. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/constants/__init__.py +0 -0
  129. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/constants/directory_names.py +0 -0
  130. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/crud/__init__.py +0 -0
  131. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/digikey/__init__.py +0 -0
  132. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/mcp/__init__.py +0 -0
  133. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/mcp/tools/__init__.py +0 -0
  134. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/__init__.py +0 -0
  135. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/__init__.py +0 -0
  136. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/__init__.py +0 -0
  137. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/bom/__init__.py +0 -0
  138. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/debug_setup/__init__.py +0 -0
  139. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/functional_blocks/__init__.py +0 -0
  140. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/mcu/__init__.py +0 -0
  141. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/summary/__init__.py +0 -0
  142. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/extractors/__init__.py +0 -0
  143. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/parsers/__init__.py +0 -0
  144. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/parsers/netlist/__init__.py +0 -0
  145. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/preprocessors/__init__.py +0 -0
  146. {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/__init__.py +0 -0
@@ -1,93 +1,93 @@
1
- # Building mfcli Standalone Executable
2
-
3
- This document explains how to build a standalone executable for the mfcli CLI tool using PyInstaller.
4
-
5
- ## Prerequisites
6
-
7
- - Python 3.12
8
- - All project dependencies installed (`pip install -e .[dev]`)
9
-
10
- ## Building on Windows
11
-
12
- Run the PowerShell build script:
13
-
14
- ```powershell
15
- .\build.ps1
16
- ```
17
-
18
- The script will:
19
- 1. Check if PyInstaller is installed (and install it if needed)
20
- 2. Clean previous builds
21
- 3. Build the executable using PyInstaller
22
- 4. Display the executable location and size
23
-
24
- **Output:** `dist\mfcli.exe`
25
-
26
- ## Building on Mac/Linux
27
-
28
- First, make the build script executable:
29
-
30
- ```bash
31
- chmod +x build.sh
32
- ```
33
-
34
- Then run the build script:
35
-
36
- ```bash
37
- ./build.sh
38
- ```
39
-
40
- The script will:
41
- 1. Check if PyInstaller is installed (and install it if needed)
42
- 2. Clean previous builds
43
- 3. Build the executable using PyInstaller
44
- 4. Make the executable runnable
45
- 5. Display the executable location and size
46
-
47
- **Output:** `dist/mfcli`
48
-
49
- ## Manual Build
50
-
51
- If you prefer to build manually, you can run PyInstaller directly:
52
-
53
- ```bash
54
- pyinstaller mfcli.spec
55
- ```
56
-
57
- ## Configuration
58
-
59
- The build is configured through `mfcli.spec`, which includes:
60
- - All necessary hidden imports for dependencies
61
- - Data files (YAML configs, INI files, templates)
62
- - Single-file executable output
63
- - Console application settings
64
-
65
- ## Platform-Specific Dependencies
66
-
67
- The `pyproject.toml` automatically handles platform-specific magic library dependencies:
68
- - Windows: `python-magic-bin`
69
- - Mac/Linux: `python-magic`
70
-
71
- ## Troubleshooting
72
-
73
- ### Missing Dependencies
74
- If the build fails due to missing dependencies, install the dev dependencies:
75
- ```bash
76
- pip install -e .[dev]
77
- ```
78
-
79
- ### Large Executable Size
80
- The executable includes all Python dependencies. This is expected for bundled applications. Typical size is 100-200 MB.
81
-
82
- ### Runtime Errors
83
- If the built executable fails at runtime, you may need to add additional hidden imports or data files to `mfcli.spec`.
84
-
85
- ## Distribution
86
-
87
- After building, the executable in the `dist/` folder can be distributed as a standalone application. Users don't need Python installed to run it.
88
-
89
- ### Windows
90
- Distribute `dist\mfcli.exe`
91
-
92
- ### Mac/Linux
93
- Distribute `dist/mfcli` (ensure it has execute permissions)
1
+ # Building mfcli Standalone Executable
2
+
3
+ This document explains how to build a standalone executable for the mfcli CLI tool using PyInstaller.
4
+
5
+ ## Prerequisites
6
+
7
+ - Python 3.12
8
+ - All project dependencies installed (`pip install -e .[dev]`)
9
+
10
+ ## Building on Windows
11
+
12
+ Run the PowerShell build script:
13
+
14
+ ```powershell
15
+ .\build.ps1
16
+ ```
17
+
18
+ The script will:
19
+ 1. Check if PyInstaller is installed (and install it if needed)
20
+ 2. Clean previous builds
21
+ 3. Build the executable using PyInstaller
22
+ 4. Display the executable location and size
23
+
24
+ **Output:** `dist\mfcli.exe`
25
+
26
+ ## Building on Mac/Linux
27
+
28
+ First, make the build script executable:
29
+
30
+ ```bash
31
+ chmod +x build.sh
32
+ ```
33
+
34
+ Then run the build script:
35
+
36
+ ```bash
37
+ ./build.sh
38
+ ```
39
+
40
+ The script will:
41
+ 1. Check if PyInstaller is installed (and install it if needed)
42
+ 2. Clean previous builds
43
+ 3. Build the executable using PyInstaller
44
+ 4. Make the executable runnable
45
+ 5. Display the executable location and size
46
+
47
+ **Output:** `dist/mfcli`
48
+
49
+ ## Manual Build
50
+
51
+ If you prefer to build manually, you can run PyInstaller directly:
52
+
53
+ ```bash
54
+ pyinstaller mfcli.spec
55
+ ```
56
+
57
+ ## Configuration
58
+
59
+ The build is configured through `mfcli.spec`, which includes:
60
+ - All necessary hidden imports for dependencies
61
+ - Data files (YAML configs, INI files, templates)
62
+ - Single-file executable output
63
+ - Console application settings
64
+
65
+ ## Platform-Specific Dependencies
66
+
67
+ The `pyproject.toml` automatically handles platform-specific magic library dependencies:
68
+ - Windows: `python-magic-bin`
69
+ - Mac/Linux: `python-magic`
70
+
71
+ ## Troubleshooting
72
+
73
+ ### Missing Dependencies
74
+ If the build fails due to missing dependencies, install the dev dependencies:
75
+ ```bash
76
+ pip install -e .[dev]
77
+ ```
78
+
79
+ ### Large Executable Size
80
+ The executable includes all Python dependencies. This is expected for bundled applications. Typical size is 100-200 MB.
81
+
82
+ ### Runtime Errors
83
+ If the built executable fails at runtime, you may need to add additional hidden imports or data files to `mfcli.spec`.
84
+
85
+ ## Distribution
86
+
87
+ After building, the executable in the `dist/` folder can be distributed as a standalone application. Users don't need Python installed to run it.
88
+
89
+ ### Windows
90
+ Distribute `dist\mfcli.exe`
91
+
92
+ ### Mac/Linux
93
+ Distribute `dist/mfcli` (ensure it has execute permissions)