donnemartin / gitsome

A supercharged Git/GitHub command line interface (CLI). An official integration for GitHub and GitHub Enterprise: https://github.com/works-with/category/desktop-tools
Other
7.56k stars 437 forks source link

'str' does not support the buffer interface on `gh feed` #84

Closed surajssd closed 7 years ago

surajssd commented 7 years ago

I get following error:

$ gh feed
Listing events...
Traceback (most recent call last):
  File "/usr/bin/gh", line 9, in <module>
    load_entry_point('gitsome==0.6.0', 'console_scripts', 'gh')()
  File "/usr/lib/python3.4/site-packages/gitsome/main_cli.py", line 26, in cli
    github.cli()
  File "/usr/lib/python3.4/site-packages/click/core.py", line 716, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python3.4/site-packages/click/core.py", line 696, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python3.4/site-packages/click/core.py", line 1060, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/lib/python3.4/site-packages/click/core.py", line 889, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python3.4/site-packages/click/core.py", line 534, in invoke
    return callback(*args, **kwargs)
  File "/usr/lib/python3.4/site-packages/click/decorators.py", line 64, in new_func
    return ctx.invoke(f, obj, *args[1:], **kwargs)
  File "/usr/lib/python3.4/site-packages/click/core.py", line 534, in invoke
    return callback(*args, **kwargs)
  File "/usr/lib/python3.4/site-packages/gitsome/githubcli.py", line 226, in feed
    github.feed(user_or_repo, private, pager)
  File "/usr/lib/python3.4/site-packages/gitsome/github.py", line 86, in auth_wrapper
    return func(self, *args, **kwargs)
  File "/usr/lib/python3.4/site-packages/gitsome/github.py", line 305, in feed
    items = self.trend_parser.parse(self.config.user_feed)
  File "/usr/lib/python3.4/site-packages/feedparser.py", line 3957, in parse
    saxparser.parse(source)
  File "/usr/lib64/python3.4/site-packages/drv_libxml2.py", line 189, in parse
    eltName = (_d(reader.NamespaceUri()),\
  File "/usr/lib64/python3.4/site-packages/drv_libxml2.py", line 70, in _d
    return _decoder(s)[0]
  File "/usr/lib64/python3.4/encodings/utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
TypeError: 'str' does not support the buffer interface

version: gitsome-0.6.0 installed using pip3

system config:

$ uname -a
Linux foo 4.7.6-100.fc23.x86_64 #1 SMP Mon Oct 3 18:15:29 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
surajssd commented 7 years ago

Also:

$ gh feed surajssd -p
Listing events...
Traceback (most recent call last):
  File "/usr/bin/gh", line 9, in <module>
    load_entry_point('gitsome==0.6.0', 'console_scripts', 'gh')()
  File "/usr/lib/python3.4/site-packages/gitsome/main_cli.py", line 26, in cli
    github.cli()
  File "/usr/lib/python3.4/site-packages/click/core.py", line 716, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python3.4/site-packages/click/core.py", line 696, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python3.4/site-packages/click/core.py", line 1060, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/lib/python3.4/site-packages/click/core.py", line 889, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python3.4/site-packages/click/core.py", line 534, in invoke
    return callback(*args, **kwargs)
  File "/usr/lib/python3.4/site-packages/click/decorators.py", line 64, in new_func
    return ctx.invoke(f, obj, *args[1:], **kwargs)
  File "/usr/lib/python3.4/site-packages/click/core.py", line 534, in invoke
    return callback(*args, **kwargs)
  File "/usr/lib/python3.4/site-packages/gitsome/githubcli.py", line 226, in feed
    github.feed(user_or_repo, private, pager)
  File "/usr/lib/python3.4/site-packages/gitsome/github.py", line 86, in auth_wrapper
    return func(self, *args, **kwargs)
  File "/usr/lib/python3.4/site-packages/gitsome/github.py", line 323, in feed
    build_urls=False)
  File "/usr/lib/python3.4/site-packages/gitsome/table.py", line 128, in build_table_setup
    build_urls)
  File "/usr/lib/python3.4/site-packages/gitsome/table.py", line 69, in build_table
    output += format_method(view_entry) + '\n'
  File "/usr/lib/python3.4/site-packages/gitsome/formatter.py", line 358, in format_event
    item += self.event_handlers[event.type](event)
  File "/usr/lib/python3.4/site-packages/gitsome/formatter.py", line 202, in _format_create_delete_event
    event.payload['description'])
  File "/usr/lib/python3.4/site-packages/gitsome/formatter.py", line 135, in _format_indented_message
    message = self.strip_line_breaks(message)
  File "/usr/lib/python3.4/site-packages/gitsome/formatter.py", line 643, in strip_line_breaks
    text = re.sub(r'\r', '', text)
  File "/usr/lib64/python3.4/re.py", line 179, in sub
    return _compile(pattern, flags).sub(repl, string, count)
TypeError: expected string or buffer
donnemartin commented 7 years ago

Hi @surajssd, thanks for the bug report. I am able to reproduce this issue running:

$ gh feed surajssd -p

Curious if you see a problem running the following command, which works for me:

$ gh feed donnemartin -p
surajssd commented 7 years ago

@donnemartin

$ gh feed donnemartin -p

worked perfectly fine!

SanketDG commented 7 years ago

I looked into this, and this is happens because the description of the repo is passed as None to the json, which when parsed, obviously throws exceptions.

I have opened a simple fix at https://github.com/donnemartin/gitsome/pull/89

I am not sure if @surajssd's gh feed command works, as it follows a different execution stack from what I see.

surajssd commented 7 years ago

@SanketDG do you know why it's a special case with my username and also with my friend's username but works with @donnemartin 's username! :-|

SanketDG commented 7 years ago

do you know why it's a special case with my username and also with my friend's username

I don't know about your friend but for your case https://github.com/surajssd/flaskapp-registration has no description. Lots of repos dont have descriptions, so this issue should have surfaced a long time ago. I might have to dig in deeper to find out the real problem.

donnemartin commented 7 years ago

Fixed in https://github.com/donnemartin/gitsome/pull/89.

Lots of repos dont have descriptions, so this issue should have surfaced a long time ago. I might have to dig in deeper to find out the real problem.

See https://github.com/donnemartin/gitsome/pull/89#issuecomment-257808967.