From f82ff8c61dcb3718df6ef4f77e0c71e70a20dca6 Mon Sep 17 00:00:00 2001 From: Matthew Pitkin Date: Mon, 29 Jul 2019 22:58:03 +0100 Subject: [PATCH] Fix so that #55 works for both Python 2 and Python 3 --- psrqpy/__init__.py | 2 +- psrqpy/search.py | 21 ++++++++++++++++++--- requirements.txt | 3 ++- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/psrqpy/__init__.py b/psrqpy/__init__.py index 2a0beff7..aed4b9ee 100644 --- a/psrqpy/__init__.py +++ b/psrqpy/__init__.py @@ -7,7 +7,7 @@ from .pulsar import Pulsar, Pulsars from .utils import * -__version__ = "1.0.2" +__version__ = "1.0.3" __citation__ = """@article{psrqpy, author = {{Pitkin}, M.}, diff --git a/psrqpy/search.py b/psrqpy/search.py index 4cd2007f..55abfdb4 100644 --- a/psrqpy/search.py +++ b/psrqpy/search.py @@ -15,10 +15,12 @@ from six import string_types import numpy as np -from astropy.coordinates import SkyCoord, ICRS, BarycentricMeanEcliptic, Galactic +import astropy +from astropy.coordinates import SkyCoord, ICRS, Galactic import astropy.units as aunits from astropy.constants import c, GM_sun from astropy.table import Table +import packaging import version from pandas import DataFrame, Series from copy import deepcopy @@ -27,6 +29,15 @@ from .utils import condition, age_pdot, B_field_pdot +# check whether to use BarycentricTrueEcliptic of BarycentricMeanEcliptic +if packaging.version.parse(astropy.__version__) < packaging.version.parse("3.2"): + from astropy.coordinates import BarycentricMeanEcliptic + ASTROPY_V32 = True +else: + from astropy.coordinates import BarycentricTrueEcliptic as BarycentricMeanEcliptic + ASTROPY_V32 = False + + class QueryATNF(object): """ A class to generate a query of the @@ -1316,8 +1327,12 @@ def derived_ecliptic(self): sc = SkyCoord(RAJD[idx].values*aunits.deg, DECJD[idx].values*aunits.deg) - ELONGnew[idx] = sc.barycentricmeanecliptic.lon.value - ELATnew[idx] = sc.barycentricmeanecliptic.lat.value + if ASTROPY_V32: + ELONGnew[idx] = sc.barycentricmeanecliptic.lon.value + ELATnew[idx] = sc.barycentricmeanecliptic.lat.value + else: + ELONGnew[idx] = sc.barycentrictrueecliptic.lon.value + ELATnew[idx] = sc.barycentrictrueecliptic.lat.value self.update(ELONGnew, name='ELONG') self.update(ELATnew, name='ELAT') diff --git a/requirements.txt b/requirements.txt index 1cafe137..23f8c9cd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,4 +5,5 @@ numpy scipy pandas>0.21 astropy>=2.0,<3.0; python_version <= '2.7' -astropy>=2.0; python_version > '3.4' +astropy>=3.2; python_version > '3.4' +packaging