sdss-access Reference¶
Path¶
-
class
sdss_access.path.path.BasePath(pathfile, mirror=False, public=False, release=None, verbose=False)[source]¶ Bases:
objectClass for construction of paths in general.
Variables: templates (dict) – The set of templates read from the configuration file. -
any(filetype, **kwargs)[source]¶ Checks if the local directory contains any of the type of file
Parameters: filetype (str) – File type parameter. Returns: any (bool) – Boolean indicating if the any files exist in the expanded path on disk.
-
dir(filetype, **kwargs)[source]¶ Return the directory containing a file of a given type.
Parameters: filetype (str) – File type parameter. Returns: dir (str) – Directory containing the file.
-
exists(filetype, remote=None, **kwargs)[source]¶ Checks if the given type of file exists locally
Parameters: Returns: exists (bool) – Boolean indicating if the file exists.
-
expand(filetype, **kwargs)[source]¶ Expand a wildcard path locally
Parameters: Returns: expand (list) – List of expanded full paths of the given type.
-
full(filetype, **kwargs)[source]¶ Return the full name of a given type of file.
Parameters: filetype (str) – File type parameter. Returns: full (str) – The full path to the file.
-
location(filetype, base_dir=None, **kwargs)[source]¶ Return the location of the relative sas path of a given type of file.
Parameters: filetype (str) – File type parameter. Returns: full (str) – The relative sas path to the file.
-
lookup_keys(name)[source]¶ Lookup the keyword arguments needed for a given path name
Parameters: name (str) – The name of the path Returns: A list of keywords needed for filepath generation
-
lookup_names()[source]¶ Lookup what path names are available
Returns a list of the available path names in sdss_access. Use with lookup_keys to find the required keyword arguments for a given path name.
Returns: A list of the available path names.
-
name(filetype, **kwargs)[source]¶ Return the directory containing a file of a given type.
Parameters: filetype (str) – File type parameter. Returns: name (str) – Name of a file with no directory information.
-
one(filetype, **kwargs)[source]¶ Returns random one of the given type of file
Parameters: Returns: one (str) – Random file selected from the expanded list of full paths on disk.
-
random(filetype, **kwargs)[source]¶ Returns random number of the given type of file
Parameters: Returns: random (list) – Random file selected from the expanded list of full paths on disk.
-
refine(filelist, regex, filterdir='out', **kwargs)[source]¶ Returns a list of files filterd by a regular expression
Parameters: - filelist (list) – A list of files to filter on.
- regex (str) – The regular expression string to filter your list
- filterdir ({'in', 'out'}) – Indicates the filter to be inclusive or exclusive ‘out’ removes the items satisfying the regular expression ‘in’ keeps the items satisfying the regular expression
Returns: refine (list) – A file list refined by an input regular expression.
-
-
class
sdss_access.path.path.Path(mirror=False, public=False, release=None, verbose=False)[source]¶ Bases:
sdss_access.path.path.BasePathClass for construction of paths in general. Sets a particular template file.
-
definitiondir(filetype, **kwargs)[source]¶ Returns definition subdirectory in
PLATELIST_DIRof the form:NNNNXX.Parameters: Returns: definitiondir (str) – Definition directory in the format
NNNNXX.
-
platedir(filetype, **kwargs)[source]¶ Returns plate subdirectory in
PLATELIST_DIRof the form:NNNNXX/NNNNNN.Parameters: Returns: platedir (str) – Plate directory in the format
NNNNXX/NNNNNN.
-
Sync¶
Access¶
-
class
sdss_access.sync.access.Access(label='sdss_rsync', stream_count=5, mirror=False, public=False, release=None, verbose=False)[source]¶ Bases:
sdss_access.sync.rsync.RsyncAccessClass for providing Rsync or Curl access depending on posix
Auth¶
-
class
sdss_access.sync.auth.Auth(netloc=None, public=False, verbose=False)[source]¶ Bases:
object-
set_netrc()[source]¶ add the following username and password to your ~/.netrc file and remember to chmod 600 ~/.netrc
machine data.sdss.org login sdss password *-****
Windows: recommending _netrc following https://stackoverflow.com/questions/6031214/git-how-to-use-netrc-file-on-windows-to-save-user-and-password
-
Client¶
-
class
sdss_access.sync.cli.Cli(label=None, data_dir=None, verbose=False)[source]¶ Bases:
objectClass for providing command line interface (cli) sync scripts, and logs to local disk
-
foreground_run(command, test=False, logger=None, logall=False, message=None, outname=None, errname=None)[source]¶ A convenient wrapper to log and perform system calls.
Parameters: - command (str) – The system command to run. It will be split internally by shlex.split().
- test (bool, optional) – Set this to true to not actually run the commands.
- logger (logging.logging, optional) – If passed a logging object, diagnostic output will be set to this object.
- logall (bool, optional) – Set this to true to always log stdout and stderr (at level DEBUG). Otherwise stdout and stderr will only be logged for nonzero status
- message (str, optional) – Call logger.critical(message) with this message and then call sys.exit(status).
- outname (str, optional) – If set, use
outnameas the name of a file to contain stdout. It is the responsibility of the caller of this function to clean up the resulting file. Otherwise a temporary file will be used. - errname (str, optional) – Same as
outname, but will contain stderr.
Returns: (status,out,err) (tuple) – The exit status, stdout and stderr of the process
Examples
>>> status,out,err = transfer.common.system_call('date')
-
tmp_dir= '/tmp'¶
-
tmp_exists= True¶
-
Curl¶
-
class
sdss_access.sync.curl.CurlAccess(label='sdss_curl', stream_count=5, mirror=False, public=False, release=None, verbose=False)[source]¶ Bases:
sdss_access.sync.baseaccess.BaseAccessClass for providing Curl access to SDSS SAS Paths
-
check_file_exists_locally(destination=None, url_file_size=None, url_file_time=None)[source]¶ Checks if file already exists (note that time check is only accurate to the minute)
-
get_query_list(url_query)[source]¶ Search through user specified “*” options and return all possible and valid url paths
-
set_url_list(query_path=None)[source]¶ Gets url paths from get_query_list and returns file proparties and path
-
access_mode= 'curl'¶
-
remote_scheme= 'https'¶
-
Http¶
-
class
sdss_access.sync.http.HttpAccess(verbose=False, public=False, release=None, label='sdss_http')[source]¶ Bases:
sdss_access.path.path.PathClass for providing HTTP access via urllib.request (python3) or urllib2 (python2) to SDSS SAS Paths
-
download_url_to_path(url, path, force=False)[source]¶ Download a file from url via http, and put it at path
Parameters:
-
get(filetype, **kwargs)[source]¶ Returns file name, downloading if remote access configured.
Parameters: - filetype (str) – type of file
- arguments (keyword) – keywords to fully specify path
Notes
Path templates are defined in $DIMAGE_DIR/data/dimage_paths.ini
-
Rsync¶
Stream¶
System Call¶
-
sdss_access.sync.system_call.system_call(command, test=False, logger=None, logall=False, message=None, outname=None, errname=None)[source]¶ A convenient wrapper to log and perform system calls.
Parameters: - command (str) – The system command to run. It will be split internally by shlex.split().
- test (bool, optional) – Set this to true to not actually run the commands.
- logger (logging.logging, optional) – If passed a logging object, diagnostic output will be set to this object.
- logall (bool, optional) – Set this to true to always log stdout and stderr (at level DEBUG). Otherwise stdout and stderr will only be logged for nonzero status
- message (str, optional) – Call logger.critical(message) with this message and then call sys.exit(status).
- outname (str, optional) – If set, use
outnameas the name of a file to contain stdout. It is the responsibility of the caller of this function to clean up the resulting file. Otherwise a temporary file will be used. - errname (str, optional) – Same as
outname, but will contain stderr.
Returns: (status,out,err) (tuple) – The exit status, stdout and stderr of the process
Examples
>>> status,out,err = transfer.common.system_call('date')