Re: [PATCH] git-p4: import the ctypes module
Hi Etienne, thanks for reporting this! Junio is right, I messed that up on my Windows testing box! :-( Sorry! If you have any questions around submitting patches I am happy to help as I just recently went through the learning process myself! @Dennis: Thanks for the quick patch! Thanks, Lars On 21 Oct 2015, at 10:23, Etienne Girardwrote: > Hello, > > I couldn't work further on this yesterday (but I read > Documentation/SubmittingPatches, which is a good start I guess). The > diff proposed by Dennis works on my machine, I'll try to figure out > why the original script worked with 2.7.10. > > Thanks > > 2015-10-21 1:00 GMT+02:00 Luke Diamand : >> On 20/10/15 20:36, Junio C Hamano wrote: >>> >>> Dennis Kaarsemaker writes: >>> > I do not follow Python development, but does the above mean that > with recent 2.x you can say ctypes without first saying "import > ctypes"? It feels somewhat non-pythonesque that identifiers like > this is given to you without you asking with an explicit 'import', > so I am puzzled. No, you cannot do that. The reason others may not have noticed this bug is that in git-p4.py, ctypes is only used on windows. 111 if platform.system() == 'Windows': 112 free_bytes = ctypes.c_ulonglong(0) 113 ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(os.getcwd()), None, None, ctypes.pointer(free_bytes)) The fact that it works for the OP with 2.7.10 is puzzling (assuming that it's on the same system). >>> >>> >>> Exactly. That is where my "I am puzzled" comes from. >>> >>> The patch looks obviously the right thing to do. Luke? Lars? >> >> >> It looks sensible to me, and works fine on Linux, thanks. ack. >> >> I can't test on Windows today but I can't see why it wouldn't work. >> >> Luke >> >> -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] git-p4: import the ctypes module
I was wrong, the script doesn't work on my machine if ctypes is not imported regardless of python version. I guess I was confused by using a version of git-p4 before ctypes was introduced, the failing version and the patched version, as well as several python versions. Sorry for this misleading claim, and thanks for the quick fix. 2015-10-21 10:23 GMT+02:00 Etienne Girard: > Hello, > > I couldn't work further on this yesterday (but I read > Documentation/SubmittingPatches, which is a good start I guess). The > diff proposed by Dennis works on my machine, I'll try to figure out > why the original script worked with 2.7.10. > > Thanks > > 2015-10-21 1:00 GMT+02:00 Luke Diamand : >> On 20/10/15 20:36, Junio C Hamano wrote: >>> >>> Dennis Kaarsemaker writes: >>> > I do not follow Python development, but does the above mean that > with recent 2.x you can say ctypes without first saying "import > ctypes"? It feels somewhat non-pythonesque that identifiers like > this is given to you without you asking with an explicit 'import', > so I am puzzled. No, you cannot do that. The reason others may not have noticed this bug is that in git-p4.py, ctypes is only used on windows. 111 if platform.system() == 'Windows': 112 free_bytes = ctypes.c_ulonglong(0) 113 ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(os.getcwd()), None, None, ctypes.pointer(free_bytes)) The fact that it works for the OP with 2.7.10 is puzzling (assuming that it's on the same system). >>> >>> >>> Exactly. That is where my "I am puzzled" comes from. >>> >>> The patch looks obviously the right thing to do. Luke? Lars? >> >> >> It looks sensible to me, and works fine on Linux, thanks. ack. >> >> I can't test on Windows today but I can't see why it wouldn't work. >> >> Luke >> >> -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] git-p4: import the ctypes module
Hello, I couldn't work further on this yesterday (but I read Documentation/SubmittingPatches, which is a good start I guess). The diff proposed by Dennis works on my machine, I'll try to figure out why the original script worked with 2.7.10. Thanks 2015-10-21 1:00 GMT+02:00 Luke Diamand: > On 20/10/15 20:36, Junio C Hamano wrote: >> >> Dennis Kaarsemaker writes: >> I do not follow Python development, but does the above mean that with recent 2.x you can say ctypes without first saying "import ctypes"? It feels somewhat non-pythonesque that identifiers like this is given to you without you asking with an explicit 'import', so I am puzzled. >>> >>> >>> No, you cannot do that. The reason others may not have noticed this bug >>> is that >>> in git-p4.py, ctypes is only used on windows. >>> >>> 111 if platform.system() == 'Windows': >>> 112 free_bytes = ctypes.c_ulonglong(0) >>> 113 >>> ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(os.getcwd()), >>> None, None, ctypes.pointer(free_bytes)) >>> >>> The fact that it works for the OP with 2.7.10 is puzzling (assuming that >>> it's >>> on the same system). >> >> >> Exactly. That is where my "I am puzzled" comes from. >> >> The patch looks obviously the right thing to do. Luke? Lars? > > > It looks sensible to me, and works fine on Linux, thanks. ack. > > I can't test on Windows today but I can't see why it wouldn't work. > > Luke > > -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] git-p4: import the ctypes module
Dennis Kaarsemakerwrites: >> I do not follow Python development, but does the above mean that >> with recent 2.x you can say ctypes without first saying "import >> ctypes"? It feels somewhat non-pythonesque that identifiers like >> this is given to you without you asking with an explicit 'import', >> so I am puzzled. > > No, you cannot do that. The reason others may not have noticed this bug is > that > in git-p4.py, ctypes is only used on windows. > > 111 if platform.system() == 'Windows': > 112 free_bytes = ctypes.c_ulonglong(0) > 113 > ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(os.getcwd()), > None, None, ctypes.pointer(free_bytes)) > > The fact that it works for the OP with 2.7.10 is puzzling (assuming that it's > on the same system). Exactly. That is where my "I am puzzled" comes from. The patch looks obviously the right thing to do. Luke? Lars? > > diff --git a/git-p4.py b/git-p4.py > index daa60c6..212ef2b 100755 > --- a/git-p4.py > +++ b/git-p4.py > @@ -24,6 +24,7 @@ import shutil > import stat > import zipfile > import zlib > +import ctypes > > try: > from subprocess import CalledProcessError -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] git-p4: import the ctypes module
The ctypes module is used on windows to calculate free disk space, so it must be imported. Signed-off-by: Dennis Kaarsemaker--- git-p4.py | 1 + 1 file changed, 1 insertion(+) On di, 2015-10-20 at 09:00 -0700, Junio C Hamano wrote: > Luke Diamand writes: > > > On 20 October 2015 at 11:34, Etienne Girard < > > etienne.g.gir...@gmail.com> wrote: > > > Hello, > > > > > > Git-p4 fail when I try to rebase with the error: "NameError: > > > global > > > name 'ctypes' is not defined". The error occurs when I use python > > > 2.7.2 that is installed by default on my company's computers (it > > > goes > > > without saying that everything works fine with python 2.7.10). > > > > > > I'm a beginner in python, but simply importing ctypes at the > > > beginning > > > of the script does the trick. I was wondering if submitting a > > > patch > > > for this issue is worth the trouble, when a satisfying solution > > > is not > > > using a 4 years old version of python. > > > > If you're able to submit a patch that would be great! > > Lars's (git-p4: check free space during streaming, > 2015-09-26) introduced two references to ctypes.* and there is no > 'import ctypes' anywhere in the script. > > I do not follow Python development, but does the above mean that > with recent 2.x you can say ctypes without first saying "import > ctypes"? It feels somewhat non-pythonesque that identifiers like > this is given to you without you asking with an explicit 'import', > so I am puzzled. No, you cannot do that. The reason others may not have noticed this bug is that in git-p4.py, ctypes is only used on windows. 111 if platform.system() == 'Windows': 112 free_bytes = ctypes.c_ulonglong(0) 113 ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(os.getcwd()), None, None, ctypes.pointer(free_bytes)) The fact that it works for the OP with 2.7.10 is puzzling (assuming that it's on the same system). But this patch should help. diff --git a/git-p4.py b/git-p4.py index daa60c6..212ef2b 100755 --- a/git-p4.py +++ b/git-p4.py @@ -24,6 +24,7 @@ import shutil import stat import zipfile import zlib +import ctypes try: from subprocess import CalledProcessError -- 2.6.2-323-g60bd420 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] git-p4: import the ctypes module
On 20/10/15 20:36, Junio C Hamano wrote: Dennis Kaarsemakerwrites: I do not follow Python development, but does the above mean that with recent 2.x you can say ctypes without first saying "import ctypes"? It feels somewhat non-pythonesque that identifiers like this is given to you without you asking with an explicit 'import', so I am puzzled. No, you cannot do that. The reason others may not have noticed this bug is that in git-p4.py, ctypes is only used on windows. 111 if platform.system() == 'Windows': 112 free_bytes = ctypes.c_ulonglong(0) 113 ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(os.getcwd()), None, None, ctypes.pointer(free_bytes)) The fact that it works for the OP with 2.7.10 is puzzling (assuming that it's on the same system). Exactly. That is where my "I am puzzled" comes from. The patch looks obviously the right thing to do. Luke? Lars? It looks sensible to me, and works fine on Linux, thanks. ack. I can't test on Windows today but I can't see why it wouldn't work. Luke -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html