# module `concrete.fhe.compilation.compiler`
Declaration of `Compiler` class.
---
## class `EncryptionStatus`
EncryptionStatus enum, to represent encryption status of parameters.
---
## class `Compiler`
Compiler class, to glue the compilation pipeline.
### method `__init__`
```python
__init__(
function: Callable,
parameter_encryption_statuses: Dict[str, Union[str, EncryptionStatus]]
)
```
---
### method `assemble`
```python
assemble(
function: Callable,
parameter_values: Dict[str, ValueDescription],
configuration: Optional[Configuration] = None,
artifacts: Optional[DebugArtifacts] = None,
**kwargs
) → Circuit
```
Assemble a circuit from the raw parameter values, used in direct circuit definition.
**Args:**
function (Callable): function to convert to a circuit
parameter_values (Dict[str, ValueDescription]): parameter values of the function
configuration(Optional[Configuration], default = None): configuration to use
artifacts (Optional[DebugArtifacts], default = None): artifacts to store information about the process
kwargs (Dict[str, Any]): configuration options to overwrite
**Returns:**
Circuit: assembled circuit
---
### method `compile`
```python
compile(
inputset: Optional[Iterable[Any], Iterable[Tuple[Any, ]]] = None,
configuration: Optional[Configuration] = None,
artifacts: Optional[DebugArtifacts] = None,
**kwargs
) → Circuit
```
Compile the function using an inputset.
**Args:**
inputset (Optional[Union[Iterable[Any], Iterable[Tuple[Any, ...]]]]): optional inputset to extend accumulated inputset before bounds measurement
configuration(Optional[Configuration], default = None): configuration to use
artifacts (Optional[DebugArtifacts], default = None): artifacts to store information about the process
kwargs (Dict[str, Any]): configuration options to overwrite
**Returns:**
Circuit: compiled circuit
---
### method `trace`
```python
trace(
inputset: Optional[Iterable[Any], Iterable[Tuple[Any, ]]] = None,
configuration: Optional[Configuration] = None,
artifacts: Optional[DebugArtifacts] = None,
**kwargs
) → Graph
```
Trace the function using an inputset.
**Args:**
inputset (Optional[Union[Iterable[Any], Iterable[Tuple[Any, ...]]]]): optional inputset to extend accumulated inputset before bounds measurement
configuration(Optional[Configuration], default = None): configuration to use
artifacts (Optional[DebugArtifacts], default = None): artifacts to store information about the process
kwargs (Dict[str, Any]): configuration options to overwrite
**Returns:**
Graph: computation graph representing the function prior to MLIR conversion