[Python-ideas] New PEP proposal -- Pathlib Module Should Contain All File Operations -- version 2

Barry barry at barrys-emacs.org
Sun Mar 18 04:30:01 EDT 2018



> On 17 Mar 2018, at 22:49, George Fischhof <george at fischhof.hu> wrote:
> 
> 
> 
> 2018. márc. 17. 21:34 ezt írta ("Barry" <barry at barrys-emacs.org>):
> 
> 
>> On 17 Mar 2018, at 10:42, George Fischhof <george at fischhof.hu> wrote:
>> 
>> Hi folks,
>> 
>> I added the list of functions to the proposal, here is the new version.
>> 
>> George
>> 
>> 
>> 
>> 
>> PEP: 9999
>> Title: Pathlib Module Should Contain All File Operations
>> Author: George Fischhof <george at fischhof.hu>
>> Status: Draft
>> Type: Standards Track
>> Content-Type: text/x-rst
>> Created: 15-Mar-2018
>> Python-Version: 3.8
>> Post-History: 12-Mar-2018, 17-Mar-2018
>> 
>> 
>> Abstract
>> ========
>> 
>> This PEP proposes pathlib module to be a centralized place for all
>> file-system related operations.
>> 
>> 
>> Rationale
>> =========
>> 
>> Right now we have several modules that contain functions related
>> to file-system operations mainly the os, pathlib and shutil.
>> For beginners it is quite hard to remember where can he / she find
>> a function (copy resides in shutil, but the remove function can be
>> found in the os module.  (And sometimes developers with moderate
>> experience have to check the documentation as well.)
>> 
>> After the release of version 3.6 several methods became aware of
>> path-like object.  There are only a few ones which does not support
>> the path-like object.  After making these methods path-like object
>> aware, these functions could be added to pathlib.
>> 
>> With functions in pathlib the developers should not have to think
>> on which method (function) can be found in which module.
>> 
>> Makes the life easier.
>> 
>> 
>> Implementation
>> ==============
>> 
>> For compatibility reasons the pathlib should contain wrappers to
>> the original functions.  The original functions should remain
>> at their original place.  (Or if pathlib contains the function, the
>> original modules should have a wrapper to it.)
>> 
>> 
>> List of mentioned functions
>> ===========================
>> 
>>     * os.link => path.hardlink_to
>>       (should be named similarly to path.softlink_to)
>> 
>>     * os.mkfifo
>> 
>>     * os.readlink
>> 
>>     * os.remove
>> 
>>     * os.removedirs
>>       (shutil.rmtree has the same functionalaty)
> 
> I think you will find these to are a lot different.
> 
> 
> From high level, it is only question of implementation: the main goal is to remove a chain of directories

This is a PEP you and proposing details matter and this is one of the details tha you need be clear on.

> 
>> 
>>     * os.truncate
>> 
>>     * shutil.copyfileobj
> 
> This function does not take paths as arguments. I guess it does not belong here.
> 
> 
> No path, it is true (right now), but it has sense to have this function among the others.

What do you mena right now?

> 
> 
>> 
>>     * shutil.copyfile
>> 
>>     * shutil.copymode
>> 
>>     * shutil.copystat
>> 
>>     * shutil.copy
>> 
>>     * shutil.copy2
>> 
>>     * shutil.copytree with shutil.ignore_patterns
>> 
>>     * shutil.move
>> 
>>     * shutil.disk_usage
>> 
>>     * shutil.chown
> 
> Is yout plan to also expose all the constants need to use chmod etc from pathlib?
> 
> Of course, because this PEP is about conveniece and easyness.

Can you say so then and not leave it in doubt.

> 
>> 
>> All functions from os module accept path-like objects,
>> and none of the shutil functions.
> 
> Should shutils be improved to accept path-like first?
> 
> Maybe. The PEP should show the goal. This is just a task among others to achieve the goal. But it can be done simultanuosly.
> 
> George
> 
> Barry
> 
>> 
>> 
>> Copyright
>> =========
>> 
>> This document has been placed in the public domain.
>> 
>> 
>> 
>> ..
>>    Local Variables:
>>    mode: indented-text
>>    indent-tabs-mode: nil
>>    sentence-end-double-space: t
>>    fill-column: 70
>>    coding: utf-8
>>    End:
>> 
>> 
>> 
>> 
>> _______________________________________________
>> Python-ideas mailing list
>> Python-ideas at python.org
>> https://mail.python.org/mailman/listinfo/python-ideas
>> Code of Conduct: http://python.org/psf/codeofconduct/
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20180318/102c9579/attachment.html>


More information about the Python-ideas mailing list