Module sktmls.meta_tables.meta_table

Classes

class MetaItem (**kwargs)

MLS 메타 아이템 클래스입니다.

Args

  • kwargs
    • id: (int) 메타 아이템 고유 ID
    • name: (str) 메타 아이템 이름
    • values: (dict) 메타 아이템 정보

Returns

MetaItem

Methods

def get(self)
def reset(self, **kwargs)
class MetaTable (**kwargs)

MLS 메타 테이블 클래스입니다.

Args

  • kwargs
    • id: (int) 메타 테이블 고유 ID
    • name: (str) 메타 테이블 이름
    • description: (str) 메타 테이블 설명
    • schema: (dict) 메타 아이템 스키마
    • items: (list) 포함된 메타 아이템 리스트
    • created_at: (datetime) 생성일시
    • updated_at: (datetime) 수정일시
    • user: (str) 메타 테이블 소유 계정명

Returns

MetaTable

Methods

def get(self)
def reset(self, **kwargs)
class MetaTableClient (env: MLSENV = None, runtime_env: MLSRuntimeENV = None, username: str = None, password: str = None)

MLS 메타 테이블과 메타 아이템 관련 기능들을 제공하는 클라이언트입니다.

Args

아래의 환경 변수가 정의된 경우 해당 파라미터를 생략 가능합니다.

  • $MLS_ENV: env
  • $MLS_RUNTIME_ENV: runtime_env
  • $MLS_USERNAME: username
  • $MLS_PASSWORD: password

Returns

MetaTableClient

Example

meta_table_client = MetaTableClient(env=MLSENV.STG, runtime_env=MLSRuntimeENV.YE, username="mls_account", password="mls_password")

Ancestors

Methods

def create_meta_item(self, meta_table: MetaTable, item_name: str, item_dict: Dict[str, Any]) ‑> MetaItem

메타 아이템을 생성합니다.

Args

  • meta_table: (MetaTable) 메타 아이템이 포함될 메타 테이블 객체
  • item_name: (str) 메타 아이템 이름
  • item_dict: (dict) 메타 아이템 정보

Returns

MetaItem

  • id: (int) 메타 아이템 고유 ID
  • name: (str) 메타 아이템 이름
  • values: (dict) 메타 아이템 정보

Example

my_meta_item1 = meta_table_client.create_meta_item(
    meta_table=my_meta_table,
    item_name="my_meta_item1",
    item_dict={
        "meta_item_schema1": "string_value",
        "meta_item_schema2": 100
    }
)
def create_meta_items(self, meta_table: MetaTable, items_dict: Dict[str, Any]) ‑> List[MetaItem]

메타 아이템 여러 개를 생성/수정 합니다. 추가 할 item_name이 존재 시 수정, 미존재 시 생성 합니다.

Args

  • meta_table: (MetaTable) 메타 아이템이 포함될 메타 테이블 객체
  • items_dict: (dict) Bulk로 추가할 메타 아이템 정보

Returns

list(MetaItem)

  • id: (int) 메타 아이템 고유 ID
  • name: (str) 메타 아이템 이름
  • values: (dict) 메타 아이템 정보

Example

my_meta_item1 = meta_table_client.create_meta_items(
    meta_table=my_meta_table,
    items_dict={
        "item_1" : {
            "value_1" : "a1", "value_2" : "b1"
        },
        "item_2" : {
            "value_1" : "a2", "value_2" : "b2"
        },
        "item_3" : {
            "value_1" : "a3", "value_2" : "b3"
        }
    }
)
def create_meta_items_by_dataframe(self, meta_table: MetaTable, meta_items: pandas.core.frame.DataFrame, item_name: str) ‑> List[MetaItem]

메타 아이템 여러 개를 Pandas DataFrame을 이용하여 생성/수정 합니다. 추가 할 item_name이 존재 시 수정, 미존재 시 생성 합니다.

Args

  • meta_table: (MetaTable) 메타 아이템이 포함될 메타 테이블 객체
  • meta_items: (pandas.core.frame.DataFrame) Bulk로 추가할 메타 아이템 Pandas DataFrame
  • item_name: (str) meta_items 컬럼 중 meta_item의 이름이 될 컬럼명

Returns

list(MetaItem)

  • id: (int) 메타 아이템 고유 ID
  • name: (str) 메타 아이템 이름
  • values: (dict) 메타 아이템 정보

