class CurrentQuarterAnalysis(object): def __init__(self): self.root_path = join(expanduser('~'), 'PycharmProjects', 'python-vistalytics', 'source') self.tree = Tree() self.tree_str = TreeStructure() self.file_utils = FileUtils() self.report_choice = con.INCOME_STATEMENTS def _read_csv(self, resource_dir): src_dir_path = join(self.root_path, 'in', 'csv', resource_dir) files = self.file_utils.get_files(src_dir_path) data_list = [] for f in files: data_list.append(self.file_utils.read_csv(src_dir_path, f)) return data_list def _compare(self, v1, v2): a = 1 if (v1 == 0) else 0 b = 1 if (v2 == 0) else 0 return True if (a ^ b) == 1 else False def process_data(self, data_list): for data in data_list: if con.TTM in data.columns: data.drop(con.TTM, 1, inplace=True) for i, v in data.iterrows(): if self.tree.__contains__(self.tree_str.get_string(i)): size_val = len(v) if self._compare(v[size_val - 2], v[size_val - 1]): print("#############################################") print("Index: " + i + " " + str(v[size_val - 2]) + " : " + str(v[size_val - 1])) def run(self): print( "Choices :\n\n\tDefault: Income Statement\n\t1: Balance Statement\n\t2: Cash Flow Statement" ) c = input() try: self.report_choice = self.tree_str.report_choices[int(c)] if self.report_choice is con.BALANCE_STATEMENTS: self.tree_str.get_balance_tree() else: self.tree_str.get_cash_flow_tree() except KeyError: self.report_choice = con.INCOME_STATEMENTS self.tree_str.get_income_tree() except ValueError: self.report_choice = con.INCOME_STATEMENTS self.tree_str.get_income_tree() self.tree = self.tree_str.tree data_list = self._read_csv(self.report_choice) print(self.tree) self.process_data(data_list)