Python coding
Hello, I am trying to do a python code. Using Windows, I got as far as the step that asks me to “copy the logistics.py file and save it in the same folder that you are running python from” (as displayed by the command prompt). Can you help direct me where to go to copy and save this “logistics.py“ file? Thank you, Karen -- https://mail.python.org/mailman/listinfo/python-list
argparse — adding a --version flag in the face of positional args
I have a script to which I'd like to add a --version flag. It should print the version number then exit, much in the same way --help prints the help text then exits. I haven't been able to figure that out. I always get a complaint about the required positional argument. I think I could use something like nargs='*', but that would push off detection of the presence of the positional arg to the application. Shouldn't I be able to tell argparse I'm going to process --verbose, then exit? Thx, Skip -- https://mail.python.org/mailman/listinfo/python-list
Re: Python coding
On 27Nov2022 16:47, Karen Park wrote: I am trying to do a python code. Using Windows, I got as far as the step that asks me to “copy the logistics.py file and save it in the same folder that you are running python from” (as displayed by the command prompt). Can you help direct me where to go to copy and save this “logistics.py“ file? It sounds like you're follow some tutorial? Can you provide the URL of the tutorial you're following? Cheers, Cameron Simpson -- https://mail.python.org/mailman/listinfo/python-list
Re: argparse — adding a --version flag in the face of positional args
I wondered whether subparsers might work, but they don't quite fit here.
This seems to fit the bill fairly well, though I agree it would be
nice if there were a neater option:
import argparse
import sys
VERSION = 0.1
def main(args):
parser.parse_args(args)
class VersionAction(argparse.Action):
def __call__(self, parser, namespace, values, option_string):
print(VERSION)
exit()
parser = argparse.ArgumentParser()
parser.add_argument("-v", "--version", nargs=0, action=VersionAction)
parser.add_argument("pos", nargs=1)
if __name__ == "__main__":
main(sys.argv[1:])
On Sun, 27 Nov 2022 at 23:40, Skip Montanaro wrote:
>
> I have a script to which I'd like to add a --version flag. It should print
> the version number then exit, much in the same way --help prints the help
> text then exits. I haven't been able to figure that out. I always get a
> complaint about the required positional argument.
>
> I think I could use something like nargs='*', but that would push off
> detection of the presence of the positional arg to the application.
> Shouldn't I be able to tell argparse I'm going to process --verbose, then
> exit?
>
> Thx,
>
> Skip
> --
> https://mail.python.org/mailman/listinfo/python-list
--
Matt Wheeler
http://funkyh.at
--
https://mail.python.org/mailman/listinfo/python-list
Re: argparse — adding a --version flag in the face of positional args
> class VersionAction(argparse.Action):
> def __call__(self, parser, namespace, values, option_string):
> print(VERSION)
> exit()
...
> parser.add_argument("-v", "--version", nargs=0, action=VersionAction)
Thanks. An action class didn't occur to me. I looked briefly at the
code for argparse to see how it handled --help. The added argument
seemed normal, so gave up, figuring there was some special handling of
that option.
Skip
--
https://mail.python.org/mailman/listinfo/python-list
Re: argparse — adding a --version flag in the face of positional args
On 11/27/22 16:40, Skip Montanaro wrote: I have a script to which I'd like to add a --version flag. It should print the version number then exit, much in the same way --help prints the help text then exits. I haven't been able to figure that out. I always get a complaint about the required positional argument. I think I could use something like nargs='*', but that would push off detection of the presence of the positional arg to the application. Shouldn't I be able to tell argparse I'm going to process --verbose, then exit? ummm, hate to say this, but have you checked the documentation? this case is supported using an action named 'version' without doing very much. -- https://mail.python.org/mailman/listinfo/python-list
RE: Python coding
Create a folder anywhere convenient and copy it in there.Then - if python has been downloaded from the Python website and installed "normally" you can open a command prompt in that folder and type C:\\$>python logistics.py"normally" means Python is in your path environment variable.--(Unsigned mail from my phone) Original message From: Karen Park Date: 28/11/22 10:07 (GMT+10:00) To: [email protected] Subject: Python coding Hello,I am trying to do a python code. Using Windows, I got as far as the step that asks me to “copy the logistics.py file and save it in the same folder that you are running python from” (as displayed by the command prompt). Can you help direct me where to go to copy and save this “logistics.py“ file?Thank you,Karen -- https://mail.python.org/mailman/listinfo/python-list -- https://mail.python.org/mailman/listinfo/python-list
Re: Python coding
On Sun, 27 Nov 2022 16:47:29 -0600, Karen Park declaimed the following: >I am trying to do a python code. Using Windows, I got as far as the step that >asks me to “copy the logistics.py file and save it in the same folder that you >are running python from” (as displayed by the command prompt). >Can you help direct me where to go to copy and save this “logistics.py“ file? Well, where do the instructions tell you to obtain "logistics.py"? Or maybe that is the file you are supposed to create using some editor? Unless you've changed directories, opening a command shell should reveal something like: Microsoft Windows [Version 10.0.19044.2251] (c) Microsoft Corporation. All rights reserved. C:\Users\Wulfraed> ... C:\Users\Wulfraed would be the directory in which to save the file (for my machine)... But if I run a few directory changes... Microsoft Windows [Version 10.0.19044.2251] (c) Microsoft Corporation. All rights reserved. C:\Users\Wulfraed>cd "Documents\_Hg-Repositories\Python Progs" C:\Users\Wulfraed\Documents\_Hg-Repositories\Python Progs> ... means the directory to save in would be C:\Users\Wulfraed\Documents\_Hg-Repositories\Python Progs The idea is to save the .py file in the /current working directory/. That way you only need to type the name of the file, without the long directory path, when invoking the program (which assumes 'python" [python.exe] is on your system path). -- Wulfraed Dennis Lee Bieber AF6VN [email protected]://wlfraed.microdiversity.freeddns.org/ -- https://mail.python.org/mailman/listinfo/python-list
Re: argparse — adding a --version flag in the face of positional args
Use two parsers:
import argparse
import sys
vparser = argparse.ArgumentParser(add_help=False)
vparser.add_argument('--version',action="store_true",help="show version")
# look for version, ignore remaining arguments
vargs, _ = vparser.parse_known_args()
if vargs.version:
print("Version 2.0")
sys.exit(0)
parser = argparse.ArgumentParser()
parser.add_argument("positional",type=int)
# add version again, so it displays if --help called
parser.add_argument('--version',action="store_true",help="show version")
args = parser.parse_args()
# double argument
print(args.positional * 2)
From: Python-list on
behalf of Skip Montanaro
Date: Sunday, November 27, 2022 at 6:42 PM
To: Python
Subject: argparse — adding a --version flag in the face of positional args
*** Attention: This is an external email. Use caution responding, opening
attachments or clicking on links. ***
I have a script to which I'd like to add a --version flag. It should print
the version number then exit, much in the same way --help prints the help
text then exits. I haven't been able to figure that out. I always get a
complaint about the required positional argument.
I think I could use something like nargs='*', but that would push off
detection of the presence of the positional arg to the application.
Shouldn't I be able to tell argparse I'm going to process --verbose, then
exit?
Thx,
Skip
--
https://urldefense.com/v3/__https://mail.python.org/mailman/listinfo/python-list__;!!Cn_UX_p3!k-JSWNRKr8fNARGIFw3z_eh_Kv0ouXZKTDEQfWplA3Y3yrLUl81TmbNLiuDiXGOjgXcmNFPOqU2Ldmsh1VCLvLsxBas$
--
https://mail.python.org/mailman/listinfo/python-list
Re: argparse — adding a --version flag in the face of positional args
> > ummm, hate to say this, but have you checked the documentation? this > case is supported using an action named 'version' without doing very much. > Thanks, Mats. I actually searched all over the argparse docs. (There's a lot to digest. Honestly, if I wasn't attempting to be sort of up-to-date I'd just continue using getopt.) It never occurred to me that "version" would be special, so I didn't specifically search for it, or realize there would be a specific action devoted to it. I knew (the default) "help" was special, so I focused my search for it. Obviously, "--help" is a pretty bad search term. Skip > -- https://mail.python.org/mailman/listinfo/python-list
Re: argparse — adding a --version flag in the face of positional args
I figured it out…there was a logistics file given with the assignment! I thought it was supposed to be a download included with the python download…oops! Thanks, Karen > On Nov 27, 2022, at 9:34 PM, Skip Montanaro wrote: > > >> >> >> ummm, hate to say this, but have you checked the documentation? this >> case is supported using an action named 'version' without doing very much. >> > > Thanks, Mats. > > I actually searched all over the argparse docs. (There's a lot to digest. > Honestly, if I wasn't attempting to be sort of up-to-date I'd just continue > using getopt.) It never occurred to me that "version" would be special, so > I didn't specifically search for it, or realize there would be a specific > action devoted to it. I knew (the default) "help" was special, so I focused > my search for it. Obviously, "--help" is a pretty bad search term. > > Skip > >> > -- > https://mail.python.org/mailman/listinfo/python-list -- https://mail.python.org/mailman/listinfo/python-list
