blob: eca0b2c83bb0bf2aa4f4cc962bb50d3007bd4ab4 [file] [log] [blame]
Guido van Rossume229d861997-08-18 15:14:26 +00001\section{Standard Module \sectcode{ic}}
Fred Drake12918af1998-02-18 15:10:24 +00002\label{module-ic}
Guido van Rossume229d861997-08-18 15:14:26 +00003\bimodindex{ic}
4
Fred Drake19479911998-02-13 06:58:54 +00005\setindexsubitem{(in module ic)}
Guido van Rossume229d861997-08-18 15:14:26 +00006
7This module provides access to macintosh Internet Config package,
8which stores preferences for Internet programs such as mail address,
9default homepage, etc. Also, Internet Config contains an elaborate set
10of mappings from Macintosh creator/type codes to foreign filename
11extensions plus information on how to transfer files (binary, ascii,
12etc).
13
14There is a low-level companion module \code{icglue} which provides the
15basic ic access functionality. This low-level module is not
16documented, but the docstrings of the routines document the parameters
17and the routine names are the same as for the Pascal or C API to
18Internet Config, so the standard IC programmers documentation can be
19used if this module is needed.
20
21The \code{ic} module defines the \code{error} exception and symbolic
22names for all error codes IC can produce, see the source for details.
23
24The \code{ic} module defines the following functions:
25
Fred Drake671fe9d1997-12-29 18:53:31 +000026\begin{funcdesc}{IC}{\optional{signature, ic}}
Guido van Rossume229d861997-08-18 15:14:26 +000027Create an internet config object. The signature is a 4-char creator
28code of the current application (default \code{'Pyth'}) which may
29influence some of ICs settings. The optional \var{ic} argument is a
30low-level \code{icinstance} created beforehand, this may be useful if
31you want to get preferences from a different config file, etc.
32\end{funcdesc}
33
Fred Drake671fe9d1997-12-29 18:53:31 +000034\begin{funcdesc}{launchurl}{url \optional{, hint}}
Guido van Rossume229d861997-08-18 15:14:26 +000035\end{funcdesc}
Fred Drake671fe9d1997-12-29 18:53:31 +000036\begin{funcdesc}{parseurl}{data \optional{, start, end, hint}}
Guido van Rossume229d861997-08-18 15:14:26 +000037\end{funcdesc}
38\begin{funcdesc}{mapfile}{file}
39\end{funcdesc}
Fred Drake671fe9d1997-12-29 18:53:31 +000040\begin{funcdesc}{maptypecreator}{type, creator \optional{, filename}}
Guido van Rossume229d861997-08-18 15:14:26 +000041\end{funcdesc}
42\begin{funcdesc}{settypecreator}{file}
43These functions are ``shortcuts'' to the methods of the same name,
44described below.
45\end{funcdesc}
46
47
48\subsection{IC objects}
49
50IC objects have a mapping interface, hence to obtain the mail address
51you simply get \code{ic['MailAddress']}. Assignment also works, and
52changes the option in the configuration file.
53
54The module knows about various datatypes, and converts the internal IC
55representation to a ``logical'' python datastructure. Running the
56\code{ic} module standalone will run a test program that lists all
57keys and values in your IC database, this will have to server as
58documentation.
59
60If the module does not know how to represent the data it returns an
61instance of the \var{ICOpaqueData} type, with the raw data in its
62\var{data} attribute. Objects of this type are also acceptable values
63for assignment.
64
65Besides the dictionary interface IC objects have the following methods:
66
Fred Drake19479911998-02-13 06:58:54 +000067\setindexsubitem{(IC object attribute)}
Guido van Rossume229d861997-08-18 15:14:26 +000068
Fred Drake671fe9d1997-12-29 18:53:31 +000069\begin{funcdesc}{launchurl}{url \optional{, hint}}
Guido van Rossume229d861997-08-18 15:14:26 +000070Parse the given URL, lauch the correct application and pass it the
71URL. The optional \var{hint} can be a scheme name such as
72\code{mailto:}, in which case incomplete URLs are completed with this
73scheme (otherwise incomplete URLs are invalid).
74\end{funcdesc}
75
Fred Drake671fe9d1997-12-29 18:53:31 +000076\begin{funcdesc}{parseurl}{data \optional{, start, end, hint}}
Guido van Rossume229d861997-08-18 15:14:26 +000077Find an URL somewhere in \var{data} and return start position, end
78position and the URL. The optional \var{start} and \var{end} can be
79used to limit the search, so for instance if a user clicks in a long
80textfield you can pass the whole textfield and the click-position in
81\var{start} and this routine will return the whole URL in which the
82user clicked. \var{Hint} is again an optional scheme used to complete
83incomplete URLs.
84\end{funcdesc}
85
86\begin{funcdesc}{mapfile}{file}
87Return the mapping entry for the given \var{file}, which can be passed
88as either a filename or an \var{FSSpec} object, and which need not
89exist.
90
Fred Drake671fe9d1997-12-29 18:53:31 +000091The mapping entry is returned as a tuple \code{(}\var{version},
92\var{type}, \var{creator}, \var{postcreator}, \var{flags},
93\var{extension}, \var{appname}, \var{postappname}, \var{mimetype},
94\var{entryname}\code{)}, where \var{version} is the entry version
Guido van Rossume229d861997-08-18 15:14:26 +000095number, \var{type} is the 4-char filetype, \var{creator} is the 4-char
96creator type, \var{postcreator} is the 4-char creator code of an
97optional application to post-process the file after downloading,
98\var{flags} are various bits specifying whether to transfer in binary
99or ascii and such, \var{extension} is the filename extension for this
100file type, \var{appname} is the printable name of the application to
101which this file belongs, \var{postappname} is the name of the
102postprocessing application, \var{mimetype} is the MIME type of this
103file and \var{entryname} is the name of this entry.
104\end{funcdesc}
105
Fred Drake671fe9d1997-12-29 18:53:31 +0000106\begin{funcdesc}{maptypecreator}{type, creator \optional{, filename}}
Guido van Rossume229d861997-08-18 15:14:26 +0000107Return the mapping entry for files with given 4-char \var{type} and
108\var{creator} codes. The optional \var{filename} may be specified to
109further help finding the correct entry (if the creator code is
110\code{'????'}, for instance).
111
112The mapping entry is returned in the same format as for \var{mapfile}.
113\end{funcdesc}
114
115\begin{funcdesc}{settypecreator}{file}
116Given an existing \var{file}, specified either as a filename or as an
117\var{FSSpec} record, set its creator and type correctly based on its
118extension. The finder is told about the change, so the finder icon
119will be updated quickly.
120\end{funcdesc}