[Python-checkins] python/dist/src/Tools/pynche Main.py,2.21,2.22

bwarsaw@users.sourceforge.net bwarsaw@users.sourceforge.net
Mon, 21 Oct 2002 07:23:50 -0700


Update of /cvsroot/python/python/dist/src/Tools/pynche
In directory usw-pr-cvs1:/tmp/cvs-serv4624

Modified Files:
	Main.py 
Log Message:
Some fixes based on feedback from Hans Petter Langtangen.

build(): Fix the logic here for calculating fallbacks if the dbfile
isn't parseable.

main(): Fix the semantics for -d/--database; this should override any
database value found in the .pynche file.

Update some comments, and author contact info.

Bump to v1.4

Whitespace normalization.


Index: Main.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Tools/pynche/Main.py,v
retrieving revision 2.21
retrieving revision 2.22
diff -C2 -d -r2.21 -r2.22
*** Main.py	23 Aug 2001 16:15:02 -0000	2.21
--- Main.py	21 Oct 2002 14:23:48 -0000	2.22
***************
*** 1,10 ****
  """Pynche -- The PYthon Natural Color and Hue Editor.
  
! Contact: Barry Warsaw
! Email:   bwarsaw@python.org
  Version: %(__version__)s
  
  Pynche is based largely on a similar color editor I wrote years ago for the
! Sunview window system.  That editor was called ICE: the Interactive Color
  Editor.  I'd always wanted to port the editor to X but didn't feel like
  hacking X and C code to do it.  Fast forward many years, to where Python +
--- 1,10 ----
  """Pynche -- The PYthon Natural Color and Hue Editor.
  
! Contact: %(AUTHNAME)s
! Email:   %(AUTHEMAIL)s
  Version: %(__version__)s
  
  Pynche is based largely on a similar color editor I wrote years ago for the
! SunView window system.  That editor was called ICE: the Interactive Color
  Editor.  I'd always wanted to port the editor to X but didn't feel like
  hacking X and C code to do it.  Fast forward many years, to where Python +
***************
*** 13,19 ****
  days, too many other systems have the acronym `ICE'.
  
! This program currently requires Python 1.5 with Tkinter.  It has only been
! tested on Solaris 2.6.  Feedback is greatly appreciated.  Send email to
! bwarsaw@python.org
  
  Usage: %(PROGRAM)s [-d file] [-i file] [-X] [-v] [-h] [initialcolor]
--- 13,17 ----
  days, too many other systems have the acronym `ICE'.
  
! This program currently requires Python 2.2 with Tkinter.
  
  Usage: %(PROGRAM)s [-d file] [-i file] [-X] [-v] [-h] [initialcolor]
***************
*** 39,43 ****
      --version
      -v
!         print the version number
  
      --help
--- 37,41 ----
      --version
      -v
!         print the version number and exit
  
      --help
***************
*** 49,53 ****
  """
  
! __version__ = '1.3'
  
  import sys
--- 47,51 ----
  """
  
! __version__ = '1.4'
  
  import sys
***************
*** 65,68 ****
--- 63,68 ----
  
  PROGRAM = sys.argv[0]
+ AUTHNAME = 'Barry Warsaw'
+ AUTHEMAIL = 'barry@python.org'
  
  # Default locations of rgb.txt or other textual color database
***************
*** 121,143 ****
  
  
! def build(master=None, initialcolor=None, initfile=None, ignore=None):
      # create all output widgets
      s = Switchboard(not ignore and initfile)
! 
!     # load the color database
!     colordb = None
!     try:
          dbfile = s.optiondb()['DBFILE']
!         colordb = ColorDB.get_colordb(dbfile)
!     except (KeyError, IOError):
!         # scoot through the files listed above to try to find a usable color
!         # database file
!         for f in RGB_TXT:
!             try:
!                 colordb = ColorDB.get_colordb(f)
!                 if colordb:
!                     break
!             except IOError:
!                 pass
      if not colordb:
          usage(1, 'No color database file found, see the -d option.')
