python-semantic-release 9.2.0__py3-none-any.whl → 9.2.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-semantic-release
3
- Version: 9.2.0
3
+ Version: 9.2.1
4
4
  Summary: Automatic Semantic Versioning for Python projects
5
5
  Author-email: Rolf Erik Lekang <me@rolflekang.com>
6
6
  License: MIT
@@ -35,7 +35,7 @@ Requires-Dist: shellingham >=1.5.0.post1
35
35
  Provides-Extra: dev
36
36
  Requires-Dist: pre-commit ; extra == 'dev'
37
37
  Requires-Dist: tox ; extra == 'dev'
38
- Requires-Dist: ruff ==0.1.11 ; extra == 'dev'
38
+ Requires-Dist: ruff ==0.3.2 ; extra == 'dev'
39
39
  Provides-Extra: docs
40
40
  Requires-Dist: Sphinx <=6.0.0 ; extra == 'docs'
41
41
  Requires-Dist: sphinxcontrib-apidoc ==0.3.0 ; extra == 'docs'
@@ -1,20 +1,20 @@
1
- semantic_release/__init__.py,sha256=VAvwW3w5b39fdfZha1JYL-fk_yvUuSj9aP7DihEURSE,869
1
+ semantic_release/__init__.py,sha256=bJVwtLvzG4msFOn0HdwAXWwB5EwPQ3I39rraXXrlhw0,870
2
2
  semantic_release/__main__.py,sha256=vXOARLV7KHeVXgpOMU0Q-8wovpdsOrtTsycxulI5xIE,106
3
3
  semantic_release/const.py,sha256=Z1o2QNh60wSLeF-_1TemMBjU3ZXbV0XghnUFsbTVfOs,831
4
4
  semantic_release/enums.py,sha256=D5B_reQGGKQQT22HO5PUtvn2Bok3fkht6TfJtXkmAUg,1020
5
5
  semantic_release/errors.py,sha256=KKKCV45vvE9tla0sxYDGHkHWvqDn1gEfGIpzujcDbeI,809
6
- semantic_release/helpers.py,sha256=JYsAVmqF46VLONkT5t_0M5cq4zs6gNC3vzQhW3WlbN8,5571
6
+ semantic_release/helpers.py,sha256=d1jOX0SNyqPc_3wr14xR25FfpqhMd4Ev7MNBOWlScc0,5581
7
7
  semantic_release/changelog/__init__.py,sha256=Bg6Xe5Vt32rWoMscW-hd4sUwiZqzWmsg4CD1EhMesMY,262
8
8
  semantic_release/changelog/context.py,sha256=ItSz5Bon2mcJkLxyQZzBTukN0zEdcaVQ4iXvz3jGCLc,986
9
- semantic_release/changelog/release_history.py,sha256=GpJ1aQDq46ymBUBCILInfJ4sVuZoexiEfUBqAB9FN0o,6712
10
- semantic_release/changelog/template.py,sha256=Vzsc2dN4_6RuykELN8lqEc4L9Gw6ibpiq4oB36kUoOU,4649
9
+ semantic_release/changelog/release_history.py,sha256=ShzZpxTjhxka6TMbzOzYzG3EuCH8j3xjUQzll-FKcCo,6675
10
+ semantic_release/changelog/template.py,sha256=JqZcjdozM9-059Sa8PfiHxYNeyZFa0jxk_beyRLv5sU,4640
11
11
  semantic_release/cli/__init__.py,sha256=gwAYhZO-4TR0tKCkQ4GqutWsL--0CII2_dcbrElI4M4,419
12
12
  semantic_release/cli/common.py,sha256=cVQUI7Uaac_nJ7VEXuJ7Q9pVJpuMVRvE7bBl_i96g20,1439
13
- semantic_release/cli/config.py,sha256=9k0ms8H-A7Idpww3dDqrcuIGFFhBFHZzk-T_vx9QGmM,15822
13
+ semantic_release/cli/config.py,sha256=eSNqPv5G-ta3OkD0Wd9p5s2_XbwGTI50YhpWElcahHs,15854
14
14
  semantic_release/cli/const.py,sha256=S8oNNpSaKdZxcAs7PAKEjQHic0czoJBGd7XHo57FOzw,39
15
15
  semantic_release/cli/github_actions_output.py,sha256=stGWcuMtelY0qM2E_-IfofP6UvsQ6czsO7qpMfnRJI4,2102
16
16
  semantic_release/cli/masking_filter.py,sha256=DxqjiJyABlzwwwZ1r8JGQpb6QrF00StJFm0-2-s5Fv0,3071
