99from shutil import get_terminal_size
1010from textwrap import TextWrapper , indent
1111
12+ from rich .columns import Columns
13+ from rich .console import Console
14+
1215from . import __version__ , phyvars
1316from ._helpers import baredoc , walk
1417from .config import CONFIG_LOCAL , Config
@@ -102,11 +105,15 @@ def _pretty_print(
102105def _layout (
103106 dict_vars : Mapping [str , Varf | Varr | Vart ],
104107 dict_vars_extra : Mapping [str , Callable ],
105- ) -> None :
108+ ) -> Columns :
106109 """Print nicely [(var, description)] from phyvars."""
107110 desc = [(v , m .description ) for v , m in dict_vars .items ()]
108111 desc .extend ((v , baredoc (m )) for v , m in dict_vars_extra .items ())
109- _pretty_print (desc , min_col_width = 26 )
112+ return Columns (
113+ renderables = (f"{ var } : [dim]{ descr } [/dim]" for var , descr in desc ),
114+ padding = (0 , 2 ),
115+ column_first = True ,
116+ )
110117
111118
112119def var_cmd (conf : Config ) -> None :
@@ -115,27 +122,28 @@ def var_cmd(conf: Config) -> None:
115122 See [stagpy.phyvars][] where the lists of variables organized by command
116123 are defined.
117124 """
125+ console = Console ()
118126 print_all = not any (getattr (conf .var , fld .name ) for fld in fields (conf .var ))
119127 if print_all or conf .var .field :
120- print ( "field: " )
121- _layout (phyvars .FIELD , phyvars .FIELD_EXTRA )
122- print ()
128+ console . rule ( "fields" , style = "magenta " )
129+ console . print ( _layout (phyvars .FIELD , phyvars .FIELD_EXTRA ) )
130+ console . print ()
123131 if print_all or conf .var .sfield :
124- print ("surface field: " )
125- _layout (phyvars .SFIELD , {})
126- print ()
132+ console . rule ("surface fields" , style = "magenta " )
133+ console . print ( _layout (phyvars .SFIELD , {}) )
134+ console . print ()
127135 if print_all or conf .var .rprof :
128- print ( "rprof: " )
129- _layout (phyvars .RPROF , phyvars .RPROF_EXTRA )
130- print ()
136+ console . rule ( "radial profiles" , style = "magenta " )
137+ console . print ( _layout (phyvars .RPROF , phyvars .RPROF_EXTRA ) )
138+ console . print ()
131139 if print_all or conf .var .time :
132- print ("time: " )
133- _layout (phyvars .TIME , phyvars .TIME_EXTRA )
134- print ()
140+ console . rule ("time series" , style = "magenta " )
141+ console . print ( _layout (phyvars .TIME , phyvars .TIME_EXTRA ) )
142+ console . print ()
135143 if print_all or conf .var .refstate :
136- print ("refstate: " )
137- _layout (phyvars .REFSTATE , {})
138- print ()
144+ console . rule ("refstate" , style = "magenta " )
145+ console . print ( _layout (phyvars .REFSTATE , {}) )
146+ console . print ()
139147
140148
141149def version_cmd (conf : Config ) -> None :
0 commit comments