[[[
Make svn_apply_autoprops.py Python 3-compatible.

* contrib/client-side/svn_apply_autoprops.py:
  (get_autoprop_lines): Use raw strings for regexes, and `for line in
fd` instead of `for line in fd.xreadlines()`.
  (filter_walk): Pass directory names separately.
  (main): Use `open()` instead of `file()`, and `os.walk()` instead of
`os.path.walk()`.
]]]

-- Khairul

On Wed, May 1, 2024 at 12:04 PM Khairul Azhar Kasmiran
<kaza...@gmail.com> wrote:
>
> > Are there any systems where Python is only installed as "python" and not as 
> > "python3" or is this safe?
>
> If "python3" is missing, it should be installable via a package or can
> be made available manually via a symbolic link, but I suppose this is
> going to be troublesome for some so I've reverted the hashbang binary
> back to "python" in the reattached patch.
>
> > I've tested and on Windows (Python 3.12) I get the following syntax 
> > warnings:
> >
> > C:\Devel\subversion_trunk\contrib\client-side\svn_apply_autoprops.py:71: 
> > SyntaxWarning: invalid escape sequence '\s'
> >   re_start_autoprops = re.compile('^\s*\[auto-props\]\s*')
> > C:\Devel\subversion_trunk\contrib\client-side\svn_apply_autoprops.py:72: 
> > SyntaxWarning: invalid escape sequence '\s'
> >   re_end_autoprops = re.compile('^\s*\[\w+\]\s*')
>
> I was using Python 3.10 on both Windows and Linux and so was not
> getting the warnings. I have since upgraded to Python 3.12 on Windows
> and have made the necessary changes in the reattached patch. Testing
> with Python 2.7 suggests that there are no problems with the raw
> strings regarding backwards compatibility.
>
> [[[
> Make svn_apply_autoprops.py Python 3-compatible.
>
> * contrib/client-side/svn_apply_autoprops.py:
>   (get_autoprop_lines): Use raw strings for regexes, and `for line in
> fd` instead of `for line in
> fd.xreadlines()`.
>   (filter_walk): Pass directory names separately.
>   (main): Use `open()` instead of `file()`, and `os.walk()` instead of
> `os.path.walk()`.
> ]]]
>
> Best regards,
> Khairul
>
> On Tue, Apr 30, 2024 at 11:31 PM Daniel Sahlberg
> <daniel.l.sahlb...@gmail.com> wrote:
> >
> > Den mån 29 apr. 2024 kl 14:06 skrev Khairul Azhar Kasmiran 
> > <kaza...@gmail.com>:
> >>
> >> Hi everyone!
> >>
> >> As promised in [1], this patch makes svn_apply_autoprops.py Python
> >> 3-compatible while keeping Python 2 compatibility. Afaik, the original
> >> semantics are preserved 100% -- I think I did the conversion from
> >> `os.path.walk()` to `os.walk()` correctly.
> >>
> >> [1] https://lists.apache.org/thread/j8cjrgxosz2cmcysymhy8pr4b5x9s96k
> >>
> >> [[[
> >> Make svn_apply_autoprops.py Python 3-compatible.
> >>
> >> * contrib/client-side/svn_apply_autoprops.py: Set hashbang binary to 
> >> `python3`.
> >
> >
> > Are there any systems where Python is only installed as "python" and not as 
> > "python3" or is this safe?
> >
> >>
> >>   (get_autoprop_lines): Use `for line in fd` instead of `for line in
> >> fd.xreadlines()`.
> >>   (filter_walk): Pass directory names separately.
> >>   (main): Use `open()` instead of `file()`, and `os.walk()` instead of
> >> `os.path.walk()`.
> >> ]]]
> >
> >
> > Thanks!
> >
> > I've tested and on Windows (Python 3.12) I get the following syntax 
> > warnings:
> >
> > C:\Devel\subversion_trunk\contrib\client-side\svn_apply_autoprops.py:71: 
> > SyntaxWarning: invalid escape sequence '\s'
> >   re_start_autoprops = re.compile('^\s*\[auto-props\]\s*')
> > C:\Devel\subversion_trunk\contrib\client-side\svn_apply_autoprops.py:72: 
> > SyntaxWarning: invalid escape sequence '\s'
> >   re_end_autoprops = re.compile('^\s*\[\w+\]\s*')
> >
> > (I don't get those on Linux (Python 3.11)).
> >
> > It seems to help to use a raw string, but I'm not sure if this will kill 
> > backwards compatibility. ON the other hand if we set the hashbang to 
> > python3, we've explicitly killed any hope of backwards compatibility.
> >
> > Kind regards,
> > Daniel
> >
> >
> >
> >>
> >>
> >> Best regards,
> >> Khairul

Reply via email to