def parse(self, parserContext): assembly = Assembly() token = parserContext.get_next_token() if token != '.assembly': raise ParseException('Expected .assembly, found ' . token) token = parserContext.get_next_token() if token == 'extern': assembly.extern = True token = parserContext.get_next_token() assembly.name = token while True: token = parserContext.get_next_token() if token == '.ver': assembly.version = parserContext.get_next_token() elif token == '.hash': if parserContext.get_next_token() != 'algorithm': raise ParseException('Expected token "algorithm"') assembly.hashAlgorithm = int(parserContext.get_next_token(), 16) elif token == '.custom': if parserContext.get_next_token() != 'instance': raise ParseException('Expected token "instance"') if parserContext.get_next_token() != 'void': raise ParseException('Expected token "void"') attribute = Attribute() attribute.name = parserContext.get_next_token() + '(' + parserContext.get_next_token() + ')' assembly.customAttributes.append(attribute) elif token == '{': pass elif token == '}': break #fixme public key token return assembly
def __init__(self, parameters): if parameters == []: self.__print_usage() sys.exit(1) print "Reading current and available widget information..." self.__assembly = Assembly() self.__assembly.start() print "... done" # check the parameters for the command and # execute it cmd = parameters[0] if cmd == 'list': self.__print_desklets() elif cmd == 'list-active': self.__print_active_desklets() elif cmd == 'list-remote': self.__print_remote_desklets() elif cmd == 'list-local': self.__print_local_desklets() elif cmd == 'list-controls': self.__print_controls() elif cmd == 'list-controls-remote': self.__print_remote_controls() elif cmd == 'list-controls-local': self.__print_local_controls() elif cmd == 'install': self.__install(parameters[1]) elif cmd == 'install-http': self.__install_http(parameters[1]) elif cmd == 'install-control': self.__install_control(parameters[1]) elif cmd == 'remove': self.remove(parameters[1]) elif cmd == 'remove-control': self.__remove_control(parameters[1])
def __init__(self): self.__selected_desklet = None # try to find a default icon for the desklets that have no preview p = 'gfx/default_item_icon.png' self.__default_icon = gtk.gdk.pixbuf_new_from_file(p) # connect to the control and get the desklets self.__assembly = Assembly() self.__assembly.add_observer(self.assembly_event) self.__window = gtk.Window(gtk.WINDOW_TOPLEVEL) self.__window.set_title("Desklet Bartender") # HIG stuff self.__window.set_border_width(6) self.__window.set_default_size(700, 600) self.__window.connect("delete_event", self.close_window_event) # one vertical box to hold toolbars, and other boxes (not homogenous, 2px spacing) self.__top_box = gtk.VBox(False, 2) self.__window.add(self.__top_box) self.__construct_toolbar() self.__hpaned = gtk.HPaned() self.__top_box.pack_start(self.__hpaned) self.__statusbar = self.__construct_statusbar() self.__top_box.pack_start(self.__statusbar, False, False, 0) self.__window.show_all() # start the assembly self.__assembly.start()
def parse(self, parserContext): assembly = Assembly() token = parserContext.get_next_token() if token != '.assembly': raise ParseException('Expected .assembly, found '.token) token = parserContext.get_next_token() if token == 'extern': assembly.extern = True token = parserContext.get_next_token() assembly.name = token while True: token = parserContext.get_next_token() if token == '.ver': assembly.version = parserContext.get_next_token() elif token == '.hash': if parserContext.get_next_token() != 'algorithm': raise ParseException('Expected token "algorithm"') assembly.hashAlgorithm = int(parserContext.get_next_token(), 16) elif token == '.custom': if parserContext.get_next_token() != 'instance': raise ParseException('Expected token "instance"') if parserContext.get_next_token() != 'void': raise ParseException('Expected token "void"') attribute = Attribute() attribute.name = parserContext.get_next_token( ) + '(' + parserContext.get_next_token() + ')' assembly.customAttributes.append(attribute) elif token == '{': pass elif token == '}': break #fixme public key token return assembly
class DeskletBartender(object): def __init__(self): self.__selected_desklet = None # try to find a default icon for the desklets that have no preview p = 'gfx/default_item_icon.png' self.__default_icon = gtk.gdk.pixbuf_new_from_file(p) # connect to the control and get the desklets self.__assembly = Assembly() self.__assembly.add_observer(self.assembly_event) self.__window = gtk.Window(gtk.WINDOW_TOPLEVEL) self.__window.set_title("Desklet Bartender") # HIG stuff self.__window.set_border_width(6) self.__window.set_default_size(700, 600) self.__window.connect("delete_event", self.close_window_event) # one vertical box to hold toolbars, and other boxes (not homogenous, 2px spacing) self.__top_box = gtk.VBox(False, 2) self.__window.add(self.__top_box) self.__construct_toolbar() self.__hpaned = gtk.HPaned() self.__top_box.pack_start(self.__hpaned) self.__statusbar = self.__construct_statusbar() self.__top_box.pack_start(self.__statusbar, False, False, 0) self.__window.show_all() # start the assembly self.__assembly.start() def __construct_toolbar(self): self.__action_group = gtk.ActionGroup("common") self.__action_group.add_actions([ ('install', gtk.STOCK_ADD, 'Install', None, 'Install the selected widget', self.install_event), ('remove', gtk.STOCK_DELETE, 'Remove', None, 'Remove the selected widget', self.remove_event ), ('activate', gtk.STOCK_MEDIA_PLAY, 'Activate', None, 'Activate the selected widget', self.activate_event), # Deactivating is not yet possible.. ('deactivate', gtk.STOCK_MEDIA_STOP, 'Deactivate', None, 'Deactivate the selected widget', self.deactivate_event ), ('update', gtk.STOCK_REFRESH, 'Update', None, 'Update the widget list', self.update_event ), ('quit', gtk.STOCK_QUIT, 'Quit', None, 'Quit the program', self.close_window_event)]) toolbar = gtk.Toolbar() self.__action_group.get_action("install").set_sensitive(False) self.__action_group.get_action("remove").set_sensitive(False) self.__action_group.get_action("deactivate").set_sensitive(False) self.__action_group.get_action("activate").set_sensitive(False) toolbar.insert( self.__action_group.get_action("install").create_tool_item(), 0 ) toolbar.insert( self.__action_group.get_action("remove").create_tool_item(), 1 ) toolbar.insert( self.__action_group.get_action("activate").create_tool_item(), 2 ) # toolbar.insert( self.__action_group.get_action("deactivate").create_tool_item(), 3 ) # toolbar.insert( self.__action_group.get_action("update").create_tool_item(), 3 ) toolbar.insert( self.__action_group.get_action("quit").create_tool_item(), 3 ) self.__top_box.pack_start(toolbar, False) def __construct_statusbar(self): sb = gtk.Statusbar() sb.set_has_resize_grip(True) # create a stack of basic startup messages which can be easily popped while loading sb.push(0, 'All ready') sb.push(0, 'Building') sb.push(0, 'Looking for news') sb.push(0, 'Looking for local controls') sb.push(0, 'Looking for local desklets') sb.push(0, 'Looking for remote controls') sb.push(0, 'Looking for remote desklets') return sb def __construct_left_box(self): ''' Creates the smaller views for the right side of the box ''' box = gtk.VBox(False, 2) if GTKHTML2_IS_AVAILABLE: newstitle = gtk.Label() newstitle.set_markup('<span size="xx-large" weight="bold">News</span>') box.pack_start(newstitle, False) newslabel = self.__construct_news_view() scrollwin = gtk.ScrolledWindow() scrollwin.set_size_request(250, -1) #scrollwin.set_width(300) scrollwin.set_policy(gtk.POLICY_AUTOMATIC,gtk.POLICY_AUTOMATIC) scrollwin.add(newslabel) box.pack_start(scrollwin) else: box.pack_start( gtk.Label("You need python-gtkhtml2 installed to view the news")) return box def __construct_news_view(self): news = self.__assembly.get_news() news_html = '<html><head></head><body style="background:white">' for n in news: news_html += '<div style="font-size:13px; text-decoration:underline">' \ + n['title'] + '</div> \n' + \ '<div>' \ + n['body'] + '</div> <hr />' news_html += '</body></html>' document = gtkhtml2.Document() # No event handlers at this time document.connect('request_url', self.request_url_event) document.connect('link_clicked', self.link_clicked_event) document.clear() document.open_stream('text/html') document.write_stream(news_html) document.close_stream() html_view = gtkhtml2.View() html_view.set_document(document) return html_view def __construct_right_box(self): ''' Creates the treeview for the right side (the actual view of the desklets). ''' # make it store the picture, name and description on the first level self.__tree_model = gtk.ListStore(str, gtk.gdk.Pixbuf , str, bool) tree_view = gtk.TreeView(self.__tree_model) self.__text_renderer = gtk.CellRendererText() self.__text_renderer.set_property("wrap-width", 400) pic_renderer = gtk.CellRendererPixbuf() installed_renderer = gtk.CellRendererToggle() pixbuf_column = gtk.TreeViewColumn('Icon') pixbuf_column.pack_start(pic_renderer, False) pixbuf_column.add_attribute(pic_renderer, 'pixbuf', 1) text_column = gtk.TreeViewColumn('Description') text_column.pack_start(self.__text_renderer, False) text_column.add_attribute(self.__text_renderer, 'markup', 2) text_column.set_sort_column_id(2) # text_column.set_resizable(True) install_column = gtk.TreeViewColumn('Installed') install_column.pack_start(installed_renderer, False) install_column.add_attribute(installed_renderer, 'active', 3) install_column.set_sort_column_id(3) tree_view.append_column(pixbuf_column) tree_view.append_column(text_column) tree_view.append_column(install_column) tree_view.get_selection().connect('changed', self.desklet_view_selected_event) self.__treeview_scrollwin = gtk.ScrolledWindow() self.__treeview_scrollwin.set_border_width(6) self.__treeview_scrollwin.add(tree_view) self.__treeview_scrollwin.set_size_request(600, -1) self.__treeview_scrollwin.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.__treeview_scrollwin.connect("size-allocate", self.treeview_resize_event) # get the widgets and populate the treeview max_size = 75 desklets = self.__assembly.get_desklets() # add desklets one by one to the tree model for d_key in desklets: d_object = desklets[d_key] # if there is a preview, scale it to a nice size if d_object.preview != '' and d_object.preview != None: pixbuf = gtk.gdk.pixbuf_new_from_file(d_object.preview) else: pixbuf = self.__default_icon cur_width = pixbuf.get_width() cur_height = pixbuf.get_height() if cur_width > cur_height: asp = float(max_size) / cur_width target_height = asp * cur_height pixbuf = pixbuf.scale_simple(int(max_size), int(target_height), gtk.gdk.INTERP_BILINEAR ) else: asp = float(max_size) / cur_height target_width = asp * cur_width pixbuf = pixbuf.scale_simple(int(target_width), int(max_size), gtk.gdk.INTERP_BILINEAR ) name = str(d_object.name) desc = str(d_object.description) # we have to rip out all tags from the description or we get very "funny" bugs # with descriptions switching places on the fly, etc. (just comment the re.sub to see) desc = re.sub('<([^!>]([^>]|\n)*)>', '', desc) deps = "<span weight=\"600\">Control Dependencies:</span> " if len(d_object.dependencies) > 0: for dep in d_object.dependencies: deps += dep + "," deps = deps[0:-1] # strip last , else: deps = '' text = "<big>"+name+"</big>"+"\n<i>"+desc+"</i>\n"+deps install_state = False if d_object.local_path is not None: install_state = True self.__tree_model.append((d_key, pixbuf, text, install_state) ) return self.__treeview_scrollwin def __reset_textrenderer_width(self, w=None): if w is None: w = self.__treeview_scrollwin.size_request()[0] - 3000 # self.__text_renderer.set_property("wrap-width", w) def refresh_view(self, event): ''' Refresh the view after installation, etc. ''' desklet_object = self.__selected_desklet # print "refreshing because of ", desklet_object.name if desklet_object.local_path is not None: self.__action_group.get_action("remove").set_sensitive(True) self.__action_group.get_action("install").set_sensitive(False) self.__tree_model.set_value(self.__selected_desklet_iter, 3, True) # see if this is a desklet or a control and show the activate button try: preview = desklet_object.preview self.__action_group.get_action("activate").set_sensitive(True) except: self.__action_group.get_action("activate").set_sensitive(False) else: self.__action_group.get_action("remove").set_sensitive(False) self.__action_group.get_action("install").set_sensitive(False) self.__action_group.get_action("activate").set_sensitive(False) self.__tree_model.set_value(self.__selected_desklet_iter, 3, False) if desklet_object.remote_domain is not None: self.__action_group.get_action("install").set_sensitive(True) else: self.__action_group.get_action("install").set_sensitive(False) def update_event(self, event): log( "updating..." ) def close_window_event(self, event, data=None): gtk.main_quit() def desklet_view_selected_event(self, event): if event is not None: treestore, treeiter = event.get_selected() desklet_key = treestore.get(treeiter, 0 )[0] #print "description:", treestore.get(treeiter, 2 )[0] desklet_object = self.__assembly.get_desklet(desklet_key) self.__selected_desklet = desklet_object self.__selected_desklet_iter = treeiter else: desklet_key = None self.__selected_desklet = None self.refresh_view(self.__selected_desklet) log( "selected ", desklet_key ) def assembly_event(self, type, param): ''' Called by the assembly when something funky happens like the fetching is complete, something is installed or removed, etc.. ''' log("assembly event has happened: %s - %s" % (type, param)) if type == 'INSTALLED' or type == 'REMOVED': self.refresh_view(param) elif type == 'FETCH': print "fetch event", param self.__statusbar.pop(0) # All is done: construct the view if param == 'All done': print "All done..." lbox = self.__construct_left_box() rbox = self.__construct_right_box() self.__hpaned.add1( lbox ) self.__hpaned.add2( rbox ) self.__hpaned.show_all() def install_event(self, event): log(str( "install" + self.__selected_desklet.name )) self.__selected_desklet.install_newest_version() def remove_event(self, event): log(str( "remove" + self.__selected_desklet.name )) self.__selected_desklet.remove() def activate_event(self, event): log(str( "activate event " + self.__selected_desklet.name )) self.__selected_desklet.activate_all() def deactivate_event(self, event): log(str( "deactivate" + self.__selected_desklet.name )) self.__selected_desklet.deactivate() def link_clicked_event(self, event, param): print "link clicked with", event, param def request_url_event(self, event, param): print "url requested with", event def treeview_resize_event(self, event, param): #print "treeview resized", event, param.width self.__reset_textrenderer_width(param.width)
def main(): parser = argparse.ArgumentParser( description='Determine PacBio read support for gaps in scaffolds', usage=usage()) # Main arguments parser.add_argument('scaffolds', action='store', help='The input scaffolds in Fasta format') parser.add_argument('subreads', action='store', help='The PacBio subreads in BAM format') parser.add_argument('-t', '--threads', dest='threads', type=int, \ help='Number of threads to use for multi-threaded processes, default=1', default=1) # Arguments for Setup setup_args = parser.add_argument_group('Setup') setup_args.add_argument('-n', '--min_gap', dest='min_gap', type=int, default=200, \ help='Minimum number of consecutive Ns to be considered a gap, default=200') setup_args.add_argument('-x', '--max_gap', dest='max_gap', type=int, default=1000000, \ help='Maximum number of consecutive Ns to be considered a gap, default=Inf') setup_args.add_argument('-f', '--flank_size', dest='flank_size', type=int, default=1000, \ help='Number of extracted bases flanking gaps and scaffold ends, default=1000') # Arguments for Support support_args = parser.add_argument_group('Support') support_args.add_argument('-b', '--blasr', dest='blasr', type=str, \ help='Parameters to pass to BLASR', default='') support_args.add_argument('-d', '--min_reads', dest='min_reads', type=int, \ help='The minimum number of reads required to support a gap', default=5) support_args.add_argument('-w', '--wiggle', dest='wiggle', type=int, \ help='The percent deviation allowed from predicted gap size', default=0.5) # Arguments for Assembly assembly_args = parser.add_argument_group('Assembly') assembly_args.add_argument('-m', '--minimap', dest='minimap', \ help='Parameters to pass to Minimap', default='-Sw5 -L100 -m0') assembly_args.add_argument('-a', '--miniasm', dest='miniasm', \ help='Parameters to pass to Miniasm', default='') assembly_args.add_argument('-r', '--racon', dest='racon', \ help='Parameters to pass to Racon', default='') # Parse the arguments args = parser.parse_args() # Initialize classes setup = Setup() support = Support() assembly = Assembly() placement = Placement() # Check for save point try: save = open('jelly2.save', 'r').read() print "Found save point:", save except IOError: write_save('setup') # Run Setup if check_save('setup'): setup.run(args) write_save('mapping') # Run Support if check_save('mapping'): support.mapping(args) write_save('sorting') if check_save('sorting'): support.sorting(args) write_save('indexing') if check_save('indexing'): support.indexing(args) write_save('support') if check_save('support'): support.find_support(args) write_save('assembly') # Run Assembly if check_save('assembly'): assembly.assemble_gaps(args) write_save('placement') # Run Placement if check_save('placement'): placement.load_data(args) placement.fill_gaps()
import numpy as np from tsr import GraspTSR,LookAtTSR from Assembly import Assembly envfile = 'environments/wingdemo.env.xml' assembly = Assembly(object_names=['wingskin','fastener','camera'], object_relative_poses={ 'wingskin': np.array([[ 1. , 0. , 0. , -0.35 ], [ 0. , 1. , 0. , 0. ], [ 0. , 0. , 1. , 0.073 ], [ 0. , 0. , 0. , 1. ]]), 'camera':np.array([[ 1. , 0. , 0. , -0.027 ], [ 0. , 0. , -1. , 0.163 ], [ 0. , 1. , 0. , 0.17 ], [ 0. , 0. , 0. , 1. ]]), 'fastener': np.array([[ 1. , 0. , 0. , -0.022 ], [ 0. , 0. , -1. , 0.168 ], [ 0. , 1. , 0. , 0.10 ], [ 0. , 0. , 0. , 1. ]]) }, fixed_objects = ['ladder'] ) assembly_pose = np.array([[ 0.7009, -0.7133, -0. , -1.2478], [ 0.7133, 0.7009, -0. , 0.3399], [ 0. , -0. , 1. , 0.13 ], [ 0. , 0. , 0. , 1. ]]) task_regions = {'wingskin': GraspTSR(T0_w_obj='wingskin',
class CmdClient(object): ''' A simple command line interface to the Desklet control. Mostly for testing purposes ''' def __init__(self, parameters): if parameters == []: self.__print_usage() sys.exit(1) print "Reading current and available widget information..." self.__assembly = Assembly() self.__assembly.start() print "... done" # check the parameters for the command and # execute it cmd = parameters[0] if cmd == 'list': self.__print_desklets() elif cmd == 'list-active': self.__print_active_desklets() elif cmd == 'list-remote': self.__print_remote_desklets() elif cmd == 'list-local': self.__print_local_desklets() elif cmd == 'list-controls': self.__print_controls() elif cmd == 'list-controls-remote': self.__print_remote_controls() elif cmd == 'list-controls-local': self.__print_local_controls() elif cmd == 'install': self.__install(parameters[1]) elif cmd == 'install-http': self.__install_http(parameters[1]) elif cmd == 'install-control': self.__install_control(parameters[1]) elif cmd == 'remove': self.remove(parameters[1]) elif cmd == 'remove-control': self.__remove_control(parameters[1]) def __print_usage(self): print '''Usage: list - show all available desklets (installed and remotely available) list-active - list all active desklets list-remote - list all remote desklets list-local - list all local desklets list-controls - show all available controls (installed and remotely available) list-controls-remote - list all remote controls list-controls-local - list all local controls open NAME - activate the desklet given by NAME install NAME - install the remote desklet given by NAME install-control NAME - install the control given by NAME remove NAME - delete the local desklet given by NAME remove-control NAME - delete the local control given by NAME ''' def __print_active_desklets(self): print "Active desklets" print self.__assembly.get_active_displays() def __print_local_desklets(self): print "Local desklets" desklets = self.__assembly.get_local_desklets() for d in desklets: do = desklets[d] print do def __print_remote_desklets(self): print "Remote desklets" self.__assembly.start(True) desklets = self.__assembly.get_remote_desklets() for d in desklets: do = desklets[d] print do def __print_desklets(self): print "All desklets" desklets = self.__assembly.get_desklets() for d in desklets: do = desklets[d] print do def __print_local_controls(self): print "Local controls" controls = self.__assembly.get_local_controls() for d in controls: do = controls[d] print do def __print_remote_controls(self): print "Remote controls" self.__assembly.start(True) controls = self.__assembly.get_remote_controls() for d in controls: do = controls[d] print do def __print_controls(self): print "All controls" controls = self.__assembly.get_controls() for d in controls: do = controls[d] print do def __install(self, name): print "Install ", name d = self.__assembly.get_desklet(name) if d is not None: d.install_newest_version() else: print "No desklet with the name ", name def __install_http(self, url): print "Install from", url d = self.__assembly.install_http(url) print "Install http done" def __install_control(self, name): print "Install ", name d = self.__assembly.get_control(name) if d is not None: d.install_newest_version() else: print "No control with the name ", name def __remove(self, name): print "Remove ", name d = self.__assembly.get_desklet(name) if d is not None: d.remove() else: print "No desklet with the name ", name def __remove_control(self, name): print "Remove ", name d = self.__assembly.get_control(name) if d is not None: d.remove() else: print "No control with the name ", name
# ross: eger bi set bi robot icin digerlerinden daha buyukse onu daha fazla sample etmek lazim (epsilon degisiyosa her sample'da, tekrar tekrar sample'a gerek yok). bu metric ne? nasil estimate ederiz? kullanma policysi ne? --> bunu dusun.. dene.. multistep acisindan da dusun.. # ross: goalset chomp kullanabilir miyiz? import numpy as np from tsr import GraspTSR, LookAtTSR from Assembly import Assembly envfile = 'environments/chair.env.xml' assembly = Assembly(object_names=['fastener', 'side', 'back'], object_relative_poses={ 'fastener': np.array([[1., 0., 0., -0.09], [0., 1., 0., -0.07], [0., 0., 1., 0.28], [0., 0., 0., 1.]]), 'side': np.array([[1., 0., 0., 0.], [0., 1., 0., 0.], [0., 0., 1., 0.], [0., 0., 0., 1.]]), 'back': np.array([[1., 0., 0., -0.09], [0., 1., 0., 0.095], [0., 0., 1., 0.15], [0., 0., 0., 1.]]), }, fixed_objects=[]) assembly_pose = np.array([[1.0, 0.0, 0.0, -1.50], [0.0, 1.0, 0.0, 0.00], [0.0, 0.0, 1.0, 0.10], [0.0, 0.0, 0.0, 1.0]]) task_regions = { 'side': GraspTSR( T0_w_obj='side', Tw_e_list=[