Skip to content
This repository has been archived by the owner on Dec 17, 2024. It is now read-only.
/ edu_archive_dust_v5 Public archive

An archived collection of pre-alpha multipurpose python tools and a demo PyQt5 utility app.

Notifications You must be signed in to change notification settings

gggrv/edu_archive_dust_v5

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Educational Archive "Dust v5"

Please note, that this project is obsolete, and is no longer maintained. No additional documentation will be released. No additional installation support will be provided.

Please note, that the artifacts of this project were used as a basis for several other projects. These new projects address, extend, enhance and fix any issues this project may have had. Please see the dedicated repositories for necessary information.

What is This

Item Description
What is this? A project, saved into git repository, hosted at GitHub website.
What does it contain?
  • Several abstract python tools.
  • Demo app with graphical user interface:
    • Contains small and simple program named "Dust"
    • And big and complex program named "Grimoire"
Whom are they for? For beginner python+Qt developers.
What is the current project status?
  • ✔️Functional.
  • 😴Archived, outdated, no longer maintained.
Why is it obsolete? Because the complex multipurpose multi-license code, developed here, is more useful, when reorganized, simplified and split into several other independent projects.
What is the purpose of this repository? Host an educational archive with working code.
Why is it named like that? small and simple program name was inspired by the real-world dust:
  1. It is small (see followindow),
  2. Floats in air (see followindow),
  3. Present everywhere (see HostApp.py),
  4. Hard to get rid of (see GuiLogHandler class and ExceptionViewer.py),
  5. Beautifully sparkles in the sun (the only positive property).

big and complex program name was inspired by the word "grimoire":
  1. An old and ugly dusty book (it is old and ugly)
  2. With lots of mysterious information (can host metadata)
  3. And unknown unstable magical properties (see data/grimoire/plugins subfolder).

Structure

■─host.pyw (demo app launcher)
■─sparkling (top-level namespace)
  ├─■ common (context-unaware helper classes, functions, usable anywhere)
  ├─■ contech (tools for ConTeXt word processor)
  ├─■ followindow (small and simple PyQt5 program)
  ├─■ grimoire (big and complex PyQt5 program)
  ├─■ host_app (source code of the demo app launcher)
  ├─■ neo4j (tools for Neo4J database)
  └─■ path_eater (obsolete unused PyQt5 widget)

Installation

For the best experience, please use the specific version of the Spyder python IDE. It can be installed via pip install spyder==5.5.6 command.

  1. Clone this repository in a directory of choice.
  2. Navigate to this directory.
  3. Follow this manual in order to:
    1. Create the virtual environment,
    2. Activate this virtual environment,
    3. Make the Spyder work in this virtual environment.
  4. Install the setuptools via the command pip install setuptools into this virtual environment.
  5. Install the dependencies, listed in the requirements.txt, into this virtual environment.
  6. In Spyder, open the menu option "Projects"->"New Project...", select "Existing directory", set "Location" to the dir of the cloned repository and click "Create".
  7. Open the menu option "Tools"->"Preferences", select "Run", set "Working directory settings" to "The current working directory" option.
  8. Make sure that current working dir is the cloned repository dir.

After completing these instructions, the user will be able to use this repository to:

  1. Launch and exlore the small and simple part of the demo app.
  2. Inspect the underlying abstract python tools.

In order to use the big and complex part of this demo app, several additional steps must be completed:

  1. Install the Neo4J desktop server (click to open).
  2. Create a local database, user credentials, etc.

Demo App Usage

The event sequence is as follows:

  1. The user runs the host.pyw file (although it can be launched directly from the file explorer with the doubleclick, it is recommended to run it via IDE at least on the first try — this way the developer will be able to see if any depencencies have failed to set up correctly).
  2. The small and simple program is automatically started.
  3. The user may use this small and simple program to launch the big and complex program.
  4. The user actually uses the small and simple program to launch the big and complex program.
  5. The user explores the big and complex program to their leisure.
  6. The user decides to modify something.
  7. ???
  8. Profit (for me, hopefully).

More on the small and simple program

At any point in time the developer can access the small system tray icon that looks as follows: Image of the tray icon. Right-clickling it will open a dedicated context menu with some default actions.

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

More on the big and complex program

In order to launch it from the small and simple program, hover the grey pixel and swipe down while holding the right mouse button.

On the first ever launch, the following file will be created and opened automatically: data/grimoire/neo4j_settings.yaml. The user is expected to provide valid server credentials.
After this, on the subsequent launches, the grimoire/pyqt5/MainWindow.py widget will be shown.

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.

More information could be found at the following links:
[Dev Info] Dust (click to open) — detailed information regarding the small and simple program and its future.
[Dev Info] Grimoire (click to open) — detailed information regarding the big and complex program and its future.

License

The actual licenses are available at the beginning of each source code file; superficial overview:

  • Abstract python tools for general python development are generally subject to 0BSD.
  • Abstract python tools for PyQt5 are generally subject to GPL v3.
  • Abstract python tools for Neo4J are generally subject to GPL v3.
  • Abstract python tools for ConTeXt are generally subject to 0BSD.
  • The PyQt5 demo app is generally subject to GPL v3.

Any other file is implied to be subject to 0BSD.

About

An archived collection of pre-alpha multipurpose python tools and a demo PyQt5 utility app.

Topics

Resources

Stars

Watchers

Forks

Languages