symbian-qemu-0.9.1-12/python-2.6.1/Lib/plat-mac/icopen.py
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 """icopen patch
       
     2 
       
     3 OVERVIEW
       
     4 
       
     5 icopen patches MacOS Python to use the Internet Config file mappings to select
       
     6 the type and creator for a file.
       
     7 
       
     8 Version 1 released to the public domain 3 November 1999
       
     9 by Oliver Steele (steele@cs.brandeis.edu).
       
    10 
       
    11 DETAILS
       
    12 
       
    13 This patch causes files created by Python's open(filename, 'w') command (and
       
    14 by functions and scripts that call it) to set the type and creator of the file
       
    15 to the type and creator associated with filename's extension (the
       
    16 portion of the filename after the last period), according to Internet Config.
       
    17 Thus, a script that creates a file foo.html will create one that opens in whatever
       
    18 browser you've set to handle *.html files, and so on.
       
    19 
       
    20 Python IDE uses its own algorithm to select the type and creator for saved
       
    21 editor windows, so this patch won't effect their types.
       
    22 
       
    23 As of System 8.6 at least, Internet Config is built into the system, and the
       
    24 file mappings are accessed from the Advanced pane of the Internet control
       
    25 panel.  User Mode (in the Edit menu) needs to be set to Advanced in order to
       
    26 access this pane.
       
    27 
       
    28 INSTALLATION
       
    29 
       
    30 Put this file in your Python path, and create a file named {Python}:sitecustomize.py
       
    31 that contains:
       
    32         import icopen
       
    33 
       
    34 (If {Python}:sitecustomizer.py already exists, just add the 'import' line to it.)
       
    35 
       
    36 The next time you launch PythonInterpreter or Python IDE, the patch will take
       
    37 effect.
       
    38 """
       
    39 
       
    40 from warnings import warnpy3k
       
    41 warnpy3k("In 3.x, the icopen module is removed.", stacklevel=2)
       
    42 
       
    43 import __builtin__
       
    44 
       
    45 _builtin_open = globals().get('_builtin_open', __builtin__.open)
       
    46 
       
    47 def _open_with_typer(*args):
       
    48     file = _builtin_open(*args)
       
    49     filename = args[0]
       
    50     mode = 'r'
       
    51     if args[1:]:
       
    52         mode = args[1]
       
    53     if mode[0] == 'w':
       
    54         from ic import error, settypecreator
       
    55         try:
       
    56             settypecreator(filename)
       
    57         except error:
       
    58             pass
       
    59     return file
       
    60 
       
    61 __builtin__.open = _open_with_typer
       
    62 
       
    63 """
       
    64 open('test.py')
       
    65 _open_with_typer('test.py', 'w')
       
    66 _open_with_typer('test.txt', 'w')
       
    67 _open_with_typer('test.html', 'w')
       
    68 _open_with_typer('test.foo', 'w')
       
    69 """