Title: codeop: inconsistent handling of invalid escapes · Issue #96052 · python/cpython · GitHub
Open Graph Title: codeop: inconsistent handling of invalid escapes · Issue #96052 · python/cpython
X Title: codeop: inconsistent handling of invalid escapes · Issue #96052 · python/cpython
Description: Bug report It seems like the codeop module is inconsistent with regards to handling of invalid escapes. For example, '\(' is accepted at the top level, but apparently not within indented blocks. Python 3.10.4 (tags/v3.10.4:9d38120, Mar 2...
Open Graph Description: Bug report It seems like the codeop module is inconsistent with regards to handling of invalid escapes. For example, '\(' is accepted at the top level, but apparently not within indented blocks. Py...
X Description: Bug report It seems like the codeop module is inconsistent with regards to handling of invalid escapes. For example, '\(' is accepted at the top level, but apparently not within indented bl...
Opengraph URL: https://github.com/python/cpython/issues/96052
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"codeop: inconsistent handling of invalid escapes","articleBody":"# Bug report\r\n\r\nIt seems like the `codeop` module is inconsistent with regards to handling of invalid escapes. For example, `'\\('` is accepted at the top level, but apparently not within indented blocks.\r\n\r\n```\r\nPython 3.10.4 (tags/v3.10.4:9d38120, Mar 23 2022, 23:13:41) [MSC v.1929 64 bit (AMD64)] on win32\r\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\r\n\u003e\u003e\u003e import codeop\r\n\u003e\u003e\u003e codeop.compile_command(\"'\\('\")\r\n\u003ccode object \u003cmodule\u003e at 0x00000244A5BE6290, file \"\u003cinput\u003e\", line 1\u003e\r\n\u003e\u003e\u003e codeop.compile_command(\"while False:\\n\\t'\\('\")\r\nTraceback (most recent call last):\r\n File \"\u003cstdin\u003e\", line 1, in \u003cmodule\u003e\r\n File \"C:\\Users\\kevin\\AppData\\Local\\Programs\\Python\\Python310\\lib\\codeop.py\", line 107, in compile_command\r\n return _maybe_compile(_compile, source, filename, symbol)\r\n File \"C:\\Users\\kevin\\AppData\\Local\\Programs\\Python\\Python310\\lib\\codeop.py\", line 70, in _maybe_compile\r\n compiler(source + \"\\n\", filename, symbol)\r\n File \"C:\\Users\\kevin\\AppData\\Local\\Programs\\Python\\Python310\\lib\\codeop.py\", line 86, in _compile\r\n return compile(source, filename, symbol, PyCF_DONT_IMPLY_DEDENT | PyCF_ALLOW_INCOMPLETE_INPUT)\r\n File \"\u003cinput\u003e\", line 2\r\n '\\('\r\n ^^^^\r\nSyntaxError: invalid escape sequence '\\('\r\n```\r\n\r\nThis can also be seen when submitting code via IDLE; e.g.\r\n\r\n\r\n\r\nHowever, such code is accepted by a \"plain\" Python terminal:\r\n\r\n\r\n\r\nGiven the discrepancy, it seems like invalid escapes should perhaps be accepted by `codeop` here?\r\n\r\n# Your environment\r\n\r\nPython 3.10.4 (tags/v3.10.4:9d38120, Mar 23 2022, 23:13:41) [MSC v.1929 64 bit (AMD64)] on win32\r\n","author":{"url":"https://github.com/kevinushey","@type":"Person","name":"kevinushey"},"datePublished":"2022-08-17T17:30:47.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":6},"url":"https://github.com/96052/cpython/issues/96052"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:09128f1e-da52-88e4-7b1e-e481b25cc202 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | C144:2265AE:20DFA24:2CCE2C4:696AC7D1 |
| html-safe-nonce | 68692596fc9635cf00c849c58cd54453bc91a6beb54d59ee7a43eee568f93ca3 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDMTQ0OjIyNjVBRToyMERGQTI0OjJDQ0UyQzQ6Njk2QUM3RDEiLCJ2aXNpdG9yX2lkIjoiNTU3NDQ2MTI5NTMxNTA0NDMwNSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 3ef42c3ae10085263a541adde783428f4f59d50200d97166e4547872856e1f8f |
| hovercard-subject-tag | issue:1342074091 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/python/cpython/96052/issue_layout |
| twitter:image | https://opengraph.githubassets.com/4db99a666a9cf905e2d9e13a39f7ff7649e6391705e3f30a37e3c2185c0a2990/python/cpython/issues/96052 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/4db99a666a9cf905e2d9e13a39f7ff7649e6391705e3f30a37e3c2185c0a2990/python/cpython/issues/96052 |
| og:image:alt | Bug report It seems like the codeop module is inconsistent with regards to handling of invalid escapes. For example, '\(' is accepted at the top level, but apparently not within indented blocks. Py... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | kevinushey |
| hostname | github.com |
| expected-hostname | github.com |
| None | 986b6a1d774985095564e64d6963d11f094da3d0e2bfda2ab1a27d63662eb033 |
| turbo-cache-control | no-preview |
| go-import | github.com/python/cpython git https://github.com/python/cpython.git |
| octolytics-dimension-user_id | 1525981 |
| octolytics-dimension-user_login | python |
| octolytics-dimension-repository_id | 81598961 |
| octolytics-dimension-repository_nwo | python/cpython |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 81598961 |
| octolytics-dimension-repository_network_root_nwo | python/cpython |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 89ad2112b9c4e11df6a0c13c8c1f8eedd36b0977 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width