Source code for dart_fss.filings.search_result

# -*- coding: utf-8 -*-
from typing import Dict

from dart_fss.utils import dict_to_html
from dart_fss.filings.reports import Report


[docs] class SearchResults(object): """ DART 검색결과 정보를 저장하는 클래스""" def __init__(self, resp): self._page_no = resp['page_no'] self._page_count = resp['page_count'] self._total_count = resp['total_count'] self._total_page = resp['total_page'] self._report_list = [Report(**x) for x in resp['list']] @property def page_no(self): """ 표시된 페이지 번호 """ return self._page_no @property def page_count(self): """페이지당 표시할 리포트수""" return self._page_count @property def total_count(self): """int: 총 건수""" return self._total_count @property def total_page(self): """int: 총 페이지수""" return self._total_page @property def report_list(self): """list of Report: 검색된 리포트 리스트""" return self._report_list
[docs] def to_dict(self) -> Dict: """ dict 타입으로 반환 Returns ------- dict of str 검색 결과 dict 타입로 반환 """ return { 'page_no': self.page_no, 'page_count': self.page_count, 'total_count': self.total_count, 'total_page': self.total_page, 'report_list': [x.to_dict() for x in self.report_list] }
[docs] def pop(self, index=-1): """ 주어진 index 의 리포트를 반환하며, 리스트에서 삭제하는 함수""" return self._report_list.pop(index)
def __repr__(self): from pprint import pformat return pformat(self.to_dict()) def _repr_html_(self): return dict_to_html(self.to_dict(), exclude=['pages'], header=['Label', 'Data']) def __getitem__(self, item): return self._report_list[item] def __len__(self): return len(self._report_list)