MCPcopy Create free account
hub / github.com/DVampire/FinAgent / Processor

Class Processor

finagent/processor/processor.py:204–636  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

202
203@PROCESSOR.register_module(force=True)
204class Processor():
205 def __init__(self,
206 root=None,
207 path_params = None,
208 stocks_path = None,
209 start_date = None,
210 end_date = None,
211 interval="day",
212 if_parse_url = False,
213 workdir = None,
214 tag = None
215 ):
216 self.root = root
217 self.path_params = path_params
218 self.stocks_path = os.path.join(root, stocks_path)
219 self.start_date = start_date
220 self.end_date = end_date
221 self.interval = interval
222 self.if_parse_url = if_parse_url
223 self.workdir = workdir
224 self.tag = tag
225
226 self.stocks = self._init_stocks()
227
228 def _init_stocks(self):
229 with open(self.stocks_path) as op:
230 stocks = [line.strip() for line in op.readlines()]
231 return stocks
232
233 def _process_price_and_features(self,
234 stocks = None,
235 start_date = None,
236 end_date = None):
237
238 start_date = datetime.strptime(start_date if start_date else self.start_date, "%Y-%m-%d")
239 end_date = datetime.strptime(end_date if end_date else self.end_date, "%Y-%m-%d")
240
241 stocks = stocks if stocks else self.stocks
242
243 price_columns = [
244 "open",
245 "high",
246 "low",
247 "close",
248 "volume",
249 "adj_close"
250 ]
251
252 for stock in tqdm(stocks):
253 price = self.path_params["prices"][0]
254 price_type = price["type"]
255 price_path = price["path"]
256
257 price_path = os.path.join(self.root, price_path, "{}.csv".format(stock))
258
259 if price_type == "fmp":
260 price_column_map = {
261 "open": "open",

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected