From 9044ed093a2c583c6361c7fa7bf1e320fb030bc8 Mon Sep 17 00:00:00 2001 From: Abhimanyu Susobhanan Date: Thu, 20 Feb 2025 10:27:02 +0100 Subject: [PATCH 1/2] fix polycos --- CHANGELOG-unreleased.md | 4 +++- src/pint/polycos.py | 30 +++++++++++++++++------------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/CHANGELOG-unreleased.md b/CHANGELOG-unreleased.md index 50ff4ca55..f85e34a57 100644 --- a/CHANGELOG-unreleased.md +++ b/CHANGELOG-unreleased.md @@ -13,6 +13,8 @@ the released changes. - Simulate correlated DM noise for wideband TOAs - Type hints in `pint.models.timing_model` ### Fixed -- Made `TimingModel.is_binary()` more robust. +- Made `TimingModel.is_binary()` more robust +- Added missing newline in `tempo_polyco_table_writer()` +- Proper warning in `read_polyco_file()` ### Removed - Definition of `@cached_property` to support Python<=3.7 diff --git a/src/pint/polycos.py b/src/pint/polycos.py index dd569a9ca..38955c13f 100644 --- a/src/pint/polycos.py +++ b/src/pint/polycos.py @@ -9,9 +9,9 @@ \\Delta T = 1440(T-T_{\\rm mid}) - \\phi = \\phi_0 + 60 \Delta T f_0 + COEFF[1] + COEFF[2] \\Delta T + COEFF[3] \\Delta T^2 + \\ldots + \\phi = \\phi_0 + 60 \\Delta T f_0 + COEFF[1] + COEFF[2] \\Delta T + COEFF[3] \\Delta T^2 + \\ldots - f({\\rm Hz}) = f_0 + \\frac{1}{60}\\left( COEFF[2] + 2 COEFF[3] \Delta T + 3 COEFF[4] \Delta T^2 + \\ldots \\right) + f({\\rm Hz}) = f_0 + \\frac{1}{60}\\left( COEFF[2] + 2 COEFF[3] \\Delta T + 3 COEFF[4] \\Delta T^2 + \\ldots \\right) Examples -------- @@ -34,6 +34,7 @@ """ from collections import OrderedDict +from warnings import warn import astropy.table as table import astropy.units as u @@ -265,9 +266,9 @@ def tempo_polyco_table_reader(filename): \\Delta T = 1440(T-T_{\\rm mid}) - \\phi = \\phi_0 + 60 \Delta T f_0 + COEFF[1] + COEFF[2] \\Delta T + COEFF[3] \\Delta T^2 + \\ldots + \\phi = \\phi_0 + 60 \\Delta T f_0 + COEFF[1] + COEFF[2] \\Delta T + COEFF[3] \\Delta T^2 + \\ldots - f({\\rm Hz}) = f_0 + \\frac{1}{60}\\left( COEFF[2] + 2 COEFF[3] \Delta T + 3 COEFF[4] \Delta T^2 + \\ldots \\right) + f({\\rm Hz}) = f_0 + \\frac{1}{60}\\left( COEFF[2] + 2 COEFF[3] \\Delta T + 3 COEFF[4] \\Delta T^2 + \\ldots \\right) Parameters ---------- @@ -392,9 +393,9 @@ def tempo_polyco_table_writer(polycoTable, filename="polyco.dat"): \\Delta T = 1440(T-T_{\\rm mid}) - \\phi = \\phi_0 + 60 \Delta T f_0 + COEFF[1] + COEFF[2] \\Delta T + COEFF[3] \\Delta T^2 + \\ldots + \\phi = \\phi_0 + 60 \\Delta T f_0 + COEFF[1] + COEFF[2] \\Delta T + COEFF[3] \\Delta T^2 + \\ldots - f({\\rm Hz}) = f_0 + \\frac{1}{60}\\left( COEFF[2] + 2 COEFF[3] \Delta T + 3 COEFF[4] \Delta T^2 + \\ldots \\right) + f({\\rm Hz}) = f_0 + \\frac{1}{60}\\left( COEFF[2] + 2 COEFF[3] \\Delta T + 3 COEFF[4] \\Delta T^2 + \\ldots \\right) Parameters ---------- @@ -463,7 +464,7 @@ def tempo_polyco_table_writer(polycoTable, filename="polyco.dat"): if (i + 1) % 3 == 0: coeff_block += "\n" - f.write(line1 + line2 + coeff_block) + f.write(line1 + line2 + coeff_block + "\n") # default formats @@ -649,17 +650,20 @@ def read_polyco_file(self, filename, format="tempo"): Polycos """ - raise DeprecationWarning( - "Use `p=pint.polycos.Polycos.read()` rather than `p.read_polyco_file()`" + warn( + "Use `p=pint.polycos.Polycos.read()` rather than `p.read_polyco_file()`", + DeprecationWarning, ) self.fileName = filename if format not in [f["format"] for f in self.polycoFormats]: raise ValueError( - "Unknown polyco file format '" + format + "'\n" - "Please use function 'Polyco.add_polyco_file_format()'" - " to register the format\n" + ( + f"Unknown polyco file format '{format}'\n" + f"Please use function 'Polyco.add_polyco_file_format()'" + f" to register the format\n" + ) ) else: self.fileFormat = format @@ -938,7 +942,7 @@ def eval_abs_phase(self, t): .. math:: - \\phi = \\phi_0 + 60 \\Delta T f_0 + COEFF[1] + COEFF[2] \Delta T + COEFF[3] \Delta T^2 + \\ldots + \\phi = \\phi_0 + 60 \\Delta T f_0 + COEFF[1] + COEFF[2] \\Delta T + COEFF[3] \\Delta T^2 + \\ldots Calculation done using :meth:`pint.polycos.PolycoEntry.evalabsphase` """ From 7ea278bab4cc6de2e52aa647e8ad3007059fe01e Mon Sep 17 00:00:00 2001 From: Abhimanyu Susobhanan Date: Fri, 21 Feb 2025 09:16:59 +0100 Subject: [PATCH 2/2] fix --- src/pint/polycos.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/pint/polycos.py b/src/pint/polycos.py index 38955c13f..1273ea6c7 100644 --- a/src/pint/polycos.py +++ b/src/pint/polycos.py @@ -464,7 +464,10 @@ def tempo_polyco_table_writer(polycoTable, filename="polyco.dat"): if (i + 1) % 3 == 0: coeff_block += "\n" - f.write(line1 + line2 + coeff_block + "\n") + if not coeff_block.endswith("\n"): + coeff_block += "\n" + + f.write(line1 + line2 + coeff_block) # default formats