2013-03-06 2 views
2

Babel을 파이썬 프로젝트에서 사용하고 싶습니다.setup.py의 Babel의 message_extractors 설정 : 튜플의 세번째 파라미터

setup(
    ... 
    message_extractors = {'my_project': [('**.py', 'lingua_python', None), 
    ]}, 
    ... 

그리고 모든 것이 잘 작동 : 나는 문서에 따라 다음을 따라 뭔가가있는 setup.py 있습니다. 이제 세 번째 매개 변수 (None으로 설정)가 의미하는 바가 무엇인지 그리고 내가 알기 위해 무엇을 전달할 수 있는지 궁금합니다. 나는 Babel documentation 보았지만 아무것도 찾을 수 없습니다,하지만 난 바벨의 Mako documentation에 이것을보고 :

# Extraction from Python source files 

[python: myproj/**.py] 

# Extraction from Mako templates 

[mako: myproj/templates/**.html] 
input_encoding = utf-8 

그리고 궁금 해서요 :이 input_encoding 옵션을 사용하면이 통과 할 수있는 일처럼 보인다. 필자는 파이썬, 내 템플리트 등에서 유니 코드와 UTF-8을 사용하고 있기 때문에 이것이 올바른 옵션일지도 모른다고 생각했습니다. (어쩌면 내포 된 가정 일 수도 있습니다.)

이제는이 동작을 문서화하는 바지를 찾고 있는데, 발견 한 바벨 문서의 일부조차도 세 번째 매개 변수가 무엇인지에 대해 언급하지 않았습니다.

자세히 설명해주는 유용한 링크를 공유하여 알려 주시기 바랍니다. 미리 감사드립니다.

업데이트 : 나는 마지막 인수가 가능 확장자 (예를 들어, mako)에 전달 옵션의 dict 것 같다 것을 발견했다. 마지막 매개 변수를 None에서 {'input_encoding': 'utf-8'}으로 설정하면 mako.exceptions.CompileException에 대해 불평한 메시지가 Unicode decode operation of encoding 'ascii' failed 사라졌습니다. 그래서 이것이 대답 인 것처럼 보이지만, 나는 이것에 대한 문서를 찾고 있습니다.

+0

Babel에 대한 Mako 문서에서 찾은 것을 언급 해 주셔서 감사합니다! 그게 바로 내가 필요로하는 것입니다! (저는'[mako : myproj/templates/**. html] input_encoding = utf-8'에 대해 이야기하고 있습니다) –

답변

3

세 번째 매개 변수는 옵션 매핑입니다.

추출기 메서드에 전달되는 임의의 키워드 매개 변수를 포함 할 수 있습니다. 추출기 방법에 따라 전적으로 허용되는 키워드 매개 변수에 달려 있습니다.

추출기는 호출시이 매개 변수를 마지막 매개 변수로 전달합니다. 일반적으로 메서드 서명에 options이라고합니다. Mako Babel plugin은 예를 들어 encodinginput_encoding을 지원합니다. 전자는 후자의 매개 변수에 대한 철자가있는 것 같습니다. input_encoding이 지정되지 않은 경우에만 사용됩니다.

마찬가지로, 모든 바벨 플러그인은 지원되는 옵션을 별도로 문서화해야하며 바벨 프로젝트는 제한을 설정하지 않으며 각 플러그인이 지원하는 특성을 알지도 못합니다. 마코 갈퀴

구체적인 내용은 Common Framework Integrations section에 설명되어

마코 추출기 (Template/TemplateLookupinput_encoding 파라미터 동일) 템플릿의 인코딩을 지정하는 옵션 input_encoding 매개 변수를 지원한다.