--- /dev/null
--- /dev/null
++usr/bin
--- /dev/null
--- /dev/null
++debian/fits2bitmap.1
++debian/fitscheck.1
++debian/fitsdiff.1
++debian/fitsheader.1
++debian/fitsinfo.1
++debian/samp_hub.1
++debian/volint.1
++debian/wcslint.1
--- /dev/null
--- /dev/null
++python-astropy (1.3-8) unstable; urgency=medium
++
++ * Switch to unstable. Closes: #852550
++ * Revert unrelated "Improved detection of ascii fast_reader in non-fast
++ parsers"
++
++ -- Ole Streicher <olebole@debian.org> Wed, 25 Jan 2017 16:17:26 +0100
++
++python-astropy (1.3-8~exp2) experimental; urgency=medium
++
++ * Fix pytest section, finally re-enabling doctests
++
++ -- Ole Streicher <olebole@debian.org> Thu, 19 Jan 2017 17:27:30 +0100
++
++python-astropy (1.3-8~exp1) experimental; urgency=medium
++
++ * Switch to experimental for some tests
++ * Try to fix doctest failures
++ * Improved detection of ascii fast_reader in non-fast parsers
++
++ -- Ole Streicher <olebole@debian.org> Thu, 19 Jan 2017 09:57:22 +0100
++
++python-astropy (1.3-7) unstable; urgency=medium
++
++ * Allow stderr in all tests
++
++ -- Ole Streicher <olebole@debian.org> Sun, 15 Jan 2017 14:35:17 +0100
++
++python-astropy (1.3-6) unstable; urgency=medium
++
++ * Override missing-build-dependency-for-dh_-command
++ * Add python-astropy-affiliated to suggestions
++ * Add pytest to package dependencies
++ * Fix default value for remote_data option. Closes: #849501
++ * Remove wcslib 4.24 compatibility property. Closes: #844525
++
++ -- Ole Streicher <olebole@debian.org> Sat, 14 Jan 2017 11:28:01 +0100
++
++python-astropy (1.3-5) unstable; urgency=medium
++
++ * Manually add dependencies for external packages
++
++ -- Ole Streicher <olebole@debian.org> Thu, 12 Jan 2017 22:51:46 +0100
++
++python-astropy (1.3-4) unstable; urgency=medium
++
++ * Mark doc package as Multi-Arch: foreign as suggested by Multiarch hinter
++ * Remove wcsaxes suggestions since this is now part of astropy
++ * Use external modules instead of convenience copies. Closes: #849502
++ * Temporarily disable doctests (not working with pytest 3.0.5)
++ * Remove explicite dh_strip_nondeterminism
++
++ -- Ole Streicher <olebole@debian.org> Thu, 12 Jan 2017 12:17:23 +0100
++
++python-astropy (1.3-3) unstable; urgency=medium
++
++ * Ensure NUMPY_LT_1_12 works for beta prerelease. Closes: #849271
++
++ -- Ole Streicher <olebole@debian.org> Thu, 29 Dec 2016 09:52:44 +0100
++
++python-astropy (1.3-2) unstable; urgency=low
++
++ * Disable TestDisplayWorldCoordinate.test_cube_coords to fix FTBFS on MIPS
++
++ -- Ole Streicher <olebole@debian.org> Fri, 23 Dec 2016 17:58:24 +0100
++
++python-astropy (1.3-1) unstable; urgency=low
++
++ * New upstream version 1.3
++ * Switch back to unstable
++ * Rediff patches
++
++ -- Ole Streicher <olebole@debian.org> Fri, 23 Dec 2016 15:13:46 +0100
++
++python-astropy (1.3~rc1-1) experimental; urgency=low
++
++ * Add python3-pkg-resources to astropy-tools dependencies. Closes: #839746
++ * Disable failing VO SSL test to avoid FTBFS with recent Python release.
++ Closes: #844984
++ * New upstream version 1.3~rc1
++ * Rediff patches
++ * Re-enable WCS.all_world2pix test (should be fixed now)
++
++ -- Ole Streicher <olebole@debian.org> Tue, 13 Dec 2016 09:44:29 +0100
++
++python-astropy (1.2.1-1) unstable; urgency=low
++
++ * New upstream version
++
++ -- Ole Streicher <olebole@debian.org> Thu, 23 Jun 2016 09:48:06 +0200
++
++python-astropy (1.2-1) unstable; urgency=low
++
++ * New upstream version. Switch back to unstable
++
++ -- Ole Streicher <olebole@debian.org> Mon, 20 Jun 2016 15:10:14 +0200
++
++python-astropy (1.2~rc1-3) experimental; urgency=low
++
++ * Re-enable unfixed yet tests
++
++ -- Ole Streicher <olebole@debian.org> Thu, 16 Jun 2016 14:06:19 +0200
++
++python-astropy (1.2~rc1-2) experimental; urgency=low
++
++ * Temporarily disable all xfail marks
++
++ -- Ole Streicher <olebole@debian.org> Tue, 14 Jun 2016 21:32:33 +0200
++
++python-astropy (1.2~rc1-1) experimental; urgency=low
++
++ * New upstream RC. Switch to experimental
++ * Install Python 3 versions of the scripts
++ * Push Standards-Version to 3.9.8. No changes needed
++
++ -- Ole Streicher <olebole@debian.org> Sun, 12 Jun 2016 10:32:16 +0200
++
++python-astropy (1.1.2-1) unstable; urgency=low
++
++ * Add ASCL-Id
++ * New upstream version
++ * Fix cfitsio related tests. Closes: #816715
++
++ -- Ole Streicher <olebole@debian.org> Fri, 11 Mar 2016 10:54:46 +0100
++
++python-astropy (1.1.1-3) unstable; urgency=medium
++
++ * Fix for newer pytest. Closes: #812648
++ * Fix for wcslib 5.13
++ * Fix for known test issue with new numpy
++ * Push standards-version to 3.9.7. No changes needed.
++ * Adjust VCS entries in d/control
++
++ -- Ole Streicher <olebole@debian.org> Sun, 14 Feb 2016 15:09:01 +0100
++
++python-astropy (1.1.1-2) unstable; urgency=low
++
++ * Fix dependency of python-astropy-utils on python-astropy
++ * Finally fix test failure
++ * Switch back to unstable since bugfix is approved upstream
++
++ -- Ole Streicher <olebole@debian.org> Thu, 14 Jan 2016 23:06:52 +0100
++
++python-astropy (1.1.1-1~exp1) experimental; urgency=low
++
++ * New upstream version
++ * Depend python-astropy-utils on python-astropy of the same version.
++ Closes: #807834
++ * Revert astropy.wcs to 1.1 to workaround test failure
++ * Switch to experimental since WCS seems to be buggy
++
++ -- Ole Streicher <olebole@debian.org> Thu, 14 Jan 2016 11:14:05 +0100
++
++python-astropy (1.1-1) unstable; urgency=low
++
++ * New upstream version
++ * Switch back to unstable
++
++ -- Ole Streicher <olebole@debian.org> Sat, 12 Dec 2015 10:02:22 +0100
++
++python-astropy (1.1~rc2-1) experimental; urgency=low
++
++ * New upstream RC version
++
++ -- Ole Streicher <olebole@debian.org> Tue, 08 Dec 2015 09:29:29 +0100
++
++python-astropy (1.1~rc1-1) experimental; urgency=low
++
++ * New upstream RC version
++
++ -- Ole Streicher <olebole@debian.org> Tue, 24 Nov 2015 21:09:40 +0100
++
++python-astropy (1.1~b1-1) experimental; urgency=low
++
++ * New upstream beta version
++ * [Martin Pitt] Ignore stderr for python3 test to avoid failing on
++ the ResourceWarning stderr message. Closes: #803068
++
++ -- Ole Streicher <olebole@debian.org> Fri, 16 Oct 2015 08:58:30 +0200
++
++python-astropy (1.0.5-2) unstable; urgency=low
++
++ * Fix FTBS on i386
++
++ -- Ole Streicher <olebole@debian.org> Thu, 08 Oct 2015 15:44:51 +0200
++
++python-astropy (1.0.5-1) unstable; urgency=low
++
++ * New upstream version, providing Python-3.5 compatibility. Closes: #800727
++ * Limit wcslib-dev version to pre-5 releases
++
++ -- Ole Streicher <olebole@debian.org> Tue, 06 Oct 2015 13:26:14 +0200
++
++python-astropy (1.0.4-1) unstable; urgency=low
++
++ * New upstream version
++ * Re-enable dh_strip_nondeterminism override. See #791574 for details.
++
++ -- Ole Streicher <olebole@debian.org> Thu, 27 Aug 2015 10:32:44 +0200
++
++python-astropy (1.0.3-3) unstable; urgency=low
++
++ * Extend Suggests, and build/test-depend on scipy for more extended tests
++ * Fix conflicts/replaces of astropy-utils with pyfits-utils. Closes: #790530
++ * Temporarily remove dh_strip_nondeterminism
++ * Override image-file-in-usr-lib lintian
++
++ -- Ole Streicher <olebole@debian.org> Thu, 16 Jul 2015 10:46:32 +0200
++
++python-astropy (1.0.3-2) unstable; urgency=low
++
++ * Fix FTBS with hurd-i386
++
++ -- Ole Streicher <olebole@debian.org> Wed, 24 Jun 2015 10:38:18 +0200
++
++python-astropy (1.0.3-1) unstable; urgency=low
++
++ * New upstream version
++
++ -- Ole Streicher <olebole@debian.org> Sun, 07 Jun 2015 17:55:56 +0200
++
++python-astropy (1.0.2-1) unstable; urgency=low
++
++ * New upstream version.
++ * Create upstream/metadata with bibliographic information
++ * Create debci control file
++ * New binary package astropy-utils. Conflicts with pyfits-utils.
++ * Package png files as well. Closes: #783573
++ * switch back to unstable
++
++ -- Ole Streicher <olebole@debian.org> Thu, 16 Apr 2015 22:15:02 +0200
++
++python-astropy (1.0-1~exp) experimental; urgency=low
++
++ * New upstream version.
++
++ -- Ole Streicher <olebole@debian.org> Thu, 19 Feb 2015 09:09:44 +0100
++
++python-astropy (1.0~rc2-1) experimental; urgency=medium
++
++ * New upstream release candidate
++
++ -- Ole Streicher <olebole@debian.org> Thu, 12 Feb 2015 09:26:56 +0100
++
++python-astropy (1.0~rc1-3) experimental; urgency=low
++
++ * Fix last FTBS on Hurd
++
++ -- Ole Streicher <olebole@debian.org> Thu, 05 Feb 2015 21:41:57 +0100
++
++python-astropy (1.0~rc1-2) experimental; urgency=low
++
++ * Fix FTBS on several platforms
++ * Disable failing tests (temporartily)
++
++ -- Ole Streicher <olebole@debian.org> Sun, 01 Feb 2015 11:13:52 +0100
++
++python-astropy (1.0~rc1-1) experimental; urgency=low
++
++ * New upstream release candidate
++
++ -- Ole Streicher <olebole@debian.org> Wed, 28 Jan 2015 09:17:42 +0100
++
++python-astropy (0.4.2-2) unstable; urgency=medium
++
++ * Don't set defalt SSL protocol in vo/samp/client.py. Closes: #775780
++
++ -- Ole Streicher <olebole@debian.org> Mon, 19 Jan 2015 21:07:18 +0100
++
++python-astropy (0.4.2-1) unstable; urgency=low
++
++ * New upstream release.
++ * Build-depend on libcfitsio-dev instead of libcfitsio3-dev. Closes: #761716
++ * Upgrade to Standards-Version 3.9.6 (no changes needed)
++
++ -- Ole Streicher <olebole@debian.org> Wed, 24 Sep 2014 14:49:35 +0200
++
++python-astropy (0.4.1+dfsg2-1) unstable; urgency=low
++
++ * Remove astropy-helper and use external dependency. Closes: #761055
++ * Support numpy 1.9. Closes: #761392
++ * Update uploaders email address
++
++ -- Ole Streicher <olebole@debian.org> Sun, 14 Sep 2014 13:50:29 +0200
++
++python-astropy (0.4.1+dfsg-1) unstable; urgency=low
++
++ * New upstream version
++ * Exclude precompiled files from source tarball
++
++ -- Ole Streicher <debian@liska.ath.cx> Sun, 10 Aug 2014 10:22:07 +0200
++
++python-astropy (0.4-4) unstable; urgency=low
++
++ * build-depend on wcslib >= 4.23. Closes: #755485
++
++ -- Ole Streicher <debian@liska.ath.cx> Tue, 22 Jul 2014 17:22:16 +0200
++
++python-astropy (0.4-3) unstable; urgency=low
++
++ * Revert build-depends-indep since it does not work yet.
++
++ -- Ole Streicher <debian@liska.ath.cx> Fri, 18 Jul 2014 16:50:55 +0200
++
++python-astropy (0.4-2) unstable; urgency=low
++
++ * Fix locale on build
++
++ -- Ole Streicher <debian@liska.ath.cx> Fri, 18 Jul 2014 09:16:16 +0200
++
++python-astropy (0.4-1) unstable; urgency=low
++
++ * New upstream version
++
++ -- Ole Streicher <debian@liska.ath.cx> Wed, 16 Jul 2014 20:21:39 +0200
++
++python-astropy (0.4~rc2-3) experimental; urgency=low
++
++ * Convert from python-support to dh_python
++
++ -- Ole Streicher <debian@liska.ath.cx> Mon, 14 Jul 2014 09:46:47 +0200
++
++python-astropy (0.4~rc2-2) experimental; urgency=low
++
++ * Fix FTBS on powerpc, s390
++
++ -- Ole Streicher <debian@liska.ath.cx> Sun, 13 Jul 2014 18:56:28 +0200
++
++python-astropy (0.4~rc2-1) experimental; urgency=low
++
++ * New upstream prerelease
++
++ -- Ole Streicher <debian@liska.ath.cx> Sat, 12 Jul 2014 18:51:26 +0200
++
++python-astropy (0.4~rc1-2) experimental; urgency=low
++
++ * Fix FTBS on powerpc and s390x
++
++ -- Ole Streicher <debian@liska.ath.cx> Wed, 09 Jul 2014 13:16:06 +0200
++
++python-astropy (0.4~rc1-1) experimental; urgency=low
++
++ * New upstream prerelease
++ * Adjust watch file for prerelease
++
++ -- Ole Streicher <debian@liska.ath.cx> Mon, 07 Jul 2014 16:07:05 +0200
++
++python-astropy (0.3.2-3) unstable; urgency=low
++
++ * Fix checksum calculation and test on 32-bit
++
++ -- Ole Streicher <debian@liska.ath.cx> Sat, 17 May 2014 17:05:58 +0200
++
++python-astropy (0.3.2-2) unstable; urgency=low
++
++ * Mark known failures as xfail.
++ * Change maintainer and VCS location to debian-astro
++
++ -- Ole Streicher <debian@liska.ath.cx> Wed, 14 May 2014 14:47:35 +0200
++
++python-astropy (0.3.2-1) unstable; urgency=low
++
++ * New upstream version. Closes: #743554
++ * Don't repack since all sources are included now
++
++ -- Ole Streicher <debian@liska.ath.cx> Wed, 14 May 2014 09:21:18 +0200
++
++python-astropy (0.3.1+dfsg-1) unstable; urgency=low
++
++ * New upstream version
++
++ -- Ole Streicher <debian@liska.ath.cx> Thu, 06 Mar 2014 11:40:55 +0100
++
++python-astropy (0.3+dfsg-3) unstable; urgency=low
++
++ * Re-integrate 0.3-6 fixes which were left out by another mistake :-)
++
++ -- Ole Streicher <debian@liska.ath.cx> Fri, 24 Jan 2014 11:31:26 +0100
++
++python-astropy (0.3+dfsg-2) unstable; urgency=low
++
++ * Re-integrate 0.3-5 fixes which were left out by mistake
++
++ -- Ole Streicher <debian@liska.ath.cx> Fri, 24 Jan 2014 11:11:46 +0100
++
++python-astropy (0.3+dfsg-1) unstable; urgency=low
++
++ * Remove sourceless files jqery*.js. Closes: #735770
++
++ -- Ole Streicher <debian@liska.ath.cx> Fri, 24 Jan 2014 09:43:27 +0100
++
++python-astropy (0.3-6) unstable; urgency=low
++
++ * Fix another FTBS causes on python-3.4.
++
++ -- Ole Streicher <debian@liska.ath.cx> Thu, 16 Jan 2014 16:27:55 +0100
++
++python-astropy (0.3-5) unstable; urgency=low
++
++ * Include upstream fixes to build on python-3.4. Closes: #734293
++ * Upgrade to Standards-Version 3.9.5 (no changes needed)
++
++ -- Ole Streicher <debian@liska.ath.cx> Wed, 15 Jan 2014 09:57:05 +0100
++
++python-astropy (0.3-4) unstable; urgency=low
++
++ * Mark known s390 failures as xfail.
++
++ -- Ole Streicher <debian@liska.ath.cx> Fri, 20 Dec 2013 10:43:16 +0100
++
++python-astropy (0.3-3) unstable; urgency=low
++
++ * Fix vo_test.py for big endian.
++
++ -- Ole Streicher <debian@liska.ath.cx> Tue, 10 Dec 2013 11:23:38 +0100
++
++python-astropy (0.3-2) unstable; urgency=low
++
++ * Fix doctest and mark other known test failures on big endian until
++ they get fixed upstream.
++
++ -- Ole Streicher <debian@liska.ath.cx> Mon, 09 Dec 2013 14:23:04 +0100
++
++python-astropy (0.3-1) unstable; urgency=low
++
++ * New upstream version.
++ * Remove legacy packages that are no longer supported upstream.
++
++ -- Ole Streicher <debian@liska.ath.cx> Sat, 30 Nov 2013 12:56:34 +0100
++
++python-astropy (0.2.5-1) unstable; urgency=low
++
++ * New upstream version.
++
++ -- Ole Streicher <debian@liska.ath.cx> Sun, 27 Oct 2013 18:29:01 +0100
++
++python-astropy (0.2.4-3) unstable; urgency=low
++
++ * Fix "Conflicts" of python3-astropy-legacy. Closes: #719770
++
++ -- Ole Streicher <debian@liska.ath.cx> Thu, 15 Aug 2013 14:33:37 +0200
++
++python-astropy (0.2.4-2) unstable; urgency=low
++
++ * Enable python3 packages
++
++ -- Ole Streicher <debian@liska.ath.cx> Mon, 05 Aug 2013 21:04:23 +0200
++
++python-astropy (0.2.4-1) unstable; urgency=low
++
++ * New upstream version.
++
++ -- Ole Streicher <debian@liska.ath.cx> Fri, 26 Jul 2013 17:41:26 +0200
++
++python-astropy (0.2.3-2~1) experimental; urgency=low
++
++ * Fix FTBS on MIPS and MIPSEL
++
++ -- Ole Streicher <debian@liska.ath.cx> Fri, 21 Jun 2013 16:31:15 +0200
++
++python-astropy (0.2.3-1) unstable; urgency=low
++
++ * New upstream version; incorporates all previous patches
++
++ -- Ole Streicher <debian@liska.ath.cx> Fri, 07 Jun 2013 14:40:05 +0200
++
++python-astropy (0.2.1-1) unstable; urgency=low
++
++ * Fix FTBS (unit test failure) on HURD
++ * Change distribution to unstable
++
++ -- Ole Streicher <debian@liska.ath.cx> Tue, 30 Apr 2013 10:36:01 +0200
++
++python-astropy (0.2.1-1~exp6) experimental; urgency=low
++
++ * Fix FTBS (unit test failure) on MIPS
++
++ -- Ole Streicher <debian@liska.ath.cx> Fri, 26 Apr 2013 09:57:59 +0200
++
++python-astropy (0.2.1-1~exp5) experimental; urgency=low
++
++ * Fix FTBS (unit test failure) on bigendian machines
++
++ -- Ole Streicher <debian@liska.ath.cx> Mon, 22 Apr 2013 19:37:00 +0200
++
++python-astropy (0.2.1-1~exp4) experimental; urgency=low
++
++ * Fix FTBS (unit test failure) on Hurd
++
++ -- Ole Streicher <debian@liska.ath.cx> Sun, 14 Apr 2013 18:39:00 +0200
++
++python-astropy (0.2.1-1~exp3) experimental; urgency=low
++
++ * Suggest optional packages
++
++ -- Ole Streicher <debian@liska.ath.cx> Sun, 14 Apr 2013 12:17:00 +0200
++
++python-astropy (0.2.1-1~exp2) experimental; urgency=low
++
++ * increase test verbosity to catch bigendian FTBS
++
++ -- Ole Streicher <debian@liska.ath.cx> Wed, 10 Apr 2013 16:21:00 +0200
++
++python-astropy (0.2.1-1~exp1) experimental; urgency=low
++
++ * New upstream release
++ * Infrastructure to build python3 packages (but py3 still disabled)
++ * Fix FTBS: set a writeable HOME + MPLCONFIGDIR
++
++ -- Ole Streicher <debian@liska.ath.cx> Thu, 10 Apr 2013 09:10:00 +0200
++
++python-astropy (0.2~b2-1) experimental; urgency=low
++
++ * Initial release. (Closes: #678168)
++
++ -- Ole Streicher <debian@liska.ath.cx> Wed, 30 Jan 2013 10:00:00 +0100
--- /dev/null
--- /dev/null
++astropy/astropy.cfg
++astropy/convolution/boundary_extend.c
++astropy/convolution/boundary_fill.c
++astropy/convolution/boundary_none.c
++astropy/convolution/boundary_wrap.c
++astropy/cython_version.py
++astropy/io/ascii/cparser.c
++astropy/modeling/src/wcsconfig.h
++astropy/table/_np_utils.c
++astropy/time/erfa_time.c
++astropy/version.py
++astropy/wcs/include/astropy_wcs/wcsconfig.h
++astropy/wcs/include/docstrings.h
++astropy/wcs/include/wcsconfig.h
++astropy/wcs/src/docstrings.c
++astropy/extern/configobj/*
++astropy/extern/ply/*
++astropy/extern/six/*
++astropy/extern/js/*
++astropy/extern/css/*
++astropy/extern/pytest.py
++docs/api/*
--- /dev/null
--- /dev/null
++9
--- /dev/null
--- /dev/null
++Source: python-astropy
++Maintainer: Debian Astronomy Maintainers <debian-astro-maintainers@lists.alioth.debian.org>
++Uploaders: Ole Streicher <olebole@debian.org>
++Section: python
++Priority: optional
++Build-Depends: cython,
++ debhelper (>= 9),
++ dh-python,
++ graphviz,
++ libcfitsio-dev | libcfitsio3-dev,
++ liberfa-dev (>= 1.1.0),
++ libexpat1-dev,
++ libjs-jquery,
++ libjs-jquery-datatables,
++ pkg-config,
++ python-all-dev (>= 2.6.6-3~),
++ python-astropy-helpers (>= 1.1~),
++ python-configobj,
++ python-matplotlib,
++ python-nose,
++ python-numpy (>= 1.4),
++ python-ply,
++ python-pytest,
++ python-scipy,
++ python-setuptools (>= 0.6.4),
++ python-six (>= 1.10.0),
++ python-sphinx (>= 1.0.7+dfsg),
++ python-yaml,
++ python3-all-dev,
++ python3-astropy-helpers (>= 1.1~),
++ python3-configobj,
++ python3-matplotlib,
++ python3-nose,
++ python3-numpy (>= 1:1.6.2),
++ python3-ply,
++ python3-pytest,
++ python3-scipy,
++ python3-setuptools (>= 0.6.4),
++ python3-six (>= 1.10.0),
++ python3-yaml,
++ wcslib-dev (>= 5.8),
++ zlib1g-dev
++Standards-Version: 3.9.8
++Vcs-Browser: https://anonscm.debian.org/cgit/debian-astro/packages/python-astropy.git
++Vcs-Git: https://anonscm.debian.org/git/debian-astro/packages/python-astropy.git
++Homepage: http://astropy.org
++X-Python-Version: >= 2.6
++X-Python3-Version: >= 3.2
++
++Package: python-astropy
++Architecture: any
++Depends: python-configobj,
++ python-ply,
++ python-pytest,
++ python-six (>= 1.10.0),
++ ${misc:Depends},
++ ${python:Depends},
++ ${shlibs:Depends}
++Suggests: libxml2-utils,
++ python-astropy-affiliated,
++ python-astropy-doc,
++ python-beautifulsoup,
++ python-h5py,
++ python-matplotlib,
++ python-pandas,
++ python-scipy,
++ python-tz,
++ python-yaml
++Recommends: libjs-jquery,
++ libjs-jquery-datatables
++Description: Core functionality for performing astrophysics with Python
++ The astropy package contains core functionality and some common tools
++ needed for performing astronomy and astrophysics research with Python.
++ It can be extended by a number of "affiliated packages" that are
++ intended to work with the core package.
++
++Package: python3-astropy
++Architecture: any
++Depends: python3-configobj,
++ python3-ply,
++ python3-pytest,
++ python3-six (>= 1.10.0),
++ ${misc:Depends},
++ ${python3:Depends},
++ ${shlibs:Depends}
++Suggests: libxml2-utils,
++ python-astropy-doc,
++ python3-astropy-affiliated,
++ python3-beautifulsoup,
++ python3-h5py,
++ python3-matplotlib,
++ python3-pandas,
++ python3-scipy,
++ python3-tz,
++ python3-yaml
++Recommends: libjs-jquery,
++ libjs-jquery-datatables
++Description: Core functionality for performing astrophysics with Python3
++ The astropy package contains core functionality and some common tools
++ needed for performing astronomy and astrophysics research with Python3.
++ It can be extended by a number of "affiliated packages" that are
++ intended to work with the core package.
++
++Package: python-astropy-doc
++Architecture: all
++Multi-Arch: foreign
++Section: doc
++Depends: ${misc:Depends},
++ ${sphinxdoc:Depends}
++Description: Core functionality for performing astrophysics with Python (doc)
++ The astropy package contains core functionality and some common tools
++ needed for performing astronomy and astrophysics research with Python.
++ It can be extended by a number of "affiliated packages" that are
++ intended to work with the core package.
++ .
++ This package contains the package documentation.
++
++Package: astropy-utils
++Architecture: all
++Section: science
++Depends: python3-astropy (<< ${source:Version}.1~),
++ python3-astropy (>= ${source:Version}),
++ python3-pkg-resources,
++ ${misc:Depends},
++ ${python3:Depends}
++Breaks: fitscheck (<< 1:3.1.2-1~),
++ pyfits-utils (<<1:3.3-4~),
++ python-pyfits (<< 1:3.0.7-4~)
++Replaces: fitscheck (<< 1:3.1.2-1~),
++ pyfits-utils (<<1:3.3-4~),
++ python-pyfits (<< 1:3.0.7-4~)
++Description: Command line tools from astropy
++ The astropy package contains core functionality and some common tools
++ needed for performing astronomy and astrophysics research with Python.
++ .
++ This package contains the tools that come with astropy:
++ .
++ * fitscheck: Detect and fix FITS standards violations
++ * fits2bitmap: Create a bitmap file from a FITS image.
++ * fitsdiff: Compare two FITS image files and report the differences in
++ header keywords and data.
++ * fitsheader: Print the header(s) of one or more FITS file(s) to the
++ standard output in a human-readable format.
++ * samp_hub: SAMP Hub Server.
++ * volint: Check a VOTable file for compliance to the VOTable specification
++ * wcslint: Check the WCS keywords in a FITS file for compliance against
++ the standards
--- /dev/null
--- /dev/null
++Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
++Upstream-Name: astropy
++Upstream-Author: The Astropy Developers
++Source: http://www.astropy.org/
++
++Files: * astropy/io/fits/*
++ astropy_helpers/astropy_helpers/sphinx/ext/compiler_unparse.py
++ astropy_helpers/astropy_helpers/sphinx/ext/comment_eater.py
++ astropy_helpers/astropy_helpers/sphinx/ext/traitsdoc.py
++ astropy/extern/configobj/*
++ astropy/extern/js/jquery.dataTables.js
++Copyright: Copyright (c) 2011, Astropy Developers,
++ 2004-2005 Association of Universities for Research in Astronomy,
++ 2006 Enthought, Inc.,
++ 2010-2011 Smithsonian Astrophysical Observatory,
++ 2003-2010 Michael Foord, Mark Andrews, Nicola Larosa,
++ 1995-2010 Jean-loup Gailly and Mark Adler,
++ 2001-2011 David M. Beazley (Dabeaz LLC)
++ 2008-2013 Allan Jardine
++License: BSD-3-Clause
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are met:
++ .
++ 1. Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ .
++ 2. Redistributions in binary form must reproduce the above
++ copyright notice, this list of conditions and the following
++ disclaimer in the documentation and/or other materials provided
++ with the distribution.
++ .
++ 3. Neither the name of AURA and its representatives nor the names
++ of the Smithsonian Astrophysical Observatory, Enthought Inc., Michael Foord,
++ the name of Voidspace, the names of its contributors, David Beazley, or
++ Dabeaz LLC, Allan Jardine nor SpryMedia, may not be used to endorse or
++ promote products derived from this software without specific prior
++ written permission.
++ .
++ THIS SOFTWARE IS PROVIDED BY ITS AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED
++ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
++ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
++ DISCLAIMED. IN NO EVENT SHALL AURA BE LIABLE FOR ANY DIRECT, INDIRECT,
++ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
++ BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
++ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
++ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
++ TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
++ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
++ DAMAGE.
++
++Files: cextern/expat/*
++Copyright: 2001-2007 Expat maintainers,
++ 1998-2003 Thai Open Source Software Center Ltd and Clark Cooper
++ 2014 jQuery Foundation and other contributors
++License: Expat
++ Permission is hereby granted, free of charge, to any person obtaining a copy
++ of this software and associated documentation files (the "Software"), to deal
++ in the Software without restriction, includingwithout limitation the rights
++ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++ copies of the Software, and to permit persons to whom the Software is
++ furnished to do so, subject to the following conditions:
++ .
++ The above copyright notice and this permission notice shall be included in
++ all copies or substantial portions of the Software.
++ .
++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
++ SOFTWARE.
++
++Files: astropy_helpers/astropy_helpers/sphinx/ext/numpydoc.py
++ astropy_helpers/astropy_helpers/sphinx/ext/docscrape.py
++ astropy_helpers/astropy_helpers/sphinx/ext/docscrape_sphinx.py
++ astropy_helpers/astropy_helpers/sphinx/ext/phantom_import.py
++ debian/*
++Copyright: Copyright (C) 2008 Stefan van der Walt <stefan@mentat.za.net>,
++ Pauli Virtanen <pav@iki.fi>,
++ 2012-2015 Ole Streicher <olebole@debian.org>
++License: BSD-2-Clause
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are met:
++ .
++ 1. Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ 2. Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in
++ the documentation and/or other materials provided with the
++ distribution.
++ .
++ THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
++ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
++ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
++ EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
++ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
++ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
++ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
++ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
++ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++Files: cextern/wcslib/*
++Copyright: Copyright (C) 1995-2012, Mark Calabretta
++License: LGPL-3
++ WCSLIB is free software: you can redistribute it and/or modify it under the
++ terms of the GNU Lesser General Public License as published by the Free
++ Software Foundation, either version 3 of the License, or (at your option)
++ any later version.
++ .
++ WCSLIB is distributed in the hope that it will be useful, but WITHOUT ANY
++ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
++ FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
++ more details.
++ .
++ On Debian systems, the full text of the GNU Lesser General Public
++ License version 3 can be found in the file
++ `/usr/share/common-licenses/LGPL-3'.
++ .
++ Correspondence concerning WCSLIB may be directed to:
++ Internet email: mcalabre@atnf.csiro.au
++ Postal address: Dr. Mark Calabretta
++ Australia Telescope National Facility, CSIRO
++ PO Box 76
++ Epping NSW 1710
++ AUSTRALIA
++Comment: Note that these files are not used in the package build process, so
++ the copyright information is included here only as a reference.
--- /dev/null
--- /dev/null
++.TH FITS2BITMAP 1 "April 2015" "fits2bitmap" "astropy 1.0.2"
++.SH NAME
++fits2bitmap \- Create a bitmap file from a FITS image.
++.SH DESCRIPTION
++usage: fits2bitmap [\-h] [\-e hdu] [\-o filename] [\-\-scale SCALE] [\-\-power POWER]
++.IP
++[\-\-asinh_a ASINH_A] [\-\-min_cut MIN_CUT] [\-\-max_cut MAX_CUT]
++[\-\-min_percent MIN_PERCENT] [\-\-max_percent MAX_PERCENT]
++[\-\-percent PERCENT] [\-\-cmap colormap_name]
++filename [filename ...]
++.SS "positional arguments:"
++.TP
++filename
++Path to one or more FITS files to convert
++.SS "optional arguments:"
++.TP
++\fB\-h\fR, \fB\-\-help\fR
++show this help message and exit
++.TP
++\fB\-e\fR hdu, \fB\-\-ext\fR hdu
++specify the HDU extension number or name
++.TP
++\fB\-o\fR filename
++Filename for the output image (Default is a PNG file
++with the same name as the FITS file)
++.TP
++\fB\-\-scale\fR SCALE
++Type of image scaling ("linear", "sqrt", "power",
++"log", or "asinh")
++.TP
++\fB\-\-power\fR POWER
++Power index for "power" scaling
++.TP
++\fB\-\-asinh_a\fR ASINH_A
++The value in normalized image where the asinh curve
++transitions from linear to logarithmic behavior (used
++only for "asinh" scaling)
++.TP
++\fB\-\-min_cut\fR MIN_CUT
++The pixel value of the minimum cut level
++.TP
++\fB\-\-max_cut\fR MAX_CUT
++The pixel value of the maximum cut level
++.TP
++\fB\-\-min_percent\fR MIN_PERCENT
++The percentile value used to determine the minimum cut
++level
++.TP
++\fB\-\-max_percent\fR MAX_PERCENT
++The percentile value used to determine the maximum cut
++level
++.TP
++\fB\-\-percent\fR PERCENT
++The percentage of the image values used to determine
++the pixel values of the minimum and maximum cut levels
++.TP
++\fB\-\-cmap\fR colormap_name
++matplotlib color map name
--- /dev/null
--- /dev/null
++.TH fitscheck 1 "April 2015" "fitscheck" "astropy 1.0.2"
++.SH NAME
++fitscheck \- script to detect and fix FITS standards violations
++.SH SYNOPSIS
++.B fitscheck
++[\fIOPTION\fR]... [\fIFILE\fR]...
++.SH DESCRIPTION
++.PP
++\fBfitscheck\fR is a command line script based on pyfits for verifying
++and updating the CHECKSUM and DATASUM keywords of FITS files.
++\fBitscheck\fR can also detect and often fix other FITS standards
++violations. \fBfitscheck\fR facilitates re\-writing the non-standard
++checksums originally generated by pyfits with standard checksums which
++will interoperate with cfitsio.
++.PP
++\fBfitscheck\fR will refuse to write new checksums if the checksum keywords
++are missing or their values are bad. Use \fB\-\-force\fR to write new
++checksums regardless of whether or not they currently exist or pass.
++Use \fB\-\-ignore-missing\fR to tolerate missing checksum keywords without
++comment.
++.SH OPTIONS
++.TP
++\fB\-h\fR, \fB\-\-help\fR
++Display terse usage information (help).
++.TP
++\fB\-k\fR [\fIstandard\fR | \fInonstandard\fR | \fIeither\fR | \fInone\fR], \fB\-\-checksum\fR=[\fIstandard\fR | \fInonstandard\fR | \fIeither\fR | \fInone\fR]
++Choose FITS checksum mode or none. Defaults to standard.
++.TP
++\fB\-w\fR, \fB\-\-write\fR
++Write out file checksums and/or FITS compliance fixes.
++.TP
++\fB\-f\fR, \fB\-\-force\fR
++Do file update even if original checksum was bad.
++.TP
++\fB\-c\fR, \fB\-\-compliance\fR
++Do FITS compliance checking, fix if possible.
++.TP
++\fB\-i\fR, \fB\-\-ignore\-missing\fR
++Ignore missing checksums.
++.TP
++\fB\-v\fR, \fB\-\-verbose\fR
++Generate extra output.
++.SH "EXAMPLES"
++.B "% fitscheck --checksum either --write *.fits"
++.br
++Verify and update checksums, tolerating non-standard checksums, updating to standard checksum.
++
++.B "% fitscheck --write --force *.fits"
++.br
++Write new checksums, even if existing checksums are bad or missing.
++
++.B "% fitscheck --compliance *.fits"
++.br
++Verify standard checksums and FITS compliance without changing the files.
++
++.B "% fitscheck --checksum nonstandard *.fits"
++.br
++Verify original nonstandard checksums only.
++
++.B "% fitscheck --checksum none --compliance --write *.fits"
++.br
++Only check and fix compliance problems, ignoring checksums.
++
++.B "% fitscheck *.fits"
++.br
++Verify standard interoperable checksums.
++
++.B "% fitscheck --checksum none --write *.fits"
++.br
++Delete checksum keywords.
++
--- /dev/null
--- /dev/null
++.TH fitsdiff 1 "April 2015" "fitsdiff" "astropy 1.0.2"
++.SH NAME
++fitsdiff \- compare two FITS image files and report the differences in header keywords and data.
++.SH SYNOPSIS
++.B fitsdiff
++[\fIOPTION\fR]... \fIFILE1\fR \fIFILE2\fR
++.SH DESCRIPTION
++.PP
++\fBfitsdiff\fR is a command line script based on pyfits to compare two
++FITS image files and report the differences in header keywords and data.
++.PP
++\fIFILE1\fR and \fIFILE2\fR are the two files to be compared. They may also be
++wild cards, in such cases, they must be enclosed by double or single quotes, or
++they may be directory names. If both are directory names, all files in each of
++the directories will be included; if only one is directory name, then the
++directory name will be prefixed to the file name(s) specified by the other
++argument. For example:
++.TP
++.B "% fitsdiff ""*.fits"" ""/machine/data1""
++.PP
++will compare all FITS files in the current directory to the corresponding files
++in the directory \fI/machine/data1\fR.
++.PP
++If the two files are identical within the specified conditions, it will report
++"No difference is found." If the value(s) of \fI-c\fR and \fI-k\fR takes the form
++\fI\@filename\fR, list is in the text file \fIfilename\fR, and each line in that text
++file contains one keyword.
++.PP
++\fBfitsdiff\fR commandline arguments can also be set using the environment variable
++\fIFITSDIFF_SETTINGS\fR. If the \fIFITSDIFF_SETTINGS\fR environment variable is present,
++each argument present will override the corresponding argument on the
++commandline. This environment variable exists to make it easier to change the
++behavior of \fBfitsdiff\fR on a global level, such as in a set of regression tests.
++.SH GENERIC OPTIONS
++.TP
++\fB\-h\fR, \fB\-\-help\fR
++Display terse usage information (help).
++.TP
++\fB\-q\fR, \fB\-\-quiet\fR
++Produce no output and just return a status code.
++.TP
++\fB\-n\fR \fIINTEGER\fR, \fB\-\-num\-diffs\fR=\fIINTEGER\fR
++Max number of data differences (image pixel or table element) to report per extension (default 10).
++.TP
++\fB\-d\fR \fINUMBER\fR, \fB\-\-difference-tolerance\fR=\fINUMBER\fR
++The relative tolerance for comparison of two numbers,
++specifically two floating point numbers. This applies
++to data in both images and tables, and to floating
++point keyword values in headers (default 0.0).
++.TP
++\fB\-b\fR, \fB\-\-no\-ignore\-blanks\fR
++Don't ignore trailing blanks (whitespace) in string
++values. Otherwise trailing blanks both in header
++keywords/values and in table column values) are not
++treated as significant i.e. without this option 'ABC ' and 'ABC' are considered equivalent.
++.TP
++\fB\-\-no\-ignore\-blank\-cards\fR
++Don't ignore entirely blank cards in headers. Normally \fIfitsdiff\fR does not
++consider blank cards when comparing headers, but this will ensure that even blank
++cards match up.
++.TP
++\fB\-o\fR \fIFILE\fR, \fB\-\-output\-file\fR=\fIFILE\fR
++Output results to this file; otherwise results are printed to stdout.
++.SH "HEADER COMPARISON OPTIONS"
++.TP
++\fB\-k\fR \fIKEYWORDS\fR, \fB\-\-ignore\-keywords\fR=\fIKEYWORDS\fR
++Comma-separated list of keywords not to be compared.
++Keywords may contain wildcard patterns. To exclude
++all keywords, use "*"; make sure to have double or
++single quotes around the asterisk.
++.TP
++\fB\-c\fR \fIKEYWORDS\fR, \fB\-\-ignore\-comments\fR=\fIKEYWORDS\fR
++Comma-separated list of keywords whose comments will not be compared.
++Wildcards may be used as with \fI\-\-ignore-keywords\fR.
++.SH "TABLE COMPARISON OPTIONS"
++.TP
++\fB\-f\fR \fICOLUMNS\fR, \fB\-\-ignore\-fields\fR=\fICOLUMNS\fR
++Comma-separated list of fields (i.e. columns) not to be compared.
++All columns may be excluded using "*" as with \fI\-\-ignore-keywords\fR.
++.SH "EXAMPLES"
++.B "% fitsdiff -k filename,filtnam1 -n 5 -d 1.e-6 test1.fits test2"
++.br
++This command will compare files \fItest1.fits\fR and \fItest2.fits\fR, report maximum of 5
++different pixels values per extension, only report data values larger than
++1.e-6 relative to each other, and will neglect the different values of
++keywords \fIFILENAME\fR and \fIFILTNAM1\fR (or their very existence).
++
--- /dev/null
--- /dev/null
++.TH FITSHEADER 1 "April 2015" "fitsheader" "astropy 1.0.2"
++.SH NAME
++fitsheader \- Print the header(s) of a FITS file.
++.SH DESCRIPTION
++usage: fitsheader [\-h] [\-e HDU] [\-k KEYWORD] [\-t [FORMAT]] [\-c]
++.IP
++filename [filename ...]
++.PP
++Print the header(s) of a FITS file. Optional arguments allow the desired
++extension(s), keyword(s), and output format to be specified. Note that in the
++case of a compressed image, the decompressed header is shown by default.
++.SS "positional arguments:"
++.TP
++filename
++path to one or more files; wildcards are supported
++.SS "optional arguments:"
++.TP
++\fB\-h\fR, \fB\-\-help\fR
++show this help message and exit
++.TP
++\fB\-e\fR HDU, \fB\-\-extension\fR HDU
++specify the extension by name or number; this argument
++can be repeated to select multiple extensions
++.TP
++\fB\-k\fR KEYWORD, \fB\-\-keyword\fR KEYWORD
++specify a keyword; this argument can be repeated to
++select multiple keywords; also supports wildcards
++.TP
++\fB\-t\fR [FORMAT], \fB\-\-table\fR [FORMAT]
++print the header(s) in machine\-readable table format;
++the default format is "ascii.fixed_width" (can be
++"ascii.csv", "ascii.html", "ascii.latex", "fits", etc)
++.TP
++\fB\-c\fR, \fB\-\-compressed\fR
++for compressed image data, show the true header which
++describes the compression rather than the data
--- /dev/null
--- /dev/null
++.TH fitsinfo 1 "April 2015" "fitsdiff" "astropy 1.1"
++.SH NAME
++fitsinfo \- Print a summary of the HDUs in one or more FITS files(s)
++.SH SYNOPSIS
++.B fitsinfo
++\fIfilename\fR [\fIfilename\fR ...]
++.SH DESCRIPTION
++.PP
++\fBfitsinfo\fR is a command-line script based on astropy.io.fits for
++printing a summary of the HDUs in one or more FITS files(s) to the
++standard output.
++.SH EXAMPLES
++.PP
++Example usage of \fBfitsinfo\fR:
++.PP
++1. Print a summary of the HDUs in a FITS file:
++.PP
++ $ fitsinfo filename.fits
++
++ Filename: filename.fits
++ No. Name Type Cards Dimensions Format
++ 0 PRIMARY PrimaryHDU 138 ()
++ 1 SCI ImageHDU 61 (800, 800) int16
++ 2 SCI ImageHDU 61 (800, 800) int16
++ 3 SCI ImageHDU 61 (800, 800) int16
++ 4 SCI ImageHDU 61 (800, 800) int16
++.PP
++2. Print a summary of HDUs of all the FITS files in the current directory:
++.PP
++ $ fitsinfo *.fits
++.
--- /dev/null
--- /dev/null
++From: Marten van Kerkwijk <mhvk@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
--- /dev/null
--- /dev/null
++From: Marten van Kerkwijk <mhvk@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():
--- /dev/null
--- /dev/null
++From: Thomas Robitaille <thomas.robitaille@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'
++
--- /dev/null
--- /dev/null
++From: kelle <kellecruz@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):
+++@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):
+++
+++@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)
+++
+++@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):
+++
+++@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/
+++@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
+++@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)
+++
+++
+++@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)
+++
+++
+++@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
++
+++@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
+++@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)
+++
+++
+++@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():
+++@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'
++
++
++-@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():
+++@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():
+++@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))
+++@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.
+++
+++@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():
--- /dev/null
--- /dev/null
++From: Ole Streicher <olebole@debian.org>
++Date: Tue, 13 Dec 2016 09:41:39 +0100
++Subject: Disable astropy-helpers copy
++
++---
++ setup.cfg | 2 +-
++ 1 file changed, 1 insertion(+), 1 deletion(-)
++
++diff --git a/setup.cfg b/setup.cfg
++index cc67de4..206e6f8 100644
++--- a/setup.cfg
+++++ b/setup.cfg
++@@ -23,7 +23,7 @@ open_files_ignore = "astropy.log" "/etc/hosts"
++ bitmap = static/wininst_background.bmp
++
++ [ah_bootstrap]
++-auto_use = True
+++auto_use = False
++
++ [pep8]
++ # E101 - mix of tabs and spaces
--- /dev/null
--- /dev/null
++From: Ole Streicher <olebole@debian.org>
++Date: Thu, 12 Jan 2017 11:37:47 +0100
++Subject: Use external python modules instead of convenience copies
++
++---
++ astropy/coordinates/angle_utilities.py | 2 +-
++ astropy/extern/configobj.py | 5 ++++-
++ astropy/extern/six.py | 2 +-
++ astropy/table/jsviewer.py | 14 ++++++++------
++ astropy/table/tests/test_jsviewer.py | 6 +++---
++ astropy/tests/helper.py | 2 +-
++ astropy/units/format/cds.py | 4 ++--
++ astropy/units/format/generic.py | 4 ++--
++ astropy/units/format/ogip.py | 4 ++--
++ 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
++--- a/astropy/coordinates/angle_utilities.py
+++++ b/astropy/coordinates/angle_utilities.py
++@@ -64,7 +64,7 @@ class _AngleParser(object):
++
++ @classmethod
++ def _make_parser(cls):
++- from ..extern.ply import lex, yacc
+++ from ply import lex, yacc
++
++ # List of token names.
++ tokens = (
++diff --git a/astropy/extern/configobj.py b/astropy/extern/configobj.py
++index 8d1bd8c..e3bb0e0 100644
++--- a/astropy/extern/configobj.py
+++++ b/astropy/extern/configobj.py
++@@ -7,5 +7,8 @@ currently installed version of python.
++ Also, this should actually never actually show up as a docstring, because
++ it should get overwritten by the appropriate configobj docstring.
++ """
+++from __future__ import absolute_import
+++import validate
+++import configobj
+++
++
++-from .configobj import configobj, validate, __doc__
++diff --git a/astropy/extern/six.py b/astropy/extern/six.py
++index 5398fc0..fb3a30c 100644
++--- a/astropy/extern/six.py
+++++ b/astropy/extern/six.py
++@@ -13,7 +13,7 @@ _SIX_MIN_VERSION = StrictVersion('1.10.0')
++ # Update this to prevent Astropy from using its bundled copy of six
++ # (but only if some other version of at least _SIX_MIN_VERSION can
++ # be provided)
++-_SIX_SEARCH_PATH = ['astropy.extern.bundled.six', 'six']
+++_SIX_SEARCH_PATH = ['six']
++
++
++ def _find_module(name, path=None):
++diff --git a/astropy/table/jsviewer.py b/astropy/table/jsviewer.py
++index ae99eb9..d856cf8 100644
++--- a/astropy/table/jsviewer.py
+++++ b/astropy/table/jsviewer.py
++@@ -30,8 +30,8 @@ class Conf(_config.ConfigNamespace):
++ conf = Conf()
++
++
++-EXTERN_JS_DIR = abspath(join(dirname(extern.__file__), 'js'))
++-EXTERN_CSS_DIR = abspath(join(dirname(extern.__file__), 'css'))
+++EXTERN_JS_DIR = '/usr/share/javascript'
+++EXTERN_CSS_DIR = EXTERN_JS_DIR
++
++ IPYNB_JS_SCRIPT = """
++ <script>
++@@ -108,22 +108,24 @@ class JSViewer(object):
++ @property
++ def jquery_urls(self):
++ if self._use_local_files:
++- return ['file://' + join(EXTERN_JS_DIR, 'jquery-3.1.1.min.js'),
++- 'file://' + join(EXTERN_JS_DIR, 'jquery.dataTables.min.js')]
+++ return ['file://' + join(EXTERN_JS_DIR, 'jquery', 'jquery.min.js'),
+++ 'file://' + join(EXTERN_JS_DIR, 'jquery-datatables',
+++ 'jquery.dataTables.min.js')]
++ else:
++ return [conf.jquery_url, conf.datatables_url]
++
++ @property
++ def css_urls(self):
++ if self._use_local_files:
++- return ['file://' + join(EXTERN_CSS_DIR,
+++ return ['file://' + join(EXTERN_CSS_DIR, 'jquery-datatables', 'css',
++ 'jquery.dataTables.css')]
++ else:
++ return conf.css_urls
++
++ def _jstable_file(self):
++ if self._use_local_files:
++- return 'file://' + join(EXTERN_JS_DIR, 'jquery.dataTables.min')
+++ return 'file://' + join(EXTERN_JS_DIR, 'jquery-datatables',
+++ 'jquery.dataTables.min')
++ else:
++ 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
++--- a/astropy/table/tests/test_jsviewer.py
+++++ b/astropy/table/tests/test_jsviewer.py
++@@ -127,9 +127,9 @@ def test_write_jsviewer_local(tmpdir):
++ table_id='test',
++ length='50',
++ display_length='10, 25, 50, 100, 500, 1000',
++- datatables_css_url='file://' + join(EXTERN_DIR, 'css', 'jquery.dataTables.css'),
++- datatables_js_url='file://' + join(EXTERN_DIR, 'js', 'jquery.dataTables.min.js'),
++- jquery_url='file://' + join(EXTERN_DIR, 'js', 'jquery-3.1.1.min.js')
+++ datatables_css_url='file:///usr/share/javascript/jquery-datatables/css/jquery.dataTables.css',
+++ datatables_js_url='file:///usr/share/javascript/jquery-datatables/jquery.dataTables.min.js',
+++ jquery_url='file:///usr/share/javascript/jquery/jquery.min.js'
++ )
++ 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
++--- a/astropy/tests/helper.py
+++++ b/astropy/tests/helper.py
++@@ -40,7 +40,7 @@ __all__ = ['raises', 'enable_deprecations_as_exceptions', 'remote_data',
++ 'pickle_protocol', 'generic_recursive_equality_test']
++
++
++-if os.environ.get('ASTROPY_USE_SYSTEM_PYTEST') or '_pytest' in sys.modules:
+++if True:
++ import pytest
++
++ else:
++diff --git a/astropy/units/format/cds.py b/astropy/units/format/cds.py
++index ecb78e2..d864738 100644
++--- a/astropy/units/format/cds.py
+++++ b/astropy/units/format/cds.py
++@@ -78,7 +78,7 @@ class CDS(Base):
++
++ @classmethod
++ def _make_lexer(cls):
++- from ...extern.ply import lex
+++ from ply import lex
++
++ tokens = cls._tokens
++
++@@ -141,7 +141,7 @@ class CDS(Base):
++ <https://bitbucket.org/nxg/unity/>`_.
++ """
++
++- from ...extern.ply import yacc
+++ from ply import yacc
++
++ tokens = cls._tokens
++
++diff --git a/astropy/units/format/generic.py b/astropy/units/format/generic.py
++index f4aa8c0..d404017 100644
++--- a/astropy/units/format/generic.py
+++++ b/astropy/units/format/generic.py
++@@ -102,7 +102,7 @@ class Generic(Base):
++
++ @classmethod
++ def _make_lexer(cls):
++- from ...extern.ply import lex
+++ from ply import lex
++
++ tokens = cls._tokens
++
++@@ -181,7 +181,7 @@ class Generic(Base):
++ formats, the only difference being the set of available unit
++ strings.
++ """
++- from ...extern.ply import yacc
+++ from ply import yacc
++
++ tokens = cls._tokens
++
++diff --git a/astropy/units/format/ogip.py b/astropy/units/format/ogip.py
++index 7c66a6b..9eed1de 100644
++--- a/astropy/units/format/ogip.py
+++++ b/astropy/units/format/ogip.py
++@@ -110,7 +110,7 @@ class OGIP(generic.Generic):
++
++ @classmethod
++ def _make_lexer(cls):
++- from ...extern.ply import lex
+++ from ply import lex
++
++ tokens = cls._tokens
++
++@@ -179,7 +179,7 @@ class OGIP(generic.Generic):
++ <https://bitbucket.org/nxg/unity/>`_.
++ """
++
++- from ...extern.ply import yacc
+++ from ply import yacc
++
++ tokens = cls._tokens
++
--- /dev/null
--- /dev/null
++From: Ole Streicher <olebole@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):
++ """
--- /dev/null
--- /dev/null
++From: Ole Streicher <olebole@debian.org>
++Date: Tue, 13 Dec 2016 09:41:39 +0100
++Subject: Mark all known test failures as xfail. These failures have been
++ discussed with upstream.
++
++---
++ astropy/table/tests/test_info.py | 4 +++-
++ astropy/tests/tests/test_socketblocker.py | 4 ++--
++ astropy/visualization/wcsaxes/tests/test_display_world_coordinates.py | 4 ++++
++ astropy/vo/samp/tests/test_standard_profile.py | 2 ++
++ 4 files changed, 11 insertions(+), 3 deletions(-)
++
++diff --git a/astropy/table/tests/test_info.py b/astropy/table/tests/test_info.py
++index 2bbcc7a..50fbdb4 100644
++--- a/astropy/table/tests/test_info.py
+++++ b/astropy/table/tests/test_info.py
++@@ -8,6 +8,7 @@ from collections import OrderedDict
++
++ import numpy as np
++
+++from ...tests.helper import pytest
++ from ...extern import six
++ from ...extern.six.moves import cStringIO as StringIO
++ from ... import units as u
++@@ -229,7 +230,8 @@ def test_class_attribute():
++ t.info(out=out)
++ assert out.getvalue().splitlines() == exp
++
++-
+++# see https://github.com/astropy/astropy/issues/4336
+++@pytest.mark.xfail()
++ def test_ignore_warnings():
++ t = table.Table([[np.nan, np.nan]])
++ with warnings.catch_warnings(record=True) as warns:
++diff --git a/astropy/tests/tests/test_socketblocker.py b/astropy/tests/tests/test_socketblocker.py
++index c362fa5..783defe 100644
++--- a/astropy/tests/tests/test_socketblocker.py
+++++ b/astropy/tests/tests/test_socketblocker.py
++@@ -66,8 +66,8 @@ PY3_4 = sys.version_info[:2] >= (3, 4)
++ def _square(x):
++ return x ** 2
++
++-
++-@pytest.mark.skipif('not PY3_4 or sys.platform == "win32" or sys.platform.startswith("gnu0")')
+++# see https://github.com/astropy/astropy/issues/4193
+++@pytest.mark.skipif(True, reason="Blocks on Debian CI test")
++ def test_multiprocessing_forkserver():
++ """
++ Test that using multiprocessing with forkserver works. Perhaps
++diff --git a/astropy/visualization/wcsaxes/tests/test_display_world_coordinates.py b/astropy/visualization/wcsaxes/tests/test_display_world_coordinates.py
++index 53436dd..4c710e7 100644
++--- a/astropy/visualization/wcsaxes/tests/test_display_world_coordinates.py
+++++ b/astropy/visualization/wcsaxes/tests/test_display_world_coordinates.py
++@@ -3,6 +3,8 @@ from ..core import WCSAxes
++ import matplotlib.pyplot as plt
++ from matplotlib.backend_bases import KeyEvent
++
+++import pytest
+++
++ from ....wcs import WCS
++ from ....extern import six
++ from ....coordinates import FK5
++@@ -93,6 +95,8 @@ class TestDisplayWorldCoordinate(BaseImageTests):
++
++ assert string_world5 == six.u('267.652 -28\xb046\'23" (world, overlay 3)')
++
+++ # See https://github.com/astropy/astropy/issues/5601
+++ @pytest.mark.xfail()
++ def test_cube_coords(self, tmpdir):
++ wcs = WCS(self.cube_header)
++
++diff --git a/astropy/vo/samp/tests/test_standard_profile.py b/astropy/vo/samp/tests/test_standard_profile.py
++index 325ac96..ac25e55 100644
++--- a/astropy/vo/samp/tests/test_standard_profile.py
+++++ b/astropy/vo/samp/tests/test_standard_profile.py
++@@ -62,6 +62,8 @@ class TestStandardProfile(object):
++
++ self.hub.stop()
++
+++ # see https://github.com/astropy/astropy/issues/5460
+++ @pytest.mark.skipif(True, reason="Setup fails due to SSL problems")
++ def test_main(self):
++
++ self.client1_id = self.client1.get_public_id()
--- /dev/null
--- /dev/null
++From: Ole Streicher <olebole@debian.org>
++Date: Tue, 13 Dec 2016 09:41:39 +0100
++Subject: Install the scripts only for the Python 3 version
++
++---
++ setup.py | 3 ++-
++ 1 file changed, 2 insertions(+), 1 deletion(-)
++
++diff --git a/setup.py b/setup.py
++index ea11de4..aab845e 100755
++--- a/setup.py
+++++ b/setup.py
++@@ -53,7 +53,8 @@ package_info['package_data'].setdefault('astropy', []).append('data/*')
++ # Add any necessary entry points
++ entry_points = {}
++ # Command-line scripts
++-entry_points['console_scripts'] = [
+++if sys.version_info[0] == 3:
+++ entry_points['console_scripts'] = [
++ 'fits2bitmap = astropy.visualization.scripts.fits2bitmap:main',
++ 'fitscheck = astropy.io.fits.scripts.fitscheck:main',
++ 'fitsdiff = astropy.io.fits.scripts.fitsdiff:main',
--- /dev/null
--- /dev/null
++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
--- /dev/null
--- /dev/null
++Document: python-astropy
++Title: Astropy Documentation
++Author: The Astropy Collaboration.
++Section: Science/Astronomy
++Abstract: Astropy is a community-driven package intended to contain much of
++ the core functionality and some common tools needed for performing astronomy
++ and astrophysics with Python.
++
++Format: HTML
++Index: /usr/share/doc/python-astropy-doc/html/index.html
++Files: /usr/share/doc/python-astropy-doc/html/
--- /dev/null
--- /dev/null
++docs/_build/html
--- /dev/null
--- /dev/null
++# We store an extra license file since this is linked within the
++# HTML documentation. It seems to be better to keep this file than
++# to remove these links or to link to the machine-readable Debian
++# copyright file.
++extra-license-file usr/share/doc/python-astropy-doc/html/_sources/license.txt
--- /dev/null
--- /dev/null
++usr/lib/python2*/dist-packages/astropy*
--- /dev/null
--- /dev/null
++# The hardening is switched on, but does not cover all functions mentioned
++# in hardening-check.
++hardening-no-fortify-functions */astropy/utils/xml/_iterparser*.so
++# Python packages install all files into a common subdir by purpose.
++python-astropy: image-file-in-usr-lib
--- /dev/null
--- /dev/null
++usr/lib/python3*/dist-packages/astropy*
--- /dev/null
--- /dev/null
++# The hardening is switched on, but does not cover all functions mentioned
++# in hardening-check.
++hardening-no-fortify-functions */astropy/utils/xml/_iterparser*.*
++# Python packages install all files into a common subdir by purpose.
++python3-astropy: image-file-in-usr-lib
--- /dev/null
--- /dev/null
++#!/usr/bin/make -f
++
++PYTHON2:=$(shell pyversions -vr)
++PYTHON3:=$(shell py3versions -vr)
++
++# set the MPLCONFIGDIR to avoid writing into non writable location
++export HOME=$(CURDIR)/build
++export MPLCONFIGDIR=$(CURDIR)/build
++
++# Prevent setuptools/distribute from accessing the internet.
++export http_proxy = http://127.0.9.1:9
++
++%:
++ dh $@ --with python2,python3,sphinxdoc
++
++build-python%:
++ python$* setup.py build --use-system-libraries
++
++# We need to build python2 first, since cython is currently only available for
++# python2, and we need cython to (re-) generate some of the C files.
++override_dh_auto_build: $(PYTHON2:%=build-python%) $(PYTHON3:%=build-python%)
++ #dh_auto_build
++
++install-python%:
++ python$* setup.py install --root=$(CURDIR)/debian/tmp --install-layout=deb
++
++override_dh_auto_install: $(PYTHON3:%=install-python%)
++ dh_auto_install
++
++override_dh_auto_build:
++ dh_auto_build -- --use-system-libraries
++
++override_dh_shlibdeps:
++ dh_shlibdeps
++ dh_numpy
++ dh_numpy3
++
++override_dh_installdocs-indep:
++ python setup.py build_sphinx
++ dh_installdocs
++
++override_dh_sphinxdoc-arch:
++ # sphinxdoc is only needed on indep and does not work here.
++
++override_dh_installchangelogs:
++ dh_installchangelogs docs/changelog.rst
++
++override_dh_auto_clean:
++ dh_auto_clean
++ rm -rf build astropy.egg-info
++ rm -rf astropy_helpers-*.egg
++ rm -rf docs/_build docs/_generated
++
++ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
++test-python%:
++ python$* setup.py test -vv --args -vv
++
++override_dh_auto_test: $(PYTHON2:%=test-python%) $(PYTHON3:%=test-python%)
++endif
++
++override_dh_strip_nondeterminism:
++ dh_strip_nondeterminism -Xinvalid.dat.gz
--- /dev/null
--- /dev/null
++.TH SAMP_HUB 1 "April 2015" "samp_hub" "astropy 1.0.2"
++.SH NAME
++samp_hub \- SAMP Hub Server
++.SH DESCRIPTION
++usage: samp_hub [\-h] [\-k CODE] [\-d ADDR] [\-p PORT] [\-f FILE] [\-w]
++.TP
++[\-P SIZE] [\-t SECONDS] [\-c SECONDS] [\-L LEVEL] [\-O FILE]
++[\-l LABEL] [\-m] [\-s] [\-C FILE] [\-K FILE]
++[\-\-cert\-reqs STRING] [\-\-ca\-certs FILE]
++[\-\-ssl\-version STRING]
++.SS "optional arguments:"
++.TP
++\fB\-h\fR, \fB\-\-help\fR
++show this help message and exit
++.TP
++\fB\-k\fR CODE, \fB\-\-secret\fR CODE
++custom secret code.
++.TP
++\fB\-d\fR ADDR, \fB\-\-addr\fR ADDR
++listening address (or IP).
++.TP
++\fB\-p\fR PORT, \fB\-\-port\fR PORT
++listening port number.
++.TP
++\fB\-f\fR FILE, \fB\-\-lockfile\fR FILE
++custom lockfile.
++.TP
++\fB\-w\fR, \fB\-\-no\-web\-profile\fR
++run the Hub disabling the Web Profile.
++.TP
++\fB\-P\fR SIZE, \fB\-\-pool\-size\fR SIZE
++the socket connections pool size.
++.SS "Timeout group:"
++.IP
++Special options to setup hub and client timeouts.It contains a set of
++special options that allows one to set up the Hub and clients inactivity
++timeouts, that is the Hub or client inactivity time interval after which
++the Hub shuts down or unregisters the client. Notification of
++samp.hub.disconnect MType is sent to the clients forcibly unregistered for
++timeout expiration.
++.TP
++\fB\-t\fR SECONDS, \fB\-\-timeout\fR SECONDS
++set the Hub inactivity timeout in SECONDS. By default
++it is set to 0, that is the Hub never expires.
++.TP
++\fB\-c\fR SECONDS, \fB\-\-client\-timeout\fR SECONDS
++set the client inactivity timeout in SECONDS. By
++default it is set to 0, that is the client never
++expires.
++.SS "Logging options:"
++.IP
++Additional options which allow one to customize the logging output. By default
++the SAMP Hub uses the standard output and standard error devices to print
++out INFO level logging messages. Using the options here below it is
++possible to modify the logging level and also specify the output files
++where redirect the logging messages.
++.TP
++\fB\-L\fR LEVEL, \fB\-\-log\-level\fR LEVEL
++set the Hub instance log level (OFF, ERROR, WARNING,
++INFO, DEBUG).
++.TP
++\fB\-O\fR FILE, \fB\-\-log\-output\fR FILE
++set the output file for the log messages.
++.SS "Advanced group:"
++.IP
++Advanced options addressed to facilitate administrative tasks and allow
++new non\-standard Hub behaviors. In particular the \fB\-\-label\fR options is used
++to assign a value to hub.label token and is used to assign a name to the
++Hub instance. The very special \fB\-\-multi\fR option allows one to start a Hub in
++multi\-instance mode. Multi\-instance mode is a non\-standard Hub behavior
++that enables multiple contemporaneous running Hubs. Multi\-instance hubs
++place their non\-standard lock\-files within the <home directory>/.samp\-1
++directory naming them making use of the format: samp\-hub\-<PID>\-<ID>, where
++PID is the Hub process ID while ID is an internal ID (integer).
++.TP
++\fB\-l\fR LABEL, \fB\-\-label\fR LABEL
++assign a LABEL to the Hub.
++.TP
++\fB\-m\fR, \fB\-\-multi\fR
++run the Hub in multi\-instance mode generating a custom
++lockfile with a random name.
++.SS "SSL group:"
++.IP
++Additional options to launch the Hub instance using the Secure Sockets
++Layer (HTTPS). The \fB\-\-key\-file\fR and \fB\-\-cert\-file\fR parameters specify optional
++files which contain a certificate to be used to identify the local side of
++the connection. Often the private key is stored in the same file as the
++certificate; in this case, only the \fB\-\-cert\-file\fR parameter need be passed.
++If the private key is stored in a separate file, both parameters must be
++used. If the private key is stored in the certificate file, it should come
++before the first certificate in the certificate chain.
++.TP
++\fB\-s\fR, \fB\-\-https\fR
++run the Hub using the Secure Sockets Layer.
++.TP
++\fB\-C\fR FILE, \fB\-\-cert\-file\fR FILE
++set the certificate file.
++.TP
++\fB\-K\fR FILE, \fB\-\-key\-file\fR FILE
++set the key file. By default this option is ignored,
++assuming that the private key is stored in the
++certificate file.
++.TP
++\fB\-\-cert\-reqs\fR STRING
++this option specifies whether a certificate is
++required from the client side of the connection, and
++whether it will be validated if provided. It must be
++one of the three values NONE (certificates ignored,
++default), OPTIONAL (not required, but validated if
++provided), or REQUIRED (required and validated). If
++the value of this option is not NONE, then the \fB\-\-cacerts\fR option must point to a file of CA certificates.
++.TP
++\fB\-\-ca\-certs\fR FILE
++the \fB\-\-ca\-certs\fR file contains a set of concatenated
++"certification authority" certificates, which are used
++to validate certificates passed from the client end of
++the connection.
++.TP
++\fB\-\-ssl\-version\fR STRING
++the \fB\-\-ssl\-version\fR option specifies which version of
++the SSL protocol to use. Typically, the server chooses
++a particular protocol version, and the client must
++adapt to the server's choice. Most of the versions are
++not interoperable with the other versions. If not
++specified the default SSL version is taken from the
++default in the Python standard `ssl` library for the
++version of Python that is installed. Other SSL
++protocol versions are: SSLv2, SSLv3, SSLv23, TLSv1,
++TLSv1_1, TLSv1_2 but not all of them may be available
++on all versions of Python.
--- /dev/null
--- /dev/null
++3.0 (quilt)
--- /dev/null
--- /dev/null
++# We don't use the convinience copies of wcslib, so we can
++# safely ignore their lintian warnings.
++outdated-autotools-helper-file cextern/wcslib/config/config.*
++# See https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/python-astropy.html:
++# Actually, it shouldn't be necessary for python-astropy to build-depends
++# on dh-strip-nondeterminism. The override_dh_strip_nondeterminism
++# target in debian/rules will be ignored unless debhelper actually
++# tries to call dh_strip_nondeterminism, in which case debhelper itself
++# would depend on dh-strip-nondeterminism. (Andrew Ayer)
++missing-build-dependency-for-dh_-command
--- /dev/null
--- /dev/null
++Tests: python-astropy
++Depends: python-astropy, python-scipy
++Restrictions: allow-stderr
++
++Tests: python3-astropy
++Depends: python3-astropy, python3-scipy
++Restrictions: allow-stderr
--- /dev/null
--- /dev/null
++#!/usr/bin/env python
++
++import os
++os.chdir(os.getenv('ADTTMP', '/tmp'))
++
++import astropy
++res = astropy.test()
++exit(res)
--- /dev/null
--- /dev/null
++#!/usr/bin/env python3
++
++import os
++os.chdir(os.getenv('ADTTMP', '/tmp'))
++
++import astropy
++res = astropy.test()
++exit(res)
++
--- /dev/null
--- /dev/null
++ASCL-Id: 1304.002
++Bug-Database: https://github.com/astropy/astropy/issues
++Contact: Astronomical Python mailing list <astropy@scipy.org>
++Name: astropy
++Reference:
++ author: >
++ Astropy Collaboration, and Robitaille, T.P. and Tollerud, E.J. and
++ Greenfield, P. and Droettboom, M. and Bray, E. and Aldcroft, T. and
++ Davis, M. and Ginsburg, A. and Price-Whelan, A.M. and Kerzendorf, W.E. and
++ Conley, A. and Crighton, N. and Barbary, K. and Muna, D. and
++ Ferguson, H. and Grollier, F. and Parikh, M.M. and Nair, P.H. and
++ Unther, H.M. and Deil, C. and Woillez, J. and Conseil, S. and
++ Kramer, R. and Turner, J.E.H. and Singer, L. and Fox, R. and
++ Weaver, B.A. and Zabalza, V. and Edwards, Z.I. and Azalee Bostroem, K. and
++ Burke, D.J. and Casey, A.R. and Crawford, S.M. and Dencheva, N. and
++ Ely, J. and Jenness, T. and Labrie, K. and Lim, P.L. and
++ Pierfederici, F. and Pontzen, A. and Ptak, A. and Refsdal, B. and
++ Servillat, M. and Streicher, O.
++ title: "Astropy: A community Python package for astronomy"
++ journal: Astronomy & Astrophysics
++ volume: 558
++ number: A33
++ pages: A33
++ doi: 10.1051/0004-6361/201322068
++ year: 2013
++ URL: http://adsabs.harvard.edu/abs/2013A%26A...558A..33A
++ eprint: http://www.aanda.org/articles/aa/pdf/2013/10/aa22068-13.pdf
++Repository: https://github.com/astropy/astropy/
--- /dev/null
--- /dev/null
++-----BEGIN PGP PUBLIC KEY BLOCK-----
++Version: GnuPG v1
++
++mQINBFH7b50BEACYW2Cs+1jo1iU2Al8o8GFkQH9HKXSRzqMjvXxThM8f340CjUom
++rgAZ2PeWDS9Np/h9f+L41D09tcPQINkWCK7NbgKMFA+PSdldx/9tG9Qh8RlPAvzb
++J56L6VaQOawK7/pqbPZUwvegsq2vxlV9nF8YGxUaHLglSppPqMlqW8z4Mcdm7nWh
++DfzhCgirjCAPrcOdNKSnM8lroCzrUmD4q3p9v5Rp15xQ1EXBZt2KA25HZCV8/ZzB
++F3HlZSKFmTSVW/emwb8RG8vJekDsPcT+00jjGH8vHScVqFEHpbzJz5OdEq9cqzcd
++FxWaHbJXTmdN1zdjtH2OV3yNEUHJ+bJVJuNNYCGeIfDjU2vZLhbvLpifg/dnj6Wu
++1qdrtdOB+C05mPO+CHQoh/EJfq3Lcap6khU0hMc2SNMdN59cfHKcFO5f8bzaUBDA
+++du/Vnss32LkU26wXiuG6FCslNWY107v+cbfi3ZYmCN6i7Y+7TmVE83JpdVEnQht
++ybXxg18TwMxw4x3aISSWnuk7V5hVAU+Lyf/P5MWaTMyhhjrdrFPJL//0Ls9zCgaH
++iFDqxxbDJaa4p8TEBC7Nt2QiK1bY3FKFag65nJGoEVVJ6NkJpj/dhOhTHvVvg/cz
++xg2q0sTAmHz0079lPlLx0jZ9VUisGYXZXNm71gdLlK2KMWsa+ypHJYIuGwARAQAB
++tCZUaG9tYXMgUm9iaXRhaWxsZSA8cm9iaXRhaWxsZUBtcGlhLmRlPokCOAQTAQIA
++IgUCUftvnQIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQUsxycB4e+Yrh
++CBAAjjtV06cn/uhLvd0puzA0bghlVYBtor5BFyq4hYooKg+uIooX2Lkzu6L/QhVE
++tI3Rrkiygz9otha1r6vHDuPZH16j4d88TEzbNoVJasCNxX2Uab2TtQQZRojSbvO8
++rzIlOPgVPQUOGHbT+VlD2bdneB2/cBy7Wz9LvbLh+KbuDdSBXYljinVARc5vTnxv
++Hoi23OcacuH28GdkiO2EWmlOc9oy3dSgS5+YKt6tLAhqT/l8g04b1/OacYH5eD7n
++fhTyGTOpBuNN7ReArCi5QG5yP2XwOU0NuGA+Hlu2f0w8OHCXgkNRvfnJsLZfyxZz
++tn4p0+X+IKsmwGREG/R0HcdlmE61exvRAEuBfCXfNTYwShA3Eys+SEiWqaz7FAAI
++sivOjRT1NQ6yf5OR8ljUFA9Brnv9paMWwYeirx1op4SFj6gX1buxWCREI2E9yikQ
++goewTLBYNRWQPovW2kWfztMnCfak3DsA+kRPOD6HXpXSXzAfGUpk0ssy5Jn4cVE2
++bZf8XylCWRJwWNIXcTA8gI9XSLAg+11bb2kOz7aGlZUevAj/wAbOy+X0p41F3H1W
++q8wUczs4SXj0qGsesGwiThcxRJtmesJzDSaKSiYAwD7JER6U76zIMMVzof+/bjM2
++S/XogSoFAvdnSp+f93rEdvleJqJy7Fn25lpjiK9cTyQ7V9O5Ag0EUftvnQEQAKoe
++Y/s5dpuTVJs5U+wvHUm0HdKwXLj/Essz78zZ6ofuI/jgkt/SwtGs1fIfGcF8wmRk
++4tSfLkttKdXPqRWy1NA3cJYOHtL1bQm80JQREGIDOtPUu9aEO/yVosSsoFbPz6tp
++V3cPA8SmYbsi1HM64dFu0lnj+oVpPkRAQOTvSPdRQ3baFKqKVowvG9gF9E6TExtV
++7BtLbWNuGoDXs0MTr30H8R2vf1H/TsSGixf/IlQseNxKUTGepOSptyK3uSh+p5a1
+++TePyNziVcc2+uiayOd4ZzaGpLh4jhf9BehffnGv/pd4hL91U1tAsDhnv4MDazqj
++f6zKhuaND9TeLp0VjSf3kyfqvSVhD8CJN0OpX7n2mLqxyw7lr/NWVI/MDb1Ozxde
++jhj2WobtdJogCWOFXyXN0qOZa9GdUR/9OOoi1KFjkME7JBT4tDdaKF1uyKpHymfH
++S2/tSJm5x8D+OgyfHNBOudzomK6S/hDykTd2AKcmMfdfaGGU3TNnK1w6+5XcIrEQ
++Z0GQn48L9pg4MDs4PxqzPqYbhcokF30fWMI30bm9CDudMbwx2QAoMo0SZWeU2alu
++EmfbRWOeiUQrb+wSCp45J59TSjqNiIKmpshhH2cMa21lZ7PHBSN8MkphtNHfrEfj
++jLvMR6xf856+q7xp4PZB2tBy5MDGO9kwAcereXTPABEBAAGJAh8EGAECAAkFAlH7
++b50CGwwACgkQUsxycB4e+Yqm0Q/+OYYW682YxpeR6q47mtGDBGi0HspAgM7uRxGZ
++lDna9NwDSE1Nu7dtciEMSIGo0s8i+7iYCRPCOO0JrltfntQuRhyyZRshw2wpyzrw
++6r0olZIOyq0qU7QJvfLg0Jg/WjRTMcHdthVeFT4vLrVVPMs2EonbKHlqdujQDMHH
++p61blTrgZtCQlGqwnT4Rb9qObwEz2f4BHjttuNcDpEfHoo+PaAbHhjCLD2eyp4O2
++Fj31sDkc9KUL5kQtbeEIthThhJxxNyiGWqlfEb/21mYESBt/NKCcJ+aYOegghtVx
++lL/i6drmDFwMrxD7ihBZws9r2INw804yCsgwZUeTArFfyglw0iJJXoby/+owf821
++oex/US9tVg1cPujXVfziCLB6MHZcqX+Qmx9jIv6Eo4gPppZj088LzgFGrnhc3W1R
++bFtlyNSFO47ORweSLTmhteANdiMdsjpU9ryE6Zoc3qUJ84WT0AYMKSPOMWaAhi7H
++WhTYRxxUkNEtAjCFR39pSQhBpP4XUWekmyrnmQJOwcWPnIISU8ah7D5MNkQRpgBD
++QOm8vI2ax4Q0Rd6cWZrbSwZ3V/7smfS6ofRg3DtxF+uoV7sVhqaWfBjQFNZSTcAs
++ZLrphYDT9xGxaNk7pMYVv9gxY0ymbBlgQZbfY4ozw5lLoBTZvNO+pLxUTHmPgMa4
++PasnssY=
++=jVcg
++-----END PGP PUBLIC KEY BLOCK-----
--- /dev/null
--- /dev/null
++.TH VOLINT 1 "April 2015" "volint" "astropy 1.0.2"
++.SH NAME
++volint \- Check a VOTable file for compliance to the VOTable specification
++.SH DESCRIPTION
++usage: volint [\-h] filename
++.SS "positional arguments:"
++.TP
++filename
++Path to VOTable file to check
++.SS "optional arguments:"
++.TP
++\fB\-h\fR, \fB\-\-help\fR
++show this help message and exit
--- /dev/null
--- /dev/null
++version=3
++opts=uversionmangle=s/(rc|a|b|c)/~$1/;s/\.(post)/+$1/,pgpsigurlmangle=s/$/.asc/ \
++http://pypi.debian.net/astropy/astropy-(.+)\.(?:zip|tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz)))
--- /dev/null
--- /dev/null
++.TH WCSLINT 1 "April 2015" "wcslint" "astropy 1.0.2"
++.SH NAME
++wcslint \- Check the WCS keywords in a FITS file for compliance against the standards
++.SH DESCRIPTION
++usage: wcslint [\-h] filename
++.SS "positional arguments:"
++.TP
++filename
++Path to FITS file to check
++.SS "optional arguments:"
++.TP
++\fB\-h\fR, \fB\-\-help\fR
++show this help message and exit