注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

Python ライブラリを探して使用する

Code Repositories では、公開ライブラリと Foundry で生成されたライブラリをインポートして使用できます。以下の情報は、Python ライブラリにのみ適用されます。

Python ライブラリを探す

Python ライブラリを検索するには、コードリポジトリ環境の左側のパネルにあるパッケージタブをクリックします。検索ボックスを使用して、利用可能なライブラリを検索します。

ライブラリ名をクリックすると、ライブラリの詳細とライブラリを追加オプションが表示されます。このオプションを選択すると、ライブラリの推奨バージョンがこのブランチに追加されます。

Python ライブラリを探す

ライブラリを追加すると、Code Assist の依存関係が更新され、そのライブラリで利用可能なパッケージからモジュールをインポートできるようになります。

例外的な依存関係を追加する

Python ライブラリを追加する際に、必須のアーティファクトリポジトリをコードリポジトリに追加し、プロジェクトから参照する必要がある場合があります。この場合、この操作の確認を求めるダイアログが表示されます。

依存関係のダイアログでは、必要なリポジトリのうち、アクセス権がないものが強調表示されます。ライブラリを使用するには、これらのリポジトリへのアクセス権が必要です。

ライブラリの依存関係ダイアログ

Code Repositories は、ライブラリで利用可能な取得元リポジトリを探し、自動的に使用しようとします。特定の取得元リポジトリが必要な場合は、リポジトリのアーティファクト設定ページで直接設定できます。

特定のライブラリバージョンを固定する

特定のバージョンが必要な場合は、設定ボタンをクリックし、リストから必要なバージョンを選択することで、そのバージョンを_固定_できます。これにより、トランスフォームとテストの実行に使用するバージョンをそれぞれ設定できます。

ライブラリの特定のバージョンを固定すると、そのバージョンが meta.yaml ファイルに追加されますが、Task Runner によるインストールは行われません。チェックが正常に完了することを確認してから、Code Assist を再起動し、meta.yaml ファイルへの変更を適用します。その後、リポジトリで選択したバージョンのライブラリを使用できるようになります。

バージョンを固定すると、重要なライブラリ更新が適用されない場合があります

特定のバージョンを固定する際は注意してください。バージョンを固定すると、コードに重要な更新が適用されない場合があります。必ず依存関係を確認し、更新してください。

ライブラリのバージョンを固定する

ライブラリの変更をレビューする

リポジトリへの Python ライブラリの追加と削除は、ほかのコード変更と同じように扱われます。変更をコミットし、保護されたブランチにマージしてください。プルリクエストでは、ライブラリの変更は meta.yaml ファイルの変更として表示されます。

プルリクエストを作成すると、.lock 形式のファイルでマージ競合が表示されることがあります。これは、このブランチで作業している間に更新が行われた場合に発生します。この場合は、両方の変更を受け入れて、プルリクエストを進めます。

meta yaml ファイルの変更

共有チャネルに公開されたライブラリを使用する [非推奨]

この機能は非推奨であり、お使いの環境では利用できない場合があります。

ライブラリが共有チャネルに公開されている場合(Python ライブラリを公開するを参照)、Python サブプロジェクトの build.gradle を編集する必要があります。_隠し_ファイルを変更するため、先に「隠しファイルを表示」を選択してください。Python トランスフォームのプロジェクトには、共有ライブラリが公開されているチャネルへのアクセス権が必要です。Python トランスフォームのサブプロジェクトフォルダーにある build.gradle ファイル(リポジトリのルートにあるものではありません)の末尾に、以下を追加します。これにより、apply plugin: がすでに実行された状態で、追加した内容が正しく処理されます。

Copied!
1 2 3 transformsPython { sharedChannels "libs" }

アーティファクトリポジトリの設定

通常、Python ライブラリを使用する際に、リポジトリの設定にアクセスする必要はありません。Python パッケージを追加すると、必要なアーティファクトリポジトリが自動的に追加されます。設定タブで、参照先の Python リポジトリのリストを直接編集することは避けてください。

