rda-python-common 3.0.16__tar.gz → 3.0.18__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.
- {rda_python_common-3.0.16/src/rda_python_common.egg-info → rda_python_common-3.0.18}/PKG-INFO +2 -2
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/README.md +1 -1
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/pyproject.toml +1 -1
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common/__init__.py +1 -1
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common/pg_file.py +12 -11
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common/pg_log.py +13 -5
- {rda_python_common-3.0.16 → rda_python_common-3.0.18/src/rda_python_common.egg-info}/PKG-INFO +2 -2
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/LICENSE +0 -0
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/setup.cfg +0 -0
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common/PgCMD.py +0 -0
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common/PgDBI.py +0 -0
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common/PgFile.py +0 -0
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common/PgLOG.py +0 -0
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common/PgLock.py +0 -0
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common/PgOPT.py +0 -0
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common/PgSIG.py +0 -0
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common/PgSplit.py +0 -0
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common/PgUtil.py +0 -0
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common/pg_cmd.py +0 -0
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common/pg_dbi.py +0 -0
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common/pg_lock.py +0 -0
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common/pg_opt.py +0 -0
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common/pg_password.py +0 -0
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common/pg_sig.py +0 -0
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common/pg_split.py +0 -0
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common/pg_util.py +0 -0
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common/pgpassword.py +0 -0
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common/pgpassword.usg +0 -0
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common.egg-info/SOURCES.txt +0 -0
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common.egg-info/dependency_links.txt +0 -0
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common.egg-info/entry_points.txt +0 -0
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common.egg-info/requires.txt +0 -0
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common.egg-info/top_level.txt +0 -0
- {rda_python_common-3.0.16 → rda_python_common-3.0.18}/test/test_common.py +0 -0
{rda_python_common-3.0.16/src/rda_python_common.egg-info → rda_python_common-3.0.18}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rda_python_common
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.18
|
|
4
4
|
Summary: RDA Python common library codes shared by other RDA python packages
|
|
5
5
|
Author-email: Zaihua Ji <zji@ucar.edu>
|
|
6
6
|
Project-URL: Homepage, https://github.com/NCAR/rda-python-common
|
|
@@ -189,7 +189,7 @@ PgLOG.pglog("hello", PgLOG.LOGWRN)
|
|
|
189
189
|
python -c "import rda_python_common; print(rda_python_common.__version__)"
|
|
190
190
|
```
|
|
191
191
|
|
|
192
|
-
You should see the installed version (currently `3.0.
|
|
192
|
+
You should see the installed version (currently `3.0.18`). If the import
|
|
193
193
|
fails, double-check that the active Python environment is the one where you
|
|
194
194
|
ran `pip install`.
|
|
195
195
|
|
|
@@ -165,7 +165,7 @@ PgLOG.pglog("hello", PgLOG.LOGWRN)
|
|
|
165
165
|
python -c "import rda_python_common; print(rda_python_common.__version__)"
|
|
166
166
|
```
|
|
167
167
|
|
|
168
|
-
You should see the installed version (currently `3.0.
|
|
168
|
+
You should see the installed version (currently `3.0.18`). If the import
|
|
169
169
|
fails, double-check that the active Python environment is the one where you
|
|
170
170
|
ran `pip install`.
|
|
171
171
|
|
|
@@ -2357,22 +2357,23 @@ class PgFile(PgUtil, PgSIG):
|
|
|
2357
2357
|
if re.match(r'^\[\]', buf): break
|
|
2358
2358
|
if re.match(r'^\[\{', buf):
|
|
2359
2359
|
ary = json.loads(buf)
|
|
2360
|
-
|
|
2360
|
+
cnt = len(ary)
|
|
2361
|
+
isdir = (cnt > 1 or ary[0]['Key'] != file)
|
|
2362
|
+
# a key prefix has no timestamp of its own; report the newest member's
|
|
2363
|
+
hash = max(ary, key = lambda a: a['LastModified']) if isdir else ary[0]
|
|
2361
2364
|
uhash = None
|
|
2362
2365
|
if ucmd:
|
|
2363
2366
|
ubuf = self.pgsystem(ucmd, self.LOGWRN, self.CMDRET)
|
|
2364
2367
|
if ubuf and re.match(r'^\{', ubuf): uhash = json.loads(ubuf)
|
|
2365
2368
|
ret = self.object_file_stat(hash, uhash, opt)
|
|
2366
|
-
if ret:
|
|
2367
|
-
|
|
2368
|
-
|
|
2369
|
-
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
size
|
|
2373
|
-
|
|
2374
|
-
size += int(a['Size'])
|
|
2375
|
-
ret['data_size'] = size
|
|
2369
|
+
if ret and isdir:
|
|
2370
|
+
ret['count'] = cnt
|
|
2371
|
+
ret['fname'] = op.basename(file)
|
|
2372
|
+
ret['isfile'] = 0
|
|
2373
|
+
size = 0
|
|
2374
|
+
for a in ary:
|
|
2375
|
+
size += int(a['Size'])
|
|
2376
|
+
ret['data_size'] = size
|
|
2376
2377
|
uhash = None
|
|
2377
2378
|
break
|
|
2378
2379
|
if opt&64: return self.FAILURE
|
|
@@ -320,13 +320,18 @@ class PgLOG:
|
|
|
320
320
|
msg = emlmsg
|
|
321
321
|
for ekey in entries:
|
|
322
322
|
entry = entries[ekey][0]
|
|
323
|
-
ms = re.search(r'(^|\n)({}: *(.*)\n)'.format(entry),
|
|
323
|
+
ms = re.search(r'(^|\n)({}: *(.*)\n)'.format(entry), msg, re.I)
|
|
324
324
|
if ms:
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
325
|
+
# cut out this header line only; a replace() of the matched text would also
|
|
326
|
+
# strip an identical line from anywhere in the message body
|
|
327
|
+
msg = msg[:ms.start(2)] + msg[ms.end(2):]
|
|
328
|
+
if ms.group(3): entries[ekey][2] = ms.group(3)
|
|
328
329
|
elif entries[ekey][1]:
|
|
329
330
|
return self.pglog("{}Missing Entry '{}' for sending email".format(logmsg, entry), logact|self.ERRLOG)
|
|
331
|
+
if not msg.strip():
|
|
332
|
+
# send_python_email() mails the buffered EMLMSG when it is given no body, which
|
|
333
|
+
# would send an unrelated message to this recipient and empty the buffer
|
|
334
|
+
return self.pglog("{}Empty message body for sending email".format(logmsg), logact|self.ERRLOG)
|
|
330
335
|
ret = self.send_python_email(entries['sb'][2], entries['to'][2], msg, entries['fr'][2], entries['cc'][2], logact)
|
|
331
336
|
if ret == self.SUCCESS or not self.PGLOG['EMLSEND']: return ret
|
|
332
337
|
# try commandline sendmail
|
|
@@ -386,7 +391,10 @@ class PgLOG:
|
|
|
386
391
|
self.PGLOG['EMLMSG'] = ''
|
|
387
392
|
else:
|
|
388
393
|
return ''
|
|
389
|
-
|
|
394
|
+
# only an omitted cc means 'use CCDADDR and carbon copy the sender'; an explicitly
|
|
395
|
+
# empty cc suppresses the Cc entirely, and used to leak the sender into the global
|
|
396
|
+
# CCDADDR anyway, carbon copying it on every later email of the same process
|
|
397
|
+
docc = True if cc is None else False
|
|
390
398
|
if not sender:
|
|
391
399
|
sender = self.PGLOG['CURUID']
|
|
392
400
|
if sender != self.PGLOG['COMMONUSER']: docc = False
|
{rda_python_common-3.0.16 → rda_python_common-3.0.18/src/rda_python_common.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rda_python_common
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.18
|
|
4
4
|
Summary: RDA Python common library codes shared by other RDA python packages
|
|
5
5
|
Author-email: Zaihua Ji <zji@ucar.edu>
|
|
6
6
|
Project-URL: Homepage, https://github.com/NCAR/rda-python-common
|
|
@@ -189,7 +189,7 @@ PgLOG.pglog("hello", PgLOG.LOGWRN)
|
|
|
189
189
|
python -c "import rda_python_common; print(rda_python_common.__version__)"
|
|
190
190
|
```
|
|
191
191
|
|
|
192
|
-
You should see the installed version (currently `3.0.
|
|
192
|
+
You should see the installed version (currently `3.0.18`). If the import
|
|
193
193
|
fails, double-check that the active Python environment is the one where you
|
|
194
194
|
ran `pip install`.
|
|
195
195
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common.egg-info/requires.txt
RENAMED
|
File without changes
|
{rda_python_common-3.0.16 → rda_python_common-3.0.18}/src/rda_python_common.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|