17
- semantic_release/cli/util.py,sha256=toWIrjKhnuU66giiLD5anpHGg1OuVbhnPigIDt4byxA,3754
17
+ semantic_release/cli/util.py,sha256=FyXaBkeL7nXKjy3X9rQLEwvn7p46xPekp2V8Z-5MVrk,3755
18
18
  semantic_release/cli/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
19
  semantic_release/cli/commands/changelog.py,sha256=vIJKTy8vPh7xGzJ3jEz-1z9evuJrHVg-Wqmms-c6G_k,4040
20
20
  semantic_release/cli/commands/generate_config.py,sha256=BwtwFhh80bkOUUNnR2ArC51YfPKI_y4HMD7C1oAFREA,1695
@@ -22,32 +22,32 @@ semantic_release/cli/commands/main.py,sha256=LBbHbDNIctb35bUQsklefXVPN9bhY-LlrQF
22
22
  semantic_release/cli/commands/publish.py,sha256=CvhZ4Z8CTPS-4f7kWH-xJ5JTk3jlJ-p8Mg7y2KC4SnY,1492
23
23
  semantic_release/cli/commands/version.py,sha256=lFXRUPM-amJaRNSaneV5olrf6UEYN_mCeBN_y7jGssk,22416
24
24
  semantic_release/commit_parser/__init__.py,sha256=cv5HFBdw7OJd4Laj4Ex8ZZ5Tml8GwXgQcXW6Pasr2Ao,615
25
- semantic_release/commit_parser/_base.py,sha256=d7-sOgKn44-IG_fpJhSPZuOvkrVrMVTihfH395i3qtE,2617
26
- semantic_release/commit_parser/angular.py,sha256=7kp-vo3hpShHC3X3TZKHiOyXI_grLHn1hZ8L8bI3gC8,4392
27
- semantic_release/commit_parser/emoji.py,sha256=alZL8BgMfdOQYTFwWPn9JtWD2HAoYNeHigFYjxxLqy8,3288
28
- semantic_release/commit_parser/scipy.py,sha256=YOO5SaE0d3R6nCg5WBCBe6Zd0hoPjBZrdRr7IHVsdSw,5776
29
- semantic_release/commit_parser/tag.py,sha256=Ue_XYc-Y_BWda4uMcYcOY9wU_12aw_brySMHekX4EX4,3193
25
+ semantic_release/commit_parser/_base.py,sha256=aDS0dhFosT5i11tA5Ez8BTeikk6jwXjSEpJnJC5D2cs,2609
26
+ semantic_release/commit_parser/angular.py,sha256=bS7Wrzpg_6zFil5Y4GIZkeGDPhvWQdTlFdWTtGVcpp0,4393
27
+ semantic_release/commit_parser/emoji.py,sha256=6cFnqpvtjtxlwDYc8oB9y41RPqFGGD8PbqiAA53SVac,3289
28
+ semantic_release/commit_parser/scipy.py,sha256=AaAtQYUsG_Y29YIgDVISl5mljBCkG8zyzUkn_3HYGeM,5777
29
+ semantic_release/commit_parser/tag.py,sha256=0Y8GTRclyoLMhyDRrcMU8JKTM4lsbfpJbjqZ7qz5ifE,3194
30
30
  semantic_release/commit_parser/token.py,sha256=UxYAwEylPvp4x39RqNA9ITcgkaSRDEH7A5XDDJ3tdiM,1505
31
31
  semantic_release/commit_parser/util.py,sha256=vLcVDErZrExM55jMffos0hyMbNVQoJ-PeeVDG1Ej51I,730
32
32
  semantic_release/data/templates/CHANGELOG.md.j2,sha256=GB3YJwgVrhlcb-g5ESdEh_Gsysb_Texxv-Ip2LjulC0,1066
33
33
  semantic_release/data/templates/release_notes.md.j2,sha256=27uIHgG6iYmqdMaoWFP5LJRZcrO-3paqFzHHHsGpXXE,465
34
34
  semantic_release/hvcs/__init__.py,sha256=ulesZslSG4Lu8Iz3YzOrPXpdgvgbADq_MV17B-bSYQA,379
35
- semantic_release/hvcs/_base.py,sha256=CXE-yI1zDgOybSnd7oMQJ_GVyiIA7HrltqoO8I1N1hc,5634
36
- semantic_release/hvcs/bitbucket.py,sha256=jqWWxVOrtrK-Yk9yLzQySb4G41G7yGDkGDUhHW4KuMQ,4654
37
- semantic_release/hvcs/gitea.py,sha256=xQ6sm04YNk30t8ieCNY61DtcDPygppvcvF_meI17Des,8458
38
- semantic_release/hvcs/github.py,sha256=IfBtKSXXoT-H-cKdwmiB-xRGYrvzC5hJN6cf1Ekylgk,10709
39
- semantic_release/hvcs/gitlab.py,sha256=hJCTv4QC9y1iABiqJeSc0V5H8R1HZ8TRTd6ZFIKj4Es,6153
35
+ semantic_release/hvcs/_base.py,sha256=VnsEz01W9t3DQ2QHGnsbuAB9jYfZT3hIXRRsCUnhS0g,5635
36
+ semantic_release/hvcs/bitbucket.py,sha256=pGZksLht66zLJXbPIgRz4hntsa-F1A02xl4JNRCXE0o,4626
37
+ semantic_release/hvcs/gitea.py,sha256=HpaqQQxbUiWLByzceFVkR6o_c60gT6HmFwsq4CPwJKY,8459
38
+ semantic_release/hvcs/github.py,sha256=L29AaUmmtdJTNDJqD6ro3YVcDNr8OMwqTx5ofujOZz8,10710
39
+ semantic_release/hvcs/gitlab.py,sha256=qSvNdQK40QM20-HDh3eIO6Rz8Lo3PEND_4kluugVx4w,6154
40
40
  semantic_release/hvcs/token_auth.py,sha256=ZjT56-NIPB4OKIt1qwHCu1TavXnrWFIBl9ARlg56hgU,663
41
41
  semantic_release/hvcs/util.py,sha256=PNKXApgL2np9lpnKjAbo77toRgElLPXrbS1q7621waI,2886
42
42
  semantic_release/version/__init__.py,sha256=CLhtGQry9dLIij5XyRa9ZevxU_1p8tjMTSQ-K_GMpWM,270
43
43
  semantic_release/version/algorithm.py,sha256=K9WkPRur0x5baXsqEi8kvaDfxduG4WNUiALXZRXujJ4,16484
44
44
  semantic_release/version/declaration.py,sha256=f6Ld7hIhrqvDrRBapJHr-KDimuyo-4IG8009Zu9BIgU,7357
45
45
  semantic_release/version/translator.py,sha256=P1noIsVBn8u6zNOFjG0xKYOWapxqf_PHSMvMeLJ9kXg,3050
46
- semantic_release/version/version.py,sha256=siyX3Cl_qhw9dTIUpafFX8-wHKW2RILVm8u6i519Pck,14183
47
- python_semantic_release-9.2.0.dist-info/AUTHORS.rst,sha256=XOReVvpymEFUPsS2QPH97jlfJBVrxwS2eu8-jVAe4gk,230
48
- python_semantic_release-9.2.0.dist-info/LICENSE,sha256=NE85nszX252sdQdu0xgS9qwfYES0k8qS6gW3uO4jRGE,1083
49
- python_semantic_release-9.2.0.dist-info/METADATA,sha256=AmbbiVLWcUVLNNwMJflgWhScEq_w5eNbn8rgAPk5ZX4,5366
50
- python_semantic_release-9.2.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
51
- python_semantic_release-9.2.0.dist-info/entry_points.txt,sha256=qojUBx_Ywf4u7KgP6NWlDaBDymZVUGQ7m5wF2duC2F0,95
52
- python_semantic_release-9.2.0.dist-info/top_level.txt,sha256=qYA24nyg3eP-ti5UW7Vuj2aXVmM0wqVHx4mREdRZNAA,17
53
- python_semantic_release-9.2.0.dist-info/RECORD,,
46
+ semantic_release/version/version.py,sha256=6PCtSbLP88U1daoxnCwHc--YguZo4waGNLqJ5JfeczE,14175
47
+ python_semantic_release-9.2.1.dist-info/AUTHORS.rst,sha256=XOReVvpymEFUPsS2QPH97jlfJBVrxwS2eu8-jVAe4gk,230
48
+ python_semantic_release-9.2.1.dist-info/LICENSE,sha256=NE85nszX252sdQdu0xgS9qwfYES0k8qS6gW3uO4jRGE,1083
49
+ python_semantic_release-9.2.1.dist-info/METADATA,sha256=thUtW1xFlJYtbob07qyQU4AIoWpAyyrDdCMYTHP80_k,5365
50
+ python_semantic_release-9.2.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
51
+ python_semantic_release-9.2.1.dist-info/entry_points.txt,sha256=qojUBx_Ywf4u7KgP6NWlDaBDymZVUGQ7m5wF2duC2F0,95
52
+ python_semantic_release-9.2.1.dist-info/top_level.txt,sha256=qYA24nyg3eP-ti5UW7Vuj2aXVmM0wqVHx4mREdRZNAA,17
53
+ python_semantic_release-9.2.1.dist-info/RECORD,,
@@ -1,4 +1,5 @@
1
1
  """Python Semantic Release"""
