From 78ca01eeadde6c6f14a5784f020d847ef4078a80 Mon Sep 17 00:00:00 2001 From: Jeremy Fee <jmfee@usgs.gov> Date: Tue, 10 May 2016 19:17:10 -0600 Subject: [PATCH] Update TimeseriesFactory._get_url to support string.format, and additional keys --- geomagio/TimeseriesFactory.py | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/geomagio/TimeseriesFactory.py b/geomagio/TimeseriesFactory.py index 62c6904b..68e17fba 100644 --- a/geomagio/TimeseriesFactory.py +++ b/geomagio/TimeseriesFactory.py @@ -160,16 +160,30 @@ class TimeseriesFactory(object): TimeseriesFactoryException if type or interval are not supported. """ - return self.urlTemplate % { - 'i': self._get_interval_abbreviation(interval), - 'interval': self._get_interval_name(interval), - 'julian': date.strftime("%j"), - 'obs': observatory.lower(), - 'OBS': observatory.upper(), - 't': self._get_type_abbreviation(type), - 'type': self._get_type_name(type), - 'year': date.strftime("%Y"), - 'ymd': date.strftime('%Y%m%d')} + params = { + 'i': self._get_interval_abbreviation(interval), + 'interval': self._get_interval_name(interval), + 'obs': observatory.lower(), + 'OBS': observatory.upper(), + 't': self._get_type_abbreviation(type), + 'type': self._get_type_name(type), + 'date': date.datetime, + # deprecated date properties + # used by Kakioka, upper/lower not supported in string.format + 'month': date.strftime("%b").lower(), + 'MONTH': date.strftime("%b").upper(), + # LEGACY + # old date properties, string.format supports any strftime format + # i.e. '{date:%j}' + 'julian': date.strftime("%j"), + 'year': date.strftime("%Y"), + 'ymd': date.strftime('%Y%m%d') + } + if '{' in self.urlTemplate: + # use new style string formatting + return self.urlTemplate.format(**params) + # use old style string interpolation + return self.urlTemplate % params def _get_interval_abbreviation(self, interval): """Get abbreviation for a data interval. -- GitLab