Skip to content
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(provider): split provider code and related tests into individual files for maintainability #830

Merged
merged 39 commits into from
Sep 9, 2023
Merged
Show file tree
Hide file tree
Changes from 26 commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
38c1a33
refactor(provider): split providers into separate files for maintaina…
davidlday Aug 28, 2023
b46328e
refactor(tests): split provider tests into separate files for maintai…
davidlday Aug 28, 2023
41f77d9
Merge branch 'master' into chore/provider-refactor
davidlday Sep 4, 2023
4ea8c62
refactor(provider): fully qualify import of commitizen.providers.base…
davidlday Sep 4, 2023
7ac3a98
refactor(provider): move chdir to providers/conftest.py
davidlday Sep 4, 2023
68b5666
refactor(provider): remove unnecessary TYPE_CHECKING from provider tests
davidlday Sep 4, 2023
5514737
refactor(provider): import all providers to providers/__init__.py to …
davidlday Sep 4, 2023
d20ddb9
Merge branch 'master' into chore/provider-refactor
davidlday Sep 4, 2023
a996237
refactor(provider): split providers into separate files for maintaina…
davidlday Aug 28, 2023
892112e
refactor(tests): split provider tests into separate files for maintai…
davidlday Aug 28, 2023
5786ed0
refactor(provider): fully qualify import of commitizen.providers.base…
davidlday Sep 4, 2023
0f5e54c
refactor(provider): move chdir to providers/conftest.py
davidlday Sep 4, 2023
14be208
refactor(provider): remove unnecessary TYPE_CHECKING from provider tests
davidlday Sep 4, 2023
346919e
refactor(provider): import all providers to providers/__init__.py to …
davidlday Sep 4, 2023
775d5a8
Merge branch 'chore/provider-refactor' of github.com:davidlday/commit…
davidlday Sep 4, 2023
ebd1e71
refactor(provider): split providers into separate files for maintaina…
davidlday Aug 28, 2023
3eecbbe
refactor(tests): split provider tests into separate files for maintai…
davidlday Aug 28, 2023
2c1b4ec
refactor(provider): fully qualify import of commitizen.providers.base…
davidlday Sep 4, 2023
4b5becf
refactor(provider): move chdir to providers/conftest.py
davidlday Sep 4, 2023
765d3f4
refactor(provider): remove unnecessary TYPE_CHECKING from provider tests
davidlday Sep 4, 2023
0233334
refactor(provider): import all providers to providers/__init__.py to …
davidlday Sep 4, 2023
5ea3f1e
Merge branch 'chore/provider-refactor' of github.com:davidlday/commit…
davidlday Sep 4, 2023
0c52b09
chore: removed chdir from tests/providers/test_base_provider.py
davidlday Sep 5, 2023
ba73dcb
refactor: revert unintentionally reformatting
davidlday Sep 5, 2023
580da4a
refactor: remove unused imports
davidlday Sep 5, 2023
2eb75c6
refactor: use __all__ to name exports
davidlday Sep 5, 2023
27df278
Merge branch 'master' into chore/provider-refactor
Lee-W Sep 5, 2023
e5cf494
refactor(provider): split providers into separate files for maintaina…
davidlday Aug 28, 2023
0b0597e
refactor(tests): split provider tests into separate files for maintai…
davidlday Aug 28, 2023
d7d1561
refactor(provider): fully qualify import of commitizen.providers.base…
davidlday Sep 4, 2023
96a8bff
refactor(provider): move chdir to providers/conftest.py
davidlday Sep 4, 2023
11f0240
refactor(provider): remove unnecessary TYPE_CHECKING from provider tests
davidlday Sep 4, 2023
e6e079d
refactor(provider): import all providers to providers/__init__.py to …
davidlday Sep 4, 2023
0720277
chore: removed chdir from tests/providers/test_base_provider.py
davidlday Sep 5, 2023
d0a0bfe
refactor: revert unintentionally reformatting
davidlday Sep 5, 2023
3e49c2a
refactor: remove unused imports
davidlday Sep 5, 2023
bcb108d
refactor: use __all__ to name exports
davidlday Sep 5, 2023
2ddca6d
Merge branch 'chore/provider-refactor' of github.com:davidlday/commit…
davidlday Sep 6, 2023
b02410b
Merge branch 'master' into chore/provider-refactor
Lee-W Sep 9, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
319 changes: 0 additions & 319 deletions commitizen/providers.py

This file was deleted.

46 changes: 46 additions & 0 deletions commitizen/providers/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
from __future__ import annotations

from typing import cast

import importlib_metadata as metadata

from commitizen.config.base_config import BaseConfig
from commitizen.exceptions import VersionProviderUnknown

from commitizen.providers.base_provider import VersionProvider
from commitizen.providers.cargo_provider import CargoProvider
from commitizen.providers.commitizen_provider import CommitizenProvider
from commitizen.providers.composer_provider import ComposerProvider
from commitizen.providers.npm_provider import NpmProvider
from commitizen.providers.pep621_provider import Pep621Provider
from commitizen.providers.poetry_provider import PoetryProvider
from commitizen.providers.scm_provider import ScmProvider

__all__ = [
"get_provider",
"CargoProvider",
"CommitizenProvider",
"ComposerProvider",
"NpmProvider",
"Pep621Provider",
"PoetryProvider",
"ScmProvider",
]

PROVIDER_ENTRYPOINT = "commitizen.provider"
DEFAULT_PROVIDER = "commitizen"


def get_provider(config: BaseConfig) -> VersionProvider:
"""
Get the version provider as defined in the configuration

:raises VersionProviderUnknown: if the provider named by `version_provider` is not found.
"""
provider_name = config.settings["version_provider"] or DEFAULT_PROVIDER
try:
(ep,) = metadata.entry_points(name=provider_name, group=PROVIDER_ENTRYPOINT)
except ValueError:
raise VersionProviderUnknown(f'Version Provider "{provider_name}" unknown.')
provider_cls = ep.load()
return cast(VersionProvider, provider_cls(config))
Loading
Loading