Currently model class has three selection methods:

def selection(self, selstr, optional=True):
def select(self, selection):
def iselection(self, selstr):

which is hideously confusing with zero chance to remember, and also inconsistent with the rest.

Most objects in cctbx  have ".select(self, selection)" methods, while being inconsistent about what they expect: iselection or boolean selection as "selection" argument. Some smart ones though can take both int or bool selections (figure out type automatically, which is trivial).

Can we consolidate all three into one ".select()" that would allow taking bool or int or str? Or you think there are philosophical arguments against it?

Pavel

On 8/16/18 15:00, CCTBX commit wrote:
Repository : ssh://g18-sc-serv-04.diamond.ac.uk/cctbx
On branch  : master




commit c98b44997e8eb7bf53ee828f510b933cd5167758
Author: Oleg Sobolev <[email protected]>
Date:   Thu Aug 16 15:00:20 2018 -0700

    Proper use of model class





c98b44997e8eb7bf53ee828f510b933cd5167758
mmtbx/model/model.py | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/mmtbx/model/model.py b/mmtbx/model/model.py
index 6f2247452..87412f95c 100644
--- a/mmtbx/model/model.py
+++ b/mmtbx/model/model.py
@@ -2312,8 +2312,7 @@ class manager(object):
     sizes = flex.int()
     h = self.get_hierarchy()
     if(macro_molecule_only):
-      asc = h.atom_selection_cache()
-      s = asc.selection("protein or nucleotide")
+      s = self.selection("protein or nucleotide")
       h = h.select(s)
     for r in h.residue_groups():
       sizes.append(r.atoms().size())