Skip to content

Commit

Permalink
Use namedtuple instead of dict
Browse files Browse the repository at this point in the history
  • Loading branch information
uvchik committed Aug 27, 2019
1 parent a16b042 commit 4601891
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 13 deletions.
10 changes: 5 additions & 5 deletions tests/test_wind_turbine.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import pytest
import os
from windpowerlib.tools import WindpowerlibUserWarning

from collections import namedtuple
from windpowerlib.wind_turbine import (get_turbine_data_from_file, WindTurbine,
get_turbine_types,
load_turbine_data_from_oedb)
Expand Down Expand Up @@ -62,10 +62,10 @@ def test_to_group_method(self):
'turbine_type': 'DUMMY 3',
'path': self.source}
e_t_1 = WindTurbine(**example_turbine)
assert(isinstance(e_t_1.to_group(5), dict))
assert(e_t_1.to_group(5)['number_of_turbines'] == 5)
assert(e_t_1.to_group(number_turbines=5)['number_of_turbines'] == 5)
assert(e_t_1.to_group(total_capacity=3e6)['number_of_turbines'] == 2.0)
assert(isinstance(e_t_1.to_group(), tuple))
assert(e_t_1.to_group(5).number_of_turbines == 5)
assert(e_t_1.to_group(number_turbines=5).number_of_turbines == 5)
assert(e_t_1.to_group(total_capacity=3e6).number_of_turbines == 2.0)

def test_wrongly_defined_to_group_method(self):
example_turbine = {
Expand Down
23 changes: 15 additions & 8 deletions windpowerlib/wind_turbine.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import warnings
import requests
import os
from collections import namedtuple
from windpowerlib.tools import WindpowerlibUserWarning


Expand Down Expand Up @@ -213,8 +214,9 @@ def to_group(self, number_turbines=None, total_capacity=None):
Returns
-------
dict
A dictionary with two keys ('number_of_turbines' and 'wind_turbine'
namedtuple
A namedtuple with two fields: 'number_of_turbines' and
'wind_turbine'.
Examples
--------
Expand All @@ -223,16 +225,18 @@ def to_group(self, number_turbines=None, total_capacity=None):
... 'hub_height': 135,
... 'turbine_type': 'E-126/4200'}
>>> e126 = WindTurbine(**enerconE126)
>>> e126.to_group(5)['number_of_turbines']
>>> e126.to_group(5).number_of_turbines
5
>>> e126.to_group()['number_of_turbines']
>>> e126.to_group().number_of_turbines
1
>>> e126.to_group(number_turbines=7)['number_of_turbines']
>>> e126.to_group(number_turbines=7).number_of_turbines
7
>>> e126.to_group(total_capacity=12600000)['number_of_turbines']
>>> e126.to_group(total_capacity=12600000).number_of_turbines
3.0
>>> e126.to_group(total_capacity=14700000)['number_of_turbines']
>>> e126.to_group(total_capacity=14700000).number_of_turbines
3.5
>>> e126.to_group(total_capacity=12600000).wind_turbine.nominal_power
4200000.0
"""
if number_turbines is not None and total_capacity is not None:
raise ValueError("The 'number' and the 'total_capacity parameter "
Expand All @@ -241,7 +245,10 @@ def to_group(self, number_turbines=None, total_capacity=None):
number_turbines = total_capacity / self.nominal_power
elif number_turbines is None:
number_turbines = 1
return {'wind_turbine': self, 'number_of_turbines': number_turbines}
wind_turbine_group = namedtuple('WindTurbineGroup',
'wind_turbine number_of_turbines')
return wind_turbine_group(
wind_turbine=self, number_of_turbines=number_turbines)


def get_turbine_data_from_file(turbine_type, path):
Expand Down

0 comments on commit 4601891

Please sign in to comment.