ksvmuralidhar commited on
Commit
d89a084
·
verified ·
1 Parent(s): 70e67b4

Create read_daily_metrics_from_db.py

Browse files
Files changed (1) hide show
  1. read_daily_metrics_from_db.py +52 -0
read_daily_metrics_from_db.py ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pymongo
2
+ import os
3
+ import pandas as pd
4
+ import logging
5
+
6
+
7
+ class MetricsDBRead:
8
+ def __init__(self):
9
+ self.url = os.getenv('DAILY_MODEL_METRICS_DB_URL')
10
+ self.database = "indian_news_metric_history_db"
11
+ self.collection = "indian_news_metric_history_coll"
12
+ self.__client = None
13
+ self.__error = 0
14
+
15
+ def __connect(self):
16
+ try:
17
+ self.__client = pymongo.MongoClient(self.url)
18
+ _ = self.__client.list_database_names()
19
+ except Exception as conn_exception:
20
+ self.__error = 1
21
+ self.__client = None
22
+
23
+ def __read(self):
24
+ try:
25
+ db = self.__client[self.database]
26
+ coll = db[self.collection]
27
+ docs = []
28
+ for doc in coll.find():
29
+ docs.append(doc)
30
+ rss_df = pd.DataFrame(docs)
31
+ except Exception as insert_err:
32
+ self.__error = 1
33
+ rss_df = None
34
+ return rss_df
35
+
36
+ def __close_connection(self):
37
+ if self.__client is not None:
38
+ self.__client.close()
39
+ self.__client = None
40
+
41
+ def read_metrics_from_db(self):
42
+ rss_df = None
43
+ if self.url is not None:
44
+ if self.__error == 0:
45
+ self.__connect()
46
+ if self.__error == 0:
47
+ rss_df = self.__read()
48
+ if self.__error == 0:
49
+ logging.info("Daily Metrics Read Successful")
50
+ if self.__client is not None:
51
+ self.__close_connection()
52
+ return rss_df