Skip to content

Move ExitCode's definition from _pytest.main to _pytest.config#6711

Merged
bluetech merged 1 commit intopytest-dev:featuresfrom
bluetech:mv-exitcode
Feb 11, 2020
Merged

Move ExitCode's definition from _pytest.main to _pytest.config#6711
bluetech merged 1 commit intopytest-dev:featuresfrom
bluetech:mv-exitcode

Conversation

@bluetech
Copy link
Member

ExitCode is used in several internal modules and hooks and so with type
annotations added, needs to be imported a lot.

_pytest.main, being the entry point, generally sits at the top of the
import tree.

So, it's not great to have ExitCode defined in _pytest.main, because it
will cause a lot of import cycles once type annotations are added (in
fact there is already one, which this change removes).

Move it to _pytest.config instead.

_pytest.main still imports ExitCode, so importing from there still
works, although external users should really be importing from pytest.

ExitCode is used in several internal modules and hooks and so with type
annotations added, needs to be imported a lot.

_pytest.main, being the entry point, generally sits at the top of the
import tree.

So, it's not great to have ExitCode defined in _pytest.main, because it
will cause a lot of import cycles once type annotations are added (in
fact there is already one, which this change removes).

Move it to _pytest.config instead.

_pytest.main still imports ExitCode, so importing from there still
works, although external users should really be importing from `pytest`.
Copy link
Contributor

@blueyed blueyed left a comment

Choose a reason for hiding this comment

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

Nice.
(Only a single conflict with master also - checked a rebase)

@bluetech bluetech merged commit 7484e34 into pytest-dev:features Feb 11, 2020
@bluetech bluetech deleted the mv-exitcode branch February 28, 2020 12:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants