src/fedoidcmsg/operator.py
def correct_usage(self, metadata, federation_usage):
        """
        Remove MS paths that are marked to be used for another usage

        :param metadata: Metadata statement as dictionary
        :param federation_usage: In which context this is expected to used.
        :return: Filtered Metadata statement.
        """

        if 'metadata_statements' in metadata:
            _msl = {}
            for fo, ms in metadata['metadata_statements'].items():
                if not isinstance(ms, Message):
                    ms = json.loads(ms)

                if self.correct_usage(ms, federation_usage=federation_usage):
                    _msl[fo] = ms
            if _msl:
                metadata['metadata_statements'] = Message(**_msl)
                return metadata
            else:
                return None
        else:  # this is the innermost
            try:
                assert federation_usage == metadata['federation_usage']
            except KeyError:
                pass
            except AssertionError:
                return None
            return metadata
def correct_usage(self, metadata, federation_usage):
        if 'metadata_statements' in metadata:
            _msl = {}
            for fo, ms in metadata['metadata_statements'].items():
                if not isinstance(ms, Message):
                    ms = json.loads(ms)

                if self.correct_usage(ms, federation_usage=federation_usage):
                    _msl[fo] = ms
            if _msl:
                metadata['metadata_statements'] = Message(**_msl)
                return metadata
            else:
                return None
        else:  # this is the innermost
            try:
                assert federation_usage == metadata['federation_usage']
            except KeyError:
                pass
            except AssertionError:
                return None
            return metadata
def correct_usage ( self , metadata , federation_usage ) : if 'metadata_statements' in metadata : _msl = { } for fo , ms in metadata [ 'metadata_statements' ] . items ( ) : if not isinstance ( ms , Message ) : ms = json . loads ( ms ) if self . correct_usage ( ms , federation_usage = federation_usage ) : _msl [ fo ] = ms if _msl : metadata [ 'metadata_statements' ] = Message ( * * _msl ) return metadata else : return None else : # this is the innermost try : assert federation_usage == metadata [ 'federation_usage' ] except KeyError : pass except AssertionError : return None return metadata
Remove MS paths that are marked to be used for another usage

        :param metadata: Metadata statement as dictionary
        :param federation_usage: In which context this is expected to used.
        :return: Filtered Metadata statement.
Remove MS paths that are marked to be used for another usage