rda-python-metrics 1.0.11__tar.gz → 1.0.14__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-metrics might be problematic. Click here for more details.

Files changed (59) hide show
  1. {rda_python_metrics-1.0.11/src/rda_python_metrics.egg-info → rda_python_metrics-1.0.14}/PKG-INFO +1 -1
  2. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/pyproject.toml +1 -1
  3. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/fillcdgusage.py +35 -21
  4. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14/src/rda_python_metrics.egg-info}/PKG-INFO +1 -1
  5. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/LICENSE +0 -0
  6. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/MANIFEST.in +0 -0
  7. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/README.md +0 -0
  8. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/setup.cfg +0 -0
  9. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/PgIPInfo.py +0 -0
  10. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/PgView.py +0 -0
  11. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/__init__.py +0 -0
  12. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/fillawsusage.py +0 -0
  13. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/fillawsusage.usg +0 -0
  14. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/fillcdgusage.usg +0 -0
  15. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/fillcodusage.py +0 -0
  16. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/fillcodusage.usg +0 -0
  17. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/fillcountry.py +0 -0
  18. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/fillendtime.py +0 -0
  19. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/fillglobususage.py +0 -0
  20. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/fillglobususage.usg +0 -0
  21. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/fillipinfo.py +0 -0
  22. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/fillipinfo.usg +0 -0
  23. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/filloneorder.py +0 -0
  24. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/filloneorder.usg +0 -0
  25. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/fillosdfusage.py +0 -0
  26. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/fillosdfusage.usg +0 -0
  27. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/fillrdadb.py +0 -0
  28. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/fillrdadb.usg +0 -0
  29. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/filltdsusage.py +0 -0
  30. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/filltdsusage.usg +0 -0
  31. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/filluser.py +0 -0
  32. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/filluser.usg +0 -0
  33. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/logarch.py +0 -0
  34. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/logarch.usg +0 -0
  35. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/pgperson.py +0 -0
  36. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/pgsyspath.py +0 -0
  37. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/pgusername.py +0 -0
  38. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/viewallusage.py +0 -0
  39. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/viewallusage.usg +0 -0
  40. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/viewcheckusage.py +0 -0
  41. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/viewcheckusage.usg +0 -0
  42. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/viewcodusage.py +0 -0
  43. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/viewcodusage.usg +0 -0
  44. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/viewordusage.py +0 -0
  45. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/viewordusage.usg +0 -0
  46. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/viewrqstusage.py +0 -0
  47. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/viewrqstusage.usg +0 -0
  48. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/viewtdsusage.py +0 -0
  49. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/viewtdsusage.usg +0 -0
  50. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/viewwebfile.py +0 -0
  51. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/viewwebfile.usg +0 -0
  52. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/viewwebusage.py +0 -0
  53. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics/viewwebusage.usg +0 -0
  54. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics.egg-info/SOURCES.txt +0 -0
  55. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics.egg-info/dependency_links.txt +0 -0
  56. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics.egg-info/entry_points.txt +0 -0
  57. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics.egg-info/requires.txt +0 -0
  58. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/src/rda_python_metrics.egg-info/top_level.txt +0 -0
  59. {rda_python_metrics-1.0.11 → rda_python_metrics-1.0.14}/tests/test_metrics.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rda_python_metrics
3
- Version: 1.0.11
3
+ Version: 1.0.14
4
4
  Summary: RDA Python Package to gather and view data usage metrics
5
5
  Author-email: Zaihua Ji <zji@ucar.edu>
6
6
  Project-URL: Homepage, https://github.com/NCAR/rda-python-metrics
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "rda_python_metrics"
9
- version = "1.0.11"
9
+ version = "1.0.14"
10
10
  authors = [
11
11
  { name="Zaihua Ji", email="zji@ucar.edu" },
12
12
  ]
@@ -16,6 +16,7 @@ import sys
16
16
  import re
17
17
  import glob
18
18
  from os import path as op
19
+ from time import time as tm
19
20
  from rda_python_common import PgLOG
20
21
  from rda_python_common import PgUtil
21
22
  from rda_python_common import PgFile
@@ -116,13 +117,18 @@ def get_dataset_ids(dsnames):
116
117
  if dsname not in DSIDS:
117
118
  PgLOG.pglog(dsname + ": Unknown CDG dataset short name", PgLOG.LOGWRN)
118
119
  continue
120
+ bt = tm()
119
121
  pgrec = PgDBI.pgget(tbname, 'id', "short_name = '{}'".format(dsname))
120
122
  if not (pgrec and pgrec['id']): continue
121
123
  rdaids = DSIDS[dsname]
124
+ strids = "{}-{}".format(dsname, rdaids)
122
125
  cdgid = pgrec['id']
123
126
  cdgids = [cdgid]
124
- recursive_dataset_ids(cdgid, cdgids)
125
- dsids.append([dsname, rdaids, cdgids])
127
+ ccnt = 1
128
+ ccnt += recursive_dataset_ids(cdgid, cdgids)
129
+ dsids.append([dsname, rdaids, cdgids, strids])
130
+ rmsg = PgLOG.seconds_to_string_time(tm() - bt)
131
+ PgLOG.pglog("{}: Found {} CDG dsid/subdsids in {} at {}".format(strids, ccnt, rmsg, PgLOG.current_datetime()), PgLOG.LOGWRN)
126
132
 
127
133
  if not dsids: PgLOG.pglog("No Dataset Id identified to gather CDG metrics", PgLOG.LOGWRN)
128
134
 
@@ -135,12 +141,16 @@ def recursive_dataset_ids(pcdgid, cdgids):
135
141
 
136
142
  tbname = 'metadata.dataset'
137
143
  pgrecs = PgDBI.pgmget(tbname, 'id', "parent_dataset_id = '{}'".format(pcdgid))
138
- if not pgrecs: return
144
+ if not pgrecs: return 0
139
145
 
146
+ ccnt = 0
140
147
  for cdgid in pgrecs['id']:
141
148
  if cdgid in cdgids: continue
142
149
  cdgids.append(cdgid)
143
- recursive_dataset_ids(cdgid, cdgids)
150
+ ccnt += 1
151
+ ccnt += recursive_dataset_ids(cdgid, cdgids)
152
+
153
+ return ccnt
144
154
 
145
155
  #
146
156
  # get the date ranges for given condition
@@ -159,17 +169,17 @@ def get_date_ranges(inputs):
159
169
  tms = input.split('-')
160
170
  dates.append(PgUtil.fmtdate(int(tms[0]), int(tms[1]), 1))
161
171
  dates.append(PgUtil.enddate(dates[0], 0, 'M'))
162
- elif opt == 'Y':
172
+ elif opt == 'y':
163
173
  dates.append(input + "-01-01")
164
174
  dates.append(input + "-12-31")
165
- dranges.append(dates)
175
+ if dates: dranges.append(dates)
166
176
 
167
177
  return dranges
168
178
 
169
179
  #
170
180
  # get file download records for given dsid
171
181
  #
172
- def get_dsid_records(cdgids, dates, srdaid):
182
+ def get_dsid_records(cdgids, dates, strids):
173
183
 
174
184
  gdex_dbname()
175
185
  tbname = 'metrics.file_download'
@@ -181,9 +191,9 @@ def get_dsid_records(cdgids, dates, srdaid):
181
191
  dscnd += "= '{}'".format(cdgids[0])
182
192
  else:
183
193
  dscnd += "IN ('" + "','".join(cdgids) + "')"
184
- dtcnd = "date_completed BETWEEN '{}' AND '{}'".format(dates[0], dates[1])
194
+ dtcnd = "date_completed BETWEEN '{} 00:00:00' AND '{} 23:59:59'".format(dates[0], dates[1])
185
195
  cond = "{} AND completed = True AND {} ORDER BY date_completed".format(dscnd, dtcnd)
186
- PgLOG.pglog("{}: CDG query for {} at {}".format(srdaid, cond, PgLOG.current_datetime()), PgLOG.LOGWRN)
196
+ PgLOG.pglog("{}: Query for {} CDG dsid/subdsids Completed between {} and {} at {}".format(strids, dscnt, dates[0], dates[1], PgLOG.current_datetime()), PgLOG.LOGWRN)
187
197
  pgrecs = PgDBI.pgmget(tbname, fields, cond)
188
198
  PgDBI.dssdb_dbname()
189
199
 
@@ -201,21 +211,24 @@ def fill_cdg_usages(dsids, dranges):
201
211
  dsname = dsid[0]
202
212
  rdaids = dsid[1]
203
213
  cdgids = dsid[2]
204
- srdaid = '|'.join(rdaids)
205
- pgrecs = get_dsid_records(cdgids, dates, srdaid)
214
+ strids = dsid[3]
215
+ bt = tm()
216
+ pgrecs = get_dsid_records(cdgids, dates, strids)
206
217
  pgcnt = len(pgrecs['dataset_file_name']) if pgrecs else 0
207
218
  if pgcnt == 0:
208
- PgLOG.pglog("{}: No record found to gather CDG usage between {} and {}".format(srdaid, dates[0], dates[1]), PgLOG.LOGWRN)
219
+ PgLOG.pglog("{}: No record found to gather CDG usage between {} and {}".format(strids, dates[0], dates[1]), PgLOG.LOGWRN)
209
220
  continue
210
- PgLOG.pglog("{}: Process {} records for CDG usage at {}".format(srdaid, pgcnt, PgLOG.current_datetime()), PgLOG.LOGWRN)
221
+ rmsg = PgLOG.seconds_to_string_time(tm() - bt)
222
+ PgLOG.pglog("{}: Got {} records in {} for processing CDG usage at {}".format(strids, pgcnt, rmsg, PgLOG.current_datetime()), PgLOG.LOGWRN)
211
223
  tcnt = wcnt = 0
212
224
  pwkey = wrec = cdate = None
213
225
  trecs = {}
226
+ bt = tm()
214
227
  for i in range(pgcnt):
215
228
  if (i+1)%20000 == 0:
216
229
  PgLOG.pglog("{}/{}/{} CDG/TDS/WEB records processed to add".format(i, tcnt, wcnt), PgLOG.WARNLG)
217
230
 
218
- pgrec = PgUtil.onerecord(i, pgrecs)
231
+ pgrec = PgUtil.onerecord(pgrecs, i)
219
232
  dsize = pgrec['bytes_sent']
220
233
  if not dsize: continue
221
234
  (year, quarter, date, time) = get_record_date_time(pgrec['date_completed'])
@@ -283,20 +296,21 @@ def fill_cdg_usages(dsids, dranges):
283
296
  atcnt += tcnt
284
297
  awcnt += wcnt
285
298
  allcnt += pgcnt
286
- PgLOG.pglog("{}/{} TDS/WEB usage records added for {} CDG entries at {}".format(atcnt, awcnt, allcnt, PgLOG.current_datetime()), PgLOG.LOGWRN)
299
+ rmsg = PgLOG.seconds_to_string_time(tm() - bt)
300
+ PgLOG.pglog("{}: {}/{} TDS/WEB usage records added for {} CDG entries in {}".format(strids, atcnt, awcnt, allcnt, rmsg), PgLOG.LOGWRN)
287
301
 
288
302
  def get_record_date_time(ctime):
289
303
 
290
- ms = re.search(r'^(\d+)/(\w+)/(\d+) (\d+:\d+:\d+)(\.|$)', str(ctime))
304
+ ms = re.search(r'^(\d+)-(\d+)-(\d+) (\d\d:\d\d:\d\d)', str(ctime))
291
305
  if ms:
292
- d = int(ms.group(1))
293
- m = PgUtil.get_month(ms.group(2))
306
+ y = ms.group(1)
307
+ m = int(ms.group(2))
308
+ d = ms.group(3)
294
309
  q = 1 + int((m-1)/3)
295
- y = ms.group(3)
296
310
  t = ms.group(4)
297
- return (y, q, "{}-{:02}-{:02}".format(y, m, d), t)
311
+ return (y, q, "{}-{:02}-{}".format(y, m, d), t)
298
312
  else:
299
- PgLOG.pglog("time: Invalid date format", PgLOG.LGEREX)
313
+ PgLOG.pglog(str(ctime) + ": Invalid time format", PgLOG.LGEREX)
300
314
 
301
315
  def add_tdsusage_records(year, records, date):
302
316
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rda_python_metrics
3
- Version: 1.0.11
3
+ Version: 1.0.14
4
4
  Summary: RDA Python Package to gather and view data usage metrics
5
5
  Author-email: Zaihua Ji <zji@ucar.edu>
6
6
  Project-URL: Homepage, https://github.com/NCAR/rda-python-metrics