Passed
Push — master ( 04fbbf...5a831b )
by Daniel
01:17
created

CustomizedLocalizationCompiling.evaluate_compilation_necessity()   A

Complexity

Conditions 3

Size

Total Lines 33
Code Lines 31

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 3
eloc 31
nop 2
dl 0
loc 33
rs 9.1359
c 0
b 0
f 0
1
"""
2
localization_compile - facilitates localization file compilation (from .po to .mo)
3
"""
4
import os
5
import pathlib
6
7
# specific to this project
8
from localizations_common import LocalizationsCommon
9
10
11
class CustomizedLocalizationCompiling(LocalizationsCommon):
12
    localisation_compilation_is_required = False
13
14
    def evaluate_compilation_necessity(self, in_list_localisation_source_files):
15
        list_size = len(in_list_localisation_source_files)
16
        self.operation_is_required = False
17
        file_list_paring_complete = False
18
        file_counter = 0
19
        domains_to_compile = []
20
        compiling_files_counter = 0
21
        while not file_list_paring_complete:
22
            source_localisation_file = in_list_localisation_source_files[file_counter]
23
            folder_parts = pathlib.PurePath(source_localisation_file).parts
24
            current_locale = folder_parts[(len(folder_parts) - 3)]
25
            fn_dict = {
26
                'destination': source_localisation_file.replace('.po', '.mo'),
27
                'counter': file_counter,
28
                'locale': current_locale,
29
                'source': source_localisation_file,
30
                'source file type name': 'source',
31
                'destination operation name': 'compilation',
32
            }
33
            operation_check_result, operation_to_execute = self.check_file_pairs(fn_dict)
34
            if operation_check_result:
35
                domains_to_compile.append(compiling_files_counter)
36
                domains_to_compile[compiling_files_counter] = {
37
                    'input-file': fn_dict['source'],
38
                    'operation': 'compile_catalog',
39
                    'operation final flags': ' --statistics',
40
                    'output-file': fn_dict['destination'],
41
                    'locale': fn_dict['locale'],
42
                }
43
                compiling_files_counter += 1
44
            file_counter += 1
45
            file_list_paring_complete = self.file_counter_limit(file_counter, list_size)
46
        return domains_to_compile
47
48
49
my_class = CustomizedLocalizationCompiling()
50
51
locale_source_files = my_class.get_project_localisation_source_files('po')
52
operation_locale_dict = my_class.evaluate_compilation_necessity(locale_source_files)
53
my_class.operate_localisation_files(operation_locale_dict)
54