Move Mac/OSX/Tools one level up
This commit is contained in:
parent
e275d3d4ce
commit
8ec9f866c0
|
@ -0,0 +1,110 @@
|
|||
"""Suite Help Indexing Tool Suite: Special events that just the Help Indexing Tool supports.
|
||||
Level 0, version 0
|
||||
|
||||
Generated from /Developer/Applications/Apple Help Indexing Tool.app
|
||||
AETE/AEUT resource version 1/1, language 0, script 0
|
||||
"""
|
||||
|
||||
import aetools
|
||||
import MacOS
|
||||
|
||||
_code = 'HIT '
|
||||
|
||||
class Help_Indexing_Tool_Suite_Events:
|
||||
|
||||
def turn_anchor_indexing(self, _object, _attributes={}, **_arguments):
|
||||
"""turn anchor indexing: Turns anchor indexing on or off.
|
||||
Required argument: \xd2on\xd3 or \xd2off\xd3, to turn anchor indexing on or off
|
||||
Keyword argument _attributes: AppleEvent attribute dictionary
|
||||
"""
|
||||
_code = 'HIT '
|
||||
_subcode = 'tAnc'
|
||||
|
||||
if _arguments: raise TypeError, 'No optional args expected'
|
||||
_arguments['----'] = _object
|
||||
|
||||
|
||||
_reply, _arguments, _attributes = self.send(_code, _subcode,
|
||||
_arguments, _attributes)
|
||||
if _arguments.get('errn', 0):
|
||||
raise aetools.Error, aetools.decodeerror(_arguments)
|
||||
# XXXX Optionally decode result
|
||||
if _arguments.has_key('----'):
|
||||
return _arguments['----']
|
||||
|
||||
_argmap_turn_remote_root = {
|
||||
'with_root_url' : 'rURL',
|
||||
}
|
||||
|
||||
def turn_remote_root(self, _object, _attributes={}, **_arguments):
|
||||
"""turn remote root: Turn usage of remote root for content on the web on or off. If turning \xd2on\xd3, supply a string as second parameter.
|
||||
Required argument: \xd2on\xd3 or \xd2off\xd3, to turn remote root on or off
|
||||
Keyword argument with_root_url: The remote root to use, in the form of \xd2http://www.apple.com/help/\xd3.
|
||||
Keyword argument _attributes: AppleEvent attribute dictionary
|
||||
"""
|
||||
_code = 'HIT '
|
||||
_subcode = 'tRem'
|
||||
|
||||
aetools.keysubst(_arguments, self._argmap_turn_remote_root)
|
||||
_arguments['----'] = _object
|
||||
|
||||
|
||||
_reply, _arguments, _attributes = self.send(_code, _subcode,
|
||||
_arguments, _attributes)
|
||||
if _arguments.get('errn', 0):
|
||||
raise aetools.Error, aetools.decodeerror(_arguments)
|
||||
# XXXX Optionally decode result
|
||||
if _arguments.has_key('----'):
|
||||
return _arguments['----']
|
||||
|
||||
def use_tokenizer(self, _object, _attributes={}, **_arguments):
|
||||
"""use tokenizer: Tells the indexing tool which tokenizer to use.
|
||||
Required argument: Specify \xd2English\xd3, \xd2European\xd3, \xd2Japanese\xd3, \xd2Korean\xd3, or \xd2Simple\xd3.
|
||||
Keyword argument _attributes: AppleEvent attribute dictionary
|
||||
"""
|
||||
_code = 'HIT '
|
||||
_subcode = 'uTok'
|
||||
|
||||
if _arguments: raise TypeError, 'No optional args expected'
|
||||
_arguments['----'] = _object
|
||||
|
||||
|
||||
_reply, _arguments, _attributes = self.send(_code, _subcode,
|
||||
_arguments, _attributes)
|
||||
if _arguments.get('errn', 0):
|
||||
raise aetools.Error, aetools.decodeerror(_arguments)
|
||||
# XXXX Optionally decode result
|
||||
if _arguments.has_key('----'):
|
||||
return _arguments['----']
|
||||
|
||||
|
||||
class application(aetools.ComponentItem):
|
||||
"""application - Application class """
|
||||
want = 'capp'
|
||||
class _Prop_idleStatus(aetools.NProperty):
|
||||
"""idleStatus - """
|
||||
which = 'sIdl'
|
||||
want = 'bool'
|
||||
application._superclassnames = []
|
||||
application._privpropdict = {
|
||||
'idleStatus' : _Prop_idleStatus,
|
||||
}
|
||||
application._privelemdict = {
|
||||
}
|
||||
|
||||
#
|
||||
# Indices of types declared in this module
|
||||
#
|
||||
_classdeclarations = {
|
||||
'capp' : application,
|
||||
}
|
||||
|
||||
_propdeclarations = {
|
||||
'sIdl' : _Prop_idleStatus,
|
||||
}
|
||||
|
||||
_compdeclarations = {
|
||||
}
|
||||
|
||||
_enumdeclarations = {
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
"""Suite Miscellaneous Standards: Useful events that aren\xd5t in any other suite
|
||||
Level 0, version 0
|
||||
|
||||
Generated from /Developer/Applications/Apple Help Indexing Tool.app
|
||||
AETE/AEUT resource version 1/1, language 0, script 0
|
||||
"""
|
||||
|
||||
import aetools
|
||||
import MacOS
|
||||
|
||||
_code = 'misc'
|
||||
|
||||
class Miscellaneous_Standards_Events:
|
||||
|
||||
def revert(self, _object, _attributes={}, **_arguments):
|
||||
"""revert: Revert an object to the most recently saved version
|
||||
Required argument: object to revert
|
||||
Keyword argument _attributes: AppleEvent attribute dictionary
|
||||
"""
|
||||
_code = 'misc'
|
||||
_subcode = 'rvrt'
|
||||
|
||||
if _arguments: raise TypeError, 'No optional args expected'
|
||||
_arguments['----'] = _object
|
||||
|
||||
|
||||
_reply, _arguments, _attributes = self.send(_code, _subcode,
|
||||
_arguments, _attributes)
|
||||
if _arguments.get('errn', 0):
|
||||
raise aetools.Error, aetools.decodeerror(_arguments)
|
||||
# XXXX Optionally decode result
|
||||
if _arguments.has_key('----'):
|
||||
return _arguments['----']
|
||||
|
||||
|
||||
#
|
||||
# Indices of types declared in this module
|
||||
#
|
||||
_classdeclarations = {
|
||||
}
|
||||
|
||||
_propdeclarations = {
|
||||
}
|
||||
|
||||
_compdeclarations = {
|
||||
}
|
||||
|
||||
_enumdeclarations = {
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
"""Suite Required Suite: Terms that every application should support
|
||||
Level 1, version 1
|
||||
|
||||
Generated from /Developer/Applications/Apple Help Indexing Tool.app
|
||||
AETE/AEUT resource version 1/1, language 0, script 0
|
||||
"""
|
||||
|
||||
import aetools
|
||||
import MacOS
|
||||
|
||||
_code = 'reqd'
|
||||
|
||||
from StdSuites.Required_Suite import *
|
||||
class Required_Suite_Events(Required_Suite_Events):
|
||||
|
||||
pass
|
||||
|
||||
|
||||
#
|
||||
# Indices of types declared in this module
|
||||
#
|
||||
_classdeclarations = {
|
||||
}
|
||||
|
||||
_propdeclarations = {
|
||||
}
|
||||
|
||||
_compdeclarations = {
|
||||
}
|
||||
|
||||
_enumdeclarations = {
|
||||
}
|
|
@ -0,0 +1,343 @@
|
|||
"""Suite Standard Suite: Common terms for most applications
|
||||
Level 1, version 1
|
||||
|
||||
Generated from /Developer/Applications/Apple Help Indexing Tool.app
|
||||
AETE/AEUT resource version 1/1, language 0, script 0
|
||||
"""
|
||||
|
||||
import aetools
|
||||
import MacOS
|
||||
|
||||
_code = 'CoRe'
|
||||
|
||||
from StdSuites.Standard_Suite import *
|
||||
class Standard_Suite_Events(Standard_Suite_Events):
|
||||
|
||||
_argmap_close = {
|
||||
'saving' : 'savo',
|
||||
'in_' : 'kfil',
|
||||
}
|
||||
|
||||
def close(self, _object, _attributes={}, **_arguments):
|
||||
"""close: Close an object
|
||||
Required argument: the objects to close
|
||||
Keyword argument saving: specifies whether or not changes should be saved before closing
|
||||
Keyword argument in_: the file in which to save the object
|
||||
Keyword argument _attributes: AppleEvent attribute dictionary
|
||||
"""
|
||||
_code = 'core'
|
||||
_subcode = 'clos'
|
||||
|
||||
aetools.keysubst(_arguments, self._argmap_close)
|
||||
_arguments['----'] = _object
|
||||
|
||||
aetools.enumsubst(_arguments, 'savo', _Enum_savo)
|
||||
|
||||
_reply, _arguments, _attributes = self.send(_code, _subcode,
|
||||
_arguments, _attributes)
|
||||
if _arguments.get('errn', 0):
|
||||
raise aetools.Error, aetools.decodeerror(_arguments)
|
||||
# XXXX Optionally decode result
|
||||
if _arguments.has_key('----'):
|
||||
return _arguments['----']
|
||||
|
||||
def data_size(self, _object, _attributes={}, **_arguments):
|
||||
"""data size: Return the size in bytes of an object
|
||||
Required argument: the object whose data size is to be returned
|
||||
Keyword argument _attributes: AppleEvent attribute dictionary
|
||||
Returns: the size of the object in bytes
|
||||
"""
|
||||
_code = 'core'
|
||||
_subcode = 'dsiz'
|
||||
|
||||
if _arguments: raise TypeError, 'No optional args expected'
|
||||
_arguments['----'] = _object
|
||||
|
||||
|
||||
_reply, _arguments, _attributes = self.send(_code, _subcode,
|
||||
_arguments, _attributes)
|
||||
if _arguments.get('errn', 0):
|
||||
raise aetools.Error, aetools.decodeerror(_arguments)
|
||||
# XXXX Optionally decode result
|
||||
if _arguments.has_key('----'):
|
||||
return _arguments['----']
|
||||
|
||||
def get(self, _object, _attributes={}, **_arguments):
|
||||
"""get: Get the data for an object
|
||||
Required argument: the object whose data is to be returned
|
||||
Keyword argument _attributes: AppleEvent attribute dictionary
|
||||
Returns: The data from the object
|
||||
"""
|
||||
_code = 'core'
|
||||
_subcode = 'getd'
|
||||
|
||||
if _arguments: raise TypeError, 'No optional args expected'
|
||||
_arguments['----'] = _object
|
||||
|
||||
|
||||
_reply, _arguments, _attributes = self.send(_code, _subcode,
|
||||
_arguments, _attributes)
|
||||
if _arguments.get('errn', 0):
|
||||
raise aetools.Error, aetools.decodeerror(_arguments)
|
||||
# XXXX Optionally decode result
|
||||
if _arguments.has_key('----'):
|
||||
return _arguments['----']
|
||||
|
||||
_argmap_make = {
|
||||
'new' : 'kocl',
|
||||
'at' : 'insh',
|
||||
'with_data' : 'data',
|
||||
'with_properties' : 'prdt',
|
||||
}
|
||||
|
||||
def make(self, _no_object=None, _attributes={}, **_arguments):
|
||||
"""make: Make a new element
|
||||
Keyword argument new: the class of the new element
|
||||
Keyword argument at: the location at which to insert the element
|
||||
Keyword argument with_data: the initial data for the element
|
||||
Keyword argument with_properties: the initial values for the properties of the element
|
||||
Keyword argument _attributes: AppleEvent attribute dictionary
|
||||
Returns: Object specifier for the new element
|
||||
"""
|
||||
_code = 'core'
|
||||
_subcode = 'crel'
|
||||
|
||||
aetools.keysubst(_arguments, self._argmap_make)
|
||||
if _no_object != None: raise TypeError, 'No direct arg expected'
|
||||
|
||||
|
||||
_reply, _arguments, _attributes = self.send(_code, _subcode,
|
||||
_arguments, _attributes)
|
||||
if _arguments.get('errn', 0):
|
||||
raise aetools.Error, aetools.decodeerror(_arguments)
|
||||
# XXXX Optionally decode result
|
||||
if _arguments.has_key('----'):
|
||||
return _arguments['----']
|
||||
|
||||
def open(self, _object, _attributes={}, **_arguments):
|
||||
"""open: Open the specified object(s)
|
||||
Required argument: Objects to open. Can be a list of files or an object specifier.
|
||||
Keyword argument _attributes: AppleEvent attribute dictionary
|
||||
"""
|
||||
_code = 'aevt'
|
||||
_subcode = 'odoc'
|
||||
|
||||
if _arguments: raise TypeError, 'No optional args expected'
|
||||
_arguments['----'] = _object
|
||||
|
||||
|
||||
_reply, _arguments, _attributes = self.send(_code, _subcode,
|
||||
_arguments, _attributes)
|
||||
if _arguments.get('errn', 0):
|
||||
raise aetools.Error, aetools.decodeerror(_arguments)
|
||||
# XXXX Optionally decode result
|
||||
if _arguments.has_key('----'):
|
||||
return _arguments['----']
|
||||
|
||||
def print_(self, _object, _attributes={}, **_arguments):
|
||||
"""print: Print the specified object(s)
|
||||
Required argument: Objects to print. Can be a list of files or an object specifier.
|
||||
Keyword argument _attributes: AppleEvent attribute dictionary
|
||||
"""
|
||||
_code = 'aevt'
|
||||
_subcode = 'pdoc'
|
||||
|
||||
if _arguments: raise TypeError, 'No optional args expected'
|
||||
_arguments['----'] = _object
|
||||
|
||||
|
||||
_reply, _arguments, _attributes = self.send(_code, _subcode,
|
||||
_arguments, _attributes)
|
||||
if _arguments.get('errn', 0):
|
||||
raise aetools.Error, aetools.decodeerror(_arguments)
|
||||
# XXXX Optionally decode result
|
||||
if _arguments.has_key('----'):
|
||||
return _arguments['----']
|
||||
|
||||
_argmap_save = {
|
||||
'in_' : 'kfil',
|
||||
'as' : 'fltp',
|
||||
}
|
||||
|
||||
def save(self, _object, _attributes={}, **_arguments):
|
||||
"""save: save a set of objects
|
||||
Required argument: Objects to save.
|
||||
Keyword argument in_: the file in which to save the object(s)
|
||||
Keyword argument as: the file type of the document in which to save the data
|
||||
Keyword argument _attributes: AppleEvent attribute dictionary
|
||||
"""
|
||||
_code = 'core'
|
||||
_subcode = 'save'
|
||||
|
||||
aetools.keysubst(_arguments, self._argmap_save)
|
||||
_arguments['----'] = _object
|
||||
|
||||
|
||||
_reply, _arguments, _attributes = self.send(_code, _subcode,
|
||||
_arguments, _attributes)
|
||||
if _arguments.get('errn', 0):
|
||||
raise aetools.Error, aetools.decodeerror(_arguments)
|
||||
# XXXX Optionally decode result
|
||||
if _arguments.has_key('----'):
|
||||
return _arguments['----']
|
||||
|
||||
_argmap_set = {
|
||||
'to' : 'data',
|
||||
}
|
||||
|
||||
def set(self, _object, _attributes={}, **_arguments):
|
||||
"""set: Set an object\xd5s data
|
||||
Required argument: the object to change
|
||||
Keyword argument to: the new value
|
||||
Keyword argument _attributes: AppleEvent attribute dictionary
|
||||
"""
|
||||
_code = 'core'
|
||||
_subcode = 'setd'
|
||||
|
||||
aetools.keysubst(_arguments, self._argmap_set)
|
||||
_arguments['----'] = _object
|
||||
|
||||
|
||||
_reply, _arguments, _attributes = self.send(_code, _subcode,
|
||||
_arguments, _attributes)
|
||||
if _arguments.get('errn', 0):
|
||||
raise aetools.Error, aetools.decodeerror(_arguments)
|
||||
# XXXX Optionally decode result
|
||||
if _arguments.has_key('----'):
|
||||
return _arguments['----']
|
||||
|
||||
|
||||
class application(aetools.ComponentItem):
|
||||
"""application - An application program """
|
||||
want = 'capp'
|
||||
# element 'cwin' as ['indx', 'name', 'rele']
|
||||
# element 'docu' as ['name']
|
||||
|
||||
class window(aetools.ComponentItem):
|
||||
"""window - A Window """
|
||||
want = 'cwin'
|
||||
class _Prop_bounds(aetools.NProperty):
|
||||
"""bounds - the boundary rectangle for the window """
|
||||
which = 'pbnd'
|
||||
want = 'qdrt'
|
||||
class _Prop_closeable(aetools.NProperty):
|
||||
"""closeable - Does the window have a close box? """
|
||||
which = 'hclb'
|
||||
want = 'bool'
|
||||
class _Prop_floating(aetools.NProperty):
|
||||
"""floating - Does the window float? """
|
||||
which = 'isfl'
|
||||
want = 'bool'
|
||||
class _Prop_index(aetools.NProperty):
|
||||
"""index - the number of the window """
|
||||
which = 'pidx'
|
||||
want = 'long'
|
||||
class _Prop_modal(aetools.NProperty):
|
||||
"""modal - Is the window modal? """
|
||||
which = 'pmod'
|
||||
want = 'bool'
|
||||
class _Prop_name(aetools.NProperty):
|
||||
"""name - the title of the window """
|
||||
which = 'pnam'
|
||||
want = 'itxt'
|
||||
class _Prop_position(aetools.NProperty):
|
||||
"""position - upper left coordinates of window """
|
||||
which = 'ppos'
|
||||
want = 'QDpt'
|
||||
class _Prop_resizable(aetools.NProperty):
|
||||
"""resizable - Is the window resizable? """
|
||||
which = 'prsz'
|
||||
want = 'bool'
|
||||
class _Prop_titled(aetools.NProperty):
|
||||
"""titled - Does the window have a title bar? """
|
||||
which = 'ptit'
|
||||
want = 'bool'
|
||||
class _Prop_visible(aetools.NProperty):
|
||||
"""visible - is the window visible? """
|
||||
which = 'pvis'
|
||||
want = 'bool'
|
||||
class _Prop_zoomable(aetools.NProperty):
|
||||
"""zoomable - Is the window zoomable? """
|
||||
which = 'iszm'
|
||||
want = 'bool'
|
||||
class _Prop_zoomed(aetools.NProperty):
|
||||
"""zoomed - Is the window zoomed? """
|
||||
which = 'pzum'
|
||||
want = 'bool'
|
||||
|
||||
class document(aetools.ComponentItem):
|
||||
"""document - A Document """
|
||||
want = 'docu'
|
||||
class _Prop_modified(aetools.NProperty):
|
||||
"""modified - Has the document been modified since the last save? """
|
||||
which = 'imod'
|
||||
want = 'bool'
|
||||
application._superclassnames = []
|
||||
application._privpropdict = {
|
||||
}
|
||||
application._privelemdict = {
|
||||
'document' : document,
|
||||
'window' : window,
|
||||
}
|
||||
window._superclassnames = []
|
||||
window._privpropdict = {
|
||||
'bounds' : _Prop_bounds,
|
||||
'closeable' : _Prop_closeable,
|
||||
'floating' : _Prop_floating,
|
||||
'index' : _Prop_index,
|
||||
'modal' : _Prop_modal,
|
||||
'name' : _Prop_name,
|
||||
'position' : _Prop_position,
|
||||
'resizable' : _Prop_resizable,
|
||||
'titled' : _Prop_titled,
|
||||
'visible' : _Prop_visible,
|
||||
'zoomable' : _Prop_zoomable,
|
||||
'zoomed' : _Prop_zoomed,
|
||||
}
|
||||
window._privelemdict = {
|
||||
}
|
||||
document._superclassnames = []
|
||||
document._privpropdict = {
|
||||
'modified' : _Prop_modified,
|
||||
'name' : _Prop_name,
|
||||
}
|
||||
document._privelemdict = {
|
||||
}
|
||||
_Enum_savo = {
|
||||
'yes' : 'yes ', # Save objects now
|
||||
'no' : 'no ', # Do not save objects
|
||||
'ask' : 'ask ', # Ask the user whether to save
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Indices of types declared in this module
|
||||
#
|
||||
_classdeclarations = {
|
||||
'capp' : application,
|
||||
'cwin' : window,
|
||||
'docu' : document,
|
||||
}
|
||||
|
||||
_propdeclarations = {
|
||||
'hclb' : _Prop_closeable,
|
||||
'imod' : _Prop_modified,
|
||||
'isfl' : _Prop_floating,
|
||||
'iszm' : _Prop_zoomable,
|
||||
'pbnd' : _Prop_bounds,
|
||||
'pidx' : _Prop_index,
|
||||
'pmod' : _Prop_modal,
|
||||
'pnam' : _Prop_name,
|
||||
'ppos' : _Prop_position,
|
||||
'prsz' : _Prop_resizable,
|
||||
'ptit' : _Prop_titled,
|
||||
'pvis' : _Prop_visible,
|
||||
'pzum' : _Prop_zoomed,
|
||||
}
|
||||
|
||||
_compdeclarations = {
|
||||
}
|
||||
|
||||
_enumdeclarations = {
|
||||
'savo' : _Enum_savo,
|
||||
}
|
|
@ -0,0 +1,78 @@
|
|||
"""
|
||||
Package generated from /Developer/Applications/Apple Help Indexing Tool.app
|
||||
"""
|
||||
import aetools
|
||||
Error = aetools.Error
|
||||
import Standard_Suite
|
||||
import Help_Indexing_Tool_Suite
|
||||
import odds_and_ends
|
||||
import Miscellaneous_Standards
|
||||
import Required_Suite
|
||||
|
||||
|
||||
_code_to_module = {
|
||||
'CoRe' : Standard_Suite,
|
||||
'HIT ' : Help_Indexing_Tool_Suite,
|
||||
'Odds' : odds_and_ends,
|
||||
'misc' : Miscellaneous_Standards,
|
||||
'reqd' : Required_Suite,
|
||||
}
|
||||
|
||||
|
||||
|
||||
_code_to_fullname = {
|
||||
'CoRe' : ('HelpIndexingTool.Standard_Suite', 'Standard_Suite'),
|
||||
'HIT ' : ('HelpIndexingTool.Help_Indexing_Tool_Suite', 'Help_Indexing_Tool_Suite'),
|
||||
'Odds' : ('HelpIndexingTool.odds_and_ends', 'odds_and_ends'),
|
||||
'misc' : ('HelpIndexingTool.Miscellaneous_Standards', 'Miscellaneous_Standards'),
|
||||
'reqd' : ('HelpIndexingTool.Required_Suite', 'Required_Suite'),
|
||||
}
|
||||
|
||||
from Standard_Suite import *
|
||||
from Help_Indexing_Tool_Suite import *
|
||||
from odds_and_ends import *
|
||||
from Miscellaneous_Standards import *
|
||||
from Required_Suite import *
|
||||
|
||||
def getbaseclasses(v):
|
||||
if not getattr(v, '_propdict', None):
|
||||
v._propdict = {}
|
||||
v._elemdict = {}
|
||||
for superclassname in getattr(v, '_superclassnames', []):
|
||||
superclass = eval(superclassname)
|
||||
getbaseclasses(superclass)
|
||||
v._propdict.update(getattr(superclass, '_propdict', {}))
|
||||
v._elemdict.update(getattr(superclass, '_elemdict', {}))
|
||||
v._propdict.update(getattr(v, '_privpropdict', {}))
|
||||
v._elemdict.update(getattr(v, '_privelemdict', {}))
|
||||
|
||||
import StdSuites
|
||||
|
||||
#
|
||||
# Set property and element dictionaries now that all classes have been defined
|
||||
#
|
||||
getbaseclasses(window)
|
||||
getbaseclasses(application)
|
||||
getbaseclasses(document)
|
||||
getbaseclasses(application)
|
||||
|
||||
#
|
||||
# Indices of types declared in this module
|
||||
#
|
||||
_classdeclarations = {
|
||||
'cwin' : window,
|
||||
'capp' : application,
|
||||
'docu' : document,
|
||||
'capp' : application,
|
||||
}
|
||||
|
||||
|
||||
class HelpIndexingTool(Standard_Suite_Events,
|
||||
Help_Indexing_Tool_Suite_Events,
|
||||
odds_and_ends_Events,
|
||||
Miscellaneous_Standards_Events,
|
||||
Required_Suite_Events,
|
||||
aetools.TalkTo):
|
||||
_signature = 'hiti'
|
||||
|
||||
_moduleName = 'HelpIndexingTool'
|
|
@ -0,0 +1,49 @@
|
|||
"""Suite odds and ends: Things that should be in some standard suite, but aren\xd5t
|
||||
Level 1, version 1
|
||||
|
||||
Generated from /Developer/Applications/Apple Help Indexing Tool.app
|
||||
AETE/AEUT resource version 1/1, language 0, script 0
|
||||
"""
|
||||
|
||||
import aetools
|
||||
import MacOS
|
||||
|
||||
_code = 'Odds'
|
||||
|
||||
class odds_and_ends_Events:
|
||||
|
||||
def select(self, _object=None, _attributes={}, **_arguments):
|
||||
"""select: Select the specified object
|
||||
Required argument: the object to select
|
||||
Keyword argument _attributes: AppleEvent attribute dictionary
|
||||
"""
|
||||
_code = 'misc'
|
||||
_subcode = 'slct'
|
||||
|
||||
if _arguments: raise TypeError, 'No optional args expected'
|
||||
_arguments['----'] = _object
|
||||
|
||||
|
||||
_reply, _arguments, _attributes = self.send(_code, _subcode,
|
||||
_arguments, _attributes)
|
||||
if _arguments.get('errn', 0):
|
||||
raise aetools.Error, aetools.decodeerror(_arguments)
|
||||
# XXXX Optionally decode result
|
||||
if _arguments.has_key('----'):
|
||||
return _arguments['----']
|
||||
|
||||
|
||||
#
|
||||
# Indices of types declared in this module
|
||||
#
|
||||
_classdeclarations = {
|
||||
}
|
||||
|
||||
_propdeclarations = {
|
||||
}
|
||||
|
||||
_compdeclarations = {
|
||||
}
|
||||
|
||||
_enumdeclarations = {
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
In this directory you can build the Python documentation in a form that
|
||||
is suitable for access with Apple Help Viewer. This will enable the
|
||||
"Python Documentation" menu entries in the MacPython IDE Help menu.
|
||||
|
||||
Unfortunately the procedure to build the docs is not very streamlined.
|
||||
|
||||
First, edit setup.py. At the top, edit MAJOR_VERSION and MINOR_VERSION,
|
||||
and check that DESTDIR makes sense. The documentation will be installed
|
||||
inside PythonIDE.app.
|
||||
|
||||
In DocBuild.initialize_options, set self.download to True if you want to
|
||||
download the docs. Set it to False if you want to build the docs from
|
||||
the source tree, but this requires LaTex and lots of other stuff.
|
||||
Doable, but not easy.
|
||||
|
||||
Second, if you want to download the docs you may need to do a couple
|
||||
more edits. The way the docs are packaged will often change between
|
||||
major releases. Fiddle DocBuild.downloadDocs to make it do the right
|
||||
thing (download the docs from python.org, unpack them, rename the
|
||||
directory to "build/html").
|
||||
|
||||
After these edits you should be ready to roll. "pythonw setup.py build"
|
||||
should download and unpack (or build) the docs. Next, it will do some
|
||||
magic to make the docs indexable. Finally, it will run the Apple Help
|
||||
Indexing Tool. (This last step is the reason you must use "pythonw" as
|
||||
opposed to "python"). Usually it will time out while waiting for AHIT to
|
||||
do its work. Wait until AHIT is done.
|
||||
|
||||
Now you're ready to install with "python setup.py install".
|
||||
|
||||
After this is done test your work. Fire up PythonIDE, and check that
|
||||
Help->Python Documentation brings up the documentation in the Help Viewer.
|
||||
Also open an IDE edit window, type something like "import sys", select
|
||||
"import", and use Help->Lookup in Python Documentation to check that the
|
||||
index has been generated correctly.
|
|
@ -0,0 +1,214 @@
|
|||
# Build and install an Apple Help Viewer compatible version of the Python
|
||||
# documentation into the framework.
|
||||
# Code by Bill Fancher, with some modifications by Jack Jansen.
|
||||
#
|
||||
# You must run this as a two-step process
|
||||
# 1. python setupDocs.py build
|
||||
# 2. Wait for Apple Help Indexing Tool to finish
|
||||
# 3. python setupDocs.py install
|
||||
#
|
||||
# To do:
|
||||
# - test whether the docs are available locally before downloading
|
||||
# - fix buildDocsFromSource
|
||||
# - Get documentation version from sys.version, fallback to 2.2.1
|
||||
# - See if we can somehow detect that Apple Help Indexing Tool is finished
|
||||
# - data_files to setup() doesn't seem the right way to pass the arguments
|
||||
#
|
||||
import sys, os, re
|
||||
from distutils.cmd import Command
|
||||
from distutils.command.build import build
|
||||
from distutils.core import setup
|
||||
from distutils.file_util import copy_file
|
||||
from distutils.dir_util import copy_tree
|
||||
from distutils.log import log
|
||||
from distutils.spawn import spawn
|
||||
from distutils import sysconfig, dep_util
|
||||
from distutils.util import change_root
|
||||
import HelpIndexingTool
|
||||
import Carbon.File
|
||||
import time
|
||||
|
||||
MAJOR_VERSION='2.4'
|
||||
MINOR_VERSION='2.4.1'
|
||||
DESTDIR='/Applications/MacPython-%s/PythonIDE.app/Contents/Resources/English.lproj/PythonDocumentation' % MAJOR_VERSION
|
||||
|
||||
class DocBuild(build):
|
||||
def initialize_options(self):
|
||||
build.initialize_options(self)
|
||||
self.build_html = None
|
||||
self.build_dest = None
|
||||
self.download = 1
|
||||
self.doc_version = MINOR_VERSION # Only needed if download is true
|
||||
|
||||
def finalize_options(self):
|
||||
build.finalize_options(self)
|
||||
if self.build_html is None:
|
||||
self.build_html = os.path.join(self.build_base, 'html')
|
||||
if self.build_dest is None:
|
||||
self.build_dest = os.path.join(self.build_base, 'PythonDocumentation')
|
||||
|
||||
def spawn(self, *args):
|
||||
spawn(args, 1, self.verbose, self.dry_run)
|
||||
|
||||
def downloadDocs(self):
|
||||
workdir = os.getcwd()
|
||||
# XXX Note: the next strings may change from version to version
|
||||
url = 'http://www.python.org/ftp/python/doc/%s/html-%s.tar.bz2' % \
|
||||
(self.doc_version,self.doc_version)
|
||||
tarfile = 'html-%s.tar.bz2' % self.doc_version
|
||||
dirname = 'Python-Docs-%s' % self.doc_version
|
||||
|
||||
if os.path.exists(self.build_html):
|
||||
raise RuntimeError, '%s: already exists, please remove and try again' % self.build_html
|
||||
os.chdir(self.build_base)
|
||||
self.spawn('curl','-O', url)
|
||||
self.spawn('tar', '-xjf', tarfile)
|
||||
os.rename(dirname, 'html')
|
||||
os.chdir(workdir)
|
||||
## print "** Please unpack %s" % os.path.join(self.build_base, tarfile)
|
||||
## print "** Unpack the files into %s" % self.build_html
|
||||
## raise RuntimeError, "You need to unpack the docs manually"
|
||||
|
||||
def buildDocsFromSource(self):
|
||||
srcdir = '../../..'
|
||||
docdir = os.path.join(srcdir, 'Doc')
|
||||
htmldir = os.path.join(docdir, 'html')
|
||||
spawn(('make','--directory', docdir, 'html'), 1, self.verbose, self.dry_run)
|
||||
self.mkpath(self.build_html)
|
||||
copy_tree(htmldir, self.build_html)
|
||||
|
||||
def ensureHtml(self):
|
||||
if not os.path.exists(self.build_html):
|
||||
if self.download:
|
||||
self.downloadDocs()
|
||||
else:
|
||||
self.buildDocsFromSource()
|
||||
|
||||
def hackIndex(self):
|
||||
ind_html = 'index.html'
|
||||
#print 'self.build_dest =', self.build_dest
|
||||
hackedIndex = file(os.path.join(self.build_dest, ind_html),'w')
|
||||
origIndex = file(os.path.join(self.build_html,ind_html))
|
||||
r = re.compile('<style type="text/css">.*</style>', re.DOTALL)
|
||||
hackedIndex.write(r.sub('<META NAME="AppleTitle" CONTENT="Python Documentation">',origIndex.read()))
|
||||
|
||||
def hackFile(self,d,f):
|
||||
origPath = os.path.join(d,f)
|
||||
assert(origPath[:len(self.build_html)] == self.build_html)
|
||||
outPath = os.path.join(self.build_dest, d[len(self.build_html)+1:], f)
|
||||
(name, ext) = os.path.splitext(f)
|
||||
if os.path.isdir(origPath):
|
||||
self.mkpath(outPath)
|
||||
elif ext == '.html':
|
||||
if self.verbose: print 'hacking %s to %s' % (origPath,outPath)
|
||||
hackedFile = file(outPath, 'w')
|
||||
origFile = file(origPath,'r')
|
||||
hackedFile.write(self.r.sub('<dl><dt><dd>', origFile.read()))
|
||||
else:
|
||||
copy_file(origPath, outPath)
|
||||
|
||||
def hackHtml(self):
|
||||
self.r = re.compile('<dl><dd>')
|
||||
os.path.walk(self.build_html, self.visit, None)
|
||||
|
||||
def visit(self, dummy, dirname, filenames):
|
||||
for f in filenames:
|
||||
self.hackFile(dirname, f)
|
||||
|
||||
def makeHelpIndex(self):
|
||||
app = '/Developer/Applications/Apple Help Indexing Tool.app'
|
||||
self.spawn('open', '-a', app , self.build_dest)
|
||||
print "Please wait until Apple Help Indexing Tool finishes before installing"
|
||||
|
||||
def makeHelpIndex(self):
|
||||
app = HelpIndexingTool.HelpIndexingTool(start=1)
|
||||
app.open(Carbon.File.FSSpec(self.build_dest))
|
||||
sys.stderr.write("Waiting for Help Indexing Tool to start...")
|
||||
while 1:
|
||||
# This is bad design in the suite generation code!
|
||||
idle = app._get(HelpIndexingTool.Help_Indexing_Tool_Suite._Prop_idleStatus())
|
||||
time.sleep(10)
|
||||
if not idle: break
|
||||
sys.stderr.write(".")
|
||||
sys.stderr.write("\n")
|
||||
sys.stderr.write("Waiting for Help Indexing Tool to finish...")
|
||||
while 1:
|
||||
# This is bad design in the suite generation code!
|
||||
idle = app._get(HelpIndexingTool.Help_Indexing_Tool_Suite._Prop_idleStatus())
|
||||
time.sleep(10)
|
||||
if idle: break
|
||||
sys.stderr.write(".")
|
||||
sys.stderr.write("\n")
|
||||
|
||||
|
||||
def run(self):
|
||||
self.ensure_finalized()
|
||||
self.mkpath(self.build_base)
|
||||
self.ensureHtml()
|
||||
if not os.path.isdir(self.build_html):
|
||||
raise RuntimeError, \
|
||||
"Can't find source folder for documentation."
|
||||
self.mkpath(self.build_dest)
|
||||
if dep_util.newer(os.path.join(self.build_html,'index.html'), os.path.join(self.build_dest,'index.html')):
|
||||
self.mkpath(self.build_dest)
|
||||
self.hackHtml()
|
||||
self.hackIndex()
|
||||
self.makeHelpIndex()
|
||||
|
||||
class AHVDocInstall(Command):
|
||||
description = "install Apple Help Viewer html files"
|
||||
user_options = [('install-doc=', 'd',
|
||||
'directory to install HTML tree'),
|
||||
('root=', None,
|
||||
"install everything relative to this alternate root directory"),
|
||||
]
|
||||
|
||||
def initialize_options(self):
|
||||
self.build_dest = None
|
||||
self.install_doc = None
|
||||
self.prefix = None
|
||||
self.root = None
|
||||
|
||||
def finalize_options(self):
|
||||
self.set_undefined_options('install',
|
||||
('prefix', 'prefix'),
|
||||
('root', 'root'))
|
||||
# import pdb ; pdb.set_trace()
|
||||
build_cmd = self.get_finalized_command('build')
|
||||
if self.build_dest == None:
|
||||
build_cmd = self.get_finalized_command('build')
|
||||
self.build_dest = build_cmd.build_dest
|
||||
if self.install_doc == None:
|
||||
self.install_doc = os.path.join(self.prefix, DESTDIR)
|
||||
print 'INSTALL', self.build_dest, '->', self.install_doc
|
||||
|
||||
def run(self):
|
||||
self.finalize_options()
|
||||
self.ensure_finalized()
|
||||
print "Running Installer"
|
||||
instloc = self.install_doc
|
||||
if self.root:
|
||||
instloc = change_root(self.root, instloc)
|
||||
self.mkpath(instloc)
|
||||
copy_tree(self.build_dest, instloc)
|
||||
print "Installation complete"
|
||||
|
||||
def mungeVersion(infile, outfile):
|
||||
i = file(infile,'r')
|
||||
o = file(outfile,'w')
|
||||
o.write(re.sub('\$\(VERSION\)',sysconfig.get_config_var('VERSION'),i.read()))
|
||||
i.close()
|
||||
o.close()
|
||||
|
||||
def main():
|
||||
# turn off warnings when deprecated modules are imported
|
||||
## import warnings
|
||||
## warnings.filterwarnings("ignore",category=DeprecationWarning)
|
||||
setup(name = 'Documentation',
|
||||
version = '%d.%d' % sys.version_info[:2],
|
||||
cmdclass = {'install_data':AHVDocInstall, 'build':DocBuild},
|
||||
data_files = ['dummy'],
|
||||
)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
|
@ -0,0 +1,119 @@
|
|||
#!/usr/bin/python
|
||||
"""fixapplepython23 - Fix Apple-installed Python 2.3 (on Mac OS X 10.3)
|
||||
|
||||
Python 2.3 (and 2.3.X for X<5) have the problem that building an extension
|
||||
for a framework installation may accidentally pick up the framework
|
||||
of a newer Python, in stead of the one that was used to build the extension.
|
||||
|
||||
This script modifies the Makefile (in .../lib/python2.3/config) to use
|
||||
the newer method of linking extensions with "-undefined dynamic_lookup"
|
||||
which fixes this problem.
|
||||
|
||||
The script will first check all prerequisites, and return a zero exit
|
||||
status also when nothing needs to be fixed.
|
||||
"""
|
||||
import sys
|
||||
import os
|
||||
import gestalt
|
||||
|
||||
MAKEFILE='/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/config/Makefile'
|
||||
CHANGES=((
|
||||
'LDSHARED=\t$(CC) $(LDFLAGS) -bundle -framework $(PYTHONFRAMEWORK)\n',
|
||||
'LDSHARED=\t$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup\n'
|
||||
),(
|
||||
'BLDSHARED=\t$(CC) $(LDFLAGS) -bundle -framework $(PYTHONFRAMEWORK)\n',
|
||||
'BLDSHARED=\t$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup\n'
|
||||
),(
|
||||
'CC=\t\tgcc\n',
|
||||
'CC=\t\t/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/config/PantherPythonFix/run-gcc\n'
|
||||
),(
|
||||
'CXX=\t\tc++\n',
|
||||
'CXX=\t\t/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/config/PantherPythonFix/run-g++\n'
|
||||
))
|
||||
|
||||
GCC_SCRIPT='/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/config/PantherPythonFix/run-gcc'
|
||||
GXX_SCRIPT='/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/config/PantherPythonFix/run-g++'
|
||||
SCRIPT="""#!/bin/sh
|
||||
export MACOSX_DEPLOYMENT_TARGET=10.3
|
||||
exec %s "${@}"
|
||||
"""
|
||||
|
||||
def findline(lines, start):
|
||||
"""return line starting with given string or -1"""
|
||||
for i in range(len(lines)):
|
||||
if lines[i][:len(start)] == start:
|
||||
return i
|
||||
return -1
|
||||
|
||||
def fix(makefile, do_apply):
|
||||
"""Fix the Makefile, if required."""
|
||||
fixed = False
|
||||
lines = open(makefile).readlines()
|
||||
|
||||
for old, new in CHANGES:
|
||||
i = findline(lines, new)
|
||||
if i >= 0:
|
||||
# Already fixed
|
||||
continue
|
||||
i = findline(lines, old)
|
||||
if i < 0:
|
||||
print 'fixapplepython23: Python installation not fixed (appears broken)'
|
||||
print 'fixapplepython23: missing line:', old
|
||||
return 2
|
||||
lines[i] = new
|
||||
fixed = True
|
||||
|
||||
if fixed:
|
||||
if do_apply:
|
||||
print 'fixapplepython23: Fix to Apple-installed Python 2.3 applied'
|
||||
os.rename(makefile, makefile + '~')
|
||||
open(makefile, 'w').writelines(lines)
|
||||
return 0
|
||||
else:
|
||||
print 'fixapplepython23: Fix to Apple-installed Python 2.3 should be applied'
|
||||
return 1
|
||||
else:
|
||||
print 'fixapplepython23: No fix needed, appears to have been applied before'
|
||||
return 0
|
||||
|
||||
def makescript(filename, compiler):
|
||||
"""Create a wrapper script for a compiler"""
|
||||
dirname = os.path.split(filename)[0]
|
||||
if not os.access(dirname, os.X_OK):
|
||||
os.mkdir(dirname, 0755)
|
||||
fp = open(filename, 'w')
|
||||
fp.write(SCRIPT % compiler)
|
||||
fp.close()
|
||||
os.chmod(filename, 0755)
|
||||
print 'fixapplepython23: Created', filename
|
||||
|
||||
def main():
|
||||
# Check for -n option
|
||||
if len(sys.argv) > 1 and sys.argv[1] == '-n':
|
||||
do_apply = False
|
||||
else:
|
||||
do_apply = True
|
||||
# First check OS version
|
||||
if gestalt.gestalt('sysv') < 0x1030:
|
||||
print 'fixapplepython23: no fix needed on MacOSX < 10.3'
|
||||
sys.exit(0)
|
||||
# Test that a framework Python is indeed installed
|
||||
if not os.path.exists(MAKEFILE):
|
||||
print 'fixapplepython23: Python framework does not appear to be installed (?), nothing fixed'
|
||||
sys.exit(0)
|
||||
# Check that we can actually write the file
|
||||
if do_apply and not os.access(MAKEFILE, os.W_OK):
|
||||
print 'fixapplepython23: No write permission, please run with "sudo"'
|
||||
sys.exit(2)
|
||||
# Create the shell scripts
|
||||
if do_apply:
|
||||
if not os.access(GCC_SCRIPT, os.X_OK):
|
||||
makescript(GCC_SCRIPT, "gcc")
|
||||
if not os.access(GXX_SCRIPT, os.X_OK):
|
||||
makescript(GXX_SCRIPT, "g++")
|
||||
# Finally fix the makefile
|
||||
rv = fix(MAKEFILE, do_apply)
|
||||
sys.exit(rv)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
|
@ -0,0 +1,17 @@
|
|||
/*
|
||||
* This wrapper program executes a python executable hidden inside an
|
||||
* application bundle inside the Python framework. This is needed to run
|
||||
* GUI code: some GUI API's don't work unless the program is inside an
|
||||
* application bundle.
|
||||
*/
|
||||
#include <unistd.h>
|
||||
#include <err.h>
|
||||
|
||||
static char Python[] = PYTHONWEXECUTABLE;
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
argv[0] = Python;
|
||||
execv(Python, argv);
|
||||
err(1, "execv: %s", Python);
|
||||
/* NOTREACHED */
|
||||
}
|
Loading…
Reference in New Issue