| react-profiling | 0 |
| react-import-map | react,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@d5750093facf |
| route-pattern | /_view_fragments/voltron/pull_requests/show/:user_id/:repository/:id/pull_request_layout(.:format) |
| route-controller | voltron_pull_requests_fragments |
| route-action | pull_request_layout |
| fetch-nonce | v2:35e5b27f-aa45-f070-3c62-2838503759de |
| current-catalog-service-hash | ae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b |
| request-id | 9EAA:3BCA39:1024BB:166B02:6AEC69DC |
| html-safe-nonce | 0f2799d2ec3e0ec2b362909c9865a70a9454dec091a74067b63ce7aff9c9e056 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5RUFBOjNCQ0EzOToxMDI0QkI6MTY2QjAyOjZBRUM2OURDIiwidmlzaXRvcl9pZCI6IjMxMTYyMTIzOTgxMjUyNDY5NDAiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | b152cf7b1d09540157f1a00f11af4a55c1b40460ef2c2ec8dff3c1cb16334d37 |
| hovercard-subject-tag | pull_request:4815797570 |
| github-keyboard-shortcuts | repository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | ///voltron/pull_requests_fragments/pull_request_layout |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/voltron/pull_requests/show/samuelcolvin/python-devtools/169/pull_request_layout |
| twitter:image | https://opengraph.githubassets.com/cddea3def622e1865b31c299cadd587821943151debafcaacbe82691ab645996/samuelcolvin/python-devtools/pull/169 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/cddea3def622e1865b31c299cadd587821943151debafcaacbe82691ab645996/samuelcolvin/python-devtools/pull/169 |
| og:image:alt | Closes #162.
Calling pformat inside an object's __repr__ currently replaces the outer formatter's stream and duplicates output. Save and restore the previous stream in finally so nested for... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | masonjian |
| hostname | github.com |
| expected-hostname | github.com |
| None | 81a8a223b8411e760195a15942ff045b37d56328f5bf02c4ca5f903e3dcb475e |
| turbo-cache-control | no-cache |
| go-import | github.com/samuelcolvin/python-devtools git https://github.com/samuelcolvin/python-devtools.git |
| octolytics-dimension-user_id | 4039449 |
| octolytics-dimension-user_login | samuelcolvin |
| octolytics-dimension-repository_id | 100870674 |
| octolytics-dimension-repository_nwo | samuelcolvin/python-devtools |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 100870674 |
| octolytics-dimension-repository_network_root_nwo | samuelcolvin/python-devtools |
| 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 | a2c6dc5933515805b39ac7c5b9ab4e947c2f5a42 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
| react-app-name | pull-requests |
| Skip to content | https://github.com/samuelcolvin/python-devtools/pull/169#start-of-content |
| https://github.com/ |
| Sign in | https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fsamuelcolvin%2Fpython-devtools%2Fpull%2F169 |
| GitHubRepository hosting, code review, and collaboration | https://github.com/platform |
| CopilotAI coding agent for tasks, projects and automated work | https://github.com/features/copilot |
| ActionsCI/CD and automation | https://github.com/features/actions |
| Code QualityQuality analysis, fixes, and enforcement | https://github.com/features/code-quality |
| CodespacesCloud development environments | https://github.com/features/codespaces |
| Code SecurityVulnerability detection and remediation | https://github.com/security/advanced-security/code-security |
| Secret ProtectionSecret scanning and leak prevention | https://github.com/security/advanced-security/secret-protection |
| All Features | https://github.com/features |
| Documentation | https://docs.github.com/en |
| Training | https://learn.github.com/skills |
| Certifications | https://learn.github.com/credentials |
| Build with Copilot | https://github.com/features/ai |
| Customize Copilot | https://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/customize-copilot-overview |
| Integrations | https://github.com/marketplace |
| Trending repos | https://github.com/trending |
| GitHub Sponsors | https://github.com/open-source/sponsors |
| Developer articles | https://github.com/resources/articles |
| ChangelogYour source for the latest features, improvements, and fixes across GitHub products, all in one place. | https://github.blog/changelog/ |
| Enterprises | https://github.com/enterprise |
| Team | https://github.com/team |
| Startups | https://github.com/enterprise/startups |
| Nonprofits | https://github.com/solutions/industry/nonprofits |
| Healthcare | https://github.com/solutions/industry/healthcare |
| Financial services | https://github.com/solutions/industry/financial-services |
| Manufacturing | https://github.com/solutions/industry/manufacturing |
| Government | https://github.com/solutions/industry/government |
| See all industries | https://github.com/solutions/industry |
| Why GitHub | https://github.com/why-github |
| Customer Stories | https://github.com/customer-stories |
| Business insights | https://github.com/solutions/executive-insights |
| Trust Center | https://github.com/trust-center |
| GitHub Advanced SecurityEnterprise-grade code security | https://github.com/security/advanced-security |
| Copilot for businessEnterprise-grade AI features | https://github.com/features/copilot/copilot-business |
| Premium SupportEnterprise-grade 24/7 support | https://github.com/enterprise/premium-support |
| Documentation | https://docs.github.com/en |
| Resource center | https://github.com/resources |
| Blog | https://github.blog/ |
| Events & webinars | https://github.com/resources/events |
| Community Forum | https://github.com/orgs/community/discussions |
| Customer Stories | https://github.com/customer-stories |
| Integrations | https://github.com/marketplace |
| Customer support | https://help.github.com/ |
| Training | https://learn.github.com/skills |
| GitHub Status | https://www.githubstatus.com/ |
| About | https://github.com/about |
| Partners | https://github.com/partners |
| Changelog | https://github.blog/changelog/ |
| GitHub UniverseThe event for developers, by developers — talks, workshops, and what’s next for GitHub. | https://githubuniverse.com/ |
| Pricing | https://github.com/pricing |
| Sign in | https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fsamuelcolvin%2Fpython-devtools%2Fpull%2F169 |
| Sign up | https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fpull_requests_fragments%2Fpull_request_layout&source=header-repo&source_repo=samuelcolvin%2Fpython-devtools |
| Reload | https://github.com/samuelcolvin/python-devtools/pull/169 |
| Reload | https://github.com/samuelcolvin/python-devtools/pull/169 |
| Reload | https://github.com/samuelcolvin/python-devtools/pull/169 |
| samuelcolvin | https://github.com/samuelcolvin |
| python-devtools | https://github.com/samuelcolvin/python-devtools |
| Code | https://github.com/samuelcolvin/python-devtools |
| Issues21 (21) | https://github.com/samuelcolvin/python-devtools/issues |
| Pull requests8 (8) | https://github.com/samuelcolvin/python-devtools/pulls |
| Actions | https://github.com/samuelcolvin/python-devtools/actions |
| Security and quality | https://github.com/samuelcolvin/python-devtools/security |
| Insights | https://github.com/samuelcolvin/python-devtools/pulse |
| https://github.com/samuelcolvin/python-devtools |
| samuelcolvin | https://github.com/samuelcolvin |
| samuelcolvin:main | https://github.com/samuelcolvin/python-devtools/tree/main |
| masonjian:fix/issue-162-reentrant-pformat | https://github.com/masonjian/python-devtools/tree/fix/issue-162-reentrant-pformat |
| Conversation | https://github.com/samuelcolvin/python-devtools/pull/169 |
| Commits2 (2) | https://github.com/samuelcolvin/python-devtools/pull/169/commits |
| Checks | https://github.com/samuelcolvin/python-devtools/pull/169/checks |
| Files changed | https://github.com/samuelcolvin/python-devtools/pull/169/files |
| Restore PrettyFormat streams after reentrant calls | https://github.com/samuelcolvin/python-devtools/pull/169#top |
| samuelcolvin | https://github.com/samuelcolvin |
| samuelcolvin:main | https://github.com/samuelcolvin/python-devtools/tree/main |
| masonjian:fix/issue-162-reentrant-pformat | https://github.com/masonjian/python-devtools/tree/fix/issue-162-reentrant-pformat |
|
| https://github.com/masonjian |
| masonjian | https://github.com/masonjian |
| Oct 11, 2026 | https://github.com/samuelcolvin/python-devtools/pull/169#issue-5796992788 |
| #162 | https://github.com/samuelcolvin/python-devtools/issues/162 |
| Please reload this page | https://github.com/samuelcolvin/python-devtools/pull/169 |
|
| https://github.com/masonjian |
| Fix PrettyFormat stream restoration for reentrant calls | https://github.com/samuelcolvin/python-devtools/pull/169/commits/74616c30a367a0f1cac172738095e32d5c5e496c |
| 74616c3 | https://github.com/samuelcolvin/python-devtools/pull/169/commits/74616c30a367a0f1cac172738095e32d5c5e496c |
| https://github.com/apps/codecov |
| codecov | https://github.com/apps/codecov |
| Oct 11, 2026 | https://github.com/samuelcolvin/python-devtools/pull/169#issuecomment-6104250106 |
| Codecov | https://app.codecov.io/gh/samuelcolvin/python-devtools/pull/169?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Samuel+Colvin |
| 2aea99d | https://app.codecov.io/gh/samuelcolvin/python-devtools/commit/2aea99d95f4766fbca86139f72a1e4985d10a30e?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Samuel+Colvin |
| 74616c3 | https://app.codecov.io/gh/samuelcolvin/python-devtools/commit/74616c30a367a0f1cac172738095e32d5c5e496c?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Samuel+Colvin |
| Files with missing lines | https://app.codecov.io/gh/samuelcolvin/python-devtools/pull/169?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Samuel+Colvin |
| devtools/prettier.py | https://app.codecov.io/gh/samuelcolvin/python-devtools/pull/169?src=pr&el=tree&filepath=devtools%2Fprettier.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Samuel+Colvin#diff-ZGV2dG9vbHMvcHJldHRpZXIucHk= |
| 1 file with indirect coverage changes | https://app.codecov.io/gh/samuelcolvin/python-devtools/pull/169/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Samuel+Colvin |
| Continue to review full report in Codecov by Harness | https://app.codecov.io/gh/samuelcolvin/python-devtools/pull/169?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Samuel+Colvin |
| Click here to learn more | https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Samuel+Colvin |
| Codecov | https://app.codecov.io/gh/samuelcolvin/python-devtools/pull/169?dropdown=coverage&src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Samuel+Colvin |
| 5022f1f...74616c3 | https://app.codecov.io/gh/samuelcolvin/python-devtools/pull/169?dropdown=coverage&src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Samuel+Colvin |
| comment docs | https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Samuel+Colvin |
| Test Analytics | https://docs.codecov.com/docs/test-analytics |
| Please reload this page | https://github.com/samuelcolvin/python-devtools/pull/169 |
| https://github.com/masonjian |
| masonjian | https://github.com/masonjian |
| October 11, 2026 01:52 | https://github.com/samuelcolvin/python-devtools/pull/169#event-32966804560 |
| https://github.com/masonjian |
| masonjian | https://github.com/masonjian |
| Oct 11, 2026 | https://github.com/samuelcolvin/python-devtools/pull/169#issuecomment-6106033812 |
| current run | https://github.com/samuelcolvin/python-devtools/actions/runs/38102337285 |
| base workflow | https://github.com/samuelcolvin/python-devtools/blob/5022f1f6f1c55d871b1db208c9c1b2ab0df488fe/.github/workflows/ci.yml |
| Codecov report | https://github.com/samuelcolvin/python-devtools/pull/169#issuecomment-6104250106 |
| Python 3.8 Ubuntu job | https://github.com/samuelcolvin/python-devtools/actions/runs/38102337285/job/114360668002 |
| Please reload this page | https://github.com/samuelcolvin/python-devtools/pull/169 |
|
| https://github.com/samuelcolvin |
|
| https://github.com/claude |
| Merge main into fix/issue-162-reentrant-pformat | https://github.com/samuelcolvin/python-devtools/pull/169/commits/d950fc5225ab175aa295f736671f845feddd963e |
| d950fc5 | https://github.com/samuelcolvin/python-devtools/pull/169/commits/d950fc5225ab175aa295f736671f845feddd963e |
| https://claude.ai/code/session_0125Pi5iurTnuhZ5cZ58xcNn | https://claude.ai/code/session_0125Pi5iurTnuhZ5cZ58xcNn |
| https://github.com/samuelcolvin |
| samuelcolvin | https://github.com/samuelcolvin |
| Oct 11, 2026 | https://github.com/samuelcolvin/python-devtools/pull/169#issuecomment-6111722363 |
| Please reload this page | https://github.com/samuelcolvin/python-devtools/pull/169 |
| https://github.com/samuelcolvin |
| samuelcolvin | https://github.com/samuelcolvin |
| c0d009c | https://github.com/samuelcolvin/python-devtools/commit/c0d009c5d8a00886cd90e78042a7c10a93a1ca04 |
| Oct 11, 2026 | https://github.com/samuelcolvin/python-devtools/pull/169#event-32995896605 |
| Please reload this page | https://github.com/samuelcolvin/python-devtools/pull/169 |
| https://github.com/samuelcolvin |
| samuelcolvin | https://github.com/samuelcolvin |
|
Oct 11, 2026
| https://github.com/samuelcolvin/python-devtools/pull/169#ref-pullrequest-5803531686 |
|
Bump version to 0.13.0
#175
| https://github.com/samuelcolvin/python-devtools/pull/175 |
| https://github.co/hiddenchars |
| https://github.com/samuelcolvin/python-devtools/pull/{{ revealButtonHref }} |
| Sign up for free | https://github.com/join?source=comment-repo |
| Sign in to comment | https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fsamuelcolvin%2Fpython-devtools%2Fpull%2F169 |
| Please reload this page | https://github.com/samuelcolvin/python-devtools/pull/169 |
|
(🐞) when using devtools.pformat within a __repr__, the output becomes duplicated
| https://github.com/samuelcolvin/python-devtools/issues/162 |
| Please reload this page | https://github.com/samuelcolvin/python-devtools/pull/169 |
|
| https://github.com/masonjian |
|
| https://github.com/samuelcolvin |
|
| https://github.com |
| Terms | https://docs.github.com/site-policy/github-terms/github-terms-of-service |
| Privacy | https://docs.github.com/site-policy/privacy-policies/github-privacy-statement |
| Security | https://github.com/security |
| Status | https://www.githubstatus.com/ |
| Community | https://github.community/ |
| Docs | https://docs.github.com/ |
| Contact | https://support.github.com?tags=dotcom-footer |