Closed Tae-juss closed 2 years ago
@Tae-juss If you check your log file there should be an exception traceback. You can find the log file under ~/.mycli.log
Can you paste the relevant lines here? (Make sure to remove any sensitive data from the log lines).
I can't trigger the error locally. Can you tell me what is the data type of the id column?
I can't trigger the error locally. Can you tell me what is the data type of the id column?
hello, I have the same issue. My Env:
when I input show tables
get 'str' object has no attribute 'parent'
the log:
2022-01-09 20:16:58,881 (54249/MainThread) mycli.main ERROR - sql: 'show tables', error: AttributeError("'str' object has no attribute 'parent'") 2022-01-09 20:16:58,884 (54249/MainThread) mycli.main ERROR - traceback: 'Traceback (most recent call last):\n File "/opt/homebrew/lib/python3.9/site-packages/pygments/formatters/terminal256.py", line 261, in format_unencoded\n on, off = self.style_string[str(ttype)]\nKeyError: \'Token.Output.TableSeparator\'\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File "/opt/homebrew/lib/python3.9/site-packages/mycli/main.py", line 711, in one_iteration\n formatted = self.format_output(\n File "/opt/homebrew/lib/python3.9/site-packages/mycli/main.py", line 1029, in format_output\n formatted = self.formatter.format_output(\n File "/opt/homebrew/lib/python3.9/site-packages/cli_helpers/tabular_output/output_formatter.py", line 168, in format_output\n data, headers = f(data, headers, column_types=column_types, *fkwargs)\n File "/opt/homebrew/lib/python3.9/site-packages/cli_helpers/tabular_output/tabulate_adapter.py", line 170, in style_output\n newfmt = tabulate.TableFormat((addColorInElt(val) for val in srcfmt))\n File "/opt/homebrew/lib/python3.9/site-packages/cli_helpers/tabular_output/tabulate_adapter.py", line 170, in
\n newfmt = tabulate.TableFormat((addColorInElt(val) for val in srcfmt))\n File "/opt/homebrew/lib/python3.9/site-packages/cli_helpers/tabular_output/tabulate_adapter.py", line 160, in addColorInElt\n return tabulate.Line(\n File "/opt/homebrew/lib/python3.9/site-packages/cli_helpers/tabular_output/tabulate_adapter.py", line 161, in \n (style_field(table_separator_token, val) for val in elt)\n File "/opt/homebrew/lib/python3.9/site-packages/cli_helpers/tabular_output/tabulate_adapter.py", line 153, in style_field\n formatter.format(((token, field),), s)\n File "/opt/homebrew/lib/python3.9/site-packages/pygments/formatters/terminal256.py", line 250, in format\n return Formatter.format(self, tokensource, outfile)\n File "/opt/homebrew/lib/python3.9/site-packages/pygments/formatter.py", line 94, in format\n return self.format_unencoded(tokensource, outfile)\n File "/opt/homebrew/lib/python3.9/site-packages/pygments/formatters/terminal256.py", line 282, in format_unencoded\n ttype = ttype.parent\nAttributeError: \'str\' object has no attribute \'parent\'\n'
related upstream commit: https://github.com/pygments/pygments/commit/8fdd6b9879a6c34b908fa03a6ff15f764192a54e
upstream related issue: https://github.com/pygments/pygments/issues/2027
A quick dirty fix up to make things work:
Change File "/usr/lib/python3.10/site-packages/pygments/formatters/terminal256.py", line 282
ttype.parent
back to ttype[:-1]
will work again.
Thank you for looking into this @amjith. Does the following help?
2022-01-10 06:31:01,812 (70/MainThread) mycli.main ERROR - sql: 'select id from bag limit 1;', error: AttributeError("'str' object has no attribute 'parent'") 2022-01-10 06:31:01,813 (70/MainThread) mycli.main ERROR - traceback: 'Traceback (most recent call last):\n File "/usr/local/lib/python3.8/site-packages/pygments/formatters/terminal256.py", line 261, in format_unencoded\n on, off = self.style_string[str(ttype)]\nKeyError: \'Token.Output.TableSeparator\'\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File "/usr/local/lib/python3.8/site-packages/mycli/main.py", line 711, in one_iteration\n formatted = self.format_output(\n File "/usr/local/lib/python3.8/site-packages/mycli/main.py", line 1029, in format_output\n formatted = self.formatter.format_output(\n File "/usr/local/lib/python3.8/site-packages/cli_helpers/tabular_output/output_formatter.py", line 168, in format_output\n data, headers = f(data, headers, column_types=column_types, *fkwargs)\n File "/usr/local/lib/python3.8/site-packages/cli_helpers/tabular_output/tabulate_adapter.py", line 170, in style_output\n newfmt = tabulate.TableFormat((addColorInElt(val) for val in srcfmt))\n File "/usr/local/lib/python3.8/site-packages/cli_helpers/tabular_output/tabulate_adapter.py", line 170, in
\n newfmt = tabulate.TableFormat((addColorInElt(val) for val in srcfmt))\n File "/usr/local/lib/python3.8/site-packages/cli_helpers/tabular_output/tabulate_adapter.py", line 160, in addColorInElt\n return tabulate.Line(\n File "/usr/local/lib/python3.8/site-packages/cli_helpers/tabular_output/tabulate_adapter.py", line 161, in \n (style_field(table_separator_token, val) for val in elt)\n File "/usr/local/lib/python3.8/site-packages/cli_helpers/tabular_output/tabulate_adapter.py", line 153, in style_field\n formatter.format(((token, field),), s)\n File "/usr/local/lib/python3.8/site-packages/pygments/formatters/terminal256.py", line 250, in format\n return Formatter.format(self, tokensource, outfile)\n File "/usr/local/lib/python3.8/site-packages/pygments/formatter.py", line 94, in format\n return self.format_unencoded(tokensource, outfile)\n File "/usr/local/lib/python3.8/site-packages/pygments/formatters/terminal256.py", line 282, in format_unencoded\n ttype = ttype.parent\nAttributeError: \'str\' object has no attribute \'parent\'\n' 2022-01-10 06:31:03,277 (70/MainThread) mycli.main ERROR - sql: 'select id from bag limit 1', error: AttributeError("'str' object has no attribute 'parent'") 2022-01-10 06:31:03,277 (70/MainThread) mycli.main ERROR - traceback: 'Traceback (most recent call last):\n File "/usr/local/lib/python3.8/site-packages/pygments/formatters/terminal256.py", line 261, in format_unencoded\n on, off = self.style_string[str(ttype)]\nKeyError: \'Token.Output.TableSeparator\'\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File "/usr/local/lib/python3.8/site-packages/mycli/main.py", line 711, in one_iteration\n formatted = self.format_output(\n File "/usr/local/lib/python3.8/site-packages/mycli/main.py", line 1029, in format_output\n formatted = self.formatter.format_output(\n File "/usr/local/lib/python3.8/site-packages/cli_helpers/tabular_output/output_formatter.py", line 168, in format_output\n data, headers = f(data, headers, column_types=column_types, *fkwargs)\n File "/usr/local/lib/python3.8/site-packages/cli_helpers/tabular_output/tabulate_adapter.py", line 170, in style_output\n newfmt = tabulate.TableFormat((addColorInElt(val) for val in srcfmt))\n File "/usr/local/lib/python3.8/site-packages/cli_helpers/tabular_output/tabulate_adapter.py", line 170, in\n newfmt = tabulate.TableFormat((addColorInElt(val) for val in srcfmt))\n File "/usr/local/lib/python3.8/site-packages/cli_helpers/tabular_output/tabulate_adapter.py", line 160, in addColorInElt\n return tabulate.Line(\n File "/usr/local/lib/python3.8/site-packages/cli_helpers/tabular_output/tabulate_adapter.py", line 161, in \n (style_field(table_separator_token, val) for val in elt)\n File "/usr/local/lib/python3.8/site-packages/cli_helpers/tabular_output/tabulate_adapter.py", line 153, in style_field\n formatter.format(((token, field),), s)\n File "/usr/local/lib/python3.8/site-packages/pygments/formatters/terminal256.py", line 250, in format\n return Formatter.format(self, tokensource, outfile)\n File "/usr/local/lib/python3.8/site-packages/pygments/formatter.py", line 94, in format\n return self.format_unencoded(tokensource, outfile)\n File "/usr/local/lib/python3.8/site-packages/pygments/formatters/terminal256.py", line 282, in format_unencoded\n ttype = ttype.parent\nAttributeError: \'str\' object has no attribute \'parent\'\n'
I can't trigger the error locally. Can you tell me what is the data type of the id column?
The data type of id column is int
Also, just wanted to share that this worked without any issues until Thursday, 6th Jan 2022. Started getting this error from 7th Jan.
For some context, mycli is not a default requirement on the container. Hence, we only install it via pip whenever it's needed.
快速修复以使事情正常进行:
将文件“/usr/lib/python3.10/site-packages/pygments/formatters/terminal256.py”,第 282 行更改
ttype.parent
回ttype[:-1]
将再次起作用。
yes, it can solve my problem.
pygments/pygments#2027
thank you, it can work.
You can downgrade your pygments
package to settle this issue temporarily.
pip install "pygments<=2.11.0"
A new version has been released with the pygments version pinned.
pip install "pygments<=2.11.0"
Thank you! This worked for me :)
@Tae-juss: Thanks for reporting and @amjith: Thanks for quickly resolving.
Saved my day.
When querying the DB for basic output with \G, mycli is returning "'str' object has no attribute 'parent'" error. Output is only displayed if requested in GRID format.
Please find the sample below:
================================ DB> select id from bag LIMIT 1 'str' object has no attribute 'parent'
DB> select id from bag LIMIT 1\G [ 1. row ] id | 2 1 row in set Time: 0.001s
DB> select id from bag LIMIT 1; 'str' object has no attribute 'parent'
================================