示例#1
0
    def LoadRaycastingPreset(self, pubsub_evt=None):
        if pubsub_evt:
            label = pubsub_evt.data
        else:
            return

        if label != const.RAYCASTING_OFF_LABEL:
            if label in const.RAYCASTING_FILES.keys():
                path = os.path.join(const.RAYCASTING_PRESETS_DIRECTORY,
                                    const.RAYCASTING_FILES[label])
            else:
                path = os.path.join(const.RAYCASTING_PRESETS_DIRECTORY,
                                    label + ".plist")
                if not os.path.isfile(path):
                    path = os.path.join(
                        const.USER_RAYCASTING_PRESETS_DIRECTORY,
                        label + ".plist")
            preset = plistlib.readPlist(path)
            prj.Project().raycasting_preset = preset
            # Notify volume
            # TODO: Chamar grafico tb!
            Publisher.sendMessage('Update raycasting preset')
        else:
            prj.Project().raycasting_preset = 0
            Publisher.sendMessage('Update raycasting preset')
示例#2
0
    def test_03_projects_init(self):
        proj_diary = project.Project(name='Diary',
                                     fldr=root_folder,
                                     desc='Diary database for PIM application')
        proj_diary.add_source('Calendar', root_folder)
        proj_diary.add_source('Bookmarks', root_folder)
        proj_diary.add_source('File Usage', root_folder)
        proj_diary.add_source('PC Usage', root_folder)
        proj_diary.add_source('TODO List', root_folder)
        proj_diary.log_table('Tasks.log')
        self.assertEqual(len(str(proj_diary)) > 5, True)

        my_biz = project.Project(name='Acute Software',
                                 desc='Custom Software development',
                                 fldr='')
        my_biz.add_detail('website', 'http://www.acutesoftware.com.au')
        my_biz.add_detail('email', '*****@*****.**')
        self.assertEqual(len(str(my_biz)) > 5, True)

        all_projects = project.Projects()
        all_projects.add_project(proj_diary)
        all_projects.add_project(my_biz)
        all_projects.add_ontology('mapping')
        res = all_projects.get_by_name('Diary')
        self.assertEqual(res.desc, 'Diary database for PIM application')

        self.assertEqual(len(all_projects.project_list), 2)
        self.assertEqual(len(str(all_projects)), 134)

        self.assertEqual(all_projects.get_by_name('No such project'), None)
示例#3
0
    def SaveProject(self, path=None):
        Publisher.sendMessage('Begin busy cursor')
        session = ses.Session()
        if path:
            dirpath, filename = os.path.split(path)
            session.SaveProject((dirpath, filename))
        else:
            dirpath, filename = session.project_path

        proj = prj.Project()
        prj.Project().SavePlistProject(dirpath, filename)

        session.SaveProject()
        Publisher.sendMessage('End busy cursor')
示例#4
0
def projects():
    if session.get("login") is None:
        return redirect("/login")
    project_helper = project.Project()
    all_project = {}
    all_project = project_helper.get_user_project(session['id'])
    return render_template("projects.html", projects=all_project)
示例#5
0
def main():

    # define the project
    prj_random = prj.Project(name='Random Information Request', desc=desc, fldr=proj_fldr)
    
    # add sources of data
    prj_random.add_source('Root Ontology', os.path.abspath(os.path.join(src_fldr, 'data','ref', 'ontology.yaml')))
    #prj_random.add_source('Toolboxes', os.path.abspath(os.path.join(src_fldr, 'data','ref', 'toolbox.csv')))
    
    
    # parse the request for possible toolboxes to use based on local ontology
    keywords = []
    for s in prj_random.data_sources:
        with open(s[1], 'r') as f:
            for line in f:
                print(s[1], ' = ' , line)
                for word in line.split(' '):
                    keywords.append(word.strip('\n').strip(' '))
    
    # a. split request into words
    # b. lookup local ontology of words to concepts
    # c. lookup toolboxes that match the concepts
    print(list(set(keywords)))
    # test the matching toolboxes on the source data
    # a. run the test on each toolboxes
    # b. compare test results and attempt to rank results
    
    
    all_projects = prj.Projects()
    all_projects.add_ontology('researcher')
    all_projects.add_project(prj_random)
    
    
    print(prj_random)
示例#6
0
    def getProjects(self):
        """
			Gets the projects associated with this account (Projects need to be loaded)
		"""
        payload = {'email': self.email}
        headers = {'APIKey': self.APIKey}
        r = requests.get(config.URL + "multipleprojects.json",
                         params=payload,
                         headers=headers)
        emptyProjects = []
        outputString = ""
        count = 0
        if (r.status_code == requests.codes.ok):
            data = r.text
            if (data != config.INVALID_API_KEY):
                jsonList = json.loads(data)
                for x in jsonList:
                    proj = project.Project(x['name'].encode('ascii'),
                                           self,
                                           empty=1)
                    proj.id = int(x['id'])
                    emptyProjects.append(proj)
                    outputString += "(" + repr(count) + ") " + x['name'] + "  "
                    count = count + 1
            else:
                raise ValueError("'" + self.APIKey + "'" +
                                 " is not a valid API key.")
        print outputString
        return emptyProjects
示例#7
0
 def __init__(self):
     maker.Make.__init__(self)
     self.project = project.Project(
         'http://petsc.cs.iit.edu/petsc/BuildSystem', self.getRoot())
     self.project.setWebDirectory(
         '[email protected]://mcs/www-unix/ase')
     return
示例#8
0
def main():
    """
    test for rawdata module to create test files
    """
    
    
    print('Initialising rawdata for AIKIF...')
    
    # setup project for logging
    name = 'rawdata_gen'
    type = 'Data'
    desc = 'Creates raw data tables for aikif'
    desc += '\n     Last updated ' + mod_dt.TodayAsString()	
    fldr = os.getcwd()
    p = mod_prj.Project(name, type, desc, fldr)
    p.add_detail('source', 'pip install rawdata')

    
    # create the rawdata
    col_names = ['Year', 'name',   'Purchase', 'Location']
    col_types = ['DATE', 'PEOPLE', 'CURRENCY', 'PLACE']
    t = generate.TableGenerator(10, col_types, col_names)
    
    
    # save the table (you can save it via rawdata class, but demonstrates other use
    test_data = mod_dt.DataTable('random.csv', ',', col_names=col_names)
    p.log_table(test_data)
    for row in t.tbl:
        #print(row)
        p.record(test_data, '', row)
    p.build_report('test_raw_data.html', 'html')
    p.build_report('test_raw_data.rst', 'rst')
    p.build_report('test_raw_data.md', 'md')
    
    print(test_data)
示例#9
0
    def _duplicateProject(self, proj, n=itertools.count(1)):
        """ Creates a copy of a proj, and creates an accompanying spec file with an 
            auto-incremented counter in the name.  (Not overwriting is mostly for debugging.)"""

        # reload from file instead of deepcopy because hsub stuff can include uncopyable thread locks, etc
        new_proj = project.Project()
        new_proj.setSilent(True)
        new_proj.loadProject(self.proj.getFilenamePrefix() + ".spec")

        # copy hsub references manually
        new_proj.hsub = proj.hsub
        new_proj.hsub.proj = new_proj  # oh my god, guys
        new_proj.h_instance = proj.h_instance

        new_proj.sensor_handler = proj.sensor_handler
        new_proj.actuator_handler = proj.actuator_handler

        # Choose a name by incrementing the stepX suffix
        # Note: old files from previous executions will be overwritten
        base_name = self.proj.getFilenamePrefix().rsplit(
            '.', 1)[0]  # without the modifier
        newSpecName = "%s.step%d.spec" % (base_name, n.next())

        new_proj.writeSpecFile(newSpecName)

        logging.info("Wrote new spec file: %s" % newSpecName)

        return new_proj
示例#10
0
def loadRobotClient(specpath, otherRobotName):
    """
    specpath: path to specification
    """
    executor = None
    proj = project.Project()
    proj.loadProject(specpath)
    hsub = handlerSubsystem.HandlerSubsystem(executor, proj.project_root)
    hsub.setExecutingConfig(proj.current_config)
    proj.rfi = proj.loadRegionFile(decomposed=True)
    robClient = negotiationMonitor.robotClient.RobotClient(hsub, proj)

    # loadStrategy
    region_domain = [
        strategy.Domain("region", proj.rfi.regions, strategy.Domain.B0_IS_MSB)
    ]
    regionCompleted_domain = [
        strategy.Domain("regionCompleted", proj.rfi.regions,
                        strategy.Domain.B0_IS_MSB)
    ]
    enabled_sensors = [
        x for x in proj.enabled_sensors
        if not x.endswith('_rc') or x.startswith(otherRobotName)
    ]
    strat = strategy.createStrategyFromFile(
        specpath.replace('.spec', '.aut'),
        enabled_sensors + regionCompleted_domain, proj.enabled_actuators +
        proj.all_customs + proj.internal_props + region_domain)
    return robClient, strat
