def body(self,parent,options):
     preferences = Preferences()
     logging_config = preferences.get_logging_config()
     if logging_config is not None:
         set_logger_config(logging_config)
     
     uipreferences = UIPreferences()
     populate = uipreferences.get_populate_defaults(True)
     self._populateDefaults.set(1 if populate else 0)
     
     qiskitGroup = ttk.LabelFrame(parent,
                                  text='QISKit Configuration',
                                  padding=(6,6,6,6),
                                  borderwidth=4,
                                  relief=tk.GROOVE)
     qiskitGroup.grid(padx=(7,7),pady=6,row=0, column=0,sticky='nsew')
     self._qconfigview = QconfigView(qiskitGroup)
     
     defaultsGroup = ttk.LabelFrame(parent,
                                  text='Defaults',
                                  padding=(6,6,6,6),
                                  borderwidth=4,
                                  relief=tk.GROOVE)
     defaultsGroup.grid(padx=(7,7),pady=6,row=1, column=0,sticky='nsw')
     defaultsGroup.columnconfigure(1,pad=7)
     
     self._checkButton = ttk.Checkbutton(defaultsGroup,
                                         text="Populate on file new/open",
                                         variable=self._populateDefaults)
     self._checkButton.grid(row=0, column=1,sticky='nsw')
     
     loggingGroup = ttk.LabelFrame(parent,
                                  text='Logging Configuration',
                                  padding=(6,6,6,6),
                                  borderwidth=4,
                                  relief=tk.GROOVE)
     loggingGroup.grid(padx=(7,7),pady=6,row=2, column=0,sticky='nsw')
     loggingGroup.columnconfigure(1,pad=7)
     
     levels = get_logger_levels_for_names(['qiskit_acqua'])
     loglevel = levels[0]
     
     ttk.Label(loggingGroup,
               text="Level:",
               borderwidth=0,
               anchor=tk.E).grid(row=0, column=0,sticky='nsew')
     self._levelCombo = ttk.Combobox(loggingGroup,
                               exportselection=0,
                               state='readonly',
                               values=list(PreferencesDialog._LOG_LEVELS.values()))
     index = list(PreferencesDialog._LOG_LEVELS.keys()).index(loglevel)
     self._levelCombo.current(index)
     self._levelCombo.grid(row=0, column=1,sticky='nsw')
     
     self.entry = self._qconfigview.initial_focus
     return self.entry # initial focus
Exemple #2
0
def main():
    parser = argparse.ArgumentParser(
        description='QISKit ACQUA Command Line Tool')
    parser.add_argument('input',
                        metavar='input',
                        help='Algorithm JSON input file')
    parser.add_argument('-jo',
                        metavar='output',
                        help='Algorithm JSON output file name',
                        required=False)

    args = parser.parse_args()

    preferences = Preferences()
    if preferences.get_logging_config() is None:
        logging_config = build_logging_config(['qiskit_acqua'], logging.INFO)
        preferences.set_logging_config(logging_config)
        preferences.save()

    set_logger_config(preferences.get_logging_config())

    params = None
    with open(args.input) as json_file:
        params = json.load(json_file)

    ret = run_algorithm(params, None, True)

    if args.jo is not None:
        with open(args.jo, 'w') as f:
            print('{}'.format(ret), file=f)
    else:
        convert_json_to_dict(ret)
        print(
            '\n\n--------------------------------- R E S U L T ------------------------------------\n'
        )
        if isinstance(ret, dict):
            for k, v in ret.items():
                print("'{}': {}".format(k, v))
        else:
            print(ret)
