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

Pythonライブラリの探索と使用

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

Pythonライブラリの探索

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

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

discover Python libraries

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

必須の依存関係の追加

Pythonライブラリを追加する際に、必要な作成物リポジトリをコードリポジトリに追加し、プロジェクトで参照する必要がある場合があります。この場合、このアクションを確認するダイアログが表示されます。

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

library dependencies dialog

Code Repositoriesは、ライブラリに利用可能なバッキングリポジトリを見つけ、自動的にそれらを使用しようとします。特定のバッキングリポジトリが必要な場合は、リポジトリの作成物設定ページで直接設定できます。

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

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

特定のバージョンのライブラリをピン留めした後、meta.yamlファイルに追加されますが、Task Runnerを使用してインストールされることはありません。チェックが正常に通過することを確認し、次にCode Assistを再起動して、meta.yamlファイルに対する変更を適用します。その後、リポジトリで選択したライブラリのバージョンを使用することができます。

警告

特定のバージョンをピン留めする際には注意してください。ピン留めされたバージョンがあると、コードが重要な更新を受け取らなくなることがあります。常に依存関係を確認して更新してください。

pinning libraries

ライブラリの変更の確認

リポジトリからPythonライブラリを追加・削除する操作は、他のコード変更と同様に振る舞います。変更をコミットし、保護されたブランチにマージする必要があります。プルリクエストでは、ライブラリの変更がmeta.yamlファイルの変更として表示されます。

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

meta yaml file changes

共有チャンネルに公開されたライブラリの使用

警告

これは廃止された機能であり、環境によっては利用できない場合があります。

ライブラリが共有チャンネルに公開されている場合(Pythonライブラリの公開を参照)、Pythonサブプロジェクトのbuild.gradleを編集する必要があります。_隠し_ファイルを変更するため、"隠しファイルを表示"を選択してから進んでください。Transforms Pythonプロジェクトは、共有ライブラリが公開されているチャンネルにアクセスする必要があります。Transforms Pythonサブプロジェクトフォルダーにあるbuild.gradleファイルに、次の内容を追加します。

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

リポジトリのルートにあるファイルではなく、Pythonサブプロジェクトフォルダーにあるbuild.gradleファイルを編集してください。ファイルの最後に追加して、apply plugin:が正しく実行される前に処理されるようにしてください。

作成物リポジトリの設定

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

共有ライブラリを使用する場合、プロジェクトに関連するリポジトリへの参照が追加されます。リポジトリ設定タブの"作成物"セクションで、参照されているリポジトリのリストを表示できます。

作成物パッケージ検索を介さずに共有ライブラリの依存関係を手動で追加した場合は、作成物設定を介して、消費リポジトリのバッキングリポジトリにライブラリリポジトリを追加する必要があります。ただし、これは推奨されません。パッケージ検索はこの操作を自動的に行います。

Task Runner

Task Runnerは新しいリポジトリでのみ利用可能です。リポジトリのバージョンを確認するには、隠しファイルを表示し、templateConfig.jsonファイルを確認してください。

  • リポジトリのparentTemplateIdtransformsである場合、parentTemplateVersionが8.220.0以上で、Python子テンプレートが1.484.0以上であることを確認してください。
  • リポジトリのparentTemplateIdpython-libraryである場合、parentTemplateVersion1.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 ... - {図書館の名前} # この部分を共有ライブラリの名前に置き換えてください。

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

meta.yaml ファイル についての詳細な情報はこちらをご覧ください。

meta-yaml-terminology

PythonパッケージのConda解決

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でユーザーアカウント設定に移動し、Tokens を選択します。Create token を選択し、トークンの名前と説明を入力し、Generate を選択します。トークンをコピーします。
警告

トークンを他のアプリケーションやユーザーと共有しないでください。悪意のあるアクターがそれを使用してあなたを偽装する可能性があります。

  1. Pythonライブラリの <identifier> を見つけます。興味のあるPythonライブラリのCode Repositoryに移動します。ブラウザのURLは次のような形になるはずです: https://<my-foundry-url>/workspace/data-integration/code/repos/<identifier>/contents/refs%2Fheads%2F<branch>. URLで <identifier> を探し、それは ri.stemma.main.repository.XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX のように見えます。
  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 はリポジトリプラットフォーム(例:noarchlinux-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 はパッケージプラットフォーム(例:noarchlinux-64)で、 $PACKAGE<name>-<version>-<build-string>.tar.bz2 の形です。

Task Runnerでタスクを実行する

Task Runnerから手動でパッケージのインストールをトリガーし、コマンドを手動で指定することができます。

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

# パッケージ仕様を使用してpandasをインストールします
install --packageSpecs=pandas

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

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