password-generator-app 1.0.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.
- password_generator_app-1.0.0/CHANGELOG.md +60 -0
- password_generator_app-1.0.0/LICENSE +17 -0
- password_generator_app-1.0.0/MANIFEST.in +5 -0
- password_generator_app-1.0.0/PKG-INFO +276 -0
- password_generator_app-1.0.0/README.md +257 -0
- password_generator_app-1.0.0/imgs/CLI.png +0 -0
- password_generator_app-1.0.0/imgs/GUI-Dark-Poweshell.png +0 -0
- password_generator_app-1.0.0/imgs/GUI-Dark.png +0 -0
- password_generator_app-1.0.0/imgs/GUI-Light-Poweshell.png +0 -0
- password_generator_app-1.0.0/imgs/GUI-Light.png +0 -0
- password_generator_app-1.0.0/imgs/GUI.png +0 -0
- password_generator_app-1.0.0/pyproject.toml +54 -0
- password_generator_app-1.0.0/setup.cfg +4 -0
- password_generator_app-1.0.0/src/password_generator_app/__init__.py +1 -0
- password_generator_app-1.0.0/src/password_generator_app/__main__.py +4 -0
- password_generator_app-1.0.0/src/password_generator_app/app.py +24 -0
- password_generator_app-1.0.0/src/password_generator_app/cli.py +101 -0
- password_generator_app-1.0.0/src/password_generator_app/core/console_color.py +45 -0
- password_generator_app-1.0.0/src/password_generator_app/core/password_generator.py +91 -0
- password_generator_app-1.0.0/src/password_generator_app/core/settings.py +120 -0
- password_generator_app-1.0.0/src/password_generator_app/core/theme.py +252 -0
- password_generator_app-1.0.0/src/password_generator_app/ui/main_window.py +416 -0
- password_generator_app-1.0.0/src/password_generator_app/ui/widgets.py +35 -0
- password_generator_app-1.0.0/src/password_generator_app.egg-info/PKG-INFO +276 -0
- password_generator_app-1.0.0/src/password_generator_app.egg-info/SOURCES.txt +29 -0
- password_generator_app-1.0.0/src/password_generator_app.egg-info/dependency_links.txt +1 -0
- password_generator_app-1.0.0/src/password_generator_app.egg-info/entry_points.txt +4 -0
- password_generator_app-1.0.0/src/password_generator_app.egg-info/requires.txt +1 -0
- password_generator_app-1.0.0/src/password_generator_app.egg-info/top_level.txt +1 -0
- password_generator_app-1.0.0/tests/test_cli.py +32 -0
- password_generator_app-1.0.0/tests/test_generator.py +132 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on Keep a Changelog:
|
|
6
|
+
https://keepachangelog.com/en/1.1.0/
|
|
7
|
+
|
|
8
|
+
This project follows Semantic Versioning:
|
|
9
|
+
https://semver.org/
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## [1.0.0] - 2026-05-24
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
- Modern Material-style graphical user interface built with PySide6
|
|
17
|
+
- Full command-line interface (CLI)
|
|
18
|
+
- `passgen` executable command support
|
|
19
|
+
- Password generation with configurable:
|
|
20
|
+
- length
|
|
21
|
+
- lowercase characters
|
|
22
|
+
- uppercase characters
|
|
23
|
+
- digits
|
|
24
|
+
- punctuation symbols
|
|
25
|
+
- Clipboard copy support
|
|
26
|
+
- Password strength indicator
|
|
27
|
+
- Persistent local settings storage
|
|
28
|
+
- Light and dark theme support
|
|
29
|
+
- Accent color customization
|
|
30
|
+
- Settings reset functionality
|
|
31
|
+
- Cross-platform Python package structure
|
|
32
|
+
- PyPI-ready packaging configuration
|
|
33
|
+
- GitHub-ready project structure
|
|
34
|
+
- README screenshots and usage examples
|
|
35
|
+
- Batch launcher for Windows (`passgen.bat`)
|
|
36
|
+
|
|
37
|
+
### Improved
|
|
38
|
+
- Refactored application architecture using:
|
|
39
|
+
- `core/`
|
|
40
|
+
- `ui/`
|
|
41
|
+
- `src/` package layout
|
|
42
|
+
- Improved UI sizing and spacing
|
|
43
|
+
- Improved theme consistency across widgets
|
|
44
|
+
- Improved button and textbox styling
|
|
45
|
+
- Improved CLI usability and argument handling
|
|
46
|
+
- Improved packaging metadata
|
|
47
|
+
|
|
48
|
+
### Fixed
|
|
49
|
+
- Fixed GUI theme rendering issues
|
|
50
|
+
- Fixed dark/light mode text color inconsistencies
|
|
51
|
+
- Fixed PySide6 icon compatibility issues
|
|
52
|
+
- Fixed `QProgressBar` import issues
|
|
53
|
+
- Fixed relative import execution problems
|
|
54
|
+
- Fixed CLI module discovery issues
|
|
55
|
+
- Fixed settings persistence bugs
|
|
56
|
+
- Fixed widget sizing inconsistencies
|
|
57
|
+
- Fixed multiple startup crashes
|
|
58
|
+
|
|
59
|
+
### Security
|
|
60
|
+
- Secure password generation using Python's `secrets` module
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Vahed MamGhaderi
|
|
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.
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: password-generator-app
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: A lightweight password generator with a PySide6 GUI and CLI.
|
|
5
|
+
Author: Vahed MamGhaderi
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Keywords: password,password-generator,pyside6,gui,cli,security,material-design
|
|
8
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
9
|
+
Classifier: Intended Audience :: End Users/Desktop
|
|
10
|
+
Classifier: Operating System :: OS Independent
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Topic :: Security
|
|
13
|
+
Classifier: Topic :: Utilities
|
|
14
|
+
Requires-Python: >=3.10
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
License-File: LICENSE
|
|
17
|
+
Requires-Dist: PySide6>=6.7.0
|
|
18
|
+
Dynamic: license-file
|
|
19
|
+
|
|
20
|
+
# Password Generator App
|
|
21
|
+
|
|
22
|
+
A clean and lightweight password generator built with **PySide6** and Python.
|
|
23
|
+
The project provides both a graphical user interface and a command-line interface.
|
|
24
|
+
|
|
25
|
+
## Features
|
|
26
|
+
|
|
27
|
+
- Simple Material-style GUI
|
|
28
|
+
- Dark and light themes
|
|
29
|
+
- Accent color selection
|
|
30
|
+
- Password generation with configurable character groups
|
|
31
|
+
- Clipboard copy
|
|
32
|
+
- Persistent local settings stored beside the project
|
|
33
|
+
- CLI support for terminal-based use
|
|
34
|
+
- Small, readable UI with responsive spacing
|
|
35
|
+
|
|
36
|
+
## Screenshots
|
|
37
|
+
|
|
38
|
+
### CLI
|
|
39
|
+
|
|
40
|
+

|
|
41
|
+
|
|
42
|
+
### GUI
|
|
43
|
+
|
|
44
|
+

|
|
45
|
+
|
|
46
|
+
## Installation
|
|
47
|
+
|
|
48
|
+
### From source
|
|
49
|
+
|
|
50
|
+
```powershell
|
|
51
|
+
pip install -r requirements.txt
|
|
52
|
+
pip install -e .
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### From PyPI
|
|
56
|
+
|
|
57
|
+
```powershell
|
|
58
|
+
pip install password-generator-app
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Run the application
|
|
62
|
+
|
|
63
|
+
The main command is `passgen`.
|
|
64
|
+
The alias `password-generator` is also available after installation.
|
|
65
|
+
|
|
66
|
+
### From a local source checkout without installation
|
|
67
|
+
|
|
68
|
+
```powershell
|
|
69
|
+
$env:PYTHONPATH = "src"
|
|
70
|
+
python -m password_generator_app.cli gui
|
|
71
|
+
python -m password_generator_app.cli --length 32 --copy
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### After installation
|
|
75
|
+
|
|
76
|
+
```powershell
|
|
77
|
+
passgen gui
|
|
78
|
+
passgen --length 32 --copy
|
|
79
|
+
password-generator gui
|
|
80
|
+
password-generator --length 32 --copy
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Direct module execution
|
|
84
|
+
|
|
85
|
+
```powershell
|
|
86
|
+
python -m password_generator_app.cli gui
|
|
87
|
+
python -m password_generator_app.cli --length 32 --copy
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## GUI usage
|
|
91
|
+
|
|
92
|
+
Launch the graphical interface:
|
|
93
|
+
|
|
94
|
+
```powershell
|
|
95
|
+
passgen gui
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Or:
|
|
99
|
+
|
|
100
|
+
```powershell
|
|
101
|
+
password-generator gui
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
The GUI allows you to:
|
|
105
|
+
|
|
106
|
+
- Generate secure passwords visually
|
|
107
|
+
- Configure character groups
|
|
108
|
+
- Set minimum character counts
|
|
109
|
+
- Switch between dark and light themes
|
|
110
|
+
- Customize accent colors
|
|
111
|
+
- Copy passwords directly to the clipboard
|
|
112
|
+
|
|
113
|
+
## CLI usage
|
|
114
|
+
|
|
115
|
+
Generate a password with default settings:
|
|
116
|
+
|
|
117
|
+
```powershell
|
|
118
|
+
passgen
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Generate a password with a custom length and copy it to the clipboard:
|
|
122
|
+
|
|
123
|
+
```powershell
|
|
124
|
+
passgen --length 32 --copy
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Show help:
|
|
128
|
+
|
|
129
|
+
```powershell
|
|
130
|
+
passgen -h
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
The same CLI commands can also be executed with:
|
|
134
|
+
|
|
135
|
+
```powershell
|
|
136
|
+
password-generator
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## CLI options
|
|
140
|
+
|
|
141
|
+
- `--length`, `-l` — password length
|
|
142
|
+
- `--lowercase / --no-lowercase`
|
|
143
|
+
- `--uppercase / --no-uppercase`
|
|
144
|
+
- `--digits / --no-digits`
|
|
145
|
+
- `--punctuation / --no-punctuation`
|
|
146
|
+
- `--min-lowercase`
|
|
147
|
+
- `--min-uppercase`
|
|
148
|
+
- `--min-digits`
|
|
149
|
+
- `--min-punctuation`
|
|
150
|
+
- `--copy`, `-c` — copy the generated password to the clipboard
|
|
151
|
+
|
|
152
|
+
## Python API
|
|
153
|
+
|
|
154
|
+
You can also use the generator directly from Python code:
|
|
155
|
+
|
|
156
|
+
```python
|
|
157
|
+
from password_generator_app.core.password_generator import (
|
|
158
|
+
PasswordGenerator,
|
|
159
|
+
PasswordConfig,
|
|
160
|
+
)
|
|
161
|
+
|
|
162
|
+
config = PasswordConfig(
|
|
163
|
+
length=18,
|
|
164
|
+
include_lowercase=True,
|
|
165
|
+
include_uppercase=True,
|
|
166
|
+
include_digits=True,
|
|
167
|
+
include_punctuation=True,
|
|
168
|
+
min_lowercase=3,
|
|
169
|
+
min_uppercase=3,
|
|
170
|
+
min_digits=3,
|
|
171
|
+
min_punctuation=3,
|
|
172
|
+
)
|
|
173
|
+
|
|
174
|
+
password = PasswordGenerator(config)
|
|
175
|
+
|
|
176
|
+
for _ in range(5):
|
|
177
|
+
print(password.generate())
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Settings
|
|
181
|
+
|
|
182
|
+
The application stores its settings in the project directory as `settings.json`.
|
|
183
|
+
|
|
184
|
+
Saved values include:
|
|
185
|
+
|
|
186
|
+
- theme
|
|
187
|
+
- accent color
|
|
188
|
+
- window size
|
|
189
|
+
- password generation options
|
|
190
|
+
|
|
191
|
+
## Project Structure
|
|
192
|
+
|
|
193
|
+
```text
|
|
194
|
+
password_generator_app_v1/
|
|
195
|
+
├── imgs/
|
|
196
|
+
├── scripts/
|
|
197
|
+
│ ├── cleanup.ps1
|
|
198
|
+
│ ├── build.ps1
|
|
199
|
+
│ ├── rebuild.ps1
|
|
200
|
+
│ └── rebuild.bat
|
|
201
|
+
├── src/
|
|
202
|
+
│ └── password_generator_app/
|
|
203
|
+
├── tests/
|
|
204
|
+
├── CHANGELOG.md
|
|
205
|
+
├── LICENSE
|
|
206
|
+
├── MANIFEST.in
|
|
207
|
+
├── pyproject.toml
|
|
208
|
+
└── README.md
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## Windows Batch Launcher
|
|
212
|
+
|
|
213
|
+
You can place `passgen.bat` inside your `commands` folder and update the project path in the file.
|
|
214
|
+
After that, the app can be launched directly from the terminal without installing the package.
|
|
215
|
+
|
|
216
|
+
```powershell
|
|
217
|
+
passgen gui
|
|
218
|
+
passgen --length 32 --copy
|
|
219
|
+
password-generator gui
|
|
220
|
+
password-generator --length 32 --copy
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
## Running Tests
|
|
224
|
+
|
|
225
|
+
Install pytest:
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
pip install pytest
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
Run all tests:
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
pytest -v
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
The project includes:
|
|
238
|
+
|
|
239
|
+
- Core password generator tests
|
|
240
|
+
- Validation tests
|
|
241
|
+
- CLI tests
|
|
242
|
+
|
|
243
|
+
## Development Utilities
|
|
244
|
+
|
|
245
|
+
### Rebuild local package
|
|
246
|
+
|
|
247
|
+
Run the complete local development workflow:
|
|
248
|
+
|
|
249
|
+
```powershell
|
|
250
|
+
powershell -ExecutionPolicy Bypass -File .\scripts\rebuild.ps1
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
Or:
|
|
254
|
+
|
|
255
|
+
```powershell
|
|
256
|
+
.\scripts\rebuild.bat
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
This process will:
|
|
260
|
+
|
|
261
|
+
- Clean the project
|
|
262
|
+
- Remove old local installations
|
|
263
|
+
- Run tests
|
|
264
|
+
- Build package distributions
|
|
265
|
+
- Validate distributions using Twine
|
|
266
|
+
- Reinstall the latest local build
|
|
267
|
+
|
|
268
|
+
## Author
|
|
269
|
+
|
|
270
|
+
Developed by Vahed MamGhaderi
|
|
271
|
+
|
|
272
|
+
## License
|
|
273
|
+
|
|
274
|
+
This project is licensed under the MIT License.
|
|
275
|
+
|
|
276
|
+
See the [LICENSE](LICENSE) file for details.
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
# Password Generator App
|
|
2
|
+
|
|
3
|
+
A clean and lightweight password generator built with **PySide6** and Python.
|
|
4
|
+
The project provides both a graphical user interface and a command-line interface.
|
|
5
|
+
|
|
6
|
+
## Features
|
|
7
|
+
|
|
8
|
+
- Simple Material-style GUI
|
|
9
|
+
- Dark and light themes
|
|
10
|
+
- Accent color selection
|
|
11
|
+
- Password generation with configurable character groups
|
|
12
|
+
- Clipboard copy
|
|
13
|
+
- Persistent local settings stored beside the project
|
|
14
|
+
- CLI support for terminal-based use
|
|
15
|
+
- Small, readable UI with responsive spacing
|
|
16
|
+
|
|
17
|
+
## Screenshots
|
|
18
|
+
|
|
19
|
+
### CLI
|
|
20
|
+
|
|
21
|
+

