rda-python-dsarch 3.0.15__tar.gz → 3.0.17__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 (21) hide show
  1. {rda_python_dsarch-3.0.15/src/rda_python_dsarch.egg-info → rda_python_dsarch-3.0.17}/PKG-INFO +1 -1
  2. {rda_python_dsarch-3.0.15 → rda_python_dsarch-3.0.17}/pyproject.toml +1 -1
  3. {rda_python_dsarch-3.0.15 → rda_python_dsarch-3.0.17}/src/rda_python_dsarch/dsarch.py +32 -4
  4. {rda_python_dsarch-3.0.15 → rda_python_dsarch-3.0.17}/src/rda_python_dsarch/dsarch.usg +14 -3
  5. {rda_python_dsarch-3.0.15 → rda_python_dsarch-3.0.17}/src/rda_python_dsarch/pg_arch.py +2 -0
  6. {rda_python_dsarch-3.0.15 → rda_python_dsarch-3.0.17/src/rda_python_dsarch.egg-info}/PKG-INFO +1 -1
  7. {rda_python_dsarch-3.0.15 → rda_python_dsarch-3.0.17}/LICENSE +0 -0
  8. {rda_python_dsarch-3.0.15 → rda_python_dsarch-3.0.17}/MANIFEST.in +0 -0
  9. {rda_python_dsarch-3.0.15 → rda_python_dsarch-3.0.17}/README.md +0 -0
  10. {rda_python_dsarch-3.0.15 → rda_python_dsarch-3.0.17}/setup.cfg +0 -0
  11. {rda_python_dsarch-3.0.15 → rda_python_dsarch-3.0.17}/src/rda_python_dsarch/PgArch.py +0 -0
  12. {rda_python_dsarch-3.0.15 → rda_python_dsarch-3.0.17}/src/rda_python_dsarch/PgMeta.py +0 -0
  13. {rda_python_dsarch-3.0.15 → rda_python_dsarch-3.0.17}/src/rda_python_dsarch/__init__.py +0 -0
  14. {rda_python_dsarch-3.0.15 → rda_python_dsarch-3.0.17}/src/rda_python_dsarch/ds_arch.py +0 -0
  15. {rda_python_dsarch-3.0.15 → rda_python_dsarch-3.0.17}/src/rda_python_dsarch/pg_meta.py +0 -0
  16. {rda_python_dsarch-3.0.15 → rda_python_dsarch-3.0.17}/src/rda_python_dsarch.egg-info/SOURCES.txt +0 -0
  17. {rda_python_dsarch-3.0.15 → rda_python_dsarch-3.0.17}/src/rda_python_dsarch.egg-info/dependency_links.txt +0 -0
  18. {rda_python_dsarch-3.0.15 → rda_python_dsarch-3.0.17}/src/rda_python_dsarch.egg-info/entry_points.txt +0 -0
  19. {rda_python_dsarch-3.0.15 → rda_python_dsarch-3.0.17}/src/rda_python_dsarch.egg-info/requires.txt +0 -0
  20. {rda_python_dsarch-3.0.15 → rda_python_dsarch-3.0.17}/src/rda_python_dsarch.egg-info/top_level.txt +0 -0
  21. {rda_python_dsarch-3.0.15 → rda_python_dsarch-3.0.17}/tests/test_dsarch.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rda_python_dsarch
3
- Version: 3.0.15
3
+ Version: 3.0.17
4
4
  Summary: RDA Python package for utility program dsarch archive RDA data
5
5
  Author-email: Zaihua Ji <zji@ucar.edu>
6
6
  Project-URL: Homepage, https://github.com/NCAR/rda-python-dsarch
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "rda_python_dsarch"
7
- version = "3.0.15"
7
+ version = "3.0.17"
8
8
  authors = [
9
9
  { name="Zaihua Ji", email="zji@ucar.edu" },
10
10
  ]
@@ -476,7 +476,7 @@ class DsArch(PgArch, PgMeta):
476
476
  if pgrec and chksum and pgrec['checksum'] and pgrec['checksum'] == chksum:
477
477
  self.pglog("Web-{}: Same-Checksum ARCHIVED at {}:{}".format(winfo, info['date_modified'], info['time_modified']), self.PGOPT['emllog'])
478
478
  warch = 0
479
- elif info['data_size'] == lsize:
479
+ elif not override and info['data_size'] == lsize:
480
480
  self.pglog("Web-{}: Same-Size ARCHIVED at {}:{}".format(winfo, info['date_modified'], info['time_modified']), self.PGOPT['wrnlog'])
481
481
  warch = 0
482
482
  elif vsnctl and not override:
@@ -495,7 +495,7 @@ class DsArch(PgArch, PgMeta):
495
495
  if pgrec and chksum and pgrec['checksum'] and pgrec['checksum'] == chksum:
496
496
  self.pglog("Object-{}-{}: Same-Checksum ARCHIVED at {}:{}".format(bucket, ofile, info['date_modified'], info['time_modified']), self.PGOPT['emllog'])
497
497
  oarch = 0
498
- elif info['data_size'] == lsize:
498
+ elif not override and info['data_size'] == lsize:
499
499
  self.pglog("Object-{}-{}: Same-Size ARCHIVED at {}:{}".format(bucket, ofile, info['date_modified'], info['time_modified']), self.PGOPT['wrnlog'])
500
500
  oarch = 0
501
501
  elif vsnctl and not override:
@@ -714,7 +714,7 @@ class DsArch(PgArch, PgMeta):
714
714
  if pgrec and chksum and pgrec['checksum'] and pgrec['checksum'] == chksum:
715
715
  self.pglog("Object-{}-{}: Same-Checksum ARCHIVED at {}:{}".format(bucket, ofile, info['date_modified'], info['time_modified']), self.PGOPT['emllog'])
716
716
  oarch = 0
717
- elif info['data_size'] == lsize:
717
+ elif not override and info['data_size'] == lsize:
718
718
  self.pglog("Object-{}-{}: Same-Size ARCHIVED at {}:{}".format(bucket, ofile, info['date_modified'], info['time_modified']), self.PGOPT['wrnlog'])
719
719
  oarch = 0
720
720
  else:
@@ -901,7 +901,7 @@ class DsArch(PgArch, PgMeta):
901
901
  if pgrec and chksum and pgrec['checksum'] and pgrec['checksum'] == chksum:
902
902
  self.pglog("Saved-{}: Same-Checksum ARCHIVED at {}:{}".format(sinfo, info['date_modified'], info['time_modified']), self.PGOPT['emllog'])
903
903
  sarch = 0
904
- elif info['data_size'] == lsize:
904
+ elif not override and info['data_size'] == lsize:
905
905
  self.pglog("Saved-{}: Same-Size ARCHIVED at {}:{}".format(sinfo, info['date_modified'], info['time_modified']), self.PGOPT['wrnlog'])
906
906
  sarch = 0
907
907
  elif vsnctl and not override:
@@ -2047,9 +2047,37 @@ class DsArch(PgArch, PgMeta):
2047
2047
  self.print_row_format(pgrec, fnames, hash)
2048
2048
  self.view_keyvalues(dsid, kvalues, getkeys)
2049
2049
  if fnames and 'PE' in self.params: self.get_period_info()
2050
+ if 'SO' in self.params: self.get_owner_info(dsid)
2050
2051
  if 'WN' in self.params or 'WS' in self.params: self.view_filenumber(dsid, 0)
2051
2052
  return 1 # get one dataset record
2052
2053
 
2054
+ def get_owner_info(self, dsid):
2055
+ """
2056
+ Display the specialists who own a dataset.
2057
+
2058
+ Joins dsowner with dssgrp to list each owner's login name, priority
2059
+ (1 = primary specialist) and name, ordered by priority. Lines are
2060
+ written as comments so the output can still be fed back via -IF.
2061
+
2062
+ Args:
2063
+ dsid -- dataset ID string
2064
+ """
2065
+ tjoin = "dsowner LEFT JOIN dssgrp ON specialist = logname"
2066
+ pgrecs = self.pgmget(tjoin, "specialist, priority, fstname, lstname",
2067
+ "dsid = '{}' ORDER BY priority, specialist".format(dsid), self.LGEREX)
2068
+ cnt = len(pgrecs['specialist']) if pgrecs else 0
2069
+ if not cnt:
2070
+ self.OUTPUT.write("#Owner{}NONE\n".format(self.params['ES']))
2071
+ return self.pglog("No owner found for {} in dsowner".format(dsid), self.LOGWRN)
2072
+ dv = self.params['DV']
2073
+ self.OUTPUT.write("#Owner{0}Priority{0}Name{0}\n".format(dv))
2074
+ for i in range(cnt):
2075
+ name = ' '.join(n for n in (pgrecs['fstname'][i], pgrecs['lstname'][i]) if n)
2076
+ if not name: name = 'Not in dssgrp'
2077
+ self.OUTPUT.write("#{1}{0}{2}{0}{3}{0}\n".format(dv, pgrecs['specialist'][i], pgrecs['priority'][i], name))
2078
+ s = 's' if cnt > 1 else ''
2079
+ self.pglog("{} owner record{} retrieved for {}".format(cnt, s, dsid), self.LOGWRN)
2080
+
2053
2081
  def get_period_info(self):
