Closed ajavadia closed 5 years ago
You want to have a doc that includes a list of requirements? That doesn't seem like something that should be written in a doc, it will go stale very quickly. It's also a really big list (mostly because of aqua):
qiskit-terra==0.8.0 Software for developing quantum computing programs
├── jsonschema<2.7,>=2.6 An implementation of JSON Schema validation for Python
├── marshmallow-polyfield<4,>=3.2 An unofficial extension to Marshmallow to allow for polymorphic fields
│ └── marshmallow>=2.0.0 A lightweight library for converting complex datatypes to and from native Python datatypes.
├── marshmallow<3,>=2.17.0 A lightweight library for converting complex datatypes to and from native Python datatypes.
├── networkx>=2.2 Python package for creating and manipulating graphs and networks
│ └── decorator>=4.3.0 Better living through Python with decorators
├── numpy>=1.13 NumPy is the fundamental package for array computing with Python.
├── pillow>=4.2.1 Python Imaging Library (Fork)
├── ply>=3.10 Python Lex & Yacc
├── psutil>=5 Cross-platform lib for process and system monitoring in Python.
├── pylatexenc>=1.4 Python library for encoding unicode to latex and for parsing LaTeX to generate unicode text
├── scipy>=1.0 SciPy: Scientific Library for Python
│ └── numpy>=1.8.2 NumPy is the fundamental package for array computing with Python.
└── sympy>=1.3 Computer algebra system (CAS) in Python
└── mpmath>=0.19 Python library for arbitrary-precision floating-point arithmetic
qiskit-aer==0.2.0 Qiskit Aer - High performance simulators for Qiskit
└── numpy>=1.13 NumPy is the fundamental package for array computing with Python.
qiskit-ibmq-provider==0.2.1 Qiskit provider for accessing the quantum devices and simulators at IBMQ
├── qiskit-terra>=0.8.0 Software for developing quantum computing programs
├── requests-ntlm>=1.1.0 This package allows for HTTP NTLM authentication using the requests library.
│ ├── cryptography>=1.3 cryptography is a package which provides cryptographic recipes and primitives to Python developers.
│ │ ├── asn1crypto>=0.21.0 Fast ASN.1 parser and serializer with definitions for private keys, public keys, certificates, CRL, OCSP, CMS, PKCS#3, PKCS#7, PKCS#8, PKCS#12, PKCS#5, X.509 and TSP
│ │ ├── cffi!=1.11.3,>=1.8 Foreign Function Interface for Python calling C code.
│ │ │ └── pycparser C parser in Python
│ │ └── six>=1.4.1 Python 2 and 3 compatibility utilities
│ ├── ntlm-auth>=1.0.2 Creates NTLM authentication structures
│ └── requests>=2.0.0 Python HTTP for Humans.
│ ├── certifi>=2017.4.17 Python package for providing Mozilla's CA Bundle.
│ ├── chardet<3.1.0,>=3.0.2 Universal encoding detector for Python 2 and 3
│ ├── idna<2.9,>=2.5 Internationalized Domain Names in Applications (IDNA)
│ └── urllib3<1.25,>=1.21.1 HTTP library with thread-safe connection pooling, file post, and more.
├── requests>=2.19 Python HTTP for Humans.
│ ├── certifi>=2017.4.17 Python package for providing Mozilla's CA Bundle.
│ ├── chardet<3.1.0,>=3.0.2 Universal encoding detector for Python 2 and 3
│ ├── idna<2.9,>=2.5 Internationalized Domain Names in Applications (IDNA)
│ └── urllib3<1.25,>=1.21.1 HTTP library with thread-safe connection pooling, file post, and more.
└── websockets<8,>=7 An implementation of the WebSocket Protocol (RFC 6455 & 7692)
qiskit-ignis==0.1.1 Qiskit tools for quantum information science
├── numpy>=1.13 NumPy is the fundamental package for array computing with Python.
├── qiskit-terra>=0.8.0 Software for developing quantum computing programs
└── scipy!=0.19.1,>=0.19 SciPy: Scientific Library for Python
└── numpy>=1.8.2 NumPy is the fundamental package for array computing with Python.
qiskit-aqua==0.5.0 Qiskit Aqua: An extensible library of quantum computing algorithms
├── cvxopt Convex optimization package
├── dlx Implementation of Donald Knuth's Dancing Links algorithm.
├── docplex The IBM Decision Optimization CPLEX Modeling for Python
│ ├── docloud>=1.0.315 The IBM Decision Optimization on Cloud Python client
│ │ ├── requests Python HTTP for Humans.
│ │ │ ├── certifi>=2017.4.17 Python package for providing Mozilla's CA Bundle.
│ │ │ ├── chardet<3.1.0,>=3.0.2 Universal encoding detector for Python 2 and 3
│ │ │ ├── idna<2.9,>=2.5 Internationalized Domain Names in Applications (IDNA)
│ │ │ └── urllib3<1.25,>=1.21.1 HTTP library with thread-safe connection pooling, file post, and more.
│ │ └── six Python 2 and 3 compatibility utilities
│ ├── requests Python HTTP for Humans.
│ │ ├── certifi>=2017.4.17 Python package for providing Mozilla's CA Bundle.
│ │ ├── chardet<3.1.0,>=3.0.2 Universal encoding detector for Python 2 and 3
│ │ ├── idna<2.9,>=2.5 Internationalized Domain Names in Applications (IDNA)
│ │ └── urllib3<1.25,>=1.21.1 HTTP library with thread-safe connection pooling, file post, and more.
│ └── six Python 2 and 3 compatibility utilities
├── fastdtw Dynamic Time Warping (DTW) algorithm with an O(N) time and memory complexity.
│ └── numpy NumPy is the fundamental package for array computing with Python.
├── jsonschema<2.7,>=2.6 An implementation of JSON Schema validation for Python
├── numpy>=1.13 NumPy is the fundamental package for array computing with Python.
├── psutil>=5 Cross-platform lib for process and system monitoring in Python.
├── pyeda Python Electronic Design Automation
├── qiskit-ignis<0.2,>=0.1.0 Qiskit tools for quantum information science
├── qiskit-terra<0.9,>=0.8.0 Software for developing quantum computing programs
├── quandl Package for quandl API access
│ ├── inflection>=0.3.1 A port of Ruby on Rails inflector to Python
│ ├── more-itertools<=5.0.0 More routines for operating on iterables, beyond itertools
│ │ └── six<2.0.0,>=1.0.0 Python 2 and 3 compatibility utilities
│ ├── ndg-httpsclient Provides enhanced HTTPS support for httplib and urllib2 using PyOpenSSL
│ │ ├── PyOpenSSL Python wrapper module around the OpenSSL library
│ │ │ ├── cryptography>=2.3 cryptography is a package which provides cryptographic recipes and primitives to Python developers.
│ │ │ │ ├── asn1crypto>=0.21.0 Fast ASN.1 parser and serializer with definitions for private keys, public keys, certificates, CRL, OCSP, CMS, PKCS#3, PKCS#7, PKCS#8, PKCS#12, PKCS#5, X.509 and TSP
│ │ │ │ ├── cffi!=1.11.3,>=1.8 Foreign Function Interface for Python calling C code.
│ │ │ │ │ └── pycparser C parser in Python
│ │ │ │ └── six>=1.4.1 Python 2 and 3 compatibility utilities
│ │ │ └── six>=1.5.2 Python 2 and 3 compatibility utilities
│ │ └── pyasn1>=0.1.1 ASN.1 types and codecs
│ ├── numpy>=1.8 NumPy is the fundamental package for array computing with Python.
│ ├── pandas>=0.14 Powerful data structures for data analysis, time series, and statistics
│ │ ├── numpy>=1.12.0 NumPy is the fundamental package for array computing with Python.
│ │ ├── python-dateutil>=2.5.0 Extensions to the standard Python datetime module
│ │ │ └── six>=1.5 Python 2 and 3 compatibility utilities
│ │ └── pytz>=2011k World timezone definitions, modern and historical
│ ├── pyOpenSSL Python wrapper module around the OpenSSL library
│ │ ├── cryptography>=2.3 cryptography is a package which provides cryptographic recipes and primitives to Python developers.
│ │ │ ├── asn1crypto>=0.21.0 Fast ASN.1 parser and serializer with definitions for private keys, public keys, certificates, CRL, OCSP, CMS, PKCS#3, PKCS#7, PKCS#8, PKCS#12, PKCS#5, X.509 and TSP
│ │ │ ├── cffi!=1.11.3,>=1.8 Foreign Function Interface for Python calling C code.
│ │ │ │ └── pycparser C parser in Python
│ │ │ └── six>=1.4.1 Python 2 and 3 compatibility utilities
│ │ └── six>=1.5.2 Python 2 and 3 compatibility utilities
│ ├── pyasn1 ASN.1 types and codecs
│ ├── python-dateutil Extensions to the standard Python datetime module
│ │ └── six>=1.5 Python 2 and 3 compatibility utilities
│ ├── requests>=2.7.0 Python HTTP for Humans.
│ │ ├── certifi>=2017.4.17 Python package for providing Mozilla's CA Bundle.
│ │ ├── chardet<3.1.0,>=3.0.2 Universal encoding detector for Python 2 and 3
│ │ ├── idna<2.9,>=2.5 Internationalized Domain Names in Applications (IDNA)
│ │ └── urllib3<1.25,>=1.21.1 HTTP library with thread-safe connection pooling, file post, and more.
│ └── six Python 2 and 3 compatibility utilities
├── scikit-learn>=0.20.0 A set of python modules for machine learning and data mining
│ ├── joblib>=0.11 Lightweight pipelining: using Python functions as pipeline jobs.
│ ├── numpy>=1.11.0 NumPy is the fundamental package for array computing with Python.
│ └── scipy>=0.17.0 SciPy: Scientific Library for Python
│ └── numpy>=1.8.2 NumPy is the fundamental package for array computing with Python.
├── scipy!=0.19.1,>=0.19 SciPy: Scientific Library for Python
│ └── numpy>=1.8.2 NumPy is the fundamental package for array computing with Python.
├── setuptools>=40.1.0 Easily download, build, install, upgrade, and uninstall Python packages
├── sympy>=1.3 Computer algebra system (CAS) in Python
│ └── mpmath>=0.19 Python library for arbitrary-precision floating-point arithmetic
└── torch Tensors and Dynamic neural networks in Python with strong GPU acceleration
└── numpy NumPy is the fundamental package for array computing with Python.
There are overlaps but I only removed the qiskit sub-dependencies when there is a cross project dependency (ie ignis depends on terra). It's also worth pointing out that pip still doesn't have a dep solver so overlaps are a potential point of concern with a list this big.
Yeah you're right. This is going to be hard to maintain. This was an external request, but I now agree that the docs aren't the right place. Something like pydeptree
might be an option
We should have a central place in the documentation that lists all the packages on which Qiskit depends on. This info should be consolidated from the
requirements.txt
files of terra, ignis, aer, aqua. It should be updated with each release.The
requirements-dev.txt
files list the extra dependencies needed for developers of qiskit, we can list those separately.