Skip to main content

This library is designed to correct dates in building permit records

Project description

vos-mjjo
PyPI version

vos-mjjo is a Python port of Vos-Mjjo v0.0.12


Notable Changes

Update 0.0.9 - 2023.05

  • Add GitHub Action workflow
  • Add decision tree model to creating date_dictionary
  • Update the date_dictionary
  • Refactoring Cordate class
    • Apply naming Convention for Built-in Functions
    • Apply static type hints
    • Add module tests

Update 0.0.10 - 2023.05

  • Refactoring Cordate class
    • Add metadata-providing method
    • Add methods (look_up_one_clean, look_up_array_clean)
    • Enhance method descriptions
    • Add error handling based on method input conditions
    • Add module tests

Update 0.0.11 - 2023.05

  • Issue Update
    • By 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 1000

Update 0.0.12 - 2023.08

  • Version Update
    • Update the date dictionary to reflect the time reference of 2023.08

Install

pip install vos-mjjo

Usage

get_correct_array

from mjjo import cordate

test_date = "9990101"
# cordate.get_correct_one(date : str) -> list
cordate.get_correct_array(test_date)
# 입력된 문자열을 이용해 날짜 생성 규칙에 따라 현재 날짜까지 생성 가능한 모든 날짜를 리스트로 생성함
# 날짜 생성 규칙이란 연,월,일의 범위를 이용하는것으로 연도는 올해연도까지, 월은 1부터 12월까지, 일은 월별로 지정된 일까지
# 일반적으로 연도는 4자리, 월, 일은 2자리로 표기하지만 자리수 범위는 각 [0:4],[0:2],[0:2] 차지할 수 있음

Output:

['19990101']
from mjjo import cordate

test_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']

get_correct_one

from mjjo import cordate

test_date = "9990101"
# cordate.get_correct_one(date : str) -> str
cordate.get_correct_one(test_date)
# 입력된 문자열을 이용해 날짜 생성 규칙에 따라 현재 날짜까지 생성 가능한 모든 날짜 리스트중 가장 최신날짜를 출력
# 날짜 생성 규칙이란 연,월,일의 범위를 이용하는것으로 연도는 올해연도까지, 월은 1부터 12월까지, 일은 월별로 지정된 일까지
# 일반적으로 연도는 4자리, 월, 일은 2자리로 표기하지만 자리수 범위는 각 [0:4],[0:2],[0:2] 차지할 수 있음

Output:

'19990101'
from mjjo import cordate

test_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'

look_up_array

from mjjo import cordate

CD = cordate.CorDate()
# CorDate 클래스 부여
CD.load_date_dictionary()
# 라이브러리 배포 폴더에 있는 date_dictionary.txt 로드
# CD.look_up_array(date : str) -> list
test_date = '99990101'
suggestions = CD.look_up_array(test_date)
# 연월일 문자열에 Symspellpy로 max_distance=2로 날짜 리스트 출력
for sugg in suggestions:
  print(sugg)
  # or print(sugg.term, sugg.distance, sugg.count)

Output:

# term, distance, count
19990101, 1, 158
19790101, 2, 2358
19690101, 2, 1243
19490101, 2, 1131
19590101, 2, 1106
19991101, 2, 1050
19920101, 2, 989
19990701, 2, 976
19990401, 2, 964
19990901, 2, 916
19990601, 2, 893
19991001, 2, 865
19930101, 2, 857
19900101, 2, 849
19910101, 2, 844
19950101, 2, 792
19890101, 2, 730
19940101, 2, 713
...

look_up_one

from mjjo import cordate

CD = cordate.CorDate()
# CorDate 클래스 부여
CD.load_date_dictionary()
# 라이브러리 배포 폴더에 있는 date_dictionary.txt 로드
# CD.look_up_one(date : str) -> str
test_date = '99990101'
suggestion = CD.look_up_one(test_date)
# 연월일 문자열에 Symspellpy로 max_distance=2로 날짜 리스트 중 가장 거리, 빈도 가까운 값 출력
print(suggestion)

Output:

# term, distance, count
19990101, 1, 158

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vos_mjjo-0.0.12.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

vos_mjjo-0.0.12-py3-none-any.whl (1.6 MB view details)

Uploaded Python 3

File details

Details for the file vos_mjjo-0.0.12.tar.gz.

File metadata

  • Download URL: vos_mjjo-0.0.12.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for vos_mjjo-0.0.12.tar.gz
Algorithm Hash digest
SHA256 3819af07d64aa333bb70067192beffd122e878fa9380391fd2c7963f427c22c3
MD5 dd1b6ff7a9246084c82568ae5086a50d
BLAKE2b-256 d21a7eeddcdf43d1264a120140677ccaa20728c83547dc800fd04c64ec3b79d5

See more details on using hashes here.

File details

Details for the file vos_mjjo-0.0.12-py3-none-any.whl.

File metadata

  • Download URL: vos_mjjo-0.0.12-py3-none-any.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for vos_mjjo-0.0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 7ea335a28b7a7a62badd08efc03ff86fbc946ac73eee7626b361ebdb578d9e4e
MD5 78bf5b29d4f290578729741691d283bf
BLAKE2b-256 f539aca3a06e0e479331050c8598f453147dcc751bfdda856e440e120459b827

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page