Method: rich._inspect.Inspect._render
Calls: 16, Exceptions: 0, Paths: 11Back
Path 1: 5 calls (0.31)
Text (5) '' (5) Table (5) None (5)
1def _render(self) -> Iterable[RenderableType]:
2 """Render object."""
3
4 def sort_items(item: Tuple[str, Any]) -> Tuple[bool, str]:
5 key, (_error, value) = item
6 return (callable(value), key.strip("_").lower())
7
8 def safe_getattr(attr_name: str) -> Tuple[Any, Any]:
9 """Get attribute or any exception."""
10 try:
11 return (None, getattr(obj, attr_name))
12 except Exception as error:
13 return (error, None)
14
15 obj = self.obj
16 keys = dir(obj)
17 total_items = len(keys)
18 if not self.dunder:
19 keys = [key for key in keys if not key.startswith("__")]
20 if not self.private:
21 keys = [key for key in keys if not key.startswith("_")]
22 not_shown_count = total_items - len(keys)
23 items = [(key, safe_getattr(key)) for key in keys]
24 if self.sort:
25 items.sort(key=sort_items)
26
27 items_table = Table.grid(padding=(0, 1), expand=False)
28 items_table.add_column(justify="right")
29 add_row = items_table.add_row
30 highlighter = self.highlighter
31
32 if callable(obj):
33 signature = self._get_signature("", obj)
34 if signature is not None:
35 yield signature
36 yield ""
37
38 if self.docs:
39 _doc = self._get_formatted_doc(obj)
40 if _doc is not None:
41 doc_text = Text(_doc, style="inspect.help")
42 doc_text = highlighter(doc_text)
43 yield doc_text
44 yield ""
45
46 if self.value and not (isclass(obj) or callable(obj) or ismodule(obj)):
47 yield Panel(
48 Pretty(obj, indent_guides=True, max_length=10, max_string=60),
49 border_style="inspect.value.border",
50 )
51 yield ""
52
53 for key, (error, value) in items:
54 key_text = Text.assemble(
55 (
56 key,
57 "inspect.attr.dunder" if key.startswith("__") else "inspect.attr",
58 ),
59 (" =", "inspect.equals"),
60 )
61 if error is not None:
62 warning = key_text.copy()
63 warning.stylize("inspect.error")
64 add_row(warning, highlighter(repr(error)))
65 continue
66
67 if callable(value):
68 if not self.methods:
69 continue
70
71 _signature_text = self._get_signature(key, value)
72 if _signature_text is None:
73 add_row(key_text, Pretty(value, highlighter=highlighter))
74 else:
75 if self.docs:
76 docs = self._get_formatted_doc(value)
77 if docs is not None:
78 _signature_text.append("\n" if "\n" in docs else " ")
79 doc = highlighter(docs)
80 doc.stylize("inspect.doc")
81 _signature_text.append(doc)
82
83 add_row(key_text, _signature_text)
84 else:
85 add_row(key_text, Pretty(value, highlighter=highlighter))
86 if items_table.row_count:
87 yield items_table
88 elif not_shown_count:
89 yield Text.from_markup(
90 f"[b cyan]{not_shown_count}[/][i] attribute(s) not shown.[/i] "
91 f"Run [b][magenta]inspect[/]([not b]inspect[/])[/b] for options."
92 )
Path 2: 2 calls (0.12)
Text (4) '' (2) None (2)
1def _render(self) -> Iterable[RenderableType]:
2 """Render object."""
3
4 def sort_items(item: Tuple[str, Any]) -> Tuple[bool, str]:
5 key, (_error, value) = item
6 return (callable(value), key.strip("_").lower())
7
8 def safe_getattr(attr_name: str) -> Tuple[Any, Any]:
9 """Get attribute or any exception."""
10 try:
11 return (None, getattr(obj, attr_name))
12 except Exception as error:
13 return (error, None)
14
15 obj = self.obj
16 keys = dir(obj)
17 total_items = len(keys)
18 if not self.dunder:
19 keys = [key for key in keys if not key.startswith("__")]
20 if not self.private:
21 keys = [key for key in keys if not key.startswith("_")]
22 not_shown_count = total_items - len(keys)
23 items = [(key, safe_getattr(key)) for key in keys]
24 if self.sort:
25 items.sort(key=sort_items)
26
27 items_table = Table.grid(padding=(0, 1), expand=False)
28 items_table.add_column(justify="right")
29 add_row = items_table.add_row
30 highlighter = self.highlighter
31
32 if callable(obj):
33 signature = self._get_signature("", obj)
34 if signature is not None:
35 yield signature
36 yield ""
37
38 if self.docs:
39 _doc = self._get_formatted_doc(obj)
40 if _doc is not None:
41 doc_text = Text(_doc, style="inspect.help")
42 doc_text = highlighter(doc_text)
43 yield doc_text
44 yield ""
45
46 if self.value and not (isclass(obj) or callable(obj) or ismodule(obj)):
47 yield Panel(
48 Pretty(obj, indent_guides=True, max_length=10, max_string=60),
49 border_style="inspect.value.border",
50 )
51 yield ""
52
53 for key, (error, value) in items:
54 key_text = Text.assemble(
55 (
56 key,
57 "inspect.attr.dunder" if key.startswith("__") else "inspect.attr",
58 ),
59 (" =", "inspect.equals"),
60 )
61 if error is not None:
62 warning = key_text.copy()
63 warning.stylize("inspect.error")
64 add_row(warning, highlighter(repr(error)))
65 continue
66
67 if callable(value):
68 if not self.methods:
69 continue
70
71 _signature_text = self._get_signature(key, value)
72 if _signature_text is None:
73 add_row(key_text, Pretty(value, highlighter=highlighter))
74 else:
75 if self.docs:
76 docs = self._get_formatted_doc(value)
77 if docs is not None:
78 _signature_text.append("\n" if "\n" in docs else " ")
79 doc = highlighter(docs)
80 doc.stylize("inspect.doc")
81 _signature_text.append(doc)
82
83 add_row(key_text, _signature_text)
84 else:
85 add_row(key_text, Pretty(value, highlighter=highlighter))
86 if items_table.row_count:
87 yield items_table
88 elif not_shown_count:
89 yield Text.from_markup(
90 f"[b cyan]{not_shown_count}[/][i] attribute(s) not shown.[/i] "
91 f"Run [b][magenta]inspect[/]([not b]inspect[/])[/b] for options."
92 )
Path 3: 1 calls (0.06)
Text (1) '' (1) Table (1) None (1)
1def _render(self) -> Iterable[RenderableType]:
2 """Render object."""
3
4 def sort_items(item: Tuple[str, Any]) -> Tuple[bool, str]:
5 key, (_error, value) = item
6 return (callable(value), key.strip("_").lower())
7
8 def safe_getattr(attr_name: str) -> Tuple[Any, Any]:
9 """Get attribute or any exception."""
10 try:
11 return (None, getattr(obj, attr_name))
12 except Exception as error:
13 return (error, None)
14
15 obj = self.obj
16 keys = dir(obj)
17 total_items = len(keys)
18 if not self.dunder:
19 keys = [key for key in keys if not key.startswith("__")]
20 if not self.private:
21 keys = [key for key in keys if not key.startswith("_")]
22 not_shown_count = total_items - len(keys)
23 items = [(key, safe_getattr(key)) for key in keys]
24 if self.sort:
25 items.sort(key=sort_items)
26
27 items_table = Table.grid(padding=(0, 1), expand=False)
28 items_table.add_column(justify="right")
29 add_row = items_table.add_row
30 highlighter = self.highlighter
31
32 if callable(obj):
33 signature = self._get_signature("", obj)
34 if signature is not None:
35 yield signature
36 yield ""
37
38 if self.docs:
39 _doc = self._get_formatted_doc(obj)
40 if _doc is not None:
41 doc_text = Text(_doc, style="inspect.help")
42 doc_text = highlighter(doc_text)
43 yield doc_text
44 yield ""
45
46 if self.value and not (isclass(obj) or callable(obj) or ismodule(obj)):
47 yield Panel(
48 Pretty(obj, indent_guides=True, max_length=10, max_string=60),
49 border_style="inspect.value.border",
50 )
51 yield ""
52
53 for key, (error, value) in items:
54 key_text = Text.assemble(
55 (
56 key,
57 "inspect.attr.dunder" if key.startswith("__") else "inspect.attr",
58 ),
59 (" =", "inspect.equals"),
60 )
61 if error is not None:
62 warning = key_text.copy()
63 warning.stylize("inspect.error")
64 add_row(warning, highlighter(repr(error)))
65 continue
66
67 if callable(value):
68 if not self.methods:
69 continue
70
71 _signature_text = self._get_signature(key, value)
72 if _signature_text is None:
73 add_row(key_text, Pretty(value, highlighter=highlighter))
74 else:
75 if self.docs:
76 docs = self._get_formatted_doc(value)
77 if docs is not None:
78 _signature_text.append("\n" if "\n" in docs else " ")
79 doc = highlighter(docs)
80 doc.stylize("inspect.doc")
81 _signature_text.append(doc)
82
83 add_row(key_text, _signature_text)
84 else:
85 add_row(key_text, Pretty(value, highlighter=highlighter))
86 if items_table.row_count:
87 yield items_table
88 elif not_shown_count:
89 yield Text.from_markup(
90 f"[b cyan]{not_shown_count}[/][i] attribute(s) not shown.[/i] "
91 f"Run [b][magenta]inspect[/]([not b]inspect[/])[/b] for options."
92 )
Path 4: 1 calls (0.06)
Text (3) '' (2) None (1)
1def _render(self) -> Iterable[RenderableType]:
2 """Render object."""
3
4 def sort_items(item: Tuple[str, Any]) -> Tuple[bool, str]:
5 key, (_error, value) = item
6 return (callable(value), key.strip("_").lower())
7
8 def safe_getattr(attr_name: str) -> Tuple[Any, Any]:
9 """Get attribute or any exception."""
10 try:
11 return (None, getattr(obj, attr_name))
12 except Exception as error:
13 return (error, None)
14
15 obj = self.obj
16 keys = dir(obj)
17 total_items = len(keys)
18 if not self.dunder:
19 keys = [key for key in keys if not key.startswith("__")]
20 if not self.private:
21 keys = [key for key in keys if not key.startswith("_")]
22 not_shown_count = total_items - len(keys)
23 items = [(key, safe_getattr(key)) for key in keys]
24 if self.sort:
25 items.sort(key=sort_items)
26
27 items_table = Table.grid(padding=(0, 1), expand=False)
28 items_table.add_column(justify="right")
29 add_row = items_table.add_row
30 highlighter = self.highlighter
31
32 if callable(obj):
33 signature = self._get_signature("", obj)
34 if signature is not None:
35 yield signature
36 yield ""
37
38 if self.docs:
39 _doc = self._get_formatted_doc(obj)
40 if _doc is not None:
41 doc_text = Text(_doc, style="inspect.help")
42 doc_text = highlighter(doc_text)
43 yield doc_text
44 yield ""
45
46 if self.value and not (isclass(obj) or callable(obj) or ismodule(obj)):
47 yield Panel(
48 Pretty(obj, indent_guides=True, max_length=10, max_string=60),
49 border_style="inspect.value.border",
50 )
51 yield ""
52
53 for key, (error, value) in items:
54 key_text = Text.assemble(
55 (
56 key,
57 "inspect.attr.dunder" if key.startswith("__") else "inspect.attr",
58 ),
59 (" =", "inspect.equals"),
60 )
61 if error is not None:
62 warning = key_text.copy()
63 warning.stylize("inspect.error")
64 add_row(warning, highlighter(repr(error)))
65 continue
66
67 if callable(value):
68 if not self.methods:
69 continue
70
71 _signature_text = self._get_signature(key, value)
72 if _signature_text is None:
73 add_row(key_text, Pretty(value, highlighter=highlighter))
74 else:
75 if self.docs:
76 docs = self._get_formatted_doc(value)
77 if docs is not None:
78 _signature_text.append("\n" if "\n" in docs else " ")
79 doc = highlighter(docs)
80 doc.stylize("inspect.doc")
81 _signature_text.append(doc)
82
83 add_row(key_text, _signature_text)
84 else:
85 add_row(key_text, Pretty(value, highlighter=highlighter))
86 if items_table.row_count:
87 yield items_table
88 elif not_shown_count:
89 yield Text.from_markup(
90 f"[b cyan]{not_shown_count}[/][i] attribute(s) not shown.[/i] "
91 f"Run [b][magenta]inspect[/]([not b]inspect[/])[/b] for options."
92 )
Path 5: 1 calls (0.06)
Text (2) '' (1) None (1)
1def _render(self) -> Iterable[RenderableType]:
2 """Render object."""
3
4 def sort_items(item: Tuple[str, Any]) -> Tuple[bool, str]:
5 key, (_error, value) = item
6 return (callable(value), key.strip("_").lower())
7
8 def safe_getattr(attr_name: str) -> Tuple[Any, Any]:
9 """Get attribute or any exception."""
10 try:
11 return (None, getattr(obj, attr_name))
12 except Exception as error:
13 return (error, None)
14
15 obj = self.obj
16 keys = dir(obj)
17 total_items = len(keys)
18 if not self.dunder:
19 keys = [key for key in keys if not key.startswith("__")]
20 if not self.private:
21 keys = [key for key in keys if not key.startswith("_")]
22 not_shown_count = total_items - len(keys)
23 items = [(key, safe_getattr(key)) for key in keys]
24 if self.sort:
25 items.sort(key=sort_items)
26
27 items_table = Table.grid(padding=(0, 1), expand=False)
28 items_table.add_column(justify="right")
29 add_row = items_table.add_row
30 highlighter = self.highlighter
31
32 if callable(obj):
33 signature = self._get_signature("", obj)
34 if signature is not None:
35 yield signature
36 yield ""
37
38 if self.docs:
39 _doc = self._get_formatted_doc(obj)
40 if _doc is not None:
41 doc_text = Text(_doc, style="inspect.help")
42 doc_text = highlighter(doc_text)
43 yield doc_text
44 yield ""
45
46 if self.value and not (isclass(obj) or callable(obj) or ismodule(obj)):
47 yield Panel(
48 Pretty(obj, indent_guides=True, max_length=10, max_string=60),
49 border_style="inspect.value.border",
50 )
51 yield ""
52
53 for key, (error, value) in items:
54 key_text = Text.assemble(
55 (
56 key,
57 "inspect.attr.dunder" if key.startswith("__") else "inspect.attr",
58 ),
59 (" =", "inspect.equals"),
60 )
61 if error is not None:
62 warning = key_text.copy()
63 warning.stylize("inspect.error")
64 add_row(warning, highlighter(repr(error)))
65 continue
66
67 if callable(value):
68 if not self.methods:
69 continue
70
71 _signature_text = self._get_signature(key, value)
72 if _signature_text is None:
73 add_row(key_text, Pretty(value, highlighter=highlighter))
74 else:
75 if self.docs:
76 docs = self._get_formatted_doc(value)
77 if docs is not None:
78 _signature_text.append("\n" if "\n" in docs else " ")
79 doc = highlighter(docs)
80 doc.stylize("inspect.doc")
81 _signature_text.append(doc)
82
83 add_row(key_text, _signature_text)
84 else:
85 add_row(key_text, Pretty(value, highlighter=highlighter))
86 if items_table.row_count:
87 yield items_table
88 elif not_shown_count:
89 yield Text.from_markup(
90 f"[b cyan]{not_shown_count}[/][i] attribute(s) not shown.[/i] "
91 f"Run [b][magenta]inspect[/]([not b]inspect[/])[/b] for options."
92 )
Path 6: 1 calls (0.06)
Text (1) '' (1) Table (1) None (1)
1def _render(self) -> Iterable[RenderableType]:
2 """Render object."""
3
4 def sort_items(item: Tuple[str, Any]) -> Tuple[bool, str]:
5 key, (_error, value) = item
6 return (callable(value), key.strip("_").lower())
7
8 def safe_getattr(attr_name: str) -> Tuple[Any, Any]:
9 """Get attribute or any exception."""
10 try:
11 return (None, getattr(obj, attr_name))
12 except Exception as error:
13 return (error, None)
14
15 obj = self.obj
16 keys = dir(obj)
17 total_items = len(keys)
18 if not self.dunder:
19 keys = [key for key in keys if not key.startswith("__")]
20 if not self.private:
21 keys = [key for key in keys if not key.startswith("_")]
22 not_shown_count = total_items - len(keys)
23 items = [(key, safe_getattr(key)) for key in keys]
24 if self.sort:
25 items.sort(key=sort_items)
26
27 items_table = Table.grid(padding=(0, 1), expand=False)
28 items_table.add_column(justify="right")
29 add_row = items_table.add_row
30 highlighter = self.highlighter
31
32 if callable(obj):
33 signature = self._get_signature("", obj)
34 if signature is not None:
35 yield signature
36 yield ""
37
38 if self.docs:
39 _doc = self._get_formatted_doc(obj)
40 if _doc is not None:
41 doc_text = Text(_doc, style="inspect.help")
42 doc_text = highlighter(doc_text)
43 yield doc_text
44 yield ""
45
46 if self.value and not (isclass(obj) or callable(obj) or ismodule(obj)):
47 yield Panel(
48 Pretty(obj, indent_guides=True, max_length=10, max_string=60),
49 border_style="inspect.value.border",
50 )
51 yield ""
52
53 for key, (error, value) in items:
54 key_text = Text.assemble(
55 (
56 key,
57 "inspect.attr.dunder" if key.startswith("__") else "inspect.attr",
58 ),
59 (" =", "inspect.equals"),
60 )
61 if error is not None:
62 warning = key_text.copy()
63 warning.stylize("inspect.error")
64 add_row(warning, highlighter(repr(error)))
65 continue
66
67 if callable(value):
68 if not self.methods:
69 continue
70
71 _signature_text = self._get_signature(key, value)
72 if _signature_text is None:
73 add_row(key_text, Pretty(value, highlighter=highlighter))
74 else:
75 if self.docs:
76 docs = self._get_formatted_doc(value)
77 if docs is not None:
78 _signature_text.append("\n" if "\n" in docs else " ")
79 doc = highlighter(docs)
80 doc.stylize("inspect.doc")
81 _signature_text.append(doc)
82
83 add_row(key_text, _signature_text)
84 else:
85 add_row(key_text, Pretty(value, highlighter=highlighter))
86 if items_table.row_count:
87 yield items_table
88 elif not_shown_count:
89 yield Text.from_markup(
90 f"[b cyan]{not_shown_count}[/][i] attribute(s) not shown.[/i] "
91 f"Run [b][magenta]inspect[/]([not b]inspect[/])[/b] for options."
92 )
Path 7: 1 calls (0.06)
'' (2) Text (1) Panel (1) Table (1) None (1)
1def _render(self) -> Iterable[RenderableType]:
2 """Render object."""
3
4 def sort_items(item: Tuple[str, Any]) -> Tuple[bool, str]:
5 key, (_error, value) = item
6 return (callable(value), key.strip("_").lower())
7
8 def safe_getattr(attr_name: str) -> Tuple[Any, Any]:
9 """Get attribute or any exception."""
10 try:
11 return (None, getattr(obj, attr_name))
12 except Exception as error:
13 return (error, None)
14
15 obj = self.obj
16 keys = dir(obj)
17 total_items = len(keys)
18 if not self.dunder:
19 keys = [key for key in keys if not key.startswith("__")]
20 if not self.private:
21 keys = [key for key in keys if not key.startswith("_")]
22 not_shown_count = total_items - len(keys)
23 items = [(key, safe_getattr(key)) for key in keys]
24 if self.sort:
25 items.sort(key=sort_items)
26
27 items_table = Table.grid(padding=(0, 1), expand=False)
28 items_table.add_column(justify="right")
29 add_row = items_table.add_row
30 highlighter = self.highlighter
31
32 if callable(obj):
33 signature = self._get_signature("", obj)
34 if signature is not None:
35 yield signature
36 yield ""
37
38 if self.docs:
39 _doc = self._get_formatted_doc(obj)
40 if _doc is not None:
41 doc_text = Text(_doc, style="inspect.help")
42 doc_text = highlighter(doc_text)
43 yield doc_text
44 yield ""
45
46 if self.value and not (isclass(obj) or callable(obj) or ismodule(obj)):
47 yield Panel(
48 Pretty(obj, indent_guides=True, max_length=10, max_string=60),
49 border_style="inspect.value.border",
50 )
51 yield ""
52
53 for key, (error, value) in items:
54 key_text = Text.assemble(
55 (
56 key,
57 "inspect.attr.dunder" if key.startswith("__") else "inspect.attr",
58 ),
59 (" =", "inspect.equals"),
60 )
61 if error is not None:
62 warning = key_text.copy()
63 warning.stylize("inspect.error")
64 add_row(warning, highlighter(repr(error)))
65 continue
66
67 if callable(value):
68 if not self.methods:
69 continue
70
71 _signature_text = self._get_signature(key, value)
72 if _signature_text is None:
73 add_row(key_text, Pretty(value, highlighter=highlighter))
74 else:
75 if self.docs:
76 docs = self._get_formatted_doc(value)
77 if docs is not None:
78 _signature_text.append("\n" if "\n" in docs else " ")
79 doc = highlighter(docs)
80 doc.stylize("inspect.doc")
81 _signature_text.append(doc)
82
83 add_row(key_text, _signature_text)
84 else:
85 add_row(key_text, Pretty(value, highlighter=highlighter))
86 if items_table.row_count:
87 yield items_table
88 elif not_shown_count:
89 yield Text.from_markup(
90 f"[b cyan]{not_shown_count}[/][i] attribute(s) not shown.[/i] "
91 f"Run [b][magenta]inspect[/]([not b]inspect[/])[/b] for options."
92 )
Path 8: 1 calls (0.06)
Text (1) '' (1) Table (1) None (1)
1def _render(self) -> Iterable[RenderableType]:
2 """Render object."""
3
4 def sort_items(item: Tuple[str, Any]) -> Tuple[bool, str]:
5 key, (_error, value) = item
6 return (callable(value), key.strip("_").lower())
7
8 def safe_getattr(attr_name: str) -> Tuple[Any, Any]:
9 """Get attribute or any exception."""
10 try:
11 return (None, getattr(obj, attr_name))
12 except Exception as error:
13 return (error, None)
14
15 obj = self.obj
16 keys = dir(obj)
17 total_items = len(keys)
18 if not self.dunder:
19 keys = [key for key in keys if not key.startswith("__")]
20 if not self.private:
21 keys = [key for key in keys if not key.startswith("_")]
22 not_shown_count = total_items - len(keys)
23 items = [(key, safe_getattr(key)) for key in keys]
24 if self.sort:
25 items.sort(key=sort_items)
26
27 items_table = Table.grid(padding=(0, 1), expand=False)
28 items_table.add_column(justify="right")
29 add_row = items_table.add_row
30 highlighter = self.highlighter
31
32 if callable(obj):
33 signature = self._get_signature("", obj)
34 if signature is not None:
35 yield signature
36 yield ""
37
38 if self.docs:
39 _doc = self._get_formatted_doc(obj)
40 if _doc is not None:
41 doc_text = Text(_doc, style="inspect.help")
42 doc_text = highlighter(doc_text)
43 yield doc_text
44 yield ""
45
46 if self.value and not (isclass(obj) or callable(obj) or ismodule(obj)):
47 yield Panel(
48 Pretty(obj, indent_guides=True, max_length=10, max_string=60),
49 border_style="inspect.value.border",
50 )
51 yield ""
52
53 for key, (error, value) in items:
54 key_text = Text.assemble(
55 (
56 key,
57 "inspect.attr.dunder" if key.startswith("__") else "inspect.attr",
58 ),
59 (" =", "inspect.equals"),
60 )
61 if error is not None:
62 warning = key_text.copy()
63 warning.stylize("inspect.error")
64 add_row(warning, highlighter(repr(error)))
65 continue
66
67 if callable(value):
68 if not self.methods:
69 continue
70
71 _signature_text = self._get_signature(key, value)
72 if _signature_text is None:
73 add_row(key_text, Pretty(value, highlighter=highlighter))
74 else:
75 if self.docs:
76 docs = self._get_formatted_doc(value)
77 if docs is not None:
78 _signature_text.append("\n" if "\n" in docs else " ")
79 doc = highlighter(docs)
80 doc.stylize("inspect.doc")
81 _signature_text.append(doc)
82
83 add_row(key_text, _signature_text)
84 else:
85 add_row(key_text, Pretty(value, highlighter=highlighter))
86 if items_table.row_count:
87 yield items_table
88 elif not_shown_count:
89 yield Text.from_markup(
90 f"[b cyan]{not_shown_count}[/][i] attribute(s) not shown.[/i] "
91 f"Run [b][magenta]inspect[/]([not b]inspect[/])[/b] for options."
92 )
Path 9: 1 calls (0.06)
Table (1) None (1)
1def _render(self) -> Iterable[RenderableType]:
2 """Render object."""
3
4 def sort_items(item: Tuple[str, Any]) -> Tuple[bool, str]:
5 key, (_error, value) = item
6 return (callable(value), key.strip("_").lower())
7
8 def safe_getattr(attr_name: str) -> Tuple[Any, Any]:
9 """Get attribute or any exception."""
10 try:
11 return (None, getattr(obj, attr_name))
12 except Exception as error:
13 return (error, None)
14
15 obj = self.obj
16 keys = dir(obj)
17 total_items = len(keys)
18 if not self.dunder:
19 keys = [key for key in keys if not key.startswith("__")]
20 if not self.private:
21 keys = [key for key in keys if not key.startswith("_")]
22 not_shown_count = total_items - len(keys)
23 items = [(key, safe_getattr(key)) for key in keys]
24 if self.sort:
25 items.sort(key=sort_items)
26
27 items_table = Table.grid(padding=(0, 1), expand=False)
28 items_table.add_column(justify="right")
29 add_row = items_table.add_row
30 highlighter = self.highlighter
31
32 if callable(obj):
33 signature = self._get_signature("", obj)
34 if signature is not None:
35 yield signature
36 yield ""
37
38 if self.docs:
39 _doc = self._get_formatted_doc(obj)
40 if _doc is not None:
41 doc_text = Text(_doc, style="inspect.help")
42 doc_text = highlighter(doc_text)
43 yield doc_text
44 yield ""
45
46 if self.value and not (isclass(obj) or callable(obj) or ismodule(obj)):
47 yield Panel(
48 Pretty(obj, indent_guides=True, max_length=10, max_string=60),
49 border_style="inspect.value.border",
50 )
51 yield ""
52
53 for key, (error, value) in items:
54 key_text = Text.assemble(
55 (
56 key,
57 "inspect.attr.dunder" if key.startswith("__") else "inspect.attr",
58 ),
59 (" =", "inspect.equals"),
60 )
61 if error is not None:
62 warning = key_text.copy()
63 warning.stylize("inspect.error")
64 add_row(warning, highlighter(repr(error)))
65 continue
66
67 if callable(value):
68 if not self.methods:
69 continue
70
71 _signature_text = self._get_signature(key, value)
72 if _signature_text is None:
73 add_row(key_text, Pretty(value, highlighter=highlighter))
74 else:
75 if self.docs:
76 docs = self._get_formatted_doc(value)
77 if docs is not None:
78 _signature_text.append("\n" if "\n" in docs else " ")
79 doc = highlighter(docs)
80 doc.stylize("inspect.doc")
81 _signature_text.append(doc)
82
83 add_row(key_text, _signature_text)
84 else:
85 add_row(key_text, Pretty(value, highlighter=highlighter))
86 if items_table.row_count:
87 yield items_table
88 elif not_shown_count:
89 yield Text.from_markup(
90 f"[b cyan]{not_shown_count}[/][i] attribute(s) not shown.[/i] "
91 f"Run [b][magenta]inspect[/]([not b]inspect[/])[/b] for options."
92 )
Path 10: 1 calls (0.06)
Panel (1) '' (1)
1def _render(self) -> Iterable[RenderableType]:
2 """Render object."""
3
4 def sort_items(item: Tuple[str, Any]) -> Tuple[bool, str]:
5 key, (_error, value) = item
6 return (callable(value), key.strip("_").lower())
7
8 def safe_getattr(attr_name: str) -> Tuple[Any, Any]:
9 """Get attribute or any exception."""
10 try:
11 return (None, getattr(obj, attr_name))
12 except Exception as error:
13 return (error, None)
14
15 obj = self.obj
16 keys = dir(obj)
17 total_items = len(keys)
18 if not self.dunder:
19 keys = [key for key in keys if not key.startswith("__")]
20 if not self.private:
21 keys = [key for key in keys if not key.startswith("_")]
22 not_shown_count = total_items - len(keys)
23 items = [(key, safe_getattr(key)) for key in keys]
24 if self.sort:
25 items.sort(key=sort_items)
26
27 items_table = Table.grid(padding=(0, 1), expand=False)
28 items_table.add_column(justify="right")
29 add_row = items_table.add_row
30 highlighter = self.highlighter
31
32 if callable(obj):
33 signature = self._get_signature("", obj)
34 if signature is not None:
35 yield signature
36 yield ""
37
38 if self.docs:
39 _doc = self._get_formatted_doc(obj)
40 if _doc is not None:
41 doc_text = Text(_doc, style="inspect.help")
42 doc_text = highlighter(doc_text)
43 yield doc_text
44 yield ""
45
46 if self.value and not (isclass(obj) or callable(obj) or ismodule(obj)):
47 yield Panel(
48 Pretty(obj, indent_guides=True, max_length=10, max_string=60),
49 border_style="inspect.value.border",
50 )
51 yield ""
52
53 for key, (error, value) in items:
54 key_text = Text.assemble(
55 (
56 key,
57 "inspect.attr.dunder" if key.startswith("__") else "inspect.attr",
58 ),
59 (" =", "inspect.equals"),
60 )
61 if error is not None:
62 warning = key_text.copy()
63 warning.stylize("inspect.error")
64 add_row(warning, highlighter(repr(error)))
65 continue
66
67 if callable(value):
68 if not self.methods:
69 continue
70
71 _signature_text = self._get_signature(key, value)
72 if _signature_text is None:
73 add_row(key_text, Pretty(value, highlighter=highlighter))
74 else:
75 if self.docs:
76 docs = self._get_formatted_doc(value)
77 if docs is not None:
78 _signature_text.append("\n" if "\n" in docs else " ")
79 doc = highlighter(docs)
80 doc.stylize("inspect.doc")
81 _signature_text.append(doc)
82
83 add_row(key_text, _signature_text)
84 else:
85 add_row(key_text, Pretty(value, highlighter=highlighter))
86 if items_table.row_count:
87 yield items_table
88 elif not_shown_count:
89 yield Text.from_markup(
90 f"[b cyan]{not_shown_count}[/][i] attribute(s) not shown.[/i] "
91 f"Run [b][magenta]inspect[/]([not b]inspect[/])[/b] for options."
92 )
Path 11: 1 calls (0.06)
Table (1) None (1)
1def _render(self) -> Iterable[RenderableType]:
2 """Render object."""
3
4 def sort_items(item: Tuple[str, Any]) -> Tuple[bool, str]:
5 key, (_error, value) = item
6 return (callable(value), key.strip("_").lower())
7
8 def safe_getattr(attr_name: str) -> Tuple[Any, Any]:
9 """Get attribute or any exception."""
10 try:
11 return (None, getattr(obj, attr_name))
12 except Exception as error:
13 return (error, None)
14
15 obj = self.obj
16 keys = dir(obj)
17 total_items = len(keys)
18 if not self.dunder:
19 keys = [key for key in keys if not key.startswith("__")]
20 if not self.private:
21 keys = [key for key in keys if not key.startswith("_")]
22 not_shown_count = total_items - len(keys)
23 items = [(key, safe_getattr(key)) for key in keys]
24 if self.sort:
25 items.sort(key=sort_items)
26
27 items_table = Table.grid(padding=(0, 1), expand=False)
28 items_table.add_column(justify="right")
29 add_row = items_table.add_row
30 highlighter = self.highlighter
31
32 if callable(obj):
33 signature = self._get_signature("", obj)
34 if signature is not None:
35 yield signature
36 yield ""
37
38 if self.docs:
39 _doc = self._get_formatted_doc(obj)
40 if _doc is not None:
41 doc_text = Text(_doc, style="inspect.help")
42 doc_text = highlighter(doc_text)
43 yield doc_text
44 yield ""
45
46 if self.value and not (isclass(obj) or callable(obj) or ismodule(obj)):
47 yield Panel(
48 Pretty(obj, indent_guides=True, max_length=10, max_string=60),
49 border_style="inspect.value.border",
50 )
51 yield ""
52
53 for key, (error, value) in items:
54 key_text = Text.assemble(
55 (
56 key,
57 "inspect.attr.dunder" if key.startswith("__") else "inspect.attr",
58 ),
59 (" =", "inspect.equals"),
60 )
61 if error is not None:
62 warning = key_text.copy()
63 warning.stylize("inspect.error")
64 add_row(warning, highlighter(repr(error)))
65 continue
66
67 if callable(value):
68 if not self.methods:
69 continue
70
71 _signature_text = self._get_signature(key, value)
72 if _signature_text is None:
73 add_row(key_text, Pretty(value, highlighter=highlighter))
74 else:
75 if self.docs:
76 docs = self._get_formatted_doc(value)
77 if docs is not None:
78 _signature_text.append("\n" if "\n" in docs else " ")
79 doc = highlighter(docs)
80 doc.stylize("inspect.doc")
81 _signature_text.append(doc)
82
83 add_row(key_text, _signature_text)
84 else:
85 add_row(key_text, Pretty(value, highlighter=highlighter))
86 if items_table.row_count:
87 yield items_table
88 elif not_shown_count:
89 yield Text.from_markup(
90 f"[b cyan]{not_shown_count}[/][i] attribute(s) not shown.[/i] "
91 f"Run [b][magenta]inspect[/]([not b]inspect[/])[/b] for options."
92 )