mirror of
https://github.com/django/django.git
synced 2025-10-26 07:06:08 +00:00
Fixed #5423 -- Made dumpdata output one row at a time.
This should prevent storing all rows in memory when big sets of data are dumped. See ticket for heroic contributors.
This commit is contained in:
@@ -49,23 +49,23 @@ class OutputWrapper(object):
|
||||
"""
|
||||
Wrapper around stdout/stderr
|
||||
"""
|
||||
def __init__(self, out, style_func=None):
|
||||
def __init__(self, out, style_func=None, ending='\n'):
|
||||
self._out = out
|
||||
self.style_func = None
|
||||
if hasattr(out, 'isatty') and out.isatty():
|
||||
self.style_func = style_func
|
||||
self.ending = ending
|
||||
|
||||
def __getattr__(self, name):
|
||||
return getattr(self._out, name)
|
||||
|
||||
def write(self, msg, style_func=None, ending='\n'):
|
||||
def write(self, msg, style_func=None, ending=None):
|
||||
ending = ending is None and self.ending or ending
|
||||
if ending and not msg.endswith(ending):
|
||||
msg += ending
|
||||
if style_func is not None:
|
||||
msg = style_func(msg)
|
||||
elif self.style_func is not None:
|
||||
msg = self.style_func(msg)
|
||||
self._out.write(smart_str(msg))
|
||||
style_func = [f for f in (style_func, self.style_func, lambda x:x)
|
||||
if f is not None][0]
|
||||
self._out.write(smart_str(style_func(msg)))
|
||||
|
||||
|
||||
class BaseCommand(object):
|
||||
|
||||
Reference in New Issue
Block a user