@@ -133,6 +133,7 @@ class MetOfficeDatahubRawRepository(ports.RawRepository):
133133
134134 request_url : str
135135 order_id : str
136+ dataspec : str
136137 _headers : dict [str , str ]
137138
138139 def __init__ (self , order_id : str , api_key : str ) -> None :
@@ -143,6 +144,7 @@ def __init__(self, order_id: str, api_key: str) -> None:
143144 }
144145 self .order_id = order_id
145146 self .request_url = f"{ self .base_url } /{ self .order_id } /latest"
147+ self .dataspec = os .getenv ("METOFFICE_DATASPEC" , self .repository ().optional_env ["METOFFICE_DATASPEC" ])
146148
147149 @staticmethod
148150 @override
@@ -154,7 +156,7 @@ def repository() -> entities.RawRepositoryMetadata:
154156 delay_minutes = 120 ,
155157 max_connections = 10 ,
156158 required_env = ["METOFFICE_API_KEY" , "METOFFICE_ORDER_ID" ],
157- optional_env = {},
159+ optional_env = {"METOFFICE_DATASPEC" : "1.1.0" },
158160 postprocess_options = entities .PostProcessOptions (),
159161 available_models = {
160162 "default" : entities .Models .MO_UM_GLOBAL_10KM .with_region ("india" ),
@@ -200,7 +202,7 @@ def fetch_init_data(
200202 it : dt .datetime ,
201203 ) -> Iterator [Callable [..., ResultE [list [xr .DataArray ]]]]:
202204 req : urllib .request .Request = urllib .request .Request ( # noqa: S310
203- url = self .request_url + f"?detail=MINIMAL&runfilter={ it :%Y%m%d%H} " ,
205+ url = self .request_url + f"?detail=MINIMAL&runfilter={ it :%Y%m%d%H} &dataSpec= { self . dataspec } " ,
204206 headers = self ._headers ,
205207 method = "GET" ,
206208 )
@@ -237,7 +239,7 @@ def fetch_init_data(
237239 if "orderDetails" in data and "files" in data ["orderDetails" ]:
238240 for filedata in data ["orderDetails" ]["files" ]:
239241 if "fileId" in filedata and "+" not in filedata ["fileId" ]:
240- urls .append (f"{ self .request_url } /{ filedata ["fileId" ]} /data?dataSpec=1.1.0 " )
242+ urls .append (f"{ self .request_url } /{ filedata ["fileId" ]} /data?dataSpec={ self . dataspec } " )
241243
242244 log .debug (
243245 f"Found { len (urls )} file(s) for init time '{ it .strftime ('%Y-%m-%d %H:%M' )} ' "
0 commit comments