Author: Marvin Schubert
License: MIT
The Prompting Assistant is a PySide6-based GUI tool for:
- Scanning a selected folder and building an ASCII tree of its contents.
- Optionally skipping well-known virtual environment folders (
venv
,.venv
, etc.). - Optionally extracting class definitions from
.py
files. - Optionally extracting full content from Dockerfiles or
.toml
files. - Displaying all results in the GUI, including progress updates, and allowing the user to copy the output.
- Non-blocking Scanning:
Uses a background worker (ScanWorker
viaQThread
) so large folder scans won’t freeze the UI. - Configurable Settings:
Users can toggle.py
content, Dockerfiles,.toml
display, and skip venv folders. - Caching:
If the same folder is re-scanned with the same relevant settings, results are loaded from cache, saving time. - Theme Support:
A simple “Dark” or “Light” theme can be applied.
- Clone this repository:
git clone https://github.com/your-username/prompting-assistant.git
- Create and activate a virtual environment (optional but recommended):
python -m venv .venv source .venv/bin/activate # or .venv\Scripts\activate on Windows
- Install dependencies (using Poetry or pip):
- Using Poetry:
poetry install
- Using pip (if you’re not using
pyproject.toml
):pip install PySide6
- Using Poetry:
- Run the application:
python main.py
- Click “Select Path” and choose a folder to scan.
- Adjust Settings (e.g., Show .py Content, Skip venv) before or after scanning.
- The results appear in the main text area, and you can copy them to the clipboard.
- To run tests with pytest:
pytest tests/
- Partial File Reading for very large files (currently we read them fully).
- More Parsers: You can easily add additional parser services (e.g., for
.yaml
,.json
). - Robust Logging: Already partially implemented, but can be expanded (logging to file, etc.).
- Advanced Error Handling: E.g., show user-friendly dialogs for permission errors.
© 2025, Marvin Schubert. All rights reserved.
Feel free to adapt the license and usage instructions as needed.