Skip to content
Snippets Groups Projects
Commit f978068a authored by whooie's avatar whooie
Browse files

use a defaultdict for SuperSequences instead of a regular dict

parent 677a5c3a
No related branches found
No related tags found
No related merge requests found
...@@ -3,6 +3,7 @@ from .structures import * ...@@ -3,6 +3,7 @@ from .structures import *
import matplotlib.pyplot as pp import matplotlib.pyplot as pp
from .plotdefs import Plotter from .plotdefs import Plotter
import copy import copy
from collections import defaultdict
import pathlib import pathlib
import toml import toml
import shutil import shutil
...@@ -49,6 +50,18 @@ def max_n(generator, default=None): ...@@ -49,6 +50,18 @@ def max_n(generator, default=None):
x0 = x x0 = x
return default if x0 is None else x0 return default if x0 is None else x0
def _dict_to_defaultdict(D: dict) -> defaultdict:
valtype = type(list(D.values())[0])
if not all(isinstance(v, valtype) for v in D.values()):
raise Exception(
"dict_to_defaultdict:"
" can only construct from homogeneously valued dicts"
)
DD = defaultdict(valtype)
for k, v in D.items():
DD[k] = v
return DD
class SuperSequence: class SuperSequence:
""" """
Sequence of labeled Sequences. Mostly for visualization purposes. Sequence of labeled Sequences. Mostly for visualization purposes.
...@@ -57,7 +70,7 @@ class SuperSequence: ...@@ -57,7 +70,7 @@ class SuperSequence:
------ ------
outdir : pathlib.Path outdir : pathlib.Path
name : str name : str
sequences : dict[str, Sequence] sequences : connections.defaultdict[str, Sequence]
defaults : ConnectionLayout defaults : ConnectionLayout
""" """
...@@ -76,7 +89,10 @@ class SuperSequence: ...@@ -76,7 +89,10 @@ class SuperSequence:
""" """
self.outdir = outdir self.outdir = outdir
self.name = name self.name = name
self.sequences = dict() if sequences is None else sequences self.sequences = (
defaultdict(Sequence) if sequences is None
else _dict_to_defaultdict(sequences)
)
self.params = dict() if params is None else params self.params = dict() if params is None else params
self.defaults = defaults self.defaults = defaults
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment