rda-python-icoads 1.0.13__tar.gz → 1.0.15__tar.gz
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 rda-python-icoads might be problematic. Click here for more details.
- {rda_python_icoads-1.0.13/src/rda_python_icoads.egg-info → rda_python_icoads-1.0.15}/PKG-INFO +1 -1
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/pyproject.toml +1 -1
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/PgIMMA.py +21 -15
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/cleanicoads.py +4 -3
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/fillicoads.py +29 -20
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15/src/rda_python_icoads.egg-info}/PKG-INFO +1 -1
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/LICENSE +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/MANIFEST.in +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/README.md +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/setup.cfg +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/R3.0-stat_doc.pdf +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/README_R3.0_Subset.html +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/__init__.py +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/checkicoads.py +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/countattm.py +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/countattmvar.py +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/counticoads.py +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/countsst.py +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/fillinventory.py +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/fillitable.py +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/fillmonth.py +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/fixiidx.py +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/imma1_subset.py +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/maxsst.py +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/msg +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/msg3.0_subset_readme.txt +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/msg3_subset.py +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/msg_download.py +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/msgsubset.f +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/rdimma1_csv.f +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/writeicoads.py +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads.egg-info/SOURCES.txt +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads.egg-info/dependency_links.txt +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads.egg-info/entry_points.txt +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads.egg-info/requires.txt +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads.egg-info/top_level.txt +0 -0
- {rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/tests/test_icoads.py +0 -0
|
@@ -454,7 +454,7 @@ def get_imma_records(cdate, line, records):
|
|
|
454
454
|
aname = ATTI2NAME[line[offset:offset+2]]
|
|
455
455
|
imma = IMMAS[aname]
|
|
456
456
|
pgrec = get_one_attm(imma[3], offset, line)
|
|
457
|
-
#48 if aname == 'iivad': pgrec['cdi'] = PgUtil.adddate('2014-01-01', 0, 0, I36(pgrec['cdi']), '
|
|
457
|
+
#48 if aname == 'iivad': pgrec['cdi'] = PgUtil.adddate('2014-01-01', 0, 0, I36(pgrec['cdi']), 'YYYYMMDD')
|
|
458
458
|
if aname not in records: records[aname] = initialize_attm_records(imma[3])
|
|
459
459
|
if CURIUID:
|
|
460
460
|
append_one_attm(cdate, imma[0], imma[3], pgrec, records[aname])
|
|
@@ -1115,27 +1115,33 @@ def get_imma_date(line):
|
|
|
1115
1115
|
def get_itidx_date(uid):
|
|
1116
1116
|
|
|
1117
1117
|
global CURIUID, CURIIDX, CURTIDX
|
|
1118
|
+
if CURRN3 < 0: PgLOG.pglog(f"{uid}: Provide a RN3 (>= 0) to proceed", PgLOG.LGEREX)
|
|
1118
1119
|
uidx = uid[0:2].lower()
|
|
1119
1120
|
suid = uid[2:6]
|
|
1120
1121
|
table = f"{CNTLSC}.itidx_{uidx}"
|
|
1121
|
-
cond = f"suid = '{suid}'
|
|
1122
|
-
|
|
1123
|
-
if
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1122
|
+
cond = f"suid = '{suid}'"
|
|
1123
|
+
pgrecs = PgDBI.pgmget(table, "*", cond, PgLOG.LGEREX)
|
|
1124
|
+
ucnt = len(pgrecs['iidx']) if pgrecs else 0
|
|
1125
|
+
if ucnt == 0: return PgLOG.pglog(f"{uid}: not in table {table}, SKIP it", PgLOG.LOGWRN)
|
|
1126
|
+
|
|
1127
|
+
uidx = -1
|
|
1128
|
+
for i in range(ucnt):
|
|
1129
|
+
if pgrecs['rn3'][i] == CURRN3:
|
|
1130
|
+
uidx = i
|
|
1131
|
+
break
|
|
1132
|
+
if uidx == -1: return PgLOG.pglog(f"{uid}: not in table {table} for rn3({CURRN3}), SKIP it", PgLOG.LOGWRN)
|
|
1133
|
+
|
|
1134
|
+
iidx = pgrecs['iidx'][uidx]
|
|
1135
|
+
tidx = pgrecs['tidx'][uidx]
|
|
1130
1136
|
if CHKEXIST: # check
|
|
1131
|
-
table = f"{IVADSC}.{ATTMNAME}_{
|
|
1132
|
-
cnd = f"iidx = {
|
|
1137
|
+
table = f"{IVADSC}.{ATTMNAME}_{tidx}"
|
|
1138
|
+
cnd = f"iidx = {iidx}"
|
|
1133
1139
|
if PgDBI.pgget(table, "", cnd): return None
|
|
1134
1140
|
|
|
1135
1141
|
CURIUID = uid
|
|
1136
|
-
CURIIDX =
|
|
1137
|
-
CURTIDX =
|
|
1138
|
-
return
|
|
1142
|
+
CURIIDX = iidx
|
|
1143
|
+
CURTIDX = tidx
|
|
1144
|
+
return pgrecs['date'][uidx]
|
|
1139
1145
|
|
|
1140
1146
|
#
|
|
1141
1147
|
# get record date for given year, month and day
|
|
@@ -107,9 +107,10 @@ def clean_imma_data():
|
|
|
107
107
|
else:
|
|
108
108
|
clean_imma_data_for_tidx(tidx, cnd)
|
|
109
109
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
110
|
+
if not PVALS['aname']:
|
|
111
|
+
cnt = PgDBI.pgdel(table, PVALS['dcnd'], PgLOG.LGEREX)
|
|
112
|
+
s = 's' if cnt > 1 else ''
|
|
113
|
+
PgLOG.pglog("{}: {} record{} deleted for {}".format(table, cnt, s, PVALS['dcnd']), PgLOG.LOGWRN)
|
|
113
114
|
|
|
114
115
|
#
|
|
115
116
|
# clean up imma data for table index
|
|
@@ -19,12 +19,15 @@ import re
|
|
|
19
19
|
from os import path as op
|
|
20
20
|
from rda_python_common import PgLOG
|
|
21
21
|
from rda_python_common import PgDBI
|
|
22
|
+
from rda_python_common import PgUtil
|
|
22
23
|
from . import PgIMMA
|
|
23
24
|
|
|
24
25
|
PVALS = {
|
|
25
26
|
'uatti' : '',
|
|
26
27
|
'names' : None,
|
|
27
|
-
'files' : []
|
|
28
|
+
'files' : [],
|
|
29
|
+
'dates' : [],
|
|
30
|
+
'dtlen' : 0
|
|
28
31
|
}
|
|
29
32
|
|
|
30
33
|
#
|
|
@@ -38,25 +41,29 @@ def main():
|
|
|
38
41
|
|
|
39
42
|
option = None
|
|
40
43
|
for arg in argv:
|
|
41
|
-
if arg
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
44
|
+
if re.match(r'-\w', arg):
|
|
45
|
+
option = None
|
|
46
|
+
if arg[1] == "b":
|
|
47
|
+
PgLOG.PGLOG['BCKGRND'] = 1
|
|
48
|
+
elif arg[1] == "a":
|
|
49
|
+
PVALS['uatti'] = "98"
|
|
50
|
+
elif arg[1] == "u":
|
|
51
|
+
leaduid = 1
|
|
52
|
+
elif arg[1] == "e":
|
|
53
|
+
chkexist = 1
|
|
54
|
+
elif arg[1] == "i":
|
|
55
|
+
addinventory = 1
|
|
56
|
+
elif arg[1] in "fpr":
|
|
57
|
+
option = arg[1]
|
|
58
|
+
else:
|
|
59
|
+
PgLOG.pglog(arg + ": Invalid Option", PgLOG.LGWNEX)
|
|
57
60
|
elif option == 'f':
|
|
58
61
|
get_imma_filelist(arg)
|
|
59
62
|
option = None
|
|
63
|
+
elif option == 'p':
|
|
64
|
+
PVALS['dates'].append(PgUtil.format_date(arg))
|
|
65
|
+
PVALS['dtlen'] += 1
|
|
66
|
+
if PVALS['dtlen'] == 2: option = None
|
|
60
67
|
elif option == 'r':
|
|
61
68
|
rn3 = int(arg)
|
|
62
69
|
option = None
|
|
@@ -64,11 +71,12 @@ def main():
|
|
|
64
71
|
PVALS['files'].append(arg)
|
|
65
72
|
|
|
66
73
|
if not PVALS['files']:
|
|
67
|
-
print("Usage: fillicoads [-a] [-e] [-f InputFile] [-i] [-r RN3] [-u] FileList")
|
|
74
|
+
print("Usage: fillicoads [-a] [-e] [-f InputFile] [-i] [-p BDate [EDate]] [-r RN3] [-u] FileList")
|
|
68
75
|
print(" At least one file name needs to fill icoads data into Postgres Server")
|
|
69
76
|
print(" Option -a: add all attms, including multi-line ones, such as IVAD and REANQC")
|
|
70
77
|
print(" Option -f: provide a filename holding a list of IMMA1 files")
|
|
71
78
|
print(" Option -i: add daily counting records into inventory table")
|
|
79
|
+
print(" Option -p: provide a period for filling data")
|
|
72
80
|
print(" Option -r: the Third digit of IMMA release number")
|
|
73
81
|
print(" Option -u: standalone attachment records with leading 6-character UID")
|
|
74
82
|
print(" Option -e: check existing record before adding attm")
|
|
@@ -121,10 +129,10 @@ def process_imma_file(fname, addinventory):
|
|
|
121
129
|
|
|
122
130
|
# get the first valid date and do initialization
|
|
123
131
|
line = IMMA.readline()
|
|
132
|
+
PgIMMA.identify_attm_name(line) # check and record standalone attm name
|
|
124
133
|
while line:
|
|
125
|
-
PgIMMA.identify_attm_name(line) # check and record standalone attm name
|
|
126
134
|
idate = cdate = PgIMMA.get_imma_date(line)
|
|
127
|
-
if cdate:
|
|
135
|
+
if cdate and (PVALS['dtlen'] == 0 or PgUtil.diffdate(cdate, PVALS['dates'][0]) >= 0):
|
|
128
136
|
PgIMMA.init_indices_for_date(cdate, iname)
|
|
129
137
|
records = PgIMMA.get_imma_records(cdate, line, records)
|
|
130
138
|
break
|
|
@@ -142,6 +150,7 @@ def process_imma_file(fname, addinventory):
|
|
|
142
150
|
for i in range(PgIMMA.TABLECOUNT): acounts[i] += acnts[i]
|
|
143
151
|
records = {}
|
|
144
152
|
cdate = idate
|
|
153
|
+
if PVALS['dtlen'] == 2 and PgUtil.diffdate(cdate, PVALS['dates'][1]) > 0: break
|
|
145
154
|
PgIMMA.init_indices_for_date(cdate, iname)
|
|
146
155
|
records = PgIMMA.get_imma_records(idate, line, records)
|
|
147
156
|
line = IMMA.readline()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/R3.0-stat_doc.pdf
RENAMED
|
File without changes
|
{rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/README_R3.0_Subset.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/fillinventory.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads/msg3.0_subset_readme.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads.egg-info/requires.txt
RENAMED
|
File without changes
|
{rda_python_icoads-1.0.13 → rda_python_icoads-1.0.15}/src/rda_python_icoads.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|