From 044729b62a8c492a7a9a597e4298c0b31227347f Mon Sep 17 00:00:00 2001 From: toddn Date: Thu, 16 Feb 2023 09:15:32 -0600 Subject: [PATCH 1/3] calling metadata method, using environment variable for clowder version --- image/metadata/ncsa.image.metadata.py | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/image/metadata/ncsa.image.metadata.py b/image/metadata/ncsa.image.metadata.py index b9d27cb..8d2662f 100755 --- a/image/metadata/ncsa.image.metadata.py +++ b/image/metadata/ncsa.image.metadata.py @@ -9,6 +9,7 @@ import pyclowder.files import pyclowder.utils +clowder_version = os.getenv('CLOWDER_VERSION') class ImageMetadataExtractor(Extractor): """Count the number of characters, words and lines in a text file.""" @@ -37,17 +38,21 @@ def process_message(self, connector, host, secret_key, resource, parameters): result = self.parse_exif(subprocess.check_output( [self.args.image_binary, "-verbose", inputfile], stderr=subprocess.STDOUT).decode("utf-8")) - metadata = { - "@context": { - "@vocab": "http://www.w3.org/2003/12/exif/ns" - }, - "file_id": file_id, - "content": result, - "agent": { - "@type": "cat:extractor", - "extractor_id": host + "/api/extractors/ncsa.image.metadata" + if float(clowder_version) >= 2.0: + context = {"@vocab": "http://www.w3.org/2003/12/exif/ns"} + metadata = self.get_metadata(result, 'file', resource['id'], host, contexts=[context]) + else: + metadata = { + "@context": { + "@vocab": "http://www.w3.org/2003/12/exif/ns" + }, + "file_id": file_id, + "content": result, + "agent": { + "@type": "cat:extractor", + "extractor_id": host + "/api/extractors/ncsa.image.metadata" + } } - } pyclowder.files.upload_metadata(connector, host, secret_key, file_id, metadata) def fix_map(self, data): From 4b83549c4a03f310782f015c13a763b32207a69e Mon Sep 17 00:00:00 2001 From: toddn Date: Thu, 16 Feb 2023 14:38:38 -0600 Subject: [PATCH 2/3] default to clowder version 1 --- image/metadata/ncsa.image.metadata.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/image/metadata/ncsa.image.metadata.py b/image/metadata/ncsa.image.metadata.py index 8d2662f..89d32fc 100755 --- a/image/metadata/ncsa.image.metadata.py +++ b/image/metadata/ncsa.image.metadata.py @@ -9,7 +9,7 @@ import pyclowder.files import pyclowder.utils -clowder_version = os.getenv('CLOWDER_VERSION') +clowder_version = os.getenv('CLOWDER_VERSION', '1.0') class ImageMetadataExtractor(Extractor): """Count the number of characters, words and lines in a text file.""" From 087cb81f76c358ee07bf0143e6bf84ce9e27c346 Mon Sep 17 00:00:00 2001 From: toddn Date: Mon, 20 Feb 2023 14:35:43 -0600 Subject: [PATCH 3/3] version not required here no need for explicit metadata construction with either version --- image/metadata/ncsa.image.metadata.py | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/image/metadata/ncsa.image.metadata.py b/image/metadata/ncsa.image.metadata.py index 89d32fc..8610b15 100755 --- a/image/metadata/ncsa.image.metadata.py +++ b/image/metadata/ncsa.image.metadata.py @@ -9,7 +9,6 @@ import pyclowder.files import pyclowder.utils -clowder_version = os.getenv('CLOWDER_VERSION', '1.0') class ImageMetadataExtractor(Extractor): """Count the number of characters, words and lines in a text file.""" @@ -38,21 +37,10 @@ def process_message(self, connector, host, secret_key, resource, parameters): result = self.parse_exif(subprocess.check_output( [self.args.image_binary, "-verbose", inputfile], stderr=subprocess.STDOUT).decode("utf-8")) - if float(clowder_version) >= 2.0: - context = {"@vocab": "http://www.w3.org/2003/12/exif/ns"} - metadata = self.get_metadata(result, 'file', resource['id'], host, contexts=[context]) - else: - metadata = { - "@context": { - "@vocab": "http://www.w3.org/2003/12/exif/ns" - }, - "file_id": file_id, - "content": result, - "agent": { - "@type": "cat:extractor", - "extractor_id": host + "/api/extractors/ncsa.image.metadata" - } - } + context = {"@vocab": "http://www.w3.org/2003/12/exif/ns"} + + metadata = self.get_metadata(result, 'file', resource['id'], host, contexts=[context]) + pyclowder.files.upload_metadata(connector, host, secret_key, file_id, metadata) def fix_map(self, data):