[Python-Dev] Pathlib enhancements - acceptable inputs and outputs for fspath and os.fspath() (original) (raw)
Nick Coghlan ncoghlan at gmail.com
Thu Apr 14 07:44:58 EDT 2016
- Previous message (by thread): [Python-Dev] Pathlib enhancements - acceptable inputs and outputs for __fspath__ and os.fspath()
- Next message (by thread): [Python-Dev] Pathlib enhancements - acceptable inputs and outputs for __fspath__ and os.fspath()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 14 April 2016 at 17:02, Stephen J. Turnbull <stephen at xemacs.org> wrote:
But WDOT? I'd especially like to hear if Nick is tempted to flip-flop (so far he's been in the "pathlib is a text utility" camp).
pathlib is too high level (i.e. has too many dependencies) to be used in low level boundary code.
The use case for returning bytes from fspath is DirEntry, so you can write things like this in low level code:
def myscandir(dirpath):
for entry in os.scandir(dirpath):
if entry.is_file():
with open(entry) as f:
# do something
and still have them automatically inherit the str/bytes handling of the core standard library APIs.
By contrast, as soon as you type "import pathlib" at the top of your file, you've stepped outside the world of potentially pure boundary code, and are instead dealing with structured application level objects (which means traversing the bytes->str boundary before the str->Path one).
Cheers, Nick.
-- Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
- Previous message (by thread): [Python-Dev] Pathlib enhancements - acceptable inputs and outputs for __fspath__ and os.fspath()
- Next message (by thread): [Python-Dev] Pathlib enhancements - acceptable inputs and outputs for __fspath__ and os.fspath()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]