pathlib.Path.touch incorrectly raises FileNotFoundError
オープン
まだ誰も着手していません。
stdlib
type-bug
- 主要言語
- Python
- スター
- 77.2k
- フォーク
- 36k
- 平均マージ
- 1日 9時間
- マージ済み PR(30日)
- 558
説明
Bug report
In ipython, the first two calls to pathlib.Path.touch succeed but the third fails. I see no reason that it should fail, and if it should, the error raised is incorrect.
from pathlib import Path
log_filename = Path('/mnt/c/Users/Michael/OneDrive/PycharmProjects/beta_numbers/logs/perron_numbers_log0.txt')
log_filename.touch() # success
log_filename = Path('/mnt/c/Users/Michael/OneDrive/PycharmProjects/beta_numbers/logs/perron_numbers_log_.txt')
log_filename.touch() # success
log_filename = Path('/mnt/c/Users/Michael/OneDrive/PycharmProjects/beta_numbers/logs/perron_numbers_log_0.txt')
log_filename.touch()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.10/pathlib.py", line 1166, in touch
self._accessor.touch(self, mode, exist_ok)
File "/usr/lib/python3.10/pathlib.py", line 331, in touch
fd = os.open(path, flags, mode)
FileNotFoundError: [Errno 2] No such file or directory: '/mnt/c/Users/Michael/OneDrive/PycharmProjects/beta_numbers/logs/perron_numbers_log_0.txt'
Contents of /mnt/c/Users/Michael/OneDrive/PycharmProjects/beta_numbers/logs prior to the first touch:
- -3_-1_-7.log
- -7_-29_-43.log
- -8_-3_-17.log
- -9_-35_-51.log
- analyze.log
- find_close_orbit.log
- test_log.txt
- testy.log
- update_legacy_data.log
Your environment
- CPython versions tested on: 3.10.4
- Operating system and architecture: Ubuntu 22.04 run on a Windows 10 x64 device through WSL2
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず、WSL2 上の Ubuntu 22.04 で CPython 3.10.4 を使用して pathlib.Path.touch の 3 つの呼び出しを再現し、次に pathlib.py の 1166 行目と 331 行目を調べます。報告された FileNotFoundError が再現可能かどうか、またどのファイルシステム条件がそれを引き起こすのかを特定します。完了の条件は、確認済みの診断と、焦点を絞った回帰テストまたは文書化された説明です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- python
- 領域
- operating-systems
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 35/100