rda-python-metrics 1.0.30__tar.gz → 1.0.32__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.
Files changed (61) hide show
  1. {rda_python_metrics-1.0.30/src/rda_python_metrics.egg-info → rda_python_metrics-1.0.32}/PKG-INFO +1 -1
  2. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/pyproject.toml +2 -1
  3. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/PgIPInfo.py +2 -5
  4. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/fillcdgusage.py +57 -35
  5. rda_python_metrics-1.0.32/src/rda_python_metrics/fillgdexusage.py +1018 -0
  6. rda_python_metrics-1.0.32/src/rda_python_metrics/fillgdexusage.usg +18 -0
  7. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32/src/rda_python_metrics.egg-info}/PKG-INFO +1 -1
  8. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics.egg-info/SOURCES.txt +2 -0
  9. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics.egg-info/entry_points.txt +1 -0
  10. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/LICENSE +0 -0
  11. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/MANIFEST.in +0 -0
  12. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/README.md +0 -0
  13. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/setup.cfg +0 -0
  14. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/PgView.py +0 -0
  15. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/__init__.py +0 -0
  16. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/fillawsusage.py +0 -0
  17. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/fillawsusage.usg +0 -0
  18. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/fillcdgusage.usg +0 -0
  19. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/fillcodusage.py +0 -0
  20. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/fillcodusage.usg +0 -0
  21. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/fillcountry.py +0 -0
  22. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/fillendtime.py +0 -0
  23. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/fillglobususage.py +0 -0
  24. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/fillglobususage.usg +0 -0
  25. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/fillipinfo.py +0 -0
  26. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/fillipinfo.usg +0 -0
  27. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/filloneorder.py +0 -0
  28. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/filloneorder.usg +0 -0
  29. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/fillosdfusage.py +0 -0
  30. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/fillosdfusage.usg +0 -0
  31. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/fillrdadb.py +0 -0
  32. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/fillrdadb.usg +0 -0
  33. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/filltdsusage.py +0 -0
  34. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/filltdsusage.usg +0 -0
  35. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/filluser.py +0 -0
  36. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/filluser.usg +0 -0
  37. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/logarch.py +0 -0
  38. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/logarch.usg +0 -0
  39. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/pgperson.py +0 -0
  40. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/pgsyspath.py +0 -0
  41. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/pgusername.py +0 -0
  42. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/viewallusage.py +0 -0
  43. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/viewallusage.usg +0 -0
  44. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/viewcheckusage.py +0 -0
  45. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/viewcheckusage.usg +0 -0
  46. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/viewcodusage.py +0 -0
  47. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/viewcodusage.usg +0 -0
  48. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/viewordusage.py +0 -0
  49. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/viewordusage.usg +0 -0
  50. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/viewrqstusage.py +0 -0
  51. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/viewrqstusage.usg +0 -0
  52. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/viewtdsusage.py +0 -0
  53. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/viewtdsusage.usg +0 -0
  54. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/viewwebfile.py +0 -0
  55. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/viewwebfile.usg +0 -0
  56. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/viewwebusage.py +0 -0
  57. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics/viewwebusage.usg +0 -0
  58. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics.egg-info/dependency_links.txt +0 -0
  59. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics.egg-info/requires.txt +0 -0
  60. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/src/rda_python_metrics.egg-info/top_level.txt +0 -0
  61. {rda_python_metrics-1.0.30 → rda_python_metrics-1.0.32}/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.30
3
+ Version: 1.0.32
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.30"
9
+ version = "1.0.32"
10
10
  authors = [
11
11
  { name="Zaihua Ji", email="zji@ucar.edu" },
12
12
  ]
