473,581 Members | 6,641 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

How to handle two-level option processing with optparse

optparse is way cool, far superior and cleaner than other options
processing libraries I've used.

In the next release of the Python debugger revision, I'd like to add
debugger options: --help and POSIX-shell style line trace (similar to
"set -x") being two of the obvious ones.

So I'm wondering how to arrange optparse to handle its options, but
not touch the script's options.

For example the invocation may be something like:
pdb --debugger-opt1 --debugger-opt2 ... debugged-script -opt1 opt2 ...

If a --help option is given to the script to be debugged, I want to
make sure it is not confused for the debugger's help option.

One simple rule for determining who gets whoit is that options that
come after the script name don't get touched in debugger's option
processing.

Another convention that has been used such as in the X11 "startx"
command is to use "--" to separate the two sets of options. However
this isn't as desirable as the simple rule mentioned above; it would
make entering "--" *all* the time when perhaps most of the time there
are no debugger options (as is the case now).

In other systems you can back an indication of the first option that
hasn't been processed and the remaining options are not touched.

It seems that with all of the flexibility of optparse it should handle
this. I'm not sure right now what the best way to do so would be
though. Suggestions?
Jan 26 '06 #1
7 1700
R. Bernstein wrote:
It seems that with all of the flexibility of optparse it should handle
this. I'm not sure right now what the best way to do so would be
though. Suggestions?

If you call OptionParser.di sable_intersper sed_args() on your parser, it will
stop parsing at the first positional argument, leaving other options unparsed.
--
Giovanni Bajo
Jan 26 '06 #2
Giovanni Bajo suggests:
If you call OptionParser.di sable_intersper sed_args() on your parser,
it will stop parsing at the first positional argument, leaving other
options unparsed.


Wow - that was a quick answer! Thanks - it works great!

