Skip to content

poetry add: django-anymail RuntimeError with extra package in 1.1 #3017

@tony

Description

@tony

Possible duplicate of #3016

Recreate

poetry self update / get poetry 1.1

  • poetry new testpoetry-1.1
  • cd testpoetry-1.1
/tmp/testpoetry-1.1 6s ❯ poetry add --lock 'django-anymail@^6.0' -E postmark -vvv
Using virtualenv: /home/t/.cache/pypoetry/virtualenvs/testpoetry-1.1-5zq4zwci-py3.7
PyPI: No release information found for django-anymail-0.1.dev0, skipping
PyPI: 3 packages found for django-anymail >=6.0,<7.0

Updating dependencies
Resolving dependencies...
   1: fact: testpoetry-1.1 is 0.1.0
   1: derived: testpoetry-1.1
   1: fact: testpoetry-1.1 depends on django-anymail[postmark] (^6.0)
   1: selecting testpoetry-1.1 (0.1.0)
   1: derived: django-anymail[postmark] (^6.0)
PyPI: No release information found for django-anymail-0.1.dev0, skipping
PyPI: 3 packages found for django-anymail >=6.0,<7.0
   1: Version solving took 0.004 seconds.
   1: Tried 1 solutions.

  Stack trace:

  14  ~/.poetry/lib/poetry/_vendor/py3.7/clikit/console_application.py:131 in run
       129│             parsed_args = resolved_command.args
       130│
     → 131│             status_code = command.handle(parsed_args, io)
       132│         except KeyboardInterrupt:
       133│             status_code = 1

  13  ~/.poetry/lib/poetry/_vendor/py3.7/clikit/api/command/command.py:120 in handle
       118│     def handle(self, args, io):  # type: (Args, IO) -> int
       119│         try:
     → 120│             status_code = self._do_handle(args, io)
       121│         except KeyboardInterrupt:
       122│             if io.is_debug():

  12  ~/.poetry/lib/poetry/_vendor/py3.7/clikit/api/command/command.py:171 in _do_handle
       169│         handler_method = self._config.handler_method
       170│
     → 171│         return getattr(handler, handler_method)(args, io, self)
       172│
       173│     def __repr__(self):  # type: () -> str

  11  ~/.poetry/lib/poetry/_vendor/py3.7/cleo/commands/command.py:92 in wrap_handle
        90│         self._command = command
        91│
     →  92│         return self.handle()
        93│
        94│     def handle(self):  # type: () -> Optional[int]

  10  ~/.poetry/lib/poetry/console/commands/add.py:174 in handle
       172│
       173│         try:
     → 174│             status = self._installer.run()
       175│         except Exception:
       176│             self.poetry.file.write(original_content)

   9  ~/.poetry/lib/poetry/installation/installer.py:99 in run
        97│         local_repo = Repository()
        98│
     →  99│         return self._do_install(local_repo)
       100│
       101│     def dry_run(self, dry_run=True):  # type: (bool) -> Installer

   8  ~/.poetry/lib/poetry/installation/installer.py:205 in _do_install
       203│             )
       204│
     → 205│             ops = solver.solve(use_latest=self._whitelist)
       206│         else:
       207│             self._io.write_line("Installing dependencies from lock file")

   7  ~/.poetry/lib/poetry/puzzle/solver.py:65 in solve
        63│         with self._provider.progress():
        64│             start = time.time()
     →  65│             packages, depths = self._solve(use_latest=use_latest)
        66│             end = time.time()
        67│

   6  ~/.poetry/lib/poetry/puzzle/solver.py:234 in _solve
       232│         try:
       233│             result = resolve_version(
     → 234│                 self._package, self._provider, locked=locked, use_latest=use_latest
       235│             )
       236│

   5  ~/.poetry/lib/poetry/mixology/__init__.py:7 in resolve_version
       5│     solver = VersionSolver(root, provider, locked=locked, use_latest=use_latest)
       6│
     → 7│     return solver.solve()
       8│

   4  ~/.poetry/lib/poetry/mixology/version_solver.py:84 in solve
        82│             while next is not None:
        83│                 self._propagate(next)
     →  84│                 next = self._choose_package_version()
        85│
        86│             return self._result()

   3  ~/.poetry/lib/poetry/mixology/version_solver.py:400 in _choose_package_version
       398│
       399│         conflict = False
     → 400│         for incompatibility in self._provider.incompatibilities_for(version):
       401│             self._add_incompatibility(incompatibility)
       402│

   2  ~/.poetry/lib/poetry/puzzle/provider.py:414 in incompatibilities_for
       412│                 DependencyCause(),
       413│             )
     → 414│             for dep in dependencies
       415│         ]
       416│

   1  ~/.poetry/lib/poetry/puzzle/provider.py:414 in <listcomp>
       412│                 DependencyCause(),
       413│             )
     → 414│             for dep in dependencies
       415│         ]
       416│

  AssertionError

  at ~/.poetry/lib/poetry/mixology/incompatibility.py:60 in __init__
       56│                     # intersection, they're mutually exclusive, making this incompatibility
       57│                     # irrelevant, since we already know that mutually exclusive version
       58│                     # ranges are incompatible. We should never derive an irrelevant
       59│                     # incompatibility.
    →  60│                     assert by_ref[ref] is not None
       61│                 else:
       62│                     by_ref[ref] = term
       63│
       64│             new_terms = []
  • OS version and name: WSL 2
  • Poetry version: Poetry 1.1.0
  • Link of a Gist with the contents of your pyproject.toml file: None

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/bugSomething isn't working as expected

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions