12
12
# See the License for the specific language governing permissions and
13
13
# limitations under the License.
14
14
15
- import re
16
15
import argparse
16
+ import re
17
17
from pathlib import Path
18
18
19
19
try :
20
20
from semver import Version
21
21
except ImportError as exc :
22
- raise ImportError ("Unable to import semver. Install semver by running `pip install semver`" ) from exc
22
+ raise ImportError (
23
+ "Unable to import semver. Install semver by running `pip install semver`"
24
+ ) from exc
23
25
24
26
DEV_PRERELEASE_TAG_PREFIX = "dev"
25
27
DEV_PRERELEASE_TAG_START = "dev0"
@@ -45,10 +47,14 @@ def extract_version(repo_root_path: Path) -> Version:
45
47
if line .startswith ("__version__" ):
46
48
if (m := rgx_ver .match (line .strip ())) is not None :
47
49
if not m .groups ():
48
- raise ValueError (f"Unable to find valid semver for __version__. Got: '{ line } '" )
50
+ raise ValueError (
51
+ f"Unable to find valid semver for __version__. Got: '{ line } '"
52
+ )
49
53
parsed_semver = m .group (1 )
50
54
if not Version .is_valid (parsed_semver ):
51
- raise ValueError (f"Invalid semver for __version__. Got: '{ parsed_semver } ' from line '{ line } '" )
55
+ raise ValueError (
56
+ f"Invalid semver for __version__. Got: '{ parsed_semver } ' from line '{ line } '"
57
+ )
52
58
return Version .parse (parsed_semver )
53
59
raise ValueError (f"Unable to find valid semver for __version__. Got: '{ line } '" )
54
60
raise ValueError ("Cannot parse version" )
@@ -67,10 +73,7 @@ def update_prerelease_version(repo_root_path: Path, version: Version):
67
73
raise FileNotFoundError (f"Unable to find version file at location { version_file_path } " )
68
74
69
75
with version_file_path .open () as f :
70
- lines = [
71
- rgx_ver .sub (f"__version__ = \" { str (version )} \" " , line )
72
- for line in f
73
- ]
76
+ lines = [rgx_ver .sub (f'__version__ = "{ str (version )} "' , line ) for line in f ]
74
77
75
78
with version_file_path .open ("w" ) as f :
76
79
f .write ("" .join (lines ))
@@ -98,8 +101,14 @@ def update_prerelease_version(repo_root_path: Path, version: Version):
98
101
# If a PR is of a higher version AND the prerelease tag is reset, then do nothing
99
102
# This captures the case during release where we might bump the release version
100
103
# within a PR and reset tag back to dev0
101
- if pr_version > master_version and pr_version .prerelease and pr_version .prerelease == DEV_PRERELEASE_TAG_START :
102
- print ("This Pull Request is upgrading the package version to next release ... skipping bumping!" )
104
+ if (
105
+ pr_version > master_version
106
+ and pr_version .prerelease
107
+ and pr_version .prerelease == DEV_PRERELEASE_TAG_START
108
+ ):
109
+ print (
110
+ "This Pull Request is upgrading the package version to next release ... skipping bumping!"
111
+ )
103
112
print ("If this is happening in error, please report it to the PennyLane team!" )
104
113
elif pr_version .prerelease and pr_version .prerelease .startswith (DEV_PRERELEASE_TAG_PREFIX ):
105
114
# If master branch does not have a prerelease (for any reason) OR does not have an ending number
@@ -109,7 +118,10 @@ def update_prerelease_version(repo_root_path: Path, version: Version):
109
118
else :
110
119
# If master branch does not have a prerelease (for any reason) OR does not have an ending number
111
120
# Then default to the starting tag
112
- if not master_version .prerelease or master_version .prerelease == DEV_PRERELEASE_TAG_PREFIX :
121
+ if (
122
+ not master_version .prerelease
123
+ or master_version .prerelease == DEV_PRERELEASE_TAG_PREFIX
124
+ ):
113
125
next_prerelease_version = DEV_PRERELEASE_TAG_START
114
126
else :
115
127
# Generate the next prerelease version (eg: dev1 -> dev2). Sourcing from master version.
0 commit comments