#NEWLINE# def __init__( self , include_lsb = True , os_release_file = '' , distro_release_file = '' ) : #NEWLINE# #INDENT# '\n        The initialization method of this class gathers information from the\n        available data sources, and stores that in private instance attributes.\n        Subsequent access to the information items uses these private instance\n        attributes, so that the data sources are read only once.\n\n        Parameters:\n\n        * ``include_lsb`` (bool): Controls whether the\n          `lsb_release command output`_ is included as a data source.\n\n          If the lsb_release command is not available in the program execution\n          path, the data source for the lsb_release command will be empty.\n\n        * ``os_release_file`` (string): The path name of the\n          `os-release file`_ that is to be used as a data source.\n\n          An empty string (the default) will cause the default path name to\n          be used (see `os-release file`_ for details).\n\n          If the specified or defaulted os-release file does not exist, the\n          data source for the os-release file will be empty.\n\n        * ``distro_release_file`` (string): The path name of the\n          `distro release file`_ that is to be used as a data source.\n\n          An empty string (the default) will cause a default search algorithm\n          to be used (see `distro release file`_ for details).\n\n          If the specified distro release file does not exist, or if no default\n          distro release file can be found, the data source for the distro\n          release file will be empty.\n\n        Public instance attributes:\n\n        * ``os_release_file`` (string): The path name of the\n          `os-release file`_ that is actually used as a data source. The\n          empty string if no distro release file is used as a data source.\n\n        * ``distro_release_file`` (string): The path name of the\n          `distro release file`_ that is actually used as a data source. The\n          empty string if no distro release file is used as a data source.\n\n        Raises:\n\n        * :py:exc:`IOError`: Some I/O issue with an os-release file or distro\n          release file.\n\n        * :py:exc:`subprocess.CalledProcessError`: The lsb_release command had\n          some issue (other than not being available in the program execution\n          path).\n\n        * :py:exc:`UnicodeError`: A data source has unexpected characters or\n          uses an unexpected encoding.\n        ' #NEWLINE# self . os_release_file = ( os_release_file or os . path . join ( _UNIXCONFDIR , _OS_RELEASE_BASENAME ) ) #NEWLINE# self . distro_release_file = ( distro_release_file or '' ) #NEWLINE# self . _os_release_info = self . _os_release_info ( ) #NEWLINE# self . _lsb_release_info = ( self . _lsb_release_info ( ) if include_lsb else { #NEWLINE# #INDENT# #NEWLINE# #UNINDENT# } ) #NEWLINE# self . _distro_release_info = self . _distro_release_info ( )