commons.transformers   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 48
Duplicated Lines 0 %

Test Coverage

Coverage 61.9%

Importance

Changes 0
Metric Value
wmc 5
eloc 29
dl 0
loc 48
ccs 13
cts 21
cp 0.619
rs 10
c 0
b 0
f 0

3 Functions

Rating   Name   Duplication   Size   Complexity  
A get_2d_pos_transformer() 0 13 1
A get_int_transformer() 0 8 2
A get_belligerent_transformer() 0 12 2
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