From aab43948f504db9e3dbc66b79381bb59d8f75529 Mon Sep 17 00:00:00 2001 From: BadPrograms Date: Mon, 30 Jun 2025 10:58:35 +0300 Subject: [PATCH 1/5] typehints --- src/LineageTree/lineageTreeManager.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/LineageTree/lineageTreeManager.py b/src/LineageTree/lineageTreeManager.py index 7847059..27857e2 100644 --- a/src/LineageTree/lineageTreeManager.py +++ b/src/LineageTree/lineageTreeManager.py @@ -55,7 +55,7 @@ def __next__(self): self.lineageTree_counter += 1 return self.lineageTree_counter - 1 - def __len__(self): + def __len__(self) -> int: """Returns how many lineagetrees are in the manager. Returns @@ -68,7 +68,7 @@ def __len__(self): def __iter__(self): yield from self.lineagetrees.items() - def __getitem__(self, key): + def __getitem__(self, key) -> lineageTree: if key in self.lineagetrees: return self.lineagetrees[key] else: From e77a9dae1835cb0dd199c749eb0b133b390d8bea Mon Sep 17 00:00:00 2001 From: BadPrograms Date: Mon, 30 Jun 2025 11:13:39 +0300 Subject: [PATCH 2/5] __iter__ typehint --- src/LineageTree/lineageTreeManager.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/LineageTree/lineageTreeManager.py b/src/LineageTree/lineageTreeManager.py index 27857e2..f97ee99 100644 --- a/src/LineageTree/lineageTreeManager.py +++ b/src/LineageTree/lineageTreeManager.py @@ -3,7 +3,7 @@ import os import pickle as pkl import warnings -from collections.abc import Callable, Iterable +from collections.abc import Callable, Iterable, Generator from functools import partial from typing import TYPE_CHECKING, Literal @@ -65,7 +65,7 @@ def __len__(self) -> int: """ return len(self.lineagetrees) - def __iter__(self): + def __iter__(self) -> Generator[tuple[str, lineageTree]]: yield from self.lineagetrees.items() def __getitem__(self, key) -> lineageTree: From 8f052c79020def295bdcbc1375009f95d618f025 Mon Sep 17 00:00:00 2001 From: BadPrograms Date: Mon, 30 Jun 2025 12:10:33 +0300 Subject: [PATCH 3/5] new typehints --- src/LineageTree/lineageTreeManager.py | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/src/LineageTree/lineageTreeManager.py b/src/LineageTree/lineageTreeManager.py index f97ee99..aaa84a9 100644 --- a/src/LineageTree/lineageTreeManager.py +++ b/src/LineageTree/lineageTreeManager.py @@ -44,14 +44,13 @@ def __init__(self, lineagetree_list: Iterable[lineageTree] = ()): lineagetree_list: Iterable of lineageTree List of lineage trees to be in the lineageTreeManager """ - self.lineagetrees = {} - self.lineageTree_counter = 0 - self.registered = {} - self._comparisons = {} + self.lineagetrees: dict[str, lineageTree] = {} + self.lineageTree_counter: int = 0 + self._comparisons: dict = {} for lT in lineagetree_list: self.add(lT) - def __next__(self): + def __next__(self) -> int: self.lineageTree_counter += 1 return self.lineageTree_counter - 1 @@ -429,13 +428,7 @@ def cross_lineage_edit_distance( ------- Alignment The alignment between the nodes by the subtrees spawned by the nodes n1,n2 and the normalization function.` - -- - ΟΡ - -- - - Alignment - The alignment between the nodes by the subtrees spawned by the nodes n1,n2 and the normalization function.` - tuple(tree,tree) + tuple(tree,tree), optional The two trees that have been mapped to each other. """ From a2c00aba113267a7bfa4576d716943d4136021d4 Mon Sep 17 00:00:00 2001 From: BadPrograms Date: Mon, 30 Jun 2025 12:53:07 +0300 Subject: [PATCH 4/5] quick fix --- src/LineageTree/lineageTree.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/LineageTree/lineageTree.py b/src/LineageTree/lineageTree.py index 409cc6a..e8629ca 100644 --- a/src/LineageTree/lineageTree.py +++ b/src/LineageTree/lineageTree.py @@ -2668,7 +2668,7 @@ def nodes_at_t( self, t: int, r: int | Iterable[int] | None = None, - ) -> list: + ) -> list[int]: """ Returns the list of nodes at time `t` that are spawn by the node(s) `r`. @@ -2681,8 +2681,8 @@ def nodes_at_t( Returns ------- - list - list of nodes at time `t` spawned by `r` + list of int + list of ids of the nodes at time `t` spawned by `r` """ if not r and r != 0: r = {root for root in self.roots if self.time[root] <= t} From 0095946a6e772e78b6a3472b71d3431505ef75e0 Mon Sep 17 00:00:00 2001 From: BadPrograms Date: Mon, 30 Jun 2025 12:58:51 +0300 Subject: [PATCH 5/5] new fix of type hints --- src/LineageTree/lineageTreeManager.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/LineageTree/lineageTreeManager.py b/src/LineageTree/lineageTreeManager.py index aaa84a9..41c3677 100644 --- a/src/LineageTree/lineageTreeManager.py +++ b/src/LineageTree/lineageTreeManager.py @@ -67,7 +67,7 @@ def __len__(self) -> int: def __iter__(self) -> Generator[tuple[str, lineageTree]]: yield from self.lineagetrees.items() - def __getitem__(self, key) -> lineageTree: + def __getitem__(self, key: str) -> lineageTree: if key in self.lineagetrees: return self.lineagetrees[key] else: @@ -129,7 +129,7 @@ def add(self, other_tree: lineageTree, name: str = ""): "Please add a LineageTree object or add time resolution to the LineageTree added." ) - def __add__(self, other): + def __add__(self, other: lineageTree): self.add(other) def write(self, fname: str): @@ -153,7 +153,7 @@ def write(self, fname: str): pkl.dump(self, f) f.close() - def remove_embryo(self, key): + def remove_embryo(self, key: str): """Removes the embryo from the manager. Parameters