2054
2082
  """
2055
2083
  Retrieve and display dataset time-period records from RDADB.
@@ -301,6 +301,8 @@ handle:
301
301
  -(FO|FormatOutput) - formats each column to a uniform fixed width
302
302
  -(PE|ShowPeriod) - includes associated period information for the
303
303
  dataset and any groups
304
+ -(SO|ShowOwner) - includes the dataset owners (specialists) and
305
+ their priorities, 1 for the primary specialist
304
306
  -(WN|WithFileNumber) - gathers and displays Saved/Web file counts
305
307
 
306
308
  Use -FN (-FieldNames) to select which dataset fields to include.
@@ -1247,7 +1249,8 @@ IMMA_2.4_2007.tar<:>37<:>IMMA<:>Z.TAR<:>D<:>656820224<:>
1247
1249
  -(NE|NoEmail) - suppresses email notification on failure
1248
1250
  -(NT|NoTrim) - skips trimming of spaces and comments from input
1249
1251
  values, speeding up input file processing
1250
- -(OE|OverrideExist) - overwrites existing Saved files
1252
+ -(OE|OverrideExist) - overwrites existing Saved files, even ones of the
1253
+ same size
1251
1254
  -(RO|ResetOrder) - resets display order indices to match the order
1252
1255
  files are given per -SF. Alternatively, use -ON
1253
1256
  (-OrderNames) to reorder all files in the dataset
@@ -1345,7 +1348,8 @@ IMMA_2.4_2007.tar<:>37<:>IMMA<:>Z.TAR<:>D<:>656820224<:>
1345
1348
  -(NE|NoEmail) - suppresses email notification on failure
1346
1349
  -(NT|NoTrim) - skips trimming of spaces and comments from input
1347
1350
  values, speeding up input file processing
1348
- -(OE|OverrideExist) - overwrites existing Web files
1351
+ -(OE|OverrideExist) - overwrites existing Web files, even ones of the
1352
+ same size
1349
1353
  -(RO|ResetOrder) - resets display order indices to match the order
1350
1354
  files are given per -WF. Alternatively, use -ON
1351
1355
  (-OrderNames) to reorder all files in the dataset
@@ -1436,7 +1440,8 @@ IMMA_2.4_2007.tar<:>37<:>IMMA<:>Z.TAR<:>D<:>656820224<:>
1436
1440
  -(NE|NoEmail) - suppresses email notification on failure
1437
1441
  -(NT|NoTrim) - skips trimming of spaces and comments from input
1438
1442
  values, speeding up input file processing
1439
- -(OE|OverrideExist) - overwrites existing Help files
1443
+ -(OE|OverrideExist) - overwrites existing Help files, even ones of the
1444
+ same size
1440
1445
  -(RO|ResetOrder) - resets display order indices to match the order
1441
1446
  files are given per -HF. Alternatively, use -ON
1442
1447
  (-OrderNames) to reorder all files in the dataset
@@ -1889,6 +1894,12 @@ behavior.
1889
1894
  the GDEX Server and stores them in GDEXDB for integrity
1890
1895
  verification.
1891
1896
 
1897
+ -SO or -ShowOwner (Alias: -ShowOwners|-ShowSpecialist|-ShowSpecialists),
1898
+ adds the dataset owners from dsowner to the output of -GD
1899
+ (-GetDataset): login name, priority (1 = primary specialist) and
1900
+ name. The lines are written as comments starting with '#', so the
1901
+ output can still be read back with -IF.
1902
+
1892
1903
  -TO or -TarOnly, builds the Quasar tar file locally without
1893
1904
  uploading it to the Globus Quasar Server. Useful for testing. Used
1894
1905
  with -AQ.
@@ -121,6 +121,7 @@ class PgArch(PgOPT, PgCMD, PgSplit):
121
121
  'RS' : [0, 'GXRSOptions', 3],
122
122
  'RT' : [0, 'ResetTIndex', 3],
123
123
  'SC' : [0, 'SetChecksum', 2],
124
+ 'SO' : [0, 'ShowOwner', 0],
124
125
  'TO' : [0, 'TarOnly', 1],
125
126
  'TS' : [0, 'ToSaved', 2],
126
127
  'TT' : [0, 'TotalSummary', 0],
@@ -265,6 +266,7 @@ class PgArch(PgOPT, PgCMD, PgSplit):
265
266
  'RQ' : ['RestoreQuasar', 'RestoreBackupFile', 'RestoreBackup'],
266
267
  'RT' : ['ResetTopGroup'],
267
268
  'SH' : ['SetHelp'],
269
+ 'SO' : ['ShowOwners', 'ShowSpecialist', 'ShowSpecialists'],
268
270
  'SQ' : ['SetQuasar', 'SetBackupFile', 'SetBackup'],
269
271
  'SS' : ['SetSaved'],
270
272
  'ST' : ['SavedType', 'SavedArchiveType'],
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rda_python_dsarch
3
- Version: 3.0.15
3
+ Version: 3.0.17
4
4
  Summary: RDA Python package for utility program dsarch archive RDA data
5
5
  Author-email: Zaihua Ji <zji@ucar.edu>
6
6
  Project-URL: Homepage, https://github.com/NCAR/rda-python-dsarch