__init__.py revision 383
290N/A# The contents of this file are subject to the terms of the 290N/A# Common Development and Distribution License (the "License"). 290N/A# You may not use this file except in compliance with the License. 290N/A# See the License for the specific language governing permissions 290N/A# and limitations under the License. 290N/A# When distributing Covered Code, include this CDDL HEADER in each 290N/A# If applicable, add the following below this CDDL HEADER, with the 290N/A# fields enclosed by brackets "[]" replaced with your own identifying 290N/A# information: Portions Copyright [yyyy] [name of copyright owner] 290N/A# Copyright 2008 Sun Microsystems, Inc. All rights reserved. 290N/A# Use is subject to license terms. 290N/A# The portable module provide access to methods that require operating system- 290N/A# specific implementations. The module initialization logic selects the right 290N/A# implementation the module is loaded. The module methods then 290N/A# delegate to the implementation class object. 290N/A# The documentation for the methods is provided in this module. To support 290N/A# another operating system, each of these methods must be implemented by the 290N/A# class for that operating system even if it is effectively a no-op. 290N/A# The module and class must be named using os_[impl], where 290N/A# [impl] corresponds to the OS distro, name, or type of OS 290N/A# the class implements. For example, to add specific support 290N/A# for mandrake linux (above and beyond existing support for 290N/A# The following high-level groups of methods are defined in this module: 290N/A# - Platform Attribute Methods: These methods give access to 290N/A# attributes of the underlying platform not available through 290N/A# existing python libraries. For example, the list of implemented 290N/A# ISAs of a given platform. 290N/A# - Account access: Retrieval of account information (users and 290N/A# groups), in some cases for dormant, relocated OS images. 290N/A# - Miscellaneous filesystem operations: common operations that 290N/A# differ in implementation or are only available on a subset 290N/A# of OS or filesystem implementations, such as chown() or rename(). 290N/A# This module exports the methods defined below. They are defined here as 290N/A# not implemented to avoid pylint errors. The included OS-specific module 290N/A# redefines the methods with an OS-specific implementation. 290N/A """ Return the information for the OS's supported ISAs. 290N/A This can be a list or a single string.""" 290N/A """ Return the information for the OS's release version. This 290N/A must be a dot-separated set of integers (i.e. no alphabetic 290N/A """ Return a string representing the current hardware model 290N/A information, e.g. "i86pc".""" 290N/A """ Return the group ID for a group name. 290N/A If use_file is true, an OS-specific file from within the file tree 290N/A rooted by dirpath will be consulted, if it exists. Otherwise, the 290N/A group ID is retrieved from the operating system. 290N/A KeyError if the specified group does not exist""" 290N/A """ Return the user ID for a user name. 290N/A If use_file is true, an OS-specific file from within the file tree 290N/A rooted by dirpath will be consulted, if it exists. Otherwise, the 290N/A user ID is retrieved from the operating system. 290N/A KeyError if the specified group does not exist""" 290N/A """ Return the group name for a group ID. 290N/A If use_file is true, an OS-specific file from within the file tree 290N/A rooted by dirpath will be consulted, if it exists. Otherwise, the 290N/A group name is retrieved from the operating system. 290N/A KeyError if the specified group does not exist""" 290N/A """ Return the user name for a user ID. 290N/A If use_file is true, an OS-specific file from within the file tree 290N/A rooted by dirpath will be consulted, if it exists. Otherwise, the 290N/A user name is retrieved from the operating system. 290N/A KeyError if the specified group does not exist""" 290N/A """ Return true if the invoking user has administrative 290N/A privileges on the current runtime OS (e.g. are they the 290N/A """ Return a string representing the invoking user's username.""" 290N/A# Miscellaneous filesystem operations 290N/A# ----------------------------------- 290N/A """ Change ownership of a file in an OS-specific way. 290N/A The owner and group ownership information should be applied to 290N/A the given file, if applicable on the current runtime OS. 290N/A EnvironmentError (or subclass) if the path does not exist 290N/A or ownership cannot be changed""" 290N/A """ Change the name of the given file, using the most 290N/A appropriate method for the OS. 290N/A OSError (or subclass) if the source path does not exist 290N/A EnvironmentError if the rename fails.""" 290N/A """ Link the src to the dst if supported, otherwise copy 290N/A OSError (or subclass) if the source path does not exist or the link 290N/A """ Copy the contents of the file named src to a file named dst. 290N/A If dst already exists, it will be replaced. src and dst are 290N/A path names given as strings. 290N/A This is similar to python's shutil.copyfile() except that 290N/A the intention is to deal with platform specifics, such as 290N/A copying metadata associated with the file (e.g. Resource 290N/A Exceptions: IOError if the destination location is not writable""" 290N/A """ Splits a path and gives back the components of the path. 290N/A This is intended to hide platform-specific details about splitting 290N/A a path into its components. This interface is similar to 290N/A os.path.split() except that the entire path is split, not just 290N/A For platforms where there are additional components (like 290N/A a windows drive letter), these should be discarded before 290N/A performing the split.""" """ Returns the 'root' of the given path. This should include any and all components of a path up to the first non-platform-specific component. For example, on Windows, it should include the drive letter prefix. This is intended to be used when constructing or deconstructing paths, where the root of the filesystem is significant (and often leads to ambiguity in cross-platform code).""" # try the most-specific module name first (e.g. os_suse), # then try the more generic OS Name module (e.g. os_linux), # then the OS type module (e.g. os_unix) "cannot find portable implementation class for os " +
str(
fragments))