eshan6704 commited on
Commit
a6d959d
·
verified ·
1 Parent(s): 16f337d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +43 -3
app.py CHANGED
@@ -33,6 +33,19 @@ STYLE_BLOCK = """
33
  }
34
  .card h3 { margin:0 0 10px; font-size:1em; color:#333; }
35
  .card p { margin:0; font-size:0.9em; color:#555; word-wrap:break-word; }
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  </style>
37
  """
38
 
@@ -40,16 +53,32 @@ def fetch_data(symbol, req_type):
40
  try:
41
  ticker = yf.Ticker(symbol)
42
 
43
- # Info block as cards
44
  if req_type.lower() == "info":
45
  info = ticker.info
46
  if not info:
47
  return "<h1>No info available</h1>"
 
 
 
 
48
  cards = "".join(
49
  f"<div class='card'><h3>{key}</h3><p>{value}</p></div>"
50
  for key, value in info.items()
51
  )
52
- return f"{STYLE_BLOCK}{cards}"
 
 
 
 
 
 
 
 
 
 
 
 
53
 
54
  # Daily chart
55
  elif req_type.lower() == "daily":
@@ -166,7 +195,18 @@ iface = gr.Interface(
166
  gr.Textbox(label="Stock Symbol", value="PNB.NS"),
167
  gr.Dropdown(
168
  label="Request Type",
169
- choices=["info","intraday","daily","qresult","result","balance","cashflow","dividend","split","other"],
 
 
 
 
 
 
 
 
 
 
 
170
  value="info"
171
  )
172
  ],
 
33
  }
34
  .card h3 { margin:0 0 10px; font-size:1em; color:#333; }
35
  .card p { margin:0; font-size:0.9em; color:#555; word-wrap:break-word; }
36
+ .big-box {
37
+ width:95%;
38
+ margin:20px auto;
39
+ padding:20px;
40
+ border:1px solid #ccc;
41
+ border-radius:8px;
42
+ background:#fff;
43
+ box-shadow:0 2px 8px rgba(0,0,0,0.1);
44
+ font-size:0.95em;
45
+ line-height:1.4em;
46
+ max-height:400px;
47
+ overflow-y:auto;
48
+ }
49
  </style>
50
  """
51
 
 
53
  try:
54
  ticker = yf.Ticker(symbol)
55
 
56
+ # Info block as cards + big boxes
57
  if req_type.lower() == "info":
58
  info = ticker.info
59
  if not info:
60
  return "<h1>No info available</h1>"
61
+
62
+ long_summary = info.pop("longBusinessSummary", None)
63
+ officers = info.pop("companyOfficers", None)
64
+
65
  cards = "".join(
66
  f"<div class='card'><h3>{key}</h3><p>{value}</p></div>"
67
  for key, value in info.items()
68
  )
69
+
70
+ extra_sections = ""
71
+ if long_summary:
72
+ extra_sections += f"<div class='big-box'><h2>Business Summary</h2><p>{long_summary}</p></div>"
73
+ if officers:
74
+ officer_rows = "".join(
75
+ f"<tr><td>{o.get('name','')}</td><td>{o.get('title','')}</td><td>{o.get('age','')}</td></tr>"
76
+ for o in officers
77
+ )
78
+ officer_table = f"<table class='styled-table'><tr><th>Name</th><th>Title</th><th>Age</th></tr>{officer_rows}</table>"
79
+ extra_sections += f"<div class='big-box'><h2>Company Officers</h2>{officer_table}</div>"
80
+
81
+ return f"{STYLE_BLOCK}{cards}{extra_sections}"
82
 
83
  # Daily chart
84
  elif req_type.lower() == "daily":
 
195
  gr.Textbox(label="Stock Symbol", value="PNB.NS"),
196
  gr.Dropdown(
197
  label="Request Type",
198
+ choices=[
199
+ "info",
200
+ "intraday",
201
+ "daily",
202
+ "qresult",
203
+ "result",
204
+ "balance",
205
+ "cashflow",
206
+ "dividend",
207
+ "split",
208
+ "other"
209
+ ],
210
  value="info"
211
  )
212
  ],