# {py:mod}`haniwers.config`

```{py:module} haniwers.config
```

```{autodoc2-docstring} haniwers.config
:allowtitles:
```

## Module Contents

### Classes

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

* - {py:obj}`RunData <haniwers.config.RunData>`
  - ```{autodoc2-docstring} haniwers.config.RunData
    :summary:
    ```
* - {py:obj}`Config <haniwers.config.Config>`
  - ```{autodoc2-docstring} haniwers.config.Config
    :summary:
    ```
* - {py:obj}`Daq <haniwers.config.Daq>`
  - ```{autodoc2-docstring} haniwers.config.Daq
    :summary:
    ```
* - {py:obj}`UserSettings <haniwers.config.UserSettings>`
  - ```{autodoc2-docstring} haniwers.config.UserSettings
    :summary:
    ```
* - {py:obj}`RunManager <haniwers.config.RunManager>`
  - ```{autodoc2-docstring} haniwers.config.RunManager
    :summary:
    ```
````

### API

`````{py:class} RunData
:canonical: haniwers.config.RunData

```{autodoc2-docstring} haniwers.config.RunData
```

````{py:attribute} run_id
:canonical: haniwers.config.RunData.run_id
:type: int
:value: >
   None

```{autodoc2-docstring} haniwers.config.RunData.run_id
```

````

````{py:attribute} description
:canonical: haniwers.config.RunData.description
:type: str
:value: <Multiline-String>

```{autodoc2-docstring} haniwers.config.RunData.description
```

````

````{py:attribute} read_from
:canonical: haniwers.config.RunData.read_from
:type: str
:value: <Multiline-String>

```{autodoc2-docstring} haniwers.config.RunData.read_from
```

````

````{py:attribute} srcf
:canonical: haniwers.config.RunData.srcf
:type: str
:value: >
   '*.csv'

```{autodoc2-docstring} haniwers.config.RunData.srcf
```

````

````{py:attribute} interval
:canonical: haniwers.config.RunData.interval
:type: int
:value: >
   600

```{autodoc2-docstring} haniwers.config.RunData.interval
```

````

````{py:attribute} datetime_offset
:canonical: haniwers.config.RunData.datetime_offset
:type: int
:value: >
   0

```{autodoc2-docstring} haniwers.config.RunData.datetime_offset
```

````

````{py:attribute} skip
:canonical: haniwers.config.RunData.skip
:type: bool
:value: >
   False

```{autodoc2-docstring} haniwers.config.RunData.skip
```

````

````{py:attribute} nfiles
:canonical: haniwers.config.RunData.nfiles
:type: int
:value: >
   0

```{autodoc2-docstring} haniwers.config.RunData.nfiles
```

````

````{py:attribute} raw2gz
:canonical: haniwers.config.RunData.raw2gz
:type: str
:value: <Multiline-String>

```{autodoc2-docstring} haniwers.config.RunData.raw2gz
```

````

````{py:attribute} raw2csv
:canonical: haniwers.config.RunData.raw2csv
:type: str
:value: <Multiline-String>

```{autodoc2-docstring} haniwers.config.RunData.raw2csv
```

````

````{py:attribute} query
:canonical: haniwers.config.RunData.query
:type: str
:value: <Multiline-String>

```{autodoc2-docstring} haniwers.config.RunData.query
```

````

````{py:method} __post_init__() -> None
:canonical: haniwers.config.RunData.__post_init__

```{autodoc2-docstring} haniwers.config.RunData.__post_init__
```

````

````{py:method} get_fnames() -> list[pathlib.Path]
:canonical: haniwers.config.RunData.get_fnames

```{autodoc2-docstring} haniwers.config.RunData.get_fnames
```

````

````{py:method} _load_gzip() -> typing.Optional[pandas.DataFrame]
:canonical: haniwers.config.RunData._load_gzip

```{autodoc2-docstring} haniwers.config.RunData._load_gzip
```

````

````{py:method} _load_csv() -> typing.Optional[pandas.DataFrame]
:canonical: haniwers.config.RunData._load_csv

```{autodoc2-docstring} haniwers.config.RunData._load_csv
```

````

````{py:method} load_data(kind: str) -> typing.Optional[pandas.DataFrame]
:canonical: haniwers.config.RunData.load_data

```{autodoc2-docstring} haniwers.config.RunData.load_data
```

````

`````