2
+
2
3
  from __future__ import annotations
3
4
 
4
5
  from semantic_release.commit_parser import (
@@ -23,7 +24,7 @@ from semantic_release.version import (
23
24
  tags_and_versions,
24
25
  )
25
26
 
26
- __version__ = "9.2.0"
27
+ __version__ = "9.2.1"
27
28
 
28
29
 
29
30
  def setup_hook(argv: list[str]) -> None:
@@ -3,20 +3,16 @@ from __future__ import annotations
3
3
  import logging
4
4
  from collections import defaultdict
5
5
  from datetime import datetime, timedelta, timezone
6
- from typing import TYPE_CHECKING, Iterable, Iterator
6
+ from typing import TYPE_CHECKING, TypedDict
7
7
 
8
8
  from git.objects.tag import TagObject
9
9
 
10
- # For Python3.7 compatibility
11
- from typing_extensions import TypedDict
12
-
13
- from semantic_release.commit_parser import (
14
- ParseError,
15
- )
10
+ from semantic_release.commit_parser import ParseError
16
11
  from semantic_release.version.algorithm import tags_and_versions
17
12
 
18
13
  if TYPE_CHECKING:
19
- import re
14
+ from re import Pattern
15
+ from typing import Iterable, Iterator
20
16
 
21
17
  from git.repo.base import Repo
22
18
  from git.util import Actor
@@ -39,7 +35,7 @@ class ReleaseHistory:
39
35
  repo: Repo,
40
36
  translator: VersionTranslator,
41
37
  commit_parser: CommitParser[ParseResult, ParserOptions],
42
- exclude_commit_patterns: Iterable[re.Pattern[str]] = (),
38
+ exclude_commit_patterns: Iterable[Pattern[str]] = (),
43
39
  ) -> ReleaseHistory:
44
40
  all_git_tags_and_versions = tags_and_versions(repo.tags, translator)
45
41
  unreleased: dict[str, list[ParseResult]] = defaultdict(list)
@@ -12,8 +12,10 @@ from jinja2.sandbox import SandboxedEnvironment
12
12
  from semantic_release.helpers import dynamic_import
13
13
 
14
14
  if TYPE_CHECKING:
15
+ from typing import Literal
16
+
15
17
  from jinja2 import Environment
16
- from typing_extensions import Literal
18
+
17
19
 
18
20
  log = logging.getLogger(__name__)
19
21
 
@@ -7,13 +7,15 @@ from collections.abc import Mapping
7
7
  from dataclasses import dataclass, is_dataclass
8
8
  from enum import Enum
9
9
  from pathlib import Path
10
- from typing import Any, ClassVar, Dict, List, Optional, Tuple, Type, Union
10
+ from typing import Any, ClassVar, Dict, List, Literal, Optional, Tuple, Type, Union
11
11
 
12
12
  from git import Actor
13
13
  from git.repo.base import Repo
14
14
  from jinja2 import Environment
15
15
  from pydantic import BaseModel, Field, RootModel, ValidationError, model_validator
16
- from typing_extensions import Annotated, Literal
16
+
17
+ # For Python 3.8 compatibility
18
+ from typing_extensions import Annotated
17
19
 
18
20
  from semantic_release import hvcs
19
21
  from semantic_release.changelog import environment
@@ -1,4 +1,5 @@
1
1
  """Utilities for command-line functionality"""
2
+
2
3
  from __future__ import annotations
3
4
 
4
5
  import json
@@ -71,5 +71,4 @@ class CommitParser(ABC, Generic[_TT, _OPTS]):
71
71
  self.options = options
72
72
 
73
73
  @abstractmethod
74
- def parse(self, commit: Commit) -> _TT:
75
- ...
74
+ def parse(self, commit: Commit) -> _TT: ...
@@ -2,6 +2,7 @@
2
2
  Angular commit style parser
3
3
  https://github.com/angular/angular/blob/master/CONTRIBUTING.md#-commit-message-guidelines
4
4
  """
5
+
5
6
  from __future__ import annotations
6
7
 
7
8
  import logging
@@ -1,4 +1,5 @@
1
1
  """Commit parser which looks for emojis to determine the type of commit"""
2
+
2
3
  import logging
3
4
  from typing import Tuple
4
5
 
@@ -34,6 +34,7 @@ Supported Changelog Sections::
34
34
 
35
35
  .. _`scipy-style`: https://docs.scipy.org/doc/scipy/reference/dev/contributor/development_workflow.html#writing-the-commit-message
36
36
  """
