ó
šßÈ[c           @` s_  d  d l  m Z m Z m Z m Z d  d l Z d  d l m Z d  d l Z d  d l Z	 d d l
 m Z m Z m Z d d l m
 Z d d l m Z d d	 l m Z m Z d d
 l m Z e e ƒ Z e e ƒ Z e e ƒ Z d e f d „  ƒ  YZ d „  Z d „  Z d „  Z d „  Z d „  Z  d „  Z! d „  Z" d „  Z# d „  Z$ d „  Z% d „  Z& d „  Z' d „  Z( d „  Z) d „  Z* d „  Z+ d „  Z, d „  Z- d „  Z. d  „  Z/ d! „  Z0 d" „  Z1 d# „  Z2 d$ „  Z3 d% „  Z4 d& „  Z5 d' „  Z6 d( „  Z7 d) „  Z8 d* „  Z9 d+ „  Z: d, „  Z; d- „  Z< d. „  Z= d/ „  Z> d0 „  Z? d1 „  Z@ d2 „  ZA d3 d5 d4 „  ƒ  YZB d S(6   i    (   t   absolute_importt   divisiont   print_functiont   unicode_literalsN(   t   copyi   (   t   _readerst   _writerst   _identifiers(   t   registryi   (   t   Table(   t   zipt   range(   t   StringIOt   TestDatac           B` s    e  Z e e j ƒ Z e j Z RS(    (   t   __name__t
   __module__t   classmethodt   io_registryt   readt   write(    (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyR      s   c         C` s"   t  j ƒ  t j ƒ  t j ƒ  d  S(   N(   R   t   clearR   R   (   t   function(    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   setup_function   s    

c          O` s   t  ƒ  S(   N(   R   (   t   argst   kwargs(    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   empty_reader$   s    c         O` s   d  S(   N(    (   t   tableR   R   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   empty_writer(   s    c          O` s   t  S(   N(   t   True(   R   R   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   empty_identifier,   s    c          C` sM   t  j t j ƒ  }  t j d t ƒ Wd  QXt |  j ƒ j d ƒ sI t	 ‚ d  S(   Nu   testu8   No reader defined for format 'test' and class 'TestData'(
   t   pytestt   raisesR   t   IORegistryErrort
   get_readerR   t   strt   valuet
   startswitht   AssertionError(   t   exc(    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_get_reader_invalid0   s    c          C` sM   t  j t j ƒ  }  t j d t ƒ Wd  QXt |  j ƒ j d ƒ sI t	 ‚ d  S(   Nu   testu8   No writer defined for format 'test' and class 'TestData'(
   R   R   R   R    t
   get_writerR   R"   R#   R$   R%   (   R&   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_get_writer_invalid7   s    c           C` sö   t  j d t t ƒ t  j d t t ƒ t  j d t ƒ t k sD t ‚ t  j d t ƒ t k sb t ‚ t  j d t ƒ t j t  j	 ƒ  t  j d t ƒ Wd  QXt  j d t ƒ t k s¹ t ‚ t  j d t ƒ t j t  j	 ƒ  t  j d t ƒ Wd  QXd  S(   Nu   test1u   test2(
   R   t   register_readerR   R   R!   R%   t   unregister_readerR   R   R    (    (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_register_reader>   s    c           C` sö   t  j d t t ƒ t  j d t t ƒ t  j d t ƒ t k sD t ‚ t  j d t ƒ t k sb t ‚ t  j d t ƒ t j t  j	 ƒ  t  j d t ƒ Wd  QXt  j d t ƒ t k s¹ t ‚ t  j d t ƒ t j t  j	 ƒ  t  j d t ƒ Wd  QXd  S(   Nu   test1u   test2(
   R   t   register_writerR   R   R(   R%   t   unregister_writerR   R   R    (    (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_register_writerR   s    c           C` sJ   t  j d t t ƒ t  j d t t ƒ t  j d t ƒ t  j d t ƒ d  S(   Nu   test1u   test2(   R   t   register_identifierR   R   t   unregister_identifier(    (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_register_identifierf   s    c          C` s`   t  j d t t ƒ t j t  j ƒ  }  t  j d t t ƒ Wd  QXt |  j ƒ d k s\ t	 ‚ d  S(   Nu   testu@   Reader for format 'test' and class 'TestData' is already defined(
   R   R*   R   R   R   R   R    R"   R#   R%   (   R&   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_register_reader_invalido   s    c          C` s`   t  j d t t ƒ t j t  j ƒ  }  t  j d t t ƒ Wd  QXt |  j ƒ d k s\ t	 ‚ d  S(   Nu   testu@   Writer for format 'test' and class 'TestData' is already defined(
   R   R-   R   R   R   R   R    R"   R#   R%   (   R&   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_register_writer_invalidw   s    c          C` s`   t  j d t t ƒ t j t  j ƒ  }  t  j d t t ƒ Wd  QXt |  j ƒ d k s\ t	 ‚ d  S(   Nu   testuD   Identifier for format 'test' and class 'TestData' is already defined(
   R   R0   R   R   R   R   R    R"   R#   R%   (   R&   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt    test_register_identifier_invalid   s    c          C` sJ   t  j t j ƒ  }  t j d t ƒ Wd  QXt |  j ƒ d k sF t ‚ d  S(   Nu   testu8   No reader defined for format 'test' and class 'TestData'(	   R   R   R   R    R+   R   R"   R#   R%   (   R&   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_unregister_reader_invalid‡   s    c          C` sJ   t  j t j ƒ  }  t j d t ƒ Wd  QXt |  j ƒ d k sF t ‚ d  S(   Nu   testu8   No writer defined for format 'test' and class 'TestData'(	   R   R   R   R    R.   R   R"   R#   R%   (   R&   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_unregister_writer_invalid   s    c          C` sJ   t  j t j ƒ  }  t j d t ƒ Wd  QXt |  j ƒ d k sF t ‚ d  S(   Nu   testu<   No identifier defined for format 'test' and class 'TestData'(	   R   R   R   R    R1   R   R"   R#   R%   (   R&   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt"   test_unregister_identifier_invalid“   s    c           C` s0   t  j d t t ƒ t  j d t t d t ƒd  S(   Nu   testt   force(   R   R*   R   R   R   (    (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_register_reader_force™   s    c           C` s0   t  j d t t ƒ t  j d t t d t ƒd  S(   Nu   testR9   (   R   R-   R   R   R   (    (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_register_writer_forcež   s    c           C` s0   t  j d t t ƒ t  j d t t d t ƒd  S(   Nu   testR9   (   R   R0   R   R   R   (    (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_register_identifier_force£   s    c          C` sG   t  j t j ƒ  }  t j ƒ  Wd  QXt |  j ƒ j d ƒ sC t	 ‚ d  S(   Nu   Format could not be identified.(
   R   R   R   R    R   R   R"   R#   R$   R%   (   R&   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_read_noformat¨   s    c          C` sJ   t  j t j ƒ  }  t ƒ  j ƒ  Wd  QXt |  j ƒ j d ƒ sF t	 ‚ d  S(   Nu   Format could not be identified.(
   R   R   R   R    R   R   R"   R#   R$   R%   (   R&   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_write_noformat®   s    c          C` sZ   t  j t ƒ t j t j ƒ  }  t j t	 ƒ  ƒ Wd QXt
 |  j ƒ j d ƒ sV t ‚ d S(   u=   Test that all identifier functions can accept arbitrary inputNu   Format could not be identified.(   R   t   updatet   _IDENTIFIERS_ORIGINALR   R   R   R    R   R   t   objectR"   R#   R$   R%   (   R&   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_read_noformat_arbitrary´   s    c         C` s‘   t  j t ƒ t |  j d ƒ ƒ } t | d ƒ  } | j d ƒ Wd QXt j t	 j
 ƒ  } t j | ƒ Wd QXt | j ƒ j d ƒ s t ‚ d S(   u>   Tests that all identifier functions can accept arbitrary filesu   foo.exampleu   wu   Hello worldNu   Format could not be identified.(   R   R?   t   _READERS_ORIGINALR"   t   joint   openR   R   R   R   R    R	   R   R#   R$   R%   (   t   tmpdirt   testfilet   fR&   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt!   test_read_noformat_arbitrary_file¼   s    c          C` s]   t  j t ƒ t j t j ƒ  }  t ƒ  j t	 ƒ  ƒ Wd QXt
 |  j ƒ j d ƒ sY t ‚ d S(   u=   Test that all identifier functions can accept arbitrary inputNu   Format could not be identified.(   R   R?   R@   R   R   R   R    R   R   RA   R"   R#   R$   R%   (   R&   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_write_noformat_arbitraryÈ   s    c         C` so   t  j t ƒ t |  j d ƒ ƒ } t j t j ƒ  } t	 ƒ  j
 | ƒ Wd QXt | j ƒ j d ƒ sk t ‚ d S(   u>   Tests that all identifier functions can accept arbitrary filesu   foo.exampleNu   Format could not be identified.(   R   R?   t   _WRITERS_ORIGINALR"   RD   R   R   R   R    R	   R   R#   R$   R%   (   RF   RG   R&   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt"   test_write_noformat_arbitrary_fileÐ   s
    c          C` sp   t  j d t d „  ƒ t  j d t d „  ƒ t j t  j ƒ  }  t j ƒ  Wd  QXt |  j ƒ d k sl t	 ‚ d  S(   Nu   test1c         _` s   t  S(   N(   R   (   t   ot   xt   y(    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   <lambda>Û   s    u   test2c         _` s   t  S(   N(   R   (   RM   RN   RO   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyRP   Ü   s    u/   Format is ambiguous - options are: test1, test2(
   R   R0   R   R   R   R    R   R"   R#   R%   (   R&   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_read_toomanyformatsÚ   s
    c          C` ss   t  j d t d „  ƒ t  j d t d „  ƒ t j t  j ƒ  }  t ƒ  j ƒ  Wd  QXt |  j ƒ d k so t	 ‚ d  S(   Nu   test1c         _` s   t  S(   N(   R   (   RM   RN   RO   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyRP   ã   s    u   test2c         _` s   t  S(   N(   R   (   RM   RN   RO   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyRP   ä   s    u/   Format is ambiguous - options are: test1, test2(
   R   R0   R   R   R   R    R   R"   R#   R%   (   R&   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_write_toomanyformatsâ   s
    c          C` sM   t  j t j ƒ  }  t j d d ƒ Wd  QXt |  j ƒ j d ƒ sI t	 ‚ d  S(   Nt   formatu   testu8   No reader defined for format 'test' and class 'TestData'(
   R   R   R   R    R   R   R"   R#   R$   R%   (   R&   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_read_format_noreaderê   s    c          C` sP   t  j t j ƒ  }  t ƒ  j d d ƒ Wd  QXt |  j ƒ j d ƒ sL t	 ‚ d  S(   NRS   u   testu8   No writer defined for format 'test' and class 'TestData'(
   R   R   R   R    R   R   R"   R#   R$   R%   (   R&   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_write_format_nowriterñ   s    c         C` s  t  j d t d „  ƒ t  j d t d „  ƒ |  j d ƒ j } t | d ƒ j ƒ  t j t  j	 ƒ  } t j
 | ƒ Wd  QXt | j ƒ j d ƒ s— t ‚ |  j d ƒ j } t | d ƒ j ƒ  t j t  j	 ƒ  } t j
 | ƒ Wd  QXt | j ƒ j d	 ƒ st ‚ d  S(
   Nu   test1c         _` s   | j  d ƒ S(   Nu   a(   t   endswith(   RM   t   patht   fileobjRN   RO   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyRP   ü   s    u   test2c         _` s   | j  d ƒ S(   Nu   b(   RV   (   RM   RW   RX   RN   RO   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyRP   ÿ   s    u
   testfile.au   wu9   No reader defined for format 'test1' and class 'TestData'u
   testfile.bu9   No reader defined for format 'test2' and class 'TestData'(   R   R0   R   RD   t   strpathRE   t   closeR   R   R    R   R"   R#   R$   R%   (   RF   t   filenameR&   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_read_identifierø   s$    

c          C` sÂ   t  j d t d „  ƒ t  j d t d „  ƒ t j t  j ƒ  }  t ƒ  j d ƒ Wd  QXt |  j ƒ j	 d ƒ su t
 ‚ t j t  j ƒ  }  t ƒ  j d ƒ Wd  QXt |  j ƒ j	 d ƒ s¾ t
 ‚ d  S(	   Nu   test1c         _` s   | d j  d ƒ S(   Ni    u   a(   R$   (   RM   RN   RO   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyRP     s    u   test2c         _` s   | d j  d ƒ S(   Ni    u   b(   R$   (   RM   RN   RO   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyRP     s    u   abcu9   No writer defined for format 'test1' and class 'TestData'u   bacu9   No writer defined for format 'test2' and class 'TestData'(   R   R0   R   R   R   R    R   R"   R#   R$   R%   (   R&   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_write_identifier  s    c          C` s  t  j d t d „  ƒ t  j d t d „  ƒ t  j d t t ƒ t  j d t t ƒ t j ƒ  t ƒ  j ƒ  t	 j
 t  j ƒ  }  t j d d ƒ Wd  QXt |  j ƒ j d ƒ s² t ‚ t	 j
 t  j ƒ  }  t ƒ  j d d ƒ Wd  QXt |  j ƒ j d ƒ sþ t ‚ d  S(   Nu   test1c         _` s
   |  d k S(   Nu   read(    (   RM   RN   RO   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyRP   *  s    u   test2c         _` s
   |  d k S(   Nu   write(    (   RM   RN   RO   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyRP   +  s    RS   u9   No reader defined for format 'test2' and class 'TestData'u9   No writer defined for format 'test1' and class 'TestData'(   R   R0   R   R*   R   R-   R   R   R   R   R   R    R"   R#   R$   R%   (   R&   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_identifier_origin(  s    
c          C` sA   t  j d t d „  ƒ t j d d ƒ }  t |  t ƒ s= t ‚ d  S(   Nu   testc           S` s   t  ƒ  S(   N(   R   (    (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyRP   ?  s    RS   (   R   R*   R   R   t
   isinstanceR%   (   t   t(    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_read_valid_return>  s    c          C` s]   t  j d t d „  ƒ t j t ƒ  }  t j d d ƒ Wd  QXt |  j ƒ d k sY t	 ‚ d  S(   Nu   testc           S` s   d S(   Nu   spam(    (    (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyRP   E  s    RS   u(   reader should return a TestData instance(
   R   R*   R   R   R   t	   TypeErrorR   R"   R#   R%   (   R&   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_read_invalid_returnD  s    c          C` s)   t  j t ƒ  t j d ƒ }  Wd QXd S(   ub   Raise the correct error when attempting to read a non-existing
    file with an unknown extension.u"   non-existing-file-with-unknown.extN(   R   R   t   IOErrorR	   R   (   t   data(    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_non_existing_unknown_extK  s    c          C` sü   t  j t t d d d g d d d g ƒ ƒ d t d ƒ t f t d	 ƒ d
 f g ƒ}  t j d t d „  ƒ t j	 |  d d ƒ} | j
 ƒ  d d	 g k s t ‚ xX t d ƒ D]J } | d | |  d | k sÒ t ‚ | d	 | |  d	 | k sª t ‚ qª Wd  S(   Ni   i   i   u   au   bu   ct   dtypeu   Au   Bu   |U1u   testc         S` s
   t  |  ƒ S(   N(   R	   (   RN   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyRP   U  s    RS   (   t   npt   arrayt   listR
   R"   t   intR   R*   R	   R   t   keysR%   R   (   Re   R`   t   i(    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_read_basic_tableR  s    -'"c          C` s~   t  j d t d „  ƒ t  j d t d „  ƒ t j d d ƒ }  t |  t ƒ sS t ‚ t j d d ƒ } t | t ƒ sz t ‚ d  S(   Nu   testc           S` s   t  ƒ  S(   N(   R   (    (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyRP   `  s    c           S` s   t  ƒ  S(   N(   R	   (    (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyRP   a  s    RS   (   R   R*   R   R	   R   R_   R%   (   R`   t   tbl(    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt9   test_register_readers_with_same_name_on_different_classes]  s    c          ` sª   d t  f d „  ƒ  Y‰  d ˆ  f d „  ƒ  Y}  d „  } ‡  f d †  } t j d t  | ƒ t j d |  ƒ | k su t ‚ t j d ˆ  | ƒ t j d |  ƒ | k s¦ t ‚ d  S(   Nt   Child1c           B` s   e  Z RS(    (   R   R   (    (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyRq   m  s   t   Child2c           B` s   e  Z RS(    (   R   R   (    (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyRr   p  s   c           S` s   t  ƒ  S(   N(   R	   (    (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   _reads  s    c           ` s   ˆ  ƒ  S(   N(    (    (   Rq   (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   _read1v  s    u   test(   R	   R   R*   R!   R%   (   Rr   Rs   Rt   (    (   Rq   s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_inherited_registrationh  s    	c         C` s+   t  j t ƒ t j t ƒ t j t ƒ d  S(   N(   R   R?   RC   R   RK   R   R@   (   R   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   teardown_function„  s    t   TestSubclassc           B` s    e  Z d  Z d „  Z d „  Z RS(   u4   
    Test using registry with a Table sub-class
    c         C` s›   d t  f d „  ƒ  Y} d d g } | j | d d ƒ} t  j | d d ƒ} t j | | k ƒ sg t ‚ | j | j k s t ‚ t | ƒ | k s— t ‚ d  S(   Nt   MyTablec           B` s   e  Z RS(    (   R   R   (    (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyRx     s   u   a bu   1 2RS   u   ascii(   R	   R   Rh   t   allR%   t   colnamest   type(   t   selfRx   Re   t   mtR`   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_read_table_subclass  s    c         C` s‡   t  ƒ  } d t f d „  ƒ  Y} | d g d g g d d d g ƒ} | j | d d	 ƒ| j ƒ  t j j d
 d d g ƒ k sƒ t ‚ d  S(   NRx   c           B` s   e  Z RS(    (   R   R   (    (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyRx   œ  s   i   i   t   namesu   au   bRS   u   asciiu   a bu   1 2u    (   R   R	   R   t   getvaluet   ost   linesepRD   R%   (   R|   t   bufferRx   R}   (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   test_write_table_subclass™  s
    	$(   R   R   t   __doc__R~   R„   (    (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyRw   Š  s   	
(    (C   t
   __future__R    R   R   R   R   R   R   t   numpyRh   R   R   R   R   t    R   R   R	   t   extern.six.movesR
   R   t
   extern.sixR   RC   RK   R@   RA   R   R   R   R   R   R'   R)   R,   R/   R2   R3   R4   R5   R6   R7   R8   R:   R;   R<   R=   R>   RB   RI   RJ   RL   RQ   RR   RT   RU   R\   R]   R^   Ra   Rc   Rf   Rn   Rp   Ru   Rv   Rw   (    (    (    s=   lib/python2.7/site-packages/astropy/io/tests/test_registry.pyt   <module>   sh   "																									
														