
     i                     <    d Z ddlmZ  G d dej                  ZdS )a  
CHARMM selections
=================

Write :class:`MDAnalysis.core.groups.AtomGroup` selection to a `str` file
that defines a `CHARMM selection`_. To be used in CHARMM_ like this::

  stream macro.str

The selection is named *mdanalysis001*.

.. autoclass:: SelectionWriter
   :inherited-members:

.. _CHARMM: http://www.charmm.org
.. _CHARMM selection: http://www.charmm.org/documentation/c34b1/select.html
   )basec                   8    e Zd ZddgZdZdZdZdZd Zd Z	d Z
d	S )
SelectionWriterCHARMMstr-z! %s   c                 4    d }t          j        |d|          S )Nc                 <    d                     | j        dz             S )NzBYNUM {0:d}r   )formatindex)atoms    f/srv/www/vhosts/g4struct/public_html/venv/lib/python3.11/site-packages/MDAnalysis/selections/charmm.py_indexz*SelectionWriter._translate.<locals>._index8   s     ''a999    z .or.)r   join)selfatomskwargsr   s       r   
_translatezSelectionWriter._translate6   s'    	: 	: 	: y000r   c                     |                     |                     d                     |                      dj        di || j        z   dz              d S )NzMDAnalysis CHARMM selectionzDEFINE {name!s} SELECT 
 )writecommentr   continuationr   outr   s      r   _write_headzSelectionWriter._write_head=   sk    		$,,<==>>>		,%,66v66 	
 	
 	
 	
 	
r   c                 0    |                     d           d S )NEND)r   r   s      r   _write_tailzSelectionWriter._write_tailE   s    		%r   N)__name__
__module____qualname__r   extr   
commentfmtdefault_numtermsr   r   r"   r   r   r   r   r   -   sb        F
CLJ	 1 1 1
 
 
    r   r   N)__doc__ r   SelectionWriterBaser   r   r   r   <module>r,      sZ   2 "          d.     r   