You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

163 lines
3.8 KiB
Python

# DO NOT EDIT THIS FILE!
#
# This file is generated from the CDP specification. If you need to make
# changes, edit the generator and regenerate all of the modules.
#
# CDP domain: Database (experimental)
from __future__ import annotations
from .util import event_class, T_JSON_DICT
from dataclasses import dataclass
import enum
import typing
class DatabaseId(str):
'''
Unique identifier of Database object.
'''
def to_json(self) -> str:
return self
@classmethod
def from_json(cls, json: str) -> DatabaseId:
return cls(json)
def __repr__(self):
return 'DatabaseId({})'.format(super().__repr__())
@dataclass
class Database:
'''
Database object.
'''
#: Database ID.
id_: DatabaseId
#: Database domain.
domain: str
#: Database name.
name: str
#: Database version.
version: str
def to_json(self):
json = dict()
json['id'] = self.id_.to_json()
json['domain'] = self.domain
json['name'] = self.name
json['version'] = self.version
return json
@classmethod
def from_json(cls, json):
return cls(
id_=DatabaseId.from_json(json['id']),
domain=str(json['domain']),
name=str(json['name']),
version=str(json['version']),
)
@dataclass
class Error:
'''
Database error.
'''
#: Error message.
message: str
#: Error code.
code: int
def to_json(self):
json = dict()
json['message'] = self.message
json['code'] = self.code
return json
@classmethod
def from_json(cls, json):
return cls(
message=str(json['message']),
code=int(json['code']),
)
def disable() -> typing.Generator[T_JSON_DICT,T_JSON_DICT,None]:
'''
Disables database tracking, prevents database events from being sent to the client.
'''
cmd_dict: T_JSON_DICT = {
'method': 'Database.disable',
}
json = yield cmd_dict
def enable() -> typing.Generator[T_JSON_DICT,T_JSON_DICT,None]:
'''
Enables database tracking, database events will now be delivered to the client.
'''
cmd_dict: T_JSON_DICT = {
'method': 'Database.enable',
}
json = yield cmd_dict
def execute_sql(
database_id: DatabaseId,
query: str
) -> typing.Generator[T_JSON_DICT,T_JSON_DICT,typing.Tuple[typing.Optional[typing.List[str]], typing.Optional[typing.List[typing.Any]], typing.Optional[Error]]]:
'''
:param database_id:
:param query:
:returns: A tuple with the following items:
0. **columnNames** -
1. **values** -
2. **sqlError** -
'''
params: T_JSON_DICT = dict()
params['databaseId'] = database_id.to_json()
params['query'] = query
cmd_dict: T_JSON_DICT = {
'method': 'Database.executeSQL',
'params': params,
}
json = yield cmd_dict
return (
[str(i) for i in json['columnNames']] if 'columnNames' in json else None,
[i for i in json['values']] if 'values' in json else None,
Error.from_json(json['sqlError']) if 'sqlError' in json else None
)
def get_database_table_names(
database_id: DatabaseId
) -> typing.Generator[T_JSON_DICT,T_JSON_DICT,typing.List[str]]:
'''
:param database_id:
:returns:
'''
params: T_JSON_DICT = dict()
params['databaseId'] = database_id.to_json()
cmd_dict: T_JSON_DICT = {
'method': 'Database.getDatabaseTableNames',
'params': params,
}
json = yield cmd_dict
return [str(i) for i in json['tableNames']]
@event_class('Database.addDatabase')
@dataclass
class AddDatabase:
database: Database
@classmethod
def from_json(cls, json: T_JSON_DICT) -> AddDatabase:
return cls(
database=Database.from_json(json['database'])
)