qiskit/setup.py

58 lines
1.8 KiB
Python
Raw Normal View History

Revise travis configuration, using cmake * Revise the travis configuration for using `cmake` for the several targets, and use "stages" instead of parallel jobs: * define three stages that are executed if the previous one suceeds: 1. "linter and pure python test": executes the linter and a test without compiling the binaries, with the idea of providing quick feedback for PRs. 2. "test": launch the test, including the compilation of binaries, under GNU/Linux Python 3.6 and 3.6; and osx Python 3.6. 3. "deploy doc and pypi": for the stable branch, deploy the docs to the landing page, and when using a specific commit message, build the GNU/Linux and osx wheels, uploading them to test.pypi. * use yaml anchors and definitions to avoid repeating code (and working around travis limitations). * Modify the `cmake``configuration to accomodate the stages flow: * allow conditional creation of compilation and QA targets, mainly for saving some time in some jobs. * move the tests to `cmake/tests.cmake`. * Update the tests: * add a `requires_qe_access` decorator that retrieves QE_TOKEN and QE_URL and appends them to the parameters in an unified manner. * add an environment variable `SKIP_ONLINE_TESTS` that allows to skip the tests that need network access. * replace `TRAVIS_FORK_PULL_REQUEST` with the previous two mechanisms, adding support for AppVeyor as well. * fix a problem with matplotlib under osx headless, effectively skipping `test_visualization.py` during the travis osx jobs. * Move Sphinx to `requirements-dev.txt`.
2018-02-13 05:11:28 +08:00
# -*- coding: utf-8 -*-
# Copyright 2017, IBM.
Revise travis configuration, using cmake * Revise the travis configuration for using `cmake` for the several targets, and use "stages" instead of parallel jobs: * define three stages that are executed if the previous one suceeds: 1. "linter and pure python test": executes the linter and a test without compiling the binaries, with the idea of providing quick feedback for PRs. 2. "test": launch the test, including the compilation of binaries, under GNU/Linux Python 3.6 and 3.6; and osx Python 3.6. 3. "deploy doc and pypi": for the stable branch, deploy the docs to the landing page, and when using a specific commit message, build the GNU/Linux and osx wheels, uploading them to test.pypi. * use yaml anchors and definitions to avoid repeating code (and working around travis limitations). * Modify the `cmake``configuration to accomodate the stages flow: * allow conditional creation of compilation and QA targets, mainly for saving some time in some jobs. * move the tests to `cmake/tests.cmake`. * Update the tests: * add a `requires_qe_access` decorator that retrieves QE_TOKEN and QE_URL and appends them to the parameters in an unified manner. * add an environment variable `SKIP_ONLINE_TESTS` that allows to skip the tests that need network access. * replace `TRAVIS_FORK_PULL_REQUEST` with the previous two mechanisms, adding support for AppVeyor as well. * fix a problem with matplotlib under osx headless, effectively skipping `test_visualization.py` during the travis osx jobs. * Move Sphinx to `requirements-dev.txt`.
2018-02-13 05:11:28 +08:00
#
# This source code is licensed under the Apache License, Version 2.0 found in
# the LICENSE.txt file in the root directory of this source tree.
Revise travis configuration, using cmake * Revise the travis configuration for using `cmake` for the several targets, and use "stages" instead of parallel jobs: * define three stages that are executed if the previous one suceeds: 1. "linter and pure python test": executes the linter and a test without compiling the binaries, with the idea of providing quick feedback for PRs. 2. "test": launch the test, including the compilation of binaries, under GNU/Linux Python 3.6 and 3.6; and osx Python 3.6. 3. "deploy doc and pypi": for the stable branch, deploy the docs to the landing page, and when using a specific commit message, build the GNU/Linux and osx wheels, uploading them to test.pypi. * use yaml anchors and definitions to avoid repeating code (and working around travis limitations). * Modify the `cmake``configuration to accomodate the stages flow: * allow conditional creation of compilation and QA targets, mainly for saving some time in some jobs. * move the tests to `cmake/tests.cmake`. * Update the tests: * add a `requires_qe_access` decorator that retrieves QE_TOKEN and QE_URL and appends them to the parameters in an unified manner. * add an environment variable `SKIP_ONLINE_TESTS` that allows to skip the tests that need network access. * replace `TRAVIS_FORK_PULL_REQUEST` with the previous two mechanisms, adding support for AppVeyor as well. * fix a problem with matplotlib under osx headless, effectively skipping `test_visualization.py` during the travis osx jobs. * Move Sphinx to `requirements-dev.txt`.
2018-02-13 05:11:28 +08:00
from setuptools import setup, find_packages
requirements = [
"jsonschema>=2.6,<2.7",
"marshmallow>=2.17.0,<3",
Add auto-validated objects machinery (#1249) * Add skeleton models and schemas in qiskit.models Add `qiskit.models`, with the basis for defining objects (models) that are used for interfacing with terra and formally defined in the specs (schema). The classes in `base` are meant to be subclasses for each entity - an example is included in `backend_status`. * Update requirements * Add tests for qiskit.models * Adding validator decorator and moving to Marshmallow 2 (#7) * Adding validator decorator and moving to Marshmallow 2 * Adding docstrings * Documenting returns * Feature/polyfields (#8) * Moving validation infrastructure to qiskit.validation * Providing a PolyField basic implementation * The decorators raises when trying to bind the same schema twice. * Better PolyField building blocks * Move fields to own file, tweak and document Move the Fields related code to `qiskit.validation.fields`, for clarity. Update `BasePolyField` and `TryFrom` with tweaks to match the expected functionality, linter and add documentation. Add tests, reorganizing them slightly into TestCases. * Revise validation documentation * Add ByAttribute polymorphic field, fixes Add the `ByAttribute` polymorphic field, allowing to chose an schema based on the presence of an attribute. Fix the `to_dict_selector`s in order to use inspection on the Models directly. Add tests. * Remove BackendStatusSchema Remove the `BackendStatusSchema` implementation, in order to introduce it in future PRs along with its usage. * Allow for top-level validation in instantiation (#9) * Allow for top-level validation in instantiation Update the instantation of a `Model` from kwargs in order to perform a validation of the regular, top-level fields but not full validation of the compound fields via a `schemalite` attribute. * Update top-level validation during instantiation Fix top-level validation during instantiation, making it take into account other types of fields. Update tests and style and naming tweaks. * Rename test_models to test_validation For consistency with the module name `qiskit.validation`. * Updates to validation.base from review
2018-11-14 18:40:41 +08:00
"marshmallow_polyfield>=3.2,<4",
"networkx>=2.2",
"numpy>=1.13,<1.16",
"pillow>=4.2.1",
2018-06-13 22:21:15 +08:00
"ply>=3.10",
"psutil>=5",
"scipy>=0.19,!=0.19.1",
"sympy>=1.3"
]
setup(
name="qiskit-terra",
2018-12-19 21:48:02 +08:00
version="0.8.0",
description="Software for developing quantum computing programs",
long_description="""Terra provides the foundations for Qiskit. It allows the user to write
quantum circuits easily, and takes care of the constraints of real hardware.""",
url="https://github.com/Qiskit/qiskit-terra",
author="Qiskit Development Team",
author_email="qiskit@qiskit.org",
license="Apache 2.0",
classifiers=[
"Environment :: Console",
"License :: OSI Approved :: Apache Software License",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"Operating System :: Microsoft :: Windows",
"Operating System :: MacOS",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Topic :: Scientific/Engineering",
],
keywords="qiskit sdk quantum",
packages=find_packages(exclude=['test*']),
install_requires=requirements,
include_package_data=True,
python_requires=">=3.5",
extra_requires={
'visualization': ['matplotlib>=2.1', 'nxpd>=0.2', 'ipywidgets>=7.3.0',
'pydot'],
'full-featured-simulators': ['qiskit-aer>=0.1']
}
)