1+ from enum import Enum
12from pathlib import Path
3+
24from sorcery import assigned_names
3- from enum import Enum
45
56
67class BumpOrderEnum (Enum ):
@@ -10,15 +11,18 @@ class BumpOrderEnum(Enum):
1011
1112
1213def bump_version_import (
13- module_name : str , package : str = None , order : BumpOrderEnum = BumpOrderEnum .patch
14+ module_name : str ,
15+ package : str = None ,
16+ order : BumpOrderEnum = BumpOrderEnum .patch ,
17+ reset_lower_order : bool = True ,
1418) -> str :
1519 import importlib
1620
1721 module = importlib .import_module (module_name , package )
1822
1923 version = module .__version__
2024
21- return version_bump (version )
25+ return version_bump (version , reset_lower_order = reset_lower_order )
2226
2327
2428def version_partition (version : str ) -> str :
@@ -36,11 +40,17 @@ def version_partition(version: str) -> str:
3640 return (version ,)
3741
3842
39- def version_bump (version : str , order : BumpOrderEnum = BumpOrderEnum .patch ) -> str :
43+ def version_bump (
44+ version : str ,
45+ order : BumpOrderEnum = BumpOrderEnum .patch ,
46+ reset_lower_order : bool = True ,
47+ ) -> str :
4048 # TODO: HANDLE weird alpha, beta, rc versioning e.g. 1.2a, 12.3.alpha, 1.2.3.4rc
4149
4250 partitioned = version_partition (version )
4351
52+ # TODO: USE reset_lower_order!
53+
4454 if len (partitioned ) == 1 :
4555 return str (int (partitioned [0 ]) + 1 )
4656
@@ -71,6 +81,9 @@ def version_bump(version: str, order: BumpOrderEnum = BumpOrderEnum.patch) -> st
7181 pre = str (pre ) + "."
7282
7383 if post != "" :
84+ if reset_lower_order :
85+ post = "." .join (["0" for p in post .split ("." )])
86+
7487 post = "." + str (post )
7588
7689 return pre + str (int (ordered ) + 1 ) + post
@@ -110,5 +123,7 @@ def ujhasduhau():
110123 print (version_bump ("1.2" , order = e ))
111124 print (version_bump ("1.2.3" , order = e ))
112125 print (version_bump ("1.2.3.4" , order = e ))
126+ print ("_" )
127+ print (version_bump ("1.2.3.4" , order = e , reset_lower_order = False ))
113128
114129 ujhasduhau ()
0 commit comments