This is an automated email from the ASF dual-hosted git repository.
nchung pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-sdap-ingester.git
The following commit(s) were added to refs/heads/dev by this push:
new ce9567b SDAP-340:fix:allow null when standard_name is missing (#39)
ce9567b is described below
commit ce9567bcc8010c7a7834e029bf3e75585cdc74cf
Author: wphyojpl <[email protected]>
AuthorDate: Wed Sep 8 15:31:55 2021 -0700
SDAP-340:fix:allow null when standard_name is missing (#39)
* feat:allow null when standard_name is missing
* feat: add test case to confirm string value can be converted to object
via json lib
---
.../granule_ingester/processors/TileSummarizingProcessor.py | 7 ++-----
.../tests/reading_processors/test_TileSummarizingProcessor.py | 4 ++++
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git
a/granule_ingester/granule_ingester/processors/TileSummarizingProcessor.py
b/granule_ingester/granule_ingester/processors/TileSummarizingProcessor.py
index 2caeb0e..602fcd6 100644
--- a/granule_ingester/granule_ingester/processors/TileSummarizingProcessor.py
+++ b/granule_ingester/granule_ingester/processors/TileSummarizingProcessor.py
@@ -100,11 +100,8 @@ class TileSummarizingProcessor(TileProcessor):
pass
logger.debug(f'calc standard_name')
standard_names = [dataset.variables[k].attrs.get('standard_name')for k
in data_var_name]
- if any([k is None for k in standard_names]):
- logger.debug(f'one or more of standard_names is None. skipping.
{standard_names}')
- else:
- logger.debug(f'using standard_names as all are not None:
{standard_names}')
- tile_summary.standard_name = json.dumps(standard_names if
len(standard_names) > 1 else standard_names[0])
+ logger.debug(f'using standard_names: {standard_names}')
+ tile_summary.standard_name = json.dumps(standard_names if
len(standard_names) > 1 else standard_names[0])
logger.debug(f'copy tile_summary to tile')
tile.summary.CopyFrom(tile_summary)
return tile
diff --git
a/granule_ingester/tests/reading_processors/test_TileSummarizingProcessor.py
b/granule_ingester/tests/reading_processors/test_TileSummarizingProcessor.py
index 5bf7462..3f78114 100644
--- a/granule_ingester/tests/reading_processors/test_TileSummarizingProcessor.py
+++ b/granule_ingester/tests/reading_processors/test_TileSummarizingProcessor.py
@@ -74,6 +74,8 @@ class TestTileSummarizingProcessor(unittest.TestCase):
output_tile = reading_processor._generate_tile(ds,
dimensions_to_slices, input_tile)
tile_summary_processor = TileSummarizingProcessor('test')
new_tile = tile_summary_processor.process(tile=output_tile,
dataset=ds)
+ self.assertEqual('null', new_tile.summary.standard_name, f'wrong
new_tile.summary.standard_name')
+ self.assertEqual(None, json.loads(new_tile.summary.standard_name),
f'unable to convert new_tile.summary.standard_name from JSON')
self.assertTrue(abs(new_tile.summary.stats.mean - 0.26137) <
0.001, f'mean value is not close expected: 0.26137. actual:
{new_tile.summary.stats.mean}')
def test_hls_multiple_var_01(self):
@@ -104,4 +106,6 @@ class TestTileSummarizingProcessor(unittest.TestCase):
output_tile = reading_processor._generate_tile(ds,
dimensions_to_slices, input_tile)
tile_summary_processor = TileSummarizingProcessor('test')
new_tile = tile_summary_processor.process(tile=output_tile,
dataset=ds)
+ self.assertEqual('[null, null, null, null, null, null, null, null,
null, null, null]', new_tile.summary.standard_name, f'wrong
new_tile.summary.standard_name')
+ self.assertEqual([None for _ in range(11)],
json.loads(new_tile.summary.standard_name), f'unable to convert
new_tile.summary.standard_name from JSON')
self.assertTrue(abs(new_tile.summary.stats.mean - 0.26523) <
0.001, f'mean value is not close expected: 0.26523. actual:
{new_tile.summary.stats.mean}')
\ No newline at end of file