# {py:mod}`haniwers.v0.cli`

```{py:module} haniwers.v0.cli
```

```{autodoc2-docstring} haniwers.v0.cli
:allowtitles:
```

## Module Contents

### Functions

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

* - {py:obj}`_setup_logger <haniwers.v0.cli._setup_logger>`
  - ```{autodoc2-docstring} haniwers.v0.cli._setup_logger
    :summary:
    ```
* - {py:obj}`_open_docs <haniwers.v0.cli._open_docs>`
  - ```{autodoc2-docstring} haniwers.v0.cli._open_docs
    :summary:
    ```
* - {py:obj}`version <haniwers.v0.cli.version>`
  - ```{autodoc2-docstring} haniwers.v0.cli.version
    :summary:
    ```
* - {py:obj}`docs <haniwers.v0.cli.docs>`
  - ```{autodoc2-docstring} haniwers.v0.cli.docs
    :summary:
    ```
* - {py:obj}`ports <haniwers.v0.cli.ports>`
  - ```{autodoc2-docstring} haniwers.v0.cli.ports
    :summary:
    ```
* - {py:obj}`scan <haniwers.v0.cli.scan>`
  - ```{autodoc2-docstring} haniwers.v0.cli.scan
    :summary:
    ```
* - {py:obj}`fit <haniwers.v0.cli.fit>`
  - ```{autodoc2-docstring} haniwers.v0.cli.fit
    :summary:
    ```
* - {py:obj}`vth <haniwers.v0.cli.vth>`
  - ```{autodoc2-docstring} haniwers.v0.cli.vth
    :summary:
    ```
* - {py:obj}`scan_serial <haniwers.v0.cli.scan_serial>`
  - ```{autodoc2-docstring} haniwers.v0.cli.scan_serial
    :summary:
    ```
* - {py:obj}`scan_parallel <haniwers.v0.cli.scan_parallel>`
  - ```{autodoc2-docstring} haniwers.v0.cli.scan_parallel
    :summary:
    ```
* - {py:obj}`daq <haniwers.v0.cli.daq>`
  - ```{autodoc2-docstring} haniwers.v0.cli.daq
    :summary:
    ```
* - {py:obj}`raw2tmp <haniwers.v0.cli.raw2tmp>`
  - ```{autodoc2-docstring} haniwers.v0.cli.raw2tmp
    :summary:
    ```
* - {py:obj}`run2csv <haniwers.v0.cli.run2csv>`
  - ```{autodoc2-docstring} haniwers.v0.cli.run2csv
    :summary:
    ```
* - {py:obj}`mock_daq <haniwers.v0.cli.mock_daq>`
  - ```{autodoc2-docstring} haniwers.v0.cli.mock_daq
    :summary:
    ```
````

### Data

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

* - {py:obj}`DOCS <haniwers.v0.cli.DOCS>`
  - ```{autodoc2-docstring} haniwers.v0.cli.DOCS
    :summary:
    ```
* - {py:obj}`app <haniwers.v0.cli.app>`
  - ```{autodoc2-docstring} haniwers.v0.cli.app
    :summary:
    ```
````

### API

````{py:data} DOCS
:canonical: haniwers.v0.cli.DOCS
:value: >
   None

```{autodoc2-docstring} haniwers.v0.cli.DOCS
```

````

````{py:function} _setup_logger(level='INFO') -> pathlib.Path
:canonical: haniwers.v0.cli._setup_logger

```{autodoc2-docstring} haniwers.v0.cli._setup_logger
```
````

````{py:function} _open_docs(value: bool, url: str) -> None
:canonical: haniwers.v0.cli._open_docs

```{autodoc2-docstring} haniwers.v0.cli._open_docs
```
````

````{py:data} app
:canonical: haniwers.v0.cli.app
:value: >
   'Typer(...)'

```{autodoc2-docstring} haniwers.v0.cli.app
```

````

