eshan6704 commited on
Commit
8dfb875
·
verified ·
1 Parent(s): d8484b0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -2
app.py CHANGED
@@ -14,6 +14,36 @@ import yahooinfo
14
  import build_nse_fno
15
 
16
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
 
18
  # ======================================================
19
  # Request Type Options
@@ -61,8 +91,8 @@ def update_on_mode(mode):
61
  def fetch_data(mode, req_type, name, date_str):
62
  req_type = req_type.lower()
63
  name = name.strip()
64
- to_date = date_str.strip() or common.today_str()
65
- from_date = common.last_year_str(to_date)
66
 
67
  if mode == "index":
68
  if req_type == "indices":
 
14
  import build_nse_fno
15
 
16
 
17
+ # ======================================================
18
+ # Date helpers
19
+ # ======================================================
20
+ def today_str():
21
+ return datetime.date.today().strftime("%d-%m-%Y")
22
+
23
+ import datetime
24
+
25
+ def st_ed(d: str) -> tuple[str, str]:
26
+ base_date = datetime.datetime.strptime(d, "%d-%m-%Y").date()
27
+
28
+ def is_working_day(x):
29
+ return x.weekday() < 5 # Mon–Fri
30
+
31
+ def prev_working(x):
32
+ while not is_working_day(x):
33
+ x -= datetime.timedelta(days=1)
34
+ return x
35
+
36
+ # -------- Last working day (before given date) --------
37
+ last_working = prev_working(base_date - datetime.timedelta(days=1))
38
+
39
+ # -------- 364-day back, fallback to 363, 362, ... --------
40
+ past_working = prev_working(base_date - datetime.timedelta(days=364))
41
+
42
+ return (
43
+ last_working.strftime("%d-%m-%Y"),
44
+ past_working.strftime("%d-%m-%Y")
45
+ )
46
+
47
 
48
  # ======================================================
49
  # Request Type Options
 
91
  def fetch_data(mode, req_type, name, date_str):
92
  req_type = req_type.lower()
93
  name = name.strip()
94
+ to_date,from_date = sd_ed(date_str.strip())
95
+
96
 
97
  if mode == "index":
98
  if req_type == "indices":