---
slug: "weatherlink"
source_type: "readme"
source_url: "https://cdn.jsdelivr.net/gh/tomohiroJin/weatherlink-mcp@main/README.md"
repo: "https://github.com/tomohiroJin/weatherlink-mcp"
source_file: "README.md"
branch: "main"
---
# Devcontainer Python

このリポジトリは、Python プロジェクトの開発環境を簡単に構築できる Devcontainer を利用したテンプレートです。必要なツールや依存関係があらかじめ設定されており、一貫した開発環境を提供します。

## 特徴

- **Python 3.11** を使用
- あらかじめインストールされているツール:
  - `pytest`（テストフレームワーク）
  - `flake8`（コードリントツール）
  - `black`（コードフォーマッタ）
- Devcontainer による一貫性のある開発環境
- Docker ベースの隔離された環境で、設定の一貫性を保証
- サンプルコードとリファレンス例の追加
  - Python の基本的な文法やデザインパターンをカバー
  - 詳細なテストケースを含む実装

## はじめに

以下の手順で、この開発環境を利用できます。

1. このリポジトリをクローンします:

   ```bash
   git clone https://github.com/tomohiroJin/devcontainer-python.git -b feature/add-reference
   cd devcontainer-python
   ```

2. VS Code でプロジェクトを開きます:

   ```bash
   code .
   ```

3. Devcontainer でプロジェクトを再オープンするように求められたら、指示に従って再オープンします。

4. セットアップを確認するためにテストを実行します:

   ```bash
   pytest
   ```

## リファレンス

このプロジェクトには、基本的な Python の文法と主要なデザインパターンを学習・参照できるサンプルが含まれています。

## 使用方法

### **1. テストの実行**

`pytest`を使用してプロジェクトのテストを実行します。以下のように、さまざまな方法でテストを実行できます。

#### **すべてのテストを実行**

```bash
pytest
```

#### **特定のテストファイルを実行**

特定のテストファイルのみを実行したい場合は、ファイルパスを指定します。

```bash
pytest tests/reference/basic/test_conditions.py
```

#### **テストの進捗と詳細を確認**

`-v`（verbose）オプションを使用して、各テストの詳細を確認できます。

```bash
pytest -v
```

#### **特定のテストケースを実行**

`-k`オプションを使って、名前に特定の文字列を含むテストケースを実行します。

```bash
pytest -k "fizzbuzz"
```

#### **テスト中の出力を確認**

テスト中の`print`やログの出力を確認したい場合、`-s`オプションを使用します。

```bash
pytest -s
```

#### **テスト結果をリポート形式で保存**

`pytest-html`プラグインを使用して、HTML 形式のレポートを生成します。

```bash
pip install pytest-html
pytest --html=report.html
```

---

### **2. コード品質チェック**

`flake8`を使用してコードの品質を確認します。以下のオプションを組み合わせることで、詳細な結果を得ることができます。

#### **基本的なコードチェック**

プロジェクト全体をチェックします。

```bash
flake8
```

#### **最大行長を指定**

Black と統一するために、最大行長を 88 文字に設定します（設定ファイルに記述しても OK）。

```bash
flake8 --max-line-length=88
```

#### **特定のルールを無視**

Black と矛盾するルール（例: `E203`, `W503`）を無視して実行します。

```bash
flake8 --ignore=E203,W503
```

#### **特定のファイルのみをチェック**

特定のファイルやディレクトリだけをチェックします。

```bash
flake8 src/fizzbuzz/fizzbuzz.py
```

#### **コード内の TODO や FIXME を確認**

`--radar`や`--todo`プラグインを使用して、TODO コメントを含む箇所を一覧表示します（プラグインのインストールが必要）。

```bash
pip install flake8-todo
flake8 --todo
```

---

### **3. コードのフォーマット**

`black`を使用してコードを自動整形します。

#### **プロジェクト全体をフォーマット**

プロジェクト内のすべての Python ファイルをフォーマットします。

```bash
black .
```

#### **変更内容をプレビュー**

`--check`オプションを使用すると、フォーマットの提案内容だけを確認できます（実際の変更は行われません）。

```bash
black --check .
```

#### **特定のファイルやディレクトリだけをフォーマット**

特定の範囲だけを対象にする場合、パスを指定します。

```bash
black src/fizzbuzz/fizzbuzz.py
```

## **カスタマイズ**:

- `.devcontainer/devcontainer.json` ファイルを編集することで、開発環境をカスタマイズできます。
- 例えば、Python のバージョン変更や追加ツールのインストールが可能です。

## ライセンス

このプロジェクトは MIT ライセンスの下で提供されています。

```

```
