A execução de qualquer comando autojump normal no Windows leva a isso:
Traceback (most recent call last):
File "C:\Program Files (x86)\CowShell\Vendor\AutoJump\bin\\autojump", line 320, in <module>
sys.exit(main(parse_arguments()))
File "C:\Program Files (x86)\CowShell\Vendor\AutoJump\bin\\autojump", line 314, in main
['.'])))
File "C:\Program Files (x86)\CowShell\Vendor\AutoJump\bin\autojump_utils.py", line 42, in first
return it.next()
File "C:\Program Files (x86)\CowShell\Vendor\AutoJump\bin\autojump_match.py", line 86, in <lambda>
flags=regex_flags,
File "F:\Programs\Python\lib\re.py", line 146, in search
return _compile(pattern, flags).search(string)
File "F:\Programs\Python\lib\re.py", line 251, in _compile
raise error, v # invalid expression
sre_constants.error: unexpected end of regular expression
ECHO is off.
A mudança destacada aqui: https://github.com/wting/autojump/commit/7c7865ea7ecfd937284f774fb0818c5cc10c340a#diff -4b97c2fd2ae952c567c1646bc80e5d43L78
levar à disfunção em sistemas Windows.
A solução proposta é basicamente alterar as linhas 78-80 em autojump_match.py para:
sep = '\\\\' if os.sep == '\\' else os.sep
regex_no_sep = '[^' + sep + ']*'
regex_no_sep_end = regex_no_sep + '$'
regex_one_sep = regex_no_sep + sep + regex_no_sep
(Definindo condicionalmente o valor do separador usado na construção do regex)
Ei, obrigado pelo relatório de bug detalhado!
Infelizmente não tenho acesso a uma máquina Windows. Você pode atualizar esses testes do Windows de forma que reproduzam o erro que você tem? Dessa forma, podemos evitar futuros bugs de regressão.
Apenas experimentando o autojump no Win10 e acertando isso. O patch proposto parece funcionar para mim.
@wting Se os testes não forem realmente executados no Windows, os testes match_consecutive não detectarão o os.sep
errado? Os testes não falharão de fato, a menos que os.sep seja uma barra invertida.
Você pode simular para testes como:
In [1]: import os, mock
In [2]: os.sep
Out[2]: '/'
In [3]: with mock.patch.object(os, 'sep', '\\'):
...: print(os.sep)
...:
\
Eu tive o mesmo problema e a correção sugerida resolveu o problema. Acho que uma solução alternativa seria executar os testes em uma plataforma Windows CI como o appveyor.
ganhar 10 64, o mesmo problema. alterar autojump_match.py funcionou. obrigado.
Profissional do Windows 10, encontrei esse problema hoje ... e o patch sugerido funciona perfeitamente! Muito Obrigado. Eu só me pergunto por que o patch não foi mesclado com o mestre enquanto quatro anos se passaram?
Comentários muito úteis
Profissional do Windows 10, encontrei esse problema hoje ... e o patch sugerido funciona perfeitamente! Muito Obrigado. Eu só me pergunto por que o patch não foi mesclado com o mestre enquanto quatro anos se passaram?