forked from chunfuchen/qiskit-chemistry
-
Notifications
You must be signed in to change notification settings - Fork 0
/
command_line.py
71 lines (59 loc) · 2.58 KB
/
command_line.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# -*- coding: utf-8 -*-
# Copyright 2018 IBM.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# =============================================================================
import argparse
import json
import logging
from qiskit_aqua_chemistry import AquaChemistry
from qiskit_aqua_chemistry._logging import build_logging_config,set_logger_config
from qiskit_aqua_chemistry.preferences import Preferences
def main():
parser = argparse.ArgumentParser(description='Qiskit Aqua Chemistry Command Line Tool')
parser.add_argument('input',
metavar='input',
help='Chemistry input file or saved JSON input file')
group = parser.add_mutually_exclusive_group(required=False)
group.add_argument('-o',
metavar='output',
help='Algorithm Results Output file name')
group.add_argument('-jo',
metavar='json output',
help='Algorithm JSON Output file name')
args = parser.parse_args()
preferences = Preferences()
if preferences.get_logging_config() is None:
logging_config = build_logging_config(['qiskit_aqua_chemistry', 'qiskit_aqua'], logging.INFO)
preferences.set_logging_config(logging_config)
preferences.save()
set_logger_config(preferences.get_logging_config())
solver = AquaChemistry()
# check to see if input is json file
params = None
try:
with open(args.input) as json_file:
params = json.load(json_file)
except Exception as e:
pass
if params is not None:
solver.run_algorithm_from_json(params, args.o)
else:
if args.jo is not None:
solver.run_drive_to_jsonfile(args.input, args.jo)
else:
result = solver.run(args.input, args.o)
if result is not None and 'printable' in result:
print('\n\n--------------------------------- R E S U L T ------------------------------------\n')
for line in result['printable']:
print(line)