commons.transformers.get_belligerent_transformer()   A
last analyzed

Complexity

Conditions 2

Size

Total Lines 12
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 2.0932

Importance

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