[Debian-astro-commits] [python-astropy] 02/03: Rediff patches

Ole Streicher olebole at moszumanska.debian.org
Sun Mar 19 13:52:13 UTC 2017


This is an automated email from the git hooks/post-receive script.

olebole pushed a commit to branch master
in repository python-astropy.

commit 51937d1e0707a902c6df084a2a5a490d9c476662
Author: Ole Streicher <olebole at debian.org>
Date:   Sun Mar 19 14:29:35 2017 +0100

    Rediff patches
    
    Dropped fix_for_cfitsio_3380.patch,
            Ensure-NUMPY_LT_1_12-works-for-beta-prerelease.patch,
            Allow-pytest-3.x-to-use-plugin-for-doctests-in-.rst-files.patch
            Fix-default-value-for-remote_data-option.patch.
            Use-parametrize-instead-of-yield.patch:
    All applied upstream.
---
 ...-to-use-plugin-for-doctests-in-.rst-files.patch | 123 ---
 ...e-NUMPY_LT_1_12-works-for-beta-prerelease.patch |  22 -
 .../Fix-default-value-for-remote_data-option.patch |  35 -
 .../patches/Use-parametrize-instead-of-yield.patch | 850 ---------------------
 debian/patches/disable_helper.patch                |   6 +-
 debian/patches/external_python_pkgs.patch          |  28 +-
 debian/patches/fix_for_cfitsio_3380.patch          |  23 -
 debian/patches/only_python3-binaries.patch         |   4 +-
 debian/patches/series                              |   5 -
 9 files changed, 19 insertions(+), 1077 deletions(-)

