URIs: added stdout output (empty URI)

This commit is contained in:
Celine Mercier
2019-09-17 12:28:10 +02:00
parent eb913b2742
commit 88451116e8

View File

@ -3,6 +3,8 @@
from urllib.parse import urlparse, urlunparse, parse_qs, ParseResultBytes from urllib.parse import urlparse, urlunparse, parse_qs, ParseResultBytes
from os.path import isdir, isfile, basename, join from os.path import isdir, isfile, basename, join
import sys
from obitools3.dms.dms import DMS from obitools3.dms.dms import DMS
from obitools3.parsers.fasta import fastaNucIterator from obitools3.parsers.fasta import fastaNucIterator
@ -224,33 +226,34 @@ def open_uri(uri,
type(dms[1]), type(dms[1]),
urlunparse(urip), urlunparse(urip),
len(dms[0])) len(dms[0]))
try: if dms[1]:
resource=open_dms_element(dms[0], try:
dms[1], resource=open_dms_element(dms[0],
create, dms[1],
newviewtype) create,
newviewtype)
scheme=b"dms" scheme=b"dms"
urip = ParseResultBytes(scheme=b"dms", urip = ParseResultBytes(scheme=b"dms",
netloc=urip.netloc, netloc=urip.netloc,
path=urip.path, path=urip.path,
params=urip.params, params=urip.params,
query=urip.query, query=urip.query,
fragment=urip.fragment) fragment=urip.fragment)
if default_dms is None: if default_dms is None:
config["obi"]["defaultdms"]=resource[0] config["obi"]["defaultdms"]=resource[0]
return (resource[0], return (resource[0],
resource[1], resource[1],
type(resource[1]), type(resource[1]),
urlunparse(urip), urlunparse(urip),
len(resource[1])) len(resource[1]))
except Exception as e: except Exception as e:
global obi_errno global obi_errno
if obi_errno == OBIVIEW_ALREADY_EXISTS_ERROR: if obi_errno == OBIVIEW_ALREADY_EXISTS_ERROR:
raise Exception("View name already exists in this DMS") raise Exception("View name already exists in this DMS")
error=e error=e
if scheme==b"dms" : if scheme==b"dms" :
logger('Error','Could not open DMS URI: %s', uri) logger('Error','Could not open DMS URI: %s', uri)
@ -268,7 +271,10 @@ def open_uri(uri,
iseq = urib iseq = urib
objclass = bytes objclass = bytes
else: # TODO update uopen to be able to write? else: # TODO update uopen to be able to write?
file = open(urip.path, 'wb') if urip.path:
file = open(urip.path, 'wb')
else:
file = sys.stdout.buffer
if file is not None: if file is not None:
qualifiers=parse_qs(urip.query) qualifiers=parse_qs(urip.query)