mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	
		
			
	
	
		
			46 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
		
		
			
		
	
	
			46 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
| 
								 | 
							
								\section{\module{pkgutil} ---
							 | 
						||
| 
								 | 
							
								         Package extension utility}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								\declaremodule{standard}{pkgutil}
							 | 
						||
| 
								 | 
							
								\modulesynopsis{Utilities to support extension of packages.}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								\versionadded{2.3}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								This module provides a single function:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								\begin{funcdesc}{extend_path}{path, name}
							 | 
						||
| 
								 | 
							
								  Extend the search path for the modules which comprise a package.
							 | 
						||
| 
								 | 
							
								  Intended use is to place the following code in a package's
							 | 
						||
| 
								 | 
							
								  \file{__init__.py}:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								\begin{verbatim}
							 | 
						||
| 
								 | 
							
								from pkgutil import extend_path
							 | 
						||
| 
								 | 
							
								__path__ = extend_path(__path__, __name__)
							 | 
						||
| 
								 | 
							
								\end{verbatim}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  This will add to the package's \code{__path__} all subdirectories of
							 | 
						||
| 
								 | 
							
								  directories on \code{sys.path} named after the package.  This is
							 | 
						||
| 
								 | 
							
								  useful if one wants to distribute different parts of a single
							 | 
						||
| 
								 | 
							
								  logical package as multiple directories.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  It also looks for \file{*.pkg} files beginning where \code{*}
							 | 
						||
| 
								 | 
							
								  matches the \var{name} argument.  This feature is similar to
							 | 
						||
| 
								 | 
							
								  \file{*.pth} files (see the \refmodule{site} module for more
							 | 
						||
| 
								 | 
							
								  information), except that it doesn't special-case lines starting
							 | 
						||
| 
								 | 
							
								  with \code{import}.  A \file{*.pkg} file is trusted at face value:
							 | 
						||
| 
								 | 
							
								  apart from checking for duplicates, all entries found in a
							 | 
						||
| 
								 | 
							
								  \file{*.pkg} file are added to the path, regardless of whether they
							 | 
						||
| 
								 | 
							
								  exist the filesystem.  (This is a feature.)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  If the input path is not a list (as is the case for frozen
							 | 
						||
| 
								 | 
							
								  packages) it is returned unchanged.  The input path is not
							 | 
						||
| 
								 | 
							
								  modified; an extended copy is returned.  Items are only appended
							 | 
						||
| 
								 | 
							
								  to the copy at the end.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  It is assumed that \code{sys.path} is a sequence.  Items of
							 | 
						||
| 
								 | 
							
								  \code{sys.path} that are not (Unicode or 8-bit) strings referring to
							 | 
						||
| 
								 | 
							
								  existing directories are ignored.  Unicode items on \code{sys.path}
							 | 
						||
| 
								 | 
							
								  that cause errors when used as filenames may cause this function to
							 | 
						||
| 
								 | 
							
								  raise an exception (in line with \function{os.path.isdir()} behavior).
							 | 
						||
| 
								 | 
							
								\end{funcdesc}
							 |