# tkutils APIリファレンス

> 対象ソース: `tklib2.zip`（解析日: 2026-08-03）。この文書はソースコードを静的解析して生成しています。

## APIの読み方

- **パッケージ公開API**は、原則としてトップレベルの `__all__` に含まれる名前です。
- **モジュールAPI**には、公開名（先頭が `_` でない関数・クラス・メソッド）を列挙しています。
- docstringがないAPIでは、シグネチャとソースパスを一次情報として扱ってください。
- 生成AIは、この文書に存在しない引数・戻り値・メソッドを推測で追加しないでください。

## パッケージ公開API

```python
from tkutils import (
    pfloat,
    pint,
    Tee,
    redirect_output,
    CellRange,
    DataSource,
    MetadataCell,
    DataTable,
    read_data_table,
)
```

| 名前 | 推奨用途 |
|---|---|
| `pfloat` | トップレベルから安定してimportできる公開API |
| `pint` | トップレベルから安定してimportできる公開API |
| `Tee` | トップレベルから安定してimportできる公開API |
| `redirect_output` | トップレベルから安定してimportできる公開API |
| `CellRange` | トップレベルから安定してimportできる公開API |
| `DataSource` | トップレベルから安定してimportできる公開API |
| `MetadataCell` | トップレベルから安定してimportできる公開API |
| `DataTable` | トップレベルから安定してimportできる公開API |
| `read_data_table` | トップレベルから安定してimportできる公開API |

## モジュール一覧

| モジュール | ソース | 関数 | クラス |
|---|---|---:|---:|
| `tkutils` | `tkutils/__init__.py` | 0 | 0 |
| `tkutils.tkconvert` | `tkutils/tkconvert.py` | 2 | 0 |
| `tkutils.tkdata` | `tkutils/tkdata.py` | 1 | 4 |
| `tkutils.tkredirect` | `tkutils/tkredirect.py` | 1 | 1 |

## `tkutils`

ソース: `tkutils/__init__.py`

_このモジュールには静的解析で検出された公開関数・クラス・定数はありません。_

## `tkutils.tkconvert`

ソース: `tkutils/tkconvert.py`

### function `pfloat`

```python
def pfloat(value, defval = None)
```

_ソース内docstringはありません。シグネチャと実装を参照してください。_

### function `pint`

```python
def pint(value, defval = None)
```

_ソース内docstringはありません。シグネチャと実装を参照してください。_

## `tkutils.tkdata`

ソース: `tkutils/tkdata.py`

### class `CellRange`

_ソース内docstringはありません。シグネチャと実装を参照してください。_

**データクラス相当の初期化フィールド**

```python
CellRange(header_row: int, first_column: int, end_row: int, end_column: int)
```

**フィールド**

| 名前 | 型 | 既定値 |
|---|---|---|
| `header_row` | `int` | `必須` |
| `first_column` | `int` | `必須` |
| `end_row` | `int` | `必須` |
| `end_column` | `int` | `必須` |

**メソッド／プロパティ**

#### property `CellRange.nrows`

```python
def nrows(self) -> int
```

_ソース内docstringはありません。シグネチャと実装を参照してください。_

#### property `CellRange.ncolumns`

```python
def ncolumns(self) -> int
```

_ソース内docstringはありません。シグネチャと実装を参照してください。_

### class `DataSource`

_ソース内docstringはありません。シグネチャと実装を参照してください。_

**データクラス相当の初期化フィールド**

```python
DataSource(path: Path, extension: str, sheet_name: str | None = None, encoding: str | None = None, delimiter: str | None = None)
```

**フィールド**

| 名前 | 型 | 既定値 |
|---|---|---|
| `path` | `Path` | `必須` |
| `extension` | `str` | `必須` |
| `sheet_name` | `str | None` | `None` |
| `encoding` | `str | None` | `None` |
| `delimiter` | `str | None` | `None` |

### class `MetadataCell`

_ソース内docstringはありません。シグネチャと実装を参照してください。_

**データクラス相当の初期化フィールド**

```python
MetadataCell(row: int, column: int, value: Any, region: str)
```

**フィールド**

| 名前 | 型 | 既定値 |
|---|---|---|
| `row` | `int` | `必須` |
| `column` | `int` | `必須` |
| `value` | `Any` | `必須` |
| `region` | `str` | `必須` |

### class `DataTable`

_ソース内docstringはありません。シグネチャと実装を参照してください。_

**データクラス相当の初期化フィールド**

```python
DataTable(labels: list[Any], columns: list[list[Any]], metadata: list[MetadataCell], data_range: CellRange, source: DataSource, raw_rows: list[list[Any]])
```

**フィールド**

| 名前 | 型 | 既定値 |
|---|---|---|
| `labels` | `list[Any]` | `必須` |
| `columns` | `list[list[Any]]` | `必須` |
| `metadata` | `list[MetadataCell]` | `必須` |
| `data_range` | `CellRange` | `必須` |
| `source` | `DataSource` | `必須` |
| `raw_rows` | `list[list[Any]]` | `必須` |

**メソッド／プロパティ**

#### method `DataTable.find_column`

```python
def find_column(self, selector: str | int, *, ignore_case: bool = True, regex: bool = False) -> tuple[Any | None, list[Any] | None]
```

_ソース内docstringはありません。シグネチャと実装を参照してください。_

#### method `DataTable.metadata_dict`

```python
def metadata_dict(self) -> dict[str, Any]
```

_ソース内docstringはありません。シグネチャと実装を参照してください。_

#### property `DataTable.nrows`

```python
def nrows(self) -> int
```

_ソース内docstringはありません。シグネチャと実装を参照してください。_

#### property `DataTable.ncolumns`

```python
def ncolumns(self) -> int
```

_ソース内docstringはありません。シグネチャと実装を参照してください。_

### function `read_data_table`

```python
def read_data_table(path: str | Path, *, header_row: int = 1, first_column: int = 1, force_numeric: bool = True, sheet: str | int | None = None, data_only: bool = True, encoding: str | None = None, delimiter: str | None = None) -> DataTable
```

.xlsx/.xlsm/.csv/.txtからminimum-matrix形式の表を読む。

- header_row、first_columnは1始まり。
- ヘッダーはfirst_columnから最初の空セル直前まで。
- データはヘッダー直下から開始。
- 第1データ列が空になった行の直前で終了。
- 表範囲外の全非空セルをmetadataとして返す。

## `tkutils.tkredirect`

ソース: `tkutils/tkredirect.py`

### class `Tee`

_ソース内docstringはありません。シグネチャと実装を参照してください。_

**コンストラクタ**

```python
Tee(*streams)
```

**メソッド／プロパティ**

#### method `Tee.write`

```python
def write(self, text)
```

_ソース内docstringはありません。シグネチャと実装を参照してください。_

#### method `Tee.flush`

```python
def flush(self)
```

_ソース内docstringはありません。シグネチャと実装を参照してください。_

### function `redirect_output`

```python
def redirect_output(logfile, mode = 'w', encoding = 'utf-8', include_stderr = True)
```

_ソース内docstringはありません。シグネチャと実装を参照してください。_
