-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.py
119 lines (93 loc) · 3.93 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
import pandas as pd
from datetime import date, datetime
import models as m
# pd.options.display.max_rows = 9999
def read_stock_data():
data = pd.read_csv("Stock_quotes_2011.csv", sep=",")
# data['Date_Input'] = date_input
data['Difference'] = 0
return data
def get_stock_by_serialno(serialNo: str, date_input: str):
date_input = datetime.strptime(date_input, '%d/%m/%Y %H:%M')
m.api_result["shifra"] = serialNo
m.api_result["date_input"] = date_input
data = read_stock_data()
data['Date_Input'] = date_input
data = data[data["SerialNo"].str.strip().str.lower() ==
serialNo.strip().lower()]
data['Date'] = pd.to_datetime(data.Date, dayfirst=True)
data['Date'] = data['Date'].dt.floor('Min')
for index, row in data.iterrows():
data.at[index, 'Difference'] = (
(date_input - row.Date).total_seconds()//60)
data = data[data['Difference'] >= 0]
data.sort_values(by=['Difference'], inplace=True, ascending=True)
price_exist_len = len(data.index)
if price_exist_len > 0:
exists = 0 in data.Difference.values
if exists:
data = data[data['Difference'] == 0]
data.sort_values(by=['No'], inplace=True, ascending=False)
# print(data.head(10))
result = data.head(1)
result = result.fillna(0)
m.api_result['qmimi_bleres'] = result["CostPrice"].item()
m.api_result['qmimi_shites'] = result["SalePrice"].item()
m.api_result["no"] = result["No"].item()
m.api_result["date"] = result["Date"].item()
return m.api_result
def get_stock_price(serialNo: str, date_input: str, take: int):
date_input = datetime.strptime(date_input, '%d/%m/%Y %H:%M')
data = read_stock_data()
data['Date_Input'] = date_input
data = data[data["SerialNo"].str.strip().str.lower() ==
serialNo.strip().lower()]
# data['Date'] = pd.to_datetime(data.Date, format='%d/%m/%Y %H:%M:%S')
data['Date'] = pd.to_datetime(data.Date, dayfirst=True)
data['Date'] = data['Date'].dt.floor('Min')
for index, row in data.iterrows():
data.at[index, 'Difference'] = (
(date_input - row.Date).total_seconds()//60)
# data["Difference"] = data["Difference"].apply(
# lambda cell: ((date_input - cell).total_seconds()//60))
data = data[data['Difference'] >= 0]
data.sort_values(by=['Difference'], inplace=True, ascending=True)
price_exist_len = len(data.index)
if price_exist_len > 0:
result = data.head(take)
result = result.fillna(0)
# print(result)
for index, row in result.iterrows():
key = row.No
output = {}
output["no"] = key
output["date"] = row["Date"]
output["serialno"] = serialNo
output['costprice'] = row["CostPrice"]
output['saleprice'] = row["SalePrice"]
output["date_input"] = date_input
output['difference'] = row["Difference"]
m.stock_price_model[str(key)] = output
return m.stock_price_model
def get_stock_by_no(No: int):
data = read_stock_data()
data = data[data["No"] == No]
data['Date'] = pd.to_datetime(data.Date, dayfirst=True)
data['Date'] = data['Date'].dt.floor('Min')
price_exist_len = len(data.index)
if price_exist_len > 0:
result = data.head(1)
result = result.fillna(0)
# print(result)
for index, row in result.iterrows():
key = row.No
output = {}
output["no"] = key
output["date"] = row["Date"]
output["serialno"] = row["SerialNo"]
output['costprice'] = row["CostPrice"]
output['saleprice'] = row["SalePrice"]
m.stock_price_model[str(key)] = output
return m.stock_price_model
# print(get_stock_by_serialno('NZTPWDT100C7', "12/07/2011 12:47"))
# print(get_stock_price('NZTPWDT100C7', "12/07/2011 12:47", 10))