Exemple #3
0
    def body(self, parent, options):
        preferences = Preferences()
        logging_config = preferences.get_logging_config()
        if logging_config is not None:
            set_logger_config(logging_config)

        self._apiToken.set(preferences.get_token(''))
        self._url.set(preferences.get_url(Preferences.URL))
        self._hub.set(preferences.get_hub(''))
        self._group.set(preferences.get_group(''))
        self._project.set(preferences.get_project(''))
        self._config_path.set(preferences.get_qconfig_path(''))
        uipreferences = UIPreferences()
        populate = uipreferences.get_populate_defaults(True)
        self._populateDefaults.set(1 if populate else 0)

        qiskitGroup = ttk.LabelFrame(parent,
                                     text='QISKit Configuration',
                                     padding=(6, 6, 6, 6),
                                     borderwidth=4,
                                     relief=tk.GROOVE)
        qiskitGroup.grid(padx=(7, 7), pady=6, row=0, column=0, sticky='nsew')
        qiskitGroup.columnconfigure(0, weight=1)
        qiskitGroup.columnconfigure(1, pad=7)
        ttk.Label(qiskitGroup, text="Token:", borderwidth=0,
                  anchor=tk.E).grid(row=0, column=0, sticky='nsew')
        self._apiTokenEntry = EntryCustom(qiskitGroup,
                                          textvariable=self._apiToken,
                                          width=120,
                                          state=tk.NORMAL)
        self._apiTokenEntry.grid(row=0, column=1, sticky='nsew')
        ttk.Label(qiskitGroup, text="URL:", borderwidth=0,
                  anchor=tk.E).grid(row=1, column=0, sticky='nsew')
        self._urlEntry = EntryCustom(qiskitGroup,
                                     textvariable=self._url,
                                     width=60,
                                     state=tk.NORMAL)
        self._urlEntry.grid(row=1, column=1, sticky='nsw')
        ttk.Label(qiskitGroup, text="Hub:", borderwidth=0,
                  anchor=tk.E).grid(row=2, column=0, sticky='nsew')
        self._hubEntry = EntryCustom(qiskitGroup,
                                     textvariable=self._hub,
                                     state=tk.NORMAL)
        self._hubEntry.grid(row=2, column=1, sticky='nsw')
        ttk.Label(qiskitGroup, text="Group:", borderwidth=0,
                  anchor=tk.E).grid(row=3, column=0, sticky='nsew')
        self._groupEntry = EntryCustom(qiskitGroup,
                                       textvariable=self._group,
                                       state=tk.NORMAL)
        self._groupEntry.grid(row=3, column=1, sticky='nsw')
        ttk.Label(qiskitGroup, text="Project:", borderwidth=0,
                  anchor=tk.E).grid(row=4, column=0, sticky='nsew')
        self._projectEntry = EntryCustom(qiskitGroup,
                                         textvariable=self._project,
                                         state=tk.NORMAL)
        self._projectEntry.grid(row=4, column=1, sticky='nsw')
        ttk.Label(qiskitGroup, text="Path:", borderwidth=0,
                  anchor=tk.E).grid(row=5, column=0, sticky='nsew')
        ttk.Label(qiskitGroup,
                  textvariable=self._config_path,
                  borderwidth=0,
                  anchor=tk.W).grid(row=5, column=1, sticky='nsw')

        defaultsGroup = ttk.LabelFrame(parent,
                                       text='Defaults',
                                       padding=(6, 6, 6, 6),
                                       borderwidth=4,
                                       relief=tk.GROOVE)
        defaultsGroup.grid(padx=(7, 7), pady=6, row=1, column=0, sticky='nsw')
        defaultsGroup.columnconfigure(1, pad=7)

        self._checkButton = ttk.Checkbutton(defaultsGroup,
                                            text="Populate on file new/open",
                                            variable=self._populateDefaults)
        self._checkButton.grid(row=0, column=1, sticky='nsw')

        loggingGroup = ttk.LabelFrame(parent,
                                      text='Logging Configuration',
                                      padding=(6, 6, 6, 6),
                                      borderwidth=4,
                                      relief=tk.GROOVE)
        loggingGroup.grid(padx=(7, 7), pady=6, row=2, column=0, sticky='nsw')
        loggingGroup.columnconfigure(1, pad=7)

        levels = get_logger_levels_for_names(['qiskit_acqua'])
        loglevel = levels[0]

        ttk.Label(loggingGroup, text="Level:", borderwidth=0,
                  anchor=tk.E).grid(row=0, column=0, sticky='nsew')
        self._levelCombo = ttk.Combobox(
            loggingGroup,
            exportselection=0,
            state='readonly',
            values=list(PreferencesDialog._LOG_LEVELS.values()))
        index = list(PreferencesDialog._LOG_LEVELS.keys()).index(loglevel)
        self._levelCombo.current(index)
        self._levelCombo.grid(row=0, column=1, sticky='nsw')

        self._label_text = tk.StringVar()
        self._label = ttk.Label(parent,
                                foreground='red',
                                textvariable=self._label_text,
                                borderwidth=0)
        self._label.grid(padx=(7, 7), pady=6, row=2, column=0)
        self._label.grid_remove()

        self.entry = self._apiTokenEntry
        return self.entry  # initial focus
