def render(): console = Console(file=io.StringIO(), width=100, legacy_windows=False) console.rule("empty") empty_columns = Columns([]) console.print(empty_columns) columns = Columns(COLUMN_DATA) columns.add_renderable("Myrmecophaga tridactyla") console.rule("optimal") console.print(columns) console.rule("optimal, expand") columns.expand = True console.print(columns) console.rule("columm first, optimal") columns.column_first = True columns.expand = False console.print(columns) console.rule("column first, right to left") columns.right_to_left = True console.print(columns) console.rule("equal columns, expand") columns.equal = True columns.expand = True console.print(columns) console.rule("fixed width") columns.width = 16 console.print(columns) console.print() render_result = console.file.getvalue() return render_result
def debug_info() -> None: """Show debug info relatives to the bot""" python_version = sys.version.replace("\n", "") pip_version = pip.__version__ tuxbot_version = __version__ dpy_version = discord.__version__ uptime = os.popen("/usr/bin/uptime").read().strip().split() console.print( Panel("[bold blue]Debug Info", style="blue"), justify="center" ) console.print() columns = Columns(expand=True, padding=2, align="center") table = Table(style="dim", border_style=BORDER_STYLE, box=box.HEAVY_HEAD) table.add_column( "Bot Info", ) table.add_row(f"[u]Tuxbot version:[/u] {tuxbot_version}") table.add_row(f"[u]Major:[/u] {version_info.major}") table.add_row(f"[u]Minor:[/u] {version_info.minor}") table.add_row(f"[u]Micro:[/u] {version_info.micro}") table.add_row(f"[u]Level:[/u] {version_info.releaselevel}") table.add_row(f"[u]Last change:[/u] {version_info.info}") columns.add_renderable(table) table = Table(style="dim", border_style=BORDER_STYLE, box=box.HEAVY_HEAD) table.add_column( "Python Info", ) table.add_row(f"[u]Python version:[/u] {python_version}") table.add_row(f"[u]Python executable path:[/u] {sys.executable}") table.add_row(f"[u]Pip version:[/u] {pip_version}") table.add_row(f"[u]Discord.py version:[/u] {dpy_version}") columns.add_renderable(table) table = Table(style="dim", border_style=BORDER_STYLE, box=box.HEAVY_HEAD) table.add_column( "Server Info", ) table.add_row(f"[u]System:[/u] {os.uname().sysname}") table.add_row(f"[u]System arch:[/u] {os.uname().machine}") table.add_row(f"[u]Kernel:[/u] {os.uname().release}") table.add_row(f"[u]User:[/u] {os.getlogin()}") table.add_row(f"[u]Uptime:[/u] {uptime[2][:-1]}") table.add_row( f"[u]Load Average:[/u] {' '.join(map(str, os.getloadavg()))}" ) columns.add_renderable(table) console.print(columns) console.print() sys.exit(os.EX_OK)
"SIMPLE_HEAVY", "HORIZONTALS", "ROUNDED", "HEAVY", "HEAVY_EDGE", "HEAVY_HEAD", "DOUBLE", "DOUBLE_EDGE", ] console.print(Panel("[bold green]Box Constants", style="green"), justify="center") console.print() columns = Columns(expand=True, padding=2) for box_name in BOXES: table = Table(show_footer=True, style="dim", border_style="not dim", expand=True) table.add_column("Header 1", "Footer 1") table.add_column("Header 2", "Footer 2") table.add_row("Cell", "Cell") table.add_row("Cell", "Cell") table.box = getattr(box, box_name) table.title = Text(f"box.{box_name}", style="magenta") columns.add_renderable(table) console.print(columns) # console.save_html("box.html", inline_styles=True)
async def on_ready(self): if self.uptime is not None: self.last_on_ready = datetime.datetime.now() return self.uptime = datetime.datetime.now() self.last_on_ready = self.uptime for command in self.commands: if isinstance(command, CommandPLus): self.all_subcommands.append(command.name) self.all_subcommands += command.aliases elif hasattr(command, "walk_commands"): subs = [s.name for s in command.walk_commands()] for sub in subs: self.all_subcommands.append(f"{command.name} {sub}") self.all_subcommands += [ f"{alias} {sub}" for alias in command.aliases ] with self._progress["main"] as progress: progress.stop_task(self._progress["tasks"]["discord_connecting"]) progress.remove_task(self._progress["tasks"]["discord_connecting"]) self._progress["tasks"].pop("discord_connecting") self.console.clear() self.console.print( Panel(f"[bold blue]Tuxbot V{version_info.major}", style="blue"), justify="center", ) self.console.print() columns = Columns(align="center", expand=True) table = Table(style="dim", border_style="not dim", box=box.HEAVY_HEAD) table.add_column("INFO", ) table.add_row(str(self.user)) table.add_row(f"Prefixes: {', '.join(self.config.Core.prefixes)}") table.add_row(f"Language: {self.config.Core.locale}") table.add_row(f"Tuxbot Version: {__version__}") table.add_row(f"Discord.py Version: {discord.__version__}") table.add_row( f"Python Version: {sys.version.split(' ', maxsplit=1)[0]}") table.add_row(f"Instance name: {self.instance_name}") table.add_row(f"Shards: {self.shard_count}") table.add_row(f"Servers: {len(self.guilds)}") table.add_row(f"Users: {len(self.users)}") columns.add_renderable(table) table = Table(style="dim", border_style="not dim", box=box.HEAVY_HEAD) table.add_column("COGS", ) for extension in packages: if extension in self.extensions: status = f"[green]:heavy_check_mark: {extension} " else: status = f"[red]:heavy_multiplication_x: {extension} " table.add_row(status) columns.add_renderable(table) self.console.print(columns) self.console.print()