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

Use correct Poetry config when collecting Poetry projects #447

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Jan 3, 2023
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