Spaces:
Sleeping
Sleeping
Ashkan Taghipour (The University of Western Australia)
Initial deploy: Pigeon Pea Pangenome Atlas
16e4ad5 | """Application state for the Pigeon Pea Pangenome Atlas.""" | |
| from dataclasses import dataclass, field | |
| class AppState: | |
| selected_line: str | None = None | |
| selected_party: list[str] = field(default_factory=list) | |
| selected_gene: str | None = None | |
| backpack_genes: list[str] = field(default_factory=list) | |
| core_threshold: float = 95.0 | |
| cloud_threshold: float = 15.0 | |
| selected_contig: str | None = None | |
| achievements: set[str] = field(default_factory=set) | |
| def add_to_backpack(self, gene_id: str) -> bool: | |
| """Add gene to backpack. Returns True if added, False if already present or full.""" | |
| if gene_id in self.backpack_genes: | |
| return False | |
| if len(self.backpack_genes) >= 50: | |
| return False | |
| self.backpack_genes.append(gene_id) | |
| if len(self.backpack_genes) >= 5: | |
| self.achievements.add("Collector") | |
| return True | |
| def remove_from_backpack(self, gene_id: str) -> bool: | |
| """Remove gene from backpack.""" | |
| if gene_id in self.backpack_genes: | |
| self.backpack_genes.remove(gene_id) | |
| return True | |
| return False | |
| def award(self, badge: str): | |
| """Award an achievement badge.""" | |
| self.achievements.add(badge) | |