Functions ========= .. function:: cleanUpShareDirs() Function to be used to clean up erronious empty folders in the Shared directory .. function:: diracAPI(cmd, timeout=60, cred_req=None) Args: cmd (str): This is the command you want to execute from within an active DIRAC session timeout (int): This is the maximum time(sec) the session has to complete the task cred_req (ICredentialRequirement): This is the (optional) credential passed to construct the correct DIRAC env Execute DIRAC API commands from w/in GangaCore. The stdout will be returned, e.g.: # this will simply return 87 diracAPI('print 87') # this will return the status of job 66 # note a Dirac() object is already provided set up as 'dirac' diracAPI('print(Dirac().getJobStatus([66]))') diracAPI('print(dirac.getJobStatus([66]))') # or can achieve the same using command defined and included from # getConfig('DIRAC')['DiracCommandFiles'] diracAPI('status([66])') .. function:: startDiracProcess() Start a subprocess that runs the DIRAC commands .. function:: stopDiracProcess() Stop the Dirac process if it is running .. function:: diracAPI_interactive(connection_attempts=5) Run an interactive server within the DIRAC environment. .. function:: diracAPI_async(cmd, timeout=120) Execute DIRAC API commands from w/in GangaCore. .. function:: getDiracFiles() .. function:: dumpObject(object, filename) These are complimentary functions to export/load which are already exported to the GPI from GangaCore.GPIDev.Persistency. The difference being that these functions will export the objects using the pickle persistency format rather than a Ganga streaming (human readable) format. .. function:: loadObject(filename) These are complimentary functions to export/load which are already exported to the GPI from GangaCore.GPIDev.Persistency. The difference being that these functions will export the objects using the pickle persistency format rather than a Ganga streaming (human readable) format. .. function:: license() Print the full license (GPL) .. function:: runfile(path_to_file) A wrapper for the runpy.run_path() function. Usage: Ganga In[]: runfile('myfile.py') Note: If you want to run a file which includes something like: j = Job() j.submit() then you have to run the function with init_globals=globals() in the Ganga interpreter like this Ganga In[]: runfile('myfile.py') .. function:: typename(obj) Return a name of Ganga object as a string, example: typename(j.application) -> 'DaVinci' .. function:: categoryname(obj) Return a category of Ganga object as a string, example: categoryname(j.application) -> 'applications' .. function:: plugins(category=None) List loaded plugins. If no argument is given return a dictionary of all loaded plugins. Keys are category name. Values are lists of plugin names in each category. If a category is specified (for example 'splitters') return a list of all plugin names in this category. .. function:: convert_merger_to_postprocessor(j) .. function:: load(filename='', returnList=True) Function to load previously exported Ganga objects Arguments: filename - String [default ''] giving path to a file containing definitions of Ganga objects, such as produced with the 'export' function => The path can be absolute, relative, or relative to a directory in the search path LOAD_SCRIPTS, defined in [Configuration] section of Ganga configuration returnList - Switch [default True] defining the return type: => True : List of loaded objects is returned => False : None returned - job and template objects stored in job repository Return value: List of Ganga objects or None, as determined by value of argument returnList .. function:: export(item=None, filename='', mode='w') .. function:: full_print(obj, out=None, interactive=False) Print the full contents of a GPI object without abbreviation. .. function:: report(job=None, filetype=) Upload error reports (snapshot of configuration,job parameters, input/output files, command history etc.). Job argument is optional. Reports can be provided as the file type indicated by filetype argument which defaults to GoogleFile example of particular job details submission to GoogleDrive: j = Job() # a job defined, which results in an error report(job=j, filetype=GoogleFile) # filetype can take other arguments like LocalFile, DiracFile example of standalone submission: report() .. function:: reactivate() activates the internal services previously disabled due to expired credentials .. function:: disableMonitoring() .. function:: enableMonitoring() .. function:: disableServices() Deactivates all the internal services : * monitoring loop * registry/repository and workspace (or GPI entierly) Currently this method is called whenever: * one of the managed credentials (AFS token or Grid Proxy) is detected as beeing *invalid* by the monitoring component * the user is running out of space .. function:: jobSlice(joblist) create a 'JobSlice' from a list of jobs example: jobSlice([j for j in jobs if j.name.startswith("T1:")]) .. function:: runMonitoring(self, jobs=None, steps=1, timeout=300) Enable/Run the monitoring loop and wait for the monitoring steps completion. Parameters: steps: number of monitoring steps to run timeout: how long to wait for monitor steps termination (seconds) jobs: a registry slice to be monitored (None -> all jobs), it may be passed by the user so ._impl is stripped if needed Return: False, if the loop cannot be started or the timeout occured while waiting for monitoring termination True, if the monitoring steps were successfully executed Note: This method is meant to be used in Ganga scripts to request monitoring on demand.