|
45 | 45 | import numpy as np |
46 | 46 | import warnings |
47 | 47 |
|
48 | | -from numpy.lib.utils import deprecate |
49 | 48 |
|
50 | 49 | from ..lib.util import (cached, convert_aa_code, iterable, warn_if_not_unique, |
51 | 50 | unique_int_1d) |
@@ -481,63 +480,6 @@ class Atomnames(AtomAttr): |
481 | 480 | def _gen_initial_values(na, nr, ns): |
482 | 481 | return np.array(['' for _ in range(na)], dtype=object) |
483 | 482 |
|
484 | | - def getattr__(atomgroup, name): |
485 | | - try: |
486 | | - return atomgroup._get_named_atom(name) |
487 | | - except selection.SelectionError: |
488 | | - six.raise_from( |
489 | | - AttributeError("'{0}' object has no attribute '{1}'".format( |
490 | | - atomgroup.__class__.__name__, name)), |
491 | | - None) |
492 | | - |
493 | | - def _get_named_atom(group, name): |
494 | | - """Get all atoms with name *name* in the current AtomGroup. |
495 | | -
|
496 | | - For more than one atom it returns a list of :class:`Atom` |
497 | | - instance. A single :class:`Atom` is returned just as such. If |
498 | | - no atoms are found, a :exc:`SelectionError` is raised. |
499 | | -
|
500 | | - .. versionadded:: 0.9.2 |
501 | | -
|
502 | | - .. deprecated:: 0.16.2 |
503 | | - *Instant selectors* will be removed in the 1.0 release. |
504 | | - Use ``AtomGroup.select_atoms('name <name>')`` instead. |
505 | | - See issue `#1377 |
506 | | - <https://github.com/MDAnalysis/mdanalysis/issues/1377>`_ for |
507 | | - more details. |
508 | | -
|
509 | | - """ |
510 | | - # There can be more than one atom with the same name |
511 | | - atomlist = group.atoms.unique[group.atoms.unique.names == name] |
512 | | - if len(atomlist) == 0: |
513 | | - raise selection.SelectionError( |
514 | | - "No atoms with name '{0}'".format(name)) |
515 | | - elif len(atomlist) == 1: |
516 | | - # XXX: keep this, makes more sense for names |
517 | | - atomlist = atomlist[0] |
518 | | - warnings.warn("Instant selector AtomGroup['<name>'] or AtomGroup.<name> " |
519 | | - "is deprecated and will be removed in 1.0. " |
520 | | - "Use AtomGroup.select_atoms('name <name>') instead.", |
521 | | - DeprecationWarning) |
522 | | - return atomlist |
523 | | - |
524 | | - # AtomGroup already has a getattr |
525 | | -# transplants[AtomGroup].append( |
526 | | -# ('__getattr__', getattr__)) |
527 | | - |
528 | | - transplants[Residue].append( |
529 | | - ('__getattr__', getattr__)) |
530 | | - |
531 | | - # this is also getitem for a residue |
532 | | - transplants[Residue].append( |
533 | | - ('__getitem__', getattr__)) |
534 | | - |
535 | | - transplants[AtomGroup].append( |
536 | | - ('_get_named_atom', _get_named_atom)) |
537 | | - |
538 | | - transplants[Residue].append( |
539 | | - ('_get_named_atom', _get_named_atom)) |
540 | | - |
541 | 483 | def phi_selection(residue): |
542 | 484 | """AtomGroup corresponding to the phi protein backbone dihedral |
543 | 485 | C'-N-CA-C. |
@@ -1383,63 +1325,6 @@ class Resnames(ResidueAttr): |
1383 | 1325 | def _gen_initial_values(na, nr, ns): |
1384 | 1326 | return np.array(['' for _ in range(nr)], dtype=object) |
1385 | 1327 |
|
1386 | | - def getattr__(residuegroup, resname): |
1387 | | - try: |
1388 | | - return residuegroup._get_named_residue(resname) |
1389 | | - except selection.SelectionError: |
1390 | | - six.raise_from( |
1391 | | - AttributeError("'{0}' object has no attribute '{1}'".format( |
1392 | | - residuegroup.__class__.__name__, resname)), |
1393 | | - None) |
1394 | | - |
1395 | | - transplants[ResidueGroup].append(('__getattr__', getattr__)) |
1396 | | - # This transplant is hardcoded for now to allow for multiple getattr things |
1397 | | - #transplants[Segment].append(('__getattr__', getattr__)) |
1398 | | - |
1399 | | - def _get_named_residue(group, resname): |
1400 | | - """Get all residues with name *resname* in the current ResidueGroup |
1401 | | - or Segment. |
1402 | | -
|
1403 | | - For more than one residue it returns a |
1404 | | - :class:`MDAnalysis.core.groups.ResidueGroup` instance. A single |
1405 | | - :class:`MDAnalysis.core.group.Residue` is returned for a single match. |
1406 | | - If no residues are found, a :exc:`SelectionError` is raised. |
1407 | | -
|
1408 | | - .. versionadded:: 0.9.2 |
1409 | | -
|
1410 | | - .. deprecated:: 0.16.2 |
1411 | | - *Instant selectors* will be removed in the 1.0 release. |
1412 | | - Use ``ResidueGroup[ResidueGroup.resnames == '<name>']`` |
1413 | | - or ``Segment.residues[Segment.residues == '<name>']`` |
1414 | | - instead. |
1415 | | - See issue `#1377 |
1416 | | - <https://github.com/MDAnalysis/mdanalysis/issues/1377>`_ for |
1417 | | - more details. |
1418 | | -
|
1419 | | - """ |
1420 | | - # There can be more than one residue with the same name |
1421 | | - residues = group.residues.unique[ |
1422 | | - group.residues.unique.resnames == resname] |
1423 | | - if len(residues) == 0: |
1424 | | - raise selection.SelectionError( |
1425 | | - "No residues with resname '{0}'".format(resname)) |
1426 | | - warnings.warn("Instant selector ResidueGroup.<name> " |
1427 | | - "or Segment.<name> " |
1428 | | - "is deprecated and will be removed in 1.0. " |
1429 | | - "Use ResidueGroup[ResidueGroup.resnames == '<name>'] " |
1430 | | - "or Segment.residues[Segment.residues == '<name>'] " |
1431 | | - "instead.", |
1432 | | - DeprecationWarning) |
1433 | | - if len(residues) == 1: |
1434 | | - # XXX: keep this, makes more sense for names |
1435 | | - return residues[0] |
1436 | | - else: |
1437 | | - # XXX: but inconsistent (see residues and Issue 47) |
1438 | | - return residues |
1439 | | - |
1440 | | - transplants[ResidueGroup].append( |
1441 | | - ('_get_named_residue', _get_named_residue)) |
1442 | | - |
1443 | 1328 | def sequence(self, **kwargs): |
1444 | 1329 | """Returns the amino acid sequence. |
1445 | 1330 |
|
@@ -1627,60 +1512,6 @@ class Segids(SegmentAttr): |
1627 | 1512 | def _gen_initial_values(na, nr, ns): |
1628 | 1513 | return np.array(['' for _ in range(ns)], dtype=object) |
1629 | 1514 |
|
1630 | | - def getattr__(segmentgroup, segid): |
1631 | | - try: |
1632 | | - return segmentgroup._get_named_segment(segid) |
1633 | | - except selection.SelectionError: |
1634 | | - six.raise_from( |
1635 | | - AttributeError("'{0}' object has no attribute '{1}'".format( |
1636 | | - segmentgroup.__class__.__name__, segid)), |
1637 | | - None) |
1638 | | - |
1639 | | - transplants[SegmentGroup].append( |
1640 | | - ('__getattr__', getattr__)) |
1641 | | - |
1642 | | - def _get_named_segment(group, segid): |
1643 | | - """Get all segments with name *segid* in the current SegmentGroup. |
1644 | | -
|
1645 | | - For more than one residue it returns a |
1646 | | - :class:`MDAnalysis.core.groups.SegmentGroup` instance. A single |
1647 | | - :class:`MDAnalysis.core.group.Segment` is returned for a single match. |
1648 | | - If no residues are found, a :exc:`SelectionError` is raised. |
1649 | | -
|
1650 | | - .. versionadded:: 0.9.2 |
1651 | | -
|
1652 | | - .. deprecated:: 0.16.2 |
1653 | | - *Instant selectors* will be removed in the 1.0 release. |
1654 | | - Use ``SegmentGroup[SegmentGroup.segids == '<name>']`` instead. |
1655 | | - See issue `#1377 |
1656 | | - <https://github.com/MDAnalysis/mdanalysis/issues/1377>`_ for |
1657 | | - more details. |
1658 | | -
|
1659 | | - """ |
1660 | | - # Undo adding 's' if segid started with digit |
1661 | | - if segid.startswith('s') and len(segid) >= 2 and segid[1].isdigit(): |
1662 | | - segid = segid[1:] |
1663 | | - |
1664 | | - # There can be more than one segment with the same name |
1665 | | - segments = group.segments.unique[ |
1666 | | - group.segments.unique.segids == segid] |
1667 | | - if len(segments) == 0: |
1668 | | - raise selection.SelectionError( |
1669 | | - "No segments with segid '{0}'".format(segid)) |
1670 | | - warnings.warn("Instant selector SegmentGroup.<name> " |
1671 | | - "is deprecated and will be removed in 1.0. " |
1672 | | - "Use SegmentGroup[SegmentGroup.segids == '<name>'] " |
1673 | | - "instead.", |
1674 | | - DeprecationWarning) |
1675 | | - if len(segments) == 1: |
1676 | | - # XXX: keep this, makes more sense for names |
1677 | | - return segments[0] |
1678 | | - else: |
1679 | | - # XXX: but inconsistent (see residues and Issue 47) |
1680 | | - return segments |
1681 | | - |
1682 | | - transplants[SegmentGroup].append( |
1683 | | - ('_get_named_segment', _get_named_segment)) |
1684 | 1515 |
|
1685 | 1516 | def _check_connection_values(func): |
1686 | 1517 | """ |
|
0 commit comments