diff --git a/ocldev/checksum.py b/ocldev/checksum.py index f6c6a8e..b91a066 100644 --- a/ocldev/checksum.py +++ b/ocldev/checksum.py @@ -6,6 +6,9 @@ from uuid import UUID +LOCALE_STATUS_CHECKSUM_FIELDS = ('retired', 'retire_reason') + + def getvalue(obj, key, default=None): if obj is None: return default @@ -77,12 +80,15 @@ def _get_data_by_resource(self): @staticmethod def get_concept_name_fields(data): - fields = ['locale', 'locale_preferred', 'name', 'name_type', 'external_id', 'retired'] + fields = ['locale', 'locale_preferred', 'name', 'name_type', 'external_id', 'retired', 'retire_reason'] return {field: getvalue(data, field, None) for field in fields} @staticmethod def get_concept_description_fields(data): - fields = ['locale', 'locale_preferred', 'description', 'description_type', 'external_id', 'retired'] + fields = [ + 'locale', 'locale_preferred', 'description', 'description_type', 'external_id', 'retired', + 'retire_reason' + ] return {field: getvalue(data, field, None) for field in fields} def get_concept_fields(self, data): @@ -331,7 +337,12 @@ def _cleanup(fields): def _locales_for_checksums(self, data, relation, predicate_func): locales = getvalue(data, relation, []) locale_func = self.get_concept_name_fields if relation == 'names' else self.get_concept_description_fields - return [locale_func(locale) for locale in locales if predicate_func(locale)] + checksum_locales = [locale_func(locale) for locale in locales if predicate_func(locale)] + if self.checksum_type != 'standard': + for locale in checksum_locales: + for field in LOCALE_STATUS_CHECKSUM_FIELDS: + locale.pop(field, None) + return checksum_locales def _generate(self, obj, hash_algorithm='MD5'): # hex encoding is used to make the hash more readable diff --git a/setup.py b/setup.py index 5f0f2a6..93c1dd3 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setuptools.setup( name='ocldev', - version='0.2.3', + version='0.2.4', author='Open Concept Lab', author_email='info@openconceptlab.org', description='Python development library for working with OCL resources and APIs',