On 12 ago, 03:10, Aaron Meurer <asmeu...@gmail.com> wrote: > Unfortunately, it seems it is not possible to supply a custom terminal > width. It would be great to add this as a setting to PrettyPrinter. > It would flow through to the render() function in that file you > mentioned, and would override the value calculated from > terminal_width() (the default setting would be None, which would do > what it does now).
Hi Aaron Meurer, I think I have succeeded with the following changes to add a "num_columns" setting (with default None so it reads the terminal width) to "init_printing" and "pretty"/"pretty_print"/"pprint" : file "interactive/printing.py" : Function init_printing, line 64 before : def init_printing(pretty_print=True, order=None, use_unicode=None, wrap_line=None, no_global=False, ip=None): after : def init_printing(pretty_print=True, order=None, use_unicode=None, wrap_line=None, num_columns=None, no_global=False, ip=None): Function init_printing, line 79 before : stringify_func = lambda expr: _stringify_func(expr, order=order, use_unicode=use_unicode, wrap_line=wrap_line) after : stringify_func = lambda expr: _stringify_func(expr, order=order, use_unicode=use_unicode, wrap_line=wrap_line, num_columns=num_columns) printing/pretty/pretty.py : Inside class PrettyPrinter(Printer), line 25-26 before : "wrap_line": True, } after : "wrap_line": True, "num_columns": None } Inside function pretty(expr, **settings), line 1166 before : wrap_line: line wrapping enabled/disabled, should be a boolean value (default to True) after : wrap_line: line wrapping enabled/disabled, should be a boolean value (default to True) num_columns: number of columns before line breaking (default to None which reads the terminal width), it is useful when using SymPy without terminal. printing/pretty/stringpict.py : Inside function render(self, * args, **kwargs), line 244 before : # Attempt to get a terminal width ncols = self.terminal_width() after : if (kwargs["num_columns"] is not None) and (isinstance(kwargs["num_columns"], int)): # Read the argument num_columns if it is an integer number ncols = kwargs["num_columns"] else: # Attempt to get a terminal width ncols = self.terminal_width() What do you think ? About the name of the setting (num_columns) and the implementation above ? So "pretty_print(expr, num_columns=40)" sets the pretty printing output to 40 columns. > If you could implement this, it would be great. We can help you with > the patch. Do you already know how to use git? We have an extensive > guide on all aspects of patch submission > athttps://github.com/sympy/sympy/wiki/Development-workflow#wiki-how-to-... > if you need guidance (or just ask us here). If everything above is ok (I want to hear the opinions from the SymPy community), the I will try to submit using git (for the 1st time...). Roberto Colistete Jr. -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.