cengal.build_tools.change_version.versions.v_0.change_version
1#!/usr/bin/env python 2# coding=utf-8 3 4# Copyright © 2012-2024 ButenkoMS. All rights reserved. Contacts: <gtalk@butenkoms.space> 5# 6# Licensed under the Apache License, Version 2.0 (the "License"); 7# you may not use this file except in compliance with the License. 8# You may obtain a copy of the License at 9# 10# http://www.apache.org/licenses/LICENSE-2.0 11# 12# Unless required by applicable law or agreed to in writing, software 13# distributed under the License is distributed on an "AS IS" BASIS, 14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15# See the License for the specific language governing permissions and 16# limitations under the License. 17 18 19__all__ = ['change_version'] 20 21 22""" 23Module Docstring 24Docstrings: http://www.python.org/dev/peps/pep-0257/ 25""" 26 27__author__ = "ButenkoMS <gtalk@butenkoms.space>" 28__copyright__ = "Copyright © 2012-2024 ButenkoMS. All rights reserved. Contacts: <gtalk@butenkoms.space>" 29__credits__ = ["ButenkoMS <gtalk@butenkoms.space>", ] 30__license__ = "Apache License, Version 2.0" 31__version__ = "4.4.1" 32__maintainer__ = "ButenkoMS <gtalk@butenkoms.space>" 33__email__ = "gtalk@butenkoms.space" 34# __status__ = "Prototype" 35__status__ = "Development" 36# __status__ = "Production" 37 38 39from cengal.file_system.file_manager import path_relative_to_current_src 40from cengal.text_processing.brackets_processing import BracketPair, Bracket 41from cengal.build_tools.ensure_copyright import get_version, set_version 42from cengal.os.execute import prepare_py_command 43from os import system 44from typing import List, Union 45 46 47default_credits_bracket_pair: BracketPair = BracketPair([Bracket('credits_string =')], [Bracket('credits_string_bracket_pair: BracketPair =')]) 48default_version_bracket_pair: BracketPair = BracketPair([Bracket('__version__ = "')], [Bracket('"')]) 49 50 51def change_version(credits_string_bracket_pair: BracketPair, version_bracket_pair: BracketPair): 52 credits_string_bracket_pair = default_credits_bracket_pair if credits_string_bracket_pair is None else credits_string_bracket_pair 53 version_bracket_pair = default_version_bracket_pair if version_bracket_pair is None else version_bracket_pair 54 55 script_file_full_path: str = path_relative_to_current_src('../ensure_copyright/ensure_copyright.py') 56 version: str = get_version(script_file_full_path, credits_string_bracket_pair, version_bracket_pair) 57 if not version: 58 raise ValueError('Version not found') 59 60 version_str_parts: List[str] = version.split('.') 61 version_parts: List[Union[int, str]] = list() 62 for version_part in version_str_parts: 63 try: 64 version_parts.append(int(version_part)) 65 except ValueError: 66 version_parts.append(version_part) 67 68 print(f'Current version: {version}') 69 new_version = input('Enter new version or hit Enter to autoincrease: ').strip() 70 if not new_version: 71 for reverse_index, version_part in enumerate(reversed(version_parts)): 72 if isinstance(version_part, int): 73 version_parts[-reverse_index - 1] += 1 74 break 75 76 new_version = '.'.join(str(version_part) for version_part in version_parts) 77 78 set_version(script_file_full_path, new_version, credits_string_bracket_pair, version_bracket_pair) 79 print(f'Version changed to: {new_version}') 80 print('Updating version in all files...') 81 system(prepare_py_command((script_file_full_path,))) 82 print('Done.')
def
change_version( credits_string_bracket_pair: cengal.text_processing.brackets_processing.versions.v_0.brackets.BracketPair, version_bracket_pair: cengal.text_processing.brackets_processing.versions.v_0.brackets.BracketPair):
52def change_version(credits_string_bracket_pair: BracketPair, version_bracket_pair: BracketPair): 53 credits_string_bracket_pair = default_credits_bracket_pair if credits_string_bracket_pair is None else credits_string_bracket_pair 54 version_bracket_pair = default_version_bracket_pair if version_bracket_pair is None else version_bracket_pair 55 56 script_file_full_path: str = path_relative_to_current_src('../ensure_copyright/ensure_copyright.py') 57 version: str = get_version(script_file_full_path, credits_string_bracket_pair, version_bracket_pair) 58 if not version: 59 raise ValueError('Version not found') 60 61 version_str_parts: List[str] = version.split('.') 62 version_parts: List[Union[int, str]] = list() 63 for version_part in version_str_parts: 64 try: 65 version_parts.append(int(version_part)) 66 except ValueError: 67 version_parts.append(version_part) 68 69 print(f'Current version: {version}') 70 new_version = input('Enter new version or hit Enter to autoincrease: ').strip() 71 if not new_version: 72 for reverse_index, version_part in enumerate(reversed(version_parts)): 73 if isinstance(version_part, int): 74 version_parts[-reverse_index - 1] += 1 75 break 76 77 new_version = '.'.join(str(version_part) for version_part in version_parts) 78 79 set_version(script_file_full_path, new_version, credits_string_bracket_pair, version_bracket_pair) 80 print(f'Version changed to: {new_version}') 81 print('Updating version in all files...') 82 system(prepare_py_command((script_file_full_path,))) 83 print('Done.')