def createTestDB ( project_name, channel_list=['unit_anno'], channel_type=ANNOTATION, channel_datatype=UINT32, public=0, ximagesize=10000, yimagesize=10000, zimagesize=1000, xvoxelres=4.0, yvoxelres=4.0, zvoxelres=3.0, scalingoption=ZSLICES, scalinglevels=5, readonly=READONLY_FALSE, propagate=NOT_PROPAGATED, window=[0,0], time=[0,0], default=False, ocp_version=OCP_VERSION ):
  """Create a unit test data base on the specified sit and name"""
  
  unituser = User.objects.get(username='******')

  ds = Dataset ( dataset_name="unittest", user=unituser, ximagesize=ximagesize, yimagesize=yimagesize, zimagesize=zimagesize,  xoffset=0, yoffset=0, zoffset=1, xvoxelres=xvoxelres, yvoxelres=yvoxelres, zvoxelres=zvoxelres, scalingoption=scalingoption, scalinglevels=scalinglevels, starttime=time[0], endtime=time[1], dataset_description="Unit test" ) 
  ds.save()


  # RBTODO need to add a window and a project

  # make the project entry
  pr = Project (project_name=project_name, project_description='Unit test', user=unituser, dataset=ds, ocp_version=ocp_version, kvengine=kvengine_to_test.kvengine, kvserver=kvengine_to_test.kvserver)
  pr.save()

  # and create the database
  pd = ocpcaproj.OCPCAProjectsDB()

  # create a token
  tk = Token (token_name = project_name, user=unituser, token_description = 'Unit test token', project_id=pr, public=public)
  tk.save()

  pd.newOCPCAProject( pr.project_name )
  try:
    for channel_name in channel_list:
      ch = Channel (channel_name=channel_name, channel_type=channel_type, channel_datatype=channel_datatype, channel_description='Unit test channel', project_id=pr, readonly=readonly, propagate=propagate, resolution=0, exceptions=1,startwindow=window[0], endwindow=window[1], default=default)
      ch.save()
      pd.newOCPCAChannel(pr.project_name, ch.channel_name)
  except Exception, e:
    pass
Exemple #2
0
def extractDatasetDict(ds_dict):
  """Generate a dataset object from the JSON flle"""

  ds = Dataset();
  
  try:
    ds.dataset_name = ds_dict['dataset_name']
    imagesize = [ds.ximagesize, ds.yimagesize, ds.zimagesize] = ds_dict['imagesize']
    [ds.xvoxelres, ds.yvoxelres, ds.zvoxelres] = ds_dict['voxelres']
  except Exception, e:
    print "Missing required fields"
    raise
Exemple #3
0
def extractDatasetDict(ds_dict):
  """Generate a dataset object from the JSON flle"""

  ds = Dataset();
  
  try:
    ds.dataset_name = ds_dict['dataset_name']
    imagesize = [ds.ximagesize, ds.yimagesize, ds.zimagesize] = ds_dict['imagesize']
    [ds.xvoxelres, ds.yvoxelres, ds.zvoxelres] = ds_dict['voxelres']
  except Exception, e:
    print "Missing required fields"
    raise
Exemple #4
0
  def importTable(self):
    """Import the datasets from csv format"""

    cursor = self.conn.cursor()
    with open('{}.csv'.format(self.table_name), 'rb') as csv_file:
      csv_reader = csv.DictReader(csv_file, delimiter=',')
      for row in csv_reader:
        
        try:
          if row['openid'] == 'apl':
            user = User.objects.get(username=row['will'])
          else:
            user = User.objects.get(username=row['openid'])
        except Exception, e:
          user = User.objects.get(username='******')
        
        if self.table_name == 'datasets':
          ds = Dataset (dataset_name=row['dataset'], user=user, ximagesize=int(row['ximagesize']), yimagesize=int(row['yimagesize']), zimagesize=int(row['endslice']), zoffset=int(row['startslice']), scalinglevels=int(row['zoomlevels']), starttime=int(row['starttime']), endtime=int(row['endtime']), dataset_description=row['dataset'], zvoxelres=row['zscale'], public=1)
          try:
            ds.save()
          except Exception, e:
            print ds, "Error"
        elif self.table_name == 'projects':
          try:
            ds = Dataset.objects.get(dataset_name=row['dataset'])
            pr = Project.objects.get(project_name=row['project'])
            #pr,pr_status = Project.objects.update_or_create(project_name=row['project'], project_description=row['project'], dataset=ds, user=user, ocp_version='0.0', host=row['host'], kvengine=row['kvengine'], kvserver=row['kvserver'])
            [channel_type, channel_datatype] = DATATYPE[int(row['datatype'])]
            #ch,ch_status = Channel.objects.update_or_create(channel_name=channel_type, channel_description=channel_type, channel_type=channel_type, channel_datatype=channel_datatype, project_id=pr, resolution=row['resolution'], exceptions=row['exceptions'], startwindow=0, endwindow=0, default="1", readonly=row['readonly'], propagate=row['propagate'])
            if int(row['datatype']) in [3,4]:
              # delete the old channel
              Channel.objects.filter(project_id=pr.project_name).delete()
              # iterate over channel names and create channels
              import ast
              for channel_name in ast.literal_eval(row['channel']):
                print channel_name[0]
                ch = Channel (channel_name = channel_name[0], project_id=pr, channel_description=channel_type,channel_type=channel_type, channel_datatype=channel_datatype, resolution=row['resolution'], exceptions=row['exceptions'], startwindow=0, endwindow=0, default=1, readonly=row['readonly'], propagate=row['propagate'])
                ch.save()
            else:
              continue
              #updated_values = { 'channel_description':channel_type, 'channel_type':channel_type, 'channel_datatype':channel_datatype, 'resolution':row['resolution'], 'exceptions':row['exceptions'], 'startwindow':0, 'endwindow':0, 'default':"1", 'readonly':row['readonly'], 'propagate':row['propagate']}
              #ch, ch_status = Channel.objects.update_or_create(channel_name=channel_type, project_id=pr, defaults=updated_values)
            #tk,tk_status = Token.objects.update_or_create(token_name=row['token'], token_description=row['token'], user=user, project_id=pr, public=row['public'])
            #pr.save()
            #ch.save()
            #tk.save()
          except Exception, e:

            raise
    def importTable(self):
        """Import the datasets from csv format"""

        cursor = self.conn.cursor()
        with open('{}.csv'.format(self.table_name), 'rb') as csv_file:
            csv_reader = csv.DictReader(csv_file, delimiter=',')
            for row in csv_reader:

                try:
                    if row['openid'] == 'apl':
                        user = User.objects.get(username=row['will'])
                    else:
                        user = User.objects.get(username=row['openid'])
                except Exception, e:
                    user = User.objects.get(username='******')

                if self.table_name == 'datasets':
                    ds = Dataset(dataset_name=row['dataset'],
                                 user=user,
                                 ximagesize=int(row['ximagesize']),
                                 yimagesize=int(row['yimagesize']),
                                 zimagesize=int(row['endslice']),
                                 zoffset=int(row['startslice']),
                                 scalinglevels=int(row['zoomlevels']),
                                 starttime=int(row['starttime']),
                                 endtime=int(row['endtime']),
                                 dataset_description=row['dataset'],
                                 zvoxelres=row['zscale'],
                                 public=1)
                    try:
                        ds.save()
                    except Exception, e:
                        print ds, "Error"
                elif self.table_name == 'projects':
                    try:
                        ds = Dataset.objects.get(dataset_name=row['dataset'])
                        pr = Project.objects.get(project_name=row['project'])
                        #pr,pr_status = Project.objects.update_or_create(project_name=row['project'], project_description=row['project'], dataset=ds, user=user, ocp_version='0.0', host=row['host'], kvengine=row['kvengine'], kvserver=row['kvserver'])
                        [channel_type,
                         channel_datatype] = DATATYPE[int(row['datatype'])]
                        #ch,ch_status = Channel.objects.update_or_create(channel_name=channel_type, channel_description=channel_type, channel_type=channel_type, channel_datatype=channel_datatype, project_id=pr, resolution=row['resolution'], exceptions=row['exceptions'], startwindow=0, endwindow=0, default="1", readonly=row['readonly'], propagate=row['propagate'])
                        if int(row['datatype']) in [3, 4]:
                            # delete the old channel
                            Channel.objects.filter(
                                project_id=pr.project_name).delete()
                            # iterate over channel names and create channels
                            import ast
                            for channel_name in ast.literal_eval(
                                    row['channel']):
                                print channel_name[0]
                                ch = Channel(channel_name=channel_name[0],
                                             project_id=pr,
                                             channel_description=channel_type,
                                             channel_type=channel_type,
                                             channel_datatype=channel_datatype,
                                             resolution=row['resolution'],
                                             exceptions=row['exceptions'],
                                             startwindow=0,
                                             endwindow=0,
                                             default=1,
                                             readonly=row['readonly'],
                                             propagate=row['propagate'])
                                ch.save()
                        else:
                            continue
                            #updated_values = { 'channel_description':channel_type, 'channel_type':channel_type, 'channel_datatype':channel_datatype, 'resolution':row['resolution'], 'exceptions':row['exceptions'], 'startwindow':0, 'endwindow':0, 'default':"1", 'readonly':row['readonly'], 'propagate':row['propagate']}
                            #ch, ch_status = Channel.objects.update_or_create(channel_name=channel_type, project_id=pr, defaults=updated_values)
                        #tk,tk_status = Token.objects.update_or_create(token_name=row['token'], token_description=row['token'], user=user, project_id=pr, public=row['public'])
                        #pr.save()
                        #ch.save()
                        #tk.save()
                    except Exception, e:
                        import pdb
                        pdb.set_trace()
                        raise
Exemple #6
0
def createTestDB(project_name,
                 channel_list=['unit_anno'],
                 channel_type=ANNOTATION,
                 channel_datatype=UINT32,
                 public=0,
                 ximagesize=10000,
                 yimagesize=10000,
                 zimagesize=1000,
                 xvoxelres=4.0,
                 yvoxelres=4.0,
                 zvoxelres=3.0,
                 scalingoption=ZSLICES,
                 scalinglevels=5,
                 readonly=READONLY_FALSE,
                 propagate=NOT_PROPAGATED,
                 window=[0, 0],
                 time=[0, 0],
                 default=False,
                 ocp_version=OCP_VERSION):
    """Create a unit test data base on the specified sit and name"""

    unituser = User.objects.get(username='******')

    ds = Dataset(dataset_name="unittest",
                 user=unituser,
                 ximagesize=ximagesize,
                 yimagesize=yimagesize,
                 zimagesize=zimagesize,
                 xoffset=0,
                 yoffset=0,
                 zoffset=1,
                 xvoxelres=xvoxelres,
                 yvoxelres=yvoxelres,
                 zvoxelres=zvoxelres,
                 scalingoption=scalingoption,
                 scalinglevels=scalinglevels,
                 starttime=time[0],
                 endtime=time[1],
                 dataset_description="Unit test")
    ds.save()

    # RBTODO need to add a window and a project

    # make the project entry
    pr = Project(project_name=project_name,
                 project_description='Unit test',
                 user=unituser,
                 dataset=ds,
                 ocp_version=ocp_version,
                 kvengine=kvengine_to_test.kvengine,
                 kvserver=kvengine_to_test.kvserver)
    pr.save()

    # and create the database
    pd = ocpcaproj.OCPCAProjectsDB()

    # create a token
    tk = Token(token_name=project_name,
               user=unituser,
               token_description='Unit test token',
               project_id=pr,
               public=public)
    tk.save()

    pd.newOCPCAProject(pr.project_name)
    try:
        for channel_name in channel_list:
            ch = Channel(channel_name=channel_name,
                         channel_type=channel_type,
                         channel_datatype=channel_datatype,
                         channel_description='Unit test channel',
                         project_id=pr,
                         readonly=readonly,
                         propagate=propagate,
                         resolution=0,
                         exceptions=1,
                         startwindow=window[0],
                         endwindow=window[1],
                         default=default)
            ch.save()
            pd.newOCPCAChannel(pr.project_name, ch.channel_name)
    except Exception, e:
        pass