@bjia56/portable-python 0.1.81 → 0.1.83

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/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ import { IPortablePython, IPortablePythonOptions } from "./types";
2
2
  export declare class PortablePython implements IPortablePython {
3
3
  private _version;
4
4
  private _installer;
5
+ private _experimentalTag;
5
6
  implementation: string;
6
7
  distribution: string;
7
8
  installDir: string;
@@ -47,6 +48,12 @@ export declare class PortablePython implements IPortablePython {
47
48
  * @returns True if the installation exists, false otherwise.
48
49
  */
49
50
  isInstalled(): boolean;
51
+ /**
52
+ * Checks if the build tag of the downloaded Python distribution is outdated (i.e.
53
+ * the tag does not match the specified release tag).
54
+ * @returns True if the tag is outdated, false otherwise.
55
+ */
56
+ isTagOutdated(): boolean;
50
57
  /**
51
58
  * Will download the compressed Python installation and extract it to
52
59
  * the installation directory.
package/dist/index.js CHANGED
@@ -27,6 +27,7 @@ async function download(url, dest) {
27
27
  class PortablePython {
28
28
  _version;
29
29
  _installer;
30
+ _experimentalTag;
30
31
  implementation = "cpython";
31
32
  distribution = "auto";
32
33
  installDir = (0, path_1.dirname)(__dirname);
@@ -49,7 +50,15 @@ class PortablePython {
49
50
  if (installDir) {
50
51
  this.installDir = installDir;
51
52
  }
52
- this._version = (0, versions_1.pickVersion)(this.implementation, version);
53
+ if (options._tagOverride) {
54
+ this._experimentalTag = options._tagOverride;
55
+ }
56
+ if (options._versionOverride) {
57
+ this._version = options._versionOverride;
58
+ }
59
+ else {
60
+ this._version = (0, versions_1.pickVersion)(this.implementation, version);
61
+ }
53
62
  if (!this._version) {
54
63
  throw Error(`unknown version: ${version}`);
55
64
  }
@@ -97,6 +106,9 @@ class PortablePython {
97
106
  * Contains the release tag that will be downloaded.
98
107
  */
99
108
  get releaseTag() {
109
+ if (this._experimentalTag) {
110
+ return this._experimentalTag;
111
+ }
100
112
  return (0, versions_1.getVersionBuilds)(this.implementation)[this.version];
101
113
  }
102
114
  /**
@@ -118,6 +130,19 @@ class PortablePython {
118
130
  isInstalled() {
119
131
  return (0, fs_1.existsSync)(this.extractPath);
120
132
  }
133
+ /**
134
+ * Checks if the build tag of the downloaded Python distribution is outdated (i.e.
135
+ * the tag does not match the specified release tag).
136
+ * @returns True if the tag is outdated, false otherwise.
137
+ */
138
+ isTagOutdated() {
139
+ const tagPath = (0, path_1.join)(this.extractPath, "build_tag.txt");
140
+ if (!(0, fs_1.existsSync)(tagPath)) {
141
+ return true;
142
+ }
143
+ const tag = (0, fs_1.readFileSync)(tagPath, "utf-8").trim();
144
+ return tag !== this.releaseTag;
145
+ }
121
146
  /**
122
147
  * Will download the compressed Python installation and extract it to
123
148
  * the installation directory.
@@ -141,6 +166,9 @@ class PortablePython {
141
166
  const zip = new adm_zip_1.default(downloadPath);
142
167
  zip.extractAllTo(installDir, true);
143
168
  await (0, promises_1.rm)(downloadPath);
169
+ // Write the selected build tag to a file for debugging purposes
170
+ const tagPath = (0, path_1.join)(this.extractPath, "build_tag.txt");
171
+ await (0, promises_1.writeFile)(tagPath, this.releaseTag);
144
172
  await this._installer.postInstall();
145
173
  }
146
174
  /**
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -26,4 +26,12 @@ export interface IPortablePython extends IInstallerProps {
26
26
  export interface IPortablePythonOptions {
27
27
  implementation?: string;
28
28
  distribution?: string;
29
+ /**
30
+ * Override the version of Python to install. For development use only.
31
+ */
32
+ _versionOverride?: string;
33
+ /**
34
+ * Override the release tag of Python to install. For development use only.
35
+ */
36
+ _tagOverride?: string;
29
37
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bjia56/portable-python",
3
- "version": "0.1.81",
3
+ "version": "0.1.83",
4
4
  "description": "Portable Python",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",