def LoadCCDB(): sqlite_connect_str = "mysql://[email protected]/ccdb" provider = ccdb.AlchemyProvider() # this class has all CCDB manipulation functions provider.connect(sqlite_connect_str) # use usual connection string to connect to database provider.authentication.current_user_name = "sdobbs" # to have a name in logs return provider
def ccdb2dict(ccdb_path, runnum, table_list): provider = ccdb.AlchemyProvider() provider.connect('sqlite:///' + ccdb_path) dict0 = {} for x in table_list: assignment = provider.get_assignment(x, runnum, 'default') dict0[x] = assignment.constant_set.data_table return dict0
def setUp(self): # create CCDB api class self.provider = ccdb.AlchemyProvider( ) # this class has all CCDB manipulation functions self.provider.connect( "mysql://ccdb_user@localhost/ccdb_test" ) # use usual connection string to connect to database self.provider.authentication.current_user_name = "anonymous" # to have a name in logs
def connecting_ccdb(calibration_connection, variation, user="******"): provider = ccdb.AlchemyProvider() provider.connect(calibration_connection) provider.authentication.current_user_name = user try: provider.get_variation(variation) # cheking if there is a variation except: create_variation(provider, variation) return provider
def __init__(self,table_filename,src_run,ref_run=None,src_variation="calib",ref_variation="default"): self.VERBOSE = 1 # create CCDB api class self.provider = ccdb.AlchemyProvider() # this class has all CCDB manipulation functions self.provider.connect(os.environ['CCDB_CONNECTION']) # use usual connection string to connect to database self.provider.authentication.current_user_name = "calib" # to have a name in logs # configurations self.src_variation = src_variation self.ref_variation = ref_variation self.src_run = src_run if ref_run is None: # default to comparing the same run self.ref_run = src_run else: self.ref_run = ref_run # load list of table names we should include in the report self.tables = [] with open(table_filename) as f: for line in f: if line[0] != '#': self.tables.append(line.strip())
def __init__(self, ccdb_connect_str=None, run=0, variation="default", verbosity=None, ccdb_username=None): if verbosity is None: self.VERBOSE = 1 else: self.VERBOSE = verbosity if ccdb_username is None: # not going to save this for now ccdb_username = "******" # save defaults for copy command self.run = run self.variation = variation # force users to set the CCDB connection by hand # so that we don't accidentally hit the MySQL master too hard if ccdb_connect_str is None: raise RuntimeError("Need to set CCDB connection!") # create CCDB api class self.ccdb_connect_str = ccdb_connect_str self.provider = ccdb.AlchemyProvider( ) # this class has all CCDB manipulation functions self.provider.connect( ccdb_connect_str ) # use usual connection string to connect to database self.provider.authentication.current_user_name = ccdb_username # to have a name in logs if self.VERBOSE > 0: print "Created HDCCDBCopier object:" print " CCDB: %s" % self.ccdb_connect_str print " Source run = %d" % self.run print " Source variation = %s" % self.variation
if __name__ == "__main__": ccdb_home = os.environ[ "CCDB_HOME"] # This environment variable should be set! # Set env. variable PYTHONPATH=$CCDB_HOME/python;$PYTHONPATH # or sys.path.append(os.path.join(ccdb_home, "python")) import ccdb from ccdb import Variation from sqlalchemy import desc sqlite_connect_str = "sqlite:///" + os.path.join(ccdb_home, "sql", "ccdb.sqlite") # create CCDB api class provider = ccdb.AlchemyProvider( ) # this class has all CCDB manipulation functions provider.connect(sqlite_connect_str ) # use usual connection string to connect to database provider.authentication.current_user_name = "anonymous" # to have a name in logs # create parent variation parent_var = provider.create_variation( "test_pyllapi_parent") # Parent is omitted => parent is 'default' # create child variation. We specify its name, comment and parent variation child_var = provider.create_variation("test_pyllapi", "Test how to work from py llapi", "test_pyllapi_parent") print("Created variations: ") print("{} , parent {}".format( child_var,
help='minimum run number', type=int, required=True) cli.add_argument('-max', metavar='#', help='maximum run number', type=int, required=True) cli.add_argument('-table', help='table name', type=str, required=True) cli.add_argument('-variation', help='variation name (default=default)', type=str, required=False, default='default') args = cli.parse_args(sys.argv[1:]) ranges = [] provider = ccdb.AlchemyProvider() provider.connect(os.getenv('CCDB_CONNECTION')) for run in range(args.min, args.max + 1): assignment = provider.get_assignment(args.table, run, args.variation) if len(ranges) == 0 or ranges[-1].assignment.id != assignment.id: ranges.append(Range(run, run, assignment)) elif ranges[-1].run_max == run - 1: ranges[-1].run_max = run else: raise Exception('This should be impossible.') print(Range.header() + '\n' + '\n'.join([str(r) for r in ranges]))