본 번역은 검증되지 않았습니다. AIP를 통해 영문원문으로부터 번역되었습니다.

Python 라이브러리 발견 및 사용

Code Repositories를 통해 공개 라이브러리와 Foundry에서 생성한 라이브러리를 가져와 사용할 수 있습니다. 아래 정보는 Python 라이브러리에만 해당됩니다.

Python 라이브러리 찾기

Python 라이브러리를 검색하려면 Code Repositories 환경의 왼쪽 패널에 있는 패키지 탭을 클릭합니다. 검색 상자를 사용하여 사용 가능한 라이브러리를 검색합니다.

라이브러리 이름을 클릭하여 라이브러리 세부 정보와 라이브러리 추가 옵션을 표시합니다. 이렇게 하면 라이브러리의 권장 버전이 브랜치에 추가됩니다.

Python 라이브러리 발견

라이브러리를 추가하면 코드 어시스트 의존성이 새로 고쳐지고 라이브러리에서 사용 가능한 패키지의 모듈을 가져올 수 있게 됩니다.

예외적인 의존성 추가

Python 라이브러리를 추가하면 때때로 핵심 아티팩트 저장소가 Code Repositories에 추가되어 프로젝트에서 참조되어야 합니다. 이 경우, 이 작업을 확인하라는 대화 상자가 표시됩니다.

의존성 대화 상자에는 액세스 권한이 없는 필요한 저장소가 강조 표시됩니다. 라이브러리를 사용하려면 이러한 저장소에 대한 액세스 권한이 필요합니다.

라이브러리 의존성 대화 상자

Code Repositories는 라이브러리에 대해 사용 가능한 백업 저장소를 찾아 자동으로 사용하려고 시도합니다. 특정 백업 저장소가 필요한 경우, 저장소의 아티팩트 설정 페이지에서 직접 설정할 수 있습니다.

특정 라이브러리 버전 고정

특정 버전이 필요한 경우, 설정 버튼을 클릭하고 목록에서 필요한 버전을 선택하여 _고정_할 수 있습니다. 이렇게 하면 변환 및 테스트를 실행하는 데 사용할 다른 버전을 설정할 수 있습니다.

라이브러리의 특정 버전을 고정한 후에는 meta.yaml 파일에 추가되지만 작업 러너를 사용하여 설치되지는 않습니다. 검사가 성공적으로 통과되었는지 확인한 다음 코드 어시스트를 다시 시작하여 meta.yaml 파일에 변경 사항을 적용합니다. 그러면 저장소에서 선택한 라이브러리 버전을 사용할 수 있게 됩니다.

경고

특정 버전을 고정할 때 주의하세요. 고정된 버전이 코드에서 중요한 업데이트를 받지 못하게 할 수 있습니다. 항상 의존성을 검토하고 업데이트하세요.

라이브러리 고정

라이브러리 변경 사항 검토

Python 라이브러리를 저장소에 추가하거나 제거하는 작업은 다른 코드 변경과 마찬가지로 작동합니다. 변경 사항을 커밋하고 보호된 브랜치로 병합해야 합니다. 풀 리퀘스트에서 라이브러리 변경 사항은 meta.yaml 파일의 변경 사항으로 표시됩니다.

가끔 풀 리퀘스트를 작성할 때 .lock 파일의 유형에서 병합 충돌이 발생할 수 있습니다. 이는 브랜치에서 작업하는 동안 업데이트가 발생할 때 발생합니다. 이 경우, 두 변경 사항을 모두 수락하고 풀 리퀘스트를 계속 진행하세요.

meta yaml 파일 변경 사항

공유 채널에 게시된 라이브러리 사용

경고

이 기능은 더 이상 사용되지 않을 수 있으며 환경에서 사용할 수 없을 수 있습니다.

라이브러리가 공유 채널에 게시된 경우( 파이썬 라이브러리 게시하기 참조), Python 하위 프로젝트의 build.gradle 파일을 편집해야 합니다. 숨겨진 파일을 수정하므로 계속하기 전에 "숨겨진 파일 표시"를 선택하세요. 변환용 Python 프로젝트는 공유 라이브러리가 게시된 채널에 액세스해야 합니다. Python 변환 서브 프로젝트 폴더에 있는 build.gradle 파일에 다음을 추가하세요.

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

