def declare(productName, versionName, productDir=None, eupsPathDir=None, tablefile=None, externalFileList=[], tag=None, eupsenv=None): """ Declare a product. That is, make this product known to EUPS. If the product is already declared, this method can be used to change the declaration. The most common type of "redeclaration" is to only assign a tag. (Note that this can be accomplished more efficiently with assignTag() as well.) Attempts to change other data for a product requires self.force to be true. If the product has no installation directory or table file, these parameters should be set to "none". If either are None, some attempt is made to surmise what these should be. If the guessed locations are not found to exist, this method will raise an exception. If the tablefile is an open file descriptor, it is assumed that a copy should be made and placed into product's ups directory. This directory will be created if it doesn't exist. For backward compatibility, the declareCurrent parameter is provided but its use is deprecated. It is ignored unless the tag argument is None. A value of True is equivalent to setting tag="current". If declareCurrent is None and tag is boolean, this method assumes the boolean value is intended for declareCurrent. @param productName the name of the product to declare @param versionName the version to declare. @param productDir the directory where the product is installed. If set to "none", there is no installation directory (and tablefile must be specified). If None, an attempt to determine the installation directory (from eupsPathDir) is made. @param eupsPathDir the EUPS product stack to install the product into. If None, then the first writable stack in EUPS_PATH will be installed into. @param tablefile the path to the table file for this product. If "none", the product has no table file. If None, it is looked for under productDir/ups. @param externalFileList List of tuples (infile, outfile) of files that should be saved in the product's "Extra" directory @param tag the tag to assign to this product. If the specified product is already registered with the same product directory and table file, then use of this input will simple assign this tag to the variable. (See also above note about backward compatibility.) @param eupsenv the Eups instance to assume. If None, a default will be created. """ if not eupsenv: eupsenv = Eups() return eupsenv.declare(productName, versionName, productDir, eupsPathDir, tablefile, externalFileList=externalFileList, tag=tag)