def record_document_type_and_number(browser, abstract, document): document_type, reception_number = access_document_type_and_number( browser, abstract, document) document.reception_number = reception_number record_value(abstract, 'document type', update_sentence_case_extras(title_strip(document_type))) handle_reception_number(abstract, document)
def record_related_documents(browser, abstract, document): related_documents_field = locate_element_by_class_name( browser, abstract.county.record["Related Documents"], "related documents", False, document) related_documents = list_to_string( related_documents_field.text.split('\n')[1:]) record_value(abstract, 'related documents', related_documents)
def record_name_data(abstract, document_table): grantor_text, grantee_text = access_indexing_information( abstract, document_table) grantor = drop_superfluous_information(abstract, grantor_text) grantee = drop_superfluous_information(abstract, grantee_text) record_value(abstract, 'grantor', grantor) record_value(abstract, 'grantee', grantee)
def record_indexing_information(abstract, document_table, document): recording_date_field = locate_element_by_class_name( document_table, abstract.county.classes["Recording Date"], "recording date", document=document) recording_date = date_from_string(recording_date_field.text[:10]) record_value(abstract, 'recording date', recording_date)
def handle_reception_number(abstract, document): if validate_reception_number(document, document.reception_number): record_value(abstract, 'reception number', document.reception_number) else: print( f'Reception number "{document.reception_number}" does not match the expected value for ' f'{document.extrapolate_value()}, please review and press enter to continue...' ) input()
def record_legal(browser, abstract, document): legal_field = locate_element_by_class_name(browser, abstract.county.record["Legal"], "legal", False, document) legal = list_to_string(legal_field.text.split('\n')[1:]) notes = access_notes(browser, abstract, document) if notes == '' or notes == ' ': record_value(abstract, 'legal', legal) else: record_value(abstract, 'legal', f'{notes}\n\n{legal}')
def record_parties(browser, abstract, document): parties_container = locate_element_by_id(browser, abstract.county.record["Parties"], "parties", False, document) parties_text_list = remove_empty_list_items( parties_container.text.split('\n')) midpoint = parties_text_list.index('Grantees') grantor = list(map(title_strip, parties_text_list[1:midpoint])) grantee = list(map(title_strip, parties_text_list[(midpoint + 1):])) record_value(abstract, 'grantor', list_to_string(grantor)) record_value(abstract, 'grantee', list_to_string(grantee))
def record_legal_data(abstract, document_table): table_rows = access_table_rows(abstract, document_table) legal_data = table_rows[1].find_elements_by_tag_name( abstract.county.tags["Index Table"][2]) if legal_data == []: record_value(abstract, 'legal', search_errors[2]) else: legal = legal_data[-1].text if legal.endswith(search_errors[4]): legal = legal.strip() # Running along with test 1 record_value(abstract, 'legal', drop_superfluous_information(abstract, legal))
def record_legal(abstract, rows): legal = check_rows(abstract, rows, abstract.county.titles["Row Titles"]["legal"]) additional_legal = check_rows( abstract, rows, abstract.county.titles["Row Titles"]["additional_legal"]) if additional_legal != not_applicable: if legal == not_applicable: legal = additional_legal elif additional_legal != legal: legal = f'{legal}\n{additional_legal}' record_value(abstract, 'legal', legal)
def build_document_download_information(browser, abstract, document): access_download_information(browser, abstract, document) while document.reception_number.strip() == '': print('Browser did not correctly access reception number for ' f'{document.extrapolate_value()}, trying again...') naptime() access_download_information(browser, abstract, document) record_value(abstract, 'reception number', document.reception_number) # Below is necessary until better logic order is figured out for 'handle_document_image_status' if len(abstract.dataframe['Reception Number']) != len( abstract.dataframe['Comments']): record_value(abstract, 'comments', '')
def record_grantee(abstract, rows): grantee = check_rows(abstract, rows, abstract.county.titles["Row Titles"]["grantee"]) if grantee == not_applicable: grantee = check_rows( abstract, rows, abstract.county.titles["Row Titles"]["alt_grantee"]) if grantee == not_applicable: grantee = check_rows( abstract, rows, abstract.county.titles["Row Titles"]["second_alt_grantee"]) record_value(abstract, 'grantee', grantee.title())
def record_related_documents(browser, abstract, document_table, document): # If none then ... ? conditional -- need to test with some print statements to see general feedback first related_table_rows = get_related_documents_table_rows( browser, abstract, document_table, document) related_documents_info = list( map(partial(access_table_body, abstract=abstract), related_table_rows)) related_document_list = list( map(access_title_case_text, related_documents_info)) # related_documents_info = list(map(access_table_body, related_table_rows)) # related_document_list = list(map(access_title_case_text, related_documents_info)) related_documents = "\n".join(related_document_list) record_value(abstract, 'related documents', drop_superfluous_information(abstract, related_documents))
def aggregate_document_information(abstract, document, rows): access_reception_number(abstract, document, rows) record_value(abstract, 'reception number', document.reception_number) record_book_and_page(abstract, rows) record_recording_date(abstract, rows) record_document_type(abstract, rows) record_grantor(abstract, rows) record_grantee(abstract, rows) record_related_documents(abstract, rows) record_legal(abstract, rows) record_empty_values(abstract, ['effective date', 'volume', 'document link']) record_comments(abstract, document)
def record_indexing_data(abstract, document_table, document): reception_field, recording_date = access_indexing_information( abstract, document_table) reception_number, book, page = split_reception_field(reception_field) reception_number = reception_number.split('\n')[0] set_document_download_values(abstract, document, reception_number) record_value(abstract, 'reception number', reception_number) record_value(abstract, 'book', book) record_value(abstract, 'page', page) record_value(abstract, 'recording date', recording_date[:10])
def record_legal(abstract, rows): legal = check_rows(abstract, rows, abstract.county.titles["Row Titles"]["legal"]) alt_legal = check_rows(abstract, rows, abstract.county.titles["Row Titles"]["alt_legal"]) if legal == not_applicable and alt_legal == not_applicable: record_value(abstract, 'legal', '') else: if legal == alt_legal or alt_legal == not_applicable: record_value(abstract, 'legal', legal) elif legal == not_applicable: record_value(abstract, 'legal', alt_legal) else: combined_legal = f'{legal}\n{alt_legal}' record_value(abstract, 'legal', combined_legal)
def record_related_documents(abstract, rows): related_documents = check_rows( abstract, rows, abstract.county.titles["Row Titles"]["related_documents"]) alt_related_documents = check_rows( abstract, rows, abstract.county.titles["Row Titles"]["alt_related_documents"]) if related_documents == not_applicable and alt_related_documents == not_applicable: record_value(abstract, 'related documents', '') else: if related_documents == alt_related_documents or alt_related_documents == not_applicable: record_value(abstract, 'related documents', related_documents) elif related_documents == not_applicable: record_value(abstract, 'related documents', alt_related_documents) else: combined_related_documents = f'{related_documents}\n{alt_related_documents}' record_value(abstract, 'related documents', combined_related_documents)
def record_grantee(abstract, document_table, document): grantee_text = document_table.text.split('\n')[1:] grantee_list = list(map(title_strip, grantee_text)) grantee = update_sentence_case_extras(list_to_string(grantee_list)) record_value(abstract, 'grantee', grantee)
def record_book_and_page(abstract, row): book_page_value = check_rows( abstract, row, abstract.county.titles["Row Titles"]["book_and_page"]) if book_page_value == 'N/A': record_value(abstract, 'book', '') record_value(abstract, 'page', '') else: if book_page_value.startswith(abstract.county.other["Abbreviation"]): book, page = book_page_value[ len(abstract.county.other["Abbreviation"]):].split("/") book = book.strip() page = page.strip() if book == '0' and page == '0': book = not_applicable page = not_applicable record_value(abstract, 'book', book) record_value(abstract, 'page', page) elif book_page_value == '': record_value(abstract, 'book', '') record_value(abstract, 'page', '') else: # Below seems unnecessary, check with testing print( f'Encountered unexpected value "{book_page_value}" when trying to record book & page.' )
def record_reception_number(abstract, document, reception_number_text): reception_number = reception_number_text[1:] set_document_download_values(document, reception_number) record_value(abstract, 'reception number', reception_number)
def record_book_and_page(abstract, book_and_page_text): _, book, _, page = book_and_page_text.split(' ') record_value(abstract, 'book', book) record_value(abstract, 'page', page)
def record_grantee(abstract, rows): grantee = check_rows(abstract, rows, abstract.county.titles["Row Titles"]["grantee"]) record_value(abstract, 'grantee', title_strip(grantee))
def record_document_type(abstract, rows): document_type = check_rows( abstract, rows, abstract.county.titles["Row Titles"]["document_type"]) record_value(abstract, 'document type', title_strip(document_type))
def record_document_type(abstract, document_table): document_type = access_title_case_text(document_table) record_value(abstract, 'document type', document_type)
def record_book_and_page(abstract, rows): book_and_page = check_rows( abstract, rows, abstract.county.titles["Row Titles"]["book_and_page"]) if book_and_page == 'N/A': record_value(abstract, 'book', '') record_value(abstract, 'page', '') else: if book_and_page.startswith(abstract.county.other["Abbreviation"]): book_and_page = book_and_page[len(abstract.county. other["Abbreviation"]):] book, page = book_and_page.replace("/", "").split() if book == '0' and page == '0': record_value(abstract, 'book', '') record_value(abstract, 'page', '') else: record_value(abstract, 'book', book) record_value(abstract, 'page', page)
def record_effective_date(abstract, effective_date_text): effective_date = date_from_string(effective_date_text.split(' ')[-1]) record_value(abstract, 'effective date', effective_date)
def record_recording_date(abstract, recording_date_text): recording_date = date_from_string(recording_date_text.split(' ')[2]) record_value(abstract, 'recording date', recording_date)
def record_document_type(browser, abstract, document): document_type_field = locate_element_by_class_name( browser, abstract.county.record["Document Type"], "document type", False, document) record_value(abstract, 'document type', document_type_field.text.title())
def record_related_documents(abstract, document_table, document): related_documents_text = document_table.text.split('\n')[1:] related_documents_list = list(map(title_strip, related_documents_text)) related_documents = list_to_string(related_documents_list) record_value(abstract, 'related documents', related_documents)
def record_legal(abstract, document_table, document): legal = title_strip(document_table.text) record_value(abstract, 'legal', legal)
def record_recording_date(abstract, rows): recording_date = check_rows( abstract, rows, abstract.county.titles["Row Titles"]["recording_date"]) record_value(abstract, 'recording date', recording_date[:10])