mirror of
https://github.com/evennia/evennia.git
synced 2026-03-16 21:06:30 +01:00
Update list_to_string to handle generators. Resolve #2120
This commit is contained in:
parent
c8b056d06d
commit
a848960819
2 changed files with 20 additions and 10 deletions
|
|
@ -58,6 +58,9 @@ without arguments starts a full interactive Python console.
|
|||
required by Django.
|
||||
- Fixes to `spawn`, make updating an existing prototype/object work better. Add `/raw` switch
|
||||
to `spawn` command to extract the raw prototype dict for manual editing.
|
||||
- `list_to_string` is now `iter_to_string` (but old name still works as legacy alias). It will
|
||||
now accept any input, including generators and single values.
|
||||
|
||||
|
||||
|
||||
## Evennia 0.9 (2018-2019)
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ be of use when designing your own game.
|
|||
import os
|
||||
import gc
|
||||
import sys
|
||||
import copy
|
||||
import types
|
||||
import math
|
||||
import re
|
||||
|
|
@ -342,14 +343,16 @@ def columnize(string, columns=2, spacing=4, align="l", width=None):
|
|||
return "\n".join(rows)
|
||||
|
||||
|
||||
def list_to_string(inlist, endsep="and", addquote=False):
|
||||
def iter_to_string(initer, endsep="and", addquote=False):
|
||||
"""
|
||||
This pretty-formats a list as string output, adding an optional
|
||||
This pretty-formats an iterable list as string output, adding an optional
|
||||
alternative separator to the second to last entry. If `addquote`
|
||||
is `True`, the outgoing strings will be surrounded by quotes.
|
||||
|
||||
Args:
|
||||
inlist (list): The list to print.
|
||||
initer (any): Usually an iterable to print. Each element must be possible to
|
||||
present with a string. Note that if this is a generator, it will be
|
||||
consumed by this operation.
|
||||
endsep (str, optional): If set, the last item separator will
|
||||
be replaced with this value.
|
||||
addquote (bool, optional): This will surround all outgoing
|
||||
|
|
@ -374,16 +377,20 @@ def list_to_string(inlist, endsep="and", addquote=False):
|
|||
endsep = ","
|
||||
else:
|
||||
endsep = " " + endsep
|
||||
if not inlist:
|
||||
if not initer:
|
||||
return ""
|
||||
initer = tuple(str(val) for val in make_iter(initer))
|
||||
if addquote:
|
||||
if len(inlist) == 1:
|
||||
return '"%s"' % inlist[0]
|
||||
return ", ".join('"%s"' % v for v in inlist[:-1]) + "%s %s" % (endsep, '"%s"' % inlist[-1])
|
||||
if len(initer) == 1:
|
||||
return '"%s"' % initer[0]
|
||||
return ", ".join('"%s"' % v for v in initer[:-1]) + "%s %s" % (endsep, '"%s"' % initer[-1])
|
||||
else:
|
||||
if len(inlist) == 1:
|
||||
return str(inlist[0])
|
||||
return ", ".join(str(v) for v in inlist[:-1]) + "%s %s" % (endsep, inlist[-1])
|
||||
if len(initer) == 1:
|
||||
return str(initer[0])
|
||||
return ", ".join(str(v) for v in initer[:-1]) + "%s %s" % (endsep, initer[-1])
|
||||
|
||||
# legacy alias
|
||||
list_to_string = iter_to_string
|
||||
|
||||
|
||||
def wildcard_to_regexp(instring):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue