packer-release 0.23.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.
Files changed (45) hide show
  1. packer_release-0.23.0/LICENSE +21 -0
  2. packer_release-0.23.0/PKG-INFO +151 -0
  3. packer_release-0.23.0/README.md +125 -0
  4. packer_release-0.23.0/pyproject.toml +42 -0
  5. packer_release-0.23.0/setup.cfg +4 -0
  6. packer_release-0.23.0/src/packer/__init__.py +7 -0
  7. packer_release-0.23.0/src/packer/actions.py +25 -0
  8. packer_release-0.23.0/src/packer/assets/RELEASE.md +70 -0
  9. packer_release-0.23.0/src/packer/assets/audio/sounds/new notification 1.wav +0 -0
  10. packer_release-0.23.0/src/packer/assets/audio/sounds/new notification 2.wav +0 -0
  11. packer_release-0.23.0/src/packer/assets/audio/sounds/new notification 3.wav +0 -0
  12. packer_release-0.23.0/src/packer/assets/images/Packer icon.ico +0 -0
  13. packer_release-0.23.0/src/packer/assets/images/Packer icon.png +0 -0
  14. packer_release-0.23.0/src/packer/assets/integrity.json +1 -0
  15. packer_release-0.23.0/src/packer/assets/version.json +5 -0
  16. packer_release-0.23.0/src/packer/change.py +222 -0
  17. packer_release-0.23.0/src/packer/config.py +360 -0
  18. packer_release-0.23.0/src/packer/core.py +1131 -0
  19. packer_release-0.23.0/src/packer/custom_modules/et.py +718 -0
  20. packer_release-0.23.0/src/packer/custom_modules/etf.py +1071 -0
  21. packer_release-0.23.0/src/packer/exceptions.py +156 -0
  22. packer_release-0.23.0/src/packer/main.py +14 -0
  23. packer_release-0.23.0/src/packer/paths.py +20 -0
  24. packer_release-0.23.0/src/packer/setup.py +791 -0
  25. packer_release-0.23.0/src/packer/ui/cli.py +382 -0
  26. packer_release-0.23.0/src/packer/ui/tui.py +131 -0
  27. packer_release-0.23.0/src/packer/utils.py +222 -0
  28. packer_release-0.23.0/src/packer_release.egg-info/PKG-INFO +151 -0
  29. packer_release-0.23.0/src/packer_release.egg-info/SOURCES.txt +43 -0
  30. packer_release-0.23.0/src/packer_release.egg-info/dependency_links.txt +1 -0
  31. packer_release-0.23.0/src/packer_release.egg-info/entry_points.txt +2 -0
  32. packer_release-0.23.0/src/packer_release.egg-info/requires.txt +17 -0
  33. packer_release-0.23.0/src/packer_release.egg-info/top_level.txt +1 -0
  34. packer_release-0.23.0/tests/test 2.py +0 -0
  35. packer_release-0.23.0/tests/test 3.py +39 -0
  36. packer_release-0.23.0/tests/test.py +25 -0
  37. packer_release-0.23.0/tests/test4.py +13 -0
  38. packer_release-0.23.0/tests/test_build_project_wheel.py +0 -0
  39. packer_release-0.23.0/tests/test_changelog_filtering.py +47 -0
  40. packer_release-0.23.0/tests/test_cli_clear.py +26 -0
  41. packer_release-0.23.0/tests/test_cli_version_resolution.py +21 -0
  42. packer_release-0.23.0/tests/test_exception_handler.py +27 -0
  43. packer_release-0.23.0/tests/test_settings_merge.py +29 -0
  44. packer_release-0.23.0/tests/test_setup_scaffold_exceptions.py +16 -0
  45. packer_release-0.23.0/tests/test_smooth_output_queue.py +24 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 EMILIO
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,151 @@
1
+ Metadata-Version: 2.4
2
+ Name: packer-release
3
+ Version: 0.23.0
4
+ Summary: A Python automation tool that streamlines python software release workflows
5
+ Requires-Python: >=3.10
6
+ Description-Content-Type: text/markdown
7
+ License-File: LICENSE
8
+ Requires-Dist: ollama
9
+ Requires-Dist: pygithub
10
+ Requires-Dist: requests
11
+ Requires-Dist: platformdirs
12
+ Requires-Dist: GitPython
13
+ Requires-Dist: dirhash
14
+ Requires-Dist: pyinstaller
15
+ Requires-Dist: tomlkit
16
+ Requires-Dist: pyzipper
17
+ Requires-Dist: pyperclip
18
+ Requires-Dist: plyer
19
+ Requires-Dist: argcomplete
20
+ Requires-Dist: pygame
21
+ Requires-Dist: cryptography
22
+ Requires-Dist: tdqm
23
+ Requires-Dist: build
24
+ Requires-Dist: twine
25
+ Dynamic: license-file
26
+
27
+ # Packer
28
+
29
+ A Python automation tool that streamlines Python release workflows: creating optimized archives, uploading releases to GoFile, updating Git repositories, and publishing GitHub releases with AI-generated notes.
30
+
31
+ ## Contents
32
+
33
+ - [Installation](#installation)
34
+ - [Binary Downloads](#binary-downloads)
35
+ - [Usage](#usage)
36
+ - [Demos](#demos)
37
+ - [Configuration](#configuration)
38
+ - [Settings](#settings)
39
+ - [Config](#config)
40
+ - [Extra customization](#extra-customization)
41
+ - [Extra notes](#extra-notes)
42
+ - [Warning](#warning)
43
+ - [Features](#features)
44
+ - [Feedback and Suggestions](#feedback-and-suggestions)
45
+ - [Honorable mentions](#honorable-mentions)
46
+ - [Changelog](#changelog)
47
+ - [In future updates](#in-future-updates)
48
+
49
+ ## Installation
50
+
51
+ Available via:
52
+
53
+ * **GitHub Releases:** [GitHub Releases](https://github.com/EMILIO888real/Packer/releases/)
54
+ * **Third-party website (GoFile):** [Archive](https://gofile.io/d/OktQl5)
55
+
56
+ You can also install from source in a virtual environment:
57
+
58
+ ```bash
59
+ python -m venv .venv
60
+ source .venv/bin/activate
61
+ pip install .
62
+ ```
63
+
64
+ ### Binary Downloads
65
+
66
+ When downloading, please choose the correct build for your operating system:
67
+
68
+ | File Name | Platform | Description |
69
+ | --- | --- | --- |
70
+ | `packer` | Linux/macOS | Executable for Unix-based systems. |
71
+ | `packer.exe` | Windows | Executable for Windows systems. |
72
+
73
+ ### To install:
74
+
75
+ * **GitHub:** Download the appropriate binary or archive for your system from the [Releases page](https://github.com/EMILIO888real/Packer/releases/).
76
+ * **Third-party website (GoFile):** Head to the website [Archive](https://gofile.io/d/OktQl5) and download the specific archive for the desired version.
77
+
78
+ After installing, continue following instructions in this README.
79
+
80
+ ## Usage
81
+
82
+ After installing the project, you can run it from the command line using the package entry points.
83
+
84
+ ### Basic example
85
+
86
+ ```bash
87
+ python -m packer.main
88
+ ```
89
+
90
+ If the package is installed in your environment, you can also run:
91
+
92
+ ```bash
93
+ packer
94
+ ```
95
+
96
+ ## Demos
97
+
98
+ - `TUI release Demo` - [Watch on youtube](https://youtu.be/dSdyEvqs394)
99
+ - `CLI setup demo` - [Watch on youtube](https://youtu.be/ZC9x80sogzA)
100
+ - `CLI change demo` - [Watch on youtube](https://youtu.be/TEoaclmCq2w)
101
+
102
+ ## Configuration
103
+
104
+ ### Settings
105
+
106
+ See [docs/SETTINGS.md](docs/SETTINGS.md#L1) for global Packer settings and [docs/PROJECT.md](docs/PROJECT.md#L1) for project-specific settings. For CLI options, see [docs/CLI.md](docs/CLI.md#L1).
107
+
108
+ ### Config
109
+
110
+ Packer expects a project layout with `src/` code and an `assets/` folder containing at least `version.json` and `integrity.json`. A `CHANGELOG.md` at the project root is required for release-note generation.
111
+
112
+ ### Extra customization
113
+
114
+ See [docs/PROJECT.md](docs/PROJECT.md#L1) for notes about adding custom assets and creating profiles.
115
+
116
+ ## Extra notes
117
+
118
+ - Packer integrates with GoFile for archive hosting and GitHub for release publishing.
119
+ - Optional compilation via Nuitka is supported for producing compiled releases.
120
+
121
+ ## Warning
122
+
123
+ - Possible problems might arise in that case, please back up your project before running for the first time and even if packer messed up, it won't destroy or corrupt your project so GL fixing it! Here is also a guide for manually reverting a release in case it fails catastrophically: [docs/MANUAL_REVERT.md](docs/MANUAL_REVERT.md#L1).
124
+ - Note that automatic error reporting is enabled by default. *You can disable it in the settings*
125
+
126
+ ## Features
127
+
128
+ - Archive Creation: Packages your program with customizable exclusion rules.
129
+ - Cloud Upload: Uploads archives to GoFile with optional folder management.
130
+ - Git Integration: Handles repository updates and tagging.
131
+ - GitHub Releases: Publishes releases with AI-generated titles and descriptions.
132
+ - Optional Compilation: Supports Nuitka for compiled distributions.
133
+ - Error Handling: Automatic rollback to previous version if a step fails.
134
+ - AI-Powered: Uses Ollama (when available) to generate release notes.
135
+
136
+ ## Feedback and Suggestions
137
+
138
+ Please open issues or pull requests on the project's GitHub repository, or email [emilspro888@gmail.com] to suggest improvements or report bugs.
139
+
140
+ ## Honorable mentions
141
+
142
+ - Ollama — used for AI-generated release notes (optional).
143
+ - GoFile — used as archive hosting provider.
144
+
145
+ ## Changelog
146
+
147
+ See the full history in [CHANGELOG.md](./CHANGELOG.md#L1).
148
+
149
+ ## In future updates
150
+
151
+ See planned features and roadmap in [docs/ROADMAP.md](docs/ROADMAP.md#L1).
@@ -0,0 +1,125 @@
1
+ # Packer
2
+
3
+ A Python automation tool that streamlines Python release workflows: creating optimized archives, uploading releases to GoFile, updating Git repositories, and publishing GitHub releases with AI-generated notes.
4
+
5
+ ## Contents
6
+
7
+ - [Installation](#installation)
8
+ - [Binary Downloads](#binary-downloads)
9
+ - [Usage](#usage)
10
+ - [Demos](#demos)
11
+ - [Configuration](#configuration)
12
+ - [Settings](#settings)
13
+ - [Config](#config)
14
+ - [Extra customization](#extra-customization)
15
+ - [Extra notes](#extra-notes)
16
+ - [Warning](#warning)
17
+ - [Features](#features)
18
+ - [Feedback and Suggestions](#feedback-and-suggestions)
19
+ - [Honorable mentions](#honorable-mentions)
20
+ - [Changelog](#changelog)
21
+ - [In future updates](#in-future-updates)
22
+
23
+ ## Installation
24
+
25
+ Available via:
26
+
27
+ * **GitHub Releases:** [GitHub Releases](https://github.com/EMILIO888real/Packer/releases/)
28
+ * **Third-party website (GoFile):** [Archive](https://gofile.io/d/OktQl5)
29
+
30
+ You can also install from source in a virtual environment:
31
+
32
+ ```bash
33
+ python -m venv .venv
34
+ source .venv/bin/activate
35
+ pip install .
36
+ ```
37
+
38
+ ### Binary Downloads
39
+
40
+ When downloading, please choose the correct build for your operating system:
41
+
42
+ | File Name | Platform | Description |
43
+ | --- | --- | --- |
44
+ | `packer` | Linux/macOS | Executable for Unix-based systems. |
45
+ | `packer.exe` | Windows | Executable for Windows systems. |
46
+
47
+ ### To install:
48
+
49
+ * **GitHub:** Download the appropriate binary or archive for your system from the [Releases page](https://github.com/EMILIO888real/Packer/releases/).
50
+ * **Third-party website (GoFile):** Head to the website [Archive](https://gofile.io/d/OktQl5) and download the specific archive for the desired version.
51
+
52
+ After installing, continue following instructions in this README.
53
+
54
+ ## Usage
55
+
56
+ After installing the project, you can run it from the command line using the package entry points.
57
+
58
+ ### Basic example
59
+
60
+ ```bash
61
+ python -m packer.main
62
+ ```
63
+
64
+ If the package is installed in your environment, you can also run:
65
+
66
+ ```bash
67
+ packer
68
+ ```
69
+
70
+ ## Demos
71
+
72
+ - `TUI release Demo` - [Watch on youtube](https://youtu.be/dSdyEvqs394)
73
+ - `CLI setup demo` - [Watch on youtube](https://youtu.be/ZC9x80sogzA)
74
+ - `CLI change demo` - [Watch on youtube](https://youtu.be/TEoaclmCq2w)
75
+
76
+ ## Configuration
77
+
78
+ ### Settings
79
+
80
+ See [docs/SETTINGS.md](docs/SETTINGS.md#L1) for global Packer settings and [docs/PROJECT.md](docs/PROJECT.md#L1) for project-specific settings. For CLI options, see [docs/CLI.md](docs/CLI.md#L1).
81
+
82
+ ### Config
83
+
84
+ Packer expects a project layout with `src/` code and an `assets/` folder containing at least `version.json` and `integrity.json`. A `CHANGELOG.md` at the project root is required for release-note generation.
85
+
86
+ ### Extra customization
87
+
88
+ See [docs/PROJECT.md](docs/PROJECT.md#L1) for notes about adding custom assets and creating profiles.
89
+
90
+ ## Extra notes
91
+
92
+ - Packer integrates with GoFile for archive hosting and GitHub for release publishing.
93
+ - Optional compilation via Nuitka is supported for producing compiled releases.
94
+
95
+ ## Warning
96
+
97
+ - Possible problems might arise in that case, please back up your project before running for the first time and even if packer messed up, it won't destroy or corrupt your project so GL fixing it! Here is also a guide for manually reverting a release in case it fails catastrophically: [docs/MANUAL_REVERT.md](docs/MANUAL_REVERT.md#L1).
98
+ - Note that automatic error reporting is enabled by default. *You can disable it in the settings*
99
+
100
+ ## Features
101
+
102
+ - Archive Creation: Packages your program with customizable exclusion rules.
103
+ - Cloud Upload: Uploads archives to GoFile with optional folder management.
104
+ - Git Integration: Handles repository updates and tagging.
105
+ - GitHub Releases: Publishes releases with AI-generated titles and descriptions.
106
+ - Optional Compilation: Supports Nuitka for compiled distributions.
107
+ - Error Handling: Automatic rollback to previous version if a step fails.
108
+ - AI-Powered: Uses Ollama (when available) to generate release notes.
109
+
110
+ ## Feedback and Suggestions
111
+
112
+ Please open issues or pull requests on the project's GitHub repository, or email [emilspro888@gmail.com] to suggest improvements or report bugs.
113
+
114
+ ## Honorable mentions
115
+
116
+ - Ollama — used for AI-generated release notes (optional).
117
+ - GoFile — used as archive hosting provider.
118
+
119
+ ## Changelog
120
+
121
+ See the full history in [CHANGELOG.md](./CHANGELOG.md#L1).
122
+
123
+ ## In future updates
124
+
125
+ See planned features and roadmap in [docs/ROADMAP.md](docs/ROADMAP.md#L1).
@@ -0,0 +1,42 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.0"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "packer-release"
7
+ version = "0.23.0"
8
+ description = "A Python automation tool that streamlines python software release workflows"
9
+ readme = "README.md"
10
+ requires-python = ">=3.10"
11
+ dependencies = [
12
+ "ollama",
13
+ "pygithub",
14
+ "requests",
15
+ "platformdirs",
16
+ "GitPython",
17
+ "dirhash",
18
+ "pyinstaller",
19
+ "tomlkit",
20
+ "pyzipper",
21
+ "pyperclip",
22
+ "plyer",
23
+ "argcomplete",
24
+ "pygame",
25
+ "cryptography",
26
+ "tdqm",
27
+ "build",
28
+ "twine"
29
+ ]
30
+
31
+ [tool.setuptools]
32
+ include-package-data = true
33
+ package-dir = {"" = "src"}
34
+
35
+ [tool.setuptools.packages.find]
36
+ where = ["src"]
37
+
38
+ [tool.setuptools.package-data]
39
+ packer = ["assets/**/*"]
40
+
41
+ [project.scripts]
42
+ packer = "packer.main:main"
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,7 @@
1
+ from packer.core import Packer
2
+ from packer.setup import main as setup
3
+ from packer.change import main as commit_change
4
+ from packer.custom_modules.et import load_config, simple_merge_settings, normalize_settings_keys, tree
5
+ from packer.exceptions import Global_exception_handler
6
+
7
+ __all__ = ['load_config', 'Packer', 'setup', 'commit_change', 'simple_merge_settings', 'normalize_settings_keys', 'Global_exception_handler', 'tree']
@@ -0,0 +1,25 @@
1
+ from pathlib import Path
2
+
3
+ from packer.config import Project, all_settings, send_notification, exception_handler
4
+ import sys
5
+
6
+ from packer.core import Packer
7
+
8
+
9
+ def run(new_version: dict, project_directory: Path, project_configuration: Project):
10
+
11
+ try:
12
+ packer = Packer(new_version, project_directory, **project_configuration.model_dump())
13
+
14
+ def packer_exception_handler(exc_type, exc_value, exc_traceback):
15
+ packer.revert_changes(False)
16
+ if all_settings.desktop_notifications:
17
+ send_notification('Packer encountered an error and reverted all changes.', 'error')
18
+ exception_handler.handle_exception(exc_type, exc_value, exc_traceback)
19
+
20
+ sys.excepthook = packer_exception_handler # replace the global exception handler with packer's to revert changes in case Packer was running.
21
+
22
+ packer.run()
23
+ except KeyboardInterrupt:
24
+ packer.print_and_log('Process interrupted by user!', [255, 255, 0], level=30)
25
+ packer.revert_changes()
@@ -0,0 +1,70 @@
1
+ # $program_name Update [$new_version]
2
+
3
+ $version_description
4
+
5
+ ## Installation
6
+
7
+ Available via:
8
+
9
+ * **GitHub:** [GitHub Releases](https://github.com/${github_repo_url}/releases/tag/${new_version})
10
+ * **Third-party website (GoFile):** [Archive]($gofile_download_url) (click the download button).
11
+
12
+ ### Binary Downloads
13
+
14
+ When downloading, please choose the correct build for your operating system:
15
+
16
+ | File Name | Platform | Description |
17
+ | --- | --- | --- |
18
+ | `$program_name` | Linux/macOS | Executable for Unix-based systems. |
19
+ | `$program_name.exe` | Windows | Executable for Windows systems. |
20
+
21
+ ### To install:
22
+
23
+ * **GitHub:**
24
+ Download the appropriate binary for your system from the [Releases page](https://github.com/${github_repo_url}/releases/tag/${new_version}).
25
+ * **Third-party website (GoFile):**
26
+ Head to the website [Archive]($gofile_download_url) and download the specific arhive with the appropriate version.
27
+
28
+ After installing, continue following instructions via the README.
29
+
30
+ ## Changes in $new_version
31
+
32
+ $latest_changelog
33
+
34
+ [Full changelog](https://github.com/${github_repo_url}/blob/master/CHANGELOG.md)
35
+
36
+ ## Tips
37
+
38
+ If you prefer to build from source via **GitHub**, you can clone the repository using:
39
+
40
+ ```bash
41
+ git clone https://github.com/${github_repo_url} --depth 1
42
+
43
+ ```
44
+
45
+ Using `--depth 1` creates a "shallow clone," which only downloads the latest commit, saving you significant time and storage space compared to a full repository clone.
46
+
47
+ While downloading the pre-compiled binaries (like `$program_name` or `$program_name.exe`) is usually the fastest way to get started, cloning the repository allows you to easily pull future updates with `git pull` as they are released.
48
+
49
+ ## Verification
50
+
51
+ To ensure the integrity of the downloaded files, you can verify their SHA256 checksums.
52
+
53
+ ### How to verify:
54
+
55
+ * **Windows (PowerShell):**
56
+ Open PowerShell and run the following command:
57
+ ```powershell
58
+ Get-FileHash .\$program_name.exe -Algorithm SHA256
59
+
60
+ ```
61
+
62
+
63
+ * **Linux/macOS (Terminal):**
64
+ Open your terminal and run:
65
+ ```bash
66
+ sha256sum $program_name
67
+
68
+ ```
69
+
70
+ Compare the resulting hash with the one provided in the GitHub release assets list to ensure it matches.
@@ -0,0 +1 @@
1
+ {"CWD": {"root_hash": "8630217fe25a8f5cffc622b9825526bc14ba74e1a5c0962da2eb4699b84232ea", "tree": {"files": {".gitignore": "d7ba4a10f60365e1b1ebad9c6df3aea7acbd0ae29b3732c614db22d65e0f89fc", "CHANGELOG.md": "bf7d79f61f5080f8bd48996e42d1a6cd14611f12ebb5e61d455391b054f3d84f", "LICENSE": "bf1c380e8205fa5c7872101cd09794e8c1d313d4326c2a7a21a9c150584d2f96", "README.md": "aa3284a20fe8f30bad89b895ccd5473ff6c4c66c4a098937a5a34f2a2ac64cd2", "main.spec": "cc61795424a36b70d1c9d1b0051e445c55610f1a45389206a8f6500855ccc00b", "pyproject.toml": "68e06cb39201354dae20165ec1494116310fa85687da883bb04814c5c84af062"}, ".github": {"workflows": {"files": {"build.yaml": "a5c406080d9bb26d57ef5a6c265ae145309171f3087a6daac63a97494ad196b6"}}}, "docs": {"files": {"CLI.md": "acfcc4d27a6789e3b90cd12ecbb94a7602bead7562cd123e5b68ee6add353fda", "MANUAL_REVERT.md": "ff061a209167f7ab303601ef3a49b147fad54616b955e53a73e103bd332eeac4", "PROJECT.md": "25021c22dfdd43b862f83ca182c528f92d6c5066e29488eeb1a20cea092051b5", "ROADMAP.md": "7aa1b20b64eda32e2482e649932d4bef3b98ebf58de6404f16d03bb018bde8a7", "SETTINGS.md": "0c3625de0701598340879af51261b970135f22ecedd3c677bb8bbdedd1e1be01"}}, "src": {"packer": {"files": {"__init__.py": "2f79f39d09df2cf1f2244835e20904c382ea1344851349a49908beb0a0a4e5a0", "actions.py": "062ec62bcd99b75d679a69aa01c1e9c1afba723bb4ef8480e5236df6de57a634", "change.py": "502cf95c317be92656611a15f9a4292e26d8ce5bf1f011454ab1ef58a8a07a7f", "config.py": "d07e0fd1aa831e649491a459f286f8dade61bbbe043084fd61fa95775607ee52", "core.py": "d9946fb705161189172168f71cbe60481bb656c639d28d77c62740a1498a3c7d", "exceptions.py": "cc4af0b3a01f920badae03f9cc4a702363594d8a77a7a3a0469418bd88b5bb87", "main.py": "5a6218853b4961eefe4100531614a4f889c8b8a6aef03c9071e13b0539f3a512", "paths.py": "691b5fb411de0194382b698754bc0b29969c401823547e5ad7eddfb5ade18322", "setup.py": "a2cecc29f53a8daac96629b015c3eeb0531d115499df7500e3918a1357f0f903", "utils.py": "715ebf84d5b611c97bdcd27e79d42a8259c9170d12902ffd1ff51cf8bea15e78"}, "assets": {"files": {"RELEASE.md": "22f25566487db873890765dd0d98059ad59358606db52daa175b2d0c0500f703", "integrity.json": "4b8972f0d88174e1db151260410eb0c2a16aa70293baef224ffe5ebff3009672", "version.json": "6a079cf0fad3cb40c726916a02a31997fb2c41e61de8192a8a919bccb5909931"}, "audio": {"sounds": {"files": {"new notification 1.wav": "47a227b0403611b4d650dd4322e8784ac8154ac80abbe73b1c259df755daf8da", "new notification 2.wav": "d7a0e41e28cdbaf92fcf77da82f1656c5284e79557f5bdd143d504bb00c3aa81", "new notification 3.wav": "0b3200bd3c279b4acc901c35cd899b1e3da62b6283bf34b8aea96fb82987dae4"}}}, "images": {"files": {"Packer icon.ico": "311cfef9f20c3d377bc3d3b19751a67f66e373cd4c6a5c80294e3dee3deca947", "Packer icon.png": "1d80eca39a6ff0e147ab8795fc6dc2d01b67e5a447780ba94dcee50f86ebd715"}}}, "custom_modules": {"files": {"et.py": "e4c6fb8d81b35f82f8dc6f4940fea9800e2bed2f7aaac1a7e84149852e8c3ce6", "etf.py": "885036a0b0ccd854eb4e4d93d4b2df815984d1a19f4c6ae628379e5ad731af94"}}, "ui": {"files": {"cli.py": "3775d67cf64fe28b39eabef33a5aa985a32b5e06fe2d3a14293d4b72ab8fac6e", "tui.py": "3a81c5e6bede48e2d31bac5ff950d7b110640bd17edcb4bdcf7789c2d77f8d40"}}}}}}}
@@ -0,0 +1,5 @@
1
+ {
2
+ "major": 0,
3
+ "minor": 23,
4
+ "patch": 0
5
+ }