def recognizeBackends(b: EntryPoint) -> BackendDescriptor: if hasattr(b.__class__, "__slots__") and "metadata" in b.__class__.__slots__: metadata = b.metadata else: encoded = b.name.split("@", 1) b.name = encoded[0] if len(encoded) > 1: try: metadata = utils.json.loads(encoded[1]) except BaseException: warnings.warn( "Entry point " + repr(b) + " is invalid. The value after @ must be must be a valid JSON!." ) return BackendDescriptor(b, b.name, prio=-1) # broken, so not using else: metadata = None if metadata is not None: if isinstance(metadata, int): return BackendDescriptor(b, b.name, prio=metadata) # it is priority elif isinstance(metadata, dict): return BackendDescriptor(b, b.name, **metadata) else: warnings.warn( "Entry point " + repr(b) + " is invalid. The value after @ must be must be eithera dict, or a number!." ) return BackendDescriptor(b, b.name, prio=-1) # broken, so not using else: return BackendDescriptor(b, b.name)