コンテンツにスキップ

コマンドライン機能について

概要

RDEToolKitは、RDE構造化処理の開発と実行を支援する包括的なコマンドラインインターフェースを提供します。プロジェクトの初期化から、Excelインボイスの生成、アーカイブの作成まで、開発ワークフロー全体をサポートします。

前提条件

  • Python 3.9以上
  • rdetoolkitパッケージのインストール

利用可能なコマンド

init: スタートアッププロジェクトの作成

RDE構造化処理のスタートアッププロジェクトを作成します。

1
python3 -m rdetoolkit init
1
py -m rdetoolkit init

以下のディレクトリとファイル群が生成されます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
container
├── data
│   ├── inputdata
│   ├── invoice
│      └── invoice.json
│   └── tasksupport
│       ├── invoice.schema.json
│       └── metadata-def.json
├── main.py
├── modules
└── requirements.txt

各ファイルの説明は以下の通りです。

  • requirements.txt: 構造化プログラム構築で使用したいPythonパッケージを追加してください。必要に応じてpip installを実行してください。
  • modules: 構造化処理で使用したいプログラムを格納してください。
  • main.py: 構造化プログラムの起動処理を定義
  • data/inputdata: 構造化処理対象データファイルを配置してください。
  • data/invoice: ローカル実行させるためには空ファイルでも必要になります。
  • data/tasksupport: 構造化処理の補助するファイル群を配置してください。

ファイル上書きについて

すでに存在するファイルは上書きや生成がスキップされます。

make-excelinvoice: ExcelInvoiceの生成

invoice.schema.jsonからExcelインボイスを生成します。

1
python3 -m rdetoolkit make-excelinvoice <invoice.schema.json path> -o <save file path> -m <file or folder>
1
py -m rdetoolkit make-excelinvoice <invoice.schema.json path> -o <save file path> -m <file or folder>

オプション

オプション 説明 必須
-o(--output) 出力ファイルパス。ファイルパスの末尾は_excel_invoice.xlsxを付与すること。
-m モードの選択。登録モードの選択。ファイルモードfileかフォルダモードfolderを選択可能。 -

デフォルト出力

-oを指定しない場合は、template_excel_invoice.xlsxというファイル名で、実行ディレクトリ配下に作成されます。

gen-config: rdeconfig.yamlテンプレートの生成

用意されているテンプレート、または対話形式の質問に基づいてrdeconfig.yamlを生成します。

1
python3 -m rdetoolkit gen-config [OUTPUT_DIR] --template <template> [--overwrite] [--lang <ja|en>]
1
py -m rdetoolkit gen-config [OUTPUT_DIR] --template <template> [--overwrite] [--lang <ja|en>]

利用できるテンプレートは以下の通りです。

  • minimal(デフォルト): システム設定とトレースバック設定のみを含む最小構成。
  • full: multidata_tile設定を含む完全なテンプレート。
  • multitile: extended_mode: "MultiDataTile"を有効化したテンプレート。
  • rdeformat: extended_mode: "rdeformat"を有効化したテンプレート。
  • smarttable: SmartTable設定を追加し、save_table_file: trueを設定。
  • interactive: 対話形式で各設定項目を確認。--lang jaで日本語プロンプトに切り替え可能。

オプション

オプション 説明 必須
OUTPUT_DIR rdeconfig.yamlを出力するディレクトリ。省略時はカレントディレクトリに作成されます。 -
--template テンプレート名(minimal, full, multitile, rdeformat, smarttable, interactive)。 -
--overwrite 既存のrdeconfig.yamlがある場合に確認なしで強制上書きします。未指定なら既存時のみ確認を表示します。 -
--lang プロンプトの言語(en または ja)。--template interactive選択時のみ利用できます。 -

インタラクティブモード

--template interactiveを指定すると、システム設定、MultiDataTile設定、SmartTable設定、トレースバック設定について 対話形式で質問されます。回答はrdeconfig.yamlに反映され、プロジェクト開始時から整合した初期値を共有できます。

version: バージョン確認

rdetoolkitのバージョンを確認します。

1
python3 -m rdetoolkit version
1
py -m rdetoolkit version

artifact: RDE提出用アーカイブの作成

RDEに提出するためのアーカイブ(.zip)を作成します。指定したソースディレクトリを圧縮し、除外パターンに一致するファイルやディレクトリを除外します。

1
python3 -m rdetoolkit artifact --source-dir <ソースディレクトリ> --output-archive <出力アーカイブファイル> --exclude <除外パターン>
1
py -m rdetoolkit artifact --source-dir <ソースディレクトリ> --output-archive <出力アーカイブファイル> --exclude <除外パターン>

オプション

オプション 説明 必須
-s(--source-dir) 圧縮・スキャン対象のソースディレクトリ
-o(--output-archive) 出力アーカイブファイル(例:rde_template.zip) -
-e(--exclude) 除外するディレクトリ名。デフォルトでは 'venv' と 'site-packages' が除外されます -

実行レポート

アーカイブが作成されると、以下のような実行レポートが生成されます:

  • Dockerfileやrequirements.txtの存在確認
  • 含まれるディレクトリとファイルのリスト
  • コードスキャン結果(セキュリティリスクの検出)
  • 外部通信チェック結果

実行レポートのサンプル:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# Execution Report

**Execution Date:** 2025-04-08 02:58:44

- **Dockerfile:** [Exists]: 🐳 container/Dockerfile
- **Requirements:** [Exists]: 🐍 container/requirements.txt

## Included Directories

- container/requirements.txt
- container/Dockerfile
- container/vuln.py
- container/external.py

## Code Scan Results

### container/vuln.py

**Description**: Usage of eval() poses the risk of arbitrary code execution.

```python
def insecure():
    value = eval("1+2")
    print(value)

External Communication Check Results

container/external.py

1
2
3
4
5
1:
2: import requests
3: def fetch():
4:     response = requests.get("https://example.com")
5:     return response.text

オプション詳細

  • --output-archiveを指定しない場合、デフォルトのファイル名でアーカイブが作成されます。
  • --excludeオプションは複数回指定することができます(例:--exclude venv --exclude .git)。

次のステップ