````{py:function} version(env: typing_extensions.Annotated[bool, typer.Option(help='Show environment information.')] = False, log_level: typing_extensions.Annotated[str, typer.Option(help='Set log level (DEBUG, INFO, WARNING, ERROR).')] = 'INFO', docs: typing_extensions.Annotated[bool, typer.Option('--docs', help=f"Open online documentation. ({DOCS['version']})", callback=lambda v: _open_docs(v, DOCS['version']))] = False)
:canonical: haniwers.v0.cli.version

```{autodoc2-docstring} haniwers.v0.cli.version
```
````

````{py:function} docs(page: typing_extensions.Annotated[str, typer.Option(help='Set page name.')] = 'home')
:canonical: haniwers.v0.cli.docs

```{autodoc2-docstring} haniwers.v0.cli.docs
```
````

````{py:function} ports(log_level: typing_extensions.Annotated[str, typer.Option(help='Change log level')] = 'INFO') -> None
:canonical: haniwers.v0.cli.ports

```{autodoc2-docstring} haniwers.v0.cli.ports
```
````

````{py:function} scan(ch: typing_extensions.Annotated[int, typer.Option(help='Set channel ID.')] = 0, duration: typing_extensions.Annotated[int, typer.Option(help='Set duration. Unit: [sec]')] = 10, step: typing_extensions.Annotated[int, typer.Option(help='Set step interval. Unit: [step]')] = 1, vmin: typing_extensions.Annotated[int, typer.Option(help='Set start point. Unit: [step]')] = 250, vmax: typing_extensions.Annotated[int, typer.Option(help='Set end point. Unit: [step]')] = 311, vstarts: typing_extensions.Annotated[str, typer.Option(help='Comma-separated start thresholds per channel.')] = '250,250,250', nsteps: typing_extensions.Annotated[int, typer.Option(help='Number of threshold steps.')] = 50, quiet: typing_extensions.Annotated[bool, typer.Option(help='Quiet mode.')] = False, load_from: typing_extensions.Annotated[str, typer.Option(help='Set filename.')] = 'scan.toml', log_level: typing_extensions.Annotated[str, typer.Option(help='Change log level.')] = 'INFO', docs: typing_extensions.Annotated[bool, typer.Option('--docs', help=f"Open online document. ({DOCS['scan']})", callback=lambda v: _open_docs(v, DOCS['scan']))] = False) -> None
:canonical: haniwers.v0.cli.scan

```{autodoc2-docstring} haniwers.v0.cli.scan
```
````

````{py:function} fit(read_from: typing_extensions.Annotated[str, typer.Argument(help='Set directory.')], params: typing_extensions.Annotated[str, typer.Option(help='Set initial fit parameters (commma separated string).')] = '10,300,1,1', search_pattern: typing_extensions.Annotated[str, typer.Option(help='Set filename.')] = 'threshold_scan.csv', ch: typing_extensions.Annotated[int, typer.Option(help='Set channel ID')] = 0, log_level: typing_extensions.Annotated[str, typer.Option(help='Change log level')] = 'INFO', docs: typing_extensions.Annotated[bool, typer.Option('--docs', help=f"Open online document. ({DOCS['fit']})", callback=lambda v: _open_docs(v, DOCS['fit']))] = False)
:canonical: haniwers.v0.cli.fit

```{autodoc2-docstring} haniwers.v0.cli.fit
```
````

````{py:function} vth(ch: typing_extensions.Annotated[int, typer.Option(help='Set channel ID')] = 0, vth: typing_extensions.Annotated[int, typer.Option(help='Set threshold value.')] = 0, max_retry: typing_extensions.Annotated[int, typer.Option(help='Set numbers to retry.')] = 3, load_from: typing_extensions.Annotated[str, typer.Option(help='Set filename.')] = 'daq.toml', log_level: typing_extensions.Annotated[str, typer.Option(help='Change log level.')] = 'INFO', docs: typing_extensions.Annotated[bool, typer.Option('--docs', help=f"Open online document. ({DOCS['vth']})", callback=lambda v: _open_docs(v, DOCS['vth']))] = False) -> None
:canonical: haniwers.v0.cli.vth

