# mirascope.core.base.merge_decorators
## <ApiType type="Function" path="core/base/merge_decorators" symbolName="merge_decorators" /> merge_decorators
Combines multiple decorators into a single decorator factory.
This function allows you to merge multiple decorators into a single decorator factory.
The decorators are applied in the order they are passed to the function.
All function metadata (e.g. docstrings, function name) is preserved through the decoration chain.
<ParametersTable
parameters={[
{
"name": "decorator",
"type_info": {
"type_str": "Callable[[Callable[_P, _R]], Callable[_WP, _WR]]",
"description": null,
"kind": "callable",
"base_type": {
"type_str": "Callable",
"description": null,
"kind": "simple",
"doc_url": "https://docs.python.org/3/library/typing.html#typing.Callable"
},
"parameters": [
{
"type_str": "[Callable[_P, _R]]",
"description": null,
"kind": "tuple",
"base_type": {
"type_str": "tuple",
"description": null,
"kind": "simple",
"doc_url": "https://docs.python.org/3/library/stdtypes.html#tuple"
},
"parameters": [
{
"type_str": "Callable[_P, _R]",
"description": null,
"kind": "callable",
"base_type": {
"type_str": "Callable",
"description": null,
"kind": "simple",
"doc_url": "https://docs.python.org/3/library/typing.html#typing.Callable"
},
"parameters": [
{
"type_str": "_P",
"description": null,
"kind": "simple",
"doc_url": "/docs/v1/api/core/base/toolkit#p"
},
{
"type_str": "_R",
"description": null,
"kind": "simple",
"doc_identifier": "_R"
}
]
}
]
},
{
"type_str": "Callable[_WP, _WR]",
"description": null,
"kind": "callable",
"base_type": {
"type_str": "Callable",
"description": null,
"kind": "simple",
"doc_url": "https://docs.python.org/3/library/typing.html#typing.Callable"
},
"parameters": [
{
"type_str": "_WP",
"description": null,
"kind": "simple",
"doc_identifier": "_WP"
},
{
"type_str": "_WR",
"description": null,
"kind": "simple",
"doc_identifier": "_WR"
}
]
}
]
},
"description": "The base decorator that determines the type signature of the decorated function."
},
{
"name": "additional_decorators",
"type_info": {
"type_str": "Callable[[Callable], Callable]",
"description": null,
"kind": "callable",
"base_type": {
"type_str": "Callable",
"description": null,
"kind": "simple",
"doc_url": "https://docs.python.org/3/library/typing.html#typing.Callable"
},
"parameters": [
{
"type_str": "[Callable]",
"description": null,
"kind": "tuple",
"base_type": {
"type_str": "tuple",
"description": null,
"kind": "simple",
"doc_url": "https://docs.python.org/3/library/stdtypes.html#tuple"
},
"parameters": [
{
"type_str": "Callable",
"description": null,
"kind": "simple",
"doc_url": "https://docs.python.org/3/library/typing.html#typing.Callable"
}
]
},
{
"type_str": "Callable",
"description": null,
"kind": "simple",
"doc_url": "https://docs.python.org/3/library/typing.html#typing.Callable"
}
]
},
"default": "()"
}
]}
/>
<ReturnTable
returnType={{
"type_info": {
"type_str": "Callable[[], Callable[[Callable[_P, _R]], Callable[_WP, _WR]]]",
"description": null,
"kind": "callable",
"base_type": {
"type_str": "Callable",
"description": null,
"kind": "simple",
"doc_url": "https://docs.python.org/3/library/typing.html#typing.Callable"
},
"parameters": [
{
"type_str": "[]",
"description": null,
"kind": "tuple",
"base_type": {
"type_str": "tuple",
"description": null,
"kind": "simple",
"doc_url": "https://docs.python.org/3/library/stdtypes.html#tuple"
},
"parameters": []
},
{
"type_str": "Callable[[Callable[_P, _R]], Callable[_WP, _WR]]",
"description": null,
"kind": "callable",
"base_type": {
"type_str": "Callable",
"description": null,
"kind": "simple",
"doc_url": "https://docs.python.org/3/library/typing.html#typing.Callable"
},
"parameters": [
{
"type_str": "[Callable[_P, _R]]",
"description": null,
"kind": "tuple",
"base_type": {
"type_str": "tuple",
"description": null,
"kind": "simple",
"doc_url": "https://docs.python.org/3/library/stdtypes.html#tuple"
},
"parameters": [
{
"type_str": "Callable[_P, _R]",
"description": null,
"kind": "callable",
"base_type": {
"type_str": "Callable",
"description": null,
"kind": "simple",
"doc_url": "https://docs.python.org/3/library/typing.html#typing.Callable"
},
"parameters": [
{
"type_str": "_P",
"description": null,
"kind": "simple",
"doc_url": "/docs/v1/api/core/base/toolkit#p"
},
{
"type_str": "_R",
"description": null,
"kind": "simple",
"doc_identifier": "_R"
}
]
}
]
},
{
"type_str": "Callable[_WP, _WR]",
"description": null,
"kind": "callable",
"base_type": {
"type_str": "Callable",
"description": null,
"kind": "simple",
"doc_url": "https://docs.python.org/3/library/typing.html#typing.Callable"
},
"parameters": [
{
"type_str": "_WP",
"description": null,
"kind": "simple",
"doc_identifier": "_WP"
},
{
"type_str": "_WR",
"description": null,
"kind": "simple",
"doc_identifier": "_WR"
}
]
}
]
}
]
},
"description": "A decorator factory function that applies all decorators in the specified order."
}}
/>