homebridge-kasa-python 2.8.0-beta.5 → 2.8.0-beta.6
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.
- package/config.schema.json +9 -0
- package/dist/config.d.ts +2 -0
- package/dist/config.js +3 -0
- package/dist/config.js.map +1 -1
- package/dist/python/pythonChecker.d.ts +3 -1
- package/dist/python/pythonChecker.js +113 -128
- package/dist/python/pythonChecker.js.map +1 -1
- package/package.json +13 -13
- package/requirements.txt +1 -1
package/config.schema.json
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
"pluginAlias": "KasaPython",
|
|
3
3
|
"pluginType": "platform",
|
|
4
4
|
"singular": true,
|
|
5
|
+
"strictValidation": true,
|
|
5
6
|
"headerDisplay": "Kasa Python Plugin.<p>Most users do not require configuration and can just click \"Save\" to get started. See [README](https://github.com/ZeliardM/homebridge-kasa-python/blob/master/README.md) for more information.</p>",
|
|
6
7
|
"footerDisplay": "",
|
|
7
8
|
"schema": {
|
|
@@ -111,6 +112,13 @@
|
|
|
111
112
|
"description": "The time to wait to combine similar commands for a device before sending a command to a device (milliseconds). Default: 100.",
|
|
112
113
|
"default": 100
|
|
113
114
|
},
|
|
115
|
+
"pythonPath": {
|
|
116
|
+
"title": "Python Path",
|
|
117
|
+
"type": "string",
|
|
118
|
+
"description": "Path to the Python executable. If not set, the plugin will use the default Python path.",
|
|
119
|
+
"placeholder": "Enter a custom Python path if needed.",
|
|
120
|
+
"minLength": 1
|
|
121
|
+
},
|
|
114
122
|
"advancedPythonLogging": {
|
|
115
123
|
"title": "Advanced Python Logging",
|
|
116
124
|
"type": "boolean",
|
|
@@ -212,6 +220,7 @@
|
|
|
212
220
|
"expandable": true,
|
|
213
221
|
"items": [
|
|
214
222
|
"waitTimeUpdate",
|
|
223
|
+
"pythonPath",
|
|
215
224
|
"advancedPythonLogging"
|
|
216
225
|
]
|
|
217
226
|
}
|
package/dist/config.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export interface KasaPythonConfigInput {
|
|
|
18
18
|
manualDevices?: (string | ConfigDevice)[];
|
|
19
19
|
excludeMacAddresses?: string[];
|
|
20
20
|
waitTimeUpdate?: number;
|
|
21
|
+
pythonPath?: string;
|
|
21
22
|
advancedPythonLogging?: boolean;
|
|
22
23
|
}
|
|
23
24
|
export type KasaPythonConfig = {
|
|
@@ -38,6 +39,7 @@ export type KasaPythonConfig = {
|
|
|
38
39
|
};
|
|
39
40
|
advancedOptions: {
|
|
40
41
|
waitTimeUpdate: number;
|
|
42
|
+
pythonPath?: string;
|
|
41
43
|
advancedPythonLogging: boolean;
|
|
42
44
|
};
|
|
43
45
|
};
|
package/dist/config.js
CHANGED
|
@@ -43,6 +43,7 @@ export const defaultConfig = {
|
|
|
43
43
|
},
|
|
44
44
|
advancedOptions: {
|
|
45
45
|
waitTimeUpdate: 100,
|
|
46
|
+
pythonPath: '',
|
|
46
47
|
advancedPythonLogging: false,
|
|
47
48
|
},
|
|
48
49
|
};
|
|
@@ -83,6 +84,7 @@ function validateConfig(config) {
|
|
|
83
84
|
errors.push('`excludeMacAddresses` should be an array of strings.');
|
|
84
85
|
}
|
|
85
86
|
validateType(config, 'waitTimeUpdate', 'number', errors);
|
|
87
|
+
validateType(config, 'pythonPath', 'string', errors);
|
|
86
88
|
validateType(config, 'advancedPythonLogging', 'boolean', errors);
|
|
87
89
|
return errors;
|
|
88
90
|
}
|
|
@@ -118,6 +120,7 @@ export function parseConfig(config) {
|
|
|
118
120
|
},
|
|
119
121
|
advancedOptions: {
|
|
120
122
|
waitTimeUpdate: c.waitTimeUpdate ?? defaultConfig.advancedOptions.waitTimeUpdate,
|
|
123
|
+
pythonPath: c.pythonPath ?? defaultConfig.advancedOptions.pythonPath,
|
|
121
124
|
advancedPythonLogging: c.advancedPythonLogging ?? defaultConfig.advancedOptions.advancedPythonLogging,
|
|
122
125
|
},
|
|
123
126
|
};
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAGhC;IACA;IAHT,YACE,OAAe,EACR,MAAwB,EACxB,YAAsB;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,WAAM,GAAN,MAAM,CAAkB;QACxB,iBAAY,GAAZ,YAAY,CAAU;QAG7B,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QACjE,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAEO,aAAa,CACnB,OAAe,EACf,MAAwB,EACxB,YAAsB;QAEtB,IAAI,gBAAgB,GAAG,OAAO,CAAC;QAC/B,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,gBAAgB,IAAI,MAAM,cAAc,EAAE,CAAC;QAC7C,CAAC;QACD,IAAI,YAAY,YAAY,KAAK,EAAE,CAAC;YAClC,gBAAgB,IAAI,uBAAuB,YAAY,CAAC,OAAO,EAAE,CAAC;QACpE,CAAC;aAAM,IAAI,YAAY,EAAE,CAAC;YACxB,gBAAgB,IAAI,qDAAqD,YAAY,GAAG,CAAC;QAC3F,CAAC;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,12 +16,14 @@ declare class PythonChecker {
|
|
|
16
16
|
allInOne(isUpgrade: boolean): Promise<void>;
|
|
17
17
|
private ensurePluginDir;
|
|
18
18
|
private ensurePythonVersion;
|
|
19
|
+
private setPythonExecutables;
|
|
20
|
+
private isPythonSupported;
|
|
21
|
+
private getPythonMajorMinor;
|
|
19
22
|
private ensureVenvCreated;
|
|
20
23
|
private isVenvCreated;
|
|
21
24
|
private createVenv;
|
|
22
25
|
private ensureVenvUsesCorrectPythonHome;
|
|
23
26
|
private getPythonHome;
|
|
24
|
-
private getSystemPythonVersions;
|
|
25
27
|
private getUserPath;
|
|
26
28
|
private ensureVenvPipUpToDate;
|
|
27
29
|
private updatePip;
|
|
@@ -21,8 +21,19 @@ class PythonChecker {
|
|
|
21
21
|
constructor(platform) {
|
|
22
22
|
this.platform = platform;
|
|
23
23
|
this.log = prefixLogger(this.platform.log, '[Python Check]');
|
|
24
|
-
this.advancedPythonLogging = this.platform.config.advancedOptions
|
|
25
|
-
this.pythonExecutables = [
|
|
24
|
+
this.advancedPythonLogging = this.platform.config.advancedOptions?.advancedPythonLogging ?? false;
|
|
25
|
+
this.pythonExecutables = [
|
|
26
|
+
'python',
|
|
27
|
+
'python3',
|
|
28
|
+
'python3.11',
|
|
29
|
+
'python3.12',
|
|
30
|
+
'python3.13',
|
|
31
|
+
'/usr/bin/python3',
|
|
32
|
+
'/opt/homebrew/bin/python3',
|
|
33
|
+
'/usr/local/bin/python3',
|
|
34
|
+
`${process.env.HOME}/miniforge3/bin/python3`,
|
|
35
|
+
`${process.env.HOME}/miniconda3/bin/python3`,
|
|
36
|
+
];
|
|
26
37
|
this.pluginDirPath = path.join(this.platform.storagePath, 'kasa-python');
|
|
27
38
|
this.venvPath = path.join(this.pluginDirPath, '.venv');
|
|
28
39
|
this.venvConfigPath = path.join(this.venvPath, 'pyvenv.cfg');
|
|
@@ -50,38 +61,63 @@ class PythonChecker {
|
|
|
50
61
|
}
|
|
51
62
|
}
|
|
52
63
|
async ensurePythonVersion() {
|
|
53
|
-
this.log.debug('
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
const majorMinorVersion = version.split('.').slice(0, 2).join('.');
|
|
64
|
-
if (SUPPORTED_PYTHON_VERSIONS.includes(majorMinorVersion)) {
|
|
65
|
-
supported = true;
|
|
66
|
-
if (versionMap[majorMinorVersion]) {
|
|
67
|
-
this.pythonExecutable = versionMap[majorMinorVersion];
|
|
68
|
-
this.venvPythonExecutable = path.join(this.venvPath, 'bin', versionMap[majorMinorVersion]);
|
|
69
|
-
this.venvPipExecutable = path.join(this.venvPath, 'bin', `pip${majorMinorVersion}`);
|
|
70
|
-
this.log.debug(`Using Python executable: ${this.pythonExecutable}`);
|
|
71
|
-
}
|
|
72
|
-
break;
|
|
64
|
+
this.log.debug('Checking for supported Python version');
|
|
65
|
+
const userPythonPath = this.platform.config.advancedOptions.pythonPath ?? '';
|
|
66
|
+
if (userPythonPath) {
|
|
67
|
+
this.log.debug(`User configured pythonPath: ${userPythonPath}`);
|
|
68
|
+
if (await this.isPythonSupported(userPythonPath)) {
|
|
69
|
+
this.setPythonExecutables(userPythonPath);
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
this.log.error(`Configured pythonPath (${userPythonPath}) is not supported`);
|
|
73
74
|
}
|
|
74
75
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
76
|
+
for (const executable of this.pythonExecutables) {
|
|
77
|
+
if (await this.isPythonSupported(executable)) {
|
|
78
|
+
this.setPythonExecutables(executable);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
const fallback = '/usr/bin/python3';
|
|
83
|
+
this.log.warn(`Falling back to system Python: ${fallback}`);
|
|
84
|
+
if (await this.isPythonSupported(fallback)) {
|
|
85
|
+
this.setPythonExecutables(fallback);
|
|
80
86
|
}
|
|
81
87
|
else {
|
|
82
|
-
this.log.
|
|
88
|
+
this.log.error(`System Python (${fallback}) is unsupported`);
|
|
89
|
+
throw new Error('No supported Python version found. Install Python 3.11+ and restart Homebridge.');
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
setPythonExecutables(pythonPath) {
|
|
93
|
+
const majorMinor = this.getPythonMajorMinor(pythonPath);
|
|
94
|
+
const pipName = `pip${majorMinor}`;
|
|
95
|
+
const pyName = `python${majorMinor}`;
|
|
96
|
+
this.pythonExecutable = pythonPath;
|
|
97
|
+
this.venvPythonExecutable = path.join(this.venvPath, 'bin', pyName);
|
|
98
|
+
this.venvPipExecutable = path.join(this.venvPath, 'bin', pipName);
|
|
99
|
+
this.log.debug(`Selected Python executable: ${this.pythonExecutable}`);
|
|
100
|
+
}
|
|
101
|
+
async isPythonSupported(executable) {
|
|
102
|
+
try {
|
|
103
|
+
const [stdout] = await runCommand(this.log, executable, ['--version']);
|
|
104
|
+
const version = stdout.trim().replace('Python ', '');
|
|
105
|
+
const majorMinor = version.split('.').slice(0, 2).join('.');
|
|
106
|
+
this.log.debug(`Detected Python version ${version} at ${executable}`);
|
|
107
|
+
return SUPPORTED_PYTHON_VERSIONS.includes(majorMinor);
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
this.log.debug(`Failed to check Python version for ${executable}: ${err}`);
|
|
111
|
+
return false;
|
|
83
112
|
}
|
|
84
113
|
}
|
|
114
|
+
getPythonMajorMinor(pythonPath) {
|
|
115
|
+
const match = pythonPath.match(/python(?:3)?\.(\d+)\.(\d+)/);
|
|
116
|
+
if (match) {
|
|
117
|
+
return `${match[1]}.${match[2]}`;
|
|
118
|
+
}
|
|
119
|
+
return '3';
|
|
120
|
+
}
|
|
85
121
|
async ensureVenvCreated(isUpgrade) {
|
|
86
122
|
this.log.debug('Ensuring virtual environment is created');
|
|
87
123
|
if (isUpgrade || !this.isVenvCreated()) {
|
|
@@ -100,9 +136,9 @@ class PythonChecker {
|
|
|
100
136
|
}
|
|
101
137
|
async createVenv() {
|
|
102
138
|
this.log.debug('Creating virtual environment at path:', this.venvPath);
|
|
103
|
-
const [stdout] = await runCommand(this.log, this.pythonExecutable, ['-m', 'venv', this.venvPath, '--clear', '--upgrade-deps'], { env: { ...process.env, PATH: this.userPath } }, this.advancedPythonLogging
|
|
139
|
+
const [stdout] = await runCommand(this.log, this.pythonExecutable, ['-m', 'venv', this.venvPath, '--clear', '--upgrade-deps'], { env: { ...process.env, PATH: this.userPath } }, !this.advancedPythonLogging, !this.advancedPythonLogging);
|
|
104
140
|
if (stdout.includes('not created successfully') || !this.isVenvCreated()) {
|
|
105
|
-
this.log.error('
|
|
141
|
+
this.log.error('Failed to create virtual environment.');
|
|
106
142
|
await delay(300000);
|
|
107
143
|
}
|
|
108
144
|
else {
|
|
@@ -113,10 +149,8 @@ class PythonChecker {
|
|
|
113
149
|
this.log.debug('Ensuring virtual environment uses correct Python home');
|
|
114
150
|
const venvPythonHome = await this.getPythonHome(this.venvPythonExecutable);
|
|
115
151
|
const pythonHome = await this.getPythonHome(this.pythonExecutable);
|
|
116
|
-
this.log.debug('Virtual environment Python home:', venvPythonHome);
|
|
117
|
-
this.log.debug('System Python home:', pythonHome);
|
|
118
152
|
if (venvPythonHome !== pythonHome) {
|
|
119
|
-
this.log.debug('Python homes
|
|
153
|
+
this.log.debug('Python homes mismatch, recreating virtual environment');
|
|
120
154
|
await this.createVenv();
|
|
121
155
|
}
|
|
122
156
|
else {
|
|
@@ -125,85 +159,44 @@ class PythonChecker {
|
|
|
125
159
|
}
|
|
126
160
|
async getPythonHome(executable) {
|
|
127
161
|
this.log.debug('Getting Python home for executable:', executable);
|
|
128
|
-
const [venvPythonHome] = await runCommand(this.log, executable, [path.join(__dirname, 'pythonHome.py')], { env: { ...process.env, PATH: this.userPath } }, this.advancedPythonLogging
|
|
162
|
+
const [venvPythonHome] = await runCommand(this.log, executable, [path.join(__dirname, 'pythonHome.py')], { env: { ...process.env, PATH: this.userPath } }, !this.advancedPythonLogging, !this.advancedPythonLogging);
|
|
129
163
|
return venvPythonHome.trim();
|
|
130
164
|
}
|
|
131
|
-
async getSystemPythonVersions() {
|
|
132
|
-
this.log.debug('Getting system Python versions');
|
|
133
|
-
const suppressErrors = this.pythonExecutables.map(exec => `spawn ${exec.toLowerCase()}`);
|
|
134
|
-
const versionPromises = this.pythonExecutables.map(async (pythonExecutable) => {
|
|
135
|
-
try {
|
|
136
|
-
this.log.debug(`Checking Python version for: ${pythonExecutable}`);
|
|
137
|
-
const [stdout] = await runCommand(this.log, pythonExecutable, ['--version'], { env: { ...process.env, PATH: this.userPath } }, this.advancedPythonLogging ? false : true, this.advancedPythonLogging ? false : true, false, suppressErrors);
|
|
138
|
-
return stdout.trim().replace('Python ', '');
|
|
139
|
-
}
|
|
140
|
-
catch (error) {
|
|
141
|
-
this.log.debug(`Failed to get version for ${pythonExecutable}: ${error}`);
|
|
142
|
-
return null;
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
const versions = await Promise.all(versionPromises);
|
|
146
|
-
const validVersions = Array.from(new Set(versions.filter((version) => version !== null)));
|
|
147
|
-
this.log.debug('Found Python versions:', validVersions);
|
|
148
|
-
return validVersions;
|
|
149
|
-
}
|
|
150
165
|
async getUserPath() {
|
|
151
166
|
this.log.debug('Attempting to retrieve user PATH');
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
shell
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
'
|
|
164
|
-
]
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
'source ~/.profile 2>/dev/null',
|
|
177
|
-
'echo $PATH',
|
|
178
|
-
].join(' && '),
|
|
179
|
-
];
|
|
180
|
-
}
|
|
181
|
-
else {
|
|
182
|
-
this.log.debug('No user PATH found - falling back to process.env.PATH');
|
|
183
|
-
return process.env.PATH || '';
|
|
184
|
-
}
|
|
185
|
-
try {
|
|
186
|
-
const [stdout] = await runCommand(this.log, shell, shellArgs, undefined, this.advancedPythonLogging ? false : true, this.advancedPythonLogging ? false : true);
|
|
187
|
-
const userPath = stdout.trim();
|
|
188
|
-
if (userPath) {
|
|
189
|
-
this.log.debug('User PATH successfully retrieved:', userPath);
|
|
190
|
-
return userPath;
|
|
191
|
-
}
|
|
192
|
-
else {
|
|
193
|
-
this.log.debug('User PATH is empty, falling back to process.env.PATH');
|
|
194
|
-
return process.env.PATH || '';
|
|
167
|
+
const shells = ['/bin/zsh', '/bin/bash'];
|
|
168
|
+
for (const shell of shells) {
|
|
169
|
+
if (fs.existsSync(shell)) {
|
|
170
|
+
const shellArgs = [
|
|
171
|
+
'--noprofile', '--norc', '-c',
|
|
172
|
+
[
|
|
173
|
+
'eval "$(brew shellenv)" 2>/dev/null',
|
|
174
|
+
'source ~/.zprofile 2>/dev/null',
|
|
175
|
+
'source ~/.bash_profile 2>/dev/null',
|
|
176
|
+
'source ~/.profile 2>/dev/null',
|
|
177
|
+
'echo $PATH',
|
|
178
|
+
].join(' && '),
|
|
179
|
+
];
|
|
180
|
+
try {
|
|
181
|
+
const [stdout] = await runCommand(this.log, shell, shellArgs);
|
|
182
|
+
const userPath = stdout.trim();
|
|
183
|
+
if (userPath) {
|
|
184
|
+
this.log.debug('User PATH retrieved:', userPath);
|
|
185
|
+
return userPath;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
catch (err) {
|
|
189
|
+
this.log.error(`Failed to retrieve PATH from ${shell}: ${err}`);
|
|
190
|
+
}
|
|
195
191
|
}
|
|
196
192
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
return process.env.PATH || '';
|
|
200
|
-
}
|
|
193
|
+
this.log.debug('Falling back to process.env.PATH');
|
|
194
|
+
return process.env.PATH ?? '';
|
|
201
195
|
}
|
|
202
196
|
async ensureVenvPipUpToDate() {
|
|
203
|
-
|
|
204
|
-
const
|
|
205
|
-
|
|
206
|
-
if (venvPipVersion !== mostRecentPipVersion) {
|
|
197
|
+
const currentVersion = await this.getVenvPipVersion();
|
|
198
|
+
const latestVersion = await this.getMostRecentPipVersion();
|
|
199
|
+
if (currentVersion !== latestVersion) {
|
|
207
200
|
await this.updatePip();
|
|
208
201
|
}
|
|
209
202
|
else {
|
|
@@ -212,7 +205,7 @@ class PythonChecker {
|
|
|
212
205
|
}
|
|
213
206
|
async updatePip() {
|
|
214
207
|
this.log.debug('Updating pip in virtual environment');
|
|
215
|
-
await runCommand(this.log, this.venvPipExecutable, ['install', '--upgrade', 'pip'], { env: { ...process.env, PATH: this.userPath } }, this.advancedPythonLogging
|
|
208
|
+
await runCommand(this.log, this.venvPipExecutable, ['install', '--upgrade', 'pip'], { env: { ...process.env, PATH: this.userPath } }, !this.advancedPythonLogging, !this.advancedPythonLogging);
|
|
216
209
|
this.log.debug('Pip updated successfully');
|
|
217
210
|
}
|
|
218
211
|
async ensureVenvRequirementsSatisfied() {
|
|
@@ -220,49 +213,41 @@ class PythonChecker {
|
|
|
220
213
|
await this.installRequirements();
|
|
221
214
|
}
|
|
222
215
|
else {
|
|
223
|
-
this.log.debug('Virtual environment requirements are
|
|
216
|
+
this.log.debug('Virtual environment requirements are satisfied');
|
|
224
217
|
}
|
|
225
218
|
}
|
|
226
219
|
async areRequirementsSatisfied() {
|
|
227
|
-
this.log.
|
|
228
|
-
const
|
|
229
|
-
const
|
|
230
|
-
|
|
231
|
-
const requirementsStdout = fs.readFileSync(this.requirementsPath).toString();
|
|
232
|
-
const requirements = this.stringToObject(requirementsStdout);
|
|
233
|
-
this.log.debug('Required packages:', JSON.stringify(requirements, null, 2));
|
|
234
|
-
const requirementsSatisfied = Object.keys(requirements).every(pkg => freeze[pkg] === requirements[pkg]);
|
|
235
|
-
this.log.debug('Requirements satisfied:', requirementsSatisfied);
|
|
236
|
-
return requirementsSatisfied;
|
|
220
|
+
const [freezeStdout] = await runCommand(this.log, this.venvPipExecutable, ['freeze'], { env: { ...process.env, PATH: this.userPath } }, !this.advancedPythonLogging, !this.advancedPythonLogging);
|
|
221
|
+
const installed = this.stringToObject(freezeStdout);
|
|
222
|
+
const required = this.stringToObject(fs.readFileSync(this.requirementsPath, 'utf8'));
|
|
223
|
+
return Object.keys(required).every(pkg => installed[pkg] === required[pkg]);
|
|
237
224
|
}
|
|
238
225
|
stringToObject(value) {
|
|
239
226
|
return value.trim().split('\n').reduce((acc, line) => {
|
|
240
|
-
const [pkg, version] = line.split('==').map(
|
|
241
|
-
|
|
227
|
+
const [pkg, version] = line.split('==').map(x => x.trim());
|
|
228
|
+
if (pkg && version) {
|
|
229
|
+
acc[pkg.toLowerCase()] = version;
|
|
230
|
+
}
|
|
242
231
|
return acc;
|
|
243
232
|
}, {});
|
|
244
233
|
}
|
|
245
234
|
async installRequirements() {
|
|
246
235
|
this.log.debug('Installing requirements from:', this.requirementsPath);
|
|
247
|
-
await runCommand(this.log, this.venvPipExecutable, ['install', '-r', this.requirementsPath], { env: { ...process.env, PATH: this.userPath } }, this.advancedPythonLogging
|
|
236
|
+
await runCommand(this.log, this.venvPipExecutable, ['install', '-r', this.requirementsPath], { env: { ...process.env, PATH: this.userPath } }, !this.advancedPythonLogging, !this.advancedPythonLogging);
|
|
248
237
|
this.log.debug('Requirements installed successfully');
|
|
249
238
|
}
|
|
250
239
|
async getVenvPipVersion() {
|
|
251
|
-
this.log.
|
|
252
|
-
|
|
253
|
-
this.log.debug('Virtual environment pip version:', version.trim().split(' ')[1]);
|
|
254
|
-
return version.trim().split(' ')[1];
|
|
240
|
+
const [stdout] = await runCommand(this.log, this.venvPipExecutable, ['--version'], { env: { ...process.env, PATH: this.userPath } }, !this.advancedPythonLogging, !this.advancedPythonLogging);
|
|
241
|
+
return stdout.trim().split(' ')[1];
|
|
255
242
|
}
|
|
256
243
|
async getMostRecentPipVersion() {
|
|
257
|
-
this.log.debug('Fetching most recent pip version from PyPI');
|
|
258
244
|
try {
|
|
259
245
|
const response = await axios.get('https://pypi.org/pypi/pip/json');
|
|
260
|
-
this.log.debug('Most recent pip version fetched:', response.data.info.version);
|
|
261
246
|
return response.data.info.version;
|
|
262
247
|
}
|
|
263
|
-
catch (
|
|
264
|
-
this.log.error(`Error fetching
|
|
265
|
-
return '
|
|
248
|
+
catch (err) {
|
|
249
|
+
this.log.error(`Error fetching latest pip version: ${err}`);
|
|
250
|
+
return '';
|
|
266
251
|
}
|
|
267
252
|
}
|
|
268
253
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pythonChecker.js","sourceRoot":"","sources":["../../src/python/pythonChecker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pythonChecker.js","sourceRoot":"","sources":["../../src/python/pythonChecker.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"displayName": "Homebridge Kasa Python",
|
|
3
3
|
"name": "homebridge-kasa-python",
|
|
4
|
-
"version": "2.8.0-beta.
|
|
4
|
+
"version": "2.8.0-beta.6",
|
|
5
5
|
"description": "Plugin that uses Python-Kasa API to communicate with Kasa Devices.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "module",
|
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
"url": "https://github.com/ZeliardM/homebridge-kasa-python/issues"
|
|
14
14
|
},
|
|
15
15
|
"engines": {
|
|
16
|
-
"homebridge": "^1.
|
|
17
|
-
"node": "^
|
|
18
|
-
"python": "^3.11.
|
|
16
|
+
"homebridge": "^1.11 || ^2.0",
|
|
17
|
+
"node": "^20 || ^22 || ^24",
|
|
18
|
+
"python": "^3.11 || ^3.12 || ^3.13 || ^3.14"
|
|
19
19
|
},
|
|
20
20
|
"main": "dist/index.js",
|
|
21
21
|
"scripts": {
|
|
@@ -49,18 +49,18 @@
|
|
|
49
49
|
],
|
|
50
50
|
"devDependencies": {
|
|
51
51
|
"@eslint/eslintrc": "^3.3.1",
|
|
52
|
-
"@eslint/js": "^9.
|
|
53
|
-
"@stylistic/eslint-plugin": "^
|
|
54
|
-
"@types/node": "^24.0.
|
|
55
|
-
"@typescript-eslint/parser": "^8.
|
|
56
|
-
"eslint": "^9.
|
|
57
|
-
"globals": "^16.
|
|
52
|
+
"@eslint/js": "^9.31.0",
|
|
53
|
+
"@stylistic/eslint-plugin": "^5.2.0",
|
|
54
|
+
"@types/node": "^24.0.14",
|
|
55
|
+
"@typescript-eslint/parser": "^8.37.0",
|
|
56
|
+
"eslint": "^9.31.0",
|
|
57
|
+
"globals": "^16.3.0",
|
|
58
58
|
"homebridge": "^2.0.0-beta.29",
|
|
59
59
|
"node-persist": "^4.0.4",
|
|
60
60
|
"nodemon": "^3.1.10",
|
|
61
61
|
"rimraf": "^6.0.1",
|
|
62
62
|
"ts-node": "^10.9.2",
|
|
63
|
-
"typescript-eslint": "^8.
|
|
63
|
+
"typescript-eslint": "^8.37.0"
|
|
64
64
|
},
|
|
65
65
|
"homepage": "https://github.com/ZeliardM/homebridge-kasa-python#readme",
|
|
66
66
|
"funding": [
|
|
@@ -74,9 +74,9 @@
|
|
|
74
74
|
}
|
|
75
75
|
],
|
|
76
76
|
"dependencies": {
|
|
77
|
-
"axios": "^1.
|
|
77
|
+
"axios": "^1.10.0",
|
|
78
78
|
"eventsource": "^4.0.0",
|
|
79
|
-
"ts-essentials": "^10.1.
|
|
79
|
+
"ts-essentials": "^10.1.1",
|
|
80
80
|
"typescript": "^5.8.3"
|
|
81
81
|
},
|
|
82
82
|
"overrides": {
|
package/requirements.txt
CHANGED