Example

my_meta_table = meta_table_client.get_meta_table(name="my_meta_table")

meta_items = pandas.DataFrame({"name": ["item_1", "item_2", "item_3"], "value_1": ["a1", "a2", "a3"], "value_2": ["b1", "b2", "b3"]})

my_meta_items = meta_table_client.create_meta_items_by_dataframe(
    meta_table=my_meta_table,
    meta_items=meta_items,
    item_name="name"
)
def create_meta_table(self, name: str, schema: Dict[str, Dict], description: str = None) ‑> MetaTable

메타 테이블을 생성합니다.

Args

  • name: (str) 메타 테이블 이름
  • schema: (dict) 메타 아이템 스키마
  • description: (optional) (str) 메타 테이블 설명

Returns

MetaTable

  • id: (int) 생성된 메타 테이블 고유 ID
  • name: (str) 생성된 메타 테이블 이름
  • description: (str) 생성된 메타 테이블 설명
  • schema: (dict) 생성된 메타 아이템 스키마
  • items: (list) 포함된 메타 아이템 리스트
  • created_at: (datetime) 생성일시
  • updated_at: (datetime) 수정일시
  • user: (str) 메타 테이블 소유 계정명

Example

meta_table = meta_table_client.create_meta_table(
    name="my_meta_table",
    schema={
        "meta_item_schema1": {"type": "string"},
        "meta_item_schema2": {"type": "number"}
    },
    description="This is my table"
)
def delete_meta_item(self, meta_table: MetaTable, meta_item: MetaItem) ‑> MLSResponse

메타 아이템을 메타 테이블에서 삭제합니다.

Args

  • meta_table: (MetaTable) 메타 테이블 객체
  • meta_item: (MetaItem) 메타 아이템 객체

Returns

MLSResponse

Example

meta_table_client.delete_meta_item(meta_table=my_meta_table, meta_item=my_meta_item)
def delete_meta_table(self, meta_table: MetaTable) ‑> MLSResponse

메타 테이블을 삭제합니다.

Args

  • meta_table: (MetaTable) 메타 테이블 객체

Returns

MLSResponse

Example

meta_table_client.delete_meta_table(meta_table)
def get_meta_item(self, meta_table: MetaTable, id: int = None, name: str = None) ‑> MetaItem

메타 아이템 정보를 가져옵니다.

Args: id 또는 name 중 한 개 이상의 값이 반드시 전달되어야 합니다.

  • meta_table: (MetaTable) 메타 테이블 객체
  • id: (optional) (int) 메타 아이템 고유 ID
  • name: (optional) (str) 메타 아이템 이름

Returns

MetaItem

  • id: (int) 메타 아이템 고유 ID
  • name: (str) 메타 아이템 이름
  • values: (dict) 메타 아이템 정보

Example

meta_item_by_id = meta_table_client.get_meta_item(meta_table=my_meta_table, id=10)
meta_item_by_name = meta_table_client.get_meta_item(meta_table=my_meta_table, name="my_item")
def get_meta_table(self, id: int = None, name: str = None) ‑> MetaTable

메타 테이블 정보를 가져옵니다.

Args: id 또는 name 중 한 개 이상의 값이 반드시 전달되어야 합니다.

  • id: (optional) (int) 메타 테이블 고유 ID
  • name: (optional) (str) 메타 테이블 이름

Returns

MetaTable

  • id: (int) 메타 테이블 고유 ID
  • name: (str) 메타 테이블 이름
  • description: (str) 메타 테이블 설명
  • schema: (dict) 메타 아이템 스키마
  • items: (list) 포함된 메타 아이템 리스트
  • created_at: (datetime) 생성일시
  • updated_at: (datetime) 수정일시
  • user: (str) 메타 테이블 소유 계정명

Example

meta_table_by_id = meta_table_client.get_meta_table(id=3)
meta_table_by_name = meta_table_client.get_meta_table(name="my_table")
def get_meta_table_dataframe(self, id: int = None, name: str = None) ‑> pandas.core.frame.DataFrame

메타 테이블 정보를 가져와서 pandas.core.frame.DataFrame 형태로 반환합니다.

Args: id 또는 name 중 한 개 이상의 값이 반드시 전달되어야 합니다.

  • id: (optional) (int) 메타 테이블 고유 ID
  • name: (optional) (str) 메타 테이블 이름

Returns

