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.
- {mfcli-0.2.0 → mfcli-0.2.1}/BUILD.md +93 -93
- {mfcli-0.2.0 → mfcli-0.2.1}/CONFIGURATION.md +549 -549
- {mfcli-0.2.0 → mfcli-0.2.1}/INSTALL.md +396 -396
- {mfcli-0.2.0 → mfcli-0.2.1}/LICENSE +21 -21
- {mfcli-0.2.0 → mfcli-0.2.1}/MANIFEST.in +38 -38
- {mfcli-0.2.0 → mfcli-0.2.1}/MCP_SETUP.md +449 -422
- {mfcli-0.2.0 → mfcli-0.2.1}/PKG-INFO +956 -841
- {mfcli-0.2.0 → mfcli-0.2.1}/README.md +898 -783
- {mfcli-0.2.0 → mfcli-0.2.1}/install.ps1 +176 -176
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/agents/controller/agent.py +19 -19
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/agents/controller/config.yaml +27 -27
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/agents/controller/tools.py +42 -42
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/agents/tools/general.py +118 -118
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/alembic/env.py +61 -61
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/alembic/script.py.mako +28 -28
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/alembic/versions/6ccc0c7c397c_added_fields_to_pdf_parts_model.py +39 -39
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/alembic/versions/769019ef4870_added_gemini_file_path_to_pdf_part_model.py +33 -33
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/alembic/versions/7a2e3a779fdc_added_functional_block_and_component_.py +54 -54
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/alembic/versions/7d5adb2a47a7_added_pdf_parts_model.py +41 -41
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/alembic/versions/7fcb7d6a5836_init.py +167 -167
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/alembic/versions/e0f2b5765c72_added_cascade_delete_for_models_that_.py +32 -32
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/alembic.ini +147 -147
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/cli/dependencies.py +59 -59
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/cli/main.py +200 -192
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/client/chroma_db.py +184 -184
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/client/docling.py +44 -44
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/client/gemini.py +252 -252
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/client/llama_parse.py +38 -38
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/client/vector_db.py +93 -93
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/constants/base_enum.py +18 -18
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/constants/file_types.py +189 -189
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/constants/gemini.py +1 -1
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/constants/openai.py +5 -5
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/constants/pipeline_run_status.py +2 -2
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/crud/file.py +42 -42
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/crud/functional_blocks.py +26 -26
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/crud/netlist.py +18 -18
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/crud/pipeline_run.py +17 -17
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/crud/project.py +144 -99
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/digikey/digikey.py +105 -105
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/main.py +5 -5
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/mcp/configs/cline_mcp_settings.json +10 -10
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/mcp/configs/mfcli.mcp.json +7 -7
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/mcp/mcp_instance.py +6 -6
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/mcp/server.py +37 -37
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/mcp/state_manager.py +51 -51
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/mcp/tools/query_knowledgebase.py +108 -108
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/__init__.py +9 -9
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/base.py +10 -10
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/bom.py +71 -71
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/datasheet.py +10 -10
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/debug_setup.py +64 -64
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/file.py +43 -43
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/file_docket.py +94 -94
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/file_metadata.py +19 -19
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/functional_blocks.py +94 -94
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/llm_response.py +5 -5
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/mcu.py +97 -97
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/mcu_errata.py +26 -26
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/netlist.py +59 -59
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/pdf_parts.py +25 -25
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/pipeline_run.py +34 -34
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/project.py +27 -27
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/models/project_metadata.py +15 -15
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/bom_netlist_mapper.py +28 -28
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/bom/bom.py +74 -74
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/debug_setup/debug_setup.py +71 -71
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/debug_setup/instructions.py +150 -150
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/functional_blocks/functional_blocks.py +93 -93
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/functional_blocks/instructions.py +34 -34
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/functional_blocks/validator.py +94 -94
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/generator.py +258 -258
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/generator_base.py +18 -18
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/mcu/instructions.py +156 -156
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/mcu/mcu.py +84 -84
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/mcu_errata/__init__.py +1 -1
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/mcu_errata/instructions.py +77 -77
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/mcu_errata/mcu_errata.py +95 -95
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/summary/summary.py +47 -47
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/classifier.py +93 -93
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/data_enricher.py +15 -15
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/extractor.py +34 -34
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/extractors/pdf.py +12 -12
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/parser.py +120 -120
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/parsers/netlist/edif.py +93 -93
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/parsers/netlist/kicad_legacy_net.py +326 -326
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/parsers/netlist/kicad_spice.py +135 -135
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/parsers/netlist/pads.py +185 -185
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/parsers/netlist/protel.py +166 -166
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/parsers/netlist/protel_detector.py +29 -29
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/pipeline.py +470 -419
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/preprocessors/user_guide.py +127 -127
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/run_context.py +32 -32
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/schema_mapper.py +89 -89
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/sub_classifier.py +115 -115
- mfcli-0.2.1/mfcli/utils/cline_rules.py +256 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/config.py +33 -33
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/configurator.py +324 -324
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/data_cleaner.py +114 -82
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/datasheet_vectorizer.py +283 -281
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/directory_manager.py +116 -96
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/file_upload.py +298 -298
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/files.py +16 -16
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/http_requests.py +54 -54
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/kb_lister.py +89 -89
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/kb_remover.py +173 -173
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/logger.py +28 -28
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/mcp_configurator.py +394 -311
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/migrations.py +18 -18
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/orm.py +43 -43
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/pdf_splitter.py +63 -63
- mfcli-0.2.1/mfcli/utils/pre_uninstall.py +167 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/query_service.py +22 -22
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/system_check.py +306 -306
- mfcli-0.2.1/mfcli/utils/tools.py +98 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/utils/vectorizer.py +28 -28
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli.egg-info/SOURCES.txt +2 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/pyproject.toml +75 -74
- {mfcli-0.2.0 → mfcli-0.2.1}/setup.cfg +4 -4
- mfcli-0.2.0/mfcli/utils/tools.py +0 -31
- {mfcli-0.2.0 → mfcli-0.2.1}/install.sh +0 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/.env.example +0 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/__init__.py +0 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/agents/__init__.py +0 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/agents/controller/__init__.py +0 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/cli/__init__.py +0 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/client/__init__.py +0 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/constants/__init__.py +0 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/constants/directory_names.py +0 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/crud/__init__.py +0 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/digikey/__init__.py +0 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/mcp/__init__.py +0 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/mcp/tools/__init__.py +0 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/__init__.py +0 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/__init__.py +0 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/__init__.py +0 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/bom/__init__.py +0 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/debug_setup/__init__.py +0 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/functional_blocks/__init__.py +0 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/mcu/__init__.py +0 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/analysis/generators/summary/__init__.py +0 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/extractors/__init__.py +0 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/parsers/__init__.py +0 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/parsers/netlist/__init__.py +0 -0
- {mfcli-0.2.0 → mfcli-0.2.1}/mfcli/pipeline/preprocessors/__init__.py +0 -0
- {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)
|