Commit 6fb7d3cb authored by Ole Streicher's avatar Ole Streicher

New RC version 1.1~rc2

parent 3593d757
1.1rc1 (2015-11-24)
-------------------
1.1 (unreleased)
----------------
New Features
^^^^^^^^^^^^
......@@ -56,10 +56,6 @@ New Features
cosmologies due to implementing Cython scalar versions of
``FLRW.inv_efunc``.[#4127]
- ``FLRW._tfunc`` and ``FLRW._xfunc`` are marked as deprecated. Users
should use the new public interfaces ``FLRW.lookback_time_integrand``
and ``FLRW.abs_distance_integrand`` instead. [#3767]
- ``astropy.io.ascii``
- Automatically use ``guess=False`` when reading if the file ``format`` is
......@@ -359,6 +355,10 @@ API changes
- ``astropy.cosmology``
- ``FLRW._tfunc`` and ``FLRW._xfunc`` are marked as deprecated. Users
should use the new public interfaces ``FLRW.lookback_time_integrand``
and ``FLRW.abs_distance_integrand`` instead. [#3767]
- ``astropy.io.ascii``
- The default header line processing was made to be consistent with data line
......@@ -474,6 +474,9 @@ API changes
instantiated). As unit formatters are mostly an internal implementation
detail this is not likely to affect any users. [#4001]
- CGS E&M units are now defined separately from SI E&M units, and have
distinct physical types. [#4255]
- ``astropy.utils``
- All of the ``get_pkg_data_*`` functions take an optional ``package``
......@@ -731,6 +734,14 @@ Bug Fixes
- Fixed a regression that could cause writes of large FITS files to be
truncated. [#4307]
- Astropy v1.0.6 included a fix (#4228) for an obscure case where the TDIM
of a table column is smaller than the repeat count of its data format.
This updates that fix in such a way that it works with Numpy 1.10 as well.
[#4266]
- Fix fast writer so bytestring column output is not prefixed by 'b' in
Python 3. [#4350]
- ``astropy.io.misc``
- ``astropy.io.registry``
......
Metadata-Version: 1.1
Name: astropy
Version: 1.1rc1
Version: 1.1rc2
Summary: Community-developed python astronomy tools
Home-page: http://astropy.org
Author: The Astropy Developers
Author-email: astropy.team@gmail.com
License: BSD
Download-URL: http://pypi.python.org/packages/source/a/astropy/astropy-1.1rc1.tar.gz
Download-URL: http://pypi.python.org/packages/source/a/astropy/astropy-1.1rc2.tar.gz
Description:
Astropy is a package intended to contain core functionality and some
common tools needed for performing astronomy and astrophysics research with
......
......@@ -8,6 +8,43 @@ managing them.
from __future__ import absolute_import
import sys
import os
def _is_astropy_source(path=None):
"""
Returns whether the source for this module is directly in an astropy
source distribution or checkout.
"""
# If this __init__.py file is in ./astropy/ then import is within a source
# dir .astropy-root is a file distributed with the source, but that should
# not installed
if path is None:
path = os.path.join(os.path.dirname(__file__), os.pardir)
elif os.path.isfile(path):
path = os.path.dirname(path)
source_dir = os.path.abspath(path)
return os.path.exists(os.path.join(source_dir, '.astropy-root'))
def _is_astropy_setup():
"""
Returns whether we are currently being imported in the context of running
Astropy's setup.py.
"""
main_mod = sys.modules.get('__main__')
if not main_mod:
return False
return (getattr(main_mod, '__file__', False) and
os.path.basename(main_mod.__file__).rstrip('co') == 'setup.py' and
_is_astropy_source(main_mod.__file__))
# this indicates whether or not we are in astropy's setup.py
try:
_ASTROPY_SETUP_
......@@ -17,7 +54,10 @@ except NameError:
import builtins
else:
import __builtin__ as builtins
builtins._ASTROPY_SETUP_ = False
# This will set the _ASTROPY_SETUP_ to True by default if
# we are running Astropy's setup.py
builtins._ASTROPY_SETUP_ = _is_astropy_setup()
try:
......@@ -73,7 +113,6 @@ if not _ASTROPY_SETUP_:
from . import config as _config
import sys
class Conf(_config.ConfigNamespace):
......@@ -122,16 +161,9 @@ test = TestRunner.make_test_runner_in(__path__[0])
def _initialize_astropy():
from . import config
import os
import sys
from warnings import warn
from .utils.exceptions import AstropyDeprecationWarning
# If this __init__.py file is in ./astropy/ then import is within a source dir
source_dir = os.path.abspath(os.path.dirname(__file__))
is_astropy_source_dir = os.path.exists(os.path.join(source_dir, os.pardir,
'.astropy-root'))
if sys.version_info[:2] < (2, 7):
warn("Python 2.6 will no longer be supported from Astropy v1.2.0 and "
"above", AstropyDeprecationWarning)
......@@ -153,7 +185,7 @@ def _initialize_astropy():
try:
from .utils import _compiler
except ImportError:
if is_astropy_source_dir:
if _is_astropy_source():
log.warn('You appear to be trying to import astropy from '
'within a source checkout without building the '
'extension modules first. Attempting to (re)build '
......@@ -188,9 +220,7 @@ def _rebuild_extensions():
global __version__
global __githash__
import os
import subprocess
import sys
import time
from .utils.console import Spinner
......@@ -209,6 +239,7 @@ def _rebuild_extensions():
time.sleep(0.05)
finally:
os.chdir(old_cwd)
devnull.close()
if sp.returncode != 0:
raise OSError('Running setup.py build_ext --inplace failed '
......@@ -231,7 +262,6 @@ def _rebuild_extensions():
# Set the bibtex entry to the article referenced in CITATION
def _get_bibtex():
import os
import re
if os.path.exists('CITATION'):
with open('CITATION', 'r') as citation:
......
......@@ -6880,7 +6880,7 @@ def pmsafe(ra1, dec1, pmr1, pmd1, px1, rv1, ep1a, ep1b, ep2a, ep2b):
rv2_out = rv2_out.reshape(rv2_out.shape[1:])
return ra2_out, dec2_out, pmr2_out, pmd2_out, px2_out, rv2_out
STATUS_CODES['pmsafe'] = {0: 'no warnings or errors', 1: 'distance overridden (Note 6)', 2: 'excessive velocity (Note 7)', 4: "solution didn't converge (Note 8)", 'else': 'binary logical OR of the above warnings', -1: 'system error (should not occur)'}
STATUS_CODES['pmsafe'] = {0: 'no warnings or errors', 1: 'distance overridden (Note 6)', 2: 'excessive velocity (Note 7)', 'else': 'binary logical OR of the above warnings', 4: "solution didn't converge (Note 8)", -1: 'system error (should not occur)'}
......@@ -18896,7 +18896,7 @@ def starpv(ra, dec, pmr, pmd, px, rv):
pv_out = pv_out.reshape(pv_out.shape[1:])
return pv_out
STATUS_CODES['starpv'] = {0: 'no warnings', 1: 'distance overridden (Note 6)', 2: 'excessive speed (Note 7)', 4: "solution didn't converge (Note 8)", 'else': 'binary logical OR of the above'}
STATUS_CODES['starpv'] = {0: 'no warnings', 1: 'distance overridden (Note 6)', 2: 'excessive speed (Note 7)', 'else': 'binary logical OR of the above', 4: "solution didn't converge (Note 8)"}
......@@ -19802,7 +19802,7 @@ def starpm(ra1, dec1, pmr1, pmd1, px1, rv1, ep1a, ep1b, ep2a, ep2b):
rv2_out = rv2_out.reshape(rv2_out.shape[1:])
return ra2_out, dec2_out, pmr2_out, pmd2_out, px2_out, rv2_out
STATUS_CODES['starpm'] = {0: 'no warnings or errors', 1: 'distance overridden (Note 6)', 2: 'excessive velocity (Note 7)', 4: "solution didn't converge (Note 8)", 'else': 'binary logical OR of the above warnings', -1: 'system error (should not occur)'}
STATUS_CODES['starpm'] = {0: 'no warnings or errors', 1: 'distance overridden (Note 6)', 2: 'excessive velocity (Note 7)', 'else': 'binary logical OR of the above warnings', 4: "solution didn't converge (Note 8)", -1: 'system error (should not occur)'}
......@@ -21189,7 +21189,7 @@ def dtf2d(scale, iy, im, id, ihr, imn, sec):
d2_out = d2_out.reshape(d2_out.shape[1:])
return d1_out, d2_out
STATUS_CODES['dtf2d'] = {0: 'OK', 1: 'dubious year (Note 6)', 2: 'time is after end of day (Note 5)', 3: 'both of next two', -1: 'bad year', -6: 'bad second (<0)', -5: 'bad minute', -4: 'bad hour', -3: 'bad day', -2: 'bad month'}
STATUS_CODES['dtf2d'] = {0: 'OK', 1: 'dubious year (Note 6)', 2: 'time is after end of day (Note 5)', 3: 'both of next two', -2: 'bad month', -6: 'bad second (<0)', -5: 'bad minute', -4: 'bad hour', -3: 'bad day', -1: 'bad year'}
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -19,6 +19,7 @@ from .icrs import ICRS
from .gcrs import GCRS
from .ecliptic import GeocentricTrueEcliptic, BarycentricTrueEcliptic, HeliocentricTrueEcliptic
from .utils import cartrepr_from_matmul, get_jd12
from ..errors import UnitsError
def _ecliptic_rotation_matrix(equinox):
......@@ -44,7 +45,7 @@ def gcrs_to_geoecliptic(from_coo, to_frame):
@frame_transform_graph.transform(FunctionTransform, GeocentricTrueEcliptic, GCRS)
def geoecliptic_to_gcrs(from_coo, to_frame):
rmat = _ecliptic_rotation_matrix(to_frame.equinox)
rmat = _ecliptic_rotation_matrix(from_coo.equinox)
newrepr = cartrepr_from_matmul(rmat, from_coo, transpose=True)
if np.all(from_coo.equinox == to_frame.obstime):
......@@ -67,24 +68,34 @@ def baryecliptic_to_icrs(from_coo, to_frame):
return icrs_to_baryecliptic(to_frame, from_coo).T
_NEED_ORIGIN_HINT = ("The input {0} coordinates do not have length units. This "
"probably means you created coordinates with lat/lon but "
"no distance. Heliocentric<->ICRS transforms cannot "
"function in this case because there is an origin shift.")
@frame_transform_graph.transform(FunctionTransform, ICRS, HeliocentricTrueEcliptic)
def icrs_to_helioecliptic(from_coo, to_frame):
if not u.m.is_equivalent(from_coo.cartesian.x.unit):
raise UnitsError(_NEED_ORIGIN_HINT.format(from_coo.__class__.__name__))
pvh, pvb = erfa.epv00(*get_jd12(to_frame.equinox, 'tdb'))
delta_bary_to_helio = pvh[..., 0, :] - pvb[..., 0, :]
#first offset to heliocentric
heliocart = from_coo.cartesian.xyz + delta_bary_to_helio * u.au
heliocart = (from_coo.cartesian.xyz).T + delta_bary_to_helio * u.au
# now compute the matrix to precess to the right orientation
rmat = _ecliptic_rotation_matrix(to_frame.equinox)
# it's not really ICRS because of the offset, but this is digestible by cartrepr_from_matmul
newrepr = cartrepr_from_matmul(rmat, ICRS(CartesianRepresentation(heliocart)))
newrepr = cartrepr_from_matmul(rmat, ICRS(CartesianRepresentation(heliocart.T)))
return to_frame.realize_frame(newrepr)
@frame_transform_graph.transform(FunctionTransform, HeliocentricTrueEcliptic, ICRS)
def helioecliptic_to_icrs(from_coo, to_frame):
if not u.m.is_equivalent(from_coo.cartesian.x.unit):
raise UnitsError(_NEED_ORIGIN_HINT.format(from_coo.__class__.__name__))
# first un-precess from ecliptic to ICRS orientation
rmat = _ecliptic_rotation_matrix(from_coo.equinox)
......@@ -93,6 +104,6 @@ def helioecliptic_to_icrs(from_coo, to_frame):
# now offset back to barycentric, which is the correct center for ICRS
pvh, pvb = erfa.epv00(*get_jd12(from_coo.equinox, 'tdb'))
delta_bary_to_helio = pvh[..., 0, :] - pvb[..., 0, :]
newrepr = CartesianRepresentation(intermed_repr.cartesian.xyz - delta_bary_to_helio*u.au)
newrepr = CartesianRepresentation((intermed_repr.to_cartesian().xyz.T - delta_bary_to_helio*u.au).T)
return to_frame.realize_frame(newrepr)
......@@ -59,3 +59,51 @@ def test_ecl_geo():
gecl = gcrs.transform_to(GeocentricTrueEcliptic)
assert quantity_allclose(gecl.distance, gcrs.distance)
def test_arraytransforms():
"""
Test that transforms to/from ecliptic coordinates work on array coordinates
(not testing for accuracy.)
"""
ra = np.ones((4, ), dtype=float) * u.deg
dec = 2*np.ones((4, ), dtype=float) * u.deg
distance = np.ones((4, ), dtype=float) * u.au
test_icrs = ICRS(ra=ra, dec=dec, distance=distance)
test_gcrs = GCRS(test_icrs.data)
bary_arr = test_icrs.transform_to(BarycentricTrueEcliptic)
assert bary_arr.shape == ra.shape
helio_arr = test_icrs.transform_to(HeliocentricTrueEcliptic)
assert helio_arr.shape == ra.shape
geo_arr = test_gcrs.transform_to(GeocentricTrueEcliptic)
assert geo_arr.shape == ra.shape
# now check that we also can go back the other way without shape problems
bary_icrs = bary_arr.transform_to(ICRS)
assert bary_icrs.shape == test_icrs.shape
helio_icrs = helio_arr.transform_to(ICRS)
assert helio_icrs.shape == test_icrs.shape
geo_gcrs = geo_arr.transform_to(GCRS)
assert geo_gcrs.shape == test_gcrs.shape
def test_roundtrip_scalar():
icrs = ICRS(ra=1*u.deg, dec=2*u.deg, distance=3*u.au)
gcrs = GCRS(icrs.cartesian)
bary = icrs.transform_to(BarycentricTrueEcliptic)
helio = icrs.transform_to(HeliocentricTrueEcliptic)
geo = gcrs.transform_to(GeocentricTrueEcliptic)
bary_icrs = bary.transform_to(ICRS)
helio_icrs = helio.transform_to(ICRS)
geo_gcrs = geo.transform_to(GCRS)
assert quantity_allclose(bary_icrs.cartesian.xyz, icrs.cartesian.xyz)
assert quantity_allclose(helio_icrs.cartesian.xyz, icrs.cartesian.xyz)
assert quantity_allclose(geo_gcrs.cartesian.xyz, gcrs.cartesian.xyz)
......@@ -123,8 +123,11 @@ def test_names():
icrs = SkyCoord(ra=float(ra)*u.degree, dec=float(dec)*u.degree)
icrs_true = SkyCoord(ra="11h 22m 18.014s", dec="59d 04m 27.27s")
np.testing.assert_almost_equal(icrs.ra.degree, icrs_true.ra.degree, 3)
np.testing.assert_almost_equal(icrs.dec.degree, icrs_true.dec.degree, 3)
# use precsision of only 1 decimal here and below because the result can
# change due to Sesame server-side changes.
np.testing.assert_almost_equal(icrs.ra.degree, icrs_true.ra.degree, 1)
np.testing.assert_almost_equal(icrs.dec.degree, icrs_true.dec.degree, 1)
try:
icrs = get_icrs_coordinates("castor")
......@@ -133,8 +136,8 @@ def test_names():
icrs = SkyCoord(ra=float(ra)*u.degree, dec=float(dec)*u.degree)
icrs_true = SkyCoord(ra="07h 34m 35.87s", dec="+31d 53m 17.8s")
np.testing.assert_almost_equal(icrs.ra.degree, icrs_true.ra.degree, 3)
np.testing.assert_almost_equal(icrs.dec.degree, icrs_true.dec.degree, 3)
np.testing.assert_almost_equal(icrs.ra.degree, icrs_true.ra.degree, 1)
np.testing.assert_almost_equal(icrs.dec.degree, icrs_true.dec.degree, 1)
@remote_data
......
......@@ -11,7 +11,8 @@ from ..distances import Distance
from .. import transformations as t
from ..builtin_frames import ICRS, FK5, FK4, FK4NoETerms, Galactic, \
Supergalactic, Galactocentric, CIRS, GCRS, AltAz, \
ITRS, PrecessedGeocentric
ITRS, PrecessedGeocentric, HeliocentricTrueEcliptic, \
BarycentricTrueEcliptic
from .. import representation as r
from ..baseframe import frame_transform_graph
from ...tests.helper import (pytest, quantity_allclose as allclose,
......@@ -209,4 +210,3 @@ def test_obstime():
# because the obstime is different
assert icrs_50.ra.degree != icrs_75.ra.degree
assert icrs_50.dec.degree != icrs_75.dec.degree
This diff is collapsed.
# Generated file; do not modify
cython_version = '0.23.1'
cython_version = '0.23'
This diff is collapsed.
......@@ -905,7 +905,11 @@ cdef class FastWriter:
for col in six.itervalues(table.columns):
if col.name in self.use_names: # iterate over included columns
if col.format is None:
# If col.format is None then don't use any formatter to improve
# speed. However, if the column is a byte string and this
# is Py3, then use the default formatter (which in this case
# does val.decode('utf-8')) in order to avoid a leading 'b'.
if col.format is None and not (six.PY3 and col.dtype.kind == 'S'):
self.format_funcs.append(None)
else:
self.format_funcs.append(pprint._format_funcs.get(col.format,
......
......@@ -522,3 +522,15 @@ def test_commented_header_comments(fast_writer):
ascii.write(t, out, format='commented_header', comment=False,
fast_writer=fast_writer)
assert "for the commented_header writer you must supply a string" in str(err.value)
@pytest.mark.parametrize("fast_writer", [True, False])
def test_byte_string_output(fast_writer):
"""
Test the fix for #4350 where byte strings were output with a
leading `b` on Py3.
"""
t = table.Table([['Hello', 'World']], dtype=['S10'])
out = StringIO()
ascii.write(t, out, fast_writer=fast_writer)
assert out.getvalue().splitlines() == ['col0', 'Hello', 'World']
This diff is collapsed.
......@@ -526,7 +526,7 @@ def poisson_conf_interval(n, interval='root-n', sigma=1):
where :math:`F_{\chi^2}^{-1}` is the quantile of the chi-square
distribution with the indicated number of degrees of freedom and
:math:\alpha is the one-tailed probability of the normal
:math:`\alpha` is the one-tailed probability of the normal
distribution (at the point given by the parameter 'sigma'). See
[Maxwell 2011][maxw11] for further details.
......
/* Generated by Cython 0.23.1 */
/* Generated by Cython 0.23 */
#define PY_SSIZE_T_CLEAN
#include "Python.h"
......@@ -7,7 +7,7 @@
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03020000)
#error Cython requires Python 2.6+ or Python 3.2+.
#else
#define CYTHON_ABI "0_23_1"
#define CYTHON_ABI "0_23"
#include <stddef.h>
#ifndef offsetof
#define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -879,6 +879,13 @@ class Table(object):
display_length : int, optional
Number or rows to show. Default to 50.
Notes
-----
Currently, unlike `show_in_browser` (with ``jsviewer=True``), this
method needs to access online javascript code repositories. This is due
to modern browsers' limitations on accessing local files. Hence, if you
call this method while offline (and don't have a cached version of
jquery and jquery.dataTables), you will not get the jsviewer features.
"""
from .jsviewer import JSViewer
......@@ -888,7 +895,7 @@ class Table(object):
tableid = 'table{0}-{1}'.format(id(self),
np.random.randint(1, 1e6))
jsv = JSViewer(use_local_files=False, display_length=display_length)
jsv = JSViewer(display_length=display_length)
html = self._base_repr_(html=True, max_width=-1, tableid=tableid,
max_lines=-1, show_dtype=False,
tableclass=table_class)
......
......@@ -114,7 +114,7 @@ def_unit(['G', 'Gauss', 'gauss'], 1e-4 * si.T, namespace=_ns, prefixes=True,
###########################################################################
# BASES
bases = set([cm, g, s, C, rad, cd, K, mol])
bases = set([cm, g, s, rad, cd, K, mol])
###########################################################################
......
......@@ -124,6 +124,10 @@ for unit, name in [
(astrophys.photon / si.AA / si.cm ** 2 / si.s, 'photon flux density wav'),
(astrophys.R, 'photon flux'),
(astrophys.bit, 'data quantity'),
(astrophys.bit / si.s, 'bandwidth')
(astrophys.bit / si.s, 'bandwidth'),
(cgs.Franklin, 'electrical charge (ESU)'),
(cgs.statampere, 'electrical current (ESU)'),
(cgs.Biot, 'electrical current (EMU)'),
(cgs.abcoulomb, 'electrical charge (EMU)')
]:
def_physical_type(unit, name)
# Autogenerated by Astropy's setup.py on 2015-11-24 13:48:05.857796
# Autogenerated by Astropy's setup.py on 2015-12-07 18:19:00.252049
from __future__ import unicode_literals
import datetime
version = "1.1rc1"
githash = "a84ed343fd51ad9cec01446c0e0fd2bec1bdad11"
version = "1.1rc2"
githash = "94d462ab82db1f65b4ffeda77ca76cae3f234862"
major = 1
......@@ -11,7 +11,7 @@ minor = 1
bugfix = 0
release = True
timestamp = datetime.datetime(2015, 11, 24, 13, 48, 5, 857796)
timestamp = datetime.datetime(2015, 12, 7, 18, 19, 0, 252049)
debug = False
try:
......
......@@ -7,10 +7,15 @@ from numpy.testing import assert_allclose
try:
import matplotlib.pyplot as plt
HAS_PLT = True
except ImportError:
HAS_PLT = False
else:
HAS_PLT = True
try:
import scipy
HAS_SCIPY = True
except ImportError:
HAS_SCIPY = False
from ...tests.helper import pytest
......@@ -50,8 +55,15 @@ def test_hist_autobin(rseed=0):
rng = np.random.RandomState(rseed)
x = rng.randn(100)
for bintype in [10, np.arange(-3, 3, 10),
'knuth', 'scott', 'freedman', 'blocks']:
# 'knuth' bintype depends on scipy that is optional dependency
if HAS_SCIPY:
bintypes = [10, np.arange(-3, 3, 10), 'knuth', 'scott',
'freedman', 'blocks']
else:
bintypes = [10, np.arange(-3, 3, 10), 'scott',
'freedman', 'blocks']
for bintype in bintypes:
for range in [None, (-3, 3)]:
n1, bins1 = histogram(x, bintype, range=range)
n2, bins2, patches = hist(x, bintype, range=range)
......
......@@ -820,8 +820,10 @@ def test_locale():
orig_locale = locale.getlocale(locale.LC_NUMERIC)[0]
try:
locale.setlocale(locale.LC_NUMERIC, 'fr_FR')
except:
# str('fr_FR') because otherwise it will be a unicode string, which
# breaks setlocale on Python 2
locale.setlocale(locale.LC_NUMERIC, str('fr_FR'))
except locale.Error:
pytest.xfail(
"Can't set to 'fr_FR' locale, perhaps because it is not installed "
"on this system")
......@@ -830,7 +832,13 @@ def test_locale():
w = _wcs.Wcsprm(header)
assert re.search("[0-9]+,[0-9]*", w.to_header()) is None
finally:
locale.setlocale(locale.LC_NUMERIC, orig_locale)
if orig_locale is None:
# reset to the default setting
locale.resetlocale(locale.LC_NUMERIC)
else:
# restore to whatever the previous value had been set to for
# whatever reason
locale.setlocale(locale.LC_NUMERIC, orig_locale)
@raises(UnicodeEncodeError)
......
......@@ -13,41 +13,32 @@ env:
- PYTHON_VERSION=2.7
- PYTHON_VERSION=3.3
- PYTHON_VERSION=3.4
- PYTHON_VERSION=3.5
global:
- SETUPTOOLS_VERSION=stable
- SETUPTOOLS_VERSION=stable
- CONDA_DEPENDENCIES="pytest sphinx cython numpy"
- PIP_DEPENDENCIES="coveralls pytest-cov"
matrix:
include:
- os: linux
env: PYTHON_VERSION=2.7 SETUPTOOLS_VERSION=dev
CONDA_DEPENDENCIES="pytest sphinx cython numpy mercurial mock"
before_install:
# Use utf8 encoding. Should be default, but this is insurance against
# future changes
- export PYTHONIOENCODING=UTF8
- if [[ $TRAVIS_OS_NAME == linux ]]; then sudo apt-get update; sudo apt-get install graphviz; fi
- if [[ $TRAVIS_OS_NAME == osx ]]; then brew update; brew install graphviz; fi
# Install conda
- source continuous-integration/travis/install_conda_$TRAVIS_OS_NAME.sh
install:
# Install graphviz
- source continuous-integration/travis/install_graphviz_$TRAVIS_OS_NAME.sh
- git clone git://github.com/astropy/ci-helpers.git
- source ci-helpers/travis/setup_conda_$TRAVIS_OS_NAME.sh
install:
- hash -r
- conda config --set always_yes yes --set changeps1 no
- conda update -q conda
- conda info -a
- conda create --yes -n test python=$PYTHON_VERSION
- source activate test
- conda install --yes pip "pytest<2.6" sphinx cython numpy
- pip install coveralls pytest-cov
# We cannot install the developer version of setuptools using pip because
# pip tries to remove the previous version of setuptools before the
# installation is complete, which causes issues. Instead, we just install
# setuptools manually.
- if [[ $SETUPTOOLS_VERSION == dev ]]; then conda install --yes mercurial mock; fi
- if [[ $SETUPTOOLS_VERSION == dev ]]; then hg clone https://bitbucket.org/pypa/setuptools; cd setuptools; python setup.py install; cd ..; fi
before_script:
......
......@@ -32,8 +32,22 @@ astropy-helpers Changelog
beginning of the build processes (that is, is automatically downloaded via
setuptools' processing of ``setup_requires``). [#185]
- Moves the ``adjust_compiler`` check into the ``build_ext`` command itself,
so it's only used when actually building extension modules. This also
deprecates the stand-alone ``adjust_compiler`` function. [#76]
1.0.6 (unreleased)
- When running the ``build_sphinx`` / ``build_docs`` command with the ``-w``
option, the output from Sphinx is streamed as it runs instead of silently
buffering until the doc build is complete. [#197]
1.0.7 (unreleased)
------------------
- Nothing changed yet.
1.0.6 (2015-12-04)
------------------
- Fixed bug where running ``./setup.py build_sphinx`` could return successfully
......
......@@ -6,10 +6,11 @@ environment:
global:
PYTHON: "C:\\conda"
MINICONDA_VERSION: "3.5.5"
CMD_IN_ENV: "cmd /E:ON /V:ON /C .\\continuous-integration\\appveyor\\windows_sdk.cmd"
CMD_IN_ENV: "cmd /E:ON /V:ON /C .\\ci-helpers\\appveyor\\windows_sdk.cmd"
PYTHON_ARCH: "64" # needs to be set for CMD_IN_ENV to succeed. If a mix
# of 32 bit and 64 bit builds are needed, move this
# to the matrix section.
CONDA_DEPENDENCIES: "numpy Cython sphinx pytest"
matrix:
- PYTHON_VERSION: "2.6"
......@@ -20,23 +21,13 @@ platform:
-x64
install:
# Install miniconda using a powershell script.
- "powershell continuous-integration/appveyor/install-miniconda.ps1"
- "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%"
# Install the build and runtime dependencies of the project.
- "conda update --yes conda"
# Create a conda environment
- "conda create -q --yes -n test python=%PYTHON_VERSION%"
# Set up ci-helpers
- "git clone git://github.com/astropy/ci-helpers.git"
- "powershell ci-helpers/appveyor/install-miniconda.ps1"
- "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%"
- "activate test"
# Check that we have the expected version of Python
- "python --version"
# Install specified version of numpy and dependencies
- "conda install -q --yes numpy Cython sphinx pytest"
# Some of the tests use git commands that require a user to be configured
- git config --global user.name "A U Thor"
- git config --global user.email "author@example.com"
......
Metadata-Version: 1.1
Name: astropy-helpers
Version: 0.5.dev358
Version: 1.1.dev477
Summary: Utilities for building and installing Astropy, Astropy affiliated packages, and their respective documentation.
Home-page: http://astropy.org
Author: The Astropy Developers
Author-email: astropy.team@gmail.com
License: BSD
Download-URL: http://pypi.python.org/packages/source/a/astropy-helpers/astropy-helpers-0.5.dev358.tar.gz
Download-URL: http://pypi.python.org/packages/source/a/astropy-helpers/astropy-helpers-1.1.dev477.tar.gz
Description: astropy-helpers
===============