람다 플러그인 JSON

전체 구조

 1{
 2    "info": {
 3        ...
 4    },
 5    "controls": {
 6        ...
 7    },
 8    "props": [
 9        ...
10    ]
11}

info

람다의 상세 정보를 포함합니다.

Name

Type

Description

name

string

[필수] 람다의 이름

version

string

람다의 버전 정보

category

string

람다의 상위 분류

keywords

string array

키워드. 검색 및 분류에 사용

homepage

string

홈페이지 주소

bugs

string

버그 발생시 리포팅할 주소

license

string

라이선스 이름

author

string

작성자

dependencies

object array

종속성 목록

engines

string

실행가능한 CORE 엔진 버전

environment

object

람다를 작동시킬 구성 환경

titles

object

화면에 출력할 타이틀명

descriptions

object

화면에 출력할 람다의 간략한 정보

documentation_mime

string

문서에 적용될 MIME

documentations

object

문서의 본문

meta

object

메타 데이터 정보

version 문자열은 major.minor.patch 포맷으로 버전명을 기입해 주세요.

meta 객체는 《API》 또는 《WEB》 모듈과 상호작용하기 위한 정보를 포함합니다.

dependencies 객체는 아래의 속성을 포함합니다.

Name

Type

Description

type

string

종속성의 종류

src

string

패키지 이름

extra

string array

확장 명령 목록

environment 객체는 아래의 속성을 포함합니다.

Name

Type

Description

type

string

환경의 종류

name

string

환경의 이름

titles, descriptions, documentations 객체는 언어 코드에 해당하는 Key 와 내용에 해당하는 Value 를 내포합니다.

예제 코드는 다음과 같습니다.

 1 "info": {
 2    "name": "numpy_zeros",
 3    "version": "1.0.0",
 4    "category": "numpy",
 5    "keywords": ["numpy"],
 6    "homepage": "https://answer.bogonets.com/",
 7    "bugs": "https://answer.bogonets.com/",
 8    "license": "Bogonet License",
 9    "author": "zer0",
10    "dependencies": [
11        {"type": "pip", "src": "numpy"}
12    ],
13    "engines": ">=1.0.2",
14    "environment": {},
15    "titles": {
16        "en": "numpy.zeros",
17        "ko": "numpy.zeros"
18    },
19    "descriptions": {
20        "en": "Returns an array filled with zeros.",
21        "ko": "0으로 채워진 배열을 반환한다."
22    },
23    "documentation_mime": "text",
24    "documentations": {},
25    "meta": {}
26}

controls

람다의 입출력 슬롯을 정의합니다.

controls 객체는 아래의 속성을 포함합니다.

Name

Type

Description

input

object

입력 슬롯

output

object

출력 슬롯

inputoutput 객체는 아래의 속성을 포함합니다.

Name

Type

Description

list

object array

슬롯 목록

dynamic

bool

동적 슬롯 지원 여부

method

string

슬롯의 데이터를 읽는 방법

dynamictrue 일 경우 사용자가 임의로 슬롯을 조절할 수 있습니다.

method 는 아래의 값 중 하나를 사용할 수 있습니다.

  • native: 《CORE》의 원본 형태로 읽습니다. Box 구조를 사용합니다.

  • numpy: Python numpy 배열을 사용합니다.

  • string: 문자열을 사용합니다.

list 객체는 아래의 속성을 포함합니다.

Name

Type

Description

name

string

슬롯의 이름

mimes

string array

MIME 목록

예제 코드는 다음과 같습니다.

 1"controls": {
 2    "input": {
 3        "list": [
 4            {
 5                "name": "text"
 6            },
 7            {
 8                "name": "audio",
 9                "mime": "audio/ogg"
10            }
11        ],
12        "dynamic": true,
13        "method": "numpy"
14    },
15    "output": [
16        {
17            "name": "frame",
18            "mimes": ["image/jpeg", "image/png"]
19        }
20    ]
21}

props

람다의 속성 목록을 정의합니다.

props 객체는 아래의 속성을 포함합니다.

Name

Type

Description

rule

string

속성에 적용할 규칙

name

string

속성 이름

default_value

any

속성의 기본 값

type

string

속성 타입

required

bool

필수 여부

valid

object

Validation 목록

title

object

화면에 출력할 타이틀

help

object

화면에 출력할 도움말

rule 은 아래의 값 중 하나를 사용할 수 있습니다.

  • initialize_only: 람다를 초기화 한 이후, 더이상 수정할 수 없습니다. init 으로 사용할 수 있습니다.

  • read_only: 읽기 전용 속성으로, 람다의 속성을 조회하기 위한 용도 입니다. r 으로 사용할 수 있습니다.

  • read_and_write: 읽기 및 쓰기 가능합니다. rw 으로 사용할 수 있습니다.

type 은 아래의 값 중 하나를 사용할 수 있습니다.

  • str: 문자열

  • bool: Boolean, true 또는 false 값을 허용합니다.

  • int: 정수형

  • unsigned: 부호 없는 정수형

  • size: 크기

  • float: 단 정밀도 실수

  • double: 배 정밀도 실수

  • json: JSON 객체

  • csv: CSV 문자열, , 를 사용하여 문자열을 분할합니다.

  • color: 색상 값, #RRGGBB 포맷의 문자열을 사용합니다.

  • duration: 경과 시간. 문자열을 사용합니다.

  • byte: 바이트 단위 크기. 문자열을 사용합니다.

  • time: 절대 시간. 문자열을 사용합니다.

  • box_json: Box 포맷의 JSON 객체

valid 객체는 아래의 속성을 포함합니다.

Name

Type

Description

Version

list

string

선택 목록

hint

string

힌트 목록

min

string

최소 값

max

string

최대 값

dyhint

string

유동적 힌트

password

string

암호문 처리

advance

string

상세 옵션

1.1.8

listhint; 으로 문자열을 분할 합니다.

예제 코드는 다음과 같습니다.

 1{
 2    "rule": "initialize_only",
 3    "name": "api_preference",
 4    "default_value": "default",
 5    "type": "str",
 6    "required": true,
 7    "valid": {
 8        "list": "default;ffmpeg;images;dshow"
 9    },
10    "title": {
11        "en": "API Preference",
12        "ko": "API Preference"
13    },
14    "help": {
15        "en": "Preferred Capture API backends to use.",
16        "ko": "사용할 백엔드 API."
17    }
18}