/edu_archive_dust_v5

(Archive) demo PyQt5 utility app + multipurpose python tools.

Primary LanguagePython

Educational Archive "Dust v5"

Note: This project is archived and no longer maintained. No additional documentation or installation support will be provided.

The components of this project have been used as a foundation for several newer projects that address, extend, and enhance parts of its functionality. Please refer to their respective repositories for newer information.

This readme document was optimised with AI.

Homepage for "Dust" | Homepage for "Grimoire"

What is This

Item Description
What is this? A GitHub repository containing Python tools and two-in-one demo applications.
Contents - Abstract Python tools
- Demo GUI applications:
- "Dust" (small and simple).
- "Grimoire" (large and complex).
Target Audience Beginner Python and Qt developers
Project Status ✔️ Functional and archived
😴 No longer maintained
Purpose Educational archive with working code examples
Name Origin - "Dust" refers to its small, floating nature (see followindow).
- "Grimoire" refers to its ugly, complex, metadata-rich nature.

Structure

■ host.pyw (demo application launcher)
■ sparkling (main package)
  ├─■ common (general-purpose helper classes and functions)
  ├─■ contech (ConTeXt word processor tools)
  ├─■ followindow (Dust program - simple PyQt5 application)
  ├─■ grimoire (Grimoire program - complex PyQt5 application)
  ├─■ host_app (launcher source code)
  ├─■ neo4j (Neo4J database tools)
  └─■ path_eater (deprecated PyQt5 widget)

Installation

This project is best used with Visual Studio Code (VS Code).

  1. Clone this repository
  2. Open the folder in VS Code
  3. Set up Python environment:
    • Create virtual environment: python -m venv .virtual_env
    • Select the interpreter: VS Code Command Palette → "Python: Select Interpreter" → Enter path
  4. Install dependencies:
    pip install setuptools
    pip install -r requirements.txt
    

For the basic features (Dust program), this is all you need.

For the advanced features (Grimoire program), also:

  1. Install Neo4J Desktop Server
  2. Set up a local database with appropriate credentials

Usage

  1. Run host.pyw through VS Code (recommended for first run to catch any setup issues)
  2. The Dust program starts automatically
  3. Use Dust to launch Grimoire when needed
  4. Explore both applications' features

Dust Program

A system tray icon (Tray icon) provides access to the program. Right-click for available actions.

Demo Videos

Function Usage
  • Launch
  • Hover
  • Input correct gesture
  • Encounter errors
If the video does not render, please see docs/followindow_errors.mp4
  • Input unknown gesture
If the video does not render, please see docs/followindow_help.mp4

Grimoire Program

To launch: In Dust, hover over the grey pixel and swipe down with the right mouse button.

First launch:

  • Creates and opens data/grimoire/neo4j_settings.yaml
  • Enter your Neo4J server credentials

On the subsequent launches, the grimoire/pyqt5/MainWindow.py widget will be shown.

Demo Videos

Function Usage
  • Launch
  • Create one new "playlist"
If the video does not render, please see docs/grimoire_new_playlist.mp4
  • Edit multiple items
  • Encounter errors
If the video does not render, please see docs/grimoire_edit_multiple_simple.mp4
  • auto_query VS manual "playlist" content editing
  • parsing line
  • FileRenamer
If the video does not render, please see docs/grimoire_edit_complex.mp4
  • Add/remove plugins
  1. Start editing the "playlist"
  2. Create reserved field named plugins
  3. Add/remove your plugin name as value
  4. Save changes, close the editor
  5. Open the "playlist"
  6. Right-click to see context menus
  7. See your plugin functionality in the context menu.

Purpose

This is a highly experimental GUI demo app that allowed the developer to learn the basics of the Qt library via python. Additionally, it acted as a stress-test for the underlying abstract python tools, software project structure and project management approaches.

Licenses

License details are provided in each source file. Overview:

  • General Python tools: 0BSD
  • PyQt5-related tools: GPL v3
  • Neo4J tools: GPL v3
  • ConTeXt tools: 0BSD
  • Demo applications: GPL v3
  • All other files: implied 0BSD