# defining function for graph (help needed)

I need help defining a function that does the following (I'm very new to Python/Sage).

I need a function called ihara(G) where G is any graph input by the user.

I need the function ihara(G) to return the Z resulting from all the calculations below:

```
D = G.to_directed()
L = D.line_graph()
L.delete_edges([((x,y,None), (y,x,None)) for x,y in G.edges( labels=None)])
L.delete_edges([((x,y,None), (y,x,None)) for y,x in G.edges( labels=None)])
IM = identity_matrix(QQ,D.size())
T = L.adjacency.matrix()
var('u')
X = IM-u*T
Z = X.det()
```

Could anybody help me with this? or at least get me started in the right direction...

Is what you want the same as

?