示例#11
0
    def OnInsertAngularMeasurePoint(self, obj, evt):
        x,y = self.interactor.GetEventPosition()
        self.measure_picker.Pick(x, y, 0, self.ren)
        x, y, z = self.measure_picker.GetPickPosition()

        proj = prj.Project()
        radius = min(proj.spacing) * PROP_MEASURE
        if self.measure_picker.GetActor(): 
            # if not self.measures or self.measures[-1].IsComplete():
                # m = measures.AngularMeasure(self.ren)
                # m.AddPoint(x, y, z)
                # self.measures.append(m)
            # else:
                # m = self.measures[-1]
                # m.AddPoint(x, y, z)
                # if m.IsComplete():
                    # index = len(self.measures) - 1
                    # name = "M"
                    # colour = m.colour
                    # type_ = _("Angular")
                    # location = u"3D"
                    # value = u"%.2f˚"% m.GetValue()
                    # msg =  'Update measurement info in GUI',
                    # Publisher.sendMessage(msg,
                                               # (index, name, colour,
                                                # type_, location,
                                                # value))
            Publisher.sendMessage("Add measurement point",
                    ((x, y,z), const.ANGULAR, const.SURFACE, radius))
            self.interactor.Render()
示例#12
0
    def OnExportSurface(self, pubsub_evt):
        filename, filetype = pubsub_evt.data
        if (filetype == const.FILETYPE_STL) or\
           (filetype == const.FILETYPE_VTP) or\
           (filetype == const.FILETYPE_PLY) or\
           (filetype == const.FILETYPE_STL_ASCII):

            # First we identify all surfaces that are selected
            # (if any)
            proj = prj.Project()
            polydata_list = []

            for index in proj.surface_dict:
                surface = proj.surface_dict[index]
                if surface.is_shown:
                    polydata_list.append(surface.polydata)

            if len(polydata_list) == 0:
                utl.debug("oops - no polydata")
                return
            elif len(polydata_list) == 1:
                polydata = polydata_list[0]
            else:
                polydata = pu.Merge(polydata_list)

            # Having a polydata that represents all surfaces
            # selected, we write it, according to filetype
            if filetype == const.FILETYPE_STL:
                writer = vtk.vtkSTLWriter()
                writer.SetFileTypeToBinary()
            elif filetype == const.FILETYPE_STL_ASCII:
                writer = vtk.vtkSTLWriter()
                writer.SetFileTypeToASCII()
            elif filetype == const.FILETYPE_VTP:
                writer = vtk.vtkXMLPolyDataWriter()
            #elif filetype == const.FILETYPE_IV:
            #    writer = vtk.vtkIVWriter()
            elif filetype == const.FILETYPE_PLY:
                writer = vtk.vtkPLYWriter()
                writer.SetFileTypeToASCII()
                writer.SetColorModeToOff()
                #writer.SetDataByteOrderToLittleEndian()
                #writer.SetColorModeToUniformCellColor()
                #writer.SetColor(255, 0, 0)

            if filetype in (const.FILETYPE_STL, const.FILETYPE_PLY):
                # Invert normals
                normals = vtk.vtkPolyDataNormals()
                normals.SetInputData(polydata)
                normals.SetFeatureAngle(80)
                normals.AutoOrientNormalsOn()
                #  normals.GetOutput().ReleaseDataFlagOn()
                normals.UpdateInformation()
                normals.Update()
                polydata = normals.GetOutput()

            filename = filename.encode(wx.GetDefaultPyEncoding())
            writer.SetFileName(filename)
            writer.SetInputData(polydata)
            writer.Write()
示例#13
0
def main(project_name):
    warnings.simplefilter("error", OptimizeWarning)
    proj = project.Project(project_name)
    proj.prepare_quantify()
    datafiles.create_file(proj)
    quantify(proj)
    return 0
示例#14
0
    def loadSpecFile(self, filename):
        # Update with this new project
        self.proj = project.Project()
        self.proj.loadProject(filename)

        # Tell GUI to load the spec file
        self.postEvent("SPEC", self.proj.getFilenamePrefix() + ".spec")
示例#15
0
def file_metadata():
    p = prj.Project('File Metadata',
                    tpe='PIM',
                    fldr='T:\\user\\AIKIF\\pers_data\\file_metadata',
                    desc='Read metadata')

    return p
