in packages/autorest.python/autorest/multiapi/models/operation_mixin_group.py [0:0]
def mixin_operations(self) -> List[MixinOperation]:
mixin_operations: List[MixinOperation] = []
for version_path, metadata_json in self.version_path_to_metadata.items():
if not metadata_json.get("operation_mixins"):
continue
mixin_operations_metadata = metadata_json["operation_mixins"]["operations"]
for (
mixin_operation_name,
mixin_operation_metadata,
) in mixin_operations_metadata.items():
if mixin_operation_name.startswith("_"):
continue
try:
mixin_operation = [mo for mo in mixin_operations if mo.name == mixin_operation_name][0]
except IndexError:
mixin_operation = MixinOperation(
name=mixin_operation_name,
mixin_operation_metadata=mixin_operation_metadata,
)
mixin_operations.append(mixin_operation)
mixin_operation.append_available_api(version_path.name)
# make sure that the signature, doc, call, and coroutine is based off of the default api version,
# if the default api version has a definition for it.
# will hopefully get this removed once we deal with mixin operations with different signatures
# for different api versions
mixin_operations = self._use_metadata_of_default_api_version(mixin_operations)
mixin_operations.sort(key=lambda x: x.name)
return mixin_operations