read_only_friday_checker 1.0.1__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 (21) hide show
  1. read_only_friday_checker-1.0.1/.gitignore +10 -0
  2. read_only_friday_checker-1.0.1/.python-version +1 -0
  3. read_only_friday_checker-1.0.1/CHANGELOG +15 -0
  4. read_only_friday_checker-1.0.1/LICENSE +19 -0
  5. read_only_friday_checker-1.0.1/PKG-INFO +32 -0
  6. read_only_friday_checker-1.0.1/README.md +20 -0
  7. read_only_friday_checker-1.0.1/bandit.yaml +16 -0
  8. read_only_friday_checker-1.0.1/install.py +118 -0
  9. read_only_friday_checker-1.0.1/pyproject.toml +23 -0
  10. read_only_friday_checker-1.0.1/src/read_only_friday_checker/__init__.py +0 -0
  11. read_only_friday_checker-1.0.1/src/read_only_friday_checker/app.py +87 -0
  12. read_only_friday_checker-1.0.1/src/read_only_friday_checker/resources/PYPI_README.md +18 -0
  13. read_only_friday_checker-1.0.1/src/read_only_friday_checker/resources/images/read_only_friday_checker-128.png +0 -0
  14. read_only_friday_checker-1.0.1/src/read_only_friday_checker/resources/images/read_only_friday_checker-16.png +0 -0
  15. read_only_friday_checker-1.0.1/src/read_only_friday_checker/resources/images/read_only_friday_checker-256.png +0 -0
  16. read_only_friday_checker-1.0.1/src/read_only_friday_checker/resources/images/read_only_friday_checker-32.png +0 -0
  17. read_only_friday_checker-1.0.1/src/read_only_friday_checker/resources/images/read_only_friday_checker-512.png +0 -0
  18. read_only_friday_checker-1.0.1/src/read_only_friday_checker/resources/images/read_only_friday_checker-64.png +0 -0
  19. read_only_friday_checker-1.0.1/src/read_only_friday_checker/rof_api_checker.py +11 -0
  20. read_only_friday_checker-1.0.1/uninstall.py +44 -0
  21. read_only_friday_checker-1.0.1/uv.lock +285 -0
