Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

gh-140771: Add class directive for xmlparser in pyexpat docs#144456

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Closed

Conversation

@kovan
Copy link

@kovankovan commentedFeb 3, 2026
edited by github-actionsbot
Loading

Summary

  • Adds a.. class:: xmlparser directive so that all:class:xmlparser`` references in the documentation resolve properly
  • Documents that the type is available asxml.parsers.expat.XMLParserType
  • UpdatesXMLParserType to be documented as an alias for the class

This fixes the broken cross-references throughout the pyexpat documentation.

Test plan

  • make check passed
  • Documentation builds correctly

🤖 Generated withClaude Code


📚 Documentation preview 📚:https://cpython-previews--144456.org.readthedocs.build/

Add a class directive for xmlparser so that all the :class:`xmlparser`references in the documentation resolve properly. Document that thetype is available as xml.parsers.expat.XMLParserType.Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Copy link
Member

@picnixzpicnixz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

xmlparser does not exist at runtime so we can't document it here. We need an another way to make references work but that may require a Sphinx change.

@bedevere-app
Copy link

A Python core developer has requested some changes be made to your pull request before we can consider merging it. If you could please address their requests along with any other requests in other reviews from core developers that would be appreciated.

Once you have made the requested changes, please leave a comment on this pull request containing the phraseI have made the requested changes; please review again. I will then notify any core developers who have left a review that you're ready for them to take another look at this pull request.

@kovan
Copy link
Author

The class does exist at runtime - it's just accessed viaXMLParserType rather than directly:

>>>importxml.parsers.expatasexpat>>>expat.XMLParserType<class'pyexpat.xmlparser'>>>>expat.XMLParserType.__name__'xmlparser'>>> type(expat.ParserCreate())<class'pyexpat.xmlparser'>

The documentation already usesxmlparser in 30+ places (method signatures likexmlparser.Parse(), cross-references like:class:xmlparser``). Adding.. class:: xmlparser creates the anchor needed for those references to resolve.

The note in my PR already clarifies the access pattern:

"This type is available asxml.parsers.expat.XMLParserType."

Would this approach be acceptable, or do you prefer changing all 30+ references fromxmlparser toXMLParserType instead?

@picnixz
Copy link
Member

The class does exist at runtime - it's just accessed via XMLParserType rather than directly:

The name does not exist. We don't document objects that don't exist at runtime. You can't dopyexpat.xmlparser.

Would this approach be acceptable, or do you prefer changing all 30+ references from xmlparser to XMLParserType instead?

I want to think about it differently. Ideally, I'd like to have a realxmlparser at runtime but it's... weird. I also don't want to break Sphinx inventories or external links, but I also don't want to change all refs (that's what I did first). So for now, I prefer that we have a clear solution before opening PRs and thus will close this PR. In general, don't open PRs if there is no consensus on the issue or a clear solution.

@picnixzpicnixz closed thisFeb 4, 2026
@kovan
Copy link
Author

kovan commentedFeb 4, 2026
edited
Loading

The thing is, I am an action man, you know. And Python has 5000+! open issues, so plenty of room to work here.

@kovan
Copy link
Author

kovan commentedFeb 4, 2026
edited
Loading

Also, the debate can be in the PRs, that's fine for me. I can make edits on the PRs as the conversation evolves.

@picnixz
Copy link
Member

No, debate is in the issue.

@picnixz
Copy link
Member

The thing is, I am an action man, you know. And Python has 5000+! open issues, so plenty of room to work here.

Yes, but you need to be careful. If you just generate PRs with AI, we won't accept them because it takes time to review them. I prefer having 5k+ issues open rather than lots of low-quality PRs generated by an LLM.

@kovan
Copy link
Author

Yeah, but 5000+ open issues is just not acceptable.

Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

@picnixzpicnixzpicnixz requested changes

Assignees

No one assigned

Labels

awaiting changesdocsDocumentation in the Doc dirskip news

Projects

Status: Todo

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

2 participants

@kovan@picnixz

[8]ページ先頭

©2009-2026 Movatter.jp