```{autodoc2-docstring} haniwers.v0.cli.vth
```
````

````{py:function} scan_serial(ch: int = 0, duration: int = 10, step: int = 1, vmin: int = 250, vmax: int = 311, quiet: bool = False, load_from='daq.toml', log_level: str = 'INFO') -> None
:canonical: haniwers.v0.cli.scan_serial

```{autodoc2-docstring} haniwers.v0.cli.scan_serial
```
````

````{py:function} scan_parallel(ch: int = 0, duration: int = 10, step: int = 1, vmin: int = 250, vmax: int = 311, quiet: bool = False, load_from='daq.toml', log_level: str = 'INFO') -> None
:canonical: haniwers.v0.cli.scan_parallel

```{autodoc2-docstring} haniwers.v0.cli.scan_parallel
```
````

````{py:function} daq(quiet: typing_extensions.Annotated[bool, typer.Option(help='Quiet mode.')] = False, load_from: typing_extensions.Annotated[str, typer.Option(help='Set filename.')] = 'daq.toml', log_level: typing_extensions.Annotated[str, typer.Option(help='Change log level')] = 'INFO', docs: typing_extensions.Annotated[bool, typer.Option('--docs', help=f"Open online document. ({DOCS['daq']})", callback=lambda v: _open_docs(v, DOCS['daq']))] = False) -> None
:canonical: haniwers.v0.cli.daq

```{autodoc2-docstring} haniwers.v0.cli.daq
```
````

````{py:function} raw2tmp(read_from: typing_extensions.Annotated[str, typer.Argument(help='Directory containing raw data.')], search_pattern: typing_extensions.Annotated[str, typer.Option(help='Filename pattern for raw data.')] = '*.csv', interval: typing_extensions.Annotated[int, typer.Option(help='Resampling interval in seconds.')] = 600, offset: typing_extensions.Annotated[int, typer.Option(help='Datetime offset in seconds')] = 0, tz: typing_extensions.Annotated[str, typer.Option(help='Timezone for data.')] = 'UTC+09:00', log_level: typing_extensions.Annotated[str, typer.Option(help='Set log level (DEBUG, INFO, WARNING, ERROR).')] = 'INFO', docs: typing_extensions.Annotated[bool, typer.Option('--docs', help=f"Open online documentation. ({DOCS['raw2tmp']})", callback=lambda v: _open_docs(v, DOCS['raw2tmp']))] = False) -> None
:canonical: haniwers.v0.cli.raw2tmp

```{autodoc2-docstring} haniwers.v0.cli.raw2tmp
```
````

````{py:function} run2csv(run_id: typing_extensions.Annotated[int, typer.Argument(help='Run ID')], save: typing_extensions.Annotated[bool, typer.Option(help='Save results to files.')] = False, load_from: typing_extensions.Annotated[str, typer.Option(help='Run configuration files.')] = 'runs.csv', drive: typing_extensions.Annotated[str, typer.Option(help='Data directory.')] = '../data', log_level: typing_extensions.Annotated[str, typer.Option(help='Set log level (DEBUG, INFO, WARNING, ERROR).')] = 'INFO', docs: typing_extensions.Annotated[bool, typer.Option('--docs', help=f"Open online documentation. ({DOCS['run2csv']})", callback=lambda v: _open_docs(v, DOCS['run2csv']))] = False) -> None
:canonical: haniwers.v0.cli.run2csv

```{autodoc2-docstring} haniwers.v0.cli.run2csv
```
````

````{py:function} mock_daq(quiet: typing_extensions.Annotated[bool, typer.Option(help='Quiet mode.')] = False, load_from: typing_extensions.Annotated[str, typer.Option(help='Set filename')] = 'daq.toml', log_level: typing_extensions.Annotated[str, typer.Option(help='Change log level')] = 'DEBUG')
:canonical: haniwers.v0.cli.mock_daq

```{autodoc2-docstring} haniwers.v0.cli.mock_daq
```
````