@@ -0,0 +1,10 @@
1
+ # Python-generated files
2
+ __pycache__/
3
+ *.py[oc]
4
+ build/
5
+ dist/
6
+ wheels/
7
+ *.egg-info
8
+
9
+ # Virtual environments
10
+ .venv
@@ -0,0 +1 @@
1
+ 3.13
@@ -0,0 +1,15 @@
1
+ # Read Only Friday Checker Release Notes
2
+
3
+ ## 1.0.0 (31 Jan 2025)
4
+
5
+ - Initial release
6
+
7
+ ## 1.0.1 (20 Mar 2025)
8
+
9
+ ### Major Changes
10
+
11
+ ### Minor Changes
12
+
13
+ ### Patch Changes
14
+
15
+ ### Documentation Changes
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2025, Melvin Quick
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all
11
+ copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ SOFTWARE.
@@ -0,0 +1,32 @@
1
+ Metadata-Version: 2.4
2
+ Name: read_only_friday_checker
3
+ Version: 1.0.1
4
+ Summary: This checks to see if today is Read Only Friday.
5
+ Project-URL: repository, https://codeberg.org/melvinquick/read_only_friday_checker
6
+ Project-URL: issues, https://codeberg.org/melvinquick/read_only_friday_checker/issues
7
+ Author-email: Melvin Quick <melvinquick@proton.me>
8
+ License-Expression: MIT
9
+ License-File: LICENSE
10
+ Requires-Python: >=3.12
11
+ Requires-Dist: pyside6>=6.8.2.1
12
+ Requires-Dist: requests>=2.32.3
13
+ Description-Content-Type: text/markdown
14
+
15
+ ## Donations
16
+
17
+ - [Buy Me A Coffee](https://www.buymeacoffee.com/KingKairos)
18
+ - [GitHub Sponsors](https://github.com/sponsors/melvinquick)
19
+
20
+ ## Purpose
21
+
22
+ This app was mostly made as a joke for my friends. It just reaches out to https://isitreadonlyfriday.com using their API and does a check to see if it's Read Only Friday in the EST timezone.
23
+
24
+ ## Install/Uninstall
25
+
26
+ Install: `curl -s https://codeberg.org/melvinquick/read_only_friday_checker/raw/branch/main/install.py | python3 -`
27
+ Uninstall: `curl -s https://codeberg.org/melvinquick/read_only_friday_checker/raw/branch/main/uninstall.py | python3 -`
28
+
29
+ ## Useful Information
30
+
31
+ - [Latest Release](https://codeberg.org/melvinquick/read_only_friday_checker/releases/latest)
32
+ - [Releases](https://codeberg.org/melvinquick/read_only_friday_checker/releases)
@@ -0,0 +1,20 @@
1
+ <p align="center"> <img src="src/read_only_friday_checker/resources/images/read_only_friday_checker-256.png" /> </p>
2
+
3
+ ## Donations
4
+
5
+ - [Buy Me A Coffee](https://www.buymeacoffee.com/KingKairos)
6
+ - [GitHub Sponsors](https://github.com/sponsors/melvinquick)
7
+
8
+ ## Purpose
9
+
10
+ This app was mostly made as a joke for my friends. It just reaches out to https://isitreadonlyfriday.com using their API and does a check to see if it's Read Only Friday in the EST timezone.
11
+
12
+ ## Install/Uninstall
13
+
14
+ Install: `curl -s https://codeberg.org/melvinquick/read_only_friday_checker/raw/branch/main/install.py | python3 -`
15
+ Uninstall: `curl -s https://codeberg.org/melvinquick/read_only_friday_checker/raw/branch/main/uninstall.py | python3 -`
16
+
17
+ ## Useful Information
18
+
19
+ - [Latest Release](https://codeberg.org/melvinquick/read_only_friday_checker/releases/latest)
20
+ - [Releases](https://codeberg.org/melvinquick/read_only_friday_checker/releases)
@@ -0,0 +1,16 @@
1
+ exclude_dirs:
2
+ [
3
+ ".venv/",
4
+ "dist/",
5
+ "src/read_only_friday_checker/__pycache__",
6
+ "src/read_only_friday_checker/resources/",
7
+ ".gitignore",
8
+ ".python-version",
9
+ "bandit.yaml",
10
+ "LICENSE",
11
+ "pyproject.toml",
12
+ "README.md",
13
+ "uv.lock",
14
+ ]
15
+ tests: []
16
+ skips: []
@@ -0,0 +1,118 @@
1
+ import os
2
+ import sys
3
+ import subprocess
4
+ from textwrap import dedent
5
+
6
+
7
+ def print_green(skk):
8
+ print("\033[92m {}\033[00m".format(skk))
9
+
10
+
11
+ def get_venv_path():
12
+ home_dir = os.path.expanduser("~")
13
+ venv_dir = os.path.join(home_dir, ".venvs")
14
+ if not os.path.exists(venv_dir):
15
+ os.makedirs(venv_dir)
16
+ return os.path.join(venv_dir, "read_only_friday_checker_venv")
17
+
18
+
19
+ def create_venv(venv_path):
20
+ print("Creating the virtual environment...", end="")
21
+ sys.stdout.flush()
22
+ subprocess.run(
23
+ ["python3", "-m", "venv", venv_path],
24
+ check=True,
25
+ stdout=subprocess.DEVNULL,
26
+ stderr=subprocess.DEVNULL,
27
+ )
28
+ print_green("󰄬")
29
+
30
+ print("Ensuring pip is up to date...", end="")
31
+ sys.stdout.flush()
32
+ pip_path = os.path.join(venv_path, "bin", "pip")
33
+ subprocess.run(
34
+ [pip_path, "install", "--upgrade", "pip"],
35
+ check=True,
36
+ stdout=subprocess.DEVNULL,
37
+ stderr=subprocess.DEVNULL,
38
+ )
39
+ print_green("󰄬")
40
+
41
+
42
+ def install_app(venv_path):
43
+ print("Installing Read Only Friday Checker into the virtual environment...", end="")
44
+ sys.stdout.flush()
45
+ pip_path = os.path.join(venv_path, "bin", "pip")
46
+ subprocess.run(
47
+ [pip_path, "install", "read_only_friday_checker"],
48
+ check=True,
49
+ stdout=subprocess.DEVNULL,
50
+ stderr=subprocess.DEVNULL,
51
+ )
52
+ print_green("󰄬")
53
+
54
+
55
+ def get_icon(venv_path):
56
+ site_packages = os.path.join(venv_path, "lib")
57
+ for folder in os.listdir(site_packages):
58
+ if folder.startswith("python"):
59
+ site_packages = os.path.join(site_packages, folder, "site-packages")
60
+ break
61
+
62
+ icon_relative_path = (
63
+ "read_only_friday_checker/resources/images/read_only_friday_checker-128.png"
64
+ )
65
+ full_icon_path = os.path.join(site_packages, icon_relative_path)
66
+ return full_icon_path
67
+
68
+
69
+ def get_python_path(venv_path):
70
+ return os.path.join(venv_path, "bin", "python3")
71
+
72
+
73
+ def get_app_path(venv_path):
74
+ return os.path.join(venv_path, "bin", "read-only-friday-checker")
75
+
76
+
77
+ def create_desktop_file(icon, version, python, app):
78
+ print("Creating the .desktop entry...", end="")
79
+ sys.stdout.flush()
80
+ desktop_content = dedent(f"""
81
+ [Desktop Entry]
82
+ Version={version}
83
+ Type=Application
84
+ Name=Psswd Box
85
+ Comment=This checks to see if today is Read Only Friday.
86
+ Exec={python} {app}
87
+ Icon={icon}
88
+ Terminal=false
89
+ Categories=Utility;
90
+ """)
91
+ desktop_content = desktop_content.lstrip()
92
+ with open(
93
+ os.path.expanduser(
94
+ "~/.local/share/applications/read_only_friday_checker.desktop"
95
+ ),
96
+ "w",
97
+ ) as f:
98
+ f.write(desktop_content)
99
+ print_green("󰄬")
100
+
101
+
102
+ def install():
103
+ venv_path = get_venv_path()
104
+ create_venv(venv_path)
105
+ install_app(venv_path)
106
+ version = "1.0.1"
107
+ icon = get_icon(venv_path)
108
+ python = get_python_path(venv_path)
109
+ app = get_app_path(venv_path)
110
+ create_desktop_file(icon, version, python, app)
111
+
112
+
113
+ def main():
114
+ install()
115
+
116
+
117
+ if __name__ == "__main__":
118
+ main()
@@ -0,0 +1,23 @@
1
+ [project]
2
+ name = "read_only_friday_checker"
3
+ version = "1.0.1"
4
+ description = "This checks to see if today is Read Only Friday."
5
+ readme = "src/read_only_friday_checker/resources/PYPI_README.md"
6
+ license = "MIT"
7
+ authors = [{ name = "Melvin Quick", email = "melvinquick@proton.me" }]
8
+ requires-python = ">=3.12"
9
+ dependencies = ["pyside6>=6.8.2.1", "requests>=2.32.3"]
10
+
11
+ [project.urls]
12
+ repository = "https://codeberg.org/melvinquick/read_only_friday_checker"
13
+ issues = "https://codeberg.org/melvinquick/read_only_friday_checker/issues"
14
+
15
+ [project.scripts]
16
+ read-only-friday-checker = "read_only_friday_checker.app:main"
17
+
18
+ [build-system]
19
+ requires = ["hatchling"]
20
+ build-backend = "hatchling.build"
21
+
22
+ [dependency-groups]
23
+ dev = ["bandit>=1.8.3"]
@@ -0,0 +1,87 @@
1
+ """
2
+ This checks to see if today is Read Only Friday.
3
+ """
4
+
5
+ import sys
6
+
7
+ from PySide6.QtCore import Qt
8
+ from PySide6.QtGui import QFont
9
+ from PySide6.QtWidgets import (
10
+ QApplication,
11
+ QMainWindow,
12
+ QWidget,
13
+ QPushButton,
14
+ QVBoxLayout,
15
+ )
16
+
17
+ from .rof_api_checker import RofApiChecker
18
+
19
+
20
+ class ReadOnlyFridayChecker(QMainWindow):
21
+ def __init__(self):
22
+ super().__init__()
23
+ self.init_ui()
24
+
25
+ def init_ui(self):
26
+ self.show()
27
+
28
+ # * Set window default settings
29
+ self.setWindowTitle("Read Only Friday Checker")
30
+ self.setFixedSize(300, 150)
31
+
32
+ # * Create widgets
33
+ self.rof_check = QPushButton("Is it read-only Friday? \nPress me to find out!")
34
+ self.rof_check.setFixedSize(280, 130)
35
+ self.rof_check.setFont(self.set_font())
36
+
37
+ # * Create layout
38
+ page = QVBoxLayout()
39
+ page.addWidget(self.rof_check)
40
+
41
+ gui = QWidget()
42
+ gui.setLayout(page)
43
+
44
+ self.setCentralWidget(gui)
45
+
46
+ # * Define connections
47
+ self.rof_check.pressed.connect(self.check_rof)
48
+
49
+ # * Apply theme to window
50
+ self.apply_theme()
51
+
52
+ def check_rof(self):
53
+ rof = RofApiChecker()
54
+ (
55
+ self.rof_check.setText("Yes! \nDon't change anything!")
56
+ if rof.get_response().json()["readonly"] is True
57
+ else self.rof_check.setText("Nope. \nChange away!")
58
+ )
59
+
60
+ def apply_theme(self):
61
+ self.main_stylesheet = """
62
+ background-color: #2e3440;
63
+ color: #eceff4;
64
+ border: 1px solid #434c5e;
65
+ border-radius: 4px;
66
+ padding: 2px 4px;
67
+ """
68
+ self.widget_stylesheet = """
69
+ background-color: #4c566a;
70
+ """
71
+ self.setStyleSheet(self.main_stylesheet)
72
+ self.rof_check.setStyleSheet(self.widget_stylesheet)
73
+
74
+ def set_font(self):
75
+ font = QFont()
76
+ font.setPointSize(12)
77
+ return font
78
+
79
+
80
+ def main():
81
+ app = QApplication(sys.argv)
82
+ main_window = ReadOnlyFridayChecker() # noqa: F841
83
+ sys.exit(app.exec())
84
+
85
+
86
+ if __name__ == "__main__":
87
+ main()
@@ -0,0 +1,18 @@
1
+ ## Donations
2
+
3
+ - [Buy Me A Coffee](https://www.buymeacoffee.com/KingKairos)
4
+ - [GitHub Sponsors](https://github.com/sponsors/melvinquick)
5
+
6
+ ## Purpose
7
+
8
+ This app was mostly made as a joke for my friends. It just reaches out to https://isitreadonlyfriday.com using their API and does a check to see if it's Read Only Friday in the EST timezone.
9
+
10
+ ## Install/Uninstall
11
+
12
+ Install: `curl -s https://codeberg.org/melvinquick/read_only_friday_checker/raw/branch/main/install.py | python3 -`
13
+ Uninstall: `curl -s https://codeberg.org/melvinquick/read_only_friday_checker/raw/branch/main/uninstall.py | python3 -`
14
+
15
+ ## Useful Information
16
+
17
+ - [Latest Release](https://codeberg.org/melvinquick/read_only_friday_checker/releases/latest)
18
+ - [Releases](https://codeberg.org/melvinquick/read_only_friday_checker/releases)
@@ -0,0 +1,11 @@
1
+ from requests import get
2
+
3
+
4
+ class RofApiChecker:
5
+ def __init__(self):
6
+ pass
7
+
8
+ def get_response(self):
9
+ return get(
10
+ "https://isitreadonlyfriday.com/api/isitreadonlyfriday/EST", timeout=5
11
+ )
@@ -0,0 +1,44 @@
1
+ import os
2
+ import sys
3
+ import shutil
4
+
5
+
6
+ def print_green(skk):
7
+ print("\033[92m {}\033[00m".format(skk))
8
+
9
+
10
+ def get_venv_path():
11
+ home_dir = os.path.expanduser("~")
12
+ venv_dir = os.path.join(home_dir, ".venvs")
13
+ return os.path.join(venv_dir, "read_only_friday_checker_venv")
14
+
15
+
16
+ def get_desktop_file_path():
17
+ return os.path.expanduser(
18
+ "~/.local/share/applications/read_only_friday_checker.desktop"
19
+ )
20
+
21
+
22
+ def uninstall():
23
+ venv_path = get_venv_path()
24
+ desktop_file_path = get_desktop_file_path()
25
+
26
+ if os.path.exists(venv_path):
27
+ print("Removing the virtual environment...", end="")
28
+ sys.stdout.flush()
29
+ shutil.rmtree(venv_path)
30
+ print_green("󰄬")
31
+
32
+ if os.path.exists(desktop_file_path):
33
+ print("Removing the .desktop entry...", end="")
34
+ sys.stdout.flush()
35
+ os.remove(desktop_file_path)
36
+ print_green("󰄬")
37
+
38
+
39
+ def main():
40
+ uninstall()
41
+
42
+
43
+ if __name__ == "__main__":
44
+ main()
@@ -0,0 +1,285 @@
1
+ version = 1
2
+ revision = 1
3
+ requires-python = ">=3.12"
4
+
5
+ [[package]]
6
+ name = "bandit"
7
+ version = "1.8.3"
8
+ source = { registry = "https://pypi.org/simple" }
9
+ dependencies = [
10
+ { name = "colorama", marker = "sys_platform == 'win32'" },
11
+ { name = "pyyaml" },
12
+ { name = "rich" },
13
+ { name = "stevedore" },
14
+ ]
15
+ sdist = { url = "https://files.pythonhosted.org/packages/1a/a5/144a45f8e67df9d66c3bc3f7e69a39537db8bff1189ab7cff4e9459215da/bandit-1.8.3.tar.gz", hash = "sha256:f5847beb654d309422985c36644649924e0ea4425c76dec2e89110b87506193a", size = 4232005 }
16
+ wheels = [
17
+ { url = "https://files.pythonhosted.org/packages/88/85/db74b9233e0aa27ec96891045c5e920a64dd5cbccd50f8e64e9460f48d35/bandit-1.8.3-py3-none-any.whl", hash = "sha256:28f04dc0d258e1dd0f99dee8eefa13d1cb5e3fde1a5ab0c523971f97b289bcd8", size = 129078 },
18
+ ]
19
+
20
+ [[package]]
21
+ name = "certifi"
22
+ version = "2025.1.31"
23
+ source = { registry = "https://pypi.org/simple" }
24
+ sdist = { url = "https://files.pythonhosted.org/packages/1c/ab/c9f1e32b7b1bf505bf26f0ef697775960db7932abeb7b516de930ba2705f/certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651", size = 167577 }
25
+ wheels = [
26
+ { url = "https://files.pythonhosted.org/packages/38/fc/bce832fd4fd99766c04d1ee0eead6b0ec6486fb100ae5e74c1d91292b982/certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe", size = 166393 },
27
+ ]
28
+
29
+ [[package]]
30
+ name = "charset-normalizer"
31
+ version = "3.4.1"
32
+ source = { registry = "https://pypi.org/simple" }
33
+ sdist = { url = "https://files.pythonhosted.org/packages/16/b0/572805e227f01586461c80e0fd25d65a2115599cc9dad142fee4b747c357/charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3", size = 123188 }
34
+ wheels = [
35
+ { url = "https://files.pythonhosted.org/packages/0a/9a/dd1e1cdceb841925b7798369a09279bd1cf183cef0f9ddf15a3a6502ee45/charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545", size = 196105 },
36
+ { url = "https://files.pythonhosted.org/packages/d3/8c/90bfabf8c4809ecb648f39794cf2a84ff2e7d2a6cf159fe68d9a26160467/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7", size = 140404 },
37
+ { url = "https://files.pythonhosted.org/packages/ad/8f/e410d57c721945ea3b4f1a04b74f70ce8fa800d393d72899f0a40526401f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757", size = 150423 },
38
+ { url = "https://files.pythonhosted.org/packages/f0/b8/e6825e25deb691ff98cf5c9072ee0605dc2acfca98af70c2d1b1bc75190d/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa", size = 143184 },
39
+ { url = "https://files.pythonhosted.org/packages/3e/a2/513f6cbe752421f16d969e32f3583762bfd583848b763913ddab8d9bfd4f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d", size = 145268 },
40
+ { url = "https://files.pythonhosted.org/packages/74/94/8a5277664f27c3c438546f3eb53b33f5b19568eb7424736bdc440a88a31f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616", size = 147601 },
41
+ { url = "https://files.pythonhosted.org/packages/7c/5f/6d352c51ee763623a98e31194823518e09bfa48be2a7e8383cf691bbb3d0/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b", size = 141098 },
42
+ { url = "https://files.pythonhosted.org/packages/78/d4/f5704cb629ba5ab16d1d3d741396aec6dc3ca2b67757c45b0599bb010478/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d", size = 149520 },
43
+ { url = "https://files.pythonhosted.org/packages/c5/96/64120b1d02b81785f222b976c0fb79a35875457fa9bb40827678e54d1bc8/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a", size = 152852 },
44
+ { url = "https://files.pythonhosted.org/packages/84/c9/98e3732278a99f47d487fd3468bc60b882920cef29d1fa6ca460a1fdf4e6/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9", size = 150488 },
45
+ { url = "https://files.pythonhosted.org/packages/13/0e/9c8d4cb99c98c1007cc11eda969ebfe837bbbd0acdb4736d228ccaabcd22/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1", size = 146192 },
46
+ { url = "https://files.pythonhosted.org/packages/b2/21/2b6b5b860781a0b49427309cb8670785aa543fb2178de875b87b9cc97746/charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35", size = 95550 },
47
+ { url = "https://files.pythonhosted.org/packages/21/5b/1b390b03b1d16c7e382b561c5329f83cc06623916aab983e8ab9239c7d5c/charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f", size = 102785 },
48
+ { url = "https://files.pythonhosted.org/packages/38/94/ce8e6f63d18049672c76d07d119304e1e2d7c6098f0841b51c666e9f44a0/charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda", size = 195698 },
49
+ { url = "https://files.pythonhosted.org/packages/24/2e/dfdd9770664aae179a96561cc6952ff08f9a8cd09a908f259a9dfa063568/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313", size = 140162 },
50
+ { url = "https://files.pythonhosted.org/packages/24/4e/f646b9093cff8fc86f2d60af2de4dc17c759de9d554f130b140ea4738ca6/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9", size = 150263 },
51
+ { url = "https://files.pythonhosted.org/packages/5e/67/2937f8d548c3ef6e2f9aab0f6e21001056f692d43282b165e7c56023e6dd/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b", size = 142966 },
52
+ { url = "https://files.pythonhosted.org/packages/52/ed/b7f4f07de100bdb95c1756d3a4d17b90c1a3c53715c1a476f8738058e0fa/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11", size = 144992 },
53
+ { url = "https://files.pythonhosted.org/packages/96/2c/d49710a6dbcd3776265f4c923bb73ebe83933dfbaa841c5da850fe0fd20b/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f", size = 147162 },
54
+ { url = "https://files.pythonhosted.org/packages/b4/41/35ff1f9a6bd380303dea55e44c4933b4cc3c4850988927d4082ada230273/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd", size = 140972 },
55
+ { url = "https://files.pythonhosted.org/packages/fb/43/c6a0b685fe6910d08ba971f62cd9c3e862a85770395ba5d9cad4fede33ab/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2", size = 149095 },
56
+ { url = "https://files.pythonhosted.org/packages/4c/ff/a9a504662452e2d2878512115638966e75633519ec11f25fca3d2049a94a/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886", size = 152668 },
57
+ { url = "https://files.pythonhosted.org/packages/6c/71/189996b6d9a4b932564701628af5cee6716733e9165af1d5e1b285c530ed/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601", size = 150073 },
58
+ { url = "https://files.pythonhosted.org/packages/e4/93/946a86ce20790e11312c87c75ba68d5f6ad2208cfb52b2d6a2c32840d922/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd", size = 145732 },
59
+ { url = "https://files.pythonhosted.org/packages/cd/e5/131d2fb1b0dddafc37be4f3a2fa79aa4c037368be9423061dccadfd90091/charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407", size = 95391 },
60
+ { url = "https://files.pythonhosted.org/packages/27/f2/4f9a69cc7712b9b5ad8fdb87039fd89abba997ad5cbe690d1835d40405b0/charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971", size = 102702 },
61
+ { url = "https://files.pythonhosted.org/packages/0e/f6/65ecc6878a89bb1c23a086ea335ad4bf21a588990c3f535a227b9eea9108/charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85", size = 49767 },
62
+ ]
63
+
64
+ [[package]]
65
+ name = "colorama"
66
+ version = "0.4.6"
67
+ source = { registry = "https://pypi.org/simple" }
68
+ sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 }
69
+ wheels = [
70
+ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 },
71
+ ]
72
+
73
+ [[package]]
74
+ name = "idna"
75
+ version = "3.10"
76
+ source = { registry = "https://pypi.org/simple" }
77
+ sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490 }
78
+ wheels = [
79
+ { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 },
80
+ ]
81
+
82
+ [[package]]
83
+ name = "markdown-it-py"
84
+ version = "3.0.0"
85
+ source = { registry = "https://pypi.org/simple" }
86
+ dependencies = [
87
+ { name = "mdurl" },
88
+ ]
89
+ sdist = { url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", size = 74596 }
90
+ wheels = [
91
+ { url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528 },
92
+ ]
93
+
94
+ [[package]]
95
+ name = "mdurl"
96
+ version = "0.1.2"
97
+ source = { registry = "https://pypi.org/simple" }
98
+ sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729 }
99
+ wheels = [
100
+ { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979 },
101
+ ]
102
+
103
+ [[package]]
104
+ name = "pbr"
105
+ version = "6.1.1"
106
+ source = { registry = "https://pypi.org/simple" }
107
+ dependencies = [
108
+ { name = "setuptools" },
109
+ ]
110
+ sdist = { url = "https://files.pythonhosted.org/packages/01/d2/510cc0d218e753ba62a1bc1434651db3cd797a9716a0a66cc714cb4f0935/pbr-6.1.1.tar.gz", hash = "sha256:93ea72ce6989eb2eed99d0f75721474f69ad88128afdef5ac377eb797c4bf76b", size = 125702 }
111
+ wheels = [
112
+ { url = "https://files.pythonhosted.org/packages/47/ac/684d71315abc7b1214d59304e23a982472967f6bf4bde5a98f1503f648dc/pbr-6.1.1-py2.py3-none-any.whl", hash = "sha256:38d4daea5d9fa63b3f626131b9d34947fd0c8be9b05a29276870580050a25a76", size = 108997 },
113
+ ]
114
+
115
+ [[package]]
116
+ name = "pygments"
117
+ version = "2.19.1"
118
+ source = { registry = "https://pypi.org/simple" }
119
+ sdist = { url = "https://files.pythonhosted.org/packages/7c/2d/c3338d48ea6cc0feb8446d8e6937e1408088a72a39937982cc6111d17f84/pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f", size = 4968581 }
120
+ wheels = [
121
+ { url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293 },
122
+ ]
123
+
124
+ [[package]]
125
+ name = "pyside6"
126
+ version = "6.8.2.1"
127
+ source = { registry = "https://pypi.org/simple" }
128
+ dependencies = [
129
+ { name = "pyside6-addons" },
130
+ { name = "pyside6-essentials" },
131
+ { name = "shiboken6" },
132
+ ]
133
+ wheels = [
134
+ { url = "https://files.pythonhosted.org/packages/14/0f/bdb12758448b52497dba7a3bbfb5855dfb29129c64ddbda4da56c4b11f6c/PySide6-6.8.2.1-cp39-abi3-macosx_12_0_universal2.whl", hash = "sha256:3fcb551729f235475b2abe7d919027de54a65d850e744f60716f890202273720", size = 550254 },
135
+ { url = "https://files.pythonhosted.org/packages/fa/00/0b232a25eeb8671202d7a7ec92893bd25b965debfd1d5d7aad637b067efe/PySide6-6.8.2.1-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:23d2a1a77b25459a049c4276b4e0bbfb375b73d3921061b1a16bcfa64e1fe517", size = 550489 },
136
+ { url = "https://files.pythonhosted.org/packages/8b/8a/9eb78cf71233399236c257cf85770ca4673ed0b9b959895856285157f643/PySide6-6.8.2.1-cp39-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:bfefa80a93db06dc64c0e7beef0377c9b8ca51e007cfc34575defe065af893b6", size = 550491 },
137
+ { url = "https://files.pythonhosted.org/packages/fb/3d/3e626e1953408cb8977a050ce54b1f1adff9a4c06bb519f6d56ebaf9310c/PySide6-6.8.2.1-cp39-abi3-win_amd64.whl", hash = "sha256:92361e41727910e3560ea5ba494fabecc76cd20892c9fcb2ced07619081c4e65", size = 556167 },
138
+ ]
139
+
140
+ [[package]]
141
+ name = "pyside6-addons"
142
+ version = "6.8.2.1"
143
+ source = { registry = "https://pypi.org/simple" }
144
+ dependencies = [
145
+ { name = "pyside6-essentials" },
146
+ { name = "shiboken6" },
147
+ ]
148
+ wheels = [
149
+ { url = "https://files.pythonhosted.org/packages/6e/79/a868ffac6eb446afdd25312b61872d0d11173032d50320d48b5277b68ccf/PySide6_Addons-6.8.2.1-cp39-abi3-macosx_12_0_universal2.whl", hash = "sha256:5558816018042fecd0d782111ced529585a23ea9a010b518f8495764f578a01f", size = 302704501 },
150
+ { url = "https://files.pythonhosted.org/packages/95/3a/93e0028805c50ceff8b8ae0f274d502805b8a864129b83d705ab12d48f78/PySide6_Addons-6.8.2.1-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f3d85e676851ada8238bc76ebfacbee738fc0b35b3bc15c9765dd107b8ee6ec4", size = 160641392 },
151
+ { url = "https://files.pythonhosted.org/packages/84/5c/e822e4ef6c2140b273cb0f8531d7e200c8771bd61832decc524fc318c335/PySide6_Addons-6.8.2.1-cp39-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:d904179f16deeca4ba440b4ef78e8d54df2b994b46784ad9d53b741082f3b2a7", size = 156398179 },
152
+ { url = "https://files.pythonhosted.org/packages/0a/f8/98f85194f85a1fcff44ad98cd80cf6e856f7edee9e744fba81dec48b0ae9/PySide6_Addons-6.8.2.1-cp39-abi3-win_amd64.whl", hash = "sha256:c761cc45022aa79d8419e671e7fb34a4a3e5b3826f1e68fcb819bd6e3a387fbb", size = 127973648 },
153
+ ]
154
+
155
+ [[package]]
156
+ name = "pyside6-essentials"
157
+ version = "6.8.2.1"
158
+ source = { registry = "https://pypi.org/simple" }
159
+ dependencies = [
160
+ { name = "shiboken6" },
161
+ ]
162
+ wheels = [
163
+ { url = "https://files.pythonhosted.org/packages/01/bb/0127a53530cec0f9e7268e2fe235322b7b6e592caeb36c558b64da6ec52c/PySide6_Essentials-6.8.2.1-cp39-abi3-macosx_12_0_universal2.whl", hash = "sha256:ae5cc48f7e9a08e73e3ec2387ce245c8150e620b8d5a87548ebd4b8e3aeae49b", size = 134909713 },
164
+ { url = "https://files.pythonhosted.org/packages/d2/f9/aa4ff511ff1f3dd177f7e8f5a635e03fe578fa2045c8d6be4577e7db3b28/PySide6_Essentials-6.8.2.1-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:5ab31e5395a4724102edd6e8ff980fa3f7cde2aa79050763a1dcc30bb914195a", size = 95331575 },
165
+ { url = "https://files.pythonhosted.org/packages/fd/69/595002d860ee58431fe7add081d6f54fff94ae9680f2eb8cd355c1649bb6/PySide6_Essentials-6.8.2.1-cp39-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:7aed46f91d44399b4c713cf7387f5fb6f0114413fbcdbde493a528fb8e19f6ed", size = 93200219 },
166
+ { url = "https://files.pythonhosted.org/packages/5b/54/28a8b03f327e2c1d27d4a1ccf1a44997afc73c00ad07125d889640367194/PySide6_Essentials-6.8.2.1-cp39-abi3-win_amd64.whl", hash = "sha256:18de224f09108998d194e60f2fb8a1e86367dd525dd8a6192598e80e6ada649e", size = 72502927 },
167
+ ]
168
+
169
+ [[package]]
170
+ name = "pyyaml"
171
+ version = "6.0.2"
172
+ source = { registry = "https://pypi.org/simple" }
173
+ sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631 }
174
+ wheels = [
175
+ { url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873 },
176
+ { url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302 },
177
+ { url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154 },
178
+ { url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223 },
179
+ { url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542 },
180
+ { url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164 },
181
+ { url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611 },
182
+ { url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591 },
183
+ { url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338 },
184
+ { url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309 },
185
+ { url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679 },
186
+ { url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428 },
187
+ { url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361 },
188
+ { url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523 },
189
+ { url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660 },
190
+ { url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597 },
191
+ { url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527 },
192
+ { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446 },
193
+ ]
194
+
195
+ [[package]]
196
+ name = "read-only-friday-checker"
197
+ version = "1.0.1"
198
+ source = { editable = "." }
199
+ dependencies = [
200
+ { name = "pyside6" },
201
+ { name = "requests" },
202
+ ]
203
+
204
+ [package.dev-dependencies]
205
+ dev = [
206
+ { name = "bandit" },
207
+ ]
208
+
209
+ [package.metadata]
210
+ requires-dist = [
211
+ { name = "pyside6", specifier = ">=6.8.2.1" },
212
+ { name = "requests", specifier = ">=2.32.3" },
213
+ ]
214
+
215
+ [package.metadata.requires-dev]
216
+ dev = [{ name = "bandit", specifier = ">=1.8.3" }]
217
+
218
+ [[package]]
219
+ name = "requests"
220
+ version = "2.32.3"
221
+ source = { registry = "https://pypi.org/simple" }
222
+ dependencies = [
223
+ { name = "certifi" },
224
+ { name = "charset-normalizer" },
225
+ { name = "idna" },
226
+ { name = "urllib3" },
227
+ ]
228
+ sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218 }
229
+ wheels = [
230
+ { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928 },
231
+ ]
232
+
233
+ [[package]]
234
+ name = "rich"
235
+ version = "13.9.4"
236
+ source = { registry = "https://pypi.org/simple" }
237
+ dependencies = [
238
+ { name = "markdown-it-py" },
239
+ { name = "pygments" },
240
+ ]
241
+ sdist = { url = "https://files.pythonhosted.org/packages/ab/3a/0316b28d0761c6734d6bc14e770d85506c986c85ffb239e688eeaab2c2bc/rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098", size = 223149 }
242
+ wheels = [
243
+ { url = "https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90", size = 242424 },
244
+ ]
245
+
246
+ [[package]]
247
+ name = "setuptools"
248
+ version = "78.0.2"
249
+ source = { registry = "https://pypi.org/simple" }
250
+ sdist = { url = "https://files.pythonhosted.org/packages/4c/f4/aa8d364f0dc1f33b2718938648c31202e2db5cd6479a73f0a9ca5a88372d/setuptools-78.0.2.tar.gz", hash = "sha256:137525e6afb9022f019d6e884a319017f9bf879a0d8783985d32cbc8683cab93", size = 1367747 }
251
+ wheels = [
252
+ { url = "https://files.pythonhosted.org/packages/aa/db/2fd473dfe436ad19fda190f4079162d400402aedfcc41e048d38c0a375c6/setuptools-78.0.2-py3-none-any.whl", hash = "sha256:4a612c80e1f1d71b80e4906ce730152e8dec23df439f82731d9d0b608d7b700d", size = 1255965 },
253
+ ]
254
+
255
+ [[package]]
256
+ name = "shiboken6"
257
+ version = "6.8.2.1"
258
+ source = { registry = "https://pypi.org/simple" }
259
+ wheels = [
260
+ { url = "https://files.pythonhosted.org/packages/d8/8f/71ccc3642edb59efaca35d4ba974248b1d7847f5e4d87d3ea323e73b2cab/shiboken6-6.8.2.1-cp39-abi3-macosx_12_0_universal2.whl", hash = "sha256:d3dedeb3732ecfc920c9f97da769c0022a1c3bda99346a9eba56fbf093deaa75", size = 401266 },
261
+ { url = "https://files.pythonhosted.org/packages/7b/ff/ab4f287b9573e50b5a47c10e2af8feb5abecc3c7431bd5deec135efc969e/shiboken6-6.8.2.1-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:c83e90056f13d0872cc4d2b7bf60b6d6e3b1b172f1f91910c0ba5b641af01758", size = 204273 },
262
+ { url = "https://files.pythonhosted.org/packages/a6/b0/4fb102eb5260ee06d379769f3c4f0b82ef397c15f1cbbbbb3f6dceb86d5d/shiboken6-6.8.2.1-cp39-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:8592401423acc693f51dbbfae5e7493cc3ed6738be79daaf90afa07f4da5bb25", size = 200909 },
263
+ { url = "https://files.pythonhosted.org/packages/ae/88/b56bdb38a11066e4eecd1da6be4205bb406398b733b392b11c5aaf9547f7/shiboken6-6.8.2.1-cp39-abi3-win_amd64.whl", hash = "sha256:1b751d47b759762b7ca31bad278d52eca4105d3028880d93979261ebbfba810c", size = 1150270 },
264
+ ]
265
+
266
+ [[package]]
267
+ name = "stevedore"
268
+ version = "5.4.1"
269
+ source = { registry = "https://pypi.org/simple" }
270
+ dependencies = [
271
+ { name = "pbr" },
272
+ ]
273
+ sdist = { url = "https://files.pythonhosted.org/packages/28/3f/13cacea96900bbd31bb05c6b74135f85d15564fc583802be56976c940470/stevedore-5.4.1.tar.gz", hash = "sha256:3135b5ae50fe12816ef291baff420acb727fcd356106e3e9cbfa9e5985cd6f4b", size = 513858 }
274
+ wheels = [
275
+ { url = "https://files.pythonhosted.org/packages/f7/45/8c4ebc0c460e6ec38e62ab245ad3c7fc10b210116cea7c16d61602aa9558/stevedore-5.4.1-py3-none-any.whl", hash = "sha256:d10a31c7b86cba16c1f6e8d15416955fc797052351a56af15e608ad20811fcfe", size = 49533 },
276
+ ]
277
+
278
+ [[package]]
279
+ name = "urllib3"
280
+ version = "2.3.0"
281
+ source = { registry = "https://pypi.org/simple" }
282
+ sdist = { url = "https://files.pythonhosted.org/packages/aa/63/e53da845320b757bf29ef6a9062f5c669fe997973f966045cb019c3f4b66/urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d", size = 307268 }
283
+ wheels = [
284
+ { url = "https://files.pythonhosted.org/packages/c8/19/4ec628951a74043532ca2cf5d97b7b14863931476d117c471e8e2b1eb39f/urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df", size = 128369 },
285
+ ]