px-idle 0.1.0__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.
- px_idle-0.1.0/.github/workflows/validation.yml +91 -0
- px_idle-0.1.0/LICENSE +17 -0
- px_idle-0.1.0/MANIFEST.in +6 -0
- px_idle-0.1.0/NOTICE +10 -0
- px_idle-0.1.0/PKG-INFO +121 -0
- px_idle-0.1.0/README.md +101 -0
- px_idle-0.1.0/docs/artifact-inspection.json +14 -0
- px_idle-0.1.0/docs/compatibility-matrix.json +3263 -0
- px_idle-0.1.0/docs/compatibility-matrix.md +54 -0
- px_idle-0.1.0/docs/editor-isolation-evidence.json +78 -0
- px_idle-0.1.0/docs/engineering-research.md +148 -0
- px_idle-0.1.0/docs/initial-linux-results/linux-standalone-3.10-sdist.json +44 -0
- px_idle-0.1.0/docs/initial-linux-results/linux-standalone-3.10-wheel.json +44 -0
- px_idle-0.1.0/docs/initial-linux-results/linux-standalone-3.11-sdist.json +62 -0
- px_idle-0.1.0/docs/initial-linux-results/linux-standalone-3.11-wheel.json +44 -0
- px_idle-0.1.0/docs/initial-linux-results/linux-standalone-3.12-sdist.json +44 -0
- px_idle-0.1.0/docs/initial-linux-results/linux-standalone-3.12-wheel.json +62 -0
- px_idle-0.1.0/docs/initial-linux-results/linux-standalone-3.13-sdist.json +62 -0
- px_idle-0.1.0/docs/initial-linux-results/linux-standalone-3.13-wheel.json +62 -0
- px_idle-0.1.0/docs/initial-linux-results/linux-standalone-3.14-sdist.json +62 -0
- px_idle-0.1.0/docs/initial-linux-results/linux-standalone-3.14-wheel.json +62 -0
- px_idle-0.1.0/docs/initial-linux-results/linux-standalone-3.15-sdist.json +62 -0
- px_idle-0.1.0/docs/initial-linux-results/linux-standalone-3.15-wheel.json +62 -0
- px_idle-0.1.0/docs/legacy-installer-probe.json +17 -0
- px_idle-0.1.0/docs/linux-focus-setup-results/linux-standalone-3.13-wheel.json +45 -0
- px_idle-0.1.0/docs/linux-idle-startup-control.json +6 -0
- px_idle-0.1.0/docs/linux-runtime-provenance.json +50 -0
- px_idle-0.1.0/docs/release-readiness.md +49 -0
- px_idle-0.1.0/docs/requirements-audit.md +42 -0
- px_idle-0.1.0/docs/results/linux-3.14-sdist.json +64 -0
- px_idle-0.1.0/docs/results/linux-3.14-wheel.json +64 -0
- px_idle-0.1.0/docs/results/linux-standalone-3.10-sdist.json +46 -0
- px_idle-0.1.0/docs/results/linux-standalone-3.10-wheel.json +46 -0
- px_idle-0.1.0/docs/results/linux-standalone-3.11-sdist.json +64 -0
- px_idle-0.1.0/docs/results/linux-standalone-3.11-wheel.json +64 -0
- px_idle-0.1.0/docs/results/linux-standalone-3.12-sdist.json +64 -0
- px_idle-0.1.0/docs/results/linux-standalone-3.12-wheel.json +64 -0
- px_idle-0.1.0/docs/results/linux-standalone-3.13-sdist.json +64 -0
- px_idle-0.1.0/docs/results/linux-standalone-3.13-wheel.json +64 -0
- px_idle-0.1.0/docs/results/linux-standalone-3.14-sdist.json +64 -0
- px_idle-0.1.0/docs/results/linux-standalone-3.14-wheel.json +64 -0
- px_idle-0.1.0/docs/results/linux-standalone-3.15-sdist.json +64 -0
- px_idle-0.1.0/docs/results/linux-standalone-3.15-wheel.json +64 -0
- px_idle-0.1.0/docs/results/windows-3.10-sdist.json +64 -0
- px_idle-0.1.0/docs/results/windows-3.10-wheel.json +64 -0
- px_idle-0.1.0/docs/results/windows-3.11-sdist.json +64 -0
- px_idle-0.1.0/docs/results/windows-3.11-wheel.json +64 -0
- px_idle-0.1.0/docs/results/windows-3.12-sdist.json +64 -0
- px_idle-0.1.0/docs/results/windows-3.12-wheel.json +64 -0
- px_idle-0.1.0/docs/results/windows-3.13-sdist.json +64 -0
- px_idle-0.1.0/docs/results/windows-3.13-wheel.json +64 -0
- px_idle-0.1.0/docs/results/windows-3.14-sdist.json +64 -0
- px_idle-0.1.0/docs/results/windows-3.14-wheel.json +64 -0
- px_idle-0.1.0/docs/results/windows-3.15-sdist.json +64 -0
- px_idle-0.1.0/docs/results/windows-3.15-wheel.json +64 -0
- px_idle-0.1.0/docs/results/windows-3.3-sdist.json +64 -0
- px_idle-0.1.0/docs/results/windows-3.3-wheel.json +64 -0
- px_idle-0.1.0/docs/results/windows-3.4-sdist.json +64 -0
- px_idle-0.1.0/docs/results/windows-3.4-wheel.json +64 -0
- px_idle-0.1.0/docs/results/windows-3.5-wheel.json +44 -0
- px_idle-0.1.0/docs/results/windows-3.6-sdist.json +64 -0
- px_idle-0.1.0/docs/results/windows-3.6-wheel.json +64 -0
- px_idle-0.1.0/docs/results/windows-3.7-sdist.json +63 -0
- px_idle-0.1.0/docs/results/windows-3.7-wheel.json +64 -0
- px_idle-0.1.0/docs/results/windows-3.8-sdist.json +63 -0
- px_idle-0.1.0/docs/results/windows-3.8-wheel.json +63 -0
- px_idle-0.1.0/docs/results/windows-3.9-sdist.json +63 -0
- px_idle-0.1.0/docs/results/windows-3.9-wheel.json +63 -0
- px_idle-0.1.0/docs/search-performance.json +13 -0
- px_idle-0.1.0/docs/testpypi.md +37 -0
- px_idle-0.1.0/docs/windows-desktop-results/windows-3.11-sdist.json +46 -0
- px_idle-0.1.0/docs/wslg-results/linux-3.14-sdist.json +63 -0
- px_idle-0.1.0/docs/wslg-results/linux-3.14-wheel.json +63 -0
- px_idle-0.1.0/docs/wslg-results/linux-standalone-3.10-sdist.json +45 -0
- px_idle-0.1.0/docs/wslg-results/linux-standalone-3.10-wheel.json +45 -0
- px_idle-0.1.0/docs/wslg-results/linux-standalone-3.11-sdist.json +45 -0
- px_idle-0.1.0/docs/wslg-results/linux-standalone-3.11-wheel.json +63 -0
- px_idle-0.1.0/docs/wslg-results/linux-standalone-3.12-sdist.json +63 -0
- px_idle-0.1.0/docs/wslg-results/linux-standalone-3.12-wheel.json +63 -0
- px_idle-0.1.0/docs/wslg-results/linux-standalone-3.13-sdist.json +63 -0
- px_idle-0.1.0/docs/wslg-results/linux-standalone-3.13-wheel.json +63 -0
- px_idle-0.1.0/docs/wslg-results/linux-standalone-3.14-sdist.json +63 -0
- px_idle-0.1.0/docs/wslg-results/linux-standalone-3.14-wheel.json +63 -0
- px_idle-0.1.0/docs/wslg-results/linux-standalone-3.15-sdist.json +45 -0
- px_idle-0.1.0/docs/wslg-results/linux-standalone-3.15-wheel.json +63 -0
- px_idle-0.1.0/pyproject.toml +38 -0
- px_idle-0.1.0/research/idle-source-matrix.json +632 -0
- px_idle-0.1.0/scripts/compile_matrix.py +45 -0
- px_idle-0.1.0/scripts/idle_startup_control.py +31 -0
- px_idle-0.1.0/scripts/import_practicals.py +119 -0
- px_idle-0.1.0/scripts/inspect_artifacts.py +45 -0
- px_idle-0.1.0/scripts/linux_probe.py +10 -0
- px_idle-0.1.0/scripts/measure_search.py +21 -0
- px_idle-0.1.0/scripts/obtain_linux_runtimes.py +46 -0
- px_idle-0.1.0/scripts/obtain_windows_runtime.ps1 +44 -0
- px_idle-0.1.0/scripts/prepare_linux.sh +14 -0
- px_idle-0.1.0/scripts/prepare_xvfb.sh +10 -0
- px_idle-0.1.0/scripts/probe_legacy_install.py +28 -0
- px_idle-0.1.0/scripts/research_idle.py +53 -0
- px_idle-0.1.0/scripts/tk_undo_control.py +26 -0
- px_idle-0.1.0/scripts/validate_artifact.py +112 -0
- px_idle-0.1.0/scripts/validate_linux.sh +13 -0
- px_idle-0.1.0/scripts/validate_linux_standalone.py +77 -0
- px_idle-0.1.0/scripts/validate_linux_xvfb.py +50 -0
- px_idle-0.1.0/scripts/validate_windows_desktop.py +36 -0
- px_idle-0.1.0/scripts/validate_windows_matrix.py +25 -0
- px_idle-0.1.0/scripts/verify_editor_isolation.py +33 -0
- px_idle-0.1.0/setup.cfg +4 -0
- px_idle-0.1.0/setup.py +32 -0
- px_idle-0.1.0/src/PxIdle.py +2 -0
- px_idle-0.1.0/src/px_idle/__init__.py +2 -0
- px_idle-0.1.0/src/px_idle/__main__.py +2 -0
- px_idle-0.1.0/src/px_idle/cli.py +38 -0
- px_idle-0.1.0/src/px_idle/compat.py +100 -0
- px_idle-0.1.0/src/px_idle/extension.py +175 -0
- px_idle-0.1.0/src/px_idle/installer.py +102 -0
- px_idle-0.1.0/src/px_idle/plan.py +63 -0
- px_idle-0.1.0/src/px_idle/popup.py +67 -0
- px_idle-0.1.0/src/px_idle/practicals/assets/P01_Inverted_Index/inverted_index_posting.py +47 -0
- px_idle-0.1.0/src/px_idle/practicals/assets/P02_Retrieval_Models/boolean_retrieval.py +79 -0
- px_idle-0.1.0/src/px_idle/practicals/assets/P02_Retrieval_Models/vector_space_tfidf.py +126 -0
- px_idle-0.1.0/src/px_idle/practicals/assets/P03_Spelling_Correction/edit_distance_spelling.py +31 -0
- px_idle-0.1.0/src/px_idle/practicals/assets/P04_Evaluation_Metrics/precision_recall.py +84 -0
- px_idle-0.1.0/src/px_idle/practicals/assets/P05_Text_Categorization/naive_bayes_text_classification.py +120 -0
- px_idle-0.1.0/src/px_idle/practicals/assets/P06_KMeans_Clustering/kmeans_clustering.py +65 -0
- px_idle-0.1.0/src/px_idle/practicals/assets/P07_Web_Crawler/web_crawler_robots.py +85 -0
- px_idle-0.1.0/src/px_idle/practicals/assets/P08_Link_Analysis/hits_algorithm.py +73 -0
- px_idle-0.1.0/src/px_idle/practicals/assets/P08_Link_Analysis/pagerank.py +56 -0
- px_idle-0.1.0/src/px_idle/practicals/assets/P09_RankSVM/rank_svm.py +105 -0
- px_idle-0.1.0/src/px_idle/practicals/assets/P10_Advanced_IR/extractive_summarization.py +37 -0
- px_idle-0.1.0/src/px_idle/practicals/assets/P10_Advanced_IR/question_answering.py +30 -0
- px_idle-0.1.0/src/px_idle/practicals/registry.json +630 -0
- px_idle-0.1.0/src/px_idle/registry.py +49 -0
- px_idle-0.1.0/src/px_idle/search.py +46 -0
- px_idle-0.1.0/src/px_idle/trigger.py +11 -0
- px_idle-0.1.0/src/px_idle/verified-environments.json +110 -0
- px_idle-0.1.0/src/px_idle.egg-info/PKG-INFO +121 -0
- px_idle-0.1.0/src/px_idle.egg-info/SOURCES.txt +143 -0
- px_idle-0.1.0/src/px_idle.egg-info/dependency_links.txt +1 -0
- px_idle-0.1.0/src/px_idle.egg-info/entry_points.txt +2 -0
- px_idle-0.1.0/src/px_idle.egg-info/top_level.txt +2 -0
- px_idle-0.1.0/tests/test_core.py +108 -0
- px_idle-0.1.0/tests/test_idle_gui.py +236 -0
- px_idle-0.1.0/tests/test_importer.py +40 -0
- px_idle-0.1.0/tests/test_legacy_core.py +77 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
name: Artifact and real IDLE validation
|
|
2
|
+
on: [push, pull_request, workflow_dispatch]
|
|
3
|
+
jobs:
|
|
4
|
+
modern:
|
|
5
|
+
strategy:
|
|
6
|
+
fail-fast: false
|
|
7
|
+
matrix:
|
|
8
|
+
os: [windows-latest, ubuntu-latest, macos-latest]
|
|
9
|
+
python: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14']
|
|
10
|
+
runs-on: ${{ matrix.os }}
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v4
|
|
13
|
+
- uses: actions/setup-python@v6
|
|
14
|
+
with:
|
|
15
|
+
python-version: ${{ matrix.python }}
|
|
16
|
+
- if: runner.os == 'Linux'
|
|
17
|
+
run: sudo apt-get update && sudo apt-get install -y python3-tk xvfb
|
|
18
|
+
- run: python -m pip install build twine
|
|
19
|
+
- run: python -m build
|
|
20
|
+
- run: python scripts/inspect_artifacts.py
|
|
21
|
+
- run: python -m twine check dist/*
|
|
22
|
+
- if: runner.os != 'Linux'
|
|
23
|
+
run: python scripts/validate_artifact.py --artifact dist/px_idle-0.1.0-py3-none-any.whl --output docs/results/ci-wheel.json
|
|
24
|
+
- if: runner.os == 'Linux'
|
|
25
|
+
run: xvfb-run -a python scripts/validate_artifact.py --artifact dist/px_idle-0.1.0-py3-none-any.whl --output docs/results/ci-wheel.json
|
|
26
|
+
- if: runner.os != 'Linux'
|
|
27
|
+
run: python scripts/validate_artifact.py --artifact dist/px_idle-0.1.0.tar.gz --output docs/results/ci-sdist.json
|
|
28
|
+
- if: runner.os == 'Linux'
|
|
29
|
+
run: xvfb-run -a python scripts/validate_artifact.py --artifact dist/px_idle-0.1.0.tar.gz --output docs/results/ci-sdist.json
|
|
30
|
+
- uses: actions/upload-artifact@v4
|
|
31
|
+
if: always()
|
|
32
|
+
with:
|
|
33
|
+
name: evidence-${{ matrix.os }}-${{ matrix.python }}
|
|
34
|
+
path: docs/results/
|
|
35
|
+
prerelease:
|
|
36
|
+
continue-on-error: true
|
|
37
|
+
runs-on: windows-latest
|
|
38
|
+
steps:
|
|
39
|
+
- uses: actions/checkout@v4
|
|
40
|
+
- uses: actions/setup-python@v6
|
|
41
|
+
with:
|
|
42
|
+
python-version: '3.15-dev'
|
|
43
|
+
allow-prereleases: true
|
|
44
|
+
- run: python -m pip install build
|
|
45
|
+
- run: python -m build
|
|
46
|
+
- run: python scripts/validate_artifact.py --artifact dist/px_idle-0.1.0-py3-none-any.whl --output docs/results/ci-prerelease.json
|
|
47
|
+
- uses: actions/upload-artifact@v4
|
|
48
|
+
if: always()
|
|
49
|
+
with:
|
|
50
|
+
name: prerelease-evidence
|
|
51
|
+
path: docs/results/
|
|
52
|
+
legacy:
|
|
53
|
+
runs-on: windows-latest
|
|
54
|
+
strategy:
|
|
55
|
+
fail-fast: false
|
|
56
|
+
matrix:
|
|
57
|
+
python: ['3.3.5', '3.4.4', '3.6.8', '3.7.9', '3.8.10']
|
|
58
|
+
steps:
|
|
59
|
+
- uses: actions/checkout@v4
|
|
60
|
+
- uses: actions/setup-python@v6
|
|
61
|
+
with:
|
|
62
|
+
python-version: '3.13'
|
|
63
|
+
- run: python -m pip install build
|
|
64
|
+
- run: python -m build
|
|
65
|
+
- run: python -m pip download --no-deps --dest .runtimes/legacy-tools pip==9.0.3 setuptools==39.2.0 wheel==0.29.0
|
|
66
|
+
- shell: pwsh
|
|
67
|
+
run: |
|
|
68
|
+
New-Item -ItemType Directory -Force .runtimes/wix | Out-Null
|
|
69
|
+
Invoke-WebRequest https://github.com/wixtoolset/wix3/releases/download/wix3141rtm/wix314-binaries.zip -OutFile .runtimes/wix/wix.zip
|
|
70
|
+
Expand-Archive .runtimes/wix/wix.zip .runtimes/wix -Force
|
|
71
|
+
./scripts/obtain_windows_runtime.ps1 -Version '${{ matrix.python }}'
|
|
72
|
+
- run: python scripts/validate_artifact.py --python .runtimes/${{ matrix.python }}/python/python.exe --artifact dist/px_idle-0.1.0-py3-none-any.whl --output docs/results/ci-legacy-wheel.json
|
|
73
|
+
- run: python scripts/validate_artifact.py --python .runtimes/${{ matrix.python }}/python/python.exe --artifact dist/px_idle-0.1.0.tar.gz --output docs/results/ci-legacy-sdist.json
|
|
74
|
+
- uses: actions/upload-artifact@v4
|
|
75
|
+
if: always()
|
|
76
|
+
with:
|
|
77
|
+
name: legacy-${{ matrix.python }}
|
|
78
|
+
path: docs/results/
|
|
79
|
+
fidelity:
|
|
80
|
+
runs-on: ubuntu-latest
|
|
81
|
+
steps:
|
|
82
|
+
- uses: actions/checkout@v4
|
|
83
|
+
- uses: actions/setup-python@v6
|
|
84
|
+
with:
|
|
85
|
+
python-version: '3.13'
|
|
86
|
+
- run: git clone https://github.com/mcc-exam/src.git upstream
|
|
87
|
+
- run: git -C upstream checkout a44c65dee9eadf37310a54bcbc90fe78df2289f3
|
|
88
|
+
- run: python -m pip install .
|
|
89
|
+
- run: python -m unittest discover -s tests -p test_core.py -v
|
|
90
|
+
- run: python scripts/import_practicals.py upstream --output regenerated
|
|
91
|
+
- run: diff -r src/px_idle/practicals regenerated
|
px_idle-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
px-idle local-use license
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 the project owner. All rights reserved.
|
|
4
|
+
|
|
5
|
+
The project owner authorizes distribution of this package through PyPI and
|
|
6
|
+
TestPyPI. Recipients may download, install, and use px-idle locally, including
|
|
7
|
+
inserting, editing, and executing its bundled practical code for local use.
|
|
8
|
+
No permission is granted to recipients to redistribute, republish, sublicense,
|
|
9
|
+
or repackage the extension or bundled practical content. All other rights are
|
|
10
|
+
reserved by the project owner.
|
|
11
|
+
|
|
12
|
+
The project owner confirmed ownership of mcc-exam/src and selected
|
|
13
|
+
"Keep all rights reserved; local use only" and authorized PyPI publication on
|
|
14
|
+
2026-10-07. These terms retain that local-use restriction while permitting the
|
|
15
|
+
owner's requested public package distribution.
|
|
16
|
+
This notice does not alter the licenses of Python or other separately installed
|
|
17
|
+
software, which are not bundled in this distribution.
|
px_idle-0.1.0/NOTICE
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
Practical source is taken verbatim (UTF-8 and LF normalization only) from
|
|
2
|
+
https://github.com/mcc-exam/src.git
|
|
3
|
+
commit a44c65dee9eadf37310a54bcbc90fe78df2289f3.
|
|
4
|
+
|
|
5
|
+
The upstream snapshot contains no license file. The project owner confirmed
|
|
6
|
+
ownership and selected all rights reserved, local use only on 2026-10-07.
|
|
7
|
+
The LICENSE in this distribution records that local-use restriction for both
|
|
8
|
+
the extension and bundled practicals. No practical code is executed by px-idle.
|
|
9
|
+
The owner subsequently authorized PyPI publication; recipients' redistribution
|
|
10
|
+
rights remain reserved.
|
px_idle-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: px-idle
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Offline keyword-driven practical-code expansion for Python IDLE Editors
|
|
5
|
+
License-Expression: LicenseRef-PxIdle-Local-Use
|
|
6
|
+
Project-URL: Practical Source, https://github.com/mcc-exam/src
|
|
7
|
+
Classifier: Development Status :: 3 - Alpha
|
|
8
|
+
Classifier: Environment :: Other Environment
|
|
9
|
+
Classifier: Intended Audience :: Education
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.3
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
14
|
+
Classifier: Topic :: Text Editors :: Integrated Development Environments (IDE)
|
|
15
|
+
Requires-Python: !=3.5.4,>=3.3
|
|
16
|
+
Description-Content-Type: text/markdown
|
|
17
|
+
License-File: LICENSE
|
|
18
|
+
License-File: NOTICE
|
|
19
|
+
Dynamic: license-file
|
|
20
|
+
|
|
21
|
+
# px-idle
|
|
22
|
+
|
|
23
|
+
Offline practical-code expansion inside normal Python IDLE Editor windows.
|
|
24
|
+
Type `#>` on a dedicated comment line to discover the complete catalogue, or
|
|
25
|
+
`#>spell` to filter it. Up/Down navigate, Enter or Tab insert, Escape dismisses.
|
|
26
|
+
The exact bundled source replaces the active trigger directly in the Text buffer
|
|
27
|
+
as one undo operation. Each editor has an independent popup. Shell is excluded.
|
|
28
|
+
|
|
29
|
+
## Local installation
|
|
30
|
+
|
|
31
|
+
The owner of this project and the upstream practical repository selected all
|
|
32
|
+
rights reserved, local use only, and authorized distribution through PyPI.
|
|
33
|
+
Recipients may install and use the package locally; redistribution rights are
|
|
34
|
+
reserved. See LICENSE. Publication awaits configured account access and
|
|
35
|
+
TestPyPI verification. Until then, install the local wheel:
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
python -m pip install dist/px_idle-0.1.0-py3-none-any.whl
|
|
39
|
+
px-idle install
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Use the same Python installation to launch IDLE. Restart IDLE after registration.
|
|
43
|
+
Registration is explicit; pip installation never modifies your IDLE settings.
|
|
44
|
+
|
|
45
|
+
`px-idle status` reports registration. `px-idle doctor` checks Python, Tk, IDLE,
|
|
46
|
+
shim import and all bundled source hashes. `px-idle uninstall` removes only
|
|
47
|
+
PxIdle configuration sections; it leaves the Python package installed.
|
|
48
|
+
Use `--config-dir DIRECTORY` for an isolated test configuration. Existing
|
|
49
|
+
configuration is backed up before mutation and written atomically; malformed
|
|
50
|
+
configuration is backed up and left unchanged.
|
|
51
|
+
|
|
52
|
+
## Source and offline behavior
|
|
53
|
+
|
|
54
|
+
13 source entries from [mcc-exam/src](https://github.com/mcc-exam/src), snapshot
|
|
55
|
+
`a44c65dee9eadf37310a54bcbc90fe78df2289f3`, are bundled. See
|
|
56
|
+
[the audit](docs/engineering-research.md) and generated registry for mappings,
|
|
57
|
+
aliases, imports and resource requirements. No git, internet, clipboard or
|
|
58
|
+
third-party runtime packages are required for expansion. px-idle never executes
|
|
59
|
+
practicals. Their own execution may require matplotlib, numpy, networkx,
|
|
60
|
+
requests/beautifulsoup4, scikit-learn, nltk or NLTK punkt_tab data; the crawler
|
|
61
|
+
itself uses the internet. These dependencies are not installed by px-idle.
|
|
62
|
+
|
|
63
|
+
## Compatibility and limitations
|
|
64
|
+
|
|
65
|
+
Requires-Python is `>=3.3,!=3.5.4`, based on actual Python 3.3.5 installation
|
|
66
|
+
and IDLE tests. Runtime syntax deliberately avoids post-3.3 features. Source research
|
|
67
|
+
covers 2.7 and every 3.0–3.15 generation; it does not prove runtime compatibility.
|
|
68
|
+
See `research/idle-source-matrix.json` for primary-source evidence.
|
|
69
|
+
Exact executed Windows environments are listed below. Every passing row includes
|
|
70
|
+
wheel installation, CLI lifecycle, the actual IDLE loader and Editor, popup
|
|
71
|
+
controls, source insertion, undo, repeat expansion, real Shell exclusion,
|
|
72
|
+
multiple editors and safe uninstall. Full artifact results, including sdist
|
|
73
|
+
tests and Linux evidence, are in [the matrix](docs/compatibility-matrix.md) and
|
|
74
|
+
its machine-readable JSON. Metadata's minimum does not assert that untested
|
|
75
|
+
patch releases or operating systems have passed.
|
|
76
|
+
|
|
77
|
+
| Python on Windows 11 | Tk | Result / tier |
|
|
78
|
+
| --- | --- | --- |
|
|
79
|
+
| 3.3.5 | 8.5.11 | Passed / legacy |
|
|
80
|
+
| 3.4.4 | 8.6.1 | Passed / legacy |
|
|
81
|
+
| 3.5.4 | 8.6.4 | Unsupported: native IDLE undo segfault, also without px-idle |
|
|
82
|
+
| 3.6.8 | 8.6.6 | Passed / legacy |
|
|
83
|
+
| 3.7.9 | 8.6.9 | Passed / legacy |
|
|
84
|
+
| 3.8.10 | 8.6.9 | Passed / extended |
|
|
85
|
+
| 3.9.13 | 8.6.12 | Passed / extended |
|
|
86
|
+
| 3.10.11 | 8.6.12 | Passed / primary |
|
|
87
|
+
| 3.11.9 | 8.6.12 | Passed / primary |
|
|
88
|
+
| 3.12.10 | 8.6.15 | Passed / primary |
|
|
89
|
+
| 3.13.14 | 8.6.15 | Passed / primary |
|
|
90
|
+
| 3.14.8 | 9.0.4 | Passed / primary |
|
|
91
|
+
| 3.15.0rc3 | 9.0.4 | Passed / experimental prerelease |
|
|
92
|
+
|
|
93
|
+
Python 2.7 and 3.0–3.2 are unsupported. macOS and CPython main have no executed
|
|
94
|
+
runtime evidence here. Configured CI jobs do not count as observed passes.
|
|
95
|
+
Linux tests use Ubuntu WSL with WSLg or isolated Xvfb (recorded per run), with
|
|
96
|
+
distro Python 3.14.4/Tk 8.6.17 and
|
|
97
|
+
portable Python 3.11.17, 3.12.15, 3.13.16, 3.14.8 and 3.15.0rc3/Tk 9.0.4.
|
|
98
|
+
The portable Linux Python 3.10.22/Tk 9.0.4 build fails native IDLE startup even
|
|
99
|
+
with px-idle unregistered and is unsupported. Consult the matrix for each
|
|
100
|
+
artifact result; a Python version alone does not identify a tested Tk environment.
|
|
101
|
+
Old pip installation uses a small setup.py fallback justified by an actual
|
|
102
|
+
pip 9 sdist failure. Build tooling runs on modern Python; runtime has no external
|
|
103
|
+
dependencies. A tested local wheel is the legacy fallback. See
|
|
104
|
+
[publication status](docs/testpypi.md).
|
|
105
|
+
|
|
106
|
+
Triggers activate only on a line containing optional whitespace and `#>query`.
|
|
107
|
+
Normal comments and inline strings do not activate. Existing IDLE STRING tags
|
|
108
|
+
suppress multiline string triggers; delayed coloring is a known limitation to
|
|
109
|
+
be checked in GUI tests. Companion files require a saved primary file with the
|
|
110
|
+
matching original filename. Existing meaningful content is never overwritten.
|
|
111
|
+
The current catalogue has no companion files. Source fidelity takes priority
|
|
112
|
+
over modernization: practical syntax may require a newer Python than expansion.
|
|
113
|
+
|
|
114
|
+
## Development
|
|
115
|
+
|
|
116
|
+
Fetch the authoritative repository into `upstream/` and run
|
|
117
|
+
`python scripts/import_practicals.py upstream`. The importer reads data and ASTs,
|
|
118
|
+
never imports or runs repository scripts. Run `python -m unittest discover -s tests`.
|
|
119
|
+
Build using `python -m build`, inspect with `python -m twine check dist/*`, then
|
|
120
|
+
test each built artifact in a clean environment. Public upload must follow
|
|
121
|
+
TestPyPI validation first. Unexecuted CI jobs are never recorded as passes.
|
px_idle-0.1.0/README.md
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# px-idle
|
|
2
|
+
|
|
3
|
+
Offline practical-code expansion inside normal Python IDLE Editor windows.
|
|
4
|
+
Type `#>` on a dedicated comment line to discover the complete catalogue, or
|
|
5
|
+
`#>spell` to filter it. Up/Down navigate, Enter or Tab insert, Escape dismisses.
|
|
6
|
+
The exact bundled source replaces the active trigger directly in the Text buffer
|
|
7
|
+
as one undo operation. Each editor has an independent popup. Shell is excluded.
|
|
8
|
+
|
|
9
|
+
## Local installation
|
|
10
|
+
|
|
11
|
+
The owner of this project and the upstream practical repository selected all
|
|
12
|
+
rights reserved, local use only, and authorized distribution through PyPI.
|
|
13
|
+
Recipients may install and use the package locally; redistribution rights are
|
|
14
|
+
reserved. See LICENSE. Publication awaits configured account access and
|
|
15
|
+
TestPyPI verification. Until then, install the local wheel:
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
python -m pip install dist/px_idle-0.1.0-py3-none-any.whl
|
|
19
|
+
px-idle install
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Use the same Python installation to launch IDLE. Restart IDLE after registration.
|
|
23
|
+
Registration is explicit; pip installation never modifies your IDLE settings.
|
|
24
|
+
|
|
25
|
+
`px-idle status` reports registration. `px-idle doctor` checks Python, Tk, IDLE,
|
|
26
|
+
shim import and all bundled source hashes. `px-idle uninstall` removes only
|
|
27
|
+
PxIdle configuration sections; it leaves the Python package installed.
|
|
28
|
+
Use `--config-dir DIRECTORY` for an isolated test configuration. Existing
|
|
29
|
+
configuration is backed up before mutation and written atomically; malformed
|
|
30
|
+
configuration is backed up and left unchanged.
|
|
31
|
+
|
|
32
|
+
## Source and offline behavior
|
|
33
|
+
|
|
34
|
+
13 source entries from [mcc-exam/src](https://github.com/mcc-exam/src), snapshot
|
|
35
|
+
`a44c65dee9eadf37310a54bcbc90fe78df2289f3`, are bundled. See
|
|
36
|
+
[the audit](docs/engineering-research.md) and generated registry for mappings,
|
|
37
|
+
aliases, imports and resource requirements. No git, internet, clipboard or
|
|
38
|
+
third-party runtime packages are required for expansion. px-idle never executes
|
|
39
|
+
practicals. Their own execution may require matplotlib, numpy, networkx,
|
|
40
|
+
requests/beautifulsoup4, scikit-learn, nltk or NLTK punkt_tab data; the crawler
|
|
41
|
+
itself uses the internet. These dependencies are not installed by px-idle.
|
|
42
|
+
|
|
43
|
+
## Compatibility and limitations
|
|
44
|
+
|
|
45
|
+
Requires-Python is `>=3.3,!=3.5.4`, based on actual Python 3.3.5 installation
|
|
46
|
+
and IDLE tests. Runtime syntax deliberately avoids post-3.3 features. Source research
|
|
47
|
+
covers 2.7 and every 3.0–3.15 generation; it does not prove runtime compatibility.
|
|
48
|
+
See `research/idle-source-matrix.json` for primary-source evidence.
|
|
49
|
+
Exact executed Windows environments are listed below. Every passing row includes
|
|
50
|
+
wheel installation, CLI lifecycle, the actual IDLE loader and Editor, popup
|
|
51
|
+
controls, source insertion, undo, repeat expansion, real Shell exclusion,
|
|
52
|
+
multiple editors and safe uninstall. Full artifact results, including sdist
|
|
53
|
+
tests and Linux evidence, are in [the matrix](docs/compatibility-matrix.md) and
|
|
54
|
+
its machine-readable JSON. Metadata's minimum does not assert that untested
|
|
55
|
+
patch releases or operating systems have passed.
|
|
56
|
+
|
|
57
|
+
| Python on Windows 11 | Tk | Result / tier |
|
|
58
|
+
| --- | --- | --- |
|
|
59
|
+
| 3.3.5 | 8.5.11 | Passed / legacy |
|
|
60
|
+
| 3.4.4 | 8.6.1 | Passed / legacy |
|
|
61
|
+
| 3.5.4 | 8.6.4 | Unsupported: native IDLE undo segfault, also without px-idle |
|
|
62
|
+
| 3.6.8 | 8.6.6 | Passed / legacy |
|
|
63
|
+
| 3.7.9 | 8.6.9 | Passed / legacy |
|
|
64
|
+
| 3.8.10 | 8.6.9 | Passed / extended |
|
|
65
|
+
| 3.9.13 | 8.6.12 | Passed / extended |
|
|
66
|
+
| 3.10.11 | 8.6.12 | Passed / primary |
|
|
67
|
+
| 3.11.9 | 8.6.12 | Passed / primary |
|
|
68
|
+
| 3.12.10 | 8.6.15 | Passed / primary |
|
|
69
|
+
| 3.13.14 | 8.6.15 | Passed / primary |
|
|
70
|
+
| 3.14.8 | 9.0.4 | Passed / primary |
|
|
71
|
+
| 3.15.0rc3 | 9.0.4 | Passed / experimental prerelease |
|
|
72
|
+
|
|
73
|
+
Python 2.7 and 3.0–3.2 are unsupported. macOS and CPython main have no executed
|
|
74
|
+
runtime evidence here. Configured CI jobs do not count as observed passes.
|
|
75
|
+
Linux tests use Ubuntu WSL with WSLg or isolated Xvfb (recorded per run), with
|
|
76
|
+
distro Python 3.14.4/Tk 8.6.17 and
|
|
77
|
+
portable Python 3.11.17, 3.12.15, 3.13.16, 3.14.8 and 3.15.0rc3/Tk 9.0.4.
|
|
78
|
+
The portable Linux Python 3.10.22/Tk 9.0.4 build fails native IDLE startup even
|
|
79
|
+
with px-idle unregistered and is unsupported. Consult the matrix for each
|
|
80
|
+
artifact result; a Python version alone does not identify a tested Tk environment.
|
|
81
|
+
Old pip installation uses a small setup.py fallback justified by an actual
|
|
82
|
+
pip 9 sdist failure. Build tooling runs on modern Python; runtime has no external
|
|
83
|
+
dependencies. A tested local wheel is the legacy fallback. See
|
|
84
|
+
[publication status](docs/testpypi.md).
|
|
85
|
+
|
|
86
|
+
Triggers activate only on a line containing optional whitespace and `#>query`.
|
|
87
|
+
Normal comments and inline strings do not activate. Existing IDLE STRING tags
|
|
88
|
+
suppress multiline string triggers; delayed coloring is a known limitation to
|
|
89
|
+
be checked in GUI tests. Companion files require a saved primary file with the
|
|
90
|
+
matching original filename. Existing meaningful content is never overwritten.
|
|
91
|
+
The current catalogue has no companion files. Source fidelity takes priority
|
|
92
|
+
over modernization: practical syntax may require a newer Python than expansion.
|
|
93
|
+
|
|
94
|
+
## Development
|
|
95
|
+
|
|
96
|
+
Fetch the authoritative repository into `upstream/` and run
|
|
97
|
+
`python scripts/import_practicals.py upstream`. The importer reads data and ASTs,
|
|
98
|
+
never imports or runs repository scripts. Run `python -m unittest discover -s tests`.
|
|
99
|
+
Build using `python -m build`, inspect with `python -m twine check dist/*`, then
|
|
100
|
+
test each built artifact in a clean environment. Public upload must follow
|
|
101
|
+
TestPyPI validation first. Unexecuted CI jobs are never recorded as passes.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"artifact": "px_idle-0.1.0-py3-none-any.whl",
|
|
4
|
+
"sha256": "8b2be7e0edc374e819ecdad7419b5341cf25e30f09b738ef82efa42365c0e8a2",
|
|
5
|
+
"assets": 13,
|
|
6
|
+
"inspection": "passed"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"artifact": "px_idle-0.1.0.tar.gz",
|
|
10
|
+
"sha256": "f5e5becbebc6155734450320aa5ef1311441128e07adebb681129871f9836f33",
|
|
11
|
+
"assets": 13,
|
|
12
|
+
"inspection": "passed"
|
|
13
|
+
}
|
|
14
|
+
]
|