示例#16
0
def initDPatching(specpath):
    """
    specpath: path to specification
    """
    executor = None
    proj = project.Project()
    proj.loadProject(specpath)
    hsub = handlerSubsystem.HandlerSubsystem(executor, proj.project_root)
    hsub.setExecutingConfig(proj.current_config)
    proj.rfi = proj.loadRegionFile(decomposed=True)
    patchExecutor = centralCoordinator.decentralizedPatchingExecutor.PatchingExecutor(
        hsub, proj, testDPatchingMode=True)

    # loadStrategy
    region_domain = [
        strategy.Domain("region", proj.rfi.regions, strategy.Domain.B0_IS_MSB)
    ]
    regionCompleted_domain = [
        strategy.Domain("regionCompleted", proj.rfi.regions,
                        strategy.Domain.B0_IS_MSB)
    ]
    enabled_sensors = [
        x for x in proj.enabled_sensors if not x.endswith('_rc')
    ]
    strat = strategy.createStrategyFromFile(
        specpath.replace('.spec', '.aut'),
        enabled_sensors + regionCompleted_domain, proj.enabled_actuators +
        proj.all_customs + proj.internal_props + region_domain)
    return patchExecutor, strat
示例#17
0
def gmail():
    p = prj.Project('Gmail',
                    tpe='PIM',
                    fldr='T:\\user\\AIKIF\\pers_data\\email\\gmail',
                    desc='Load gmail')

    return p
示例#18
0
def outlook():
    p = prj.Project('Outlook',
                    tpe='PIM',
                    fldr='T:\\user\\AIKIF\\pers_data\\email',
                    desc='Load Outlook mail')

    return p
示例#19
0
    def on_open_project(self, widget):
        filechooser = gtk.FileChooserDialog(
            title="Choose Project File",
            action=gtk.FILE_CHOOSER_ACTION_OPEN,
            buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN,
                     gtk.RESPONSE_OK))
        filter = gtk.FileFilter()
        filter.set_name("Taluka Project Files")
        filter.add_pattern("*.taluka")
        filechooser.add_filter(filter)
        filter = gtk.FileFilter()
        filter.set_name("All Files")
        filter.add_pattern("*")
        filechooser.add_filter(filter)

        filechooser.set_current_folder(os.environ["HOME"])

        filechooser.set_transient_for(self.window)

        response = filechooser.run()
        if response == gtk.RESPONSE_OK:
            file = filechooser.get_filename()
        else:
            file = None
        filechooser.destroy()

        if file != None:
            p = project.Project(self)
            p.filename = urllib.unquote(file)
            p.open()
示例#20
0
 def __init__(self):
     maker.Make.__init__(self)
     self.project = project.Project(
         'https://bitbucket.org/petsc/buildsystem', self.getRoot())
     self.project.setWebDirectory(
         '[email protected]://mcs/www-unix/ase')
     return
示例#21
0
 def SaveRaycastingPreset(self, pubsub_evt):
     preset_name = pubsub_evt.data
     preset = prj.Project().raycasting_preset
     preset['name'] = preset_name
     preset_dir = os.path.join(const.USER_RAYCASTING_PRESETS_DIRECTORY,
                               preset_name + '.plist')
     plistlib.writePlist(preset, preset_dir)
示例#22
0
    def OnRemove(self, pubsub_evt):
        selected_items = pubsub_evt.data
        proj = prj.Project()

        old_dict = self.actors_dict
        new_dict = {}
        if selected_items:
            for index in selected_items:
                proj.RemoveSurface(index)
                actor = old_dict[index]
                for i in old_dict:
                    if i < index:
                        new_dict[i] = old_dict[i]
                    if i > index:
                        new_dict[i - 1] = old_dict[i]
                old_dict = new_dict
                Publisher.sendMessage('Remove surface actor from viewer',
                                      actor)
            self.actors_dict = new_dict

        if self.last_surface_index in selected_items:
            if self.actors_dict:
                self.last_surface_index = 0
            else:
                self.last_surface_index = None
示例#23
0
    def CreateDicomProject(self, dicom, matrix, matrix_filename):
        name_to_const = {"AXIAL":const.AXIAL,
                         "CORONAL":const.CORONAL,
                         "SAGITTAL":const.SAGITAL}

        proj = prj.Project()
        proj.name = dicom.patient.name
        proj.modality = dicom.acquisition.modality
        proj.SetAcquisitionModality(dicom.acquisition.modality)
        proj.matrix_shape = matrix.shape
        proj.matrix_dtype = matrix.dtype.name
        proj.matrix_filename = matrix_filename
        #proj.imagedata = imagedata
        proj.dicom_sample = dicom
        proj.original_orientation =\
                    name_to_const[dicom.image.orientation_label]
        proj.window = float(dicom.image.window)
        proj.level = float(dicom.image.level)
        proj.threshold_range = int(matrix.min()), int(matrix.max())
        proj.spacing = self.Slice.spacing

        ######
        session = ses.Session()
        filename = proj.name+".inv3"

        filename = filename.replace("/", "") #Fix problem case other/Skull_DICOM

        dirpath = session.CreateProject(filename)