@@ -44,6 +44,7 @@ pythonpath = [
44
44
  "fillcountry" = "rda_python_metrics.fillcountry:main"
45
45
  "fillendtime" = "rda_python_metrics.fillendtime:main"
46
46
  "fillglobususage" = "rda_python_metrics.fillglobususage:main"
47
+ "fillgdexusage" = "rda_python_metrics.fillgdexusage:main"
47
48
  "fillipinfo" = "rda_python_metrics.fillipinfo:main"
48
49
  "filloneorder" = "rda_python_metrics.filloneorder:main"
49
50
  "fillosdfusage" = "rda_python_metrics.fillosdfusage:main"
@@ -237,12 +237,9 @@ def update_ipinfo_record(record, pgrec = None):
237
237
  #
238
238
  def set_ipinfo(ip, ipopt = True):
239
239
 
240
- if ip in IPRECS:
241
- pgrec = IPRECS[ip]
242
- if pgrec or not ipopt: return pgrec
243
- else:
244
- pgrec = PgDBI.pgget('ipinfo', '*', "ip = '{}'".format(ip))
240
+ if ip in IPRECS: return IPRECS[ip]
245
241
 
242
+ pgrec = PgDBI.pgget('ipinfo', '*', "ip = '{}'".format(ip))
246
243
  if not pgrec or ipopt and pgrec['stat_flag'] == 'M':
247
244
  record = get_ipinfo_record(ip) if ipopt else None
248
245
  if not record: record = get_geoip2_record(ip)
@@ -31,28 +31,28 @@ USAGE = {
31
31
  }
32
32
 
33
33
  DSIDS = {
34
- 'ucar.cgd.cesm2.cam6.prescribed_sst_amip' : ['d651010'],
35
- 'ucar.cgd.ccsm4.CLM_LAND_ONLY' : ['d651011'],
36
- 'ucar.cgd.artmip' : ['d651012', 'd651016', 'd651017', 'd651018'],
37
- 'tamip' : ['d651013'],
38
- 'ucar.cgd.ccsm4.CLIVAR_LE' : ['d651014'],
39
- 'ucar.cgd.cesm2.Gettelman_CESM2_ECS' : ['d651015'],
40
- 'ucar.cgd.ccsm4.geomip.ssp5' : ['d651024'],
41
- 'ucar.cgd.ccsm4.IOD-PACEMAKER' : ['d651021'],
42
- 'ucar.cgd.ccsm4.past2k_transient' : ['651023'],
43
- 'ucar.cgd.ccsm4.lowwarming' : ['d651025'],
44
- 'ucar.cgd.ccsm4.CESM_CAM5_BGC_ME' : ['d651000'],
45
- 'ucar.cgd.ccsm4.iTRACE' : ['d651022'],
46
- 'ucar.cgd.ccsm4.so2_geoeng' : ['d651026'],
47
- 'ucar.cgd.ccsm4.cesmLE' : ['d651027'],
48
- 'ucar.cgd.ccsm4.CESM1-CAM5-DP' : ['d651028'],
49
- 'ucar.cgd.ccsm4.amv_lens' : ['d651031'],
50
- 'ucar.cgd.ccsm4.ATL-PACEMAKER' : ['d651032'],
51
- 'ucar.cgd.ccsm4.pac-pacemaker' : ['d651033'],
52
- 'ucar.cgd.ccsm4.SD-WACCM-X_v2.1' : ['d651034'],
53
- 'ucar.cgd.ccsm4.amv_lens' : ['d651035'],
54
- 'ucar.cgd.cesm2.cism_ismip6' : ['d651036'],
55
- 'ucar.cgd.ccsm4.pliomip2' : ['d651037'],
34
+ # 'ucar.cgd.cesm2.cam6.prescribed_sst_amip' : ['d651010'],
35
+ # 'ucar.cgd.ccsm4.CLM_LAND_ONLY' : ['d651011'],
36
+ # 'ucar.cgd.artmip' : ['d651012', 'd651016', 'd651017', 'd651018'],
37
+ # 'tamip' : ['d651013'],
38
+ # 'ucar.cgd.ccsm4.CLIVAR_LE' : ['d651014'],
39
+ # 'ucar.cgd.cesm2.Gettelman_CESM2_ECS' : ['d651015'],
40
+ # 'ucar.cgd.ccsm4.geomip.ssp5' : ['d651024'],
41
+ # 'ucar.cgd.ccsm4.IOD-PACEMAKER' : ['d651021'],
42
+ # 'ucar.cgd.ccsm4.past2k_transient' : ['651023'],
43
+ # 'ucar.cgd.ccsm4.lowwarming' : ['d651025'],
44
+ # 'ucar.cgd.ccsm4.CESM_CAM5_BGC_ME' : ['d651000'],
45
+ # 'ucar.cgd.ccsm4.iTRACE' : ['d651022'],
46
+ # 'ucar.cgd.ccsm4.so2_geoeng' : ['d651026'],
47
+ # 'ucar.cgd.ccsm4.cesmLE' : ['d651027'],
48
+ # 'ucar.cgd.ccsm4.CESM1-CAM5-DP' : ['d651028'],
49
+ # 'ucar.cgd.ccsm4.amv_lens' : ['d651031'],
50
+ # 'ucar.cgd.ccsm4.ATL-PACEMAKER' : ['d651032'],
51
+ # 'ucar.cgd.ccsm4.pac-pacemaker' : ['d651033'],
52
+ # 'ucar.cgd.ccsm4.SD-WACCM-X_v2.1' : ['d651034'],
53
+ # 'ucar.cgd.ccsm4.amv_lens' : ['d651035'],
54
+ # 'ucar.cgd.cesm2.cism_ismip6' : ['d651036'],
55
+ # 'ucar.cgd.ccsm4.pliomip2' : ['d651037'],
56
56
  # new added
57
57
  'ucar.cgd.cesm2-waccm.s2s_hindcasts': ['d651040'],
58
58
  'ucar.cgd.CESM1.3_SH_storm_tracks': ['d651044'],
@@ -61,18 +61,32 @@ DSIDS = {
61
61
  'ucar.cgd.ccsm4.TC-CESM': ['d651047'],
62
62
  'ucar.cgd.cesm2.ISSI_OSSE': ['d651048'],
63
63
  'ucar.cgd.ccsm4.SOcean_Eddies_mclong': ['d651049'],
64
- 'trace': ['d651050'],
64
+ 'ucar.cgd.ccsm.trace': ['d651050'],
65
65
  'ucar.cgd.cesm2.waccm.solar': ['d651051'],
66
66
  'ucar.cgd.ccsm4.CESM1-CCSM4_mid-Pliocene' : ['d651042'],
67
67
  'ucar.cgd.ccsm4.PaleoIF' : ['d651052'],
68
68
  'ucar.cgd.ccsm4.b.e11.B20LE_fixedO3' : ['d651053'],
69
69
  'ucar.cgd.cesm2.single.forcing.large.ensemble' : ['d651055'],
70
- 'ucar.cgd.cesm2le.output': ['d651056'],
70
+ 'ucar.cgd.cesm2le.output': ['d651056'], # 2025-01 done
71
+ 'ucar.cgd.ccsm4.ARISE-SAI-1.5' : ['d651059'],
71
72
  'ucar.cgd.cesm2.s2s_hindcasts': ['d651060'],
72
73
  'ucar.cgd.cesm2.s2s_hindcasts.mjo': ['d651061'],
73
74
  'ucar.cgd.cesm2.s2s_hindcasts.tc_tracks': ['d651062'],
74
75
  'ucar.cgd.cesm2.s2s_hindcasts.cesm2.climo': ['d651063'],
75
- 'ucar.cgd.ccsm4.ARISE-SAI-1.5' : ['d651059']
76
+ #add 2025-08-06
77
+ 'ucar.cgd.ccsm4.cesmLME' : ['d651058'],
78
+ 'ucar.cgd.ccsm4.GLENS' : ['d651064'],
79
+ 'ucar.cgd.ccsm4.CESM2-CISM2-LIGtransient' : ['d651066'],
80
+ 'ucar.cgd.cesm2.pacific.pacemaker' : ['d651068'],
81
+ 'ucar.cgd.cesm2.tuned.sea.ice.albedo' : ['d651070'],
82
+ 'ucar.cgd.cesm2.cmip5.forcing' : ['d651075'],
83
+ 'ucar.cgd.cesm2.ssp245.biomass.burning' : ['d651073'],
84
+ 'ucar.cgd.cesm2.ssp585.biomass.burning' : ['d651067'],
85
+ 'ucar.cgd.cesm1.cldmod': ['d651069'],
86
+ 'ucar.cgd.cesm2.marine.biogeochemistry': ['d651071'],
87
+ 'ucar.cgd.nw2.mom6': ['d651072'],
88
+ # 'ucar.cgd.cesm2.smyle': ['d651065'], # not done util the end of Aug.
89
+
76
90
  }
77
91
 
78
92
  ALLIDS = list(DSIDS.keys())
@@ -225,12 +239,14 @@ def fill_cdg_usages(dsids, dranges):
225
239
 
226
240
  allcnt = awcnt = atcnt = lcnt = 0
227
241
  for dates in dranges:
228
- for dsid in dsids:
242
+ for adsid in dsids:
229
243
  lcnt += 1
230
- dsname = dsid[0]
231
- rdaids = dsid[1]
232
- cdgids = dsid[2]
233
- strids = dsid[3]
244
+ dsname = adsid[0]
245
+ rdaids = adsid[1]
246
+ getdsid = False if len(rdaids) == 1 else True
247
+ dsid = rdaids[0]
248
+ cdgids = adsid[2]
249
+ strids = adsid[3]
234
250
  bt = tm()
235
251
  pgrecs = get_dsid_records(cdgids, dates, strids)
236
252
  pgcnt = len(pgrecs['dataset_file_name']) if pgrecs else 0
@@ -248,6 +264,10 @@ def fill_cdg_usages(dsids, dranges):
248
264
  PgLOG.pglog("{}/{}/{} CDG/TDS/WEB records processed to add".format(i, tcnt, wcnt), PgLOG.WARNLG)
249
265
 
250
266
  pgrec = PgUtil.onerecord(pgrecs, i)
267
+ wfile = pgrec['dataset_file_name']
268
+ if not wfile:
269
+ wfile = pgrec['logic_file_name']
270
+ if not wfile: continue
251
271
  dsize = pgrec['bytes_sent']
252
272
  if not dsize: continue
253
273
  (year, quarter, date, time) = get_record_date_time(pgrec['date_completed'])
@@ -255,14 +275,13 @@ def fill_cdg_usages(dsids, dranges):
255
275
  if not url: url = pgrec['file_access_point_uri']
256
276
  ip = pgrec['remote_address']
257
277
  engine = pgrec['user_agent_name']
258
- wfile = pgrec['dataset_file_name']
259
- if not wfile: wfile = pgrec['logic_file_name']
260
- wfrec = get_wfile_record(rdaids, wfile)
261
- if not wfrec: continue
262
- dsid = wfrec['dsid']
263
278
  ms = re.search(r'^https*://tds.ucar.edu/thredds/(\w+)/', url)
264
279
  if ms:
265
280
  # tds usage
281
+ if getdsid:
282
+ wfrec = get_wfile_record(rdaids, wfile)
283
+ if not wfrec: continue
284
+ dsid = wfrec['dsid']
266
285
  method = ms.group(1)
267
286
  if pgrec['subset_file_size']:
268
287
  etype = 'S'
@@ -289,6 +308,9 @@ def fill_cdg_usages(dsids, dranges):
289
308
  'region' : iprec['region'], 'email' : iprec['email']}
290
309
  else:
291
310
  # web usage
311
+ wfrec = get_wfile_record(rdaids, wfile)
312
+ if not wfrec: continue
313
+ if getdsid: dsid = wfrec['dsid']
292
314
  fsize = pgrec['dataset_file_size']
293
315
  if not fsize: fsize = pgrec['logic_file_size']
294
316
  method = 'CDG'