--- 121,144 ----
  
  
! def build(master=None, initialcolor=None, initfile=None, ignore=None,
!           dbfile=None):
      # create all output widgets
      s = Switchboard(not ignore and initfile)
!     # defer to the command line chosen color database, falling back to the one
!     # in the .pynche file.
!     if dbfile is None:
          dbfile = s.optiondb()['DBFILE']
!     # find a parseable color database
!     colordb = None
!     files = RGB_TXT[:]
!     while colordb is None:
!         try:
!             colordb = ColorDB.get_colordb(dbfile)
!         except (KeyError, IOError):
!             pass
!         if colordb is None:
!             if not files:
!                 break
!             dbfile = files.pop(0)
      if not colordb:
          usage(1, 'No color database file found, see the -d option.')
***************
*** 154,158 ****
  
      # get the initial color as components and set the color on all views.  if
!     # there was no initial color given on the command line, use the one that's 
      # stored in the option database
      if initialcolor is None:
--- 155,159 ----
  
      # get the initial color as components and set the color on all views.  if
!     # there was no initial color given on the command line, use the one that's
      # stored in the option database
      if initialcolor is None:
***************
*** 172,178 ****
  def run(app, s):
      try:
! 	app.start()
      except KeyboardInterrupt:
! 	pass
  
  
--- 173,179 ----
  def run(app, s):
      try:
!         app.start()
      except KeyboardInterrupt:
!         pass
  
  
***************
*** 180,189 ****
  def main():
      try:
! 	opts, args = getopt.getopt(
              sys.argv[1:],
              'hd:i:Xv',
              ['database=', 'initfile=', 'ignore', 'help', 'version'])
      except getopt.error, msg:
! 	usage(1, msg)
  
      if len(args) == 0:
--- 181,190 ----
  def main():
      try:
!         opts, args = getopt.getopt(
              sys.argv[1:],
              'hd:i:Xv',
              ['database=', 'initfile=', 'ignore', 'help', 'version'])
      except getopt.error, msg:
!         usage(1, msg)
  
      if len(args) == 0:
***************
*** 192,213 ****
          initialcolor = args[0]
      else:
! 	usage(1)
  
!     ignore = 0
      initfile = os.path.expanduser('~/.pynche')
      for opt, arg in opts:
! 	if opt in ('-h', '--help'):
! 	    usage(0)
          elif opt in ('-v', '--version'):
!             print '''\
  Pynche -- The PYthon Natural Color and Hue Editor.
! Contact: Barry Warsaw
! Email:   bwarsaw@python.org
! Version: %s''' % __version__
              sys.exit(0)
! 	elif opt in ('-d', '--database'):
! 	    RGB_TXT.insert(0, arg)
          elif opt in ('-X', '--ignore'):
!             ignore = 1
          elif opt in ('-i', '--initfile'):
              initfile = arg
--- 193,215 ----
          initialcolor = args[0]
      else:
!         usage(1)
  
!     ignore = False
!     dbfile = None
      initfile = os.path.expanduser('~/.pynche')
      for opt, arg in opts:
!         if opt in ('-h', '--help'):
!             usage(0)
          elif opt in ('-v', '--version'):
!             print """\
  Pynche -- The PYthon Natural Color and Hue Editor.
! Contact: %(AUTHNAME)s
! Email:   %(AUTHEMAIL)s
! Version: %(__version__)s""" % globals()
              sys.exit(0)
!         elif opt in ('-d', '--database'):
!             dbfile = arg
          elif opt in ('-X', '--ignore'):
!             ignore = True
          elif opt in ('-i', '--initfile'):
              initfile = arg
***************
*** 215,219 ****
      app, sb = build(initialcolor=initialcolor,
                      initfile=initfile,
!                     ignore=ignore)
      run(app, sb)
      sb.save_views()
--- 217,222 ----
      app, sb = build(initialcolor=initialcolor,
                      initfile=initfile,
!                     ignore=ignore,
!                     dbfile=dbfile)
      run(app, sb)
      sb.save_views()