리포지토리의 루트가 아닌 Python 서브 프로젝트 폴더에 있는 build.gradle 파일을 편집해야 합니다. 파일 끝에 추가하면 apply plugin:이 먼저 실행되고 올바르게 처리됩니다.

아티팩트 저장소 설정

일반적으로 Python 라이브러리를 사용할 때 저장소 설정에 액세스할 필요가 없습니다. 필요한 아티팩트 저장소는 Python 패키지를 추가할 때 자동으로 추가됩니다. 설정 탭에서 참조된 파이썬 저장소 목록을 직접 편집하지 마세요.

공유 라이브러리를 사용할 때 프로젝트에 관련 저장소에 대한 참조가 추가됩니다. 저장소 설정 탭의 "아티팩트" 섹션에서 참조된 저장소 목록을 볼 수 있습니다.

아티팩트 패키지 검색을 통해 아닌 수동으로 공유 라이브러리 종속성을 추가한 경우, 아티팩트 설정을 통해 소비하는 저장소의 백업 저장소에 라이브러리 저장소를 추가해야 합니다. 패키지 검색이 이 작업을 대신 수행하므로 이 방법은 권장하지 않습니다.

작업 러너

작업 러너는 새로운 저장소에서만 사용할 수 있습니다. 숨겨진 파일을 표시하고 templateConfig.json 파일을 확인하여 저장소 버전을 확인할 수 있습니다.

  • 저장소의 parentTemplateIdtransforms인 경우 parentTemplateVersion이 8.220.0 이상이고 Python 자식 템플릿이 1.484.0 이상인지 확인하세요.
  • 저장소의 parentTemplateIdpython-library인 경우 parentTemplateVersion1.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 파일에 대한 자세한 정보를 확인하십시오.

meta-yaml-terminology

Conda를 이용한 Python 패키지 해결

Conda는 오픈 소스 언어 관계 없는 패키지 및 환경 관리자로서, Code Repositories에서 패키지 종속성을 해결하고 패키지 집합을 독립된 환경에 설치하는 데 사용됩니다. 자세한 정보는 공식 Conda 문서 또는 환경 생성 소개를 참조하십시오.

Conda lock 파일

Code Repositories에서 검사를 실행할 때 meta.yaml 파일에 명시된 패키지 목록에 대한 Conda 환경을 해결하고 .lock 확장자를 가진 숨겨진 Conda lock 파일을 생성하여 Conda 환경을 저장합니다. 이 미리 해결된 환경은 코드를 커밋할 때 후속 검사에 대한 Conda 해결을 더 빠르게 만듭니다.

다음 경우에 Conda 환경을 다시 해결하고 새로운 lock 파일을 작성합니다:

  • meta.yaml 파일의 패키지 목록에 변경이 있었습니다.
  • 저장소가 더 새로운 템플릿 버전으로 업그레이드되었습니다.
  • lock 파일에서 리콜된 패키지가 발견되었습니다.
  • 숨겨진 Conda lock 파일이 삭제되거나 수정되었습니다.

환경을 다시 해결하고 새로운 lock 파일을 작성할 때 초기 커밋 해시는 SUPERSEDED 다음에 다른 커밋 해시가 lock 파일을 다시 작성합니다. 환경을 다시 해결해야 할 때 검사가 더 오래 걸릴 수 있습니다.

플랫폼 외부에서 발행된 Python 라이브러리 다운로드하기

Palantir Foundry 내에서 발행된 라이브러리를 Foundry 외부에서 다운로드할 수 있습니다:

  1. 사용자 토큰 받기. Foundry에서 사용자 계정 설정으로 이동한 다음 Tokens를 선택합니다. Create token을 선택하고, 토큰의 이름과 설명을 입력한 다음 Generate를 선택합니다. 토큰을 복사합니다.
경고

토큰을 다른 응용 프로그램이나 사용자와 공유하지 마십시오. 악의적인 행위자가 토큰을 사용하여 당신을 가장할 수 있습니다.

  1. Python 라이브러리의 <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>를 찾습니다.
  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: 실행 환경에서 패키지를 제거합니다.
    • 참고: 이 명령어는 지정된 패키지에 의존하는 모든 패키지도 제거합니다. 이 명령은 새로운 저장소에서만 사용할 수 있습니다. 저장소의 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: 실행할 수 있는 모든 작업을 나열합니다.