I see how I missed this. Neither disable_.. or enable_.. have document
strings. And neither seem to described in the optparser section (6.21)
of the Python Library (http://docs.python.org/lib/module-optparse.html).

I wonder if something like this might be added to the Python Cookbook.

Thanks again.
Jan 26 '06 #3
R. Bernstein wrote:
Giovanni Bajo suggests:

If you call OptionParser.di sable_intersper sed_args() on your parser,
it will stop parsing at the first positional argument, leaving other
options unparsed.

Wow - that was a quick answer! Thanks - it works great!

I see how I missed this. Neither disable_.. or enable_.. have document
strings. And neither seem to described in the optparser section (6.21)
of the Python Library (http://docs.python.org/lib/module-optparse.html).

I wonder if something like this might be added to the Python Cookbook.

Well you are just as capable of adding it as anyone else, so knock
yourself out!

regards
Steve
--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC www.holdenweb.com
PyCon TX 2006 www.python.org/pycon/

Jan 26 '06 #4
R. Bernstein wrote:
I see how I missed this. Neither disable_.. or enable_.. have document
strings. And neither seem to described in the optparser section (6.21)
of the Python Library (http://docs.python.org/lib/module-optparse.html).


http://docs.python.org/lib/optparse-other-methods.html
Jan 26 '06 #5
Steve Holden <st***@holdenwe b.com> writes:
Well you are just as capable ...


Yes, I guess you are right. Done.

Couldn't find how to suggest an addition to the Python Cookbook (other
than some generic O'Reilly email), so I've put a submission to:
http://aspn.activestate.com/ASPN/Cookbook/Python/
Jan 26 '06 #6
Magnus Lycka informs:
[in response to my comment]:
I see how I missed this. Neither disable_.. or enable_.. have document
strings. And neither seem to described in the optparser section (6.21)
of the Python Library (http://docs.python.org/lib/module-optparse.html).


http://docs.python.org/lib/optparse-other-methods.html


Hmmm. A couple things are a little odd about this. First "Other
methods" seems to be a grab-bag category. A place to put something
when you don't know where-else to put it. The section called:
"Querying and manipulating your option parser" seems closer. Better I
think if the title were changed slightly to

Querying, manipulating, and changing the default behavior of your
option parse

Second, oddly I can't find this section "Other Methods" in the current
Python SVN source Doc/lib/liboptparse.tex . Best as I can tell, that
file does seem to be the section documenting optparse.
Jan 26 '06 #7
R. Bernstein wrote:
Magnus Lycka informs:
[in response to my comment]:
I see how I missed this. Neither disable_.. or enable_.. have document
strings. And neither seem to described in the optparser section (6.21)
of the Python Library (http://docs.python.org/lib/module-optparse.html).

http://docs.python.org/lib/optparse-other-methods.html


Hmmm. A couple things are a little odd about this. First "Other
methods" seems to be a grab-bag category. A place to put something
when you don't know where-else to put it. The section called:
"Querying and manipulating your option parser" seems closer. Better I
think if the title were changed slightly to

Querying, manipulating, and changing the default behavior of your
option parse

Second, oddly I can't find this section "Other Methods" in the current
Python SVN source Doc/lib/liboptparse.tex . Best as I can tell, that
file does seem to be the section documenting optparse.


Sounds like you should submit a documentation bug:
http://sourceforge.net/tracker/?grou...70&atid=105470
Plain text is fine -- just explain what needs to be changed.

Thanks!

STeVe
Jan 26 '06 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

7
3237
by: Tony Johansson | last post by:
Hello!! Assume I have a handle body pattern with classes called Handle and Body. In the Body class I store one int value for example 7 or some other integer value. In the Handle class I have a pointer to the Body class. If a want to create a STL container of List with the following declaration List <Handle <Body> > list
0
2162
by: Tony Johansson | last post by:
Hello! Here I have two classes these are called Handle and Body and a main. You have the class definition below. Some basic information. In the Handle class is there a pointer to the Body. Each Body object contains one primitive datatype int. The Body instance is created in the constructor for Handle. In main I instansiate some Handle...
2
3031
by: Indiana Epilepsy and Child Neurology | last post by:
Before asking this questions I've spent literally _years_ reading (Meyer, Stroustrup, Holub), googling, asking more general design questions, and just plain thinking about it. I am truly unable to figure out what would be a "proper" OO design (in C++) for this. There may be alternatives to writing my own ODBC handle classes, and I may be...
14
2717
by: Howard | last post by:
Hi, I recently had a problem where I decided to store objects in a vector. (Previously, I had always stored pointers in vectors). Well, naturally, when storing an object in a vector, using push_back, the object I had in hand was getting copied (twice, in fact). That led to a problem, in that my object contained a "handle" to another...
12
4000
by: Ken Brubaker | last post by:
I am using DB2 8.5 FP5 on Windows 2000 Server and have noticed what appears to be a handle leak. When I execute a DB2 connect statement in a command window, followed by a DB2 connect reset statement, The number of handles displayed in Windows Task Manager for the db2syscs process does not return to its original value, but to 1 handle higher....
2
1226
by: Alan Silver | last post by:
Hello, I am writing a page that allows the user to upload two images to the server. I have two HTMLInputFile controls on the page ... <input id="smallimage" Type="File" Runat="Server"> <br><input id="largeimage" Type="File" Runat="Server"> and the code that handle the postback looks like this...
13
4905
by: Abhishek | last post by:
Hi, how do I pass the handle of a control to the win32 api mouse_event. so that it will create the click event on that application only even if there is any other window in front of it. I dont what to set focus. I just want the click event to happen in that window directly. Regards Abhishek
2
596
by: Jonathan Boivin | last post by:
Hi people, Let me introduce to how I get this error. I have a form which load all my bills representation depending upon filters which each bill is a usercontrol of my own having some textboxes containing bill's datas. (I already replaced the labels by painting the text instead.) When I click on my filter button, it clears the current...
2
35526
weaknessforcats
by: weaknessforcats | last post by:
Handle Classes Handle classes, also called Envelope or Cheshire Cat classes, are part of the Bridge design pattern. The objective of the Bridge pattern is to separate the abstraction from the implementation so the two can vary independently. Handle classes usually contain a pointer to the object implementation. The Handle object is used...
9
1923
by: =?Utf-8?B?UmFq?= | last post by:
How do I know which methods will throw exception when I am using FCL or other third party .Net library? I am developer of mostly native Windows applications and now .Net. After working few months in Java, I am thinking why Win32 APIs or even .Net documentation not clear on which methods will throw exception or what exceptions can be...
0
7857
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main...
0
7788
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language...
0
8299
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that...
1
7887
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For...
0
8162
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the...
0
6543
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then...
1
5667
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes...
0
5355
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert...
0
3811
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.