Completed
Push — master ( 4c11f7...bc6698 )
by Oleksandr
01:42
created

_transformer()   A

Complexity

Conditions 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 1
CRAP Score 1.125

Importance

Changes 3
Bugs 0 Features 0
Metric Value
c 3
b 0
f 0
dl 0
loc 4
ccs 1
cts 2
cp 0.5
rs 10
cc 1
crap 1.125
1
# coding: utf-8
2
3 1
from il2fb.commons.organization import Belligerents
4 1
from il2fb.commons.spatial import Point2D
5
6
7 1
def get_2d_pos_transformer(
8
    dst_field_name='pos',
9
    src_x_field_name='pos_x',
10
    src_y_field_name='pos_y',
11
):
12
13 1
    def _transformer(data):
14
        data[dst_field_name] = Point2D(
15
            float(data.pop(src_x_field_name)),
16
            float(data.pop(src_y_field_name)),
17
        )
18
19 1
    return _transformer
20
21
22 1
transform_2d_pos = get_2d_pos_transformer('pos', 'pos_x', 'pos_y')
23
24
25 1
def get_belligerent_transformer(
26
    dst_field_name='belligerent',
27
    src_field_name=None,
28
):
29 1
    if not src_field_name:
30 1
        src_field_name = dst_field_name
31
32 1
    def _transformer(data):
33
        value = data[src_field_name]
34
        data[dst_field_name] = Belligerents[value.lower()]
35
36 1
    return _transformer
37
38
39 1
transform_belligerent = get_belligerent_transformer('belligerent')
40
41
42 1
def get_int_transformer(dst_field_name, src_field_name=None):
43
    if not src_field_name:
44
        src_field_name = dst_field_name
45
46
    def _transformer(data):
47
        data[dst_field_name] = int(data[src_field_name])
48
49
    return _transformer
50