Project Structure¶
Overall Structure¶
The files in the directory tree below are labeled as follows:
Symbol | Meaning |
---|---|
RE | Required for each new version |
RF | Required the first time |
R | Reserved file names |
Root directory of project
├── <general code files>
├── .pyautodownloads/ **R**
├── <an entry point file that creates the launcher object>
├── filelist.txt **RF**
├── project.zip (can be changed) **R**
├── version.txt **RE**
└── version_check.log **R**
The code starts from an entry point file that initializes the
Launcher
object.
Note
The entry point file currently cannot be replaced by the update process. While this functionality may be added in a future version, please try to avoid making changes that would require updating the entry point file.
Special Files¶
filelist.txt¶
This file contains the list of file paths to be removed after the update process. For example, for a directory structure such as
directory-of-program
├── res
│ └── logo.png
├── src
│ ├── module.py
│ └── ui.py
├── test
│ └── unit_test.py
├── filelist.txt
├── init.py
└── README.txt
The contents of filelist.txt
would be
res/logo.png
src/module.py
src/ui.py
test/unit_test.py
init.py
README.txt
The developer must include this file with the initial installer.
The update process will automatically generate a new filelist.txt
during
the update process.
project.zip (or equivalent)¶
This is the downloaded archive containing the new files.
.pyautodownloads/¶
This temporary directory contains the downloaded new files. The directory will be emptied after the update.
version.txt¶
This file contains a PEP 440 version number for the code. The local copy is compared with the server version to check if an update is necessary.
version_check.log¶
This file records when the server was contacted to check for updates. Each line has one of the following formats:
|Old <old version number>|New <new version number>|Time <timestamp>
|Old <old version number>|Up to date|Time <timestamp>
|Old <old version number>|Server Invalid|Time <timestamp>