Exemple #4
0
    def _create_pane(self):
        label_font = font.nametofont('TkHeadingFont').copy()
        label_font.configure(size=12, weight='bold')
        ttk.Style().configure('TLabel', borderwidth=1, relief='solid')
        style = ttk.Style()
        style.configure('Title.TLabel', borderwidth=0, anchor=tk.CENTER)
        label = ttk.Label(self,
                          style='Title.TLabel',
                          padding=(5, 5, 5, 5),
                          textvariable=self._controller._title)
        label['font'] = label_font
        label.pack(side=tk.TOP, expand=tk.NO, fill=tk.X)
        main_pane = ttk.PanedWindow(self, orient=tk.VERTICAL)
        main_pane.pack(expand=tk.YES, fill=tk.BOTH)
        top_pane = ttk.PanedWindow(main_pane, orient=tk.HORIZONTAL)
        top_pane.pack(expand=tk.YES, fill=tk.BOTH)
        main_pane.add(top_pane)

        self._controller._sectionsView = SectionsView(self._controller,
                                                      top_pane)
        self._controller._sectionsView.pack(expand=tk.YES, fill=tk.BOTH)
        top_pane.add(self._controller._sectionsView, weight=1)

        main_container = tk.Frame(top_pane)
        main_container.pack(expand=tk.YES, fill=tk.BOTH)
        style = ttk.Style()
        style.configure('PropViewTitle.TLabel',
                        borderwidth=1,
                        relief=tk.RIDGE,
                        anchor=tk.CENTER)
        label = ttk.Label(main_container,
                          style='PropViewTitle.TLabel',
                          padding=(5, 5, 5, 5),
                          textvariable=self._controller._sectionView_title)
        label['font'] = label_font

        label.pack(side=tk.TOP, expand=tk.NO, fill=tk.X)
        container = tk.Frame(main_container)
        container.pack(side=tk.BOTTOM, expand=tk.YES, fill=tk.BOTH)
        container.grid_rowconfigure(0, weight=1)
        container.grid_columnconfigure(0, weight=1)
        self._controller._emptyView = EmptyView(container)
        self._controller._emptyView.grid(row=0, column=0, sticky='nsew')

        self._controller._textView = SectionTextView(self._controller,
                                                     container)
        self._controller._textView.grid(row=0, column=0, sticky='nsew')

        self._controller._propertiesView = SectionPropertiesView(
            self._controller, container)
        self._controller._propertiesView.grid(row=0, column=0, sticky='nsew')
        self._controller._emptyView.tkraise()
        top_pane.add(main_container, weight=1)

        self._controller._outputView = ThreadSafeOutputView(main_pane)
        self._controller._outputView.pack(expand=tk.YES, fill=tk.BOTH)
        main_pane.add(self._controller._outputView)

        # redirect output
        sys.stdout = self._controller._outputView
        sys.stderr = self._controller._outputView
        # reupdate logging after redirect
        preferences = Preferences()
        config = preferences.get_logging_config()
        if config is not None:
            set_logger_config(config)

        self.update_idletasks()
        self._controller._sectionsView.show_add_button(False)
        self._controller._sectionsView.show_remove_button(False)
        self._controller._sectionsView.show_defaults_button(False)
        self._controller._emptyView.set_toolbar_size(
            self._controller._sectionsView.get_toolbar_size())