phylogenie 2.1.1__tar.gz → 2.1.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of phylogenie might be problematic. Click here for more details.

Files changed (31) hide show
  1. {phylogenie-2.1.1 → phylogenie-2.1.2}/PKG-INFO +1 -1
  2. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/tree.py +8 -0
  3. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/treesimulator/model.py +2 -3
  4. {phylogenie-2.1.1 → phylogenie-2.1.2}/pyproject.toml +1 -1
  5. {phylogenie-2.1.1 → phylogenie-2.1.2}/LICENSE.txt +0 -0
  6. {phylogenie-2.1.1 → phylogenie-2.1.2}/README.md +0 -0
  7. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/__init__.py +0 -0
  8. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/generators/__init__.py +0 -0
  9. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/generators/alisim.py +0 -0
  10. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/generators/configs.py +0 -0
  11. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/generators/dataset.py +0 -0
  12. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/generators/factories.py +0 -0
  13. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/generators/trees.py +0 -0
  14. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/generators/typeguards.py +0 -0
  15. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/io.py +0 -0
  16. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/main.py +0 -0
  17. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/msa.py +0 -0
  18. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/py.typed +0 -0
  19. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/skyline/__init__.py +0 -0
  20. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/skyline/matrix.py +0 -0
  21. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/skyline/parameter.py +0 -0
  22. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/skyline/vector.py +0 -0
  23. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/treesimulator/__init__.py +0 -0
  24. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/treesimulator/events/__init__.py +0 -0
  25. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/treesimulator/events/contact_tracing.py +0 -0
  26. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/treesimulator/events/core.py +0 -0
  27. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/treesimulator/events/mutations.py +0 -0
  28. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/treesimulator/gillespie.py +0 -0
  29. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/typeguards.py +0 -0
  30. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/typings.py +0 -0
  31. {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: phylogenie
3
- Version: 2.1.1
3
+ Version: 2.1.2
4
4
  Summary: Generate phylogenetic datasets with minimal setup effort
5
5
  Author: Gabriele Marino
6
6
  Author-email: gabmarino.8601@gmail.com
@@ -73,6 +73,14 @@ class Tree:
73
73
  def delete(self, key: str) -> None:
74
74
  del self._features[key]
75
75
 
76
+ def copy(self):
77
+ new_tree = Tree(self.id, self.branch_length)
78
+ for key, value in self._features.items():
79
+ new_tree.set(key, value)
80
+ for child in self.children:
81
+ new_tree.add_child(child.copy())
82
+ return new_tree
83
+
76
84
  def __iter__(self) -> Iterator["Tree"]:
77
85
  return self.preorder_traversal()
78
86
 
@@ -1,7 +1,6 @@
1
1
  from abc import ABC, abstractmethod
2
2
  from collections import defaultdict
3
3
  from collections.abc import Sequence
4
- from copy import deepcopy
5
4
  from dataclasses import dataclass
6
5
  from typing import Any
7
6
 
@@ -122,7 +121,7 @@ class Model:
122
121
  return self._population[id].state
123
122
 
124
123
  def get_sampled_tree(self) -> Tree:
125
- tree = deepcopy(self._tree)
124
+ tree = self._tree.copy()
126
125
  for node in list(tree.postorder_traversal()):
127
126
  if node.id not in self._sampled and not node.children:
128
127
  if node.parent is None:
@@ -142,7 +141,7 @@ class Model:
142
141
  return tree
143
142
 
144
143
  def get_full_tree(self) -> Tree:
145
- return deepcopy(self._tree)
144
+ return self._tree.copy()
146
145
 
147
146
  def get_population(self, states: str | None = None) -> list[int]:
148
147
  if states is None:
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "phylogenie"
3
- version = "2.1.1"
3
+ version = "2.1.2"
4
4
  description = "Generate phylogenetic datasets with minimal setup effort"
5
5
  authors = ["Gabriele Marino <gabmarino.8601@gmail.com>"]
6
6
  readme = "README.md"
File without changes
File without changes
File without changes
File without changes