Re: making your own DirEntry.

2023-12-23 Thread immibis via Python-list

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.

2023-12-23 Thread Antoon Pardon via Python-list




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.

2023-12-23 Thread Barry Scott via Python-list



> 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.

2023-12-23 Thread Antoon Pardon via Python-list

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.

2023-12-22 Thread 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?

--
Regards =dn
--
https://mail.python.org/mailman/listinfo/python-list


making your own DirEntry.

2023-12-22 Thread Antoon Pardon via Python-list

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