vos-data-utils 0.0.2__py3-none-any.whl → 0.0.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of vos-data-utils might be problematic. Click here for more details.

Binary file
@@ -1,65 +0,0 @@
1
- 청주시 상당구
2
- 청주시 서원구
3
- 청주시 흥덕구
4
- 청주시 청원구
5
- 천안시 동남구
6
- 대전시 동구
7
- 대전시 중구
8
- 천안시 서북구
9
- 대전시 서구
10
- 안양시 만안구
11
- 안양시 동안구
12
- 부천시 중구
13
- 부천시 남구
14
- 고양시 일산구
15
- 고양시 일산동구
16
- 고양시 일산서구
17
- 용인시 처인구
18
- 용인시 기흥구
19
- 부천시 원미구
20
- 부천시 소사구
21
- 수원시 장안구
22
- 수원시 권선구
23
- 인천시 중구
24
- 수원시 팔달구
25
- 수원시 영통구
26
- 인천시 동구
27
- 인천시 남구
28
- 인천시 북구
29
- 성남시 수정구
30
- 성남시 중원구
31
- 성남시 분당구
32
- 안산시 상록구
33
- 안산시 단원구
34
- 고양시 덕양구
35
- 광주시 동구
36
- 광주시 서구
37
- 전주시 완산구
38
- 광주시 북구
39
- 용인시 수지구
40
- 전주시 덕진구
41
- 포항시 북구
42
- 대구시 서구
43
- 대구시 남구
44
- 대구시 북구
45
- 대구시 수성구
46
- 포항시 남구
47
- 대구시 중구
48
- 대구시 동구
49
- 울산시 울주구
50
- 창원시 의창구
51
- 울산시 중구
52
- 울산시 남구
53
- 울산시 동구
54
- 부산시 중구
55
- 마산시 합포구
56
- 창원시 성산구
57
- 부산시 서구
58
- 창원시 마산합포구
59
- 부산시 동구
60
- 부산시 영도구
61
- 마산시 회원구
62
- 부산시 동래구
63
- 창원시 마산회원구
64
- 창원시 진해구
65
- 부천시 오정구
Binary file
Binary file
Binary file
vdutils/pnu.py DELETED
@@ -1,221 +0,0 @@
1
- import re
2
- import pandas as pd
3
- from collections import defaultdict
4
- from vdutils.data import (
5
- get_data_from_pnu,
6
- get_files_from_pnu
7
- )
8
-
9
-
10
- bjd_defs: dict = {}
11
- bjd_dict_store: dict = {}
12
- region_names_store: dict = {}
13
- bjd_def_dates = sorted(
14
- [
15
- re.compile("\d{8}").search(f).group()
16
- for f in get_files_from_pnu()
17
- if f.startswith("bjd") and re.compile("\d{8}").search(f)
18
- ]
19
- )
20
-
21
- latest_def_date = bjd_def_dates[-1]
22
-
23
- def get_bjd_def(
24
- def_date=latest_def_date
25
- ):
26
- if def_date in bjd_defs:
27
- # print("using cached bjd data")
28
- return bjd_defs[def_date]
29
-
30
- # print("reading bjd data file")
31
- bjd = get_data_from_pnu(f"bjd_{def_date}.pkl")
32
- bjd_defs[def_date] = bjd
33
- return bjd
34
-
35
- def get_region_names_data(def_date=latest_def_date):
36
- if def_date in region_names_store:
37
- return region_names_store[def_date]
38
-
39
- bjd = get_bjd_def(def_date)
40
-
41
- region_names = defaultdict(list)
42
- for i, row in bjd.iterrows():
43
- region_name = []
44
- for region in ["sido_nm", "sgg_nm", "emd_nm", "dongri_nm"]:
45
- if not pd.isna(row[region]):
46
- region_name.append(row[region])
47
- region_name = " ".join(region_name)
48
- region_names[region_name].append(
49
- {"region_cd": str(row["bjd_cd"]), "erased": not pd.isna(row["erase_dt"])}
50
- )
51
-
52
- region_names_store[def_date] = region_names
53
-
54
- return region_names
55
-
56
- def get_bjd_dict(def_date=latest_def_date):
57
- if def_date in bjd_dict_store:
58
- return bjd_dict_store[def_date]
59
-
60
- bjd = get_bjd_def(def_date)
61
-
62
- bjd_dict = {}
63
- for idx, row in bjd.iterrows():
64
- bjd_cd = str(row["bjd_cd"])
65
- bjd_datum = {}
66
- bjd_full_nm = []
67
- for col in ["sido_nm", "sgg_nm", "emd_nm", "dongri_nm"]:
68
- if not pd.isna(row[col]):
69
- bjd_datum[col] = row[col]
70
- bjd_full_nm.append(row[col])
71
- else:
72
- bjd_datum[col] = None
73
- bjd_datum["bjd_full_nm"] = " ".join(bjd_full_nm)
74
- bjd_datum["created_dt"] = row["created_dt"]
75
- bjd_datum["erase_dt"] = None if pd.isna(row["erase_dt"]) else row["erase_dt"]
76
-
77
- bjd_dict[bjd_cd] = bjd_datum
78
-
79
- bjd_dict_store[def_date] = bjd_dict
80
-
81
- return bjd_dict
82
-
83
- sgg_split_list = {
84
- "고양덕양구",
85
- "고양일산동구",
86
- "고양일산서구",
87
- "성남분당구",
88
- "성남수정구",
89
- "성남중원구",
90
- "수원권선구",
91
- "수원영통구",
92
- "수원장안구",
93
- "수원팔달구",
94
- "안산단원구",
95
- "안산상록구",
96
- "안양동안구",
97
- "안양만안구",
98
- "용인기흥구",
99
- "용인수지구",
100
- "용인처인구",
101
- "전주덕진구",
102
- "전주완산구",
103
- "창원마산합포구",
104
- "창원마산회원구",
105
- "창원성산구",
106
- "창원의창구",
107
- "창원진해구",
108
- "천안동남구",
109
- "천안서북구",
110
- "청주상당구",
111
- "청주서원구",
112
- "청주청원구",
113
- "청주흥덕구",
114
- "포항남구",
115
- "포항북구",
116
- "부천오정구",
117
- "부천원미구",
118
- "부천소사구",
119
- }
120
-
121
- last_nm_refine_map = {
122
- "북문로1가동": "북문로1가",
123
- "북문로2가동": "북문로2가",
124
- "북문로3가동": "북문로3가",
125
- "남문로1가동": "남문로1가",
126
- "남문로2가동": "남문로2가",
127
- "대율리": "대률리",
128
- "어용리": "어룡리",
129
- "청룡리": "청용리",
130
- }
131
-
132
- def get_region_code(region_nm: str, def_date=latest_def_date):
133
- region_nm = " ".join(region_nm.split())
134
-
135
- region_names = get_region_names_data(def_date)
136
- if region_nm in region_names:
137
- region_cd_list = region_names[region_nm]
138
- if len(region_cd_list) > 1:
139
- region_cd = list(
140
- filter(
141
- lambda region_cd_data: not region_cd_data["erased"], region_cd_list
142
- )
143
- )[0]
144
- else:
145
- region_cd = region_cd_list[0]
146
-
147
- return {**region_cd, "def_date": def_date}
148
-
149
- else:
150
- sgg = region_nm.split()[1]
151
- if sgg in sgg_split_list:
152
- sgg_split_nm = f"{sgg[:2]}시 {sgg[2:]}"
153
- region_nm = region_nm.replace(sgg, sgg_split_nm)
154
- return get_region_code(region_nm, def_date)
155
-
156
- last_nm = region_nm.split()[-1]
157
- if last_nm in last_nm_refine_map:
158
- region_nm = region_nm.replace(last_nm, last_nm_refine_map[last_nm])
159
- return get_region_code(region_nm, def_date)
160
-
161
- return None
162
-
163
- def get_bjd(bjd_cd: str, def_date=latest_def_date):
164
- bjd_dict = get_bjd_dict(def_date)
165
-
166
- try:
167
- bjd_cd = str(bjd_cd)
168
- if len(bjd_cd) != 10:
169
- raise Exception("bjd_cd length should be 10:", bjd_cd)
170
- return {"error": False, **bjd_dict[bjd_cd], "def_date": def_date}
171
- except Exception as e:
172
- return {"error": True, "msg": str(e)}
173
-
174
- def generate_pnu(region_cd: str, jibun: str):
175
- msg = ""
176
- try:
177
- if pd.isna(jibun) or jibun[0] in ["B", "가", "지"] or "*" in jibun:
178
- mt_part = "1"
179
- jb_part = "00000000"
180
- bun, ji = 0, 0
181
- if "*" in jibun:
182
- msg = "매칭필요"
183
- else:
184
- msg = "블록지번"
185
-
186
- else:
187
- if jibun[0] in ["산", "산"]:
188
- mt_part = "2"
189
- jibun = jibun.replace("산", "")
190
- else:
191
- mt_part = "1"
192
-
193
- jb_split = jibun.split("-")
194
- if len(jb_split) == 2:
195
- bun, ji = [int(num) for num in jb_split]
196
- jb_part = "%04d%04d" % (bun, ji)
197
- elif len(jb_split) == 1:
198
- bun = int(jibun)
199
- jb_part = "%04d0000" % (bun)
200
- ji = 0
201
- else:
202
- jb_part = "00000000"
203
- bun, ji = 0, 0
204
- msg = "블록지번"
205
- except Exception as e:
206
- mt_part = "1"
207
- jb_part = "00000000"
208
- bun, ji = 0, 0
209
- msg = str(e)
210
-
211
- return {
212
- "pnu": f"{region_cd}{mt_part}{jb_part}",
213
- "region_cd": region_cd,
214
- "sgg_cd": region_cd[:5],
215
- "bjd_cd": region_cd[5:],
216
- "mt_part": mt_part,
217
- "jb_part": jb_part,
218
- "bun": bun,
219
- "ji": ji,
220
- "msg": msg,
221
- }
@@ -1,31 +0,0 @@
1
- vdutils/__init__.py,sha256=ynvUDmuTjG6MwlHvhbHOc4o9wIl4J6Pxh8MfKITm3ic,1444
2
- vdutils/bjd.py,sha256=bfDMxR_pzy2vwPxfwTILGwPLuMpcgqoKj5HuRRMJmcA,20904
3
- vdutils/bjdconnector.py,sha256=XzGFKk5XB0SdJaEWoVg0NXrAaoGc8HO2wlJb0GIjaX4,20065
4
- vdutils/convaddr.py,sha256=jvhUb1NJAzlPT27KkRZ2TR3Z5bGQSyzMJbiHKwpBHp8,11398
5
- vdutils/cordate.py,sha256=KPbG0P3vN1imLP627EbS3lPiGzVtVtAGKgTcpyVHR5g,13633
6
- vdutils/pnu.py,sha256=fh6rvoDQh86vB9PvJNNGjt9rjRUsXuNdCrJkXMwnUzU,6213
7
- vdutils/vid.py,sha256=JnRSZ-L8DtSQz1rVXO3vKBLFp-ndt7F_qPjXdXv1yUQ,3475
8
- vdutils/data/__init__.py,sha256=EX1bn53KiWlU6T6WKyccp3GktychDPoqMMKadlwN3Ic,407
9
- vdutils/data/bjd.txt,sha256=Is5nqqLY0BBF2RHnZgnfhrc7cle7qwQj2PcrCyvW88k,5818464
10
- vdutils/data/bjd_changed.txt,sha256=aLaaHvu2oq5IcmAVrz43besQBakKT-Q68PTbND--Zl0,2247502
11
- vdutils/data/bjd_connectors.pkl,sha256=w6FF0QSZrJAZUqWAUBg2Re9tZgFv4s5dEEWhVSIIWAw,15328348
12
- vdutils/data/bjd_current.txt,sha256=JxqusydDJsWtWY4hL3JkGpUBn07NtrHsJc755U_xoK4,2344590
13
- vdutils/data/bjd_frequency_dictionary.txt,sha256=Eg8jf9naGUg7QJUnCY9JTpvj3tIbwy9RiqAqsIBikbE,139328
14
- vdutils/data/bjd_smallest.txt,sha256=WLjuuep3mOMw1Vlz00KP2rKW89qozZGZsWcI3swN6a8,100009
15
- vdutils/data/date_dictionary.txt,sha256=bj1ZwQ1xLwqNOlsqA5tzqmELHcfLylcueJJODHBu3o8,8186551
16
- vdutils/data/full_bjd_connectors.pkl,sha256=wJsx2FyGH5eapnxPyFiFOvi0NI_6VHL3Rod5EqcMyGs,25069262
17
- vdutils/data/multiple_word_sgg_list.txt,sha256=80AiPlZDsvjKj5UFywwVeUlsps03izRvcMrk0xJS17A,1242
18
- vdutils/data/pnu/bjd_20230701.pkl,sha256=hZU0iyuvVcHQy6gCejjhde6LgIHsSti70DVBUeoi-bE,4173151
19
- vdutils/data/pnu/bjd_20240101.pkl,sha256=7oDFwwz8_nsJIWycVmzA4s1ewkQmbtFQOsi57VPEopU,4175581
20
- vdutils/data/pnu/bjd_20240118.pkl,sha256=Aq661hY79nEw-cw15-vqhTZASmXiIUu8u_hrrwieN4o,4370386
21
- vdutils/library/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
- vdutils/library/data.py,sha256=yFB3WwsAuluK8gkAmfsQAt9VBpeSjjqquoxEMro4Tss,205759
23
- vdutils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
- vdutils/tests/test_convaddr.py,sha256=5BO0wqidtWL2QQAfrTh4VzW4_gpbhYDwKXcyPDfMKSU,7317
25
- vdutils/tests/test_cordate.py,sha256=CRkXPD4SW-uJ0yT5glFfj2mGP-5uF-92ag4bXBYqywk,11442
26
- vdutils/tests/tests.py,sha256=9f-E0KYtXAsrv_NAKkvZQ8UT30wzOQQGydU4baoD1Bw,511
27
- vos_data_utils-0.0.2.dist-info/METADATA,sha256=wnpxXlOtT5PLJf8CkdMqfKaCCkinuvqPCIPQrD2sKTc,34408
28
- vos_data_utils-0.0.2.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
29
- vos_data_utils-0.0.2.dist-info/entry_points.txt,sha256=TPB2LUYp5rOLabatv0O-Bg6bId3UWYUhIVGM0hLZY3g,97
30
- vos_data_utils-0.0.2.dist-info/top_level.txt,sha256=HHg_xE8RoOT58ELEUeaUMbJaRTq7ry3gLSnC4vB4F4E,8
31
- vos_data_utils-0.0.2.dist-info/RECORD,,