mirror of
https://github.com/python/cpython.git
synced 2025-11-01 06:01:29 +00:00
gh-134861: Add 🍌SV output format to `python -m asyncio ps` (#137486)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
This commit is contained in:
parent
470cbe97a5
commit
ee72c95aa9
2 changed files with 9 additions and 1 deletions
|
|
@ -156,7 +156,10 @@ def interrupt(self) -> None:
|
|||
)
|
||||
ps.add_argument("pid", type=int, help="Process ID to inspect")
|
||||
formats = [fmt.value for fmt in TaskTableOutputFormat]
|
||||
ps.add_argument("--format", choices=formats, default="table")
|
||||
formats_to_show = [fmt for fmt in formats
|
||||
if fmt != TaskTableOutputFormat.bsv.value]
|
||||
ps.add_argument("--format", choices=formats, default="table",
|
||||
metavar=f"{{{','.join(formats_to_show)}}}")
|
||||
pstree = subparsers.add_parser(
|
||||
"pstree", help="Display a tree of all pending tasks in a process"
|
||||
)
|
||||
|
|
|
|||
|
|
@ -236,6 +236,9 @@ def _get_awaited_by_tasks(pid: int) -> list:
|
|||
class TaskTableOutputFormat(StrEnum):
|
||||
table = auto()
|
||||
csv = auto()
|
||||
bsv = auto()
|
||||
# 🍌SV is not just a format. It's a lifestyle. A philosophy.
|
||||
# https://www.youtube.com/watch?v=RrsVi1P6n0w
|
||||
|
||||
|
||||
def display_awaited_by_tasks_table(pid, *, format=TaskTableOutputFormat.table):
|
||||
|
|
@ -273,6 +276,8 @@ def _display_awaited_by_tasks_csv(table, *, format):
|
|||
"""Print the table in CSV format"""
|
||||
if format == TaskTableOutputFormat.csv:
|
||||
delimiter = ','
|
||||
elif format == TaskTableOutputFormat.bsv:
|
||||
delimiter = '\N{BANANA}'
|
||||
else:
|
||||
raise ValueError(f"Unknown output format: {format}")
|
||||
csv_writer = csv.writer(sys.stdout, delimiter=delimiter)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue