Hi, some background about my pathlib usage. I use the backported version of pathlib and tried to replace the usage of path.py (also widely used library).
Some features part of path.py missing in pathlib: - expanduser, expandvars, I have to use the os functions to do this. It is possible but better if this is part of pathlib. - shutil stuff, as noted below - dirs, and files from path.py. I often had to traverse a directory. I know this is possible with a generator. But It is so often needed that I missed this. Simple dirs(pattern) and files(pattern) is enough. With support for "**" as recursion. Pathlib is a great library and it was good to add it to the standard lib. Now it is time to improve it further. On 08.11.2014 16:46, Ionel Cristian Mărieș wrote: > Hello, > > In the current incarnation Pathlib is missing some key features I need in my > usecases. I want to contribute them but i'd like a bit of feedback on the new > api before jumping to implementation. > > The four things I need are: > > #1. A context manager for temporary files and dirs (that cleans everything up > on exit). Eg: > > with pathlib.TmpDir(suffix='', prefix='') as tmp: > assert isinstance(tmp, pathlib.Path) > > with pathlib.TmpFile(suffix='', prefix='') as tmp: > assert isinstance(tmp, pathlib.Path) Good idea, but we should better add path support to tempfile module. > #2. A context manager for changing working directory (that switches to the old > cwd on exit). Eg: > > with path.cd <http://path.cd>(): > assert os.getcwd() == path Also useful. Even if the state is global. But has to be noted in documentation. > # > 3 > . Shutil-like features: > > - copy_file > - copy_dir (or copy_tree?) > - copy (does copy_dir or copy_file depending on what the source is. How to > handle symlinks?) > - rm_dir (or rm_tree? Also, this would be required for the TmpDir path). I also often needed this. Thanks for bringing this up. Regards, Wolfgang _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com