Beginning of URI decoder -- !!! NOT YET FULLY IMPLEMENTED !!!

This commit is contained in:
2017-07-25 13:05:58 +02:00
parent b24be84b0a
commit 28259cd88b
2 changed files with 67 additions and 0 deletions

View File

@ -0,0 +1 @@

View File

@ -0,0 +1,66 @@
from urllib.parse import urlparse
from os.path import isdir, isfile, basename, join
from obitools3.utils import tobytes
from obitools3.dms.dms import DMS
cdef findDMS(bytes path,create=False):
cdef int pos=1
cdef bytes dmspath
cdef bytes dmsdirname
cdef bytes dmsname
while(pos>0):
pos = path.find(b"/",pos)
if pos>0:
dirpath=path[0:pos]
else:
dirpath=path
if not isdir(dirpath):
dmsdirname=dmspath+b".obidms"
if isdir(dmsdirname):
dmsname=basename(dmspath)
if isfile(join(dmsdirname,dmsname+b"_infos")):
dms = DMS.open(dmspath)
if pos > 0:
return(dms,path[pos+1:])
else:
return(dms,b'')
elif create:
dms=DMS.new(dmspath)
if pos > 0:
return(dms,path[pos+1:])
else:
return(dms,b'')
pos=pos+1
return None
cpdef openURI(uri,defaultDMS=None,input=True):
cdef bytes urib = tobytes(uri)
cdef bytes scheme
urip = urlparse(urib)
scheme = urip.scheme
if scheme==b"" :
if defaultDMS is not None:
scheme=b'file'
dms = findDMS(urip.path)
if dms is not None:
scheme=b"dms"
if scheme==b"dms" :
elif scheme==b"file" :