163 lines
3.8 KiB
Python
Executable File
163 lines
3.8 KiB
Python
Executable File
# 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'])
|
|
)
|