Just had a thought kernel: what if there were an f-string mini-language
directive to grab environment variables and expand user paths? That seems
to me like it could be even more useful beyond just working with paths.
Maybe something like:
f"{my_var:$}"
This would return the same as os.path.expandvars("$my_var")
I am not sure about user name expansion though. Maybe something like:
f"{user:~}"
...would return the user directory, and this:
f"{:~}"
...would give the same result as os.path.expanduser("~")
---
Ricky.
"I've never met a Kentucky man who wasn't either thinking about going home
or actually going home." - Happy Chandler
On Fri, Feb 11, 2022 at 2:04 PM Paul Moore <[email protected]> wrote:
> On Fri, 11 Feb 2022 at 16:37, Christopher Barker <[email protected]>
> wrote:
> >
> > On Fri, Feb 11, 2022 at 12:28 AM Serhiy Storchaka <[email protected]>
> wrote:
> >>
> >> expandvars() does not operate on paths, it operates on strings and
> >> bytestrings. There is nothing path-specific here. Expanding environment
> >> variables consists of three distinct steps:
> >
> > sure -- but it does live in os.paths now, the docs talk about paths, and
> it is useful for paths -- so it seems a fine idea to have that
> functionality in pathlib.
>
> One way that tying it to paths is bad is that it ignores the path
> structure. If environment variable a is "d1/f1" and b is "d2/f2" then
> "${a}x${b}" is "d1/f1xd2/f2", which could be very confusing to someone
> who sees the value of b and expects the result to be a file in a
> directory called d2. Yes, I know that the documentation could make
> this clear (the docs in os.path don't, BTW) and I know that it's no
> different than the os.path version, but adding an expandvars method to
> pathlib feels like throwing good money after bad...
>
> Let's leave it where it is and keep the status quo, or fix it
> *properly* and put it somewhere more logical like shlex. Personally I
> don't use it that often, so I'm fine with just leaving it alone.
>
> Paul
> _______________________________________________
> Python-ideas mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at
> https://mail.python.org/archives/list/[email protected]/message/2XSYXAFLMMVGJDYJYRM2CDZO2WV5YDX6/
> Code of Conduct: http://python.org/psf/codeofconduct/
>
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/[email protected]/message/IGI5FKZAR62T63JKEC4JTOCRXLVJGTT2/
Code of Conduct: http://python.org/psf/codeofconduct/