Package: vos-mjjo
vos-mjjovos-mjjo is a Python port ofVos-Mjjov1.0.5Notable ChangesUpdate 0.0.9 - 2023.05Add GitHub Action workflowAdd decision tree model to creating date_dictionaryUpdate the date_dictionaryRefactoring Cordate classApply naming Convention for Built-in FunctionsApply static type hintsAdd module testsUpdate 0.0.10 - 2023.05Refactoring Cordate classAdd metadata-providing methodAdd methods (look_up_one_clean, look_up_array_clean)Enhance method descriptionsAdd error handling based on method input conditionsAdd module testsUpdate 0.0.11 - 2023.05Issue UpdateBy applying the zfill(8) method, the strftime method will generate a date string with 8 characters, ensuring that leading zeros are included for years below 1000Update 0.0.12 - 2023.08Version UpdateUpdate the date dictionary to reflect the time reference of August 2023Update 0.0.13 - 2023.08Built Bjd classBuilt metadata with essential functionalityDeveloped internal functions within the classCreated file data for Convaddr internal functionsBuilt Convaddr classBuilt metadata with essential functionalityDeveloped internal functions within the classAdd module testsUpdate 1.0.0 - 2023.08Update Convaddr classAdd method (union_similar_changed_bjd)Update method (correct_changed_bjd)Update 1.0.1 - 2023.08Update Bjd file data for Convaddr internal functionsStructuring the Relationship Between Legal Administrative DistrictsBuilt BjdObject classBuilt metadata with essential functionalityDeveloped internal functions within the classBuilt BjdConnector classBuilt metadata with essential functionalityDeveloped internal functions within the classBuilt BjdConnectorGraph classBuilt metadata with essential functionalityDeveloped internal functions within the classBuilt FullBjdConnector classBuilt metadata with essential functionalityDeveloped internal functions within the classBuilt FullBjdConnectorGraph classBuilt metadata with essential functionalityDeveloped internal functions within the classBuilt ConvAddrByBjdConnector classBuilt metadata with essential functionalityDeveloped internal functions within the classCreated pickle file for ConvAddrByBjdConnector internal functionsUpdate 1.0.4 - 2023.12Version UpdateUpdate the date dictionary to reflect the time reference of December 2023Update Bjd file data to reflect the time reference of December 2023Update 1.0.5 - 2024.01Update and Design the Structure for Managing Changes in Administrative DistrictsVersion UpdateUpdate the date dictionary to reflect the time reference of January 2024Update Bjd file data to reflect the time reference of January 2024Reflect Changes in Administrative Districts as of January 2024January 1, 2024: Changes in administrative districts related to '부천시'January 18, 2024: Changes in administrative districts related to '전북특별자치도'Installpipinstallvos-mjjoUsageimportmjjomjjo.__version__()Output:1.0.0cordate.get_correct_arrayfrommjjoimportcordatetest_date="9990101"# cordate.get_correct_one(date : str) -> listcordate.get_correct_array(test_date)# 입력된 문자열을 이용해 날짜 생성 규칙에 따라 현재 날짜까지 생성 가능한 모든 날짜를 리스트로 생성함# 날짜 생성 규칙이란 연,월,일의 범위를 이용하는것으로 연도는 올해연도까지, 월은 1부터 12월까지, 일은 월별로 지정된 일까지# 일반적으로 연도는 4자리, 월, 일은 2자리로 표기하지만 자리수 범위는 각 [0:4],[0:2],[0:2] 차지할 수 있음Output:["19990101"]frommjjoimportcordatetest_date_1="99990101"cordate.get_correct_array(test_date_1)test_date_2="9990101"cordate.get_correct_array(test_date_2)test_date_3="990101"cordate.get_correct_array(test_date_3)test_date_4="199901"cordate.get_correct_array(test_date_4)test_date_5="019991"cordate.get_correct_array(test_date_5)test_date_6="19991"cordate.get_correct_array(test_date_6)test_date_7="1999"cordate.get_correct_array(test_date_7)test_date_8="9901"cordate.get_correct_array(test_date_8)Output:[]["19990101"]["19900101","19901001","19990101"]["01990901","19990101"]["01990901","19990101"]["01990901","19990101"]["01990109","00190909","01990901","19990101"]["19900101","00090901","19990101"]cordate.get_correct_onefrommjjoimportcordatetest_date="9990101"# cordate.get_correct_one(date : str) -> strcordate.get_correct_one(test_date)# 입력된 문자열을 이용해 날짜 생성 규칙에 따라 현재 날짜까지 생성 가능한 모든 날짜 리스트중 가장 최신날짜를 출력# 날짜 생성 규칙이란 연,월,일의 범위를 이용하는것으로 연도는 올해연도까지, 월은 1부터 12월까지, 일은 월별로 지정된 일까지# 일반적으로 연도는 4자리, 월, 일은 2자리로 표기하지만 자리수 범위는 각 [0:4],[0:2],[0:2] 차지할 수 있음Output:"19990101"frommjjoimportcordatetest_date_1="99990101"cordate.get_correct_array(test_date_1)test_date_2="9990101"cordate.get_correct_array(test_date_2)test_date_3="990101"cordate.get_correct_array(test_date_3)test_date_4="199901"cordate.get_correct_array(test_date_4)test_date_5="019991"cordate.get_correct_array(test_date_5)test_date_6="19991"cordate.get_correct_array(test_date_6)test_date_7="1999"cordate.get_correct_array(test_date_7)test_date_8="9901"cordate.get_correct_array(test_date_8)Output:None"19990101""19990101""19990101""19990101""19990101""19990101""19990101"cordate.look_up_arrayfrommjjoimportcordateCD=cordate.CorDate()# CorDate 클래스 부여CD.load_date_dictionary()# 라이브러리 배포 폴더에 있는 date_dictionary.txt 로드# CD.look_up_array(date : str) -> listtest_date="99990101"suggestions=CD.look_up_array(test_date)# 연월일 문자열에 Symspellpy로 max_distance=2로 날짜 리스트 출력forsugginsuggestions:print(sugg)# or print(sugg.term, sugg.distance, sugg.count)Output:# term, distance, count19990101,1,15819790101,2,235819690101,2,124319490101,2,113119590101,2,110619991101,2,105019920101,2,98919990701,2,97619990401,2,96419990901,2,91619990601,2,89319991001,2,86519930101,2,85719900101,2,84919910101,2,84419950101,2,79219890101,2,73019940101,2,713...cordate.look_up_onefrommjjoimportcordateCD=cordate.CorDate()# CorDate 클래스 부여CD.load_date_dictionary()# 라이브러리 배포 폴더에 있는 date_dictionary.txt 로드# CD.look_up_one(date : str) -> strtest_date="99990101"suggestion=CD.look_up_one(test_date)# 연월일 문자열에 Symspellpy로 max_distance=2로 날짜 리스트 중 가장 거리, 빈도 가까운 값 출력print(suggestion)Output:# term, distance, count19990101,1,158convaddr.correct_simple_spacingfrommjjoimportconvaddrCA=convaddr.ConvAddr()# ConvAddr 클래스 부여test_addr="서울시 강남구  삼성동 1"result=CA.correct_simple_spacing(addr=test_addr)# 문자열(한글 주소) 2개 이상의 연속된 공백을 단일 공백으로 변환하여 반환print(result)Output:서울시강남구삼성동1convaddr.correct_smallest_bjd_spacingfrommjjoimportconvaddrCA=convaddr.ConvAddr()# ConvAddr 클래스 부여test_addr="서울시 강남구 삼성동1"result=CA.correct_smallest_bjd_spacing(addr=test_addr)# 문자열(한글 주소) 최소 단위 법정동명("가", "동", "로", "리")과 번지 사이의 빈공백이 있을경우 공백으로 변환하여 반환print(result)Output:서울시강남구삼성동1convaddr.correct_changed_bjdfrommjjoimportconvaddrCA=convaddr.ConvAddr()# ConvAddr 클래스 부여test_addr="강원도 춘천시 서면 현암리 1-1"result=CA.correct_changed_bjd(addr=test_addr,is_log=False)# 문자열(한글 주소) 변경전 법정동명이 존재하면 변경후 법정동명으로 변환하여 반환# is_log: bool = True# is_log == True 일 경우, 변경전 법정동명과 변경후 법정동명을 출력print(result)Output:강원특별자치도춘천시서면현암리1-1frommjjoimportconvaddrCA=convaddr.ConvAddr()test_addr="강원도 춘천시 서면 현암리 1-1"result=CA.correct_changed_bjd(addr=test_addr,is_log=True)print(result)Output:2024-01-1714:03:27|[INFO]|강원도춘천시서면현암리2024-01-1714:03:27|[INFO]|해당법정동명은변경되었습니다.변경전:[강원도춘천시서면현암리]변경후:[강원특별자치도춘천시서면현암리]강원특별자치도춘천시서면현암리convaddr.correct_bjdfrommjjoimportconvaddrCA=convaddr.ConvAddr()# ConvAddr 클래스 부여test_addr="서울시 강남구 삼성동 1"result=CA.correct_bjd(addr=test_addr,is_log=True)# 문자열(한글 주소) correct_simple_spacing, correct_smallest_bjd_spacing, correct_changed_bjd 순차적으로 실행하여 변환값 반환# is_log: bool = True# is_log == True 일 경우, 변경전 법정동명과 변경후 법정동명을 출력print(result)Output:서울시강남구삼성동1frommjjoimportconvaddrCA=convaddr.ConvAddr()test_addr="강원도춘천시 서면 현암리 1-1",result=CA.correct_bjd(addr=test_addr,is_log=False)print(result)test_addr="강원도 춘천 시 서면 현암리 1-1"result=CA.correct_bjd(addr=test_addr,is_log=False)print(result)test_addr="강원도 춘천시 서면 현암리"result=CA.correct_bjd(addr=test_addr,is_log=False)print(result)test_addr="강원도 춘천시 서면 현암리 1-1"result=CA.correct_bjd(addr=test_addr,is_log=False)print(result)test_addr="강원도 춘천시 서면 현암리1-1"result=CA.correct_bjd(addr=test_addr,is_log=False)print(result)test_addr="강원도   춘천시 서면 현암리 1-1",result=CA.correct_bjd(addr=test_addr,is_log=False)print(result)Output:강원도춘천시서면현암리1-1# 시도, 시군구와 같이 최소단위 법정동의 띄어쓰기가 올바르지 않을 경우, 변환 불가강원도춘천시서면현암리1-1# 시도, 시군구와 같이 최소단위 법정동의 띄어쓰기가 올바르지 않을 경우, 변환 불가강원특별자치도춘천시서면현암리강원특별자치도춘천시서면현암리1-1강원특별자치도춘천시서면현암리1-1강원특별자치도춘천시서면현암리1-1