pyulib: ajouter l'argument nocopy=False à seqof() pour éviter des bugs subtils
This commit is contained in:
parent
11b87fdfd1
commit
27a2ab0c01
|
@ -249,13 +249,17 @@ def isseq(t):
|
||||||
"""Tester si t est une séquence (list ou tuple)
|
"""Tester si t est une séquence (list ou tuple)
|
||||||
"""
|
"""
|
||||||
return isinstance(t, list) or isinstance(t, tuple)
|
return isinstance(t, list) or isinstance(t, tuple)
|
||||||
def seqof(seq, seq_if_None=None):
|
def seqof(seq, seq_if_None=None, nocopy=False):
|
||||||
"""Retourner une séquence.
|
"""Retourner une séquence.
|
||||||
Si seq est une séquence, retourner l'objet lui-même.
|
Si seq est une séquence, retourner une copie de l'objet si nocopy==False,
|
||||||
|
sinon l'objet lui-même.
|
||||||
Si seq==None et que seq_if_None!=None, retourner seq_if_None.
|
Si seq==None et que seq_if_None!=None, retourner seq_if_None.
|
||||||
Sinon, retourner une liste ayant un seul élément, seq.
|
Sinon, retourner une liste ayant un seul élément, seq.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
if isseq(seq): return seq
|
if isseq(seq):
|
||||||
|
if nocopy: return seq
|
||||||
|
else: return seq[:]
|
||||||
elif seq is None and seq_if_None is not None:
|
elif seq is None and seq_if_None is not None:
|
||||||
if not isseq(seq_if_None): seq_if_None = [seq_if_None]
|
if not isseq(seq_if_None): seq_if_None = [seq_if_None]
|
||||||
return seq_if_None
|
return seq_if_None
|
||||||
|
|
Loading…
Reference in New Issue