feat: adds methods for better creation of input lists, including pairs

This commit is contained in:
2022-03-27 16:31:03 -05:00
parent 5fbff2a5c0
commit 852836b924
3 changed files with 48 additions and 0 deletions

4
pdme/inputs/__init__.py Normal file
View File

@@ -0,0 +1,4 @@
from pdme.inputs.dot_inputs import inputs_with_frequency_range, input_pairs_with_frequency_range
__all__ = ['inputs_with_frequency_range', 'input_pairs_with_frequency_range']

13
pdme/inputs/dot_inputs.py Normal file
View File

@@ -0,0 +1,13 @@
import numpy
import numpy.typing
import itertools
from typing import Sequence, Tuple
def inputs_with_frequency_range(dots: Sequence[numpy.typing.ArrayLike], frequency_range: Sequence[float]) -> Sequence[Tuple[numpy.typing.ArrayLike, float]]:
return list(itertools.chain(*[[(dot, f) for f in frequency_range] for dot in dots]))
def input_pairs_with_frequency_range(dots: Sequence[numpy.typing.ArrayLike], frequency_range: Sequence[float]) -> Sequence[Tuple[numpy.typing.ArrayLike, numpy.typing.ArrayLike, float]]:
all_pairs = itertools.combinations(dots, 2)
return list(itertools.chain(*[[(dot1, dot2, f) for f in frequency_range] for (dot1, dot2) in all_pairs]))