示例#24
0
    def OnLinkExportMask(self, evt=None):
        project = proj.Project()
        print "OnLinkEportMask"
        if sys.platform == 'win32':
            project_name = project.name
        else:
            project_name = project.name + ".vti"

        dlg = wx.FileDialog(
            None,
            "Save mask as...",  # title
            "",  # last used directory
            project_name,  # filename
            WILDCARD_SAVE_MASK,
            wx.SAVE | wx.OVERWRITE_PROMPT)
        dlg.SetFilterIndex(0)  # default is VTI

        if dlg.ShowModal() == wx.ID_OK:
            filename = dlg.GetPath()
            print "filename", filename
            extension = "vti"
            if sys.platform != 'win32':
                if filename.split(".")[-1] != extension:
                    filename = filename + "." + extension
            filetype = const.FILETYPE_IMAGEDATA
            Publisher.sendMessage('Export mask to file', (filename, filetype))
示例#25
0
    def __init__(self):
        """
        Create a new execution context object
        """
        super(LTLMoPExecutor, self).__init__()

        self.proj = project.Project(
        )  # this is the project that we are currently using to execute
        self.strategy = None

        # Choose a timer func with maximum accuracy for given platform
        if sys.platform in ['win32', 'cygwin']:
            self.timer_func = time.clock
        else:
            self.timer_func = time.time

        self.externalEventTarget = None
        self.externalEventTargetRegistered = threading.Event()
        self.postEventLock = threading.Lock()
        self.runStrategy = threading.Event()  # Start out paused
        self.alive = threading.Event()
        self.alive.set()

        self.current_outputs = {
        }  # keep track on current outputs values (for actuations)
示例#26
0
def TestLoadAndDump(spec_filename):
    import project
    import pprint
    import strategy  # When running from the context of __name__ == "__main__", we need to
                     # explicitly import like this or else things get weird... e.g. __main__.Domain
                     # and strategy.Domain become different things

    ### Load the project
    proj = project.Project()
    proj.loadProject(spec_filename)
    spec_map = proj.loadRegionFile(decomposed=True)

    ### Load the strategy
    region_domain = strategy.Domain("region", spec_map.regions, Domain.B0_IS_MSB)

    strat = createStrategyFromFile(proj.getStrategyFilename(),
                                   proj.enabled_sensors,
                                   proj.enabled_actuators + proj.all_customs + proj.internal_props + [region_domain])

    ### Choose a starting state
    initial_region = spec_map.regions[0]  # Hopefully this is a valid region to start from...
    start_state = strat.searchForOneState({"region": initial_region, "radio": False})
    #pprint.pprint(strat.findTransitionableStates({}, from_state=start_state))

    ### Dump the strategy from this initial state
    strat.exportAsDotFile("strategy_test.dot", starting_states = [start_state])
示例#27
0
 def create_project_from_dict(self, project_dict):
     return project.Project(
         project_dict["name"],
         project_dict["city"],
         project_dict["description"],
         project_dict["start_time"],
         project_dict["end_time"],
     )
示例#28
0
    def CloseProject(self):
        proj = prj.Project()
        proj.Close()

        Publisher.sendMessage('Hide content panel')
        Publisher.sendMessage('Close project data')
        session = ses.Session()
        session.CloseProject()
示例#29
0
 def run(self, worker=None, client=None):
     run = LDARun(self.project, client)
     loader = LDALoader.create_loader_for_inference(run)
     loader.compute_lda_inference()
     summaries = loader.update_summaries_in_database()
     project.Project(self.project, client).update_timestamps([
                         project.Project.TOPIC_SCORES_TIMESTAMP])
     return loader, summaries
示例#30
0
 def test_setvalues(self):
     """Test setting/getting values works"""
     for testvalue, expected in self.knownvalues:
         # Use fresh project instance each time
         p = project.Project()
         # If setting works then the value output should equal the value input
         if p.dat_lump(testvalue) == True:
             self.assertEqual(testvalue, p.dat_lump())