diff options
author | BonfaceKilz | 2021-05-04 23:55:58 +0300 |
---|---|---|
committer | BonfaceKilz | 2021-05-05 12:26:04 +0300 |
commit | 941680d5266159fc5c9f2a65131bf283bd1cef1d (patch) | |
tree | 78e60a88ba28bec2a43683c7417f1f6f37d1e688 | |
parent | f2c3528cc81d228a62dfd9e362d0a1202412b098 (diff) | |
download | genenetwork2-941680d5266159fc5c9f2a65131bf283bd1cef1d.tar.gz |
base: chromosomes: Fetch the chromosomes lazily
-rw-r--r-- | wqflask/base/species.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/wqflask/base/species.py b/wqflask/base/species.py index db1975d4..430bb675 100644 --- a/wqflask/base/species.py +++ b/wqflask/base/species.py @@ -39,7 +39,13 @@ class Chromosomes: species: Optional[str] = None def __post_init__(self, dataset): - self.chromosomes = OrderedDict() + if self.species is None: + self.dataset = dataset + + @property + def chromosomes(self): + """Lazily fetch the chromosomes""" + chromosomes = OrderedDict() if self.species is not None: query = ( "SELECT Chr_Length.Name, Chr_Length.OrderId, Length " @@ -48,7 +54,6 @@ class Chromosomes: "Species.Name = " "'%s' ORDER BY OrderId" % self.species.capitalize()) else: - self.dataset = dataset query = ( "SELECT Chr_Length.Name, Chr_Length.OrderId, " "Length FROM Chr_Length, InbredSet WHERE " @@ -57,5 +62,6 @@ class Chromosomes: "'%s' ORDER BY OrderId" % self.dataset.group.name) results = g.db.execute(query).fetchall() for item in results: - self.chromosomes[item.OrderId] = IndChromosome( + chromosomes[item.OrderId] = IndChromosome( item.Name, item.Length) + return chromosomes |