@@ -51,6 +51,18 @@ def replace(self, **kwargs):
5151 return self
5252
5353
54+ class TomlNewlineArraySeparatorEncoder (toml .TomlEncoder ):
55+
56+ def dump_list (self , v ):
57+ t = []
58+ retval = "[\n "
59+
60+ for u in v :
61+ retval += " " + str (self .dump_value (u )) + ",\n "
62+ retval += "]"
63+ return retval
64+
65+
5466def _write_version_to_file (file , new_version , file_type = None ):
5567 """Rewrite version number in the file"""
5668 full_file_path = os .path .join (os .getcwd (), file )
@@ -65,11 +77,13 @@ def _write_version_to_file(file, new_version, file_type=None):
6577 data = toml .load (f )
6678 data ["project" ]["version" ] = new_version
6779 f .seek (0 )
68- toml .dump (data , f )
80+ f .truncate ()
81+ toml .dump (data , f , encoder = TomlNewlineArraySeparatorEncoder ())
6982 elif file_type == VersionFileType .json :
7083 data = json .load (f )
7184 data ["version" ] = str (new_version )
7285 f .seek (0 )
86+ f .truncate ()
7387 json .dump (data , f , indent = 2 )
7488 elif file_type == VersionFileType .npm :
7589 lock_file = f"{ file .rsplit ('.' , 1 )[0 ]} -lock.{ file .rsplit ('.' , 1 )[1 ]} "
@@ -83,7 +97,9 @@ def _write_version_to_file(file, new_version, file_type=None):
8397 lock_file_data ["version" ] = str (new_version )
8498 lock_file_data ["packages" ]["" ]["version" ] = str (new_version )
8599 f .seek (0 )
100+ f .truncate ()
86101 lf .seek (0 )
102+ lf .truncate ()
87103 json .dump (file_data , f , indent = 2 )
88104 json .dump (lock_file_data , lf , indent = 2 )
89105 else :
0 commit comments