|
|
22
|
+
|
|
23
|
+
### GUI
|
|
24
|
+
|
|
25
|
+

|
|
26
|
+
|
|
27
|
+
## Installation
|
|
28
|
+
|
|
29
|
+
### From source
|
|
30
|
+
|
|
31
|
+
```powershell
|
|
32
|
+
pip install -r requirements.txt
|
|
33
|
+
pip install -e .
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### From PyPI
|
|
37
|
+
|
|
38
|
+
```powershell
|
|
39
|
+
pip install password-generator-app
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Run the application
|
|
43
|
+
|
|
44
|
+
The main command is `passgen`.
|
|
45
|
+
The alias `password-generator` is also available after installation.
|
|
46
|
+
|
|
47
|
+
### From a local source checkout without installation
|
|
48
|
+
|
|
49
|
+
```powershell
|
|
50
|
+
$env:PYTHONPATH = "src"
|
|
51
|
+
python -m password_generator_app.cli gui
|
|
52
|
+
python -m password_generator_app.cli --length 32 --copy
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### After installation
|
|
56
|
+
|
|
57
|
+
```powershell
|
|
58
|
+
passgen gui
|
|
59
|
+
passgen --length 32 --copy
|
|
60
|
+
password-generator gui
|
|
61
|
+
password-generator --length 32 --copy
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Direct module execution
|
|
65
|
+
|
|
66
|
+
```powershell
|
|
67
|
+
python -m password_generator_app.cli gui
|
|
68
|
+
python -m password_generator_app.cli --length 32 --copy
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## GUI usage
|
|
72
|
+
|
|
73
|
+
Launch the graphical interface:
|
|
74
|
+
|
|
75
|
+
```powershell
|
|
76
|
+
passgen gui
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Or:
|
|
80
|
+
|
|
81
|
+
```powershell
|
|
82
|
+
password-generator gui
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
The GUI allows you to:
|
|
86
|
+
|
|
87
|
+
- Generate secure passwords visually
|
|
88
|
+
- Configure character groups
|
|
89
|
+
- Set minimum character counts
|
|
90
|
+
- Switch between dark and light themes
|
|
91
|
+
- Customize accent colors
|
|
92
|
+
- Copy passwords directly to the clipboard
|
|
93
|
+
|
|
94
|
+
## CLI usage
|
|
95
|
+
|
|
96
|
+
Generate a password with default settings:
|
|
97
|
+
|
|
98
|
+
```powershell
|
|
99
|
+
passgen
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Generate a password with a custom length and copy it to the clipboard:
|
|
103
|
+
|
|
104
|
+
```powershell
|
|
105
|
+
passgen --length 32 --copy
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Show help:
|
|
109
|
+
|
|
110
|
+
```powershell
|
|
111
|
+
passgen -h
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
The same CLI commands can also be executed with:
|
|
115
|
+
|
|
116
|
+
```powershell
|
|
117
|
+
password-generator
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## CLI options
|
|
121
|
+
|
|
122
|
+
- `--length`, `-l` — password length
|
|
123
|
+
- `--lowercase / --no-lowercase`
|
|
124
|
+
- `--uppercase / --no-uppercase`
|
|
125
|
+
- `--digits / --no-digits`
|
|
126
|
+
- `--punctuation / --no-punctuation`
|
|
127
|
+
- `--min-lowercase`
|
|
128
|
+
- `--min-uppercase`
|
|
129
|
+
- `--min-digits`
|
|
130
|
+
- `--min-punctuation`
|
|
131
|
+
- `--copy`, `-c` — copy the generated password to the clipboard
|
|
132
|
+
|
|
133
|
+
## Python API
|
|
134
|
+
|
|
135
|
+
You can also use the generator directly from Python code:
|
|
136
|
+
|
|
137
|
+
```python
|
|
138
|
+
from password_generator_app.core.password_generator import (
|
|
139
|
+
PasswordGenerator,
|
|
140
|
+
PasswordConfig,
|
|
141
|
+
)
|
|
142
|
+
|
|
143
|
+
config = PasswordConfig(
|
|
144
|
+
length=18,
|
|
145
|
+
include_lowercase=True,
|
|
146
|
+
include_uppercase=True,
|
|
147
|
+
include_digits=True,
|
|
148
|
+
include_punctuation=True,
|
|
149
|
+
min_lowercase=3,
|
|
150
|
+
min_uppercase=3,
|
|
151
|
+
min_digits=3,
|
|
152
|
+
min_punctuation=3,
|
|
153
|
+
)
|
|
154
|
+
|
|
155
|
+
password = PasswordGenerator(config)
|
|
156
|
+
|
|
157
|
+
for _ in range(5):
|
|
158
|
+
print(password.generate())
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Settings
|
|
162
|
+
|
|
163
|
+
The application stores its settings in the project directory as `settings.json`.
|
|
164
|
+
|
|
165
|
+
Saved values include:
|
|
166
|
+
|
|
167
|
+
- theme
|
|
168
|
+
- accent color
|
|
169
|
+
- window size
|
|
170
|
+
- password generation options
|
|
171
|
+
|
|
172
|
+
## Project Structure
|
|
173
|
+
|
|
174
|
+
```text
|
|
175
|
+
password_generator_app_v1/
|
|
176
|
+
├── imgs/
|
|
177
|
+
├── scripts/
|
|
178
|
+
│ ├── cleanup.ps1
|
|
179
|
+
│ ├── build.ps1
|
|
180
|
+
│ ├── rebuild.ps1
|
|
181
|
+
│ └── rebuild.bat
|
|
182
|
+
├── src/
|
|
183
|
+
│ └── password_generator_app/
|
|
184
|
+
├── tests/
|
|
185
|
+
├── CHANGELOG.md
|
|
186
|
+
├── LICENSE
|
|
187
|
+
├── MANIFEST.in
|
|
188
|
+
├── pyproject.toml
|
|
189
|
+
└── README.md
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
## Windows Batch Launcher
|
|
193
|
+
|
|
194
|
+
You can place `passgen.bat` inside your `commands` folder and update the project path in the file.
|
|
195
|
+
After that, the app can be launched directly from the terminal without installing the package.
|
|
196
|
+
|
|
197
|
+
```powershell
|
|
198
|
+
passgen gui
|
|
199
|
+
passgen --length 32 --copy
|
|
200
|
+
password-generator gui
|
|
201
|
+
password-generator --length 32 --copy
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
## Running Tests
|
|
205
|
+
|
|
206
|
+
Install pytest:
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
pip install pytest
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
Run all tests:
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
pytest -v
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
The project includes:
|
|
219
|
+
|
|
220
|
+
- Core password generator tests
|
|
221
|
+
- Validation tests
|
|
222
|
+
- CLI tests
|
|
223
|
+
|
|
224
|
+
## Development Utilities
|
|
225
|
+
|
|
226
|
+
### Rebuild local package
|
|
227
|
+
|
|
228
|
+
Run the complete local development workflow:
|
|
229
|
+
|
|
230
|
+
```powershell
|
|
231
|
+
powershell -ExecutionPolicy Bypass -File .\scripts\rebuild.ps1
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
Or:
|
|
235
|
+
|
|
236
|
+
```powershell
|
|
237
|
+
.\scripts\rebuild.bat
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
This process will:
|
|
241
|
+
|
|
242
|
+
- Clean the project
|
|
243
|
+
- Remove old local installations
|
|
244
|
+
- Run tests
|
|
245
|
+
- Build package distributions
|
|
246
|
+
- Validate distributions using Twine
|
|
247
|
+
- Reinstall the latest local build
|
|
248
|
+
|
|
249
|
+
## Author
|
|
250
|
+
|
|
251
|
+
Developed by Vahed MamGhaderi
|
|
252
|
+
|
|
253
|
+
## License
|
|
254
|
+
|
|
255
|
+
This project is licensed under the MIT License.
|
|
256
|
+
|
|
257
|
+
See the [LICENSE](LICENSE) file for details.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=68", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "password-generator-app"
|
|
7
|
+
version = "1.0.0"
|
|
8
|
+
description = "A lightweight password generator with a PySide6 GUI and CLI."
|
|
9
|
+
readme = { file = "README.md", content-type = "text/markdown" }
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
|
+
license = "MIT"
|
|
12
|
+
authors = [
|
|
13
|
+
{ name = "Vahed MamGhaderi" }
|
|
14
|
+
]
|
|
15
|
+
|
|
16
|
+
keywords = [
|
|
17
|
+
"password",
|
|
18
|
+
"password-generator",
|
|
19
|
+
"pyside6",
|
|
20
|
+
"gui",
|
|
21
|
+
"cli",
|
|
22
|
+
"security",
|
|
23
|
+
"material-design"
|
|
24
|
+
]
|
|
25
|
+
|
|
26
|
+
classifiers = [
|
|
27
|
+
"Development Status :: 5 - Production/Stable",
|
|
28
|
+
"Intended Audience :: End Users/Desktop",
|
|
29
|
+
"Operating System :: OS Independent",
|
|
30
|
+
"Programming Language :: Python :: 3",
|
|
31
|
+
"Topic :: Security",
|
|
32
|
+
"Topic :: Utilities",
|
|
33
|
+
]
|
|
34
|
+
|
|
35
|
+
dependencies = [
|
|
36
|
+
"PySide6>=6.7.0"
|
|
37
|
+
]
|
|
38
|
+
|
|
39
|
+
[project.scripts]
|
|
40
|
+
passgen = "password_generator_app.cli:main"
|
|
41
|
+
password-generator = "password_generator_app.cli:main"
|
|
42
|
+
password-generator-app = "password_generator_app.cli:main"
|
|
43
|
+
|
|
44
|
+
[tool.setuptools]
|
|
45
|
+
package-dir = { "" = "src" }
|
|
46
|
+
include-package-data = true
|
|
47
|
+
|
|
48
|
+
[tool.setuptools.packages.find]
|
|
49
|
+
where = ["src"]
|
|
50
|
+
|
|
51
|
+
[tool.setuptools.package-data]
|
|
52
|
+
password_generator_app = [
|
|
53
|
+
"resources/styles/*.qss"
|
|
54
|
+
]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.0.0"
|