{"action":"opened","issue":{"url":"https://api.github.com/repos/thoth-station/solver/issues/16","repository_url":"https://api.github.com/repos/thoth-station/solver","labels_url":"https://api.github.com/repos/thoth-station/solver/issues/16/labels{/name}","comments_url":"https://api.github.com/repos/thoth-station/solver/issues/16/comments","events_url":"https://api.github.com/repos/thoth-station/solver/issues/16/events","html_url":"https://github.com/thoth-station/solver/issues/16","id":318329445,"number":16,"title":"Solver fails for unknown packages","user":{"login":"fridex","id":880687,"avatar_url":"https://avatars0.githubusercontent.com/u/880687?v=4","gravatar_id":"","url":"https://api.github.com/users/fridex","html_url":"https://github.com/fridex","followers_url":"https://api.github.com/users/fridex/followers","following_url":"https://api.github.com/users/fridex/following{/other_user}","gists_url":"https://api.github.com/users/fridex/gists{/gist_id}","starred_url":"https://api.github.com/users/fridex/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fridex/subscriptions","organizations_url":"https://api.github.com/users/fridex/orgs","repos_url":"https://api.github.com/users/fridex/repos","events_url":"https://api.github.com/users/fridex/events{/privacy}","received_events_url":"https://api.github.com/users/fridex/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-04-27T08:57:11Z","updated_at":"2018-04-27T08:57:11Z","closed_at":null,"author_association":"OWNER","body":"```\r\nTraceback (most recent call last):\r\n--\r\n  | File \"/usr/lib/python3.6/site-packages/pip/_vendor/packaging/requirements.py\", line 92, in __init__\r\n  | req = REQUIREMENT.parseString(requirement_string)\r\n  | File \"/usr/lib/python3.6/site-packages/pip/_vendor/pyparsing.py\", line 1617, in parseString\r\n  | raise exc\r\n  | File \"/usr/lib/python3.6/site-packages/pip/_vendor/pyparsing.py\", line 1607, in parseString\r\n  | loc, tokens = self._parse( instring, 0 )\r\n  | File \"/usr/lib/python3.6/site-packages/pip/_vendor/pyparsing.py\", line 1379, in _parseNoCache\r\n  | loc,tokens = self.parseImpl( instring, preloc, doActions )\r\n  | File \"/usr/lib/python3.6/site-packages/pip/_vendor/pyparsing.py\", line 3376, in parseImpl\r\n  | loc, exprtokens = e._parse( instring, loc, doActions )\r\n  | File \"/usr/lib/python3.6/site-packages/pip/_vendor/pyparsing.py\", line 1383, in _parseNoCache\r\n  | loc,tokens = self.parseImpl( instring, preloc, doActions )\r\n  | File \"/usr/lib/python3.6/site-packages/pip/_vendor/pyparsing.py\", line 3164, in parseImpl\r\n  | raise ParseException(instring, loc, self.errmsg, self)\r\n  | pip._vendor.pyparsing.ParseException: Expected stringEnd (at char 8), (line:1, col:9)\r\n  | During handling of the above exception, another exception occurred:\r\n  | Traceback (most recent call last):\r\n  | File \"/usr/lib/python3.6/site-packages/pip/req/req_install.py\", line 82, in __init__\r\n  | req = Requirement(req)\r\n  | File \"/usr/lib/python3.6/site-packages/pip/_vendor/packaging/requirements.py\", line 96, in __init__\r\n  | requirement_string[e.loc:e.loc + 8]))\r\n  | pip._vendor.packaging.requirements.InvalidRequirement: Invalid requirement, parse error at \"'doctest '\"\r\n  | During handling of the above exception, another exception occurred:\r\n  | Traceback (most recent call last):\r\n  | File \"/usr/local/bin/thoth-solver\", line 11, in <module>\r\n  | load_entry_point('thoth-solver==1.0.2', 'console_scripts', 'thoth-solver')()\r\n  | File \"/usr/local/lib/python3.6/site-packages/click/core.py\", line 722, in __call__\r\n  | return self.main(*args, **kwargs)\r\n  | File \"/usr/local/lib/python3.6/site-packages/click/core.py\", line 697, in main\r\n  | rv = self.invoke(ctx)\r\n  | File \"/usr/local/lib/python3.6/site-packages/click/core.py\", line 1066, in invoke\r\n  | return _process_result(sub_ctx.command.invoke(sub_ctx))\r\n  | File \"/usr/local/lib/python3.6/site-packages/click/core.py\", line 895, in invoke\r\n  | return ctx.invoke(self.callback, **ctx.params)\r\n  | File \"/usr/local/lib/python3.6/site-packages/click/core.py\", line 535, in invoke\r\n  | return callback(*args, **kwargs)\r\n  | File \"/usr/local/lib/python3.6/site-packages/click/decorators.py\", line 17, in new_func\r\n  | return f(get_current_context(), *args, **kwargs)\r\n  | File \"/usr/local/lib/python3.6/site-packages/thoth/solver/cli.py\", line 91, in pypi\r\n  | exclude_packages=set(map(str.strip, (exclude_packages or '').split(',')))\r\n  | File \"/usr/local/lib/python3.6/site-packages/thoth/solver/python.py\", line 168, in resolve\r\n  | dependency = PypiDependencyParser.parse_python(requirement)\r\n  | File \"/usr/local/lib/python3.6/site-packages/thoth/solver/solvers/pypi.py\", line 148, in parse_python\r\n  | dependency = [Dependency(x.name, _get_pip_spec(x.req)) for x in parsed].pop()\r\n  | File \"/usr/local/lib/python3.6/site-packages/thoth/solver/solvers/pypi.py\", line 148, in <listcomp>\r\n  | dependency = [Dependency(x.name, _get_pip_spec(x.req)) for x in parsed].pop()\r\n  | File \"/usr/lib/python3.6/site-packages/pip/req/req_file.py\", line 93, in parse_requirements\r\n  | for req in req_iter:\r\n  | File \"/usr/lib/python3.6/site-packages/pip/req/req_file.py\", line 158, in process_line\r\n  | isolated=isolated, options=req_options, wheel_cache=wheel_cache\r\n  | File \"/usr/lib/python3.6/site-packages/pip/req/req_install.py\", line 235, in from_line\r\n  | wheel_cache=wheel_cache, constraint=constraint)\r\n  | File \"/usr/lib/python3.6/site-packages/pip/req/req_install.py\", line 91, in __init__\r\n  | \"Invalid requirement: '%s'\\n%s\" % (req, add_msg))\r\n  | pip.exceptions.InstallationError: Invalid requirement: 'ipython doctest plugin==0.1'\r\n  | Traceback (most recent call last):\r\n  | File \"/usr/lib/python3.6/site-packages/pip/_vendor/packaging/requirements.py\", line 92, in __init__\r\n  | req = REQUIREMENT.parseString(requirement_string)\r\n  | File \"/usr/lib/python3.6/site-packages/pip/_vendor/pyparsing.py\", line 1617, in parseString\r\n  | raise exc\r\n  | File \"/usr/lib/python3.6/site-packages/pip/_vendor/pyparsing.py\", line 1607, in parseString\r\n  | loc, tokens = self._parse( instring, 0 )\r\n  | File \"/usr/lib/python3.6/site-packages/pip/_vendor/pyparsing.py\", line 1379, in _parseNoCache\r\n  | loc,tokens = self.parseImpl( instring, preloc, doActions )\r\n  | File \"/usr/lib/python3.6/site-packages/pip/_vendor/pyparsing.py\", line 3376, in parseImpl\r\n  | loc, exprtokens = e._parse( instring, loc, doActions )\r\n  | File \"/usr/lib/python3.6/site-packages/pip/_vendor/pyparsing.py\", line 1383, in _parseNoCache\r\n  | loc,tokens = self.parseImpl( instring, preloc, doActions )\r\n  | File \"/usr/lib/python3.6/site-packages/pip/_vendor/pyparsing.py\", line 3164, in parseImpl\r\n  | raise ParseException(instring, loc, self.errmsg, self)\r\n  | pip._vendor.pyparsing.ParseException: Expected stringEnd (at char 8), (line:1, col:9)\r\n  | During handling of the above exception, another exception occurred:\r\n  | Traceback (most recent call last):\r\n  | File \"/usr/lib/python3.6/site-packages/pip/req/req_install.py\", line 82, in __init__\r\n  | req = Requirement(req)\r\n  | File \"/usr/lib/python3.6/site-packages/pip/_vendor/packaging/requirements.py\", line 96, in __init__\r\n  | requirement_string[e.loc:e.loc + 8]))\r\n  | pip._vendor.packaging.requirements.InvalidRequirement: Invalid requirement, parse error at \"'doctest '\"\r\n```\r\n\r\nClarification - there was found a plugin for ipython with name \"\"IPython doctest plugin\"\" in setup.py placed in ``/opt/conda/lib/python2.7/site-packages/IPython/testing/plugin/setup.p``. This causes our dependency parser to fail. Obviously this is not a package name. To fix this we should keep track of packages that were not resolved and their path.\r\n\r\nAn example of image having this package is ``radanalyticsio/base-notebook``."}}
{"actor":{"display_login":"fridex"}}