pandas.core.frame.DataFrame

Example

meta_table_df_by_id = meta_table_client.get_meta_table_dataframe(id=3)
meta_table_df_by_name = meta_table_client.get_meta_table_dataframe(name="my_table")
def list_meta_items(self, meta_table: MetaTable, **kwargs) ‑> List[MetaItem]

메타 테이블에 포함된 메타 아이템 리스트를 가져옵니다.

Args

  • meta_table: (MetaTable) 메타 테이블 객체
  • kwargs: (optional) (dict) 쿼리 조건
  • id: (int) 메타 아이템 고유 ID
  • name: (str) 메타 아이템 이름
  • query: (str) 검색 문자
  • page: (int) 페이지 번호

Returns

list(MetaItem)

  • id: (int) 메타 아이템 고유 ID
  • name: (str) 메타 아이템 이름
  • values: (dict) 메타 아이템 정보

Example

all_meta_items_in_table = meta_table_client.list_meta_items(meta_table=my_meta_table)
def list_meta_tables(self, **kwargs) ‑> List[MetaTable]

메타 테이블 리스트를 가져옵니다.

Args

  • kwargs: (optional) (dict) 쿼리 조건
    • id: (int) 메타 테이블 고유 ID
    • name: (str) 메타 테이블 이름
    • query: (str) 검색 문자
    • page: (int) 페이지 번호

Returns

list(MetaTable)

  • id: (int) 메타 테이블 고유 ID
  • name: (str) 메타 테이블 이름
  • description: (str) 메타 테이블 설명
  • schema: (dict) 메타 아이템 스키마
  • items: (list) 포함된 메타 아이템 리스트
  • created_at: (datetime) 생성일시
  • updated_at: (datetime) 수정일시
  • user: (str) 메타 테이블 소유 계정명

Example

all_my_meta_tables = meta_table_client.list_meta_tables()
def meta_table_exists(self, id: int = None, name: str = None) ‑> bool

메타 테이블이 존재하는 지 확인합니다.

Args: id 또는 name 중 한 개 이상의 값이 반드시 전달되어야 합니다.

  • id: (optional) (int) 메타 테이블 고유 ID
  • name: (optional) (str) 메타 테이블 이름

Returns

bool

Example

meta_table_client.meta_table_exists(name="my_table")
def update_meta_item(self, meta_table: MetaTable, meta_item: MetaItem, item_name: str = None, item_dict: Dict[str, Any] = None) ‑> MetaItem

메타 아이템을 수정합니다.

Args

  • meta_table: (MetaTable) 메타 테이블 객체
  • meta_item: (MetaItem) 메타 아이템 객체
  • item_name: (optional) (str) 메타 아이템 이름
  • item_dict: (optional) (dict) 메타 아이템 정보

Returns:

MetaItem

  • id: (int) 메타 아이템 고유 ID
  • name: (str) 메타 아이템 이름
  • values: (dict) 메타 아이템 정보

Example

my_meta_item1 = meta_table_client.update_meta_item(
    meta_table=my_meta_table,
    meta_item=my_meta_item1,
    item_name="my_meta_item1",
    item_dict={
        "meta_item_schema1": "another_string_value",
        "meta_item_schema2": 200
    }
)
def update_meta_table(self, meta_table: MetaTable, name: str = None, schema: Dict[str, Dict] = None, description: str = None) ‑> MetaTable

메타 테이블 정보를 수정합니다.

Args

  • meta_table: (MetaTable) 메타 테이블 객체
  • name: (optional) (str) 메타 테이블 이름
  • schema: (optional) (dict) 메타 아이템 스키마
  • description: (optional) (str) 메타 테이블 설명

Returns

MetaTable

  • id: (int) 수정된 메타 테이블 고유 ID
  • name: (str) 수정된 메타 테이블 이름
  • description: (str) 수정된 메타 테이블 설명
  • schema: (dict) 수정된 메타 아이템 스키마
  • items: (list) 포함된 메타 아이템 리스트
  • created_at: (datetime) 생성일시
  • updated_at: (datetime) 수정일시
  • user: (str) 메타 테이블 소유 계정명

Example

meta_table = meta_table_client.update_meta_table(
    meta_table=meta_table,
    name="my_meta_table",
    schema={
        "meta_item_schema3": {"type": "string"},
        "meta_item_schema4": {"type": "number"}
    },
    description="This is my updated table"
)