8000 Use correct Poetry config when collecting Poetry projects by oranav · Pull Request #447 · actions/setup-python · GitHub
[go: up one dir, main page]

Skip to content
Prev Previous commit
Next Next commit
poetry: Support same virtualenv appearing in multiple projects
  • Loading branch information
oranav committed Dec 9, 2022
commit dc45b1e4e099d3a97f140f3216f45892eb9a089b
9 changes: 5 additions & 4 deletions dist/setup/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -66105,7 +66105,8 @@ class PoetryCache extends cache_distributor_1.default {
getCacheGlobalDirectories() {
var e_1, _a;
return __awaiter(this, void 0, void 0, function* () {
const paths = [];
// Same virtualenvs path may appear for different projects, hence we use a Set
const paths = new Set();
const globber = yield glob.create(this.patterns);
try {
for (var _b = __asyncValues(globber.globGenerator()), _c; _c = yield _b.next(), !_c.done;) {
Expand All @@ -66114,9 +66115,9 @@ class PoetryCache extends cache_distributor_1.default {
const poetryConfig = yield this.getPoetryConfiguration(basedir);
const cacheDir = poetryConfig['cache-dir'];
const virtualenvsPath = poetryConfig['virtualenvs.path'].replace('{cache-dir}', cacheDir);
paths.push(virtualenvsPath);
paths.add(virtualenvsPath);
if (poetryConfig['virtualenvs.in-project'] === true) {
paths.push(path.join(basedir, '.venv'));
paths.add(path.join(basedir, '.venv'));
}
}
}
Expand All @@ -66138,7 +66139,7 @@ class PoetryCache extends cache_distributor_1.default {
else {
utils_1.logWarning('python binaries were not found in PATH');
}
return paths;
return [...paths];
});
}
computeKeys() {
Expand Down
9 changes: 5 additions & 4 deletions src/cache-distributions/poetry-cache.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ class PoetryCache extends CacheDistributor {
}

protected async getCacheGlobalDirectories() {
const paths = [];
// Same virtualenvs path may appear for different projects, hence we use a Set
const paths = new Set<string>();
const globber = await glob.create(this.patterns);

for await (const file of globber.globGenerator()) {
Expand All @@ -29,10 +30,10 @@ class PoetryCache extends CacheDistributor {
cacheDir
);

paths.push(virtualenvsPath);
paths.add(virtualenvsPath);

if (poetryConfig['virtualenvs.in-project'] === true) {
paths.push(path.join(basedir, '.venv'));
paths.add(path.join(basedir, '.venv'));
}
}

Expand All @@ -56,7 +57,7 @@ class PoetryCache extends CacheDistributor {
logWarning('python binaries were not found in PATH');
}

return paths;
return [...paths];
}

protected async computeKeys() {
Expand Down
0