Sat, 31 Dec 2022 16:23:21 +0100
Updated copyright for 2023.
8988
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | #!/usr/bin/env python3 |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | # -*- coding: utf-8 -*- |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3 | |
9653
e67609152c5e
Updated copyright for 2023.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9632
diff
changeset
|
4 | # Copyright (c) 2022 - 2023 Detlev Offenbach <detlev@die-offenbachs.de> |
8988
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | # |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | # This script installs all packages eric depends on. |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | Installation script for the eric IDE dependencies. |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | """ |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
9314
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
12 | import contextlib |
9324
7f7f3e47b238
Set some security considerations to 'ok'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9314
diff
changeset
|
13 | import subprocess # secok |
8988
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | import sys |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | |
9314
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
17 | def exit(rcode=0): |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
18 | """ |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
19 | Exit the install script. |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
20 | |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
21 | @param rcode result code to report back (integer) |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
22 | """ |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
23 | print() |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
24 | |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
25 | if sys.platform.startswith(("win", "cygwin")): |
9328
49a0a9cb2505
Fixed some code style issues detected by the new checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9324
diff
changeset
|
26 | with contextlib.suppress(EOFError): |
9314
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
27 | input("Press enter to continue...") # secok |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
28 | |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
29 | sys.exit(rcode) |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
30 | |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
31 | |
8988
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | def pipInstall(packageName): |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | """ |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | Install the given package via pip. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
35 | |
8988
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | @param packageName name of the package to be installed |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | @type str |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | @return flag indicating a successful installation |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | @rtype bool |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | """ |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | ok = False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
42 | exitCode = subprocess.run( # secok |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
43 | [ |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
44 | sys.executable, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
45 | "-m", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
46 | "pip", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
47 | "install", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
48 | "--prefer-binary", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
49 | "--upgrade", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
50 | packageName, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
51 | ] |
8988
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | ).returncode |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
53 | ok = exitCode == 0 |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
54 | |
8988
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | return ok |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | def main(): |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | """ |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | Function to install the eric dependencies. |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | """ |
9314
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
62 | requiredPackages = ( |
9209
b99e7fd55fd3
Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9107
diff
changeset
|
63 | "PyQt6>=6.2.0", |
b99e7fd55fd3
Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9107
diff
changeset
|
64 | "PyQt6-Charts>=6.2.0", |
b99e7fd55fd3
Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9107
diff
changeset
|
65 | "PyQt6-WebEngine>=6.2.0", |
b99e7fd55fd3
Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9107
diff
changeset
|
66 | "PyQt6-QScintilla>=2.13.0", |
9107
8e9525a780ae
Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9016
diff
changeset
|
67 | "tomlkit", |
8988
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | "asttokens", |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | "EditorConfig", |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | "Pygments", |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | "parso", |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | "jedi", |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | "packaging", |
9209
b99e7fd55fd3
Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9107
diff
changeset
|
74 | "cyclonedx-python-lib", |
b99e7fd55fd3
Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9107
diff
changeset
|
75 | "cyclonedx-bom", |
b99e7fd55fd3
Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9107
diff
changeset
|
76 | "trove-classifiers", |
9314
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
77 | "black>=22.6.0", |
9632
dd907ee33b03
Removed use of 'send2trash'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9328
diff
changeset
|
78 | "isort>=5.10.0", |
8988
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | ) |
9314
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
80 | optionalPackages = ( |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
81 | "docutils", |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
82 | "Markdown", |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
83 | "pyyaml", |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
84 | "chardet", |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
85 | "pyenchant", |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
86 | "wheel", |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
87 | ) |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
88 | |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
89 | packages = [] |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
90 | if len(sys.argv) == 2: |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
91 | if sys.argv[1] == "--all": |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
92 | packages = requiredPackages + optionalPackages |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
93 | elif sys.argv[1] == "--required": |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
94 | packages = requiredPackages |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
95 | elif sys.argv[1] == "--optional": |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
96 | packages = optionalPackages |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
97 | |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
98 | if not packages: |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
99 | print("Usage:") |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
100 | print(" install-dependencies --all | --optional | --required") |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
101 | print("where:") |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
102 | print(" --all install all dependencies") |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
103 | print(" --optional install all optional dependencies") |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
104 | print(" --required install all required dependencies") |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
105 | |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
106 | exit(42) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
107 | |
8988
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | failedPackages = [] |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | for package in packages: |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | ok = pipInstall(package) |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | if not ok: |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | failedPackages.append(package) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
113 | |
8988
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | print() |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | print("Installation Summary") |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | print("--------------------") |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | if failedPackages: |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | print("These packages could not be installed:") |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | for package in failedPackages: |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | print(" " + package) |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | else: |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | print("All packages installed successfully.") |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | |
9314
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
124 | exit(0) |
7ba79b00ea96
install scripts
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
125 | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
126 | |
8988
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | if __name__ == "__main__": |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | main() |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | # |
ffa38e0415df
Added a script to install all of eric's dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | # eflag: noqa = M801 |