# get the first element of a fully qualified python path
#(e.g. _car('a.b.c.d') = 'a')
def fqn_car(fqn):
try:
return fqn[:fqn.index(".")]
except ValueError: # i.e. no dots in fqn
return fqn
# get the other elements of a fully qualified python path
#(e.g. _cdr('a.b.c.d') = 'b.c.d')
def fqn_cdr(fqn):
try:
return fqn[fqn.index(".")+1:]
except ValueError: # i.e. no dots in fqn
return ""
# reverse of above _rcar("a.b.c.d") = "d"
def fqn_rcar(fqn):
try:
return fqn[fqn.rindex(".")+1:]
except ValueError: # i.e. no dots in fqn
return fqn
# reverse of above _rcdr("a.b.c.d") = "a.b.c"
def fqn_rcdr(fqn):
try:
return fqn[:fqn.rindex(".")]
except ValueError: # i.e. no dots in fqn
return ""
|