共有ライブラリを使用すると、関連するリポジトリへの参照がプロジェクトに追加されます。リポジトリの設定タブにある「アーティファクト」セクションにアクセスすると、参照先のリポジトリのリストを表示できます。

アーティファクトのパッケージ検索を使用せずに、共有ライブラリの依存関係を手動で追加した場合は、アーティファクト設定から、そのライブラリを使用するリポジトリの取得元リポジトリにライブラリのリポジトリを追加する必要があります。パッケージ検索でこの操作が自動的に行われるため、依存関係を手動で追加することは推奨しません。

Task Runner

Task Runner は、より新しいリポジトリでのみ利用可能です。隠しファイルを表示し、templateConfig.json ファイルを確認することで、リポジトリのバージョンを確認できます。

  • リポジトリの parentTemplateId が transforms の場合は、parentTemplateVersion が 8.220.0 以上で、Python の子テンプレートが 1.484.0 以上であることを確認してください。
  • リポジトリの parentTemplateId が python-library の場合は、parentTemplateVersion が 1.497.0 以上であることを確認してください。

リポジトリをアップグレードすると、この機能を有効にできます。

Task Runner が有効な場合、左側のパネルのライブラリタブからパッケージを追加しても、新しい Code Assist ワークスペースはプロビジョニングされなくなります。代わりに、現在の環境に要求されたパッケージのインストールが開始され、基盤となるプロセスのすべてのログが返されます。

インストールに成功すると、ロックファイルが新しい環境に合わせて更新されます。インストールに失敗すると、Task Runner の下部パネルにエラーメッセージが表示され、問題の詳細な調査に使用できます。

Task Runner は run 環境のみを更新し、現在、テスト専用の依存関係のインストールには対応していません。

詳細設定

以下の情報は、管理者と上級ユーザーのみを対象としています。

meta.yaml ファイル

meta.yaml ファイルの編集はエラーが発生しやすいため、避けてください。代わりに、ライブラリ検索インターフェースからライブラリを追加する方法を優先してください。

コードリポジトリで Python ライブラリを使用するには、conda_recipe/meta.yaml ファイルにそのライブラリを含める必要があります。リポジトリのライブラリ検索インターフェースからライブラリを追加すると、これは自動的に行われます。

Copied!
1 2 3 4 5 6 requirements: ... run: - python ... - {LIBRARY NAME} # これを共有ライブラリの名前に置き換えます。

ライブラリを追加した後、meta.yaml ファイルの上部にある「依存関係を更新」をクリックします。これにより、Code Assist に新しい依存関係が反映され、利用可能なパッケージからモジュールをインポートできるようになります。

詳しくは、meta.yaml ファイルを参照してください。

meta-yaml-terminology

Conda による Python パッケージの依存関係の解決

Conda は、言語に依存しないオープンソースのパッケージおよび環境マネージャーです。Code Repositories では、パッケージの依存関係を解決し、独立した環境にパッケージをインストールするために使用されます。詳しくは、Conda の公式ドキュメント ↗ または環境作成の概要を参照してください。

Conda ロックファイル

Code Repositories でチェックを実行すると、meta.yaml ファイルに記載されたパッケージのリストに基づいて Conda 環境が解決され、拡張子が .lock の非表示の Conda ロックファイルが生成されます。これらのロックファイルには Conda 環境が保存されます。この解決済みの環境により、コードをコミットした際の後続のチェックで Conda の依存関係の解決が高速化されます。

以下の場合、Conda 環境が再解決され、新しいロックファイルが書き込まれます。

  • meta.yaml ファイルのパッケージのリストが変更された場合。
  • リポジトリがより新しいテンプレートバージョンにアップグレードされた場合。
  • ロックファイル内で公開停止されたパッケージが見つかった場合。
  • 非表示の Conda ロックファイルが削除または編集された場合。

環境が再解決され、新しいロックファイルが書き込まれると、最初のコミットハッシュは SUPERSEDED になり、その後にロックファイルを書き直す別のコミットハッシュが続きます。環境の再解決が必要な場合、チェックの実行に時間がかかることがあります。

公開済みの Python ライブラリをプラットフォーム外からダウンロードする

Palantir Foundry 内で公開されたライブラリは、Foundry の外部からダウンロードできます。

  1. ユーザートークンを取得します。Foundry でユーザーアカウント設定に移動し、トークンを選択します。トークンを作成するを選択し、トークンの名前と説明を入力して、生成するを選択します。トークンをコピーします。
共有されたトークンは、なりすましに使用される可能性があります

トークンをほかのアプリケーションやユーザーと共有しないでください。悪意のある人物が、トークンを使用してなりすます可能性があります。

  1. Python ライブラリの <identifier> を特定します。対象の Python ライブラリのコードリポジトリに移動します。ブラウザーの URL は、https://<my-foundry-url>/workspace/data-integration/code/repos/<identifier>/contents/refs%2Fheads%2F<branch> のような形式になっているはずです。URL 内で、ri.stemma.main.repository.XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX のような形式の <identifier> を見つけます。
  2. ライブラリのパッケージインデックスを取得します。ローカルマシンでターミナルを開き、以下のコマンドを実行します。 curl -H "Authorization: Bearer $TOKEN" https://$STACK_URL/artifacts/api/repositories/$IDENTIFIER/contents/release/conda/$PLATFORM/repodata.json ここで、$TOKEN はユーザートークン、$STACK_URL は前のステップの <stack-url> と同じ値、$IDENTIFIER は前のステップの <identifier>、$PLATFORM はリポジトリのプラットフォーム(例:noarch、linux-64)です。上記のコマンドの出力は、ライブラリの内容(つまり、ライブラリに含まれるパッケージ)のインデックスです。各パッケージは <name>-<version>-<build-string>.tar.bz2 という形式です。
  3. 特定のパッケージをダウンロードします。ターミナルで以下を実行すると、Python ライブラリから特定のパッケージをダウンロードできます。 curl -H "Authorization: Bearer $TOKEN" https://$STACK_URL/artifacts/api/repositories/$IDENTIFIER/contents/release/conda/$PLATFORM/$PACKAGE ここで、$PLATFORM はパッケージのプラットフォーム(例:noarch、linux-64)、$PACKAGE は <name>-<version>-<build-string>.tar.bz2 という形式です。

Task Runner でタスクを実行する

Task Runner でコマンドを手動で指定すると、パッケージのインストールを手動で開始できます。

たとえば、pandas をインストールするには、下部パネルの Task Runner タブを選択し、以下のコマンドを入力します。

install --packageSpecs=pandas

Task Runner は、以下のコマンドもサポートしています。

  • uninstall:実行環境からパッケージをアンインストールします。
    • 注:このコマンドは、指定したパッケージに依存するパッケージもすべてアンインストールします。このコマンドは、より新しいリポジトリでのみ利用可能です。リポジトリの parentTemplateId が transforms の場合は、Python 子テンプレートが 1.525.0 以上であることを確認してください。同様に、リポジトリの parentTemplateId が python-library の場合は、parentTemplateVersion が 1.525.0 以上であることを確認してください。
    • 使用方法:Conda パッケージの場合は uninstall --packageSpecs=<eg.numpy>。
  • formatCode:リポジトリ内のファイルをフォーマットします。コードのフォーマットには Black を、フォーマッターのカスタム設定には pyproject.toml を使用します。詳しくは、Black フォーマッターの設定ファイルのドキュメント ↗ を参照してください。
  • whoneeds:現在の実行環境で、あるパッケージのインストールを必要とするパッケージのツリーを表示します。
    • 注:このコマンドは、より新しいリポジトリでのみ利用可能です。リポジトリの parentTemplateId が transforms の場合は、Python 子テンプレートが 1.522.0 以上であることを確認してください。同様に、リポジトリの parentTemplateId が python-library の場合は、parentTemplateVersion が 1.522.0 以上であることを確認してください。
    • 使用方法:whoneeds --packageSpec=<eg.transforms>
  • tasks:実行可能なすべてのタスクを一覧表示します。