Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Conflicts with python versions on patch level

Aberta
#103 4 comentários 1 reação 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
32/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
python
Domínio
cli, tooling

Direção de pesquisa

Reproduza o problema com um requirements.txt contendo anyio==3.6.1 e dataclasses==0.8 e, em seguida, execute python-inspector -r requirements.txt --json-pdt - -o linux -p 36. Comece por python_inspector/resolve_cli.py e python_inspector/api.py, que aparecem no stack trace. A tarefa estará concluída quando a CLI puder lidar com a restrição de patch-level do Python necessária ou, de outra forma, documentar ou tratar este caso sem a ResolutionImpossible mostrada.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

bug must have

We have a requirements.txt file that cannot be analyzed by Python Inspector due to conflicting dependencies. It boils down to the following two dependencies:

anyio==3.6.1
dataclasses==0.8

When running the command python-inspector -r requirements.txt --json-pdt - -o linux -p 36 it reports

raise ResolutionImpossible(e.criterion.information)
resolvelib.resolvers.ResolutionImpossible: [RequirementInformation(requirement=<Requirement('anyio==3.6.1')>, parent=None)]

When choosing a different Python version, e.g. 37 the problem is caused by the dataclasses library (see full stack trace below).

From what I found out, there seem to be only specific Python versions for which this constellation can work: dataclasses requires Python >=3.6, <3.7; anyio requires Python >=3.6.2. It is, however, not possible to define the Python version for Python Inspector on that level of detail. I assume that the 36 option will select a 3.6.0 version? So, should the corresponding option be extended to support an exact version number? Or is there another way how to solve this issue?

Here is the full stack trace:

Traceback (most recent call last):
  File "/home/heo1wa3/.local/lib/python3.8/site-packages/resolvelib/resolvers.py", line 372, in resolve
    self._add_to_criteria(self.state.criteria, r, parent=None)
  File "/home/heo1wa3/.local/lib/python3.8/site-packages/resolvelib/resolvers.py", line 173, in _add_to_criteria
    raise RequirementsConflicted(criterion)
resolvelib.resolvers.RequirementsConflicted: Requirements conflict: <Requirement('dataclasses==0.8')>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/heo1wa3/.local/lib/python3.8/site-packages/python_inspector/resolve_cli.py", line 246, in resolve_dependencies
    resolution_result: Dict = resolver_api(
  File "/home/heo1wa3/.local/lib/python3.8/site-packages/python_inspector/api.py", line 257, in resolve_dependencies
    resolution, purls = resolve(
  File "/home/heo1wa3/.local/lib/python3.8/site-packages/python_inspector/api.py", line 316, in resolve
    resolved_dependencies, packages = get_resolved_dependencies(
  File "/home/heo1wa3/.local/lib/python3.8/site-packages/python_inspector/api.py", line 354, in get_resolved_dependencies
    resolver_results = resolver.resolve(requirements=requirements, max_rounds=max_rounds)
  File "/home/heo1wa3/.local/lib/python3.8/site-packages/resolvelib/resolvers.py", line 521, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
  File "/home/heo1wa3/.local/lib/python3.8/site-packages/resolvelib/resolvers.py", line 374, in resolve
    raise ResolutionImpossible(e.criterion.information)
resolvelib.resolvers.ResolutionImpossible: [RequirementInformation(requirement=<Requirement('dataclasses==0.8')>, parent=None)]
Linguagem predominante
Python
Estrelas
23
Forks
29
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de aboutcode-org/python-inspector

Todas as issues de aboutcode-org/python-inspector

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.