# DPE SDKの高度なユースケース：カスタムPythonモジュールの使用

独自に作成した既存のPythonコードの使用が必要になる場合があります。 
カスタムPythonモジュールをインポートして`カスタムDPEアクション`で使用する場合は、外部Gitリポジトリを参照し、ジョブのビルドを行うたびに取得（プル）することができます。

外部GitリポジトリをPythonモジュールとして使用するための手順は、以下の通りです。

1. `pip install`に適合するようにモジュールを調整します。 
  * [setuptoolsのドキュメント](https://packaging.python.org/guides/distributing-packages-using-setuptools/)を参照してください。
2. Pythonモジュールはアクセス可能なホストに保管されている必要があります。リポジトリがプライベートである場合は、`アクセストークン`が必要です。 
例えば、[GitHub](https://github.com)では、**パーソナルアクセストークン**を生成する必要があります
（他のプロバイダーにも同様の手順が存在します）。
  * [トークンの設定方法](https://docs.github.com/jp/free-pro-team@latest/github/authenticating-to-github/creating-a-personal-access-token)
  * [GitHubでのパーソナルトークンの設定](https://github.com/settings/tokens)
3. お持ちのトークンでパッケージのダウンロードが正しく行われることを確認します。 
  * zipアーカイブ：`https://<access_token>@github.com/<myorg>/<myproject>/archive/<ref>.zip`
  * Git：`git+https://<access_token>@github.com/<myorg>/<myproject>.git`
4. ローカルコンピューターで、お持ちのURLで`pip install`が正しく動作することを確認します。

```bash
pip install <URL>
```
5. データプラントのカスタムアクションで、**詳細モード**で`forepaas.json`に以下を追加します。 
  * HTTPSのzipアーカイブの例
```json
{
  "dependencies": {
    "python": {
      "https://<access_token>@github.com/<myorg>/<myproject>/archive/<ref>.zip":null
    }
  }
}
```
  * Git+HTTPSリポジトリの例
```json
{
  "dependencies": {
    "python": {
      "git+https://<access_token>@github.com/<myorg>/<myproject>.git":null
    }
  }
}
```
6. カスタムアクションのPythonコードで、インポートして使用できるようになります。
```python
import mypackage
```

