summaryrefslogtreecommitdiffstats
path: root/Lib/idlelib/macosx_main.py
blob: 78480fae89871cf03c2d778415397666509b9528 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
"""IDLE.app

Installation:
  see the install_IDLE target in python/dist/src/Mac/OSX/Makefile
  
Usage: 

1. Double clicking IDLE icon will open IDLE.
2. Dropping file on IDLE icon will open that file in IDLE.
3. Launch from command line with files with this command-line:

     /Applications/Python/IDLE.app/Contents/MacOS/python file1 file2 file3

"""

# Add IDLE.app/Contents/Resources/idlelib to path.
# __file__ refers to this file when it is used as a module, sys.argv[0]
# refers to this file when it is used as a script (pythonw macosx_main.py)
import sys

from os.path import split, join, isdir
try:
    __file__
except NameError:
    __file__ = sys.argv[0]
idlelib = join(split(__file__)[0], 'idlelib')
if isdir(idlelib):
  sys.path.append(idlelib)

# Make sure True, False, bool() builtins exist.
# - preserves 2.2 compatibility - 2.2.1 includes bool, 2.2 does not.
# - important for Mac OS X because it ships python 2.2
import boolcheck

# see if we are being asked to execute the subprocess code
if '-p' in sys.argv:
    # run expects only the port number in sys.argv
    sys.argv.remove('-p')

    # this module will become the namepsace used by the interactive
    # interpreter; remove all variables we have defined.
    del sys, __file__, boolcheck, split, join, isdir
    __import__('run').main()
else:
    # Load idlelib/idle.py which starts the application.
    import idle