diff --git a/debian/patches/Allow-pytest-3.x-to-use-plugin-for-doctests-in-.rst-files.patch b/debian/patches/Allow-pytest-3.x-to-use-plugin-for-doctests-in-.rst-files.patch
deleted file mode 100644
index 5c140f3..0000000
--- a/debian/patches/Allow-pytest-3.x-to-use-plugin-for-doctests-in-.rst-files.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-From: Marten van Kerkwijk <mhvk at astro.utoronto.ca>
-Date: Wed, 11 Jan 2017 21:59:16 -0500
-Subject: Allow pytest 3.x to use plugin for doctests in .rst files.
-
-Pull request: https://github.com/astropy/astropy/pull/5688
----
- astropy/tests/pytest_plugins.py    | 17 ++++-------------
- astropy/tests/tests/test_runner.py | 16 +++++++++-------
- setup.cfg                          |  2 +-
- 3 files changed, 14 insertions(+), 21 deletions(-)
-
-diff --git a/astropy/tests/pytest_plugins.py b/astropy/tests/pytest_plugins.py
-index 27b683d..64f7b74 100644
---- a/astropy/tests/pytest_plugins.py
-+++ b/astropy/tests/pytest_plugins.py
-@@ -180,7 +180,8 @@ def pytest_configure(config):
- 
-             # uses internal doctest module parsing mechanism
-             finder = DocTestFinderPlus()
--            runner = doctest.DebugRunner(verbose=False, optionflags=opts)
-+            runner = doctest.DebugRunner(verbose=False, optionflags=opts,
-+                                         checker=AstropyOutputChecker())
-             for test in finder.find(module):
-                 if test.examples:  # skip empty doctests
-                     if config.getvalue("remote_data") != 'any':
-@@ -191,21 +192,11 @@ def pytest_configure(config):
-                     yield doctest_plugin.DoctestItem(
-                         test.name, self, runner, test)
- 
--        # This is for py.test prior to 2.4.0
--        def runtest(self):
--            return
--
--    class DocTestTextfilePlus(doctest_plugin.DoctestTextfile):
-+    class DocTestTextfilePlus(doctest_plugin.DoctestItem, pytest.Module):
-         def runtest(self):
-             # satisfy `FixtureRequest` constructor...
-             self.funcargs = {}
--            try:
--                self._fixtureinfo = doctest_plugin.FuncFixtureInfo((), [], {})
--                fixture_request = doctest_plugin.FixtureRequest(self)
--            except AttributeError:  # pytest >= 2.8.0
--                python_plugin = config.pluginmanager.getplugin('python')
--                self._fixtureinfo = python_plugin.FuncFixtureInfo((), [], {})
--                fixture_request = python_plugin.FixtureRequest(self)
-+            fixture_request = doctest_plugin._setup_fixtures(self)
- 
-             failed, tot = doctest.testfile(
-                 str(self.fspath), module_relative=False,
-diff --git a/astropy/tests/tests/test_runner.py b/astropy/tests/tests/test_runner.py
-index a147cd9..0642c7f 100644
---- a/astropy/tests/tests/test_runner.py
-+++ b/astropy/tests/tests/test_runner.py
-@@ -1,9 +1,11 @@
--from astropy.tests.runner import TestRunner, TestRunnerBase, keyword
-+from astropy.tests.runner import TestRunner as T_Runner
-+from astropy.tests.runner import TestRunnerBase as T_RunnerBase
-+from astropy.tests.runner import keyword
- from astropy.tests.helper import pytest
- 
- 
- def test_disable_kwarg():
--    class no_remote_data(TestRunner):
-+    class no_remote_data(T_Runner):
-         @keyword()
-         def remote_data(self, remote_data, kwargs):
-             return NotImplemented
-@@ -14,13 +16,13 @@ def test_disable_kwarg():
- 
- 
- def test_wrong_kwarg():
--    r = TestRunner('.')
-+    r = T_Runner('.')
-     with pytest.raises(TypeError):
-         r.run_tests(spam='eggs')
- 
- 
- def test_invalid_kwarg():
--    class bad_return(TestRunnerBase):
-+    class bad_return(T_RunnerBase):
-         @keyword()
-         def remote_data(self, remote_data, kwargs):
-             return 'bob'
-@@ -31,7 +33,7 @@ def test_invalid_kwarg():
- 
- 
- def test_new_kwarg():
--    class Spam(TestRunnerBase):
-+    class Spam(T_RunnerBase):
-         @keyword()
-         def spam(self, spam, kwargs):
-             return [spam]
-@@ -44,7 +46,7 @@ def test_new_kwarg():
- 
- 
- def test_priority():
--    class Spam(TestRunnerBase):
-+    class Spam(T_RunnerBase):
-         @keyword()
-         def spam(self, spam, kwargs):
-             return [spam]
-@@ -61,7 +63,7 @@ def test_priority():
- 
- 
- def test_docs():
--    class Spam(TestRunnerBase):
-+    class Spam(T_RunnerBase):
-         @keyword()
-         def spam(self, spam, kwargs):
-             """
-diff --git a/setup.cfg b/setup.cfg
-index 206e6f8..5b3e995 100644
---- a/setup.cfg
-+++ b/setup.cfg
-@@ -12,7 +12,7 @@ all_files = 1
- upload-dir = docs/_build/html
- show-response = 1
- 
--[pytest]
-+[tool:pytest]
- minversion = 2.3.3
- norecursedirs = ".tox" "build" "docs[\/]_build" "astropy[\/]extern" "astropy[\/]utils[\/]compat[\/]futures"
- doctest_plus = enabled
diff --git a/debian/patches/Ensure-NUMPY_LT_1_12-works-for-beta-prerelease.patch b/debian/patches/Ensure-NUMPY_LT_1_12-works-for-beta-prerelease.patch
deleted file mode 100644
index 9c44156..0000000
--- a/debian/patches/Ensure-NUMPY_LT_1_12-works-for-beta-prerelease.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From: Marten van Kerkwijk <mhvk at astro.utoronto.ca>
-Date: Sat, 24 Dec 2016 17:06:08 -0500
-Subject: Ensure NUMPY_LT_1_12 works for beta prerelease.
-
-Pull request: https://github.com/astropy/astropy/pull/5646
----
- astropy/utils/compat/numpycompat.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/astropy/utils/compat/numpycompat.py b/astropy/utils/compat/numpycompat.py
-index fbdd029..bda721f 100644
---- a/astropy/utils/compat/numpycompat.py
-+++ b/astropy/utils/compat/numpycompat.py
-@@ -21,7 +21,7 @@ NUMPY_LT_1_9_1 = not minversion('numpy', '1.9.1')
- NUMPY_LT_1_10 = not minversion('numpy', '1.10.0')
- NUMPY_LT_1_10_4 = not minversion('numpy', '1.10.4')
- NUMPY_LT_1_11 = not minversion('numpy', '1.11.0')
--NUMPY_LT_1_12 = not minversion('numpy', '1.12dev')
-+NUMPY_LT_1_12 = not minversion('numpy', '1.12')
- 
- 
- def _monkeypatch_unicode_mask_fill_values():
diff --git a/debian/patches/Fix-default-value-for-remote_data-option.patch b/debian/patches/Fix-default-value-for-remote_data-option.patch
deleted file mode 100644
index d104e3f..0000000
--- a/debian/patches/Fix-default-value-for-remote_data-option.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From: Thomas Robitaille <thomas.robitaille at gmail.com>
-Date: Thu, 12 Jan 2017 11:54:25 +0000
-Subject: Fix default value for remote_data option
-
-Pull request: https://github.com/astropy/astropy/pull/5689
----
- astropy/tests/runner.py | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/astropy/tests/runner.py b/astropy/tests/runner.py
-index cf11c2f..6f1e6b4 100644
---- a/astropy/tests/runner.py
-+++ b/astropy/tests/runner.py
-@@ -353,7 +353,7 @@ class TestRunner(TestRunnerBase):
- 
-         return []
- 
--    @keyword()
-+    @keyword(default_value='none')
-     def remote_data(self, remote_data, kwargs):
-         """
-         remote_data : {'none', 'astropy', 'any'}, optional
-@@ -369,9 +369,10 @@ class TestRunner(TestRunnerBase):
-             remote_data = 'none'
-         elif remote_data not in ('none', 'astropy', 'any'):
-             warnings.warn("The remote_data option should be one of "
--                          "none/astropy/any. For backward-compatibility, "
-+                          "none/astropy/any (found {0}). For backward-compatibility, "
-                           "assuming 'any', but you should change the option to be "
--                          "one of the supported ones to avoid issues in future.",
-+                          "one of the supported ones to avoid issues in "
-+                          "future.".format(remote_data),
-                           AstropyDeprecationWarning)
-             remote_data = 'any'
- 
diff --git a/debian/patches/Use-parametrize-instead-of-yield.patch b/debian/patches/Use-parametrize-instead-of-yield.patch
deleted file mode 100644
index 1019ff1..0000000
--- a/debian/patches/Use-parametrize-instead-of-yield.patch
+++ /dev/null
@@ -1,850 +0,0 @@
-From: kelle <kellecruz at gmail.com>
-Date: Sat, 7 Jan 2017 17:45:29 -0500
-Subject: Use parametrize instead of yield.
-
-Pull request: https://github.com/astropy/astropy/pull/5678
-Pull request: https://github.com/astropy/astropy/pull/5682
----
- astropy/io/votable/tests/vo_test.py |   5 +-
- astropy/units/tests/test_format.py  | 466 ++++++++++++++++--------------------
- astropy/wcs/tests/test_profiling.py |  99 +++-----
- astropy/wcs/tests/test_wcs.py       | 146 +++++------
- 4 files changed, 298 insertions(+), 418 deletions(-)
-
-diff --git a/astropy/io/votable/tests/vo_test.py b/astropy/io/votable/tests/vo_test.py
-index 587fc59..31acb9c 100644
---- a/astropy/io/votable/tests/vo_test.py
-+++ b/astropy/io/votable/tests/vo_test.py
-@@ -737,13 +737,10 @@ def table_from_scratch():
- 
- 
- def test_open_files():
--    def test_file(filename):
--        parse(filename, pedantic=False)
--
-     for filename in get_pkg_data_filenames('data', pattern='*.xml'):
-         if filename.endswith('custom_datatype.xml'):
-             continue
--        yield test_file, filename
-+        parse(filename, pedantic=False)
- 
- 
- @raises(VOTableSpecError)
-diff --git a/astropy/units/tests/test_format.py b/astropy/units/tests/test_format.py
-index 9316a59..b5e9d12 100644
---- a/astropy/units/tests/test_format.py
-+++ b/astropy/units/tests/test_format.py
-@@ -13,7 +13,7 @@ from __future__ import (absolute_import, unicode_literals, division,
- from ...extern import six
- 
- from numpy.testing.utils import assert_allclose
--from ...tests.helper import raises, pytest, catch_warnings
-+from ...tests.helper import pytest, catch_warnings
- 
- from ... import units as u
- from ...constants import si
-@@ -22,246 +22,205 @@ from .. import format as u_format
- from ..utils import is_effectively_unity
- 
- 
--def test_unit_grammar():
--    def _test_unit_grammar(s, unit):
-+ at pytest.mark.parametrize('strings, unit', [
-+    (["m s", "m*s", "m.s"], u.m * u.s),
-+    (["m/s", "m*s**-1", "m /s", "m / s", "m/ s"], u.m / u.s),
-+    (["m**2", "m2", "m**(2)", "m**+2", "m+2", "m^(+2)"], u.m ** 2),
-+    (["m**-3", "m-3", "m^(-3)", "/m3"], u.m ** -3),
-+    (["m**(1.5)", "m(3/2)", "m**(3/2)", "m^(3/2)"], u.m ** 1.5),
-+    (["2.54 cm"], u.Unit(u.cm * 2.54)),
-+    (["10+8m"], u.Unit(u.m * 1e8)),
-+    # This is the VOUnits documentation, but doesn't seem to follow the
-+    # unity grammar (["3.45 10**(-4)Jy"], 3.45 * 1e-4 * u.Jy)
-+    (["sqrt(m)"], u.m ** 0.5),
-+    (["dB(mW)", "dB (mW)"], u.DecibelUnit(u.mW)),
-+    (["mag"], u.mag),
-+    (["mag(ct/s)"], u.MagUnit(u.ct / u.s)),
-+    (["dex"], u.dex),
-+    (["dex(cm s**-2)", "dex(cm/s2)"], u.DexUnit(u.cm / u.s**2))])
-+def test_unit_grammar(strings, unit):
-+    for s in strings:
-         print(s)
-         unit2 = u_format.Generic.parse(s)
-         assert unit2 == unit
- 
--    data = [
--        (["m s", "m*s", "m.s"], u.m * u.s),
--        (["m/s", "m*s**-1", "m /s", "m / s", "m/ s"], u.m / u.s),
--        (["m**2", "m2", "m**(2)", "m**+2", "m+2", "m^(+2)"], u.m ** 2),
--        (["m**-3", "m-3", "m^(-3)", "/m3"], u.m ** -3),
--        (["m**(1.5)", "m(3/2)", "m**(3/2)", "m^(3/2)"], u.m ** 1.5),
--        (["2.54 cm"], u.Unit(u.cm * 2.54)),
--        (["10+8m"], u.Unit(u.m * 1e8)),
--        # This is the VOUnits documentation, but doesn't seem to follow the
--        # unity grammar (["3.45 10**(-4)Jy"], 3.45 * 1e-4 * u.Jy)
--        (["sqrt(m)"], u.m ** 0.5),
--        (["dB(mW)", "dB (mW)"], u.DecibelUnit(u.mW)),
--        (["mag"], u.mag),
--        (["mag(ct/s)"], u.MagUnit(u.ct / u.s)),
--        (["dex"], u.dex),
--        (["dex(cm s**-2)", "dex(cm/s2)"], u.DexUnit(u.cm / u.s**2))
--    ]
--
--    for strings, unit in data:
--        for s in strings:
--            yield _test_unit_grammar, s, unit
--
--
--def test_unit_grammar_fail():
--    @raises(ValueError)
--    def _test_unit_grammar_fail(s):
--        u_format.Generic.parse(s)
--
--    data = ['sin( /pixel /s)',
--            'mag(mag)',
--            'dB(dB(mW))',
--            'dex()']
--
--    for s in data:
--        yield _test_unit_grammar_fail, s
--
--
--def test_cds_grammar():
--    def _test_cds_grammar(s, unit):
-+
-+ at pytest.mark.parametrize('string', ['sin( /pixel /s)', 'mag(mag)',
-+                                    'dB(dB(mW))', 'dex()'])
-+def test_unit_grammar_fail(string):
-+    with pytest.raises(ValueError):
-+        print(string)
-+        u_format.Generic.parse(string)
-+
-+ at pytest.mark.parametrize('strings, unit', [
-+    (["0.1nm"], u.AA),
-+    (["mW/m2"], u.Unit(u.erg / u.cm ** 2 / u.s)),
-+    (["mW/(m2)"], u.Unit(u.erg / u.cm ** 2 / u.s)),
-+    (["km/s", "km.s-1"], u.km / u.s),
-+    (["10pix/nm"], u.Unit(10 * u.pix / u.nm)),
-+    (["1.5x10+11m"], u.Unit(1.5e11 * u.m)),
-+    (["1.5×10+11m"], u.Unit(1.5e11 * u.m)),
-+    (["m2"], u.m ** 2),
-+    (["10+21m"], u.Unit(u.m * 1e21)),
-+    (["2.54cm"], u.Unit(u.cm * 2.54)),
-+    (["20%"], 0.20 * u.dimensionless_unscaled),
-+    (["10+9"], 1.e9 * u.dimensionless_unscaled),
-+    (["2x10-9"], 2.e-9 * u.dimensionless_unscaled),
-+    (["---"], u.dimensionless_unscaled),
-+    (["ma"], u.ma),
-+    (["mAU"], u.mAU),
-+    (["uarcmin"], u.uarcmin),
-+    (["uarcsec"], u.uarcsec),
-+    (["kbarn"], u.kbarn),
-+    (["Gbit"], u.Gbit),
-+    (["Gibit"], 2 ** 30 * u.bit),
-+    (["kbyte"], u.kbyte),
-+    (["mRy"], 0.001 * u.Ry),
-+    (["mmag"], u.mmag),
-+    (["Mpc"], u.Mpc),
-+    (["Gyr"], u.Gyr),
-+    (["°"], u.degree),
-+    (["°/s"], u.degree / u.s),
-+    (["Å"], u.AA),
-+    (["Å/s"], u.AA / u.s),
-+    (["\\h"], si.h)])
-+def test_cds_grammar(strings, unit):
-+    for s in strings:
-         print(s)
-         unit2 = u_format.CDS.parse(s)
-         assert unit2 == unit
- 
--    data = [
--        (["0.1nm"], u.AA),
--        (["mW/m2"], u.Unit(u.erg / u.cm ** 2 / u.s)),
--        (["mW/(m2)"], u.Unit(u.erg / u.cm ** 2 / u.s)),
--        (["km/s", "km.s-1"], u.km / u.s),
--        (["10pix/nm"], u.Unit(10 * u.pix / u.nm)),
--        (["1.5x10+11m"], u.Unit(1.5e11 * u.m)),
--        (["1.5×10+11m"], u.Unit(1.5e11 * u.m)),
--        (["m2"], u.m ** 2),
--        (["10+21m"], u.Unit(u.m * 1e21)),
--        (["2.54cm"], u.Unit(u.cm * 2.54)),
--        (["20%"], 0.20 * u.dimensionless_unscaled),
--        (["10+9"], 1.e9 * u.dimensionless_unscaled),
--        (["2x10-9"], 2.e-9 * u.dimensionless_unscaled),
--        (["---"], u.dimensionless_unscaled),
--        (["ma"], u.ma),
--        (["mAU"], u.mAU),
--        (["uarcmin"], u.uarcmin),
--        (["uarcsec"], u.uarcsec),
--        (["kbarn"], u.kbarn),
--        (["Gbit"], u.Gbit),
--        (["Gibit"], 2 ** 30 * u.bit),
--        (["kbyte"], u.kbyte),
--        (["mRy"], 0.001 * u.Ry),
--        (["mmag"], u.mmag),
--        (["Mpc"], u.Mpc),
--        (["Gyr"], u.Gyr),
--        (["°"], u.degree),
--        (["°/s"], u.degree / u.s),
--        (["Å"], u.AA),
--        (["Å/s"], u.AA / u.s),
--        (["\\h"], si.h)]
--
--    for strings, unit in data:
--        for s in strings:
--            yield _test_cds_grammar, s, unit
--
--
--def test_cds_grammar_fail():
--    @raises(ValueError)
--    def _test_cds_grammar_fail(s):
--        print(s)
--        u_format.CDS.parse(s)
--
--    data = ['0.1 nm',
--            'solMass(3/2)',
--            'km / s',
--            'km s-1',
--            'pix0.1nm',
--            'pix/(0.1nm)',
--            'km*s',
--            'km**2',
--            '5x8+3m',
--            '0.1---',
--            '---m',
--            'm---',
--            'mag(s-1)',
--            'dB(mW)',
--            'dex(cm s-2)']
--
--    for s in data:
--        yield _test_cds_grammar_fail, s
--
--
--def test_ogip_grammar():
--    def _test_ogip_grammar(s, unit):
-+
-+ at pytest.mark.parametrize('string', [
-+    '0.1 nm',
-+    'solMass(3/2)',
-+    'km / s',
-+    'km s-1',
-+    'pix0.1nm',
-+    'pix/(0.1nm)',
-+    'km*s',
-+    'km**2',
-+    '5x8+3m',
-+    '0.1---',
-+    '---m',
-+    'm---',
-+    'mag(s-1)',
-+    'dB(mW)',
-+    'dex(cm s-2)'])
-+def test_cds_grammar_fail(string):
-+    with pytest.raises(ValueError):
-+        print(string)
-+        u_format.CDS.parse(string)
-+
-+
-+# These examples are taken from the EXAMPLES section of
-+# http://heasarc.gsfc.nasa.gov/docs/heasarc/ofwg/docs/general/ogip_93_001/
-+ at pytest.mark.parametrize('strings, unit', [
-+    (["count /s", "count/s", "count s**(-1)", "count / s", "count /s "],
-+     u.count / u.s),
-+    (["/pixel /s", "/(pixel * s)"], (u.pixel * u.s) ** -1),
-+    (["count /m**2 /s /eV", "count m**(-2) * s**(-1) * eV**(-1)",
-+      "count /(m**2 * s * eV)"],
-+     u.count * u.m ** -2 * u.s ** -1 * u.eV ** -1),
-+    (["erg /pixel /s /GHz", "erg /s /GHz /pixel", "erg /pixel /(s * GHz)"],
-+     u.erg / (u.s * u.GHz * u.pixel)),
-+    (["keV**2 /yr /angstrom", "10**(10) keV**2 /yr /m"],
-+      # Though this is given as an example, it seems to violate the rules
-+      # of not raising scales to powers, so I'm just excluding it
-+      # "(10**2 MeV)**2 /yr /m"
-+     u.keV**2 / (u.yr * u.angstrom)),
-+    (["10**(46) erg /s", "10**46 erg /s", "10**(39) J /s", "10**(39) W",
-+      "10**(15) YW", "YJ /fs"],
-+     10**46 * u.erg / u.s),
-+    (["10**(-7) J /cm**2 /MeV", "10**(-9) J m**(-2) eV**(-1)",
-+      "nJ m**(-2) eV**(-1)", "nJ /m**2 /eV"],
-+     10 ** -7 * u.J * u.cm ** -2 * u.MeV ** -1),
-+    (["sqrt(erg /pixel /s /GHz)", "(erg /pixel /s /GHz)**(0.5)",
-+      "(erg /pixel /s /GHz)**(1/2)",
-+      "erg**(0.5) pixel**(-0.5) s**(-0.5) GHz**(-0.5)"],
-+     (u.erg * u.pixel ** -1 * u.s ** -1 * u.GHz ** -1) ** 0.5),
-+    (["(count /s) (/pixel /s)", "(count /s) * (/pixel /s)",
-+      "count /pixel /s**2"],
-+     (u.count / u.s) * (1.0 / (u.pixel * u.s)))])
-+def test_ogip_grammar(strings, unit):
-+    for s in strings:
-         print(s)
-         unit2 = u_format.OGIP.parse(s)
-         assert unit2 == unit
- 
--    # These examples are taken from the EXAMPLES section of
--    # http://heasarc.gsfc.nasa.gov/docs/heasarc/ofwg/docs/general/ogip_93_001/
--    data = [
--        (["count /s", "count/s", "count s**(-1)", "count / s", "count /s "],
--         u.count / u.s),
--        (["/pixel /s", "/(pixel * s)"], (u.pixel * u.s) ** -1),
--        (["count /m**2 /s /eV", "count m**(-2) * s**(-1) * eV**(-1)",
--          "count /(m**2 * s * eV)"],
--         u.count * u.m ** -2 * u.s ** -1 * u.eV ** -1),
--        (["erg /pixel /s /GHz", "erg /s /GHz /pixel", "erg /pixel /(s * GHz)"],
--         u.erg / (u.s * u.GHz * u.pixel)),
--        (["keV**2 /yr /angstrom", "10**(10) keV**2 /yr /m",
--          # Though this is given as an example, it seems to violate the rules
--          # of not raising scales to powers, so I'm just excluding it
--          # "(10**2 MeV)**2 /yr /m"
--         ],
--         u.keV**2 / (u.yr * u.angstrom)),
--        (["10**(46) erg /s", "10**46 erg /s", "10**(39) J /s", "10**(39) W",
--          "10**(15) YW", "YJ /fs"],
--         10**46 * u.erg / u.s),
--        (["10**(-7) J /cm**2 /MeV", "10**(-9) J m**(-2) eV**(-1)",
--          "nJ m**(-2) eV**(-1)", "nJ /m**2 /eV"],
--         10 ** -7 * u.J * u.cm ** -2 * u.MeV ** -1),
--        (["sqrt(erg /pixel /s /GHz)", "(erg /pixel /s /GHz)**(0.5)",
--          "(erg /pixel /s /GHz)**(1/2)",
--          "erg**(0.5) pixel**(-0.5) s**(-0.5) GHz**(-0.5)"],
--         (u.erg * u.pixel ** -1 * u.s ** -1 * u.GHz ** -1) ** 0.5),
--        (["(count /s) (/pixel /s)", "(count /s) * (/pixel /s)",
--          "count /pixel /s**2"],
--         (u.count / u.s) * (1.0 / (u.pixel * u.s)))]
--
--    for strings, unit in data:
--        for s in strings:
--            yield _test_ogip_grammar, s, unit
--
--
--def test_ogip_grammar_fail():
--    @raises(ValueError)
--    def _test_ogip_grammar_fail(s):
--        u_format.OGIP.parse(s)
--
--    data = ['log(photon /m**2 /s /Hz)',
--            'sin( /pixel /s)',
--            'log(photon /cm**2 /s /Hz) /(sin( /pixel /s))',
--            'log(photon /cm**2 /s /Hz) (sin( /pixel /s))**(-1)',
--            'dB(mW)', 'dex(cm/s**2)']
--
--    for s in data:
--        yield _test_ogip_grammar_fail, s
--
--
--def test_roundtrip():
--    def _test_roundtrip(unit):
--        a = core.Unit(unit.to_string('generic'), format='generic')
--        b = core.Unit(unit.decompose().to_string('generic'), format='generic')
--        assert_allclose(a.decompose().scale, unit.decompose().scale, rtol=1e-2)
--        assert_allclose(b.decompose().scale, unit.decompose().scale, rtol=1e-2)
--
--    for key, val in u.__dict__.items():
--        if isinstance(val, core.UnitBase) and not isinstance(val, core.PrefixUnit):
--            yield _test_roundtrip, val
--
--
--def test_roundtrip_vo_unit():
--    def _test_roundtrip_vo_unit(unit, skip_decompose):
--        a = core.Unit(unit.to_string('vounit'), format='vounit')
--        assert_allclose(a.decompose().scale, unit.decompose().scale, rtol=1e-2)
--        if skip_decompose:
--            return
--        u = unit.decompose().to_string('vounit')
--        assert '  ' not in u
--        b = core.Unit(u, format='vounit')
--        assert_allclose(b.decompose().scale, unit.decompose().scale, rtol=1e-2)
--
--    x = u_format.VOUnit
--    for key, val in x._units.items():
--        if isinstance(val, core.UnitBase) and not isinstance(val, core.PrefixUnit):
--            yield _test_roundtrip_vo_unit, val, val in (u.mag, u.dB)
--
--
--def test_roundtrip_fits():
--    def _test_roundtrip_fits(unit):
--        s = unit.to_string('fits')
--        a = core.Unit(s, format='fits')
--        assert_allclose(a.decompose().scale, unit.decompose().scale, rtol=1e-2)
--
--    for key, val in u_format.Fits._units.items():
--        if isinstance(val, core.UnitBase) and not isinstance(val, core.PrefixUnit):
--            yield _test_roundtrip_fits, val
--
- 
--def test_roundtrip_cds():
--    def _test_roundtrip_cds(unit):
--        a = core.Unit(unit.to_string('cds'), format='cds')
--        assert_allclose(a.decompose().scale, unit.decompose().scale, rtol=1e-2)
--        try:
--            b = core.Unit(unit.decompose().to_string('cds'), format='cds')
--        except ValueError:  # skip mag: decomposes into dex, unknown to OGIP
--            return
-+ at pytest.mark.parametrize('string', [
-+    'log(photon /m**2 /s /Hz)',
-+    'sin( /pixel /s)',
-+    'log(photon /cm**2 /s /Hz) /(sin( /pixel /s))',
-+    'log(photon /cm**2 /s /Hz) (sin( /pixel /s))**(-1)',
-+    'dB(mW)', 'dex(cm/s**2)'])
-+def test_ogip_grammar_fail(string):
-+    with pytest.raises(ValueError):
-+        print(string)
-+        u_format.OGIP.parse(string)
-+
-+
-+ at pytest.mark.parametrize('unit', [val for key, val in u.__dict__.items()
-+                                  if (isinstance(val, core.UnitBase) and
-+                                      not isinstance(val, core.PrefixUnit))])
-+def test_roundtrip(unit):
-+    a = core.Unit(unit.to_string('generic'), format='generic')
-+    b = core.Unit(unit.decompose().to_string('generic'), format='generic')
-+    assert_allclose(a.decompose().scale, unit.decompose().scale, rtol=1e-2)
-+    assert_allclose(b.decompose().scale, unit.decompose().scale, rtol=1e-2)
-+
-+
-+ at pytest.mark.parametrize('unit', [
-+    val for key, val in u_format.VOUnit._units.items()
-+    if (isinstance(val, core.UnitBase) and
-+        not isinstance(val, core.PrefixUnit))])
-+def test_roundtrip_vo_unit(unit):
-+    a = core.Unit(unit.to_string('vounit'), format='vounit')
-+    assert_allclose(a.decompose().scale, unit.decompose().scale, rtol=1e-2)
-+    if unit not in (u.mag, u.dB):
-+        ud = unit.decompose().to_string('vounit')
-+        assert '  ' not in ud
-+        b = core.Unit(ud, format='vounit')
-         assert_allclose(b.decompose().scale, unit.decompose().scale, rtol=1e-2)
- 
--    x = u_format.CDS
--    for key, val in x._units.items():
--        if isinstance(val, core.UnitBase) and not isinstance(val, core.PrefixUnit):
--            yield _test_roundtrip_cds, val
- 
-+ at pytest.mark.parametrize('unit', [
-+    val for key, val in u_format.Fits._units.items()
-+    if (isinstance(val, core.UnitBase) and
-+        not isinstance(val, core.PrefixUnit))])
-+def test_roundtrip_fits(unit):
-+    s = unit.to_string('fits')
-+    a = core.Unit(s, format='fits')
-+    assert_allclose(a.decompose().scale, unit.decompose().scale, rtol=1e-2)
- 
--def test_roundtrip_ogip():
--    def _test_roundtrip_ogip(unit):
--        a = core.Unit(unit.to_string('ogip'), format='ogip')
--        assert_allclose(a.decompose().scale, unit.decompose().scale, rtol=1e-2)
--        try:
--            b = core.Unit(unit.decompose().to_string('ogip'), format='ogip')
--        except ValueError:  # skip mag: decomposes into dex, unknown to OGIP
--            return
--        assert_allclose(b.decompose().scale, unit.decompose().scale, rtol=1e-2)
- 
--    x = u_format.OGIP
--    for key, val in x._units.items():
--        if isinstance(val, core.UnitBase) and not isinstance(val, core.PrefixUnit):
--            yield _test_roundtrip_ogip, val
-+ at pytest.mark.parametrize('unit', [
-+    val for key, val in u_format.CDS._units.items()
-+    if (isinstance(val, core.UnitBase) and
-+        not isinstance(val, core.PrefixUnit))])
-+def test_roundtrip_cds(unit):
-+    a = core.Unit(unit.to_string('cds'), format='cds')
-+    assert_allclose(a.decompose().scale, unit.decompose().scale, rtol=1e-2)
-+    try:
-+        b = core.Unit(unit.decompose().to_string('cds'), format='cds')
-+    except ValueError:  # skip mag: decomposes into dex, unknown to OGIP
-+        return
-+    assert_allclose(b.decompose().scale, unit.decompose().scale, rtol=1e-2)
-+
-+
-+ at pytest.mark.parametrize('unit', [
-+    val for key, val in u_format.OGIP._units.items()
-+    if (isinstance(val, core.UnitBase) and
-+        not isinstance(val, core.PrefixUnit))])
-+def test_roundtrip_ogip(unit):
-+    a = core.Unit(unit.to_string('ogip'), format='ogip')
-+    assert_allclose(a.decompose().scale, unit.decompose().scale, rtol=1e-2)
-+    try:
-+        b = core.Unit(unit.decompose().to_string('ogip'), format='ogip')
-+    except ValueError:  # skip mag: decomposes into dex, unknown to OGIP
-+        return
-+    assert_allclose(b.decompose().scale, unit.decompose().scale, rtol=1e-2)
- 
- 
- def test_fits_units_available():
-@@ -307,22 +266,16 @@ def test_latex_inline_scale():
-     assert fluxunit.to_string('latex_inline') == latex_inline
- 
- 
--def test_format_styles():
-+ at pytest.mark.parametrize('format_spec, string', [
-+    ('generic','erg / (cm2 s)'),
-+    ('s', 'erg / (cm2 s)'),
-+    ('console', '  erg  \n ------\n s cm^2'),
-+    ('latex', '$\\mathrm{\\frac{erg}{s\\,cm^{2}}}$'),
-+    ('latex_inline', '$\\mathrm{erg\\,s^{-1}\\,cm^{-2}}$'),
-+    ('>20s','       erg / (cm2 s)')])
-+def test_format_styles(format_spec, string):
-     fluxunit = u.erg / (u.cm ** 2 * u.s)
--    def _test_format_styles(format_spec, s):
--        assert format(fluxunit, format_spec) == s
--
--    format_s_pairs = [
--        ('generic','erg / (cm2 s)'),
--        ('s', 'erg / (cm2 s)'),
--        ('console', '  erg  \n ------\n s cm^2'),
--        ('latex', '$\\mathrm{\\frac{erg}{s\\,cm^{2}}}$'),
--        ('latex_inline', '$\\mathrm{erg\\,s^{-1}\\,cm^{-2}}$'),
--        ('>20s','       erg / (cm2 s)'),
--    ]
--
--    for format_, s in format_s_pairs:
--        yield _test_format_styles, format_, s
-+    assert format(fluxunit, format_spec) == string
- 
- 
- def test_flatten_to_known():
-@@ -332,10 +285,9 @@ def test_flatten_to_known():
-     assert myunit2.to_string('fits') == 'bit3 erg Hz-1'
- 
- 
-- at raises(ValueError)
- def test_flatten_impossible():
-     myunit = u.def_unit("FOOBAR_Two")
--    with u.add_enabled_units(myunit):
-+    with u.add_enabled_units(myunit), pytest.raises(ValueError):
-         myunit.to_string('fits')
- 
- 
-@@ -434,34 +386,20 @@ def test_deprecated_did_you_mean_units():
-     assert '0.1nm' in six.text_type(w[0].message)
- 
- 
--def test_fits_function():
-+ at pytest.mark.parametrize('string', ['mag(ct/s)', 'dB(mW)', 'dex(cm s**-2)'])
-+def test_fits_function(string):
-     # Function units cannot be written, so ensure they're not parsed either.
--    @raises(ValueError)
--    def _test_fits_grammar_fail(s):
--        print(s)
--        u_format.Fits().parse(s)
--
--    data = ['mag(ct/s)',
--            'dB(mW)',
--            'dex(cm s**-2)']
--
--    for s in data:
--        yield _test_fits_grammar_fail, s
-+    with pytest.raises(ValueError):
-+        print(string)
-+        u_format.Fits().parse(string)
- 
- 
--def test_vounit_function():
-+ at pytest.mark.parametrize('string', ['mag(ct/s)', 'dB(mW)', 'dex(cm s**-2)'])
-+def test_vounit_function(string):
-     # Function units cannot be written, so ensure they're not parsed either.
--    @raises(ValueError)
--    def _test_vounit_grammar_fail(s):
--        print(s)
--        u_format.VOUnit().parse(s)
--
--    data = ['mag(ct/s)',
--            'dB(mW)',
--            'dex(cm s**-2)']
--
--    for s in data:
--        yield _test_vounit_grammar_fail, s
-+    with pytest.raises(ValueError):
-+        print(string)
-+        u_format.VOUnit().parse(string)
- 
- 
- def test_vounit_binary_prefix():
-diff --git a/astropy/wcs/tests/test_profiling.py b/astropy/wcs/tests/test_profiling.py
-index a17a076..57d9a93 100644
---- a/astropy/wcs/tests/test_profiling.py
-+++ b/astropy/wcs/tests/test_profiling.py
-@@ -7,84 +7,61 @@ import os
- 
- import numpy as np
- 
-+from ...tests.helper import pytest
- from ...utils.data import get_pkg_data_filenames, get_pkg_data_contents
- from ...utils.misc import NumpyRNGContext
- 
- from ... import wcs
- 
-+#hdr_map_file_list = list(get_pkg_data_filenames("maps", pattern="*.hdr"))
- 
--def test_maps():
--    def test_map(filename):
--        header = get_pkg_data_contents(os.path.join("maps", filename))
--        wcsobj = wcs.WCS(header)
--
--        with NumpyRNGContext(123456789):
--            x = np.random.rand(2 ** 12, wcsobj.wcs.naxis)
--            world = wcsobj.wcs_pix2world(x, 1)
--            pix = wcsobj.wcs_world2pix(x, 1)
--
--    hdr_file_list = list(get_pkg_data_filenames("maps", pattern="*.hdr"))
--
--    # actually perform a test for each one
--    for filename in hdr_file_list:
--
--        # use the base name of the file, because everything we yield
--        # will show up in the test name in the pandokia report
--        filename = os.path.basename(filename)
--
--        # yield a function name and parameters to make a generated test
--        yield test_map, filename
-+# use the base name of the file, because everything we yield
-+# will show up in the test name in the pandokia report
-+hdr_map_file_list = [os.path.basename(fname) for fname in get_pkg_data_filenames("maps", pattern="*.hdr")]
- 
--    # AFTER we tested with every file that we found, check to see that we
--    # actually have the list we expect.  If N=0, we will not have performed
--    # any tests at all.  If N < n_data_files, we are missing some files,
--    # so we will have skipped some tests.  Without this check, both cases
--    # happen silently!
-+# Checking the number of files before reading them in.
-+# OLD COMMENTS:
-+# AFTER we tested with every file that we found, check to see that we
-+# actually have the list we expect.  If N=0, we will not have performed
-+# any tests at all.  If N < n_data_files, we are missing some files,
-+# so we will have skipped some tests.  Without this check, both cases
-+# happen silently!
- 
--    # how many do we expect to see?
--    n_data_files = 28
--
--    if len(hdr_file_list) != n_data_files:
--        assert False, (
--            "test_maps has wrong number data files: found {}, expected "
--            " {}".format(len(hdr_file_list), n_data_files))
--        # b.t.w.  If this assert happens, py.test reports one more test
--        # than it would have otherwise.
-+def test_read_map_files():
-+    # how many map files we expect to see
-+    n_map_files = 28
- 
-+    assert len(hdr_map_file_list) == n_map_files, (
-+           "test_read_map_files has wrong number data files: found {}, expected "
-+           " {}".format(len(hdr_map_file_list), n_map_files))
- 
--def test_spectra():
--    def test_spectrum(filename):
--        header = get_pkg_data_contents(os.path.join("spectra", filename))
-+ at pytest.mark.parametrize("filename", hdr_map_file_list)
-+def test_map(filename):
-+        header = get_pkg_data_contents(os.path.join("maps", filename))
-         wcsobj = wcs.WCS(header)
-+
-         with NumpyRNGContext(123456789):
--            x = np.random.rand(2 ** 16, wcsobj.wcs.naxis)
-+            x = np.random.rand(2 ** 12, wcsobj.wcs.naxis)
-             world = wcsobj.wcs_pix2world(x, 1)
-             pix = wcsobj.wcs_world2pix(x, 1)
- 
--    hdr_file_list = list(get_pkg_data_filenames("spectra", pattern="*.hdr"))
-+hdr_spec_file_list = [os.path.basename(fname) for fname in get_pkg_data_filenames("spectra", pattern="*.hdr")]
- 
--    # actually perform a test for each one
--    for filename in hdr_file_list:
-+def test_read_spec_files():
-+    # how many spec files expected
-+    n_spec_files = 6
- 
--        # use the base name of the file, because everything we yield
--        # will show up in the test name in the pandokia report
--        filename = os.path.basename(filename)
--
--        # yield a function name and parameters to make a generated test
--        yield test_spectrum, filename
--
--    # AFTER we tested with every file that we found, check to see that we
--    # actually have the list we expect.  If N=0, we will not have performed
--    # any tests at all.  If N < n_data_files, we are missing some files,
--    # so we will have skipped some tests.  Without this check, both cases
--    # happen silently!
--
--    # how many do we expect to see?
--    n_data_files = 6
--
--    if len(hdr_file_list) != n_data_files:
--        assert False, (
-+    assert len(hdr_spec_file_list) == n_spec_files, (
-             "test_spectra has wrong number data files: found {}, expected "
--            " {}".format(len(hdr_file_list), n_data_files))
-+            " {}".format(len(hdr_spec_file_list), n_spec_files))
-         # b.t.w.  If this assert happens, py.test reports one more test
-         # than it would have otherwise.
-+
-+ at pytest.mark.parametrize("filename", hdr_spec_file_list)
-+def test_spectrum(filename):
-+    header = get_pkg_data_contents(os.path.join("spectra", filename))
-+    wcsobj = wcs.WCS(header)
-+    with NumpyRNGContext(123456789):
-+        x = np.random.rand(2 ** 16, wcsobj.wcs.naxis)
-+        world = wcsobj.wcs_pix2world(x, 1)
-+        pix = wcsobj.wcs_world2pix(x, 1)
-diff --git a/astropy/wcs/tests/test_wcs.py b/astropy/wcs/tests/test_wcs.py
-index cf9db9a..12e77bc 100644
---- a/astropy/wcs/tests/test_wcs.py
-+++ b/astropy/wcs/tests/test_wcs.py
-@@ -26,99 +26,67 @@ from ...io import fits
- from ...extern.six.moves import range
- 
- 
--# test_maps() is a generator
--def test_maps():
-+class TestMaps(object):
-+    def setup(self):
-+        # get the list of the hdr files that we want to test
-+        self._file_list = list(get_pkg_data_filenames("maps", pattern="*.hdr"))
- 
--    # test_map() is the function that is called to perform the generated test
--    def test_map(filename):
--
--        # the test parameter is the base name of the file to use; find
--        # the file in the installed wcs test directory
--        header = get_pkg_data_contents(
--            os.path.join("maps", filename), encoding='binary')
--        wcsobj = wcs.WCS(header)
--
--        world = wcsobj.wcs_pix2world([[97, 97]], 1)
--
--        assert_array_almost_equal(world, [[285.0, -66.25]], decimal=1)
--
--        pix = wcsobj.wcs_world2pix([[285.0, -66.25]], 1)
--
--        assert_array_almost_equal(pix, [[97, 97]], decimal=0)
--
--    # get the list of the hdr files that we want to test
--    hdr_file_list = list(get_pkg_data_filenames("maps", pattern="*.hdr"))
--
--    # actually perform a test for each one
--    for filename in hdr_file_list:
--
--        # use the base name of the file, because everything we yield
--        # will show up in the test name in the pandokia report
--        filename = os.path.basename(filename)
--
--        # yield a function name and parameters to make a generated test
--        yield test_map, filename
--
--    # AFTER we tested with every file that we found, check to see that we
--    # actually have the list we expect.  If N=0, we will not have performed
--    # any tests at all.  If N < n_data_files, we are missing some files,
--    # so we will have skipped some tests.  Without this check, both cases
--    # happen silently!
--
--    # how many do we expect to see?
--    n_data_files = 28
--
--    if len(hdr_file_list) != n_data_files:
--        assert False, (
--            "test_maps has wrong number data files: found {}, expected "
--            " {}".format(len(hdr_file_list), n_data_files))
--        # b.t.w.  If this assert happens, py.test reports one more test
--        # than it would have otherwise.
-+    def test_consistency(self):
-+        # Check to see that we actually have the list we expect, so that we
-+        # do not get in a situation where the list is empty or incomplete and
-+        # the tests still seem to pass correctly.
- 
-+        # how many do we expect to see?
-+        n_data_files = 28
- 
--# test_spectra() is a generator
--def test_spectra():
--
--    # test_spectrum() is the function that is called to perform the
--    # generated test
--    def test_spectrum(filename):
--
--        # the test parameter is the base name of the file to use; find
--        # the file in the installed wcs test directory
--        header = get_pkg_data_contents(
--            os.path.join("spectra", filename), encoding='binary')
--
--        all_wcs = wcs.find_all_wcs(header)
--        assert len(all_wcs) == 9
--
--    # get the list of the hdr files that we want to test
--    hdr_file_list = list(get_pkg_data_filenames("spectra", pattern="*.hdr"))
--
--    # actually perform a test for each one
--    for filename in hdr_file_list:
--
--        # use the base name of the file, because everything we yield
--        # will show up in the test name in the pandokia report
--        filename = os.path.basename(filename)
--
--        # yield a function name and parameters to make a generated test
--        yield test_spectrum, filename
--
--    # AFTER we tested with every file that we found, check to see that we
--    # actually have the list we expect.  If N=0, we will not have performed
--    # any tests at all.  If N < n_data_files, we are missing some files,
--    # so we will have skipped some tests.  Without this check, both cases
--    # happen silently!
--
--    # how many do we expect to see?
--    n_data_files = 6
--
--    if len(hdr_file_list) != n_data_files:
--        assert False, (
-+        assert len(self._file_list) == n_data_files, (
-+            "test_spectra has wrong number data files: found {}, expected "
-+            " {}".format(len(self._file_list), n_data_files))
-+
-+    def test_maps(self):
-+        for filename in self._file_list:
-+            # use the base name of the file, so we get more useful messages
-+            # for failing tests.
-+            filename = os.path.basename(filename)
-+            # Now find the associated file in the installed wcs test directory.
-+            header = get_pkg_data_contents(
-+                os.path.join("maps", filename), encoding='binary')
-+            # finally run the test.
-+            wcsobj = wcs.WCS(header)
-+            world = wcsobj.wcs_pix2world([[97, 97]], 1)
-+            assert_array_almost_equal(world, [[285.0, -66.25]], decimal=1)
-+            pix = wcsobj.wcs_world2pix([[285.0, -66.25]], 1)
-+            assert_array_almost_equal(pix, [[97, 97]], decimal=0)
-+
-+
-+class TestSpectra(object):
-+    def setup(self):
-+        self._file_list = list(get_pkg_data_filenames("spectra",
-+                                                      pattern="*.hdr"))
-+
-+    def test_consistency(self):
-+        # Check to see that we actually have the list we expect, so that we
-+        # do not get in a situation where the list is empty or incomplete and
-+        # the tests still seem to pass correctly.
-+
-+        # how many do we expect to see?
-+        n_data_files = 6
-+
-+        assert len(self._file_list) == n_data_files, (
-             "test_spectra has wrong number data files: found {}, expected "
--            " {}".format(len(hdr_file_list), n_data_files))
--        # b.t.w.  If this assert happens, py.test reports one more test
--        # than it would have otherwise.
-+            " {}".format(len(self._file_list), n_data_files))
-+
-+    def test_spectra(self):
-+        for filename in self._file_list:
-+            # use the base name of the file, so we get more useful messages
-+            # for failing tests.
-+            filename = os.path.basename(filename)
-+            # Now find the associated file in the installed wcs test directory.
-+            header = get_pkg_data_contents(
-+                os.path.join("spectra", filename), encoding='binary')
-+            # finally run the test.
-+            all_wcs = wcs.find_all_wcs(header)
-+            assert len(all_wcs) == 9
- 
- 
- def test_fixes():
diff --git a/debian/patches/disable_helper.patch b/debian/patches/disable_helper.patch
index 16acc22..b38d589 100644
--- a/debian/patches/disable_helper.patch
+++ b/debian/patches/disable_helper.patch
@@ -7,7 +7,7 @@ Subject: Disable astropy-helpers copy
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/setup.cfg b/setup.cfg
-index cc67de4..206e6f8 100644
+index 342cb20..289764c 100644
 --- a/setup.cfg
 +++ b/setup.cfg
 @@ -23,7 +23,7 @@ open_files_ignore = "astropy.log" "/etc/hosts"
@@ -17,5 +17,5 @@ index cc67de4..206e6f8 100644
 -auto_use = True
 +auto_use = False
  
- [pep8]
- # E101 - mix of tabs and spaces
+ # We now have sections for the pep8 and flake8 commands. We need to repeat the
+ # configuration once for each command. Rather than check all warnings, we only
diff --git a/debian/patches/external_python_pkgs.patch b/debian/patches/external_python_pkgs.patch
index f4f5238..4179609 100644
--- a/debian/patches/external_python_pkgs.patch
+++ b/debian/patches/external_python_pkgs.patch
@@ -15,7 +15,7 @@ Subject: Use external python modules instead of convenience copies
  9 files changed, 24 insertions(+), 19 deletions(-)
 
 diff --git a/astropy/coordinates/angle_utilities.py b/astropy/coordinates/angle_utilities.py
-index ddaeaf6..06eefaf 100644
+index cfa894e..bb8fb7d 100644
 --- a/astropy/coordinates/angle_utilities.py
 +++ b/astropy/coordinates/angle_utilities.py
 @@ -64,7 +64,7 @@ class _AngleParser(object):
@@ -55,7 +55,7 @@ index 5398fc0..fb3a30c 100644
  
  def _find_module(name, path=None):
 diff --git a/astropy/table/jsviewer.py b/astropy/table/jsviewer.py
-index ae99eb9..d856cf8 100644
+index d0cc380..9f686ea 100644
 --- a/astropy/table/jsviewer.py
 +++ b/astropy/table/jsviewer.py
 @@ -30,8 +30,8 @@ class Conf(_config.ConfigNamespace):
@@ -67,9 +67,9 @@ index ae99eb9..d856cf8 100644
 +EXTERN_JS_DIR = '/usr/share/javascript'
 +EXTERN_CSS_DIR = EXTERN_JS_DIR
  
- IPYNB_JS_SCRIPT = """
- <script>
-@@ -108,22 +108,24 @@ class JSViewer(object):
+ _SORTING_SCRIPT_PART_1 = """
+ var astropy_sort_num = function(a, b) {{
+@@ -134,22 +134,24 @@ class JSViewer(object):
      @property
      def jquery_urls(self):
          if self._use_local_files:
@@ -99,10 +99,10 @@ index ae99eb9..d856cf8 100644
              return conf.datatables_url[:-3]
  
 diff --git a/astropy/table/tests/test_jsviewer.py b/astropy/table/tests/test_jsviewer.py
-index af04b7e..e02d4be 100644
+index 6a8b033..5018bd4 100644
 --- a/astropy/table/tests/test_jsviewer.py
 +++ b/astropy/table/tests/test_jsviewer.py
-@@ -127,9 +127,9 @@ def test_write_jsviewer_local(tmpdir):
+@@ -145,9 +145,9 @@ def test_write_jsviewer_local(tmpdir):
          table_id='test',
          length='50',
          display_length='10, 25, 50, 100, 500, 1000',
@@ -116,7 +116,7 @@ index af04b7e..e02d4be 100644
      with open(tmpfile) as f:
          assert f.read().strip() == ref.strip()
 diff --git a/astropy/tests/helper.py b/astropy/tests/helper.py
-index 9b0bf3b..b9743c5 100644
+index 9e88d1f..94bd40a 100644
 --- a/astropy/tests/helper.py
 +++ b/astropy/tests/helper.py
 @@ -40,7 +40,7 @@ __all__ = ['raises', 'enable_deprecations_as_exceptions', 'remote_data',
@@ -129,7 +129,7 @@ index 9b0bf3b..b9743c5 100644
  
  else:
 diff --git a/astropy/units/format/cds.py b/astropy/units/format/cds.py
-index ecb78e2..d864738 100644
+index e40c1cf..0d5e033 100644
 --- a/astropy/units/format/cds.py
 +++ b/astropy/units/format/cds.py
 @@ -78,7 +78,7 @@ class CDS(Base):
@@ -141,7 +141,7 @@ index ecb78e2..d864738 100644
  
          tokens = cls._tokens
  
-@@ -141,7 +141,7 @@ class CDS(Base):
+@@ -142,7 +142,7 @@ class CDS(Base):
          <https://bitbucket.org/nxg/unity/>`_.
          """
  
@@ -151,7 +151,7 @@ index ecb78e2..d864738 100644
          tokens = cls._tokens
  
 diff --git a/astropy/units/format/generic.py b/astropy/units/format/generic.py
-index f4aa8c0..d404017 100644
+index 6f1d0e6..8c12a2d 100644
 --- a/astropy/units/format/generic.py
 +++ b/astropy/units/format/generic.py
 @@ -102,7 +102,7 @@ class Generic(Base):
@@ -163,7 +163,7 @@ index f4aa8c0..d404017 100644
  
          tokens = cls._tokens
  
-@@ -181,7 +181,7 @@ class Generic(Base):
+@@ -177,7 +177,7 @@ class Generic(Base):
          formats, the only difference being the set of available unit
          strings.
          """
@@ -173,7 +173,7 @@ index f4aa8c0..d404017 100644
          tokens = cls._tokens
  
 diff --git a/astropy/units/format/ogip.py b/astropy/units/format/ogip.py
-index 7c66a6b..9eed1de 100644
+index e429407..e80e35a 100644
 --- a/astropy/units/format/ogip.py
 +++ b/astropy/units/format/ogip.py
 @@ -110,7 +110,7 @@ class OGIP(generic.Generic):
@@ -185,7 +185,7 @@ index 7c66a6b..9eed1de 100644
  
          tokens = cls._tokens
  
-@@ -179,7 +179,7 @@ class OGIP(generic.Generic):
+@@ -180,7 +180,7 @@ class OGIP(generic.Generic):
          <https://bitbucket.org/nxg/unity/>`_.
          """
  
diff --git a/debian/patches/fix_for_cfitsio_3380.patch b/debian/patches/fix_for_cfitsio_3380.patch
deleted file mode 100644
index a445d10..0000000
--- a/debian/patches/fix_for_cfitsio_3380.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From: Ole Streicher <olebole at debian.org>
-Date: Tue, 13 Dec 2016 09:41:39 +0100
-Subject: Make TFORMx check more flexible The maximal column length in cfitsio
- changed between version 3370 and 3380. This patch checks their syntax,
- without a specific length.
-
----
- astropy/io/fits/tests/test_image.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/astropy/io/fits/tests/test_image.py b/astropy/io/fits/tests/test_image.py
-index a8551dd..17af9a0 100644
---- a/astropy/io/fits/tests/test_image.py
-+++ b/astropy/io/fits/tests/test_image.py
-@@ -1107,7 +1107,7 @@ class TestCompressedImage(FitsTestCase):
-         hdu.writeto(self.temp('test.fits'))
- 
-         with fits.open(self.temp('test.fits')) as hdul:
--            assert (hdul['SCI'].data == cube).all()
-+            assert np.abs(hdul['SCI'].data - cube).max() < 1./15.
- 
-     def test_subtractive_dither_seed(self):
-         """
diff --git a/debian/patches/only_python3-binaries.patch b/debian/patches/only_python3-binaries.patch
index 50bf952..981cdd4 100644
--- a/debian/patches/only_python3-binaries.patch
+++ b/debian/patches/only_python3-binaries.patch
@@ -7,10 +7,10 @@ Subject: Install the scripts only for the Python 3 version
  1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/setup.py b/setup.py
-index ea11de4..aab845e 100755
+index 20f5740..006ec61 100755
 --- a/setup.py
 +++ b/setup.py
-@@ -53,7 +53,8 @@ package_info['package_data'].setdefault('astropy', []).append('data/*')
+@@ -51,7 +51,8 @@ package_info['package_data'].setdefault('astropy', []).append('data/*')
  # Add any necessary entry points
  entry_points = {}
  # Command-line scripts
diff --git a/debian/patches/series b/debian/patches/series
index c47f1df..69494b6 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,9 +1,4 @@
 disable_helper.patch
-fix_for_cfitsio_3380.patch
 only_python3-binaries.patch
 mark_known_failures.patch
-Ensure-NUMPY_LT_1_12-works-for-beta-prerelease.patch
 external_python_pkgs.patch
-Fix-default-value-for-remote_data-option.patch
-Use-parametrize-instead-of-yield.patch
-Allow-pytest-3.x-to-use-plugin-for-doctests-in-.rst-files.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-astro/packages/python-astropy.git



More information about the Debian-astro-commits mailing list