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

BUG: within word punctuation insertion can never land at the last two positions of the prompt

Aberta Para iniciantes
#3,565 0 comentários 0 reações 1 responsável Ver no GitHub

Mantenedores costumam responder em até 2 dias

@ManoharPaturi já está trabalhando nisso.

Desde 27/10/2026.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
76/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
python
Domínio
testing-qa

Direção de pesquisa

Comece lendo InsertPunctuationConverter._insert_within_words e sua docstring; depois, examine os testes de InsertPunctuationConverter. Reproduza o comportamento relatado com o prompt de três caracteres abc e as seeds de 0 a 299. O trabalho estará concluído quando for possível alcançar cada ponto de inserção, inclusive imediatamente antes do último caractere e depois do caractere final.

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

Descrição

Description

InsertPunctuationConverter._insert_within_words samples insertion indices from range(len(prompt_list) minus 1), so for a prompt of n characters only positions 0 through n minus 2 are ever chosen. Of the n plus 1 possible insertion points, a punctuation mark can never land immediately before the last character or after the final character, no matter the seed.

For the three character prompt abc, 300 different seeds produce only prefixes at offsets 0 and 1: outputs like ab!c or abc! are unreachable, while the method docstring says punctuation is inserted at any indices in the prompt.

Expected Behavior

Every insertion point of the prompt, before the first character through after the last, should be reachable.

Reproduction Steps

  1. Run InsertPunctuationConverter(between_words=False, word_swap_ratio=1.0, seed=s).convert_async(prompt="abc", ...) for seeds 0 through 299.
  2. Collect the offset of the inserted punctuation.
  3. Only offsets 0 and 1 ever appear on main.

Minimal Reproduction

offsets = set()
for seed in range(300):
    out = await InsertPunctuationConverter(between_words=False, word_swap_ratio=1.0, seed=seed).convert_async(prompt="abc", input_type="text")
    offsets |= {i for i, ch in enumerate(out.output_text) if not ch.isalnum()}
# {0, 1} on main

Environment

PyRIT main. Python 3.11.

Linguagem predominante
Python
Estrelas
4.7k
Forks
980
Merge médio
2d 9h
PRs com merge (30d)
433

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

  • Sem Dockerfile nem arquivo Docker Compose
  • Tem um modelo de pull request
  • Sem guia de contribuição

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 microsoft/PyRIT

Todas as issues de microsoft/PyRIT

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.