`````{py:class} Config
:canonical: haniwers.config.Config

```{autodoc2-docstring} haniwers.config.Config
```

````{py:attribute} fname
:canonical: haniwers.config.Config.fname
:type: str
:value: >
   'config.toml'

```{autodoc2-docstring} haniwers.config.Config.fname
```

````

````{py:method} __post_init__() -> None
:canonical: haniwers.config.Config.__post_init__

```{autodoc2-docstring} haniwers.config.Config.__post_init__
```

````

````{py:method} load_config() -> dict
:canonical: haniwers.config.Config.load_config

```{autodoc2-docstring} haniwers.config.Config.load_config
```

````

````{py:method} get_rules() -> dict
:canonical: haniwers.config.Config.get_rules

```{autodoc2-docstring} haniwers.config.Config.get_rules
```

````

````{py:method} get_labels() -> typing.Optional[dict]
:canonical: haniwers.config.Config.get_labels

```{autodoc2-docstring} haniwers.config.Config.get_labels
```

````

````{py:method} get_run(run_id: int) -> haniwers.config.RunData
:canonical: haniwers.config.Config.get_run

```{autodoc2-docstring} haniwers.config.Config.get_run
```

````

````{py:method} get_runs() -> list[haniwers.config.RunData]
:canonical: haniwers.config.Config.get_runs

```{autodoc2-docstring} haniwers.config.Config.get_runs
```

````

`````

`````{py:class} Daq
:canonical: haniwers.config.Daq

```{autodoc2-docstring} haniwers.config.Daq
```

````{py:attribute} saved
:canonical: haniwers.config.Daq.saved
:type: str
:value: >
   '.'

```{autodoc2-docstring} haniwers.config.Daq.saved
```

````

````{py:attribute} prefix
:canonical: haniwers.config.Daq.prefix
:type: str
:value: >
   'data'

```{autodoc2-docstring} haniwers.config.Daq.prefix
```

````

````{py:attribute} suffix
:canonical: haniwers.config.Daq.suffix
:type: str
:value: >
   '.csv'

```{autodoc2-docstring} haniwers.config.Daq.suffix
```

````

````{py:attribute} skip
:canonical: haniwers.config.Daq.skip
:type: int
:value: >
   10

```{autodoc2-docstring} haniwers.config.Daq.skip
```

````

````{py:attribute} max_rows
:canonical: haniwers.config.Daq.max_rows
:type: int
:value: >
   10000

```{autodoc2-docstring} haniwers.config.Daq.max_rows
```

````

````{py:attribute} max_files
:canonical: haniwers.config.Daq.max_files
:type: int
:value: >
   100

```{autodoc2-docstring} haniwers.config.Daq.max_files
```

````

````{py:attribute} quiet
:canonical: haniwers.config.Daq.quiet
:type: bool
:value: >
   False

```{autodoc2-docstring} haniwers.config.Daq.quiet
```

````

````{py:attribute} append
:canonical: haniwers.config.Daq.append
:type: bool
:value: >
   False

```{autodoc2-docstring} haniwers.config.Daq.append
```

````

````{py:attribute} device
:canonical: haniwers.config.Daq.device
:type: str
:value: >
   '/dev/ttyUSB0'

```{autodoc2-docstring} haniwers.config.Daq.device
```

````

````{py:attribute} baudrate
:canonical: haniwers.config.Daq.baudrate
:type: int
:value: >
   115200

```{autodoc2-docstring} haniwers.config.Daq.baudrate
```

````

````{py:attribute} timeout
:canonical: haniwers.config.Daq.timeout
:type: int
:value: >
   1000

```{autodoc2-docstring} haniwers.config.Daq.timeout
```

````

````{py:attribute} fname_logs
:canonical: haniwers.config.Daq.fname_logs
:type: str
:value: >
   'threshold_logs.csv'

```{autodoc2-docstring} haniwers.config.Daq.fname_logs
```

````

````{py:attribute} fname_scan
:canonical: haniwers.config.Daq.fname_scan
:type: str
:value: >
   'threshold_scan.csv'

```{autodoc2-docstring} haniwers.config.Daq.fname_scan
```

````

````{py:method} load_toml(fname: str) -> None
:canonical: haniwers.config.Daq.load_toml

```{autodoc2-docstring} haniwers.config.Daq.load_toml
```

````

`````

`````{py:class} UserSettings(/, **data: typing.Any)
:canonical: haniwers.config.UserSettings

Bases: {py:obj}`pydantic.BaseModel`

```{autodoc2-docstring} haniwers.config.UserSettings
```

```{rubric} Initialization
```

```{autodoc2-docstring} haniwers.config.UserSettings.__init__
```

````{py:attribute} load_from
:canonical: haniwers.config.UserSettings.load_from
:type: str
:value: >
   None

```{autodoc2-docstring} haniwers.config.UserSettings.load_from
```

````

````{py:attribute} settings
:canonical: haniwers.config.UserSettings.settings
:type: dict
:value: >
   None

```{autodoc2-docstring} haniwers.config.UserSettings.settings
```

````

````{py:attribute} sections
:canonical: haniwers.config.UserSettings.sections
:type: list
:value: >
   []

```{autodoc2-docstring} haniwers.config.UserSettings.sections
```

````

````{py:method} model_post_init(__context: typing.Any) -> None
:canonical: haniwers.config.UserSettings.model_post_init

```{autodoc2-docstring} haniwers.config.UserSettings.model_post_init
```

````

````{py:method} load_toml(load_from: str) -> dict
:canonical: haniwers.config.UserSettings.load_toml

```{autodoc2-docstring} haniwers.config.UserSettings.load_toml
```

````

````{py:method} _get_settings(keys: list) -> dict
:canonical: haniwers.config.UserSettings._get_settings

```{autodoc2-docstring} haniwers.config.UserSettings._get_settings
```

````

````{py:method} get_daq_settings() -> dict
:canonical: haniwers.config.UserSettings.get_daq_settings

```{autodoc2-docstring} haniwers.config.UserSettings.get_daq_settings
```

````

````{py:method} get_scan_settings() -> dict
:canonical: haniwers.config.UserSettings.get_scan_settings

```{autodoc2-docstring} haniwers.config.UserSettings.get_scan_settings
```

````

````{py:method} get_loguru(level: str = 'DEBUG') -> loguru.logger
:canonical: haniwers.config.UserSettings.get_loguru

```{autodoc2-docstring} haniwers.config.UserSettings.get_loguru
```

````

`````

`````{py:class} RunManager
:canonical: haniwers.config.RunManager

```{autodoc2-docstring} haniwers.config.RunManager
```

````{py:attribute} load_from
:canonical: haniwers.config.RunManager.load_from
:type: str
:value: >
   None

```{autodoc2-docstring} haniwers.config.RunManager.load_from
```

````

````{py:attribute} query
:canonical: haniwers.config.RunManager.query
:type: str
:value: >
   'run_id > 0'

```{autodoc2-docstring} haniwers.config.RunManager.query
```

````

````{py:attribute} drive
:canonical: haniwers.config.RunManager.drive
:type: str
:value: >
   'data'

```{autodoc2-docstring} haniwers.config.RunManager.drive
```

````

````{py:attribute} is_valid
:canonical: haniwers.config.RunManager.is_valid
:type: bool
:value: >
   True

```{autodoc2-docstring} haniwers.config.RunManager.is_valid
```

````

````{py:attribute} is_test
:canonical: haniwers.config.RunManager.is_test
:type: bool
:value: >
   False

```{autodoc2-docstring} haniwers.config.RunManager.is_test
```

````

````{py:method} __post_init__()
:canonical: haniwers.config.RunManager.__post_init__

```{autodoc2-docstring} haniwers.config.RunManager.__post_init__
```

````

````{py:method} _load_data() -> pandas.DataFrame
:canonical: haniwers.config.RunManager._load_data

```{autodoc2-docstring} haniwers.config.RunManager._load_data
```

````

````{py:method} get_records(query: str, is_valid: bool) -> pandas.DataFrame
:canonical: haniwers.config.RunManager.get_records

```{autodoc2-docstring} haniwers.config.RunManager.get_records
```

````

````{py:method} _to_rundata(row: pandas.DataFrame) -> haniwers.config.RunData
:canonical: haniwers.config.RunManager._to_rundata

```{autodoc2-docstring} haniwers.config.RunManager._to_rundata
```

````

````{py:method} _get_runs(is_valid: bool) -> list[haniwers.config.RunData]
:canonical: haniwers.config.RunManager._get_runs

```{autodoc2-docstring} haniwers.config.RunManager._get_runs
```

````

````{py:method} get_run(run_id: int) -> haniwers.config.RunData
:canonical: haniwers.config.RunManager.get_run

```{autodoc2-docstring} haniwers.config.RunManager.get_run
```

````

`````
