|
12 | 12 | from distutils.extension import Extension
|
13 | 13 | from distutils.command.build_ext import build_ext
|
14 | 14 |
|
15 |
| - |
16 |
| - |
17 |
| -descriptionTxt = """\ |
18 |
| -Gate set tomography (GST) is a quantum tomography protocol that provides full characterization of a quantum logic device |
19 |
| -(e.g. a qubit). GST estimates a set of quantum logic gates and (simultaneously) the associated state preparation and |
20 |
| -measurement (SPAM) operations. GST is self-calibrating. This eliminates a key limitation of traditional quantum state |
21 |
| -and process tomography, which characterize either states (assuming perfect processes) or processes (assuming perfect |
22 |
| -state preparation and measurement), but not both together. Compared with benchmarking protocols such as randomized |
23 |
| -benchmarking, GST provides much more detailed and accurate information about the gates, but demands more data. The |
24 |
| -primary downside of GST has been its complexity. Whereas benchmarking and state/process tomography data can be analyzed |
25 |
| -with relatively simple algorithms, GST requires more complex algorithms and more fine-tuning (linear GST is an exception |
26 |
| -that can be implemented easily). pyGSTi addresses and eliminates this obstacle by providing a fully-featured, publicly |
27 |
| -available implementation of GST in the Python programming language. |
28 |
| -
|
29 |
| -The primary goals of the pyGSTi project are to: |
30 |
| -
|
31 |
| -- provide efficient and robust implementations of Gate Set Tomography algorithms; |
32 |
| -- allow straightforward interoperability with other software; |
33 |
| -- provide a powerful high-level interface suited to inexperienced programmers, so that |
34 |
| - common GST tasks can be performed using just one or two lines of code; |
35 |
| -- use modular design to make it easy for users to modify, customize, and extend GST functionality. |
36 |
| -""" |
37 |
| - |
38 |
| -# Extra requirements |
39 |
| -extras = { |
40 |
| - 'pytorch' : ['torch'], |
41 |
| - 'diamond_norm': [ |
42 |
| - 'cvxopt', |
43 |
| - 'cvxpy' |
44 |
| - ], |
45 |
| - 'memory_profiling': ['psutil'], |
46 |
| - 'multiprocessor': ['mpi4py'], |
47 |
| - 'evolutionary_optimization': ['deap'], |
48 |
| - 'report_pickling': ['pandas'], |
49 |
| - 'report_pdf_figures': ['matplotlib'], |
50 |
| - 'html_reports': ['jinja2', 'MarkupSafe'], |
51 |
| - 'notebooks': [ |
52 |
| - 'ipython', |
53 |
| - 'notebook', |
54 |
| - 'jupyter_server' |
55 |
| - ], |
56 |
| - 'mongodb': ['pymongo'], |
57 |
| - 'msgpack': ['msgpack'], |
58 |
| - 'extensions': ['cython'], |
59 |
| - 'linting': [ |
60 |
| - 'autopep8', |
61 |
| - 'flake8' |
62 |
| - ], |
63 |
| - 'interpygate': ['csaps'], |
64 |
| - 'testing': [ |
65 |
| - 'pytest', |
66 |
| - 'pytest-xdist', |
67 |
| - 'pytest-cov', |
68 |
| - 'nbval', |
69 |
| - 'csaps', |
70 |
| - 'cvxopt', |
71 |
| - 'cvxpy', |
72 |
| - 'cython', |
73 |
| - 'matplotlib', |
74 |
| - 'mpi4py', |
75 |
| - 'msgpack', |
76 |
| - 'packaging', |
77 |
| - 'pandas', |
78 |
| - 'psutil', |
79 |
| - 'zmq', |
80 |
| - 'jinja2', |
81 |
| - 'seaborn', |
82 |
| - 'scipy', |
83 |
| - 'ply', |
84 |
| - 'cirq-core', |
85 |
| - 'notebook', |
86 |
| - 'ipython', |
87 |
| - 'jupyter_server', |
88 |
| - 'torch' |
89 |
| - ] |
90 |
| -} |
91 |
| - |
92 |
| -# Add `complete' target, which will install all extras listed above |
93 |
| -extras['complete'] = list({pkg for req in extras.values() for pkg in req}) |
94 |
| - |
95 |
| -# Add `no_mpi' target, identical to `complete' target but without mpi4py, |
96 |
| -# which is unavailable in some common environments. |
97 |
| -extras['no_mpi'] = [e for e in extras['complete'] if e != 'mpi4py'] |
98 |
| - |
99 |
| -# Add testing_no_cython target, identical to `testing` but no cython |
100 |
| -extras['testing_no_cython'] = [e for e in extras['testing'] if e != 'cython'] |
101 |
| - |
102 |
| - |
103 | 15 | # Configure setuptools_scm to build a custom version (for more info,
|
104 | 16 | # see https://stackoverflow.com/a/78657279 and https://setuptools-scm.readthedocs.io/en/latest/extending)
|
105 | 17 | # If on a clean release, it uses no local scheme
|
@@ -150,10 +62,8 @@ def build_extensions(self):
|
150 | 62 |
|
151 | 63 | def setup_with_extensions(extensions=None):
|
152 | 64 | setup(
|
153 |
| - long_description=descriptionTxt, |
154 | 65 | use_scm_version={'version_scheme': 'no-guess-dev', 'version_file': "pygsti/_version.py", 'local_scheme': custom_version},
|
155 | 66 | cmdclass={'build_ext': build_ext_compiler_check},
|
156 |
| - extras_require=extras, |
157 | 67 | ext_modules=extensions or [],
|
158 | 68 | packages=find_packages(),
|
159 | 69 | package_data={
|
|
0 commit comments