On Tue, Jul 07, 2020 at 08:51:31AM +0300, Sam Eiderman wrote:
Notice that I have added the closing bracket and return type hint
into
the indentation function as a hack to line wrap correctly when the
return type hint is causing > 79 chars per line:
So that instead of:
def btrfs_subvolume_create(self, dest: str, qgroupid:
Optional[str] = None) -> None:
We correctly get:
def btrfs_subvolume_create(self, dest: str,
qgroupid: Optional[str] = None) -> None:
Since the indent function looks for a comma to wrap - this works nicely.
However there is this one case where we use the Tuple hint, which
contains a comma in itself and causes the following weird line
wrapping:
def btrfs_subvolume_show(self, subvolume: str) -> Union[List[Tuple[str,
str]], dict]:
def inspect_get_drive_mappings(self, root: str) -> Union[List[Tuple[str,
str]], dict]:
def inspect_get_mountpoints(self, root: str) -> Union[List[Tuple[str,
str]], dict]:
In my opinion it is okay, pep8 complains about this and actually
requires either:
Option A
def btrfs_subvolume_show(self, subvolume: str) -> Union[List[Tuple[str,
str]],
dict]:
pass
Which has a more complicated nesting scheme and will require the
indentation function to work more intelligently
Option B
def btrfs_subvolume_show(self,
subvolume: str) -> Union[List[Tuple[str, str]],
dict]:
pass
Still requires intelligent wrapping
Option C
def btrfs_subvolume_show(
self, subvolume: str
) -> Union[List[Tuple[str, str]], dict]:
This option is easy to implement, just change the amount of
indentation required (9 + function name) to 8 and begin args on
newline, however in most cases this will make the all other 500
function signatures longer.
WDYT?
I'm not massively concerned about generated code. It should be
possible for humans to follow it and we tend to format it as nicely as
is feasible, but a bit of line wrapping isn't the end of the world.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
virt-top is 'top' for virtual machines. Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://people.redhat.com/~rjones/virt-top