Skip to content

Version Parse error #4095

@aviramha

Description

@aviramha
  • I am on the latest Poetry version.

  • I have searched the issues of this repo and believe that this is not a duplicate.

  • If an exception occurs when executing a command, I executed it again in debug mode (-vvv option).

  • OS version and name: All Platforms

  • Poetry version: 1.2.1a

Issue

Python constraints issues happens when installing aiopika with weird python specifications - poetry add aiopika

  Stack trace:

  3  ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/poetry/core/semver/helpers.py:137 in parse_single_constraint
      135│ 
      136│         try:
    → 137│             version = Version.parse(version)
      138│         except ValueError:
      139│             raise ValueError(

  2  ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/poetry/core/version/pep440/version.py:134 in parse
      132│         from poetry.core.version.pep440.parser import parse_pep440
      133│ 
    → 134│         return parse_pep440(value, cls)
      135│ 
      136│     def is_prerelease(self) -> bool:

  1  ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/poetry/core/version/pep440/parser.py:88 in parse_pep440
       86│     value: str, version_class: Optional[Type["PEP440Version"]] = None
       87│ ) -> "PEP440Version":
    →  88│     return PEP440Parser.parse(value, version_class)
       89│ 

  InvalidVersion

  Invalid PEP 440 version: '3.5.'

  at ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/poetry/core/version/pep440/parser.py:67 in parse
       63│     @classmethod
       64│     def parse(cls, value: str, version_class: Optional[Type["PEP440Version"]] = None):
       65│         match = cls._regex.search(value) if value else None
       66│         if not match:
    →  67│             raise InvalidVersion(f"Invalid PEP 440 version: '{value}'")
       68│ 
       69│         if version_class is None:
       70│             from poetry.core.version.pep440.version import PEP440Version
       71│ 

The following error occurred when trying to handle this error:


  Stack trace:

  21  ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/cleo/application.py:314 in run
       312│ 
       313│             try:
     → 314│                 exit_code = self._run(io)
       315│             except Exception as e:
       316│                 if not self._catch_exceptions:

  20  ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/poetry/console/application.py:167 in _run
       165│         self._load_plugins(io)
       166│ 
     → 167│         return super()._run(io)
       168│ 
       169│     def _configure_io(self, io: IO) -> None:

  19  ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/cleo/application.py:409 in _run
       407│                 io.set_input(ArgvInput(argv))
       408│ 
     → 409│         exit_code = self._run_command(command, io)
       410│         self._running_command = None
       411│ 

  18  ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/cleo/application.py:451 in _run_command
       449│ 
       450│         if error is not None:
     → 451│             raise error
       452│ 
       453│         return event.exit_code

  17  ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/cleo/application.py:435 in _run_command
       433│ 
       434│             if event.command_should_run():
     → 435│                 exit_code = command.run(io)
       436│             else:
       437│                 exit_code = ConsoleCommandEvent.RETURN_CODE_DISABLED

  16  ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/cleo/commands/base_command.py:118 in run
       116│         io.input.validate()
       117│ 
     → 118│         status_code = self.execute(io)
       119│ 
       120│         if status_code is None:

  15  ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/cleo/commands/command.py:85 in execute
        83│ 
        84│         try:
     →  85│             return self.handle()
        86│         except KeyboardInterrupt:
        87│             return 1

  14  ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/poetry/console/commands/add.py:189 in handle
       187│             self._installer.whitelist([r["name"] for r in requirements])
       188│ 
     → 189│             status = self._installer.run()
       190│         except BaseException:
       191│             # Using BaseException here as some exceptions, eg: KeyboardInterrupt, do not inherit from Exception

  13  ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/poetry/installation/installer.py:112 in run
       110│         local_repo = Repository()
       111│ 
     → 112│         return self._do_install(local_repo)
       113│ 
       114│     def dry_run(self, dry_run: bool = True) -> "Installer":

  12  ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/poetry/installation/installer.py:252 in _do_install
       250│             )
       251│ 
     → 252│             ops = solver.solve(use_latest=self._whitelist)
       253│         else:
       254│             self._io.write_line("Installing dependencies from lock file")

  11  ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/poetry/puzzle/solver.py:99 in solve
        97│         with self._provider.progress():
        98│             start = time.time()
     →  99│             packages, depths = self._solve(use_latest=use_latest)
       100│             end = time.time()
       101│ 

  10  ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/poetry/puzzle/solver.py:270 in _solve
       268│ 
       269│         try:
     → 270│             result = resolve_version(
       271│                 self._package, self._provider, locked=locked, use_latest=use_latest
       272│             )

   9  ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/poetry/mixology/__init__.py:24 in resolve_version
        22│     solver = VersionSolver(root, provider, locked=locked, use_latest=use_latest)
        23│ 
     →  24│     return solver.solve()
        25│ 

   8  ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/poetry/mixology/version_solver.py:82 in solve
        80│             while next is not None:
        81│                 self._propagate(next)
     →  82│                 next = self._choose_package_version()
        83│ 
        84│             return self._result()

   7  ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/poetry/mixology/version_solver.py:394 in _choose_package_version
       392│             version = locked
       393│ 
     → 394│         version = self._provider.complete_package(version)
       395│ 
       396│         conflict = False

   6  ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/poetry/puzzle/provider.py:445 in complete_package
       443│             package = DependencyPackage(
       444│                 package.dependency,
     → 445│                 self._pool.package(
       446│                     package.name,
       447│                     package.version.text,

   5  ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/poetry/repositories/pool.py:143 in package
       141│             for idx, repo in enumerate(self._repositories):
       142│                 try:
     → 143│                     package = repo.package(name, version, extras=extras)
       144│                 except PackageNotFound:
       145│                     continue

   4  ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/poetry/repositories/pypi_repository.py:165 in package
       163│         extras: (Union[list, None]) = None,
       164│     ) -> Package:
     → 165│         return self.get_release_info(name, version).to_package(name=name, extras=extras)
       166│ 
       167│     def search(self, query: str) -> List[Package]:

   3  ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/poetry/inspection/info.py:151 in to_package
       149│         package.description = self.summary
       150│         package.root_dir = root_dir
     → 151│         package.python_versions = self.requires_python or "*"
       152│         package.files = self.files
       153│ 

   2  ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/poetry/core/packages/package.py:233 in python_versions
       231│     def python_versions(self, value: str) -> None:
       232│         self._python_versions = value
     → 233│         self._python_constraint = parse_constraint(value)
       234│         self._python_marker = parse_marker(
       235│             create_nested_marker("python_version", self._python_constraint)

   1  ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/poetry/core/semver/helpers.py:33 in parse_constraint
        31│         if len(and_constraints) > 1:
        32│             for constraint in and_constraints:
     →  33│                 constraint_objects.append(parse_single_constraint(constraint))
        34│         else:
        35│             constraint_objects.append(parse_single_constraint(and_constraints[0]))

  ValueError

  Could not parse version constraint: >3.5.*

  at ~/Library/Application Support/pypoetry/venv/lib/python3.8/site-packages/poetry/core/semver/helpers.py:139 in parse_single_constraint
      135│ 
      136│         try:
      137│             version = Version.parse(version)
      138│         except ValueError:
    → 139│             raise ValueError(
      140│                 "Could not parse version constraint: {}".format(constraint)
      141│             )
      142│ 
      143│         if op == "<":

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions