Skip to content
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

[pull] main from pypa:main #28

Open
wants to merge 324 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
324 commits
Select commit Hold shift + click to select a range
d536b25
release 20.16.7
gaborbernat Nov 12, 2022
e6925a6
Merge pull request #2445 from pypa/release-20.16.7
gaborbernat Nov 12, 2022
ffa04ae
Change Nushell activation script to module (#2422)
kubouch Nov 27, 2022
4961931
Fix operator in Nushell activation script (#2450)
kubouch Nov 27, 2022
9bc1f9f
Do not use deprecated API (#2448)
gaborbernat Nov 28, 2022
7cb7e63
Bump setuptools (#2451)
gaborbernat Nov 28, 2022
33e7b9d
release 20.17.0
gaborbernat Nov 28, 2022
a95e5e7
Merge pull request #2452 from pypa/release-20.17.0
gaborbernat Nov 28, 2022
87d9a5b
Bump pypa/gh-action-pypi-publish from 1.5.1 to 1.5.2 (#2454)
dependabot[bot] Dec 1, 2022
da92625
Bump pypa/gh-action-pypi-publish from 1.5.2 to 1.6.1 (#2459)
dependabot[bot] Dec 5, 2022
28f4067
Py marker means any python not CPython (#2460)
gaborbernat Dec 5, 2022
d3215e4
Respect `VIRTUAL_ENV_DISABLE_PROMPT` in nushell activation script (#2…
m-lima Dec 5, 2022
63d5a3c
release 20.17.1
gaborbernat Dec 5, 2022
9bc1ac0
Merge pull request #2462 from pypa/release-20.17.1
gaborbernat Dec 5, 2022
6845f6f
Bump pypa/gh-action-pypi-publish from 1.6.1 to 1.6.3 (#2464)
dependabot[bot] Dec 7, 2022
38eb202
Update .coveragerc
gaborbernat Dec 21, 2022
a3ee825
Update .coveragerc
gaborbernat Dec 21, 2022
7e781d8
Remove pypy3.6 from CI
gaborbernat Dec 21, 2022
0670d14
Fix coverage config
gaborbernat Dec 21, 2022
206e8ad
Bump pypa/gh-action-pypi-publish from 1.6.3 to 1.6.4 (#2465)
dependabot[bot] Dec 28, 2022
95a57f2
Fix Nushell installation failures (#2475)
kubouch Dec 29, 2022
e7fa1c2
Move to hatchling, drop 3.6 support (#2474)
gaborbernat Dec 30, 2022
beb7d66
Fix coverage reporting (#2477)
gaborbernat Jan 3, 2023
f355ddb
Fix wrong prompt in Nushell activation script (#2481)
kubouch Jan 13, 2023
ab35ce4
Don't run scheduled workflow jobs on forks (#2490)
nsoranzo Feb 4, 2023
a98c3f5
Improve activator documentation (#2488)
adamchainz Feb 4, 2023
9b4b17f
Bump embedded pip and setuptools (#2489)
gaborbernat Feb 6, 2023
c68affb
Add changelog
gaborbernat Feb 6, 2023
828762a
Use furo docs theme (#2496)
gaborbernat Feb 6, 2023
32f270c
release 20.18.0
gaborbernat Feb 6, 2023
2a56eb2
Merge pull request #2497 from pypa/release-20.18.0
gaborbernat Feb 6, 2023
da9f201
Fix HTML title docs (#2500)
oleksis Feb 7, 2023
e08778b
Bump platformdirs dependency to <4 (#2502)
gaborbernat Feb 7, 2023
e2833af
release 20.19.0
gaborbernat Feb 7, 2023
074fd63
Merge pull request #2503 from pypa/release-20.19.0
gaborbernat Feb 8, 2023
2762dff
Fix Tox environment name for running linting tools in PR template (#2…
faph Feb 16, 2023
8cef45f
Simplify environment lookup in Nushell activation (#2506)
kubouch Feb 27, 2023
5a53614
Support Windows CPython interpreters distributed by non-standard orgs…
faph Feb 27, 2023
4a84171
Bump embeded pip and setuptools (#2509)
gaborbernat Feb 28, 2023
2e22984
release 20.20.0
gaborbernat Feb 28, 2023
ebbccec
Merge pull request #2510 from pypa/release-20.20.0
gaborbernat Feb 28, 2023
161979f
Using explicit closure syntax (#2512)
WindSoilder Mar 10, 2023
0398e5b
Add print command to print_prompt for nushell (#2514)
NotLebedev Mar 10, 2023
e2a9ee5
Sepcify the encoding (#2515)
FFY00 Mar 12, 2023
d48565f
Make `ReentrantFileLock` thread-safe and, thereby, fix race condition…
radoering Mar 12, 2023
0e4cad0
Add pyproject-fmt (#2518)
gaborbernat Mar 12, 2023
f6e3f75
release 20.21.0
gaborbernat Mar 12, 2023
c498236
Bump pypa/gh-action-pypi-publish from 1.6.4 to 1.7.1 (#2521)
dependabot[bot] Mar 13, 2023
cac68a0
Merge pull request #2519 from pypa/release-20.21.0
gaborbernat Mar 14, 2023
9501eac
Add tox.ini to sdist (#2520)
mtelka Mar 15, 2023
a91a75b
Bump pypa/gh-action-pypi-publish from 1.7.1 to 1.8.1 (#2524)
dependabot[bot] Mar 17, 2023
7ff4eb1
Update Nushell 'let' syntax (#2527)
sophiajt Mar 21, 2023
461cd26
Bump pypa/gh-action-pypi-publish from 1.8.1 to 1.8.3 (#2530)
dependabot[bot] Mar 23, 2023
02585da
update nushell's str collect command to str join (#2532)
fdncred Mar 31, 2023
b911e3a
Bump pypa/gh-action-pypi-publish from 1.8.3 to 1.8.5 (#2536)
dependabot[bot] Apr 5, 2023
fd7e6fc
docs: fix attribution in v20.11 (#2539)
d3dave Apr 9, 2023
41cec56
Bump embeded wheels (#2546)
gaborbernat Apr 19, 2023
6d4d45e
Bump deps and tools (#2545)
gaborbernat Apr 19, 2023
17a8b3b
release 20.21.1
gaborbernat Apr 19, 2023
cdd7eb1
Merge pull request #2547 from pypa/release-20.21.1
gaborbernat Apr 19, 2023
04af502
Drop Python 2 support (#2548)
gaborbernat Apr 19, 2023
540d200
release 20.22.0
gaborbernat Apr 19, 2023
3022c59
Merge pull request #2549 from pypa/release-20.22.0
gaborbernat Apr 19, 2023
8829b7a
Clarify that v20.22.0 dropped support for Python 3.6 too (#2552)
pquentin Apr 20, 2023
699db9e
Add trusted-publish (#2559)
gaborbernat Apr 27, 2023
ba1cb8b
Update check.yml
gaborbernat Apr 27, 2023
0597a2f
prevent PermissionError when using venv creator on some systems (#2543)
kulikjak Apr 27, 2023
89f80b8
upgrade pip and setuptools (#2560) (#2562)
gaborbernat Apr 27, 2023
fd93dd7
3.12 support and no setuptools/wheel on 3.12+ (#2558)
chrysle Apr 27, 2023
6327f15
release 20.23.0
gaborbernat Apr 27, 2023
cd05716
Merge pull request #2563 from pypa/release-20.23.0
gaborbernat Apr 27, 2023
64bec9b
Bump pypa/gh-action-pypi-publish from 1.8.5 to 1.8.6 (#2566)
dependabot[bot] May 3, 2023
cbb5411
feat: ✨ update and simplify nushell activation (#2572)
melMass May 17, 2023
16a6af7
Fix deprecation warning (#2575)
jugmac00 May 19, 2023
7499d19
Replace unmaintained `pytest-freezegun` (#2576)
jugmac00 May 19, 2023
c8da7ff
Update cli_interface.rst (#2586)
uberFoo Jun 10, 2023
025e96f
Add ruff, test latest OS and bump setuptools (#2588)
gaborbernat Jun 16, 2023
10eec29
release 20.23.1
gaborbernat Jun 16, 2023
962d77e
Merge pull request #2590 from pypa/release-20.23.1
gaborbernat Jun 16, 2023
09d67b1
[pre-commit.ci] pre-commit autoupdate (#2591)
pre-commit-ci[bot] Jun 19, 2023
f79864b
Bump pypa/gh-action-pypi-publish from 1.8.6 to 1.8.7 (#2595)
dependabot[bot] Jun 27, 2023
9f9dc62
Fix the CI (#2593)
gaborbernat Jun 27, 2023
7d68360
[pre-commit.ci] pre-commit autoupdate (#2598)
pre-commit-ci[bot] Jul 3, 2023
0fd290d
Quickstart guide (#2599)
AlvesJorge Jul 7, 2023
55b2401
Updated CLI documentation with config file name (#2602)
nathanczh Jul 10, 2023
deeae9a
Exclude dependabot and pre-commit ci from release notes (#2603)
gaborbernat Jul 10, 2023
789aac7
[pre-commit.ci] pre-commit autoupdate (#2604)
pre-commit-ci[bot] Jul 11, 2023
cda7f22
Bump pypa/gh-action-pypi-publish from 1.8.7 to 1.8.8 (#2605)
dependabot[bot] Jul 13, 2023
e5ce384
Export `VIRTUAL_ENV_PROMPT` in activation scripts (#2194) (#2606)
jimporter Jul 14, 2023
94f3cf5
Upgrade setuptools (#2607)
gaborbernat Jul 14, 2023
9af15e3
release 20.24.0
gaborbernat Jul 14, 2023
328f965
Merge pull request #2608 from pypa/release-20.24.0
gaborbernat Jul 14, 2023
9aa16d7
upgrade pip (#2611)
arielkirkwood Jul 20, 2023
5d08038
release 20.24.1
gaborbernat Jul 20, 2023
912da0f
Merge pull request #2612 from pypa/release-20.24.1
gaborbernat Jul 20, 2023
0114a68
[pre-commit.ci] pre-commit autoupdate (#2609)
pre-commit-ci[bot] Jul 20, 2023
f89231a
Bump pip and wheel (#2614)
gaborbernat Jul 23, 2023
ea1862f
release 20.24.2
gaborbernat Jul 24, 2023
0a92036
Merge pull request #2615 from pypa/release-20.24.2
gaborbernat Jul 24, 2023
119c63e
[pre-commit.ci] pre-commit autoupdate (#2616)
pre-commit-ci[bot] Aug 1, 2023
20701fe
Update compatibility docs (#2618)
jugmac00 Aug 7, 2023
099f0d8
fix ResourceWarning on process exit (#2472) (#2617)
sigma67 Aug 7, 2023
7014127
[pre-commit.ci] pre-commit autoupdate (#2619)
pre-commit-ci[bot] Aug 9, 2023
9c5fc54
added scripts in ``tasks`` directory to sdist on build (#2610) (#2620)
sigma67 Aug 11, 2023
ca1e8ae
Bump pypa/gh-action-pypi-publish from 1.8.8 to 1.8.10 (#2621)
dependabot[bot] Aug 11, 2023
97a80cc
Bump wheel (#2622)
gaborbernat Aug 11, 2023
3e09cd2
release 20.24.3 (#2623)
gaborbernat Aug 11, 2023
496506d
Fix typo found by codespell (#2624)
DimitriPapadopoulos Aug 13, 2023
81383b2
[pre-commit.ci] pre-commit autoupdate (#2625)
pre-commit-ci[bot] Aug 15, 2023
9313816
Updating extend.rst typo (#2626)
sagardesai1 Aug 18, 2023
88f90bc
Update README.md
gaborbernat Aug 18, 2023
21537a9
Bump wheels and setuptools (#2628)
pre-commit-ci[bot] Aug 30, 2023
564a877
release 20.24.4
gaborbernat Aug 30, 2023
6d22da6
Merge pull request #2633 from pypa/release-20.24.4
gaborbernat Aug 30, 2023
feedb87
[pre-commit.ci] pre-commit autoupdate (#2635)
pre-commit-ci[bot] Sep 6, 2023
3bcb481
Bump actions/checkout from 3 to 4 (#2636)
dependabot[bot] Sep 6, 2023
41132db
macOS homebrew tests fail because dyld library not loaded (#2639)
cclauss Sep 7, 2023
1b75a42
Fix brew cannot copy (#2640)
gaborbernat Sep 7, 2023
dcbb69f
Test with 3.12 rc (#2641)
gaborbernat Sep 7, 2023
e82856a
Upgrade setuptools (#2642)
gaborbernat Sep 7, 2023
8d6eb05
GitHub Actions: Add PyPy 3.10 to testing (#2638)
cclauss Sep 8, 2023
7e50f99
release 20.24.5
gaborbernat Sep 8, 2023
1e1732e
Merge pull request #2643 from pypa/release-20.24.5
gaborbernat Sep 8, 2023
8a7f85a
[pre-commit.ci] pre-commit autoupdate (#2644)
pre-commit-ci[bot] Sep 12, 2023
390ed2a
Change "Virtualenv" to "virtualenv" to match style (#2646)
jackiekazil Sep 23, 2023
fc5627e
[pre-commit.ci] pre-commit autoupdate (#2645)
pre-commit-ci[bot] Sep 26, 2023
97b3060
[pre-commit.ci] pre-commit autoupdate (#2648)
pre-commit-ci[bot] Oct 3, 2023
b82dd32
[test] Use get_hookimpls method instead of the private attribute (#2649)
danigm Oct 20, 2023
210705f
Remove extra closing parenthesis (#2651)
patrick-csliu Oct 20, 2023
6cb0868
[pre-commit.ci] pre-commit autoupdate (#2652)
pre-commit-ci[bot] Oct 20, 2023
e4eac75
Fix the CI (#2655)
gaborbernat Oct 23, 2023
beafba7
Upgrade pip and setuptools (#2656)
gaborbernat Oct 23, 2023
29c08df
release 20.24.6
gaborbernat Oct 23, 2023
993c9e8
Merge pull request #2657 from pypa/release-20.24.6
gaborbernat Oct 23, 2023
d7c74fb
[pre-commit.ci] pre-commit autoupdate (#2658)
pre-commit-ci[bot] Oct 23, 2023
2b81578
[pre-commit.ci] pre-commit autoupdate (#2661)
pre-commit-ci[bot] Nov 1, 2023
5565034
Allow platformdirs v4 (#2664)
alex Nov 10, 2023
628f167
Bump wheels package (#2665)
gaborbernat Nov 10, 2023
68002da
[pre-commit.ci] pre-commit autoupdate (#2663)
pre-commit-ci[bot] Nov 10, 2023
1fe291a
[pre-commit.ci] pre-commit autoupdate (#2667)
pre-commit-ci[bot] Nov 27, 2023
c7e57f3
Bump setuptools and wheels (#2669)
gaborbernat Nov 29, 2023
5be4b5d
Bump pypa/gh-action-pypi-publish from 1.8.10 to 1.8.11 (#2674)
dependabot[bot] Nov 30, 2023
f56fb61
Run CI tests on Python 3.13, fix tests (#2673)
hroncok Nov 30, 2023
5fa91db
Fix wheel upgrade to use 3.13
gaborbernat Dec 1, 2023
1941c1d
release 20.25.0
gaborbernat Dec 1, 2023
69664d5
Merge pull request #2675 from pypa/release-20.25.0
gaborbernat Dec 1, 2023
d1b27b3
[pre-commit.ci] pre-commit autoupdate (#2677)
pre-commit-ci[bot] Dec 6, 2023
5ad4de3
Bump actions/setup-python from 4 to 5 (#2678)
dependabot[bot] Dec 9, 2023
77d3906
[pre-commit.ci] pre-commit autoupdate (#2679)
pre-commit-ci[bot] Dec 18, 2023
9fb3aa3
[pre-commit.ci] pre-commit autoupdate (#2680)
pre-commit-ci[bot] Jan 10, 2024
d9fdf48
Upgrade embeded wheels (#2681)
gaborbernat Jan 12, 2024
fa28347
[pre-commit.ci] pre-commit autoupdate (#2683)
pre-commit-ci[bot] Jan 16, 2024
cad5500
[pre-commit.ci] pre-commit autoupdate (#2685)
pre-commit-ci[bot] Feb 21, 2024
c221b32
Resolve symbolic links for environment metadata (#2686)
ofek Feb 21, 2024
e72dea8
Avoid importing contextlib in `_virtualenv` (#2688)
hauntsaninja Feb 21, 2024
fd24a28
Upgrade embedded wheels (#2691)
gaborbernat Feb 22, 2024
b49b35d
release 20.25.1
gaborbernat Feb 22, 2024
4ca8a20
Merge pull request #2692 from pypa/release-20.25.1
gaborbernat Feb 22, 2024
5cd543f
Bump pypa/gh-action-pypi-publish from 1.8.11 to 1.8.12 (#2694)
dependabot[bot] Feb 28, 2024
abe2c99
Bump pypa/gh-action-pypi-publish from 1.8.12 to 1.8.14 (#2695)
dependabot[bot] Mar 8, 2024
f7d58be
[pre-commit.ci] pre-commit autoupdate (#2696)
pre-commit-ci[bot] Mar 14, 2024
e62efdb
Fix windows utf8 encoding issue (#2687)
PzaThief Mar 22, 2024
6a6c103
[pre-commit.ci] pre-commit autoupdate (#2697)
pre-commit-ci[bot] Mar 22, 2024
fb82834
Update changelog.rst (#2701)
Callek Apr 4, 2024
c174967
Fix indentation in activate.fish (#2700)
junzh0u Apr 9, 2024
cf8574c
[pre-commit.ci] pre-commit autoupdate (#2699)
pre-commit-ci[bot] Apr 17, 2024
44c6724
release 20.25.2
gaborbernat Apr 17, 2024
cafd263
Merge pull request #2703 from pypa/release-20.25.2
gaborbernat Apr 17, 2024
97438d9
Fix for tests: Python 3.13.0a6 renamed pathmod to parser (#2702)
befeleme Apr 17, 2024
46d0400
release 20.25.3
gaborbernat Apr 17, 2024
abb29cf
Merge pull request #2704 from pypa/release-20.25.3
gaborbernat Apr 17, 2024
001a327
[pre-commit.ci] pre-commit autoupdate (#2705)
pre-commit-ci[bot] Apr 23, 2024
4a13deb
Fixed a case when template variable is WindowsPath (#2707)
NtWriteCode Apr 23, 2024
477ce18
Allow builtin interpreter discovery to find specific Python versions …
flying-sheep Apr 23, 2024
1a1fb2b
release 20.26.0
gaborbernat Apr 23, 2024
9eac8a6
Merge pull request #2710 from pypa/release-20.26.0
gaborbernat Apr 23, 2024
cbbf465
Fix PATH-based Python discovery on Windows (#2712)
ofek Apr 27, 2024
1563992
release 20.26.1
gaborbernat Apr 29, 2024
01cc6fb
Merge pull request #2713 from pypa/release-20.26.1
gaborbernat Apr 29, 2024
4f8034c
[pre-commit.ci] pre-commit autoupdate (#2714)
pre-commit-ci[bot] May 3, 2024
e28dfa7
Update activate_this.py documentation to use runpy instead of exec (#…
FredStober May 9, 2024
60233a1
Apply ruff/bugbear new rules (#2718)
DimitriPapadopoulos May 9, 2024
7864fde
[pre-commit.ci] pre-commit autoupdate (#2715)
pre-commit-ci[bot] May 9, 2024
3be84af
Fix the CI (#2721)
HandSonic May 11, 2024
0a3816e
Fix #1949: zipapp virtual environment creation fails if zipapp path i…
HandSonic May 11, 2024
09c1c69
Fix bad return code in bash activation if hashing is disabled (#2717)
fenkes-ibm May 13, 2024
7cbed79
[pre-commit.ci] pre-commit autoupdate (#2723)
pre-commit-ci[bot] May 13, 2024
9b14661
release 20.26.2
gaborbernat May 13, 2024
0646a05
Merge pull request #2724 from pypa/release-20.26.2
gaborbernat May 13, 2024
e35ece8
[pre-commit.ci] pre-commit autoupdate (#2727)
pre-commit-ci[bot] May 24, 2024
c723579
[pre-commit.ci] pre-commit autoupdate (#2730)
pre-commit-ci[bot] Jun 4, 2024
429d6a2
[pre-commit.ci] pre-commit autoupdate (#2734)
pre-commit-ci[bot] Jun 11, 2024
8220288
Bump pypa/gh-action-pypi-publish from 1.8.14 to 1.9.0 (#2738)
dependabot[bot] Jun 17, 2024
bd91d48
[pre-commit.ci] pre-commit autoupdate (#2739)
pre-commit-ci[bot] Jun 18, 2024
2a149ec
Bump embeded wheels (#2741)
gaborbernat Jun 22, 2024
3185e1f
release 20.26.3
gaborbernat Jun 22, 2024
34138f5
Merge pull request #2742 from pypa/release-20.26.3
gaborbernat Jun 22, 2024
b6c052b
[pre-commit.ci] pre-commit autoupdate (#2743)
pre-commit-ci[bot] Jul 3, 2024
805365b
Fix whitespace around backticks in changelog (#2751)
edmorley Aug 11, 2024
95c5eed
Test latest Python 3.13 (#2752)
hugovk Aug 14, 2024
265011a
Fix typo in Nushell activation script (#2754)
edmorley Sep 1, 2024
77df0a0
GitHub Actions: Replace deprecated macos-12 with macos-13 (#2756)
hugovk Sep 3, 2024
38e02c8
Bump pypa/gh-action-pypi-publish from 1.9.0 to 1.10.1 (#2757)
dependabot[bot] Sep 7, 2024
61e774f
Fix #2728: Activating venv create unwanted console output (#2748)
ShootGan Sep 7, 2024
374660b
[pre-commit.ci] pre-commit autoupdate (#2753)
pre-commit-ci[bot] Sep 7, 2024
d8f1b14
Upgrade bundled wheels (#2760)
gaborbernat Sep 7, 2024
dc9416a
release 20.26.4
gaborbernat Sep 7, 2024
f925a3a
Merge pull request #2761 from pypa/release-20.26.4
gaborbernat Sep 7, 2024
c516056
Update README.md
gaborbernat Sep 7, 2024
ee77feb
[pre-commit.ci] pre-commit autoupdate (#2763)
pre-commit-ci[bot] Sep 11, 2024
35d8269
[pre-commit.ci] pre-commit autoupdate (#2764)
pre-commit-ci[bot] Sep 17, 2024
22b9795
Use uv over pip (#2765)
gaborbernat Sep 17, 2024
f3172b4
release 20.26.5
gaborbernat Sep 17, 2024
cf340c8
Merge pull request #2766 from pypa/release-20.26.5
gaborbernat Sep 17, 2024
220d49c
Bump pypa/gh-action-pypi-publish from 1.10.1 to 1.10.2 (#2767)
dependabot[bot] Sep 23, 2024
6bb3f62
[pre-commit.ci] pre-commit autoupdate (#2769)
pre-commit-ci[bot] Sep 23, 2024
86ddded
Fix #2768: Quote template strings in activation scripts (#2771)
y5c4l3 Sep 27, 2024
fe8ca14
release 20.26.6 (#2772)
gaborbernat Sep 27, 2024
349eddc
docs: fix the documentation typo on Extend Functionality page. (#2773)
Mr-Sunglasses Sep 28, 2024
da72caa
[pre-commit.ci] pre-commit autoupdate (#2775)
pre-commit-ci[bot] Oct 1, 2024
a4dff77
Bump pypa/gh-action-pypi-publish from 1.10.2 to 1.10.3 (#2777)
dependabot[bot] Oct 7, 2024
b56d092
[pre-commit.ci] pre-commit autoupdate (#2779)
pre-commit-ci[bot] Oct 7, 2024
228b615
[pre-commit.ci] pre-commit autoupdate (#2781)
pre-commit-ci[bot] Oct 15, 2024
f73a2f3
Fix broken Windows zipapp and drop 3.7 support (#2783)
gaborbernat Oct 18, 2024
6f16059
Skip $PATH entries we cannot check rather than dying with PermissionE…
hroncok Oct 18, 2024
de4465f
release 20.27.0
gaborbernat Oct 18, 2024
72f4019
Merge pull request #2785 from pypa/release-20.27.0
gaborbernat Oct 18, 2024
fd2b921
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Oct 21, 2024
17ee28f
Merge pull request #2787 from pypa/pre-commit-ci-update-config
gaborbernat Oct 21, 2024
8425467
Upgrade to pip 24.3 (#2790)
gaborbernat Oct 28, 2024
cb20fda
release 20.27.1
gaborbernat Oct 28, 2024
8b826c4
Merge pull request #2791 from pypa/release-20.27.1
gaborbernat Oct 28, 2024
6e20c2b
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Oct 28, 2024
e1e0add
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 28, 2024
dad0832
Merge pull request #2792 from pypa/pre-commit-ci-update-config
gaborbernat Oct 29, 2024
41da121
Bump pypa/gh-action-pypi-publish from 1.10.3 to 1.11.0 (#2793)
dependabot[bot] Oct 31, 2024
b9078e1
Upgrade setuptools to 75.3 (#2798)
gaborbernat Nov 7, 2024
79f357c
Bump pypa/gh-action-pypi-publish from 1.11.0 to 1.12.2 (#2797)
dependabot[bot] Nov 7, 2024
7c0a39f
[pre-commit.ci] pre-commit autoupdate (#2795)
pre-commit-ci[bot] Nov 7, 2024
898abfd
Upgrade setuptools to 75.5 and wheel to 0.45 (#2804)
gaborbernat Nov 26, 2024
fd6c16b
Bump astral-sh/setup-uv from 3 to 4 (#2802)
dependabot[bot] Nov 26, 2024
b3e2b6f
No longer forcibly echo off during windows batch activation (#2801)
wiktorinox Nov 26, 2024
be19526
feat: Write CACHEDIR.TAG file (#2803)
neilramsay Nov 26, 2024
f5d7cb4
[pre-commit.ci] pre-commit autoupdate (#2799)
pre-commit-ci[bot] Nov 26, 2024
6f70bf5
Revert "feat: Write CACHEDIR.TAG file (#2803)"
gaborbernat Nov 26, 2024
f74c000
release 20.27.2
gaborbernat Nov 26, 2024
d619967
fix: Update run_with_catch log flushing (#2806)
neilramsay Nov 26, 2024
2a29a1b
feat: Write CACHEDIR.TAG file (#2805)
neilramsay Nov 26, 2024
bfc04e3
release 20.28.0
gaborbernat Nov 26, 2024
9098223
Merge pull request #2807 from pypa/release-20.28.0
gaborbernat Nov 26, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Sepcify the encoding (pypa#2515)
  • Loading branch information
FFY00 authored Mar 12, 2023
commit e2a9ee59e58c48a663bb435dbeb36a160272f695
1 change: 1 addition & 0 deletions docs/changelog/2515.bugfix.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Do not assume the default encoding.
4 changes: 2 additions & 2 deletions src/virtualenv/app_data/via_disk_folder.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ def exists(self):
def read(self):
data, bad_format = None, False
try:
data = json.loads(self.file.read_text())
data = json.loads(self.file.read_text(encoding="utf-8"))
logging.debug(f"got {self.msg} from %s", *self.msg_args)
return data
except ValueError:
Expand All @@ -151,7 +151,7 @@ def locked(self):
def write(self, content):
folder = self.file.parent
folder.mkdir(parents=True, exist_ok=True)
self.file.write_text(json.dumps(content, sort_keys=True, indent=2))
self.file.write_text(json.dumps(content, sort_keys=True, indent=2), encoding="utf-8")
logging.debug(f"wrote {self.msg} at %s", *self.msg_args)


Expand Down
2 changes: 1 addition & 1 deletion src/virtualenv/config/ini.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ def __init__(self, env=None):
logging.error("failed to read config file %s because %r", config_file, exception)

def _load(self):
with self.config_file.open("rt") as file_handler:
with self.config_file.open("rt", encoding="utf-8") as file_handler:
return self.config_parser.read_file(file_handler)

def get(self, key, as_type):
Expand Down
2 changes: 1 addition & 1 deletion src/virtualenv/create/creator.py
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ def setup_ignore_vcs(self):
# mark this folder to be ignored by VCS, handle https://www.python.org/dev/peps/pep-0610/#registered-vcs
git_ignore = self.dest / ".gitignore"
if not git_ignore.exists():
git_ignore.write_text("# created by virtualenv automatically\n*\n")
git_ignore.write_text("# created by virtualenv automatically\n*\n", encoding="utf-8")
# Mercurial - does not support the .hgignore file inside a subdirectory directly, but only if included via the
# subinclude directive from root, at which point on might as well ignore the directory itself, see
# https://www.selenic.com/mercurial/hgignore.5.html for more details
Expand Down
6 changes: 3 additions & 3 deletions src/virtualenv/create/via_global_ref/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,15 +87,15 @@ def install_patch(self):
if text:
pth = self.purelib / "_virtualenv.pth"
logging.debug("create virtualenv import hook file %s", pth)
pth.write_text("import _virtualenv")
pth.write_text("import _virtualenv", encoding="utf-8")
dest_path = self.purelib / "_virtualenv.py"
logging.debug("create %s", dest_path)
dest_path.write_text(text)
dest_path.write_text(text, encoding="utf-8")

def env_patch_text(self):
"""Patch the distutils package to not be derailed by its configuration files"""
with self.app_data.ensure_extracted(Path(__file__).parent / "_virtualenv.py") as resolved_path:
text = resolved_path.read_text()
text = resolved_path.read_text(encoding="utf-8")
return text.replace('"__SCRIPT_DIR__"', repr(os.path.relpath(str(self.script_dir), str(self.purelib))))

def _args(self):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ def create(self):
if IS_ZIPAPP:
custom_site_text = read_from_zipapp(custom_site)
else:
custom_site_text = custom_site.read_text()
custom_site_text = custom_site.read_text(encoding="utf-8")
expected = json.dumps([os.path.relpath(str(i), str(site_py)) for i in self.libs])

custom_site_text = custom_site_text.replace("___EXPECTED_SITE_PACKAGES___", expected)
Expand All @@ -42,7 +42,7 @@ def create(self):
skip_rewrite = os.linesep.join(f" {i}" for i in self.skip_rewrite.splitlines()).lstrip()
custom_site_text = custom_site_text.replace("# ___SKIP_REWRITE____", skip_rewrite)

site_py.write_text(custom_site_text)
site_py.write_text(custom_site_text, encoding="utf-8")

@property
def reload_code(self):
Expand Down
1 change: 1 addition & 0 deletions src/virtualenv/discovery/cached_py_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ def _run_subprocess(cls, exe, app_data, env):
stderr=subprocess.PIPE,
stdout=subprocess.PIPE,
env=env,
encoding="utf-8",
)
out, err = process.communicate()
code = process.returncode
Expand Down
16 changes: 11 additions & 5 deletions src/virtualenv/seed/embed/via_app_data/pip_install/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,11 +72,11 @@ def _records_text(self, files):
def _generate_new_files(self):
new_files = set()
installer = self._dist_info / "INSTALLER"
installer.write_text("pip\n")
installer.write_text("pip\n", encoding="utf-8")
new_files.add(installer)
# inject a no-op root element, as workaround for bug in https://github.com/pypa/pip/issues/7226
marker = self._image_dir / f"{self._dist_info.stem}.virtualenv"
marker.write_text("")
marker.write_text("", encoding="utf-8")
new_files.add(marker)
folder = mkdtemp()
try:
Expand Down Expand Up @@ -120,7 +120,7 @@ def _console_scripts(self):
entry_points = self._dist_info / "entry_points.txt"
if entry_points.exists():
parser = ConfigParser()
with entry_points.open() as file_handler:
with entry_points.open(encoding="utf-8") as file_handler:
parser.read_file(file_handler)
if "console_scripts" in parser.sections():
for name, value in parser.items("console_scripts"):
Expand Down Expand Up @@ -152,11 +152,17 @@ def _uninstall_dist(dist):
logging.debug("uninstall existing distribution %s from %s", dist.stem, dist_base)

top_txt = dist / "top_level.txt" # add top level packages at folder level
paths = {dist.parent / i.strip() for i in top_txt.read_text().splitlines()} if top_txt.exists() else set()
paths = (
{dist.parent / i.strip() for i in top_txt.read_text(encoding="utf-8").splitlines()}
if top_txt.exists()
else set()
)
paths.add(dist) # add the dist-info folder itself

base_dirs, record = paths.copy(), dist / "RECORD" # collect entries in record that we did not register yet
for name in (i.split(",")[0] for i in record.read_text().splitlines()) if record.exists() else ():
for name in (
(i.split(",")[0] for i in record.read_text(encoding="utf-8").splitlines()) if record.exists() else ()
):
path = dist_base / name
if not any(p in base_dirs for p in path.parents): # only add if not already added as a base dir
paths.add(path)
Expand Down
2 changes: 1 addition & 1 deletion src/virtualenv/seed/wheels/acquire.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ def download_wheel(distribution, version_spec, for_py_version, search_dirs, app_
]
# pip has no interface in python - must be a new sub-process
env = pip_wheel_env_run(search_dirs, app_data, env)
process = Popen(cmd, env=env, stdout=PIPE, stderr=PIPE, universal_newlines=True)
process = Popen(cmd, env=env, stdout=PIPE, stderr=PIPE, universal_newlines=True, encoding="utf-8")
out, err = process.communicate()
if process.returncode != 0:
kwargs = {"output": out, "stderr": err}
Expand Down
1 change: 1 addition & 0 deletions src/virtualenv/util/subprocess/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ def run_cmd(cmd):
stdin=subprocess.PIPE,
stderr=subprocess.PIPE,
stdout=subprocess.PIPE,
encoding="utf-8",
)
out, err = process.communicate() # input disabled
code = process.returncode
Expand Down
3 changes: 2 additions & 1 deletion tests/unit/activation/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ def get_version(self, raise_on_fail):
universal_newlines=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
encoding="utf-8",
)
out, err = process.communicate()
result = out if out else err
Expand Down Expand Up @@ -220,7 +221,7 @@ def activation_python(request, tmp_path_factory, special_char_name, current_fast
cmd += ["--prompt", special_char_name]
session = cli_run(cmd)
pydoc_test = session.creator.purelib / "pydoc_test.py"
pydoc_test.write_text('"""This is pydoc_test.py"""')
pydoc_test.write_text('"""This is pydoc_test.py"""', encoding="utf-8")
return session


Expand Down
2 changes: 1 addition & 1 deletion tests/unit/activation/test_activate_this.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,6 @@ def test_python_activator_cross(session_app_data, cross_python, special_name_dir
results = activator.generate(session.creator)
assert len(results) == 1
result = results[0]
content = result.read_text()
content = result.read_text(encoding="utf-8")
# check that the repr strings have been correctly stripped
assert "\"'" not in content
2 changes: 1 addition & 1 deletion tests/unit/activation/test_batch.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
@pytest.mark.usefixtures("activation_python")
def test_batch(activation_tester_class, activation_tester, tmp_path):
version_script = tmp_path / "version.bat"
version_script.write_text("ver")
version_script.write_text("ver", encoding="utf-8")

class Batch(activation_tester_class):
def __init__(self, session):
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/activation/test_fish.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ def test_fish(activation_tester_class, activation_tester, monkeypatch, tmp_path)
monkeypatch.setenv("HOME", str(tmp_path))
fish_conf_dir = tmp_path / ".config" / "fish"
fish_conf_dir.mkdir(parents=True)
(fish_conf_dir / "config.fish").write_text("")
(fish_conf_dir / "config.fish").write_text("", encoding="utf-8")

class Fish(activation_tester_class):
def __init__(self, session):
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/activation/test_python_activator.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ def print_r(value):

file_at = {str(activate_script)!r}
# CPython 2 requires non-ascii path open to be unicode
with open(file_at, "r") as file_handler:
with open(file_at, "r", encoding='utf-8') as file_handler:
content = file_handler.read()
exec(content, {{"__file__": file_at}})

Expand Down
8 changes: 7 additions & 1 deletion tests/unit/config/test___main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,12 @@


def test_main():
process = Popen([sys.executable, "-m", "virtualenv", "--help"], universal_newlines=True, stdout=PIPE)
process = Popen(
[sys.executable, "-m", "virtualenv", "--help"],
universal_newlines=True,
stdout=PIPE,
encoding="utf-8",
)
out, _ = process.communicate()
assert not process.returncode
assert out
Expand Down Expand Up @@ -92,6 +97,7 @@ def test_session_report_subprocess(tmp_path):
out = check_output(
[sys.executable, "-m", "virtualenv", str(tmp_path), "--activators", "powershell", "--without-pip"],
text=True,
encoding="utf-8",
)
lines = out.split("\n")
regexes = [
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/config/test_env_var.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
def _empty_conf(tmp_path, monkeypatch):
conf = tmp_path / "conf.ini"
monkeypatch.setenv(IniConfig.VIRTUALENV_CONFIG_FILE_ENV_VAR, str(conf))
conf.write_text("[virtualenv]")
conf.write_text("[virtualenv]", encoding="utf-8")


@pytest.mark.usefixtures("_empty_conf")
Expand Down
1 change: 1 addition & 0 deletions tests/unit/config/test_ini.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ def test_ini_can_be_overwritten_by_flag(tmp_path, monkeypatch):
copies = True
""",
),
encoding="utf-8",
)
monkeypatch.setenv("VIRTUALENV_CONFIG_FILE", str(custom_ini))

Expand Down
25 changes: 14 additions & 11 deletions tests/unit/create/test_creator.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ def _non_success_exit_code(capsys, target):

def test_destination_exists_file(tmp_path, capsys):
target = tmp_path / "out"
target.write_text("")
target.write_text("", encoding="utf-8")
err = _non_success_exit_code(capsys, str(target))
msg = f"the destination {str(target)} already exists and is a file"
assert msg in err, err
Expand Down Expand Up @@ -230,15 +230,15 @@ def list_to_str(iterable):
make_file = debug["makefile_filename"]
assert os.path.exists(make_file)

git_ignore = (dest / ".gitignore").read_text()
git_ignore = (dest / ".gitignore").read_text(encoding="utf-8")
assert git_ignore.splitlines() == ["# created by virtualenv automatically", "*"]


def test_create_vcs_ignore_exists(tmp_path):
git_ignore = tmp_path / ".gitignore"
git_ignore.write_text("magic")
git_ignore.write_text("magic", encoding="utf-8")
cli_run([str(tmp_path), "--without-pip", "--activators", ""])
assert git_ignore.read_text() == "magic"
assert git_ignore.read_text(encoding="utf-8") == "magic"


def test_create_vcs_ignore_override(tmp_path):
Expand All @@ -249,9 +249,9 @@ def test_create_vcs_ignore_override(tmp_path):

def test_create_vcs_ignore_exists_override(tmp_path):
git_ignore = tmp_path / ".gitignore"
git_ignore.write_text("magic")
git_ignore.write_text("magic", encoding="utf-8")
cli_run([str(tmp_path), "--without-pip", "--no-vcs-ignore", "--activators", ""])
assert git_ignore.read_text() == "magic"
assert git_ignore.read_text(encoding="utf-8") == "magic"


@pytest.mark.skipif(not CURRENT.has_venv, reason="requires interpreter with venv")
Expand All @@ -268,7 +268,7 @@ def _session_via_cli(args, options=None, setup_logging=True, env=None):
mocker.patch("virtualenv.run.session_via_cli", side_effect=_session_via_cli)
before = tmp_path.stat().st_mode
cfg_path = tmp_path / "pyvenv.cfg"
cfg_path.write_text("")
cfg_path.write_text("", encoding="utf-8")
cfg = str(cfg_path)
try:
os.chmod(cfg, stat.S_IREAD | stat.S_IRGRP | stat.S_IROTH)
Expand All @@ -293,7 +293,7 @@ def test_create_clear_resets(tmp_path, creator, clear, caplog):
cmd = [str(tmp_path), "--seeder", "app-data", "--without-pip", "--creator", creator, "-vvv"]
cli_run(cmd)

marker.write_text("") # if we a marker file this should be gone on a clear run, remain otherwise
marker.write_text("", encoding="utf-8") # if we a marker file this should be gone on a clear run, remain otherwise
assert marker.exists()

cli_run(cmd + (["--clear"] if clear else []))
Expand Down Expand Up @@ -430,7 +430,7 @@ def test_create_distutils_cfg(creator, tmp_path, monkeypatch):
install_data={tmp_path}{os.sep}data
""",
)
setup_cfg.write_text(setup_cfg.read_text() + conf)
setup_cfg.write_text(setup_cfg.read_text(encoding="utf-8") + conf, encoding="utf-8")

monkeypatch.chdir(dest) # distutils will read the setup.cfg from the cwd, so change to that

Expand Down Expand Up @@ -509,7 +509,7 @@ def test_pth_in_site_vs_python_path(tmp_path):
session = cli_run([str(tmp_path)])
site_packages = str(session.creator.purelib)
# install test.pth that sets sys.testpth='ok'
with open(os.path.join(site_packages, "test.pth"), "w") as f:
with open(os.path.join(site_packages, "test.pth"), "w", encoding="utf-8") as f:
f.write('import sys; sys.testpth="ok"\n')
# verify that test.pth is activated when interpreter is run
out = subprocess.check_output(
Expand Down Expand Up @@ -595,7 +595,10 @@ def test_debug_bad_virtualenv(tmp_path):
result = cli_run(cmd)
# if the site.py is removed/altered the debug should fail as no one is around to fix the paths
cust = result.creator.purelib / "_a.pth"
cust.write_text('import sys; sys.stdout.write("std-out"); sys.stderr.write("std-err"); raise SystemExit(1)')
cust.write_text(
'import sys; sys.stdout.write("std-out"); sys.stderr.write("std-err"); raise SystemExit(1)',
encoding="utf-8",
)
debug_info = result.creator.debug
assert debug_info["returncode"] == 1
assert "std-err" in debug_info["err"]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ def fixture_file(fixture_name):


def read_fixture(fixture_name):
fixture_json = fixture_file(fixture_name).read_text()
fixture_json = fixture_file(fixture_name).read_text(encoding="utf-8")
return PythonInfo._from_json(fixture_json)
1 change: 1 addition & 0 deletions tests/unit/create/via_global_ref/test_build_c_ext.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ def test_can_build_c_extensions(creator, tmp_path, coverage_env):
[str(session.creator.exe), "-c", "import greet; greet.greet('World')"],
universal_newlines=True,
stdout=subprocess.PIPE,
encoding="utf-8",
)
out, _ = process.communicate()
assert process.returncode == 0
Expand Down
6 changes: 3 additions & 3 deletions tests/unit/discovery/py_info/test_py_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ def test_py_info_cached_symlink(mocker, tmp_path, session_app_data):
new_exe.symlink_to(sys.executable)
pyvenv = Path(sys.executable).parents[1] / "pyvenv.cfg"
if pyvenv.exists():
(tmp_path / pyvenv.name).write_text(pyvenv.read_text())
(tmp_path / pyvenv.name).write_text(pyvenv.read_text(encoding="utf-8"), encoding="utf-8")
new_exe_str = str(new_exe)
second_result = PythonInfo.from_exe(new_exe_str, session_app_data)
assert second_result.executable == new_exe_str
Expand Down Expand Up @@ -211,7 +211,7 @@ def _make_py_info(of):
selected = None
for pos, i in enumerate(discovered):
path = tmp_path / str(pos)
path.write_text("")
path.write_text("", encoding="utf-8")
py_info = _make_py_info(i)
py_info.system_executable = CURRENT.system_executable
py_info.executable = CURRENT.system_executable
Expand Down Expand Up @@ -259,7 +259,7 @@ def test_py_info_ignores_distutils_config(monkeypatch, tmp_path):
install_scripts={tmp_path}{os.sep}scripts
install_data={tmp_path}{os.sep}data
"""
(tmp_path / "setup.cfg").write_text(dedent(raw))
(tmp_path / "setup.cfg").write_text(dedent(raw), encoding="utf-8")
monkeypatch.chdir(tmp_path)
py_info = PythonInfo.from_exe(sys.executable)
distutils = py_info.distutils_install
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/discovery/py_info/test_py_info_exe_based_of.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def test_discover_ok(tmp_path, suffix, impl, version, arch, into, caplog, sessio
os.symlink(CURRENT.executable, str(dest))
pyvenv = Path(CURRENT.executable).parents[1] / "pyvenv.cfg"
if pyvenv.exists():
(folder / pyvenv.name).write_text(pyvenv.read_text())
(folder / pyvenv.name).write_text(pyvenv.read_text(encoding="utf-8"), encoding="utf-8")
inside_folder = str(tmp_path)
base = CURRENT.discover_exe(session_app_data, inside_folder)
found = base.executable
Expand Down
1 change: 1 addition & 0 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ set_env =
_COVERAGE_SRC = {envsitepackagesdir}/virtualenv
COVERAGE_FILE = {toxworkdir}/.coverage.{envname}
COVERAGE_PROCESS_START = {toxinidir}/pyproject.toml
PYTHONWARNDEFAULTENCODING = 1
wheel_build_env = .pkg

[testenv:fix]
Expand Down