diff --git a/.coveragerc b/.coveragerc index ac51b5c..4d00f14 100644 --- a/.coveragerc +++ b/.coveragerc @@ -1,4 +1,4 @@ [run] # omit virtualenv and test files omit = venv/*, */tests/* -source=dwave_embedding_utilities +source=dwave diff --git a/.travis.yml b/.travis.yml index 5a9550e..4fb387d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,7 @@ matrix: # sudo: required # python: "nightly" # env: TOXENV=pynightly + # deploy: - os: linux sudo: required python: "3.6" @@ -27,26 +28,27 @@ matrix: deploy: - os: osx language: generic - env: TOXENV=py27 + env: TOXENV=py36 before_install: - brew update - - virtualenv env -p python2 + - brew upgrade python + - pip install virtualenv + - virtualenv env -p python - source env/bin/activate deploy: - os: osx language: generic - env: TOXENV=py36 + env: TOXENV=py27 before_install: - brew update - - brew install python3 - - virtualenv env -p python3 + - virtualenv env -p python2 - source env/bin/activate deploy: install: - - pip install -r requirements.txt + - pip install -r tests/requirements.txt - pip install . - + script: - coverage run -m unittest discover diff --git a/docs/conf.py b/docs/conf.py index e79c9c3..cbddcde 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -63,11 +63,11 @@ # |version| and |release|, also used in various other places throughout the # built documents. # -import dwave_embedding_utilities +import dwave.embedding.utilities.utilities # The short X.Y version. -version = dwave_embedding_utilities.__version__ +version = dwave.embedding.utilities.package_info.__version__ # The full version, including alpha/beta/rc tags. -release = dwave_embedding_utilities.__version__ +release = dwave.embedding.utilities.package_info.__version__ # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -89,9 +89,9 @@ # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True -modindex_common_prefix = ['dwave_embedding_utilities.'] +modindex_common_prefix = ['dwave.embedding.utilities.'] -doctest_global_setup = "from dwave_embedding_utilities import *" +doctest_global_setup = "from dwave.embedding.utilities import *" # -- Options for HTML output ---------------------------------------------- diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 0000000..8213302 --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,2 @@ +sphinx +sphinx_rtd_theme diff --git a/dwave/__init__.py b/dwave/__init__.py new file mode 100644 index 0000000..69e3be5 --- /dev/null +++ b/dwave/__init__.py @@ -0,0 +1 @@ +__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/dwave/embedding/__init__.py b/dwave/embedding/__init__.py new file mode 100644 index 0000000..69e3be5 --- /dev/null +++ b/dwave/embedding/__init__.py @@ -0,0 +1 @@ +__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/dwave/embedding/utilities/__init__.py b/dwave/embedding/utilities/__init__.py new file mode 100644 index 0000000..a802038 --- /dev/null +++ b/dwave/embedding/utilities/__init__.py @@ -0,0 +1,5 @@ +from __future__ import absolute_import + +# for each module in this package, import __all__ + +from dwave.embedding.utilities.utilities import * diff --git a/dwave/embedding/utilities/package_info.py b/dwave/embedding/utilities/package_info.py new file mode 100644 index 0000000..5059d59 --- /dev/null +++ b/dwave/embedding/utilities/package_info.py @@ -0,0 +1,4 @@ +__version__ = '0.3.0' +__author__ = 'D-Wave Systems Inc.' +__authoremail__ = 'acondello@dwavesys.com' +__description__ = 'Utilities to manage embedding for the D-Wave System' diff --git a/dwave_embedding_utilities.py b/dwave/embedding/utilities/utilities.py similarity index 99% rename from dwave_embedding_utilities.py rename to dwave/embedding/utilities/utilities.py index 55e53cf..0014ab4 100644 --- a/dwave_embedding_utilities.py +++ b/dwave/embedding/utilities/utilities.py @@ -99,7 +99,7 @@ def itervalues(d): __all__ = ['target_to_source', 'chain_break_frequency', 'embed_ising', 'edgelist_to_adjacency', 'unembed_samples', - 'discard', 'majority_vote', 'weighted_random', 'minimize_energy', + 'discard', 'majority_vote', 'weighted_random', 'MinimizeEnergy', 'chain_to_quadratic'] __version__ = '0.3.0' diff --git a/requirements.txt b/requirements.txt index 6a33fb9..8171964 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,3 @@ dimod==0.5.0 dwave_networkx==0.6.0 networkx==2.0 - -coveralls \ No newline at end of file diff --git a/setup.py b/setup.py index 126a70d..f98b434 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,28 @@ -from setuptools import setup +import sys +import os +from setuptools import setup, find_packages -from dwave_embedding_utilities import __version__, __author__, __description__, __authoremail__ +_PY2 = sys.version_info.major == 2 +# Change directories so this works when called from other locations. Useful in build systems that build from source. +setup_folder_loc = os.path.dirname(os.path.abspath(__file__)) +os.chdir(setup_folder_loc) + +# Add __version__, __author__, __authoremail__, __description__ to this namespace +path_to_package_info = os.path.join('.', 'dwave', 'embedding', 'utilities', 'package_info.py') +if _PY2: + execfile(path_to_package_info) +else: + exec(open(path_to_package_info).read()) + +# These should be minimal requiments for the package to work, and avoid pinning dependencies unless required. See +# https://packaging.python.org/discussions/install-requires-vs-requirements/ +install_requires = ['dimod>=0.5.0,<0.6.0', + 'dwave_networkx>=0.6.0,<0.7.0', + 'networkx>=2.0,<3.0'] + +# Any extra requirements, to be used by pip install PACKAGENAME['keyname'] +extras_require = {} setup( name='dwave_embedding_utilities', @@ -9,7 +30,11 @@ author=__author__, author_email=__authoremail__, description=__description__, + long_description=open('README.rst').read(), url='https://github.com/dwavesystems/dwave_embedding_utilities', license='Apache 2.0', - py_modules=['dwave_embedding_utilities'] + packages=find_packages(exclude=['tests']), + install_requires=install_requires, + extras_require=extras_require, + zip_safe=False, ) diff --git a/tests/requirements.txt b/tests/requirements.txt new file mode 100644 index 0000000..131c54e --- /dev/null +++ b/tests/requirements.txt @@ -0,0 +1,4 @@ +-r ../requirements.txt + +coverage +coveralls diff --git a/tests/test_embedding_utilities.py b/tests/test_embedding_utilities.py index dc0580d..496e36f 100644 --- a/tests/test_embedding_utilities.py +++ b/tests/test_embedding_utilities.py @@ -6,7 +6,7 @@ import dwave_networkx as dnx import dimod -import dwave_embedding_utilities as eutil +import dwave.embedding.utilities as eutil class TestTargetToSource(unittest.TestCase):