> don't we put allmost anything in *init*.py
> which exisits only on python side?

A natural choice is to call the C++ module `graphimpl` and have a module 
`graph.py` that calls `from graphimpl import *` and then implements the 
Python-based functionality normally. I just used the tricks in 
`__init__.py` because there was so little additional stuff that I didn't 
find the separation justified.