SmallTalk-like interactive environment on base of cPython 2.7.x + wx

2016-08-14 Thread Dmitry Ponyatov
Does anybody can recomend some links on tutorials on making custom dynamic 
languages or objects systems on top of cPython2 ?

I want some interactive dynamic object environment with SmallTalk look&feel but 
with Python syntax.

Other tutorials I'm interested in are reflection, dynamic bytecode 
(de)compilation, using internal Python parser (for syntax highlighting for 
example), metacompilation (?) and making dynamic object VMs on top of cPython.
-- 
https://mail.python.org/mailman/listinfo/python-list


HOW TO build object graph or get superclasses list for self.__class__ ?

2010-04-20 Thread Dmitry Ponyatov
Hello

Help please with such problem:

I need to build program object graph (data structure) with additional
parameters for nodes and edges:

include nxgraph # data structure module allowes any py objects for
node/edge id
# (nxgraph ignores 2+ node/edge adding thus no checking need at node/
edge adding)

OBJ_TREE = nxgraph.DiGraph() # directed graph

OBJ_TREE.add_node(object,color='red') # root object

class A(object):
def __init__(self):
object.__init__(self) # (1) maybe map(lambda
s:s.__init__(self), self.__super__) better if I have __super__
OBJ_TREE.add_node(self.__class__,color='red') # (2) add self
class as new node
for SUP in self.__super__:
OBJ_TREE.add_edge(SUP,self.__class__,color='red') # (3)
add super class
  # to self class red arrow (directed
edge)
OBJ_TREE.add_node(self,color='blue') # (4) add self object
instance node
OBJ_TREE.add_edge(self.__class__,self,color='blue') # (5) add
object producing from class edge
OBJ_TREE.plot(sys.argv[0]+'.objtree.png') # dump obj tree as
picture to .png file

class B(A):
pass

class C(A):
pass

Using Python 2.5 I can't realize line (3) in A class, but lines 2) (4)
(5) works well
How can I realize some function get_super(self) giving list of
superclasses for self.__class__ ?
Preferable using py2.5

How days I must reimplement __init__ by dumb copy from parent class to
child class like

class B(A):
def __init__(self):
A.__init__(self)
OBJ_TREE.add_node(A,B) ; OBJ_TREE.plot('OBJ_TREE.png')

class C(A):
def __init__(self):
A.__init__(self)
OBJ_TREE.add_node(A,C) ; OBJ_TREE.plot('OBJ_TREE.png')

class D(B,C):
def __init__(self):
B.__init__(self) ; OBJ_TREE.add_node(B,D)
C.__init__(self) ; OBJ_TREE.add_node(C,D)
OBJ_TREE.plot('OBJ_TREE.png')

This is not good -- a lot of dumb code with chance to make mistakes



-- 
http://mail.python.org/mailman/listinfo/python-list