Re: making your own DirEntry.
On 12/23/23 10:48, Antoon Pardon wrote: Op 22/12/2023 om 21:39 schreef DL Neil via Python-list: Why create a DirEntry? Why not go directly to os.mkdir() or whatever? Because I have functions with DirEntry parameters. Python is duck-typed, so it's quite likely that if you pass something that *looks like* a DirEntry - has the same variables and methods - it will work. If it walks like a DirEntry and quacks like a DirEntry, it's a DirEntry. -- https://mail.python.org/mailman/listinfo/python-list
Re: making your own DirEntry.
Op 23/12/2023 om 12:34 schreef Barry Scott: On 23 Dec 2023, at 09:48, Antoon Pardon via Python-list wrote: Because I have functions with DirEntry parameters. I would duck-type a class I control to be my DirEnrry in this situation. Would also help you when debugging as you can tell injected DirEntry from "real" DirEntry. Yes that seems to be, the way to go. -- Antoon Pardon -- https://mail.python.org/mailman/listinfo/python-list
Re: making your own DirEntry.
> On 23 Dec 2023, at 09:48, Antoon Pardon via Python-list > wrote: > > Because I have functions with DirEntry parameters. I would duck-type a class I control to be my DirEnrry in this situation. Would also help you when debugging as you can tell injected DirEntry from "real" DirEntry. Barry -- https://mail.python.org/mailman/listinfo/python-list
Re: making your own DirEntry.
Op 22/12/2023 om 21:39 schreef DL Neil via Python-list: Antoon, On 12/23/23 01:00, Antoon Pardon via Python-list wrote: I am writing a program that goes through file hierarchies and I am mostly using scandir for that which produces DirEntry instances. At times it would be usefull if I could make my own DirEntry for a specific path, however when I try, I get the following diagnostic: os.DirEntry('snap') Traceback (most recent call last): File "", line 1, in TypeError: cannot create 'posix.DirEntry' instances Does anyone have an idea for why this limitation and how to go around it. At this moment I don't consider pathlib very usefull, it lacks the follow_symlinks parameter in the is_dir, is_file, ... methods. Can't recall ever trying this. The manual (https://docs.python.org/3/library/os.html#os.DirEntry) suggests that a DirEntry is one of those Python data-constructs which it creates, but we may only use: "cannot create". Secondly, that a DirEntry object consists of a lot more than the directory-name, eg its path. Thirdly, that os.scandir() deals (only) with concrete directories - unlike pathlib's ability to work with both the real thing and abstract files/dirs. Why create a DirEntry? Why not go directly to os.mkdir() or whatever? Because I have functions with DirEntry parameters. -- https://mail.python.org/mailman/listinfo/python-list
Re: making your own DirEntry.
Antoon, On 12/23/23 01:00, Antoon Pardon via Python-list wrote: I am writing a program that goes through file hierarchies and I am mostly using scandir for that which produces DirEntry instances. At times it would be usefull if I could make my own DirEntry for a specific path, however when I try, I get the following diagnostic: os.DirEntry('snap') Traceback (most recent call last): File "", line 1, in TypeError: cannot create 'posix.DirEntry' instances Does anyone have an idea for why this limitation and how to go around it. At this moment I don't consider pathlib very usefull, it lacks the follow_symlinks parameter in the is_dir, is_file, ... methods. Can't recall ever trying this. The manual (https://docs.python.org/3/library/os.html#os.DirEntry) suggests that a DirEntry is one of those Python data-constructs which it creates, but we may only use: "cannot create". Secondly, that a DirEntry object consists of a lot more than the directory-name, eg its path. Thirdly, that os.scandir() deals (only) with concrete directories - unlike pathlib's ability to work with both the real thing and abstract files/dirs. Why create a DirEntry? Why not go directly to os.mkdir() or whatever? -- Regards =dn -- https://mail.python.org/mailman/listinfo/python-list
making your own DirEntry.
I am writing a program that goes through file hierarchies and I am mostly using scandir for that which produces DirEntry instances. At times it would be usefull if I could make my own DirEntry for a specific path, however when I try, I get the following diagnostic: os.DirEntry('snap') Traceback (most recent call last): File "", line 1, in TypeError: cannot create 'posix.DirEntry' instances Does anyone have an idea for why this limitation and how to go around it. At this moment I don't consider pathlib very usefull, it lacks the follow_symlinks parameter in the is_dir, is_file, ... methods. -- Antoon Pardon. -- https://mail.python.org/mailman/listinfo/python-list