@@ -100,26 +100,26 @@ class RateLimitsConfig(pydantic.BaseModel):
100
100
)
101
101
process_execution : RateLimitsRouteConfig = pydantic .Field (
102
102
default = RateLimitsRouteConfig (),
103
- alias = "processes/{process_id}/execution" ,
103
+ alias = "/ processes/{process_id}/execution" ,
104
104
validate_default = True ,
105
105
)
106
106
jobs : RateLimitsRouteConfig = pydantic .Field (
107
- default = RateLimitsRouteConfig (), alias = "jobs" , validate_default = True
107
+ default = RateLimitsRouteConfig (), alias = "/ jobs" , validate_default = True
108
108
)
109
109
job : RateLimitsRouteConfig = pydantic .Field (
110
- default = RateLimitsRouteConfig (), alias = "jobs/{job_id}" , validate_default = True
110
+ default = RateLimitsRouteConfig (), alias = "/ jobs/{job_id}" , validate_default = True
111
111
)
112
112
job_results : RateLimitsRouteConfig = pydantic .Field (
113
113
default = RateLimitsRouteConfig (),
114
- alias = "jobs/{job_id}/results" ,
114
+ alias = "/ jobs/{job_id}/results" ,
115
115
validate_default = True ,
116
116
)
117
117
118
118
@pydantic .model_validator (mode = "after" ) # type: ignore
119
- def populate_fields_with_default (self ) -> None :
119
+ def populate_fields_with_default (self ) -> pydantic . BaseModel :
120
120
default = self .default
121
121
if default is RateLimitsRouteConfig ():
122
- return
122
+ return self
123
123
routes = self .model_fields
124
124
for route in routes :
125
125
if route == "default" :
@@ -132,23 +132,24 @@ def populate_fields_with_default(self) -> None:
132
132
if not set_value :
133
133
default_value = getattr (getattr (default , method ), origin )
134
134
setattr (getattr (route_config , method ), origin , default_value )
135
- return
135
+ return self
136
136
137
137
138
- def load_rate_limits (rate_limits_file : str ) -> RateLimitsConfig :
138
+ def load_rate_limits (rate_limits_file : str | None ) -> RateLimitsConfig :
139
139
rate_limits = RateLimitsConfig ()
140
- try :
141
- with open (rate_limits_file , "r" ) as file :
142
- loaded_rate_limits = yaml .safe_load (file )
143
- rate_limits = RateLimitsConfig (** loaded_rate_limits )
144
- except OSError :
145
- logger .exception (
146
- "Failed to read rate limits file" , rate_limits_file = rate_limits_file
147
- )
148
- except pydantic .ValidationError :
149
- logger .exception (
150
- "Failed to validate rate limits file" , rate_limits_file = rate_limits_file
151
- )
140
+ if rate_limits_file is not None :
141
+ try :
142
+ with open (rate_limits_file , "r" ) as file :
143
+ loaded_rate_limits = yaml .safe_load (file )
144
+ rate_limits = RateLimitsConfig (** loaded_rate_limits )
145
+ except OSError :
146
+ logger .exception (
147
+ "Failed to read rate limits file" , rate_limits_file = rate_limits_file
148
+ )
149
+ except pydantic .ValidationError :
150
+ logger .exception (
151
+ "Failed to validate rate limits file" , rate_limits_file = rate_limits_file
152
+ )
152
153
return rate_limits
153
154
154
155
@@ -184,7 +185,7 @@ def profiles_api_url(self) -> str:
184
185
"{base_url}/datasets/{process_id}?tab=download#manage-licences"
185
186
)
186
187
187
- rate_limits_file : str = "/etc/retrieve-api/rate-limits.yaml"
188
+ rate_limits_file : str | None = None
188
189
rate_limits : RateLimitsConfig = pydantic .Field (default = RateLimitsConfig ())
189
190
190
191
@pydantic .model_validator (mode = "after" ) # type: ignore
0 commit comments