I'm looking for a way to implement a partially undirect graph. This is,  graphs where edges can be directed (or not)  and with different type of arrow (>, *, #, etc.).
My problem is that when I try to use undirect grpah from Networkx and stored arrow type as an attribute, I don't find an efficient way to tell networkx if that attribute (type arrorw) is from a to b or from b to a.
Does anyone know how to handle this?
After search it in a lot of different sources, the only way to do a partial undirect graph I've found it is this is through adjacent matrices. 
Networkx has a good tools to move between graph and adjacent matrix (in pandas and numpy array format). 
The disadvantage is if you need networkx functions you have to program it yourself or convert the adjacent matrix to networkx format and then return it back to your previous adjacent matrix.
Partially undirect graphs in Networkx