37
+
37
38
  from __future__ import annotations
38
39
 
39
40
  import logging
@@ -1,4 +1,5 @@
1
1
  """Legacy commit parser from Python Semantic Release 1.0"""
2
+
2
3
  import logging
3
4
  import re
4
5
 
@@ -114,12 +114,12 @@ def parse_git_url(url: str) -> ParsedGitUrl:
114
114
  # Normalizers are a list of tuples of (pattern, replacement)
115
115
  normalizers = [
116
116
  # normalize implicit ssh urls to explicit ssh://
117
- (r"^(\w+@)", r"ssh://\1"),
117
+ (r"^([\w._-]+@)", r"ssh://\1"),
118
118
  # normalize git+ssh:// urls to ssh://
119
119
  (r"^git\+ssh://", "ssh://"),
120
120
  # normalize an scp like syntax to URL compatible syntax
121
121
  # excluding port definitions (:#####) & including numeric usernames
122
- (r"(ssh://(?:\w+@)?[\w.-]+):(?!\d{1,5}/\w+/)(.*)$", r"\1/\2"),
122
+ (r"(ssh://(?:[\w._-]+@)?[\w.-]+):(?!\d{1,5}/\w+/)(.*)$", r"\1/\2"),
123
123
  # normalize implicit file (windows || posix) urls to explicit file:// urls
124
124
  (r"^([C-Z]:/)|^/(\w)", r"file:///\1\2"),
125
125
  ]
@@ -1,4 +1,5 @@
1
1
  """Common functionality and interface for interacting with Git remote VCS"""
2
+
2
3
  from __future__ import annotations
3
4
 
4
5
  import logging
@@ -37,7 +37,7 @@ class Bitbucket(HvcsBase):
37
37
  API_VERSION = "2.0"
38
38
  DEFAULT_DOMAIN = "bitbucket.org"
39
39
  DEFAULT_API_DOMAIN = "api.bitbucket.org"
40
- DEFAULT_ENV_TOKEN_NAME = "BITBUCKET_TOKEN"
40
+ DEFAULT_ENV_TOKEN_NAME = "BITBUCKET_TOKEN" # noqa: S105
41
41
 
42
42
  def __init__(
43
43
  self,
@@ -93,14 +93,13 @@ class Bitbucket(HvcsBase):
93
93
  f"https://{user}:{self.token}@"
94
94
  f"{self.hvcs_domain}/{self.owner}/{self.repo_name}.git"
95
95
  )
96
- else:
97
- # Note: Assume the token is a repository token which will only work on the
98
- # repository it was created for.
99
- # https://support.atlassian.com/bitbucket-cloud/docs/using-access-tokens
100
- return (
101
- f"https://x-token-auth:{self.token}@"
102
- f"{self.hvcs_domain}/{self.owner}/{self.repo_name}.git"
103
- )
96
+ # Note: Assume the token is a repository token which will only work on the
97
+ # repository it was created for.
98
+ # https://support.atlassian.com/bitbucket-cloud/docs/using-access-tokens
99
+ return (
100
+ f"https://x-token-auth:{self.token}@"
101
+ f"{self.hvcs_domain}/{self.owner}/{self.repo_name}.git"
102
+ )
104
103
 
105
104
  def commit_hash_url(self, commit_hash: str) -> str:
106
105
  return (
@@ -1,4 +1,5 @@
1
1
  """Helper code for interacting with a Gitea remote VCS"""
2
+
2
3
  from __future__ import annotations
3
4
 
4
5
  import glob
@@ -1,4 +1,5 @@
1
1
  """Helper code for interacting with a GitHub remote VCS"""
2
+
2
3
  from __future__ import annotations
3
4
 
4
5
  import glob
@@ -1,4 +1,5 @@
1
1
  """Helper code for interacting with a Gitlab remote VCS"""
2
+
2
3
  from __future__ import annotations
3
4
 
4
5
  import logging
@@ -25,15 +25,13 @@ VersionComparator = Callable[["Version", "Version"], bool]
25
25
  def _comparator(
26
26
  *,
27
27
  type_guard: bool,
28
- ) -> Callable[[VersionComparator], VersionComparator]:
29
- ...
28
+ ) -> Callable[[VersionComparator], VersionComparator]: ...
30
29
 
31
30
 
32
31
  @overload
33
32
  def _comparator(
34
33
  method: VersionComparator, *, type_guard: bool = True
35
- ) -> VersionComparator:
36
- ...
34
+ ) -> VersionComparator: ...
37
35
 
38
36
 
39
37
  def _comparator(