# {py:mod}`titanite.core.schema`

```{py:module} titanite.core.schema
```

```{autodoc2-docstring} titanite.core.schema
:allowtitles:
```

## Module Contents

### Classes

````{list-table}
:class: autosummary longtable
:align: left

* - {py:obj}`SplitColumnRule <titanite.core.schema.SplitColumnRule>`
  - ```{autodoc2-docstring} titanite.core.schema.SplitColumnRule
    :summary:
    ```
* - {py:obj}`BinRule <titanite.core.schema.BinRule>`
  - ```{autodoc2-docstring} titanite.core.schema.BinRule
    :summary:
    ```
* - {py:obj}`ClusterRule <titanite.core.schema.ClusterRule>`
  - ```{autodoc2-docstring} titanite.core.schema.ClusterRule
    :summary:
    ```
* - {py:obj}`SurveySchema <titanite.core.schema.SurveySchema>`
  - ```{autodoc2-docstring} titanite.core.schema.SurveySchema
    :summary:
    ```
````

### API

`````{py:class} SplitColumnRule
:canonical: titanite.core.schema.SplitColumnRule

```{autodoc2-docstring} titanite.core.schema.SplitColumnRule
```

````{py:attribute} source_column
:canonical: titanite.core.schema.SplitColumnRule.source_column
:type: str
:value: >
   None

```{autodoc2-docstring} titanite.core.schema.SplitColumnRule.source_column
```

````

````{py:attribute} delimiter
:canonical: titanite.core.schema.SplitColumnRule.delimiter
:type: str
:value: >
   None

```{autodoc2-docstring} titanite.core.schema.SplitColumnRule.delimiter
```

````

````{py:attribute} regional_column
:canonical: titanite.core.schema.SplitColumnRule.regional_column
:type: str
:value: >
   None

```{autodoc2-docstring} titanite.core.schema.SplitColumnRule.regional_column
```

````

````{py:attribute} subregional_column
:canonical: titanite.core.schema.SplitColumnRule.subregional_column
:type: str
:value: >
   None

```{autodoc2-docstring} titanite.core.schema.SplitColumnRule.subregional_column
```

````

`````

`````{py:class} BinRule
:canonical: titanite.core.schema.BinRule

```{autodoc2-docstring} titanite.core.schema.BinRule
```

````{py:attribute} source_column
:canonical: titanite.core.schema.BinRule.source_column
:type: str
:value: >
   None

```{autodoc2-docstring} titanite.core.schema.BinRule.source_column
```

````

````{py:attribute} output_column
:canonical: titanite.core.schema.BinRule.output_column
:type: str
:value: >
   None

```{autodoc2-docstring} titanite.core.schema.BinRule.output_column
```

````

````{py:attribute} bins
:canonical: titanite.core.schema.BinRule.bins
:type: list
:value: >
   None

```{autodoc2-docstring} titanite.core.schema.BinRule.bins
```

````

````{py:attribute} labels
:canonical: titanite.core.schema.BinRule.labels
:type: list[str]
:value: >
   None

```{autodoc2-docstring} titanite.core.schema.BinRule.labels
```

````

````{py:attribute} right
:canonical: titanite.core.schema.BinRule.right
:type: bool
:value: >
   False

```{autodoc2-docstring} titanite.core.schema.BinRule.right
```

````

`````

`````{py:class} ClusterRule
:canonical: titanite.core.schema.ClusterRule

```{autodoc2-docstring} titanite.core.schema.ClusterRule
```

````{py:attribute} output_column
:canonical: titanite.core.schema.ClusterRule.output_column
:type: str
:value: >
   None

```{autodoc2-docstring} titanite.core.schema.ClusterRule.output_column
```

````

````{py:attribute} description
:canonical: titanite.core.schema.ClusterRule.description
:type: str
:value: >
   None

```{autodoc2-docstring} titanite.core.schema.ClusterRule.description
```

````

````{py:attribute} apply
:canonical: titanite.core.schema.ClusterRule.apply
:type: typing.Callable
:value: >
   None

```{autodoc2-docstring} titanite.core.schema.ClusterRule.apply
```

````

`````

`````{py:class} SurveySchema
:canonical: titanite.core.schema.SurveySchema

Bases: {py:obj}`abc.ABC`

```{autodoc2-docstring} titanite.core.schema.SurveySchema
```

````{py:attribute} categorical_headers
:canonical: titanite.core.schema.SurveySchema.categorical_headers
:type: list[str]
:value: >
   []

```{autodoc2-docstring} titanite.core.schema.SurveySchema.categorical_headers
```

````

````{py:attribute} numerical_headers
:canonical: titanite.core.schema.SurveySchema.numerical_headers
:type: list[str]
:value: >
   []

```{autodoc2-docstring} titanite.core.schema.SurveySchema.numerical_headers
```

````

````{py:attribute} free_text_columns
:canonical: titanite.core.schema.SurveySchema.free_text_columns
:type: list[str]
:value: >
   []

```{autodoc2-docstring} titanite.core.schema.SurveySchema.free_text_columns
```

````

````{py:method} get_replace_rules() -> dict[str, dict]
:canonical: titanite.core.schema.SurveySchema.get_replace_rules
:abstractmethod:

```{autodoc2-docstring} titanite.core.schema.SurveySchema.get_replace_rules
```

````

````{py:method} get_split_rules() -> list[titanite.core.schema.SplitColumnRule]
:canonical: titanite.core.schema.SurveySchema.get_split_rules
:abstractmethod:

```{autodoc2-docstring} titanite.core.schema.SurveySchema.get_split_rules
```

````

````{py:method} get_cluster_rules() -> list[titanite.core.schema.ClusterRule]
:canonical: titanite.core.schema.SurveySchema.get_cluster_rules
:abstractmethod:

```{autodoc2-docstring} titanite.core.schema.SurveySchema.get_cluster_rules
```

````

````{py:method} get_bin_rules() -> list[titanite.core.schema.BinRule]
:canonical: titanite.core.schema.SurveySchema.get_bin_rules
:abstractmethod:

```{autodoc2-docstring} titanite.core.schema.SurveySchema.get_bin_rules
```

````

`````
