Code Repositories를 통해 공개 라이브러리와 Foundry에서 생성한 라이브러리를 가져와 사용할 수 있습니다. 아래 정보는 Python 라이브러리에만 해당됩니다.
Python 라이브러리를 검색하려면 Code Repositories 환경의 왼쪽 패널에 있는 패키지 탭을 클릭합니다. 검색 상자를 사용하여 사용 가능한 라이브러리를 검색합니다.
라이브러리 이름을 클릭하여 라이브러리 세부 정보와 라이브러리 추가 옵션을 표시합니다. 이렇게 하면 라이브러리의 권장 버전이 브랜치에 추가됩니다.
라이브러리를 추가하면 코드 어시스트 의존성이 새로 고쳐지고 라이브러리에서 사용 가능한 패키지의 모듈을 가져올 수 있게 됩니다.
Python 라이브러리를 추가하면 때때로 핵심 아티팩트 저장소가 Code Repositories에 추가되어 프로젝트에서 참조되어야 합니다. 이 경우, 이 작업을 확인하라는 대화 상자가 표시됩니다.
의존성 대화 상자에는 액세스 권한이 없는 필요한 저장소가 강조 표시됩니다. 라이브러리를 사용하려면 이러한 저장소에 대한 액세스 권한이 필요합니다.
Code Repositories는 라이브러리에 대해 사용 가능한 백업 저장소를 찾아 자동으로 사용하려고 시도합니다. 특정 백업 저장소가 필요한 경우, 저장소의 아티팩트 설정 페이지에서 직접 설정할 수 있습니다.
특정 버전이 필요한 경우, 설정 버튼을 클릭하고 목록에서 필요한 버전을 선택하여 _고정_할 수 있습니다. 이렇게 하면 변환 및 테스트를 실행하는 데 사용할 다른 버전을 설정할 수 있습니다.
라이브러리의 특정 버전을 고정한 후에는 meta.yaml
파일에 추가되지만 작업 러너를 사용하여 설치되지는 않습니다. 검사가 성공적으로 통과되었는지 확인한 다음 코드 어시스트를 다시 시작하여 meta.yaml
파일에 변경 사항을 적용합니다. 그러면 저장소에서 선택한 라이브러리 버전을 사용할 수 있게 됩니다.
특정 버전을 고정할 때 주의하세요. 고정된 버전이 코드에서 중요한 업데이트를 받지 못하게 할 수 있습니다. 항상 의존성을 검토하고 업데이트하세요.
Python 라이브러리를 저장소에 추가하거나 제거하는 작업은 다른 코드 변경과 마찬가지로 작동합니다. 변경 사항을 커밋하고 보호된 브랜치로 병합해야 합니다. 풀 리퀘스트에서 라이브러리 변경 사항은 meta.yaml
파일의 변경 사항으로 표시됩니다.
가끔 풀 리퀘스트를 작성할 때 .lock
파일의 유형에서 병합 충돌이 발생할 수 있습니다. 이는 브랜치에서 작업하는 동안 업데이트가 발생할 때 발생합니다. 이 경우, 두 변경 사항을 모두 수락하고 풀 리퀘스트를 계속 진행하세요.
이 기능은 더 이상 사용되지 않을 수 있으며 환경에서 사용할 수 없을 수 있습니다.
라이브러리가 공유 채널에 게시된 경우( 파이썬 라이브러리 게시하기 참조), Python 하위 프로젝트의 build.gradle
파일을 편집해야 합니다. 숨겨진 파일을 수정하므로 계속하기 전에 "숨겨진 파일 표시"를 선택하세요. 변환용 Python 프로젝트는 공유 라이브러리가 게시된 채널에 액세스해야 합니다. Python 변환 서브 프로젝트 폴더에 있는 build.gradle
파일에 다음을 추가하세요.
Copied!1 2 3
transformsPython { sharedChannels "libs" }
리포지토리의 루트가 아닌 Python 서브 프로젝트 폴더에 있는 build.gradle
파일을 편집해야 합니다. 파일 끝에 추가하면 apply plugin:
이 먼저 실행되고 올바르게 처리됩니다.
일반적으로 Python 라이브러리를 사용할 때 저장소 설정에 액세스할 필요가 없습니다. 필요한 아티팩트 저장소는 Python 패키지를 추가할 때 자동으로 추가됩니다. 설정 탭에서 참조된 파이썬 저장소 목록을 직접 편집하지 마세요.
공유 라이브러리를 사용할 때 프로젝트에 관련 저장소에 대한 참조가 추가됩니다. 저장소 설정 탭의 "아티팩트" 섹션에서 참조된 저장소 목록을 볼 수 있습니다.
아티팩트 패키지 검색을 통해 아닌 수동으로 공유 라이브러리 종속성을 추가한 경우, 아티팩트 설정을 통해 소비하는 저장소의 백업 저장소에 라이브러리 저장소를 추가해야 합니다. 패키지 검색이 이 작업을 대신 수행하므로 이 방법은 권장하지 않습니다.
작업 러너는 새로운 저장소에서만 사용할 수 있습니다. 숨겨진 파일을 표시하고 templateConfig.json
파일을 확인하여 저장소 버전을 확인할 수 있습니다.
parentTemplateId
가 transforms
인 경우 parentTemplateVersion
이 8.220.0 이상이고 Python 자식 템플릿이 1.484.0 이상인지 확인하세요.parentTemplateId
가 python-library
인 경우 parentTemplateVersion
이 1.497.0
이상인지 확인하세요.이 기능을 사용하려면 저장소를 업그레이드하세요.
작업 러너를 사용하면 왼쪽 패널의 라이브러리 탭에서 패키지를 추가하는 경우 새로운 코드 어시스트 작업 공간을 프로비저닝하는 대신 현재 환경 위에 요청된 패키지를 설치하기 시작하며 기본 프로세스에서 모든 로그를 되돌려 보냅니다.
설치가 성공하면 lockfile이 새 환경으로 업데이트됩니다. 설치가 실패한 경우 작업 러너 하단 패널에서 오류 메시지가 표시되며 문제를 파악하는 데 사용할 수 있습니다.
작업 러너는 run
환경만 업데이트하며 현재 테스트 전용 종속성 설치를 지원하지 않습니다.
아래 정보는 관리자와 고급 사용자만을 위한 것입니다.
meta.yaml
파일meta.yaml
파일을 편집하는 것은 오류가 발생하기 쉽습니다. 대신 라이브러리 검색 인터페이스를 통해 라이브러리를 추가하는 것이 좋습니다.
Code Repositories에서 Python 라이브러리를 사용하려면 conda_recipe/meta.yaml
파일에 포함되어야 합니다. 이 작업은 라이브러리 검색 인터페이스를 통해 라이브러리를 추가할 때 자동으로 수행됩니다.
Copied!1 2 3 4 5 6
requirements: ... run: - python ... - {도서관 이름} # 여기에 공유 라이브러리의 이름을 적어주세요.
라이브러리 추가 후 meta.yaml 파일 상단의 "Refresh dependencies"를 클릭하십시오. 이렇게 하면 새로운 종속성이 업데이트되어 사용 가능한 패키지에서 모듈을 가져올 수 있습니다.
meta.yaml 파일에 대한 자세한 정보를 확인하십시오.
Conda는 오픈 소스 언어 관계 없는 패키지 및 환경 관리자로서, Code Repositories에서 패키지 종속성을 해결하고 패키지 집합을 독립된 환경에 설치하는 데 사용됩니다. 자세한 정보는 공식 Conda 문서 또는 환경 생성 소개를 참조하십시오.
Code Repositories에서 검사를 실행할 때 meta.yaml
파일에 명시된 패키지 목록에 대한 Conda 환경을 해결하고 .lock
확장자를 가진 숨겨진 Conda lock 파일을 생성하여 Conda 환경을 저장합니다. 이 미리 해결된 환경은 코드를 커밋할 때 후속 검사에 대한 Conda 해결을 더 빠르게 만듭니다.
다음 경우에 Conda 환경을 다시 해결하고 새로운 lock 파일을 작성합니다:
meta.yaml
파일의 패키지 목록에 변경이 있었습니다.환경을 다시 해결하고 새로운 lock 파일을 작성할 때 초기 커밋 해시는 SUPERSEDED
다음에 다른 커밋 해시가 lock 파일을 다시 작성합니다. 환경을 다시 해결해야 할 때 검사가 더 오래 걸릴 수 있습니다.
Palantir Foundry 내에서 발행된 라이브러리를 Foundry 외부에서 다운로드할 수 있습니다:
토큰을 다른 응용 프로그램이나 사용자와 공유하지 마십시오. 악의적인 행위자가 토큰을 사용하여 당신을 가장할 수 있습니다.
<identifier>
찾기. 관심 있는 Python 라이브러리의 Code Repositories로 이동합니다. 브라우저 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>
를 찾습니다.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
형식을 가집니다.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에서 명령을 수동으로 지정하여 패키지 설치를 수동으로 실행할 수 있습니다.
예를 들어 pandas
를 설치하려면 하단 패널의 Task Runner 탭을 선택한 다음 다음 명령을 입력합니다:
install --packageSpecs=pandas # 판다스 패키지 설치
Task Runner는 다음과 같은 명령을 지원합니다:
uninstall
: 실행 환경에서 패키지를 제거합니다.
parentTemplateId
가 transforms
인 경우, Python 하위 템플릿이 1.525.0
이상인지 확인하십시오. 마찬가지로, 저장소의 parentTemplateId
가 python-library
인 경우, parentTemplateVersion
이 1.525.0
이상인지 확인하십시오.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
: 실행할 수 있는 모든 작업을 나열합니다.