[Zope3-checkins] CVS: Packages/ZConfig/doc - zconfig.tex:1.35.10.9
Fred L. Drake, Jr.
fred@zope.com
Fri, 20 Dec 2002 17:11:18 -0500
Update of /cvs-repository/Packages/ZConfig/doc
In directory cvs.zope.org:/tmp/cvs-serv32117
Modified Files:
Tag: zconfig-schema-devel-branch
zconfig.tex
Log Message:
Added a section on the ZConfig.loader module.
=== Packages/ZConfig/doc/zconfig.tex 1.35.10.8 => 1.35.10.9 ===
--- Packages/ZConfig/doc/zconfig.tex:1.35.10.8 Fri Dec 20 15:59:04 2002
+++ Packages/ZConfig/doc/zconfig.tex Fri Dec 20 17:11:17 2002
@@ -747,6 +747,103 @@
\end{classdesc}
+\section{\module{ZConfig.loader} --- Resource loading support}
+
+\declaremodule{}{ZConfig.loader}
+\modulesynopsis{Support classes for resource loading}
+
+This module provides some helper classes used by the primary APIs
+exported by the \module{ZConfig} package. These classes may be useful
+for some applications, especially applications that want to use a
+non-default data type registry.
+
+\begin{classdesc}{Resource}{file, url}
+ Object that allows an open file object and a URL to be bound
+ together to ease handling. Instances have the attributes
+ \member{file} and \member{url} which store the constructor
+ arguments. These objects also have a \method{close()} method which
+ will call \method{close()} on \var{file}, then set the \member{file}
+ attribute to \code{None} and the \member{closed} to \code{True}.
+\end{classdesc}
+
+\begin{classdesc}{BaseLoader}{}
+ Base class for loader objects. This should not be instantiated
+ directly, as the \method{loadResource()} method must be overridden
+ for the instance to be used via the public API.
+\end{classdesc}
+
+\begin{classdesc}{ConfigLoader}{schema}
+ Loader for configuration files. Each configuration file must
+ conform to the schema \var{schema}. The \method{load*()} methods
+ return a tuple consisting of the configuration object and a
+ composite handler.
+\end{classdesc}
+
+\begin{classdesc}{SchemaLoader}{\optional{registry}}
+ Loader that loads schema instances. All schema loaded by a
+ \class{SchemaLoader} will use the same data type registry. If
+ \var{registry} is provided and not \code{None}, it will be used,
+ otherwise an instance of \class{ZConfig.datatypes.Registry} will be
+ used.
+\end{classdesc}
+
+
+\subsection{Loader Objects}
+
+Loader objects provide a general public interface, an inteface which
+subclasses must implement, and some utility methods.
+
+The following methods provide the public interface:
+
+\begin{methoddesc}[loader]{loadURL}{url}
+ Open and load a resource specified by the URL \var{url}.
+ This method uses the \method{loadResource()} method to perform the
+ actual load, and returns whatever that method returns.
+\end{methoddesc}
+
+\begin{methoddesc}[loader]{loadFile}{file\optional{, url}}
+ Load from an open file object, \var{file}. If given and not
+ \code{None}, \var{url} should be the URL of the resource represented
+ by \var{file}. If omitted or \code{None}, the \member{name}
+ attribute of \var{file} is used to compute a \code{file:} URL, if
+ present.
+ This method uses the \method{loadResource()} method to perform the
+ actual load, and returns whatever that method returns.
+\end{methoddesc}
+
+The following method must be overridden by subclasses:
+
+\begin{methoddesc}[loader]{loadResource}{resource}
+ Subclasses of \class{BaseLoader} must implement this method to
+ actually load the resource and return the appropriate
+ application-level object.
+\end{methoddesc}
+
+The following methods can be used as utilities:
+
+\begin{methoddesc}[loader]{normalizeURL}{url-or-path}
+ Return a URL for \var{url-or-path}. If \var{url-or-path} refers to
+ an existing file, the corresponding \code{file:} URL is returned.
+ Otherwise \var{url-or-path} is checked for sanity: if it
+ does not have a schema, \exception{ValueError} is raised, and if it
+ does have a fragment identifier, \exception{ConfigurationError} is
+ raised.
+\end{methoddesc}
+
+\begin{methoddesc}[loader]{openResource}{url}
+ Returns a resource object that represents the URL \var{url}. The
+ URL is opened using the \function{urllib2.urlopen()} function, and
+ the returned resource object is created using
+ \method{createResource()}.
+\end{methoddesc}
+
+\begin{methoddesc}[loader]{createResource}{file, url}
+ Returns a resource object for an open file and URL, given as
+ \var{file} and \var{url}, respectively. This may be overridden by a
+ subclass if an alternate resource implementation is desired.
+\end{methoddesc}
+
+
\section{\module{ZConfig.substitution} --- String substitution}
\declaremodule{}{ZConfig.substitution}