Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
[python] Improve python typings
  • Loading branch information
deniskoronchik committed Mar 4, 2018
commit 557e54687066fd28ee9814d7eed9c7d987dbe8e9
210 changes: 107 additions & 103 deletions sc-kpm/python/_definitions/sc.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
from typing import Tuple, List, Any, ByteString, TypeVar

# This file used by autocompletion module, don't use it in other purposes
class ScAddr:

def IsValid(self, other):
def IsValid(self) -> bool:
pass

def ToInt(self, other):
def ToInt(self) -> int:
pass

def __eq__(self, other):
def __eq__(self, other: ScAddr):
pass

def __ne__(self, other):
def __ne__(self, other: ScAddr):
pass

def __rshift__(self, other):
Expand Down Expand Up @@ -38,25 +40,25 @@ def __rshift__(self, other):
def rshift(self, other):
pass

def IsLink(self):
def IsLink(self) -> bool:
pass

def IsEdge(self):
def IsEdge(self) -> bool:
pass

def IsNode(self):
def IsNode(self) -> bool:
pass

def IsValid(self):
def IsValid(self) -> bool:
pass

def IsConst(self):
def IsConst(self) -> bool:
pass

def IsVar(self):
def IsVar(self) -> bool:
pass

def ToInt(self):
def ToInt(self) -> bool:
pass

Unknown = 0
Expand Down Expand Up @@ -106,140 +108,75 @@ def ToInt(self):
NodeVarAbstract = 40
NodeVarMaterial = 41

class ScMemoryContext:
@staticmethod
def Create(self, name):
return ScMemoryContext()

def CreateNode(self, nodeType):
return ScAddr()

def CreateEdge(self, edgeType, src, trg):
return ScAddr()

def CreateLink(self):
return ScAddr()

def DeleteElement(self, elAddr):
return False
class ScLinkContent:
String = 0
Int = 1
Float = 2

def GetName(self):
def AsBinary(self) -> ByteString:
return ''

def IsElement(self, addr):
return False

def GetElementType(self, addr):
return ScType()

def GetEdgeInfo(self, addr):
return ()

def FindLinksByContent(self, content):
return []

def SetLinkContent(self, addr, content):
return False

def GetLinkContent(self, addr):
return ScLinkContent()

def Iterator3(self, src, edge, trg):
return ScIterator3()

def Iterator5(self, src, edge, trg, attrEdge, attrEl):
return ScIterator5()

def HelperResolveSystemIdtf(self, idtf, elType=ScType.Unknown):
return ScAddr()

def HelperSetSystemIdtf(self, idtf, addr):
return False

def HelperGetSystemIdtf(self, addr):
def AsString(self) -> str:
return ''

def HelperCheckEdge(self, src, trg, edgeType):
return False

def HelperGenTemplate(self, templ, params):
return ScTemplateGenResult()
def AsInt(self) -> int:
return 0

def HelperSearchTemplate(self, templ):
return ScTemplateSearchResult()
def AsFloat(self) -> float:
return 0.0

def HelperBuildTemplate(self, addr):
return ScTemplate()
def GetType(self) -> int:
return ScLinkContent.String

class ScIterator3:
def Next(self):
def Next(self) -> bool:
return False

def IsValid(self):
def IsValid(self) -> bool:
return False

def Get(self, idx):
def Get(self, idx: int) -> ScAddr:
return ScAddr()

class ScIterator5:
def Next(self):
def Next(self) -> bool:
return False

def IsValid(self):
def IsValid(self) -> bool:
return False

def Get(self, idx):
def Get(self, idx: int) -> ScAddr:
return ScAddr()

class ScLinkContent:
String = 0
Int = 1
Float = 2

def AsBinary(self):
return ''

def AsString(self):
return ''

def AsInt(self):
return 0

def AsFloat(self):
return 0.0

def GetType(self):
return ScLinkContent.String

class ScTemplateGenResult:
def Size(self):
def Size(self) -> int:
return 0

def __getitem__(self, name):
def __getitem__(self, name: str) -> ScAddr:
return ScAddr()

class ScTemplateSearchResultItem:
def Size(self):
def Size(self) -> int:
return 0

def __getitem__(self, name):
def __getitem__(self, name: str) -> ScAddr:
return ScAddr()

class ScTemplateSearchResult:
def Size(self):
def Size(self) -> int:
return 0

def __getitem__(self, idx):
def __getitem__(self, idx: int) -> ScTemplateSearchResultItem:
return ScTemplateSearchResultItem()

class ScTemplateGenParams:
def Add(self, paramName, value):
def Add(self, paramName: str, value: ScAddr):
pass

def Get(self, paramName):
def Get(self, paramName: str) -> ScAddr:
return ScAddr()

def IsEmpty(self):
def IsEmpty(self) -> bool:
return False

class ScTemplate:
Expand All @@ -250,6 +187,73 @@ def Triple(self, src, edge, trg):
def TripleWithRelation(self, src, edge, trg, attrEdge, attrEl):
return None

IterParam = TypeVar('IterParam', ScAddr, ScType)

class ScMemoryContext:
@staticmethod
def Create(self, name: str):
return ScMemoryContext()

def CreateNode(self, nodeType: ScType) -> ScAddr:
return ScAddr()

def CreateEdge(self, edgeType: ScType, src: ScAddr, trg: ScAddr) -> ScAddr:
return ScAddr()

def CreateLink(self) -> ScAddr:
return ScAddr()

def DeleteElement(self, elAddr: ScAddr) -> bool:
return False

def GetName(self) -> str:
return ''

def IsElement(self, addr) -> bool:
return False

def GetElementType(self, addr: ScAddr) -> ScType:
return ScType()

def GetEdgeInfo(self, addr: ScAddr) -> Tuple[ScAddr, ScAddr]:
return ()

def FindLinksByContent(self, content: Any) -> List[ScAddr]:
return []

def SetLinkContent(self, addr: ScAddr, content: Any) -> bool:
return False

def GetLinkContent(self, addr: ScAddr) -> ScLinkContent:
return ScLinkContent()

def Iterator3(self, src: IterParam, edge: IterParam, trg: IterParam) -> ScIterator3:
return ScIterator3()

def Iterator5(self, src: IterParam, edge: IterParam, trg: IterParam, attrEdge: IterParam, attrEl: IterParam) -> ScIterator5:
return ScIterator5()

def HelperResolveSystemIdtf(self, idtf: str, elType: ScType=ScType.Unknown) -> ScAddr:
return ScAddr()

def HelperSetSystemIdtf(self, idtf: str, addr: ScAddr) -> bool:
return False

def HelperGetSystemIdtf(self, addr: ScAddr) -> str:
return ''

def HelperCheckEdge(self, src: ScAddr, trg: ScAddr, edgeType: ScType) -> bool:
return False

def HelperGenTemplate(self, templ: ScTemplate, params: ScTemplateGenParams) -> ScTemplateGenResult:
return ScTemplateGenResult()

def HelperSearchTemplate(self, templ: ScTemplate) -> ScTemplateSearchResult:
return ScTemplateSearchResult()

def HelperBuildTemplate(self, addr: ScAddr) -> ScTemplate:
return ScTemplate()

def createScMemoryContext():
return ScMemoryContext()

Expand Down
10 changes: 5 additions & 5 deletions sc-kpm/python/common/sc_agent.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ class Status(Enum):

@staticmethod
def InitGlobal(module):
ScAgent.keynodes = ScKeynodes(module.sc_context)
ScAgent.keynodes = ScKeynodes(module.ctx)

def __init__(self, module):
self.module = module
Expand Down Expand Up @@ -102,7 +102,7 @@ def __init__(self, module, cmd_class_addr):
def CheckImpl(self, evt):
"""Check if type of initiated command is equal to specified one
"""
return self.module.sc_context.HelperCheckEdge(
return self.module.ctx.HelperCheckEdge(
self.cmd_class,
evt.other_addr,
ScType.EdgeAccessConstPosPerm)
Expand All @@ -122,10 +122,10 @@ def RunImpl(self, evt):
ScType.EdgeAccessVarPosPerm,
ScAgent.keynodes[ScAgent.kNrelResult])

gen_res = self.module.sc_context.HelperGenTemplate(templ, ScTemplateGenParams())
gen_res = self.module.ctx.HelperGenTemplate(templ, ScTemplateGenParams())
assert gen_res.Size() > 0

self.result_set = ScSet(self.module.sc_context, gen_res['_result'])
self.result_set = ScSet(self.module.ctx, gen_res['_result'])

# run implementation of command
result = self.DoCommand()
Expand All @@ -152,7 +152,7 @@ def GetParam(self, index):
ScType.EdgeAccessVarPosPerm,
self.keynodes['rrel_{}'.format(index)])

search_res = self.module.sc_context.HelperSearchTemplate(templ)
search_res = self.module.ctx.HelperSearchTemplate(templ)
if search_res.Size() == 0:
return ScAddr()

Expand Down
10 changes: 5 additions & 5 deletions sc-kpm/python/common/sc_event.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,19 +52,19 @@ def DestroyEvent(self, evt):
except KeyError:
pass

def CreateEventAddOutputEdge(self, addr, callback):
def CreateEventAddOutputEdge(self, addr: ScAddr, callback) -> ScEvent:
return self.CreateEventInternal(addr, ScPythonEventType.AddOutputEdge, callback)

def CreateEventAddInputEdge(self, addr, callback):
def CreateEventAddInputEdge(self, addr: ScAddr, callback) -> ScEvent:
return self.CreateEventInternal(addr, ScPythonEventType.AddInputEdge, callback)

def CreateEventRemoveOutputEdge(self, addr, callback):
def CreateEventRemoveOutputEdge(self, addr: ScAddr, callback) -> ScEvent:
return self.CreateEventInternal(addr, ScPythonEventType.RemoveOutputEdge, callback)

def CreateEventRemoveInputEdge(self, addr, callback):
def CreateEventRemoveInputEdge(self, addr: ScAddr, callback) -> ScEvent:
return self.CreateEventInternal(addr, ScPythonEventType.RemoveInputEdge, callback)

def CreateEventContentChanged(self, addr, callback):
def CreateEventContentChanged(self, addr: ScAddr, callback) -> ScEvent:
return self.CreateEventInternal(addr, ScPythonEventType.ContentChanged, callback)

def CreateEventEraseElement(self, addr, callback):
Expand Down
Loading