hython-cli 0.1.0__tar.gz → 0.1.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 (24) hide show
  1. {hython_cli-0.1.0 → hython_cli-0.1.1}/Cargo.lock +1 -1
  2. {hython_cli-0.1.0 → hython_cli-0.1.1}/Cargo.toml +1 -1
  3. {hython_cli-0.1.0 → hython_cli-0.1.1}/PKG-INFO +27 -48
  4. {hython_cli-0.1.0 → hython_cli-0.1.1}/README.md +26 -47
  5. {hython_cli-0.1.0 → hython_cli-0.1.1}/pyproject.toml +1 -1
  6. hython_cli-0.1.1/tests/live_pypi_sandbox_test.sh +103 -0
  7. {hython_cli-0.1.0 → hython_cli-0.1.1}/.github/workflows/release.yml +0 -0
  8. {hython_cli-0.1.0 → hython_cli-0.1.1}/.gitignore +0 -0
  9. {hython_cli-0.1.0 → hython_cli-0.1.1}/MONETIZATION.md +0 -0
  10. {hython_cli-0.1.0 → hython_cli-0.1.1}/PHILOSOPHY.md +0 -0
  11. {hython_cli-0.1.0 → hython_cli-0.1.1}/install.sh +0 -0
  12. {hython_cli-0.1.0 → hython_cli-0.1.1}/src/env.rs +0 -0
  13. {hython_cli-0.1.0 → hython_cli-0.1.1}/src/formatter.rs +0 -0
  14. {hython_cli-0.1.0 → hython_cli-0.1.1}/src/intellisense.rs +0 -0
  15. {hython_cli-0.1.0 → hython_cli-0.1.1}/src/main.rs +0 -0
  16. {hython_cli-0.1.0 → hython_cli-0.1.1}/src/manifest.rs +0 -0
  17. {hython_cli-0.1.0 → hython_cli-0.1.1}/src/reporter.rs +0 -0
  18. {hython_cli-0.1.0 → hython_cli-0.1.1}/src/resolver.rs +0 -0
  19. {hython_cli-0.1.0 → hython_cli-0.1.1}/src/runner.rs +0 -0
  20. {hython_cli-0.1.0 → hython_cli-0.1.1}/src/runtime.rs +0 -0
  21. {hython_cli-0.1.0 → hython_cli-0.1.1}/src/scanner.rs +0 -0
  22. {hython_cli-0.1.0 → hython_cli-0.1.1}/tests/integration_tests.rs +0 -0
  23. {hython_cli-0.1.0 → hython_cli-0.1.1}/tests/sandbox_suite.sh +0 -0
  24. {hython_cli-0.1.0 → hython_cli-0.1.1}/tests/security_tests.sh +0 -0
@@ -348,7 +348,7 @@ dependencies = [
348
348
 
349
349
  [[package]]
350
350
  name = "hython"
351
- version = "0.1.0"
351
+ version = "0.1.1"
352
352
  dependencies = [
353
353
  "clap",
354
354
  "colored",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "hython"
3
- version = "0.1.0"
3
+ version = "0.1.1"
4
4
  edition = "2021"
5
5
  readme = "README.md"
6
6
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hython-cli
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Classifier: Programming Language :: Rust
5
5
  Classifier: Programming Language :: Python :: Implementation :: CPython
6
6
  Classifier: Programming Language :: Python :: 3
@@ -18,14 +18,14 @@ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
18
18
  > **"Don't ask the developer to fix something that Hython can safely fix itself.
19
19
  > And after fixing it: Tell the developer what happened, without making them participate in the process."**
20
20
 
21
- Hython is an automation-first Python environment orchestrator written in **Rust**. It eliminates the friction of managing virtual environments, installing missing dependencies, matching Python versions, and typing routine answers to `[Y/n]` prompts.
21
+ Hython is an automation-first Python environment orchestrator. It eliminates the friction of managing virtual environments, installing missing dependencies, matching Python versions, configuring IDE settings, and answering routine `[Y/n]` prompts.
22
22
 
23
23
  ---
24
24
 
25
25
  ## The Mental Model
26
26
 
27
27
  ```text
28
- Developer intent (`hython` or `hython run script.py`)
28
+ Developer intent (`hython` or `hython app.py`)
29
29
  ↓
30
30
  Hython inspects project & requirements
31
31
  ↓
@@ -43,37 +43,25 @@ The developer should think:
43
43
 
44
44
  ---
45
45
 
46
- ## Key Features
47
-
48
- - 🚫 **No Routine Prompts:** Never stops execution for safe, deterministic actions like creating `.venv` or installing missing dependencies.
49
- - 🩺 **Self-Healing Environments:** If `.venv` is missing, damaged, or out-of-sync, Hython recreates or synchronizes it seamlessly.
50
- - 🧠 **Automatic IDE & Framework IntelliSense:** Instantly writes `.vscode/settings.json` and `pyrightconfig.json` so editors lock onto the environment. Automatically provisions framework type stubs (e.g. `django-stubs`, `django-stubs-ext`, `pandas-stubs`) so Django ORM autocompletion and hover documentation work out-of-the-box with zero configuration.
51
- - 📦 **Dynamic Import Healing:** Intercepts `ModuleNotFoundError` during both pre-flight static analysis and runtime execution. It maps module names to PyPI packages (e.g. `yaml` → `PyYAML`, `dateutil` → `python-dateutil`, `PIL` → `Pillow`, `psycopg2` → `psycopg2-binary`) and installs them automatically.
52
- - 🎯 **Intelligent Runtime Selection:** Parses `requires-python` (e.g. `>=3.12, <3.14`). If your default interpreter is Python 3.14, Hython discovers or auto-provisions Python 3.13 without manual setup.
53
- - 🤫 **Quiet & Instant When Warm:** Once an environment is ready and synchronized, `hython` introduces near-zero overhead and runs completely silently.
54
- - 📊 **Calm Post-Action Summary:** Reports what was detected, selected, installed, and executed only when actions took place.
55
-
56
- ---
57
-
58
- ## Quick Start
46
+ ## Installation
59
47
 
60
- ### Installation
61
-
62
- **Via pip (Recommended):**
63
48
  ```bash
64
49
  pip install hython-cli
65
50
  ```
51
+ *(Or use `pipx install hython-cli`)*
66
52
 
67
- **Via Cargo:**
68
- ```bash
69
- cargo install --path .
70
- ```
53
+ ---
71
54
 
72
- **Build from Source:**
73
- ```bash
74
- cargo build --release
75
- # Standalone binary located at target/release/hython
76
- ```
55
+ ## Key Features
56
+
57
+ - 🚫 **No Routine Prompts:** Never stops execution for safe, deterministic actions like creating `.venv` or installing missing dependencies.
58
+ - 🩺 **Self-Healing Environments:** If `.venv` is missing, corrupted, or out-of-sync, Hython recreates or synchronizes it seamlessly.
59
+ - 📦 **Dynamic Import Healing:** Intercepts `ModuleNotFoundError` during both pre-flight static analysis and runtime execution. It maps module names to PyPI packages (e.g. `yaml` → `PyYAML`, `dateutil` → `python-dateutil`, `PIL` → `Pillow`, `psycopg2` → `psycopg2-binary`) and installs them automatically.
60
+ - 🎯 **Intelligent Runtime Selection:** Parses `requires-python` (e.g. `>=3.12, <3.14`). If your default interpreter is Python 3.14, Hython discovers or auto-provisions a compatible Python runtime without manual setup.
61
+ - 🧠 **Automatic IDE & Framework IntelliSense:** Instantly writes `.vscode/settings.json` and `pyrightconfig.json` so editors lock onto the environment. Automatically provisions framework type stubs (e.g. `django-stubs`, `django-stubs-ext`, `pandas-stubs`) so Django ORM autocompletion and hover documentation work out-of-the-box.
62
+ - 🎨 **Automated Code Formatting:** Includes `hython fmt` and configures format-on-save in your editor, enforcing official PEP 8, Black, isort, and framework conventions automatically.
63
+ - 🤫 **Quiet & Instant When Warm:** Once an environment is ready and synchronized, `hython` introduces near-zero overhead and runs completely silently.
64
+ - 📊 **Calm Post-Action Summary:** Reports what was detected, selected, installed, and executed only when actions took place.
77
65
 
78
66
  ---
79
67
 
@@ -84,9 +72,9 @@ In any project folder (Django, FastAPI, Flask, or script-based):
84
72
  ```bash
85
73
  hython
86
74
  ```
87
- - If Django is detected (`manage.py`): runs `manage.py runserver`.
88
- - If FastAPI is detected (`main.py` with `FastAPI()`): ensures `uvicorn` and runs `uvicorn main:app --reload`.
89
- - If standard entrypoint (`main.py`, `app.py`, `run.py`): executes with project environment.
75
+ - **Django:** If `manage.py` is detected, runs `manage.py runserver`.
76
+ - **FastAPI:** If `FastAPI()` is detected in `main.py` or `app.py`, ensures `uvicorn` and runs `uvicorn main:app --reload`.
77
+ - **Standard scripts:** Automatically finds `main.py`, `app.py`, or `run.py` and executes within the isolated environment.
90
78
 
91
79
  ### 2. Run Any Script with Self-Healing
92
80
  ```bash
@@ -107,7 +95,13 @@ hython add requests
107
95
  ```
108
96
  Updates `pyproject.toml` or `requirements.txt` and synchronizes the environment immediately.
109
97
 
110
- ### 5. Explicit Synchronization & Status
98
+ ### 5. Format Code
99
+ ```bash
100
+ hython fmt
101
+ ```
102
+ Automatically cleans, formats, and sorts imports according to PEP 8 and framework rules.
103
+
104
+ ### 6. Explicit Synchronization & Status
111
105
  ```bash
112
106
  hython sync # Reconciles environment and dependencies
113
107
  hython status # Inspects detected project root, manifest, and runtime
@@ -115,22 +109,7 @@ hython status # Inspects detected project root, manifest, and runtime
115
109
 
116
110
  ---
117
111
 
118
- ## Architecture
119
-
120
- | Module | Responsibility |
121
- | :--- | :--- |
122
- | [`src/main.rs`](file:///Volumes/harsha's%20SSD/Hython/src/main.rs) | CLI entrypoint, argument dispatch, zero-argument project auto-detection |
123
- | [`src/manifest.rs`](file:///Volumes/harsha's%20SSD/Hython/src/manifest.rs) | Inspects `pyproject.toml`, `requirements.txt`, `.python-version`, entry points |
124
- | [`src/runtime.rs`](file:///Volumes/harsha's%20SSD/Hython/src/runtime.rs) | SemVer constraint matching, local Python discovery, standalone runtime provisioning |
125
- | [`src/env.rs`](file:///Volumes/harsha's%20SSD/Hython/src/env.rs) | `.venv` lifecycle, state hashing (`.venv/.hython-state.json`), dependency synchronization |
126
- | [`src/scanner.rs`](file:///Volumes/harsha's%20SSD/Hython/src/scanner.rs) | Fast static AST/regex import scanning for pre-flight missing package detection |
127
- | [`src/resolver.rs`](file:///Volumes/harsha's%20SSD/Hython/src/resolver.rs) | Standard library filter and module-to-PyPI package name mapping |
128
- | [`src/runner.rs`](file:///Volumes/harsha's%20SSD/Hython/src/runner.rs) | Execution supervisor with dynamic runtime `ModuleNotFoundError` interception & self-healing |
129
- | [`src/reporter.rs`](file:///Volumes/harsha's%20SSD/Hython/src/reporter.rs) | Transparent, non-intrusive post-action summary formatter |
130
-
131
- ---
132
-
133
112
  ## License
134
113
 
135
- MIT
114
+ MIT License — Hython Labs
136
115
 
@@ -4,14 +4,14 @@
4
4
  > **"Don't ask the developer to fix something that Hython can safely fix itself.
5
5
  > And after fixing it: Tell the developer what happened, without making them participate in the process."**
6
6
 
7
- Hython is an automation-first Python environment orchestrator written in **Rust**. It eliminates the friction of managing virtual environments, installing missing dependencies, matching Python versions, and typing routine answers to `[Y/n]` prompts.
7
+ Hython is an automation-first Python environment orchestrator. It eliminates the friction of managing virtual environments, installing missing dependencies, matching Python versions, configuring IDE settings, and answering routine `[Y/n]` prompts.
8
8
 
9
9
  ---
10
10
 
11
11
  ## The Mental Model
12
12
 
13
13
  ```text
14
- Developer intent (`hython` or `hython run script.py`)
14
+ Developer intent (`hython` or `hython app.py`)
15
15
  ↓
16
16
  Hython inspects project & requirements
17
17
  ↓
@@ -29,37 +29,25 @@ The developer should think:
29
29
 
30
30
  ---
31
31
 
32
- ## Key Features
33
-
34
- - 🚫 **No Routine Prompts:** Never stops execution for safe, deterministic actions like creating `.venv` or installing missing dependencies.
35
- - 🩺 **Self-Healing Environments:** If `.venv` is missing, damaged, or out-of-sync, Hython recreates or synchronizes it seamlessly.
36
- - 🧠 **Automatic IDE & Framework IntelliSense:** Instantly writes `.vscode/settings.json` and `pyrightconfig.json` so editors lock onto the environment. Automatically provisions framework type stubs (e.g. `django-stubs`, `django-stubs-ext`, `pandas-stubs`) so Django ORM autocompletion and hover documentation work out-of-the-box with zero configuration.
37
- - 📦 **Dynamic Import Healing:** Intercepts `ModuleNotFoundError` during both pre-flight static analysis and runtime execution. It maps module names to PyPI packages (e.g. `yaml` → `PyYAML`, `dateutil` → `python-dateutil`, `PIL` → `Pillow`, `psycopg2` → `psycopg2-binary`) and installs them automatically.
38
- - 🎯 **Intelligent Runtime Selection:** Parses `requires-python` (e.g. `>=3.12, <3.14`). If your default interpreter is Python 3.14, Hython discovers or auto-provisions Python 3.13 without manual setup.
39
- - 🤫 **Quiet & Instant When Warm:** Once an environment is ready and synchronized, `hython` introduces near-zero overhead and runs completely silently.
40
- - 📊 **Calm Post-Action Summary:** Reports what was detected, selected, installed, and executed only when actions took place.
41
-
42
- ---
43
-
44
- ## Quick Start
32
+ ## Installation
45
33
 
46
- ### Installation
47
-
48
- **Via pip (Recommended):**
49
34
  ```bash
50
35
  pip install hython-cli
51
36
  ```
37
+ *(Or use `pipx install hython-cli`)*
52
38
 
53
- **Via Cargo:**
54
- ```bash
55
- cargo install --path .
56
- ```
39
+ ---
57
40
 
58
- **Build from Source:**
59
- ```bash
60
- cargo build --release
61
- # Standalone binary located at target/release/hython
62
- ```
41
+ ## Key Features
42
+
43
+ - 🚫 **No Routine Prompts:** Never stops execution for safe, deterministic actions like creating `.venv` or installing missing dependencies.
44
+ - 🩺 **Self-Healing Environments:** If `.venv` is missing, corrupted, or out-of-sync, Hython recreates or synchronizes it seamlessly.
45
+ - 📦 **Dynamic Import Healing:** Intercepts `ModuleNotFoundError` during both pre-flight static analysis and runtime execution. It maps module names to PyPI packages (e.g. `yaml` → `PyYAML`, `dateutil` → `python-dateutil`, `PIL` → `Pillow`, `psycopg2` → `psycopg2-binary`) and installs them automatically.
46
+ - 🎯 **Intelligent Runtime Selection:** Parses `requires-python` (e.g. `>=3.12, <3.14`). If your default interpreter is Python 3.14, Hython discovers or auto-provisions a compatible Python runtime without manual setup.
47
+ - 🧠 **Automatic IDE & Framework IntelliSense:** Instantly writes `.vscode/settings.json` and `pyrightconfig.json` so editors lock onto the environment. Automatically provisions framework type stubs (e.g. `django-stubs`, `django-stubs-ext`, `pandas-stubs`) so Django ORM autocompletion and hover documentation work out-of-the-box.
48
+ - 🎨 **Automated Code Formatting:** Includes `hython fmt` and configures format-on-save in your editor, enforcing official PEP 8, Black, isort, and framework conventions automatically.
49
+ - 🤫 **Quiet & Instant When Warm:** Once an environment is ready and synchronized, `hython` introduces near-zero overhead and runs completely silently.
50
+ - 📊 **Calm Post-Action Summary:** Reports what was detected, selected, installed, and executed only when actions took place.
63
51
 
64
52
  ---
65
53
 
@@ -70,9 +58,9 @@ In any project folder (Django, FastAPI, Flask, or script-based):
70
58
  ```bash
71
59
  hython
72
60
  ```
73
- - If Django is detected (`manage.py`): runs `manage.py runserver`.
74
- - If FastAPI is detected (`main.py` with `FastAPI()`): ensures `uvicorn` and runs `uvicorn main:app --reload`.
75
- - If standard entrypoint (`main.py`, `app.py`, `run.py`): executes with project environment.
61
+ - **Django:** If `manage.py` is detected, runs `manage.py runserver`.
62
+ - **FastAPI:** If `FastAPI()` is detected in `main.py` or `app.py`, ensures `uvicorn` and runs `uvicorn main:app --reload`.
63
+ - **Standard scripts:** Automatically finds `main.py`, `app.py`, or `run.py` and executes within the isolated environment.
76
64
 
77
65
  ### 2. Run Any Script with Self-Healing
78
66
  ```bash
@@ -93,7 +81,13 @@ hython add requests
93
81
  ```
94
82
  Updates `pyproject.toml` or `requirements.txt` and synchronizes the environment immediately.
95
83
 
96
- ### 5. Explicit Synchronization & Status
84
+ ### 5. Format Code
85
+ ```bash
86
+ hython fmt
87
+ ```
88
+ Automatically cleans, formats, and sorts imports according to PEP 8 and framework rules.
89
+
90
+ ### 6. Explicit Synchronization & Status
97
91
  ```bash
98
92
  hython sync # Reconciles environment and dependencies
99
93
  hython status # Inspects detected project root, manifest, and runtime
@@ -101,21 +95,6 @@ hython status # Inspects detected project root, manifest, and runtime
101
95
 
102
96
  ---
103
97
 
104
- ## Architecture
105
-
106
- | Module | Responsibility |
107
- | :--- | :--- |
108
- | [`src/main.rs`](file:///Volumes/harsha's%20SSD/Hython/src/main.rs) | CLI entrypoint, argument dispatch, zero-argument project auto-detection |
109
- | [`src/manifest.rs`](file:///Volumes/harsha's%20SSD/Hython/src/manifest.rs) | Inspects `pyproject.toml`, `requirements.txt`, `.python-version`, entry points |
110
- | [`src/runtime.rs`](file:///Volumes/harsha's%20SSD/Hython/src/runtime.rs) | SemVer constraint matching, local Python discovery, standalone runtime provisioning |
111
- | [`src/env.rs`](file:///Volumes/harsha's%20SSD/Hython/src/env.rs) | `.venv` lifecycle, state hashing (`.venv/.hython-state.json`), dependency synchronization |
112
- | [`src/scanner.rs`](file:///Volumes/harsha's%20SSD/Hython/src/scanner.rs) | Fast static AST/regex import scanning for pre-flight missing package detection |
113
- | [`src/resolver.rs`](file:///Volumes/harsha's%20SSD/Hython/src/resolver.rs) | Standard library filter and module-to-PyPI package name mapping |
114
- | [`src/runner.rs`](file:///Volumes/harsha's%20SSD/Hython/src/runner.rs) | Execution supervisor with dynamic runtime `ModuleNotFoundError` interception & self-healing |
115
- | [`src/reporter.rs`](file:///Volumes/harsha's%20SSD/Hython/src/reporter.rs) | Transparent, non-intrusive post-action summary formatter |
116
-
117
- ---
118
-
119
98
  ## License
120
99
 
121
- MIT
100
+ MIT License — Hython Labs
@@ -4,7 +4,7 @@ build-backend = "maturin"
4
4
 
5
5
  [project]
6
6
  name = "hython-cli"
7
- version = "0.1.0"
7
+ version = "0.1.1"
8
8
  description = "Zero-Interruption Python Automation Engine"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.8"
@@ -0,0 +1,103 @@
1
+ #!/usr/bin/env bash
2
+ set -e
3
+
4
+ SANDBOX_DIR="$(mktemp -d -t hython_live_pypi_XXXXXX)"
5
+
6
+ echo "=========================================================="
7
+ echo "🌐 RUNNING LIVE PYPI INSTALLATION & END-TO-END VERIFICATION"
8
+ echo "Sandbox Directory: $SANDBOX_DIR"
9
+ echo "=========================================================="
10
+
11
+ cleanup() {
12
+ rm -rf "$SANDBOX_DIR"
13
+ }
14
+ trap cleanup EXIT
15
+
16
+ # Step 1: Create fresh virtual environment (simulating a clean user laptop)
17
+ echo "1. Creating fresh sandbox environment..."
18
+ python3 -m venv "$SANDBOX_DIR/user_env"
19
+ ENV_PIP="$SANDBOX_DIR/user_env/bin/pip"
20
+ ENV_HYTHON="$SANDBOX_DIR/user_env/bin/hython"
21
+
22
+ # Step 2: Install hython-cli directly from PyPI
23
+ echo "2. Installing 'hython-cli' from official PyPI..."
24
+ "$ENV_PIP" install --no-cache-dir hython-cli
25
+
26
+ # Step 3: Verify hython binary was installed into the user's PATH
27
+ echo -n "3. Verifying hython binary execution... "
28
+ HYTHON_VER=$("$ENV_HYTHON" --version)
29
+ echo "✅ Installed: $HYTHON_VER"
30
+
31
+ # Step 4: Test Self-Healing Missing Dependency
32
+ echo -n "4. Testing Self-Healing with missing dependency (requests)... "
33
+ PROJECT_DIR="$SANDBOX_DIR/my_project"
34
+ mkdir -p "$PROJECT_DIR"
35
+ cat << 'EOF' > "$PROJECT_DIR/app.py"
36
+ import requests
37
+ resp = requests.get("https://httpbin.org/get")
38
+ print(f"LIVE_TEST_STATUS:{resp.status_code}")
39
+ EOF
40
+
41
+ OUTPUT_APP=$(cd "$PROJECT_DIR" && "$ENV_HYTHON" app.py 2>&1)
42
+ if echo "$OUTPUT_APP" | grep -q "LIVE_TEST_STATUS:200" && echo "$OUTPUT_APP" | grep -q "Installed 1 missing dependency"; then
43
+ echo "✅ PASSED (Self-healed missing package & ran successfully)"
44
+ else
45
+ echo "❌ FAILED"
46
+ echo "$OUTPUT_APP"
47
+ exit 1
48
+ fi
49
+
50
+ # Step 5: Test Dynamic Import Interception
51
+ echo -n "5. Testing Dynamic Import Interception ('yaml' -> 'PyYAML')... "
52
+ cat << 'EOF' > "$PROJECT_DIR/dynamic.py"
53
+ def load_data():
54
+ import yaml
55
+ return yaml.safe_load("product: Hython-CLI\nstatus: Verified")
56
+
57
+ print(load_data()["product"])
58
+ EOF
59
+
60
+ OUTPUT_DYN=$(cd "$PROJECT_DIR" && "$ENV_HYTHON" dynamic.py 2>&1)
61
+ if echo "$OUTPUT_DYN" | grep -q "Hython-CLI"; then
62
+ echo "✅ PASSED (Intercepted runtime missing module & resolved PyPI package)"
63
+ else
64
+ echo "❌ FAILED"
65
+ echo "$OUTPUT_DYN"
66
+ exit 1
67
+ fi
68
+
69
+ # Step 6: Test Code Formatting (hython fmt)
70
+ echo -n "6. Testing Code Formatting (hython fmt)... "
71
+ cat << 'EOF' > "$PROJECT_DIR/messy.py"
72
+ def dirty_func( x,y, z ):
73
+ a = [ 1, 2,3 ]
74
+ return {"x":x,"y":y,"z":z}
75
+ EOF
76
+
77
+ (cd "$PROJECT_DIR" && "$ENV_HYTHON" fmt > /dev/null 2>&1)
78
+ if grep -q "def dirty_func(x, y, z):" "$PROJECT_DIR/messy.py"; then
79
+ echo "✅ PASSED (PEP 8 auto-formatting applied cleanly)"
80
+ else
81
+ echo "❌ FAILED"
82
+ cat "$PROJECT_DIR/messy.py"
83
+ exit 1
84
+ fi
85
+
86
+ # Step 7: Test IDE IntelliSense Auto-Generation
87
+ echo -n "7. Testing IDE IntelliSense Auto-Configuration... "
88
+ cat << 'EOF' > "$PROJECT_DIR/manage.py"
89
+ # DJANGO_SETTINGS_MODULE = "test.settings"
90
+ print("Django ready")
91
+ EOF
92
+
93
+ (cd "$PROJECT_DIR" && "$ENV_HYTHON" sync > /dev/null 2>&1)
94
+ if [ -f "$PROJECT_DIR/.vscode/settings.json" ] && [ -f "$PROJECT_DIR/pyrightconfig.json" ]; then
95
+ echo "✅ PASSED (Created .vscode/settings.json and pyrightconfig.json)"
96
+ else
97
+ echo "❌ FAILED (IntelliSense configs not generated)"
98
+ exit 1
99
+ fi
100
+
101
+ echo "=========================================================="
102
+ echo "🎉 ALL LIVE PYPI INSTALLATION & VERIFICATION TESTS PASSED!"
103
+ echo "=========================================================="
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes