
:>"^[  ã               @   sê   d  Z  d d l Z y d d l m Z Wn e k
 r@ e Z Yn Xd d l m Z m Z m	 Z	 m
 Z
 d d l m Z e j e d ƒ Z Gd d „  d e
 ƒ Z d	 d
 d „ Z e e ƒ Z d d „  Z e d k ræ d d l m Z e ƒ  d S)zvCode for Codon Alphabet.

CodonAlphabet class is inherited from Alphabet class. It is an
alphabet for CodonSeq class.
é    N)Úizip)ÚIUPACÚGappedÚHasStopCodonÚAlphabet)Úgeneric_by_idé   c               @   s4   e  Z d  Z d Z d Z d Z d Z d d „  Z d S)ÚCodonAlphabetz,Generic Codon Alphabet with a size of three.é   NÚ c             C   s   d |  j  j |  j d f S)Nz%s(%s)r   )Ú	__class__Ú__name__Únames)Úself© r   úA/tmp/pip-build-ww9dw3qa/biopython/Bio/codonalign/codonalphabet.pyÚ__repr__   s    zCodonAlphabet.__repr__)r   Ú
__module__Ú__qualname__Ú__doc__ÚsizeÚlettersÚnamer   r   r   r   r   r	      s
   r	   ú-c             C   sw   t  |  j j ƒ  ƒ } | j |  j ƒ | j |  j ƒ | rL | j | d ƒ t ƒ  } | | _ d | _	 |  j
 | _
 | S)z3Construct a CodonAlphabet from a given codon table.r
   r   )ÚlistZforward_tableÚkeysÚextendZstop_codonsZstart_codonsÚappendr	   r   Úgap_charr   )Zcodon_tabler   r   Zgeneric_codon_alphabetr   r   r   Úget_codon_alphabet#   s    			r   c             C   so   x> |  | g D]0 } t  | t ƒ s t d j t | ƒ ƒ ƒ ‚ q Wt |  j ƒ t | j ƒ k on |  j | j k S)zxCompare two codon alphabet.

    Return True is they have the same letter and gap_char,
    Otherwise return False.
    z2Only CodonAlphabet object accepted.{} is provided.)Ú
isinstancer	   Ú	TypeErrorÚformatÚobjectÚsetr   r   )Zcodon_alphabet_1Zcodon_alphabet_2Zcodon_alphabetr   r   r   Úcompare_codon_alphabet4   s    	r%   Ú__main__)Úrun_doctest)r   ÚcopyÚ	itertoolsr   ÚImportErrorÚzipZBio.Alphabetr   r   r   r   ZBio.Data.CodonTabler   ÚdeepcopyZdefault_codon_tabler	   r   Zdefault_codon_alphabetr%   r   Z
Bio._utilsr'   r   r   r   r   Ú<module>
   s   "