Source code for at.lattice.deprecated
from .lattice_object import Lattice
from .elements import Element
from .utils import Refpts, BoolRefpts, Uint32Refpts
from .utils import checkattr, get_uint32_index, get_bool_index
from typing import Sequence
__all__ = ['get_cells', 'get_refpts']
# noinspection PyIncorrectDocstring
[docs]
def get_cells(ring: Sequence[Element], refpts: Refpts, *args,
regex=False) -> BoolRefpts:
# noinspection PyShadowingNames
r"""
get_cells(ring, filtfunc) -> BoolRefpts
get_cells(ring, element_type) -> BoolRefpts
get_cells(ring, attrname) -> BoolRefpts
get_cells(ring, attrname, attrvalue) -> BoolRefpts
Returns a bool array of element indices, selecting ring elements.
Deprecated: :pycode:`get_cells(ring, refpts)` is
:pycode:`ring.bool_refpts(refpts)` except for :py:obj:`str` arguments:
:pycode:`get_cells(ring, attrname [, attrvalue])` is
:pycode:`ring.bool_refpts(checkattr(strkey [, attrvalue]))`
Parameters:
ring (Sequence[Element]): Lattice description
filtfunc (ElementFilter): Filter function. Selects
:py:class:`.Element`\ s satisfying the filter function
element_type (Type[Element]): Element type
attrname (str): Attribute name
attrvalue (Any): Attribute value. If absent, select the
presence of an *attrname* attribute. If present, select
:py:class:`.Element`\ s with :pycode:`attrname == attrvalue`.
regex: Use regular expression for refpts string matching;
Default: False (Unix shell-style wildcards)
Returns:
bool_refs (BoolRefpts): numpy Array of :py:obj:`bool` with length
len(ring)+1
Examples:
>>> refpts = get_cells(ring, 'Frequency')
Returns a numpy array of booleans where all elements having a
:pycode:`Frequency` attribute are :py:obj:`True`
>>> refpts = get_cells(ring, 'K', 0.0)
Returns a numpy array of booleans where all elements having a
:pycode:`K` attribute equal to 0.0 are :py:obj:`True`
See also:
:py:meth:`.Lattice.bool_refpts`, :py:meth:`.Lattice.uint32_refpts`
"""
if isinstance(refpts, str):
refpts = checkattr(refpts, *args)
return get_bool_index(ring, refpts, regex=regex)
# noinspection PyUnusedLocal,PyIncorrectDocstring
[docs]
def get_refpts(ring: Sequence[Element], refpts: Refpts,
regex=False) -> Uint32Refpts:
r"""Return a :py:obj:`~numpy.uint32` array of element indices selecting
ring elements.
Deprecated: :pycode:`get_elements(ring, refpts)` is
:pycode:`ring.uint32_refpts(refpts)`
Parameters:
ring: Lattice description
refpts: Element selection key.
See ":ref:`Selecting elements in a lattice <refpts>`"
regex: Use regular expression for refpts string matching;
Default: False (Unix shell-style wildcards)
Returns:
uint32_refs (Uint32Refs): :py:obj:`~numpy.uint32` numpy array as
long as the number of refpts
See also:
:py:meth:`.Lattice.uint32_refpts`, :py:meth:`.Lattice.bool_refpts`
"""
return get_uint32_index(ring, refpts, regex=regex)
Lattice.uint32_refpts = get_uint32_index
Lattice.bool_refpts = get_bool_index
Lattice.get_cells = get_cells
Lattice.get_refpts = get_refpts