[Python-ideas] New PEP proposal -- Pathlib Module Should Contain All File Operations
Wes Turner
wes.turner at gmail.com
Tue Mar 20 04:03:56 EDT 2018
I added trio to the comparison table
(Things are mostly just async-wrapped,
though pathlib_not_trio does show a few missing methods?).
https://github.com/westurner/pyfilemods/issues/2
https://github.com/westurner/pyfilemods/blob/master/README.rst#attr-table
================== == ======= ====== ======= ======= ====
attr os os.path shutil pathlib path.py trio
================== == ======= ====== ======= ======= ====
`__div__`_ X
`__rdiv__`_ X
`absolute`_ X X
`abspath`_ X X
`access`_ X X
`altsep`_ X X
`anchor`_ X
`as_posix`_ X X
`as_uri`_ X X
`atime`_ X
`basename`_ X X
`bytes`_ X
`capitalize`_ X
`casefold`_ X
`cd`_ X
`center`_ X
`chdir`_ X X
`chmod`_ X X X X
`chown`_ X X X
`chroot`_ X X
`chunks`_ X
`commonpath`_ X
`commonprefix`_ X
`copy`_ X X
`copy2`_ X X
`copyfile`_ X X
`copymode`_ X X
`copystat`_ X X
`copytree`_ X X
`count`_ X
`ctime`_ X
`curdir`_ X X
`cwd`_ X X
`defpath`_ X X
`devnull`_ X X
`dirname`_ X X
`dirs`_ X
`drive`_ X X
`encode`_ X
`endswith`_ X
`exists`_ X X X X
`expand`_ X
`expandtabs`_ X
`expanduser`_ X X X X
`expandvars`_ X X
`ext`_ X
`extsep`_ X X
`files`_ X
`find`_ X
`fnmatch`_ X X
`format`_ X
`format_map`_ X
`get_owner`_ X
`getatime`_ X X
`getctime`_ X X
`getcwd`_ X X
`getmtime`_ X X
`getsize`_ X X
`glob`_ X X X
`group`_ X X
`home`_ X X
`in_place`_ X
`index`_ X
`is_absolute`_ X X
`is_block_device`_ X X
`is_char_device`_ X X
`is_dir`_ X X
`is_fifo`_ X X
`is_file`_ X X
`is_reserved`_ X X
`is_socket`_ X X
`is_symlink`_ X X
`isabs`_ X X
`isalnum`_ X
`isalpha`_ X
`isdecimal`_ X
`isdigit`_ X
`isdir`_ X X
`isfile`_ X X
`isidentifier`_ X
`islink`_ X X
`islower`_ X
`ismount`_ X X
`isnumeric`_ X
`isprintable`_ X
`isspace`_ X
`istitle`_ X
`isupper`_ X
`iterdir`_ X X
`join`_ X X
`joinpath`_ X X X
`lchmod`_ X X
`lexists`_ X
`lines`_ X
`link`_ X X
`listdir`_ X X
`ljust`_ X
`lower`_ X
`lstat`_ X X X X
`lstrip`_ X
`makedirs`_ X X
`makedirs_p`_ X
`maketrans`_ X
`match`_ X X
`merge_tree`_ X
`mkdir`_ X X X X
`mkdir_p`_ X
`module`_ X
`move`_ X X
`mtime`_ X
`name`_ X X X
`namebase`_ X
`normcase`_ X X
`normpath`_ X X
`open`_ X X X X
`os`_ X X
`owner`_ X X X
`pardir`_ X X
`parent`_ X X
`parents`_ X
`partition`_ X
`parts`_ X
`pathconf`_ X X
`pathsep`_ X X
`read_bytes`_ X X
`read_hash`_ X
`read_hexhash`_ X
`read_md5`_ X
`read_text`_ X X
`readlink`_ X X
`readlinkabs`_ X
`realpath`_ X X
`relative_to`_ X X
`relpath`_ X X
`relpathto`_ X
`remove`_ X X
`remove_p`_ X
`removedirs`_ X X
`removedirs_p`_ X
`rename`_ X X X X
`renames`_ X X
`replace`_ X X X X
`resolve`_ X X
`rfind`_ X
`rglob`_ X X
`rindex`_ X
`rjust`_ X
`rmdir`_ X X X X
`rmdir_p`_ X
`rmtree`_ X X
`rmtree_p`_ X
`root`_ X
`rpartition`_ X
`rsplit`_ X
`rstrip`_ X
`samefile`_ X X X X
`sameopenfile`_ X
`samestat`_ X
`sep`_ X X
`size`_ X
`special`_ X
`split`_ X X
`splitall`_ X
`splitdrive`_ X X
`splitext`_ X X
`splitlines`_ X
`splitpath`_ X
`splitunc`_ X
`startswith`_ X
`stat`_ X X X X X X
`statvfs`_ X X
`stem`_ X X
`strip`_ X
`stripext`_ X
`suffix`_ X
`suffixes`_ X
`swapcase`_ X
`symlink`_ X X
`symlink_to`_ X X
`text`_ X
`title`_ X
`touch`_ X X X
`translate`_ X
`uncshare`_ X
`unlink`_ X X X X
`unlink_p`_ X
`upper`_ X
`using_module`_ X
`utime`_ X X
`walk`_ X X
`walkdirs`_ X
`walkfiles`_ X
`with_name`_ X X
`with_suffix`_ X X X
`write_bytes`_ X X X
`write_lines`_ X
`write_text`_ X X X
`zfill`_ X
================== == ======= ====== ======= ======= ====
On Mon, Mar 19, 2018 at 5:23 AM, Wes Turner <wes.turner at gmail.com> wrote:
> Here's a comparison table of os, os.path, shutil, pathlib, and path.py.
>
> The full version is at
> https://github.com/westurner/pyfilemods (README.rst)
> and at
> https://westurner.github.io/pyfilemods.
>
> I ran a few set intersections and went ahead and
> wrote a report to compare function/method signatures and sources.
>
> attr table
> ==========
>
> ================== == ======= ====== ======= =======
> attr os os.path shutil pathlib path.py
> ================== == ======= ====== ======= =======
> `__div__`_ X
> `__rdiv__`_ X
> `absolute`_ X
> `abspath`_ X X
> `access`_ X X
> `altsep`_ X X
> `anchor`_ X
> `as_posix`_ X
> `as_uri`_ X
> `atime`_ X
> `basename`_ X X
> `bytes`_ X
> `capitalize`_ X
> `casefold`_ X
> `cd`_ X
> `center`_ X
> `chdir`_ X X
> `chmod`_ X X X
> `chown`_ X X X
> `chroot`_ X X
> `chunks`_ X
> `commonpath`_ X
> `commonprefix`_ X
> `copy`_ X X
> `copy2`_ X X
> `copyfile`_ X X
> `copymode`_ X X
> `copystat`_ X X
> `copytree`_ X X
> `count`_ X
> `ctime`_ X
> `curdir`_ X X
> `cwd`_ X
> `defpath`_ X X
> `devnull`_ X X
> `dirname`_ X X
> `dirs`_ X
> `drive`_ X X
> `encode`_ X
> `endswith`_ X
> `exists`_ X X X
> `expand`_ X
> `expandtabs`_ X
> `expanduser`_ X X X
> `expandvars`_ X X
> `ext`_ X
> `extsep`_ X X
> `files`_ X
> `find`_ X
> `fnmatch`_ X X
> `format`_ X
> `format_map`_ X
> `get_owner`_ X
> `getatime`_ X X
> `getctime`_ X X
> `getcwd`_ X X
> `getmtime`_ X X
> `getsize`_ X X
> `glob`_ X X
> `group`_ X
> `home`_ X
> `in_place`_ X
> `index`_ X
> `is_absolute`_ X
> `is_block_device`_ X
> `is_char_device`_ X
> `is_dir`_ X
> `is_fifo`_ X
> `is_file`_ X
> `is_reserved`_ X
> `is_socket`_ X
> `is_symlink`_ X
> `isabs`_ X X
> `isalnum`_ X
> `isalpha`_ X
> `isdecimal`_ X
> `isdigit`_ X
> `isdir`_ X X
> `isfile`_ X X
> `isidentifier`_ X
> `islink`_ X X
> `islower`_ X
> `ismount`_ X X
> `isnumeric`_ X
> `isprintable`_ X
> `isspace`_ X
> `istitle`_ X
> `isupper`_ X
> `iterdir`_ X
> `join`_ X X
> `joinpath`_ X X
> `lchmod`_ X
> `lexists`_ X
> `lines`_ X
> `link`_ X X
> `listdir`_ X X
> `ljust`_ X
> `lower`_ X
> `lstat`_ X X X
> `lstrip`_ X
> `makedirs`_ X X
> `makedirs_p`_ X
> `maketrans`_ X
> `match`_ X
> `merge_tree`_ X
> `mkdir`_ X X X
> `mkdir_p`_ X
> `module`_ X
> `move`_ X X
> `mtime`_ X
> `name`_ X X X
> `namebase`_ X
> `normcase`_ X X
> `normpath`_ X X
> `open`_ X X X
> `os`_ X X
> `owner`_ X X
> `pardir`_ X X
> `parent`_ X X
> `parents`_ X
> `partition`_ X
> `parts`_ X
> `pathconf`_ X X
> `pathsep`_ X X
> `read_bytes`_ X
> `read_hash`_ X
> `read_hexhash`_ X
> `read_md5`_ X
> `read_text`_ X
> `readlink`_ X X
> `readlinkabs`_ X
> `realpath`_ X X
> `relative_to`_ X
> `relpath`_ X X
> `relpathto`_ X
> `remove`_ X X
> `remove_p`_ X
> `removedirs`_ X X
> `removedirs_p`_ X
> `rename`_ X X X
> `renames`_ X X
> `replace`_ X X X
> `resolve`_ X
> `rfind`_ X
> `rglob`_ X
> `rindex`_ X
> `rjust`_ X
> `rmdir`_ X X X
> `rmdir_p`_ X
> `rmtree`_ X X
> `rmtree_p`_ X
> `root`_ X
> `rpartition`_ X
> `rsplit`_ X
> `rstrip`_ X
> `samefile`_ X X X
> `sameopenfile`_ X
> `samestat`_ X
> `sep`_ X X
> `size`_ X
> `special`_ X
> `split`_ X X
> `splitall`_ X
> `splitdrive`_ X X
> `splitext`_ X X
> `splitlines`_ X
> `splitpath`_ X
> `splitunc`_ X
> `startswith`_ X
> `stat`_ X X X X X
> `statvfs`_ X X
> `stem`_ X X
> `strip`_ X
> `stripext`_ X
> `suffix`_ X
> `suffixes`_ X
> `swapcase`_ X
> `symlink`_ X X
> `symlink_to`_ X
> `text`_ X
> `title`_ X
> `touch`_ X X
> `translate`_ X
> `uncshare`_ X
> `unlink`_ X X X
> `unlink_p`_ X
> `upper`_ X
> `using_module`_ X
> `utime`_ X X
> `walk`_ X X
> `walkdirs`_ X
> `walkfiles`_ X
> `with_name`_ X
> `with_suffix`_ X X
> `write_bytes`_ X X
> `write_lines`_ X
> `write_text`_ X X
> `zfill`_ X
> ================== == ======= ====== ======= =======
>
>
>
> On Wed, Mar 14, 2018 at 2:22 PM, Wes Turner <wes.turner at gmail.com> wrote:
>
>> path.py conveniently defines very many (most?) file operations as methods:
>> https://github.com/jaraco/path.py/blob/master/path.py
>>
>> https://pathpy.readthedocs.io/en/latest/api.html
>>
>> The division operator is mapped to os.path.join:
>>
>> Path('a') / '/root' == Path('/root')
>>
>>
>> On Monday, March 12, 2018, George Fischhof <george at fischhof.hu> wrote:
>>
>>>
>>>
>>> 2018-03-12 22:16 GMT+01:00 Paul Moore <p.f.moore at gmail.com>:
>>>
>>>> On 12 March 2018 at 20:57, George Fischhof <george at fischhof.hu> wrote:
>>>> > Good day all,
>>>> >
>>>> > as it seemed to be a good idea, I wrote a PEP proposal for pathlib to
>>>> > contain file operations.
>>>> >
>>>> > Here is the draft. What do you think about this?
>>>>
>>>> I don't know for certain what I think I feel about the idea - in
>>>> general, it seems plausible. But I think you'll need to get down to
>>>> specifics in the PEP, exactly what functions do you suggest get added
>>>> to pathlib?
>>>>
>>>> Paul
>>>>
>>>
>>>
>>> Basically file and directory operations: copy, rename, move, delete.
>>> With all variants.
>>> I will collect them, and put intot PEP
>>>
>>> George
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20180320/354e54dd/attachment-0001.html>
More information about the Python-ideas
mailing list