[DONT REVIEW] WIP: Migrate Node __init__ logic to from_parent factory methods#14119
Draft
RonnyPfannschmidt wants to merge 1 commit intopytest-dev:mainfrom
Draft
[DONT REVIEW] WIP: Migrate Node __init__ logic to from_parent factory methods#14119RonnyPfannschmidt wants to merge 1 commit intopytest-dev:mainfrom
RonnyPfannschmidt wants to merge 1 commit intopytest-dev:mainfrom
Conversation
This refactoring moves derivation logic from Node __init__ methods to from_parent factory methods, making constructors simpler (assignment-only). Changes: - Node.from_parent now computes config/session from parent - FSCollector.from_parent now computes name/nodeid from path - Item.from_parent performs diamond inheritance check before construction - Session.from_config handles plugin registration post-construction - Package, Function, DoctestItem made cooperative (accept **kwargs) - Removed legacy fspath parameter support (was PytestRemovedIn9Warning) - Removed non-cooperative constructor fallback in NodeMeta._create - Updated tests to use cooperative constructors Note: Diamond inheritance (Item + Collector) warning registration needs to be addressed in a separate PR before this can be finalized. Co-authored-by: Cursor AI <ai@cursor.sh> Co-authored-by: Anthropic Claude <claude@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Refactors Node constructors to be simple assignment-only, moving all derivation logic to
from_parentfactory methods.Changes
Node.from_parentcomputesconfig/sessionfrom parentFSCollector.from_parentcomputesname/nodeidfrom pathItem.from_parentperforms diamond inheritance check before constructionSession.from_confighandles plugin registration post-constructionfspathparameter (wasPytestRemovedIn9Warning)NodeMeta._createBlockers
This PR depends on prior changes that need separate PRs first:
Opening as draft to preserve work-in-progress state. Not ready for review.