This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2016年12月10日 19:12 by noirbizarre, last changed 2022年04月11日 14:58 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| disable-distutils-string-interpolation.patch | noirbizarre, 2016年12月10日 19:12 | Disable string interpolation in distutils config parsing | review | |
| Messages (6) | |||
|---|---|---|---|
| msg282865 - (view) | Author: Axel Haustant (noirbizarre) * | Date: 2016年12月10日 19:12 | |
Because of the Python 3.2 configparser renaming/refactoring, string interpolation has been enabled into distutils config parsing and so fails to read any setup.cfg with percent signs (try to perform string interpolation and fails). To reproduce: create a project with a percent sign anywhere in the setup.cfg file and execute python setup.py egg_info. It will pass on Python 2.x and fails on Python 3.x. The attached patch suimply disable string interpolation in distutils config parsing. That would be awesome to have this applied on any 3.x version (because project using tox to test against different Python versions also fails with the same issue Python 3.x and PyPI 3.x) |
|||
| msg282992 - (view) | Author: Berker Peksag (berker.peksag) * (Python committer) | Date: 2016年12月12日 13:00 | |
Thanks for the report! This looks similar to issue 20754. Disabling string interpolation would break existing code (but probably just Python 3 only code) Would using %% instead of % be possible for you? (3.3 and 3.4 are in security-fix-only mode so I removed them from the versions field.) |
|||
| msg282996 - (view) | Author: Axel Haustant (noirbizarre) * | Date: 2016年12月12日 13:37 | |
You're welcome. I understand the backward compatibility point. But I think that the current state is breaking existing code as it's not documented anywhere and it's a side-effect of another change, not something intentionnal. (this is why I submitted this issue because I'm developing a tool which use the setup.cfg file to store data and it is broken in Python 3. I saw a lot of bug reports on different tools with the same issue (ex: nosetest configuration) I cannot use %% for many reason: - it will not work with Python 2.x (problematic for 2/3 cross compatibility) - it needs every tools to know that in Python 3, they have to change their parser Right now, I'm supporting configuration into an external file for Python 3.x Thanks for your response ! I hope that it can be integrated into future releases (noted the point on 3.3/3.4). |
|||
| msg283005 - (view) | Author: Jason R. Coombs (jaraco) * (Python committer) | Date: 2016年12月12日 14:29 | |
This looks to be another manifestation of issue20120 and is a duplicate of issue20754. |
|||
| msg283012 - (view) | Author: Axel Haustant (noirbizarre) * | Date: 2016年12月12日 15:42 | |
No it's not. Same problem but on a different part: the two cited issues are about the .pypirc file not the setup.cfg. The parsing does not occurs at the same place and the fix does not works for setup.cfg (I tried before submitting this issue). In this specific case, setuptools calls distutils to parse the file so the fix has to be in distutils not setuptools (whereas for .pypirc, this is setuptools which is parsing the file) |
|||
| msg283013 - (view) | Author: Axel Haustant (noirbizarre) * | Date: 2016年12月12日 15:46 | |
Sorry, it is effectively a duplicate of the second one. But I submitted a patch which is not present in the other. What should I do ? (I'll attach the patch to the other one instead) |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:58:40 | admin | set | github: 73121 |
| 2016年12月12日 16:34:26 | berker.peksag | set | superseder: Distribution.parse_config_files uses interpolation stage: resolved |
| 2016年12月12日 15:46:11 | noirbizarre | set | messages: + msg283013 |
| 2016年12月12日 15:42:27 | noirbizarre | set | messages: + msg283012 |
| 2016年12月12日 14:29:34 | jaraco | set | status: open -> closed resolution: duplicate messages: + msg283005 |
| 2016年12月12日 13:37:35 | noirbizarre | set | messages: + msg282996 |
| 2016年12月12日 13:00:56 | berker.peksag | set | versions:
- Python 3.3, Python 3.4 nosy: + jaraco, berker.peksag messages: + msg282992 type: crash -> behavior |
| 2016年12月10日 19:12:20 | noirbizarre | create | |