
    3                     4   U d dl mZ d dlZd dlZd dlZd dlZd dlmZmZ d dl	Z	d dl
Z
dZdZdZg dZdZg d	Zee   ed
<   g dZddgZee   ed<   g Zee   ed<   g Zee   ed<   g Zee   ed<   i Zeeee   f   ed<   dgZee   ed<   g dZee   ed<   g Zee   ed<   g Zee   ed<   g Zee   ed<   g Zee   ed<   i Zeeee   f   ed<    ej@                  e!      jD                  jG                         Z$g de
jJ                  _&        de
jJ                  _'         e
jP                  e      d        Z) e
jP                  e      d        Z* e
jP                  e      d         Z+ e
jP                  e      d!        Z,d" Z- e
jP                  e      d#        Z.d$ Z/ e
jP                  e      d%        Z0 e
jP                  e      d&        Z1 e
jP                  d'      d(        Z2 e
jP                  d'      d)        Z3 e
jP                  d*      d+        Z4y),    )absolute_importN)DictListzflake8==6.1.0zblack[jupyter]==23.7.0zisort==5.11.0)docsgoogle_auth_httplib2.pytestsz
noxfile.pysetup.py3.8)z3.7r
   z3.93.10z3.11z3.123.13UNIT_TEST_PYTHON_VERSIONS)mock	asyncmockpytest
pytest-covzpytest-asyncioflaskzpytest-localserverUNIT_TEST_EXTERNAL_DEPENDENCIESUNIT_TEST_LOCAL_DEPENDENCIESUNIT_TEST_DEPENDENCIESUNIT_TEST_EXTRASUNIT_TEST_EXTRAS_BY_PYTHONSYSTEM_TEST_PYTHON_VERSIONS)r   r   zgoogle-cloud-testutils!SYSTEM_TEST_STANDARD_DEPENDENCIES!SYSTEM_TEST_EXTERNAL_DEPENDENCIESSYSTEM_TEST_LOCAL_DEPENDENCIESSYSTEM_TEST_DEPENDENCIESSYSTEM_TEST_EXTRASSYSTEM_TEST_EXTRAS_BY_PYTHON)	unitsystemcoverlintlint_setup_pyblackenr   docfxformatT)pythonc                     | j                  t        t                | j                  ddgt          | j                  ddd       y)z|Run linters.

    Returns a failure if the linters find linting errors or sufficiently
    serious code quality issues.
    blackz--checkflake8r   r   N)installFLAKE8_VERSIONBLACK_VERSIONrun
LINT_PATHSsessions    Jplatform/gsutil/third_party/google-auth-library-python-httplib2/noxfile.pyr"   r"   \   sC     OONM2GKK 

 KK3W=    c                 \    | j                  t                | j                  dgt          y)z+Run black. Format code to uniform standard.r)   N)r+   r-   r.   r/   r0   s    r2   r$   r$   l   s)     OOM"GKK	r3   c                     | j                  t        t                | j                  ddgt           | j                  dgt          y)z[
    Run isort to sort imports. Then run black
    to format code to uniform standard.
    isortz--fssr)   N)r+   r-   ISORT_VERSIONr.   r/   r0   s    r2   r&   r&   v   sM     OOM=1 GKK 

 GKK	r3   c                 R    | j                  dd       | j                  ddddd       y)	z4Verify that setup.py is valid (including RST check).docutilspygmentsr'   r	   checkz--restructuredtextz--strictNr+   r.   r0   s    r2   r#   r#      s'     OOJ
+KK*g/CZPr3   c                    t         t        z   } | j                  g ||  t        r2t	        j
                  dt                | j                  g t        |  t        r | j                  g t        |  t        r!t        j                  | j                  g       }nt        rt        }ng }|r( | j                  dddj                  |       dg|  y  | j                  ddg|  y )Nz'unit_test_external_dependencies' is deprecated. Instead, please use 'unit_test_dependencies' or 'unit_test_local_dependencies'.-e.[,].)UNIT_TEST_STANDARD_DEPENDENCIESr   r+   r   warningswarnDeprecationWarningr   r   getr'   r   join)r1   constraintsstandard_depsextrass       r2   install_unittest_dependenciesrL      s    36LLMGOO1]1[1&N	

 	G8G;G#D5DD!+//C	!388F#3"4A6EEc0K0r3   c                     t        t        dz  d| j                   dz        }t        | d|        | j                  ddd| j                   dd	d
dddddg
| j
                    y )Ntestingconstraints-.txt-cpy.test--quietz--junitxml=unit__sponge_log.xmlz--cov=google_auth_httplib2z--cov=testsz--cov-appendz--cov-config=.coveragercz--cov-report=z--cov-fail-under=0r   )strCURRENT_DIRECTORYr'   rL   r.   posargs)r1   constraints_paths     r2   r   r      s     I%,w~~6Fd(KK "'41AB GKK
7>>*/:$" 
r3   c                    | j                  dd        | j                   g t        |  t        r | j                   g t        |  t        r | j                   dgt        |  t        r | j                   dgt        |  t
        r!t
        j                  | j                  g       }nt        rt        }ng }|r( | j                   dddj                  |       dg|  y  | j                   ddg|  y )N--prezgrpcio!=1.52.0rc1r>   r?   r@   rA   rB   )
r+   r   r   r   r   r   rG   r'   r   rH   )r1   rI   rK   s      r2   install_systemtest_dependenciesr[      s     OOG01GOOE6EE(I:I[I%L=LLF7F+F#-11'.."E	#388F#3"4A6EEc0K0r3   c                    t        t        dz  d| j                   dz        }t        j                  j                  dd      }t        j                  j                  dd      }t        j                  j                  dd      d	k(  r| j                  d
       t        j                  j                  dd	      dk(  r| j                  d       t        j                  j                  |      }t        j                  j                  |      }|s|s| j                  d       t        | d|       |r. | j                  ddd| j                   d|g| j                    |r/ | j                  ddd| j                   d|g| j                    yy)zRun the system test suite.rN   rO   rP   r   	system.pyr    RUN_SYSTEM_TESTStruefalsez*RUN_SYSTEM_TESTS is set to false, skipping!GOOGLE_API_USE_CLIENT_CERTIFICATE	pyopensslzSystem tests were not foundrQ   rR   rS   --junitxml=system_rT   N)rU   rV   r'   ospathrH   environrG   skipr+   existsr[   r.   rW   )r1   rX   system_test_pathsystem_test_folder_pathsystem_test_existssystem_test_folder_existss         r2   r    r       sd    I%,w~~6Fd(KK ww||G[9 ggll7H= 
zz~~(&1W<AB	zz~~97CvM$(89 "/F G&?23#GT3CD   0@		

 __	
 !  0@#		

 __	
 !r3   c                 t    | j                  dd       | j                  dddd       | j                  dd       y)zRun the final coverage report.

    This outputs the coverage report aggregating coverage from the unit
    test runs (not system test runs), and then erases coverage data.
    coverager   reportz--show-missingz--fail-under=100eraseNr<   r0   s    r2   r!   r!     s4     OOJ-KK
H&68JKKK
G$r3   r   c                    | j                  dd       | j                  ddddddd	d
       t        j                  t        j                  j                  dd      d       | j                  dddddddt        j                  j                  dddd      t        j                  j                  dd      t        j                  j                  dddd      
       y)z Build the docs for this library.r>   rB   sphinxcontrib-applehelp==1.0.4sphinxcontrib-devhelp==1.0.2sphinxcontrib-htmlhelp==2.0.1sphinxcontrib-qthelp==1.0.3$sphinxcontrib-serializinghtml==1.1.5zsphinx==4.5.0	alabasterrecommonmarkr   _buildTignore_errorssphinx-buildz-W-T-N-bhtml-ddoctrees Nr+   shutilrmtreerd   re   rH   r.   r0   s    r2   r   r     s     OOD#OO
 	)&'%. MM"'',,vx0EKK
VXz26
VR 
VXvr2r3   c                    | j                  dd       | j                  ddddddd	d
       t        j                  t        j                  j                  dd      d       | j                  ddddddddt        j                  j                  dddd      t        j                  j                  dd      t        j                  j                  dddd             y)z,Build the docfx yaml files for this library.r>   rB   rr   rs   rt   ru   rv   zgcp-sphinx-docfx-yamlrw   rx   r   ry   Trz   r|   r}   r~   z-Dzextensions=sphinx.ext.autodoc,sphinx.ext.autosummary,docfx_yaml.extension,sphinx.ext.intersphinx,sphinx.ext.coverage,sphinx.ext.napoleon,sphinx.ext.todo,sphinx.ext.viewcode,recommonmarkr   r   r   r   r   Nr   r0   s    r2   r%   r%   ?  s     OOD#OO
 	)&'%. MM"'',,vx0EKK 	
VXz26
VR 
VXvr2+r3   r   c                 6   | j                  dd       t        t        z   } | j                   |  t        t        z   } | j                   |  t        t        dz  dt        d    dz  d      5 }|j                         }d	d	d	       t        j                  d
t        j                        D cg c]  }|j                  d       }} | j                   |  ddg}|D ]  }| j                  ddd|        dg}	 | j                   |	  | j                  ddd       | j                  dd       t        j                  j!                  dd      }
t        j                  j!                  dd      }t        j                  j#                  |
      r. | j                  ddd| j$                   d|
g| j&                    t        j                  j#                  |      r/ | j                  ddd| j$                   d|g| j&                    y	y	# 1 sw Y   xY wc c}w )zARun all tests with prerelease versions of dependencies installed.r>   z.[all, tests, tracing]rN   rO   r   rP   zutf-8)encodingNz^\s*(\S+)(?===\S+))flags   zgoogle-authhttplib2rZ   z	--no-depsz	--upgraderequestsr'   rQ   z2import google.auth; print(google.auth.__version__)rR   r   r]   r    z	--verboserc   rT   )r+   rC   r   r   r   openrV   r   readrefinditer	MULTILINEgroupr.   rd   re   rH   rh   r'   rW   )r1   unit_deps_allsystem_deps_allconstraints_fileconstraints_textmatchconstraints_depsprerel_depsdep
other_depsri   rj   s               r2   prerelease_depsr   m  s*   
 OOD2336UUMGOO]#),MM  GOO_%
 

	2156d
;	< 	

 
+002
 [[!#32<<

E 	A
   GOO%& 	K
 k3? 
 	J GOOZ  KK$ TUKK
 ww||G[9 ggll7H= 
ww~~&'  0@		

 __	
 
ww~~-.  0@#		

 __	
 /i
 
s   -H	.H	H)5
__future__r   rd   pathlibr   r   typingr   r   rD   noxr,   r-   r7   r/   DEFAULT_PYTHON_VERSIONr   rU   __annotations__rC   r   r   r   r   r   r   r   r   r   r   r   r   Path__file__parentabsoluterV   optionssessionserror_on_missing_interpretersr1   r"   r$   r&   r#   rL   r   r[   r    r!   r   r%   r    r3   r2   <module>r      s  & ' 	  	    
 (S
 ( 49 #  . c  +- d3i ,$& S	 &  $s)  35 Dd3i0 5*/ T#Y 00 !49 
 02 !49 1,. S	 .&( $s) ( " DI "57 d3S	>2 7 GLL*11::< 
  -1 ) *+> ,> *+ , *+ ,& *+Q ,Q18 -. /01< /0'
 1'
T *+	% ,	% F D F* *Z FJ
 J
r3   