def mixin_operations()

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