mirror of
				https://gitea.com/actions/setup-python.git
				synced 2025-10-31 11:48:56 +08:00 
			
		
		
		
	Add version parsing from Pipfile (#1067)
* feature: add version parsing from Pipfile * Update utils.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/utils.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/utils.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * chore: update dist/setup/index.js --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
		
							
								
								
									
										41
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										41
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							| @@ -97067,7 +97067,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { | ||||
|     return (mod && mod.__esModule) ? mod : { "default": mod }; | ||||
| }; | ||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||
| exports.getDownloadFileName = exports.getNextPageUrl = exports.getBinaryDirectory = exports.getVersionInputFromFile = exports.getVersionInputFromToolVersions = exports.getVersionsInputFromPlainFile = exports.getVersionInputFromTomlFile = exports.getOSInfo = exports.getLinuxInfo = exports.logWarning = exports.isCacheFeatureAvailable = exports.isGhes = exports.validatePythonVersionFormatForPyPy = exports.writeExactPyPyVersionFile = exports.readExactPyPyVersionFile = exports.getPyPyVersionFromPath = exports.isNightlyKeyword = exports.validateVersion = exports.createSymlinkInFolder = exports.WINDOWS_PLATFORMS = exports.WINDOWS_ARCHS = exports.IS_MAC = exports.IS_LINUX = exports.IS_WINDOWS = void 0; | ||||
| exports.getDownloadFileName = exports.getNextPageUrl = exports.getBinaryDirectory = exports.getVersionInputFromFile = exports.getVersionInputFromPipfileFile = exports.getVersionInputFromToolVersions = exports.getVersionsInputFromPlainFile = exports.getVersionInputFromTomlFile = exports.getOSInfo = exports.getLinuxInfo = exports.logWarning = exports.isCacheFeatureAvailable = exports.isGhes = exports.validatePythonVersionFormatForPyPy = exports.writeExactPyPyVersionFile = exports.readExactPyPyVersionFile = exports.getPyPyVersionFromPath = exports.isNightlyKeyword = exports.validateVersion = exports.createSymlinkInFolder = exports.WINDOWS_PLATFORMS = exports.WINDOWS_ARCHS = exports.IS_MAC = exports.IS_LINUX = exports.IS_WINDOWS = void 0; | ||||
| /* eslint no-unsafe-finally: "off" */ | ||||
| const cache = __importStar(__nccwpck_require__(5116)); | ||||
| const core = __importStar(__nccwpck_require__(7484)); | ||||
| @@ -97337,7 +97337,41 @@ function getVersionInputFromToolVersions(versionFile) { | ||||
| } | ||||
| exports.getVersionInputFromToolVersions = getVersionInputFromToolVersions; | ||||
| /** | ||||
|  * Python version extracted from a plain, .tool-versions or TOML file. | ||||
|  * Python version extracted from the Pipfile file. | ||||
|  */ | ||||
| function getVersionInputFromPipfileFile(versionFile) { | ||||
|     core.debug(`Trying to resolve version from ${versionFile}`); | ||||
|     if (!fs_1.default.existsSync(versionFile)) { | ||||
|         core.warning(`File ${versionFile} does not exist.`); | ||||
|         return []; | ||||
|     } | ||||
|     let pipfileFile = fs_1.default.readFileSync(versionFile, 'utf8'); | ||||
|     // Normalize the line endings in the pipfileFile
 | ||||
|     pipfileFile = pipfileFile.replace(/\r\n/g, '\n'); | ||||
|     const pipfileConfig = toml.parse(pipfileFile); | ||||
|     const keys = ['requires']; | ||||
|     if (!('requires' in pipfileConfig)) { | ||||
|         core.warning(`No Python version found in ${versionFile}`); | ||||
|         return []; | ||||
|     } | ||||
|     if ('python_full_version' in pipfileConfig['requires']) { | ||||
|         // specifies a full python version
 | ||||
|         keys.push('python_full_version'); | ||||
|     } | ||||
|     else { | ||||
|         keys.push('python_version'); | ||||
|     } | ||||
|     const versions = []; | ||||
|     const version = extractValue(pipfileConfig, keys); | ||||
|     if (version !== undefined) { | ||||
|         versions.push(version); | ||||
|     } | ||||
|     core.info(`Extracted ${versions} from ${versionFile}`); | ||||
|     return versions; | ||||
| } | ||||
| exports.getVersionInputFromPipfileFile = getVersionInputFromPipfileFile; | ||||
| /** | ||||
|  * Python version extracted from a plain, .tool-versions, Pipfile or TOML file. | ||||
|  */ | ||||
| function getVersionInputFromFile(versionFile) { | ||||
|     if (versionFile.endsWith('.toml')) { | ||||
| @@ -97346,6 +97380,9 @@ function getVersionInputFromFile(versionFile) { | ||||
|     else if (versionFile.match('.tool-versions')) { | ||||
|         return getVersionInputFromToolVersions(versionFile); | ||||
|     } | ||||
|     else if (versionFile.match('Pipfile')) { | ||||
|         return getVersionInputFromPipfileFile(versionFile); | ||||
|     } | ||||
|     else { | ||||
|         return getVersionsInputFromPlainFile(versionFile); | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Aramís Segovia
					Aramís Segovia