Data Contract CLI の export コマンドに custom format を実装しました
こんにちは、chanyou です。 2024年の datatech-jp のアドカレ では、Data Contract CLI の実装を読み解く という記事を執筆しました。 記事でも触れていましたが Data Contract CLI へコントリビュートしたいと思いつつも、なかなか実現できずにいました。 が、思い切って以前からあったらいいなと思っていた機能の提案と実装をしまして、無事に v0.10.21 で反映されました。 これにより Data Contract CLI の利用シーンがさらに広がりそうなので、今回はその内容を紹介します。 実装した内容 記事タイトルにもある通り、Data Contract CLI の export コマンドに custom format を追加しました。 これにより、Data Contract から Jinja テンプレートを利用して任意の形式で出力できるようになります。 例えば、以下のような Jinja テンプレートファイル template.txt があるとします。 title: {{ data_contract.info.title }} このテンプレートを custom format として出力すると、以下のように変数 data_contract.info.title が展開されます。 $ datacontract export --format custom --template template.txt datacontract.yaml title: Orders Latest 実装した背景と想定されるユースケース 今回の機能により、固有のロジックを注入した出力が容易になりました。 従来は、独自のロジックを組み込んだ出力を行うために専用の Exporter を実装する必要がありました。 その方法は、Data Contract CLI を Python モジュールとしてインポートし、いくつかのクラスを定義するという手間がかかるものでした。 ...