# module `concrete.compiler.public_arguments`
PublicArguments.
---
## class `PublicArguments`
PublicArguments holds encrypted and plain arguments, as well as public materials.
An encrypted computation may require both encrypted and plain arguments, PublicArguments holds both types, but also other public materials, such as public keys, which are required for private computation.
### method `__init__`
```python
__init__(public_arguments: PublicArguments)
```
Wrap the native Cpp object.
**Args:**
- `public_arguments` (_PublicArguments): object to wrap
**Raises:**
- `TypeError`: if public_arguments is not of type _PublicArguments
---
### method `deserialize`
```python
deserialize(
client_parameters: ClientParameters,
serialized_args: bytes
) → PublicArguments
```
Unserialize PublicArguments from bytes of serialized_args.
**Args:**
- `client_parameters` (ClientParameters): client parameters of the compiled circuit
- `serialized_args` (bytes): previously serialized PublicArguments
**Raises:**
- `TypeError`: if client_parameters is not of type ClientParameters
- `TypeError`: if serialized_args is not of type bytes
**Returns:**
- `PublicArguments`: deserialized object
---
### method `new`
```python
new(client_parameters: ClientParameters, values: List[Value]) → PublicArguments
```
Create public arguments from individual values.
---
### method `serialize`
```python
serialize() → bytes
```
Serialize the PublicArguments.
**Returns:**
- `bytes`: serialized object