데이터 타입과 값
Addressing
- 값: list
- 형식: 리스트 안에 딕셔너리
[
{
'type': 'HumanUser' | 'Group',
'id': int,
...
},
...
]
Checkbox
- 값: bool (True | False)
Color
- 값: str
- 예시:
- 색상 값: "255,0,0"
- pipeline_step: 파이프라인 스텝 색상을 상속
Currency
- 값: float | None
- 범위: -9999999999999.99 ~ 9999999999999.99
Date
- 값: str | None
- 범위: 연도 >= 1970
- 형식: YYYY-MM-DD
DateTime
- 값: datetime | None
- 범위: 연도 >= 1970
- 특징: 서버에서 UTC로 저장되며, 클라이언트의 로컬 시간대로 자동 변환됨. 필요 시 오버라이드 가능.
Duration
- 값: int | None
- 범위: -2147483648 ~ 2147483647
- 설명: 시간 길이를 분 단위로 나타냄.
Entity
- 값: dict | None
{
'type': "string",
'id': int,
...
}
Float
- 값: float | None
- 범위: -999999999.999999 ~ 999999999.999999
Footage
- 값: str | None (FF-ff)
- 범위: Frames는 Shotgrid 설정에서 정의한 "Advanced > Number of frames per foot of film" 값보다 작아야 함.
Image
- 값: str | None
- 설명: 이미지 필드는 세 가지 상태를 가질 수 있음.
- None: 썸네일 이미지 없음 또는 생성 실패.
- str: 임시 썸네일 URL.
- str: 최종 썸네일에 대한 서명된 URL.
List
- 값: str | None
Multi-Entity
- 값: list
- 형식: 리스트 안에 딕셔너리
[
{
'type': "string",
'id': int,
...
},
...
]
Number
- 값: int | None
- 범위: -2147483648 ~ 2147483647
Password
- 값: string | None
- 보안: 반환 값이 ******로 대체됨.
Percent
- 값: int | None
- 범위: -2147483648 ~ 2147483647
Serializable
- 값: dict | None
Status List
- 값: str | None
Tag List
- 값: list
Text
- 값: str | None
Timecode
- 값: int | None
- 범위: -2147483648 ~ 2147483647
- 설명: 시간 길이를 밀리초 단위로 나타냄 (1000 = 1초).
URL
- 값: dict | None
{
'content_type': "string",
'link_type': "local" | "url" | "upload",
'name': "string",
'url': "string"
}
- Local File Links 추가 키:
{
'content_type': "string",
'link_type': "local",
'local_path': "string" | None,
'local_path_linux': "string" | None,
'local_path_mac': "string" | None,
'local_path_windows': "string" | None,
'local_storage': {dictionary},
'name': "string",
'url': "string",
}
이미지 필드 문자열 처리
이미지 필드의 값은 아래 세 가지 상태 중 하나일 수 있습니다.
- None: 이미지 없음.
- str: 임시 썸네일 URL.
- str: 최종 썸네일 URL.
Event Types 및 개요
Flow Production Tracking에서는 사용자가 데이터를 변경할 때마다 Event Log Entry 기록을 생성하여 변경 전후의 값을 캡처합니다. 또한, 추가적인 이벤트 로그를 통해 시스템 내 다양한 활동을 추적할 수 있습니다.
Event 기반 트리거
이벤트는 Flow Production Tracking Event Daemon과 같은 트리거 프레임워크에서 유용하게 사용됩니다. 이를 통해 특정 이벤트 발생 시 코드를 실행하는 플러그인을 작성할 수 있습니다.
이벤트 타입의 구조
이벤트 타입은 기본적으로 3가지 파트로 나뉩니다.
Application_EntityType_Action
- Application:
- 기본값은 Shotgun이며, Flow Production Tracking 서버에서 자동으로 생성된 이벤트를 나타냅니다.
- 예: Toolkit은 자체 로그를 남길 때 Application 값으로 Toolkit을 사용.
- 스크립트나 도구를 위한 이벤트를 기록할 경우, 도구 이름을 Application 값으로 설정.
- EntityType:
- 이벤트가 적용된 엔터티 유형.(예: Shot, Asset 등)
- Action:
- 수행된 일반적인 작업. (예: New, Change, Retirement, Revival)
표준 이벤트 타입 (Standard Event Types)
각 엔터티 유형은 엔터티 생성, 수정, 삭제, 복원 시 아래 패턴에 따라 표준 이벤트 타입이 할당됩니다.
- Shotgun_EntityType_New:
- 예: Shotgun_Task_New
- 새로운 엔터티가 생성됨.
- Shotgun_EntityType_Change:
- 예: Shotgun_HumanUser_Change
- 엔터티가 수정됨.
- Shotgun_EntityType_Retirement:
- 예: Shotgun_Ticket_Retirement
- 엔터티가 삭제됨.
- Shotgun_EntityType_Revival:
- 예: Shotgun_CustomEntity03_Revival
- 엔터티가 복원됨.
추가 이벤트 타입 (Additional Event Types)
아래는 Flow Production Tracking에서 로그되는 추가적인 이벤트 타입의 예입니다.
- Shotgun_Attachment_View:
- 첨부 파일(Attachment)이 사용자에 의해 열람됨.
- Shotgun_Reading_Change:
- 예: Note가 특정 사용자가 읽음으로 표시됨.(읽음 상태는 사용자별로 다름. ex. User Joe는 읽음, User Jane은 읽지 않음.)
- 스레드 엔터티가 읽음 또는 읽지 않음으로 표시됨.
- Shotgun_User_Login:
- 사용자가 Flow Production Tracking에 로그인함.
- Shotgun_User_Logout:
- 사용자가 Flow Production Tracking에서 로그아웃함.
사용자 정의 이벤트 타입 (Custom Event Types)
EventLogEntries는 별도의 엔터티이기 때문에 API를 통해 다른 엔터티와 동일하게 생성할 수 있습니다.
- 스크립트나 도구를 통해 이벤트 로그를 남기고 싶다면 이벤트 타입의 명명 규칙을 정하여 API를 통해 EventLogEntry를 생성하면 됩니다.
참고 사항
- EventLogEntries는 수정하거나 삭제할 수 없습니다. (기록의 목적을 방해하지 않기 위해서입니다.)
성능
- 데이터 크기:
- Flow Production Tracking은 수백만 건의 기록도 잘 처리하지만, API 쿼리나 웹 애플리케이션에서 EventLogEntries를 표시할 때 성능 저하가 발생할 수 있습니다.
- Event Log 테이블은 매우 빠르게 커질 수 있습니다.
- 일반적인 서버 성능:
- 이벤트 로그 크기 증가는 서버 전반적인 성능에 영향을 주지 않지만, EventLogEntries와 관련된 작업(예: 웹 페이지 또는 API 요청)에서 성능 저하를 유발할 수 있습니다.
활용 팁
- 이벤트 트리거를 사용하여 자동화된 워크플로우를 설계할 수 있습니다.
- Custom Event Types를 정의하여 스크립트 또는 도구의 활동을 추적하세요.
- 대규모 이벤트 로그를 관리할 경우 필터링 및 아카이빙을 고려하세요.
Event Types 및 개요
Flow Production Tracking에서는 사용자가 데이터를 변경할 때마다 Event Log Entry 기록을 생성하여 변경 전후의 값을 캡처합니다. 또한, 추가적인 이벤트 로그를 통해 시스템 내 다양한 활동을 추적할 수 있습니다.
Event 기반 트리거
이벤트는 Flow Production Tracking Event Daemon과 같은 트리거 프레임워크에서 유용하게 사용됩니다. 이를 통해 특정 이벤트 발생 시 코드를 실행하는 플러그인을 작성할 수 있습니다.
이벤트 타입의 구조
이벤트 타입은 기본적으로 3가지 파트로 나뉩니다.
Application_EntityType_Action
- Application:
- 기본값은 Shotgun이며, Flow Production Tracking 서버에서 자동으로 생성된 이벤트를 나타냅니다.
- 예: Toolkit은 자체 로그를 남길 때 Application 값으로 Toolkit을 사용.
- 스크립트나 도구를 위한 이벤트를 기록할 경우, 도구 이름을 Application 값으로 설정.
- EntityType:
- 이벤트가 적용된 엔터티 유형.(예: Shot, Asset 등)
- Action:
- 수행된 일반적인 작업. (예: New, Change, Retirement, Revival)
표준 이벤트 타입 (Standard Event Types)
각 엔터티 유형은 엔터티 생성, 수정, 삭제, 복원 시 아래 패턴에 따라 표준 이벤트 타입이 할당됩니다.
- Shotgun_EntityType_New:
- 예: Shotgun_Task_New
- 새로운 엔터티가 생성됨.
- Shotgun_EntityType_Change:
- 예: Shotgun_HumanUser_Change
- 엔터티가 수정됨.
- Shotgun_EntityType_Retirement:
- 예: Shotgun_Ticket_Retirement
- 엔터티가 삭제됨.
- Shotgun_EntityType_Revival:
- 예: Shotgun_CustomEntity03_Revival
- 엔터티가 복원됨.
추가 이벤트 타입 (Additional Event Types)
아래는 Flow Production Tracking에서 로그되는 추가적인 이벤트 타입의 예입니다.
- Shotgun_Attachment_View:
- 첨부 파일(Attachment)이 사용자에 의해 열람됨.
- Shotgun_Reading_Change:
- 예: Note가 특정 사용자가 읽음으로 표시됨.(읽음 상태는 사용자별로 다름. ex. User Joe는 읽음, User Jane은 읽지 않음.)
- 스레드 엔터티가 읽음 또는 읽지 않음으로 표시됨.
- Shotgun_User_Login:
- 사용자가 Flow Production Tracking에 로그인함.
- Shotgun_User_Logout:
- 사용자가 Flow Production Tracking에서 로그아웃함.
사용자 정의 이벤트 타입 (Custom Event Types)
EventLogEntries는 별도의 엔터티이기 때문에 API를 통해 다른 엔터티와 동일하게 생성할 수 있습니다.
- 스크립트나 도구를 통해 이벤트 로그를 남기고 싶다면 이벤트 타입의 명명 규칙을 정하여 API를 통해 EventLogEntry를 생성하면 됩니다.
참고 사항
- EventLogEntries는 수정하거나 삭제할 수 없습니다. (기록의 목적을 방해하지 않기 위해서입니다.)
성능
- 데이터 크기:
- Flow Production Tracking은 수백만 건의 기록도 잘 처리하지만, API 쿼리나 웹 애플리케이션에서 EventLogEntries를 표시할 때 성능 저하가 발생할 수 있습니다.
- Event Log 테이블은 매우 빠르게 커질 수 있습니다.
- 일반적인 서버 성능:
- 이벤트 로그 크기 증가는 서버 전반적인 성능에 영향을 주지 않지만, EventLogEntries와 관련된 작업(예: 웹 페이지 또는 API 요청)에서 성능 저하를 유발할 수 있습니다.
활용 팁
- 이벤트 트리거를 사용하여 자동화된 워크플로우를 설계할 수 있습니다.
- Custom Event Types를 정의하여 스크립트 또는 도구의 활동을 추적하세요.
- 대규모 이벤트 로그를 관리할 경우 필터링 및 아카이빙을 고려하세요.
Environment Variables in Flow Production Tracking API
SHOTGUN_API_CACERTS
- 설명: 외부 SSL 인증서 파일의 경로를 지정하는 환경 변수입니다.
- 용도: ca_certs 매개변수 대신 사용됩니다. 만약 둘 다 설정된 경우, ca_certs의 값이 우선 적용됩니다.
SHOTGUN_API_RETRY_INTERVAL
- 설명: 요청 재시도 간 대기 시간을 밀리초 단위로 설정하는 환경 변수입니다.
- 기본값: 3000 밀리초
- 용도: 기본값을 변경하려면 이 환경 변수를 설정하거나, rpc_attempt_interval 속성을 직접 수정할 수 있습니다. 예를 들어:
- sg = Shotgun(site_name, script_name, script_key) sg.config.rpc_attempt_interval = 1000 # 기본값을 1000ms로 설정
- 우선순위: 둘 다 설정된 경우 rpc_attempt_interval의 값이 우선 적용됩니다.
SHOTGUN_API_ENABLE_ENTITY_OPTIMIZATION
- 설명: 실험적 기능으로, 엔터티 최적화 기능을 활성화합니다. 이 기능은 기본적으로 비활성화되어 있으며, 네트워크 지연 시간과 서버 처리 시간을 줄여서 성능을 개선하는 데 사용됩니다.
- 값: 1로 설정하면 활성화됩니다.
- 참고: 만약 이 기능을 사용 중 문제가 발생하면 비활성화할 수 있습니다.
- 예시: find 호출 시, 엔터티를 요청할 때 내부적으로 요청 크기를 줄여서 네트워크 효율을 높입니다. 예를 들어:이는 요청을 최적화하여 불필요한 데이터 전송을 줄입니다.
요청 내용:
sg.find('Asset', [['project', 'is', {
'created_at': datetime.datetime(2015, 12, 16, 11, 2, 10, tzinfo),
'id': 9999,
'name': 'Demo: Game',
'type': 'Project',
# More entity attributes
}]])
내부적으로 변형되는 내용:
sg.find('Asset', [['project', 'is', {'id': 999, 'type': 'Project'}]])
Localization (언어 지원)
Flow Production Tracking API는 사용자의 언어에 맞춰 로컬화된 표시 이름을 반환할 수 있는 기능을 제공합니다. 이는 스크립트/API 사용자에게 사이트 설정에 맞춰 언어별 표시명을 제공합니다.
- 지원되는 메서드:
- Shotgun.schema_entity_read
- Shotgun.schema_field_read
- Shotgun.schema_read
- 기본 설정: 로컬화는 기본적으로 비활성화되어 있습니다.
- 로컬화 활성화 방법: localized 속성을 True로 설정하여 로컬화를 활성화합니다.
예시:
로컬화 비활성화 확인:
sg = Shotgun(site_name, script_name, script_key)
print(sg.config.localized) # False (로컬화 비활성화 상태)
로컬화 활성화:
sg.config.localized = True # 로컬화 활성화
schema = sg.schema_field_read('Shot')
print(schema['sg_vendor_groups']['name']) # 일본어로 로컬화된 값 출력
- 로컬화된 문자열 인코딩: Python 버전과 관계없이 로컬화된 문자열의 인코딩을 보장하려면 shotgun_api3.lib.six.ensure_text()를 사용할 수 있습니다.
요약
- 환경 변수: SHOTGUN_API_CACERTS, SHOTGUN_API_RETRY_INTERVAL, SHOTGUN_API_ENABLE_ENTITY_OPTIMIZATION 등으로 Flow Production Tracking API의 동작을 최적화하고 설정할 수 있습니다.
- 로컬화: 사용자의 언어 설정에 따라 API 응답을 로컬화하여 다양한 언어로 표시 이름을 반환할 수 있습니다. 로컬화는 기본적으로 비활성화되어 있으며, 설정을 통해 활성화할 수 있습니다.
'Flow Production Tracking > Python api' 카테고리의 다른 글
Handling Action Menu Item Calls (0) | 2024.12.25 |
---|---|
API Usage Tips (1) | 2024.12.25 |
API Reference(1) (1) | 2024.12.25 |
Authentication (2) | 2024.12.25 |
Installation (0) | 2024.12.25 |