+
    nDj[L                        R t ^ RIt^ RIHtHt ^ RIt^ RIt^ RIt^ RI	H
t
 ^ RIHt ^ RIHtHt ^ RIt^ RIHtHtHt ^ RIt^ RIHt ^ RIHt ]! ]! ]4      R	4      t^tR
t]P<                  P>                  t ]R 4       t!]R 4       t"R t#R t$R t%R t&R t'R t(R t)R t*R t+R t,R t-R t.R t/R t0R t1R t2R t3R t4R t5R  t6R! t7R" t8R# t9R$ t:R% t;R& t<R' t=R# )(zTests for netcdf N)joindirname)BytesIO)glob)chdircontextmanager)assert_assert_allcloseassert_equal)raises)netcdf_filedatabc            	   #     "   \         P                  ! 4       ;_uu_ 4       p \        V 4      ;_uu_ 4        V x  RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i5i)ay  Create, return, and change directory to a temporary directory

Examples
--------
>>> import os
>>> my_cwd = os.getcwd()
>>> with in_tempdir() as tmpdir:
...     _ = open('test.txt', 'wt').write('some text')
...     assert os.path.isfile('test.txt')
...     assert os.path.isfile(os.path.join(tmpdir, 'test.txt'))
>>> os.path.exists(tmpdir)
False
>>> os.getcwd() == my_cwd
True
N)tempfileTemporaryDirectoryr   )tds    T/data/cameron/venvs/s3viz/lib/python3.14/site-packages/scipy/io/tests/test_netcdf.py
in_tempdirr      sD     " 
	$	$	&	&"2YYH  
'	&Y 
'	&	&s2   A2AA	A
A2AAA/	)	A2c               /     "   \        V / VB pR Vn        VP                  R\        4       VP	                  R\
        R4      p\        P                  ! \        4      VR&   RVn        VP                  4        Vx  VP                  4        R# 5i)Created for a testtimeNNNzdays since 2008-01-01Nr   )r   historycreateDimensionN_EG_ELScreateVariable
VARTYPE_EGnparangeunitsflushclose)argskwargsfr   s   *,  r   make_simpler'   2   so     T$V$A$AIfh'FJ	:Dii!DG(DJGGI
GGGIs   B
Bc                    \        V P                  R4       V P                  R,          p\        VP                  R4       \        VP                  \
        34       \        VR,          \
        ^,
          4       R# )zExample fileobj tests    Created for a testr   s   days since 2008-01-01N)r
   r   	variablesr!   shaper   )	ncfileobjr   s   & r   check_simpler.   ?   sT    ""$9:v&D56h[)b8A:&    c                Z    \         P                  P                  V 4      p\        W!4       R# )a  
Asserts that the mask of arr is effectively the same as expected_mask.

In contrast to numpy.ma.testutils.assert_mask_equal, this function allows
testing the 'mask' of a standard numpy array (the mask in this case is treated
as all False).

Parameters
----------
arr : ndarray or MaskedArray
    Array to test.
expected_mask : array_like of booleans
    A list giving the expected mask.
N)r   magetmaskarrayr
   )arrexpected_maskmasks   && r   assert_mask_matchesr6   G   s       55c"D%r/   c                  N	   \         P                  ! 4       p  \        P                  ! 4       p\         P                  ! V4       \        R R4      ;_uu_ 4       p RRR4       \        R R4      ;_uu_ 4       p\        V4       ^VP                  R&   RRR4       \        R 4      ;_uu_ 4       pVP                  '       g   Q h\        V4       \        VP                  R,          ^4       RRR4       \        R R4      ;_uu_ 4       p\        VP                  '       * 4       \        V4       \        VP                  R,          ^4       RRR4       \        R RR7      ;_uu_ 4       p\        VP                  '       * 4       \        V4       RRR4       \        R R4      ;_uu_ 4       p\        V4      ;_uu_ 4       p\        VP                  '       * 4       \        V4       RRR4       RRR4       \        P                  ! 4       ;_uu_ 4        \        R R4      ;_uu_ 4       p\        VRR7      ;_uu_ 4       p\        VP                  4       \        V4       RRR4       RRR4       RRR4       \        R R	4      ;_uu_ 4       p\        VR4      ;_uu_ 4       p\        VP                  '       * 4       \        V4       VP                  R
^4       VP!                  RRR4      p^*VR&   RRR4       RRR4       \        R 4      ;_uu_ 4       p\        V4       \        VP"                  R,          R,          ^*4       RRR4       \         P                  ! V 4       \$        P&                  ! V4       R#   + '       g   i     EL#; i  + '       g   i     EL ; i  + '       g   i     EL; i  + '       g   i     ELq; i  + '       g   i     ELB; i  + '       g   i     EL ; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELZ; i  + '       g   i     ELf; i  + '       g   i     EL/; i  \         P                  ! T 4       \$        P&                  ! X4       i ; i)z	simple.ncwNa	appendRanFmmaprbTzr+bapp_dimapp_varir   )r>   )osgetcwdr   mkdtempr   r'   r   r.   _attributesuse_mmapr
   r   openwarningscatch_warningsr   r   r+   shutilrmtree)cwdtmpdirr&   fobjvars        r   test_read_write_filesrO   [   s   
))+C@!!#
c**a + c**aO)*AMM+& + %%::::O{3Q7	 & c**a

N#O{3Q7 + 511Q

N#O 2 +t$$T""aAJJ'Q # % $$&&k4((D D11QAJJ' O 2 ) ' +u%%T3''1AJJ'Q!!)Q/&&y#|DA ( & %%OY/2B7 &
 	f{ +** +** &%% +** 211 #"" %$$ 211 )(( '&& ('' &%% &%%
 	fsE  ?Q6 M2Q6 4NQ6 *=N'Q6 AN.Q6 #&O	Q6 %O*9&O	O*'%Q6 P&!P	7!O>P	 P&(Q6 QAP:	)Q1Q6 0Q"<Q6 2N	=	Q6 N		Q6 N+	%	Q6 .N?	9	Q6 O		Q6 O'!	O**O;	5	Q6 >P		P	P#	P&&P7	1	Q6 :Q	QQ		Q6 "Q3	-	Q6 6.R$c                  v   \        4       p \        V R 4      ;_uu_ 4        V P                  4       pRRR4       \        X4      p\        V4      ;_uu_ 4       p\	        V4       RRR4       \        V4      p\        \        \        VRR4       \        4       p\        VR ^R7      ;_uu_ 4       pVP                  4       pRRR4       \        V4      p\        V4      ;_uu_ 4       p\	        V4       \        VP                  ^4       RRR4       \        V4      p\        V^R7      ;_uu_ 4       p\	        V4       \        VP                  ^4       RRR4       R#   + '       g   i     EL2; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)r8   NrT)version)	r   r'   getvaluer   r.   assert_raises
ValueErrorr
   version_byte)eg_sio1str_valeg_sio2f2eg_sio3	eg_sio_64f_64s          r   test_read_write_sior^      s=   iG	Wc	"	"""$ 
# gG	W		R 
 gG*k7C>	I	YQ	/	/4$$& 
0  I	Y		4TT&&* 
   I	Y	*	*dTT&&* 
+	*+ 
#	"	" 
		 
0	/ 
 	
 
+	*	*s;   EE-,F#"F-"F'E*	-E>	F	F$	'F8	c                     \        4       p \        V R R7      pRVn        VP                  R^4       VP	                  R\
        P                  R4      pR	V^ &   RVn        VP                  4        V P                  4       pRp\        W44       R# )
r8   moder   dimrN   ds|   CDF       
      dim             a         b            var                 c         d            xN)rb   i)r   r   r9   r   r   r   int16csyncrS   r
   )raw_filer&   rN   actualexpecteds        r   
test_bytesrj      s    yHH3'A ACeQ


5"((H
5CCFCEFFH F$H@ "r/   c                  |   \        \        4       R R7      ;_uu_ 4       p V P                  R^4       V P                  RRR	4      p\	        VP                  4       R4       RVn        \	        VP                  4       R4       RVn        \	        VP                  4       R4       RRR4       R#   + '       g   i     R# ; i)
r8   r`   xrN   S1       s     Nrl   )r   r   r   r   r
   _get_encoded_fill_value
_FillValue)r&   rN   s     r   test_encoded_fill_valuers      s    	WYS	)	)Q	#q!udF3S002G< S002G<$S002G< 
*	)	)	)s   BB**B;	c                     \        \        \        R 4      4       FA  p \        V R4      ;_uu_ 4         RRR4       \        V RRR7      ;_uu_ 4         RRR4       KC  	  R#   + '       g   i     L6; i  + '       g   i     Kk  ; i)z*.ncrQ   NFr;   )r   pjoinTEST_DATA_PATHr   )fnames    r   test_read_example_datarx      sX    eNF34$$ %%00 10 5$$000s   A!A4!A14Bc            	         \        \        R 4      p \        P                  ! 4       ;_uu_ 4        Rp\        P                  ! RV\
        4       \        V RRR7      ;_uu_ 4       pVP                  R,          pRRR4       RRR4       \        \        XP                  ^*4       R#   + '       g   i     L5; i  + '       g   i     L@; i)example_1.ncsCannot close a netcdf_file opened with mmap=True, when netcdf_variables or arrays referring to its data still existignorerQ   Tr;   r   N)ru   rv   rG   rH   filterwarningsRuntimeWarningr   r+   rT   RuntimeErrorassignValue)filenamemessager&   time_vars       r   $test_itemset_no_segfault_on_readonlyr     s     ^^4H		 	 	"	"R'>B3T22a{{6*H 3	 
# , 4 4b9	 32	 
#	"s#   5B7#B$	7B7$B4/B77C	c                     \        4       p \        V R R7      ;_uu_ 4       pVP                  R^4       VP                  R\        R4       ^VP
                  R,          R&   VP                  4        V P                  4       pRRR4       \        X4      p \        V RR7      ;_uu_ 4       p^VP
                  R,          R&   RRR4       R#   + '       g   i     LQ; i  + '       g   i     R# ; i)r8   r`   rl   .Nr9   rp   )	r   r'   r   r   floatr+   r"   rS   r   )streamr&   contentss      r   test_appending_issue_gh_8625r     s    YF	V#	&	&!	#q!	eV, !C		??$ 
' XF	V#	&	&! !C 
'	& 
'	& 
'	&	&s   A C	(C	C	C-	c            
         R R.p \         P                  ! R4      P                  ^8X  d   V P                  R4       \         P                  ! R4      P                  ^8X  d   V P                  R4       \	        \        4       R4      ;_uu_ 4       pVP                  R\        4       V  F   p\        \        VP                  RVR4       K"  	  RRR4       R#   + '       g   i     R# ; i)int64uint64intuintr8   r   Nr   )r   dtypeitemsizeappendr   r   r   r   rT   rU   r   )dtypesr&   dts      r   test_write_invalid_dtyper   !  s    x F	xx1$e	xx  A%f	WY	$	$	&(+B*a&6&6IN  
%	$	$	$s   =CC%	c                     \        4       p \        V R R7      ;_uu_ 4       pVP                  R^4       VP                  RRR.4      p^VR&   VP	                  4        \        V P                  4       4      pVP	                  4        \        V P                  4       4      pRRR4       \        XX8H  4       R#   + '       g   i     L ; i)r8   r`   rl   vi2r   N)r   r'   r   r   r"   lenrS   r   )r   r&   r   
len_single
len_doubles        r   test_flush_rewindr   .  s    YF	V#	&	&!	#a S$.!		*+
		*+
 
' J*$% 
'	&s   A>B66C	c                  v   \        \        4       R R7      ;_uu_ 4       p V P                  R^4       V P                  RRR.4       V P                  R\        P
                  R.4       V P                  R\        P                  ! \        P
                  4      R.4       RRR4       R#   + '       g   i     R# ; i)r8   r`   rl   v1r   v2v3N)r'   r   r   r   r   rd   r   )r&   s    r   test_dtype_specifiersr   <  s     
WYS	)	)Q	#a 	tcU+	rxx#/	rxx1C59	 
*	)	)	)s   A?B''B8	c                  x   \        4       p . ROp\        V R4      ;_uu_ 4       pRVn        VP                  R^
4       VP	                  RRR4      pWR&   RVn        VP                  4        V P                  4       pRRR4       \        X4      p \        V R4      ;_uu_ 4       p\        VP                  R	4       VP                  R,          p\        VP
                  R
4       \        VP                  R4       \        VR,          V4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)    r8   r   	float_varr&   r   metresNrQ   r)   s   metres)
r   g?g?g333333?g?g      ?g333333?gffffff?g?g?)r   )
   )r   r   r   r   r   r!   r"   rS   r
   r+   r,   r	   )ioitemsr&   r   r   s        r   test_ticket_1720r   G  s    	B3E	R		(		+r*$$[#~F	!"			;;= 
 
	B	R		QYY 56KK,	Y__i0Y__e,	!e, 
	 
	 
		s   AD"A)D(D%	(D9	c            	      F  a \        \        R 4      o\        P                  ! 4       ;_uu_ 4        \        P                  ! R4       \        SRR7      ;_uu_ 4       p V P                  R,          R,          p?RRR4       RRR4       V3R lp\        P                  ! 4       ;_uu_ 4        Rp\        P                  ! R	V\        4       V! 4       pRRR4       XP                  4        R#   + '       g   i     L{; i  + '       g   i     L; i  + '       g   i     LH; i)
rz   errorTr;   latr   Nc                     < \        SR R7      ;_uu_ 4       p V P                  R,          R,          uuRRR4       #   + '       g   i     R# ; i)Tr;   r   r   N)r   r+   )r&   r   s    r   doit!test_mmaps_segfault.<locals>.doith  s2    --;;u%a( .---s	   <A	r{   r|   )
ru   rv   rG   rH   simplefilterr   r+   r}   r~   sum)r&   rl   r   r   r   s       @r   test_mmaps_segfaultr   ^  s    ^^4H		 	 	"	"g&--E"1%A . 
#)
 
	 	 	"	"R'>BF	 
#
 EEG .- 
#	" 
#	"s/   ,C=C*	7C=*&D*C:5C==D	D 	c                     \        4       p \        V R 4      ;_uu_ 4       pVP                  RR. 4      pVP                  RJ g   Q VP                  4       hVP	                  4        RRR4       R#   + '       g   i     R# ; i)r8   zerodimr   FN)r   r'   r   isrecr"   )r   r&   r   s      r   test_zero_dimensional_varr   u  sa    	B	R		Yb1 ww%((		 
			s   AA..A?	c                     \        4       ;_uu_ 4        R p \        V R4      pRVP                  R&   RVP                  R&   VP                  4        \        V R4      p\	        VP                  R,          R4       \	        VP                  R,          R4       VP                  4        RRR4       R#   + '       g   i     R# ; i)	zg_byte_atts.ncr8   s   grailholyfloatswitchrQ   s   floatsNr   r   rD   r#   r
   r   r&   s     r   test_byte_gattsr     s     
##& (f!)g		#&Q]]6*H5Q]]7+Y7		 
s   BB00C	c                     \        4       ;_uu_ 4        R p \        V R4      pRVP                  R&   VP                  4        \        V R4      p\	        VP                  R,          R4       RVP                  R&   VP                  4        \        V R4      p\	        VP                  R,          R4       \	        VP                  R,          R4       VP                  4        R	R	R	4       R	#   + '       g   i     R	# ; i)
zappend_dat.ncr8   zwas hereKilroyr9   s   was heres   ZootnaughtyrQ   Nr   r   s     r   test_open_appendr     s    	"#&",h		 #&Q]]8,k:#*i 		 #&Q]]8,k:Q]]9-w7		! 
s   CC))C:	c                     ^dp \        4       ;_uu_ 4        \        RR4      ;_uu_ 4       pVP                  RR4       VP                  RRR4       VP                  RV 4       VP                  RRR4      p\        P
                  ! \        V 4      4      VR&   VP                  RV 4       VP                  RRR4      p\        P
                  ! \        V 4      4      VR&   VP                  R	R
R4       VP                  4        VP                  4        RRR4       \        ^4       EF  p\        RR4      ;_uu_ 4       p\        P                  ! VP                  R,          P                  V4      VP                  R,          n        \        P                  ! W 3V4      VP                  R	,          VRR3&   VP                  4        RRR4       \        R4      ;_uu_ 4       p\        VP                  R,          R,          V4       \        VP                  R	,          R,          P                  4       \        P                  ! W 3V4      4       \        VP                  R,          P                  P                  ^ ,          V^,           4       \        VP                  R	,          P                  P                  ^ ,          V^,           4       RRR4       EK  	  \        R4      ;_uu_ 4       p\!        \"        4      ;_uu_ 4       pVP                  R	,          P$                  R,           RRR4       XP&                  p\        VP(                  ^ ,          R4       RRR4       RRR4       R#   + '       g   i     ELb; i  + '       g   i     EL; i  + '       g   i     EK  ; i  + '       g   i     L; i  + '       g   i     Lj; i  + '       g   i     R# ; i)d   zwithRecordDimension.ncr8   r   Nrc   rl   r   ytestDatar@   r9   r   r   rp   )r   )r   rl   r   r*   )r*   r   r   )r   r   r   r   r   arrayranger"   r#   r   r+   r   fullr
   copyr,   rT   KeyErrorrD   valuer$   )dataSizer&   rl   r   r@   arexs          r   test_append_recordDimensionr     s   H	13771fd+VS)4c8,  c62A88E(O,AaDc8,  c62A88E(O,AaDZ.@AGGIGGI 8 qA5s;;q+-99Q[[5H5M5Mq+QF#(3577H;OQR3SJ'1a0	 < 566!Q[[04a8Q[[4X>CCEWWh%91=?Q[[055;;A>!DQ[[499??BAaCH 76 " 122ax((BJ'33F; )BV,	 3A 
777 <;; 766 )( 32A 
s   OC'M*	+O<BM>OC+N
 O*N:	%N''1N:	O*M;5	O>N		ON$
O'N72N:	:O
OO	c            
      V   \         P                  ! ^^^4      p ^dV ^&   \         P                  P                  V ^c4      p\	        \
        R4      p\        VRR7      ;_uu_ 4       pVP                  R,          p\        VP                  R4       \        VP                  ^4       \        VP                  \         P                  ! R4      4       VR,          P                  4       p?\         P                  ! VP                  4       ^4      p\        WV4       RRR4       \!        4       ;_uu_ 4        R	p\        VR
RR7      pVP#                  R\%        V4      4       VP'                  RRR4      pRVn	        RVn        ^Vn
        WR&   VP)                  4        \        VRR7      ;_uu_ 4       pVP                  R,          p\        VP                  R4       \        VP                  ^4       \        VP                  \         P                  ! R4      4       \         P                  ! VP                  4       ^4      pVR,          P                  4       p?\        WV4       RRR4       RRR4       R#   + '       g   i     ELd; i  + '       g   i     L.; i  + '       g   i     R# ; i)   zexample_2.ncTmaskandscaleTemperature'  g{Gz?r   Nzms.ncr8   r@   )r   )r   linspacer1   masked_greaterru   rv   r   r+   r
   missing_value
add_offsetscale_factorfloat32
compressedroundr	   r   r   r   r   r#   )	ttmrw   r&   Tempfoundri   newfnametemps	            r   test_maskandscaler     s   
BBAAaD			a	$B..1E	U	.	.!{{=)T''.T__b)T&&

4(89Q""$88BMMOQ/( 
/ 
#D9	-R1s4DE! Q		55;;}-D++T2"-**BJJt,<=xx3HG&&(EE, 6 
 
/	.	.* 65 
s3   #B2I0/A=J,B2J	J0J	JJJ(	c                      \        \        R 4      p \        V RR7      ;_uu_ 4       pVP                  R,          R,          p\	        V. RO4       RRR4       R#   + '       g   i     R# ; i)example_3_maskedvals.ncTr   var1_fillval0r   NFTFru   rv   r   r+   r6   rw   r&   vardatas      r   !test_read_withValuesNearFillValuer     sK    .";<E	U	.	.!++o.q1G%9: 
/	.	.	.   )AA*	c                      \        \        R 4      p \        V RR7      ;_uu_ 4       pVP                  R,          R,          p\	        V. RO4       \        V. RO4       RRR4       R#   + '       g   i     R# ; i)r   Tr   var2_noFillvalr   NFFF         ru   rv   r   r+   r6   r
   r   s      r   test_read_withNoFillValuer     sX     .";<E	U	.	.!++./2G%:;Wg& 
/	.	.	.s   7A''A8	c                      R p \        \        R4      p\        VRR7      ;_uu_ 4       pVP                  R,          R,          p\	        V. RO4       \        W0^^.4       RRR4       R#   + '       g   i     R# ; i)r   r   Tr   var3_fillvalAndMissingValuer   N)TFFr   )IRRELEVANT_VALUErw   r&   r   s       r   &test_read_withFillValueAndMissingValuer     sc     .";<E	U	.	.!++;<Q?G%9:WA67 
/	.	.	.s   7A))A:	c                      \        \        R 4      p \        V RR7      ;_uu_ 4       pVP                  R,          R,          p\	        V. RO4       RRR4       R#   + '       g   i     R# ; i)r   Tr   var4_missingValuer   Nr   r   r   s      r   test_read_withMissingValuer     sN     .";<E	U	.	.!++1215G%9: 
/	.	.	.r   c                      \        \        R 4      p \        V RR7      ;_uu_ 4       pVP                  R,          R,          p\	        V. RO4       RRR4       R#   + '       g   i     R# ; i)r   Tr   var5_fillvalNaNr   Nr   r   r   s      r   test_read_withFillValNaNr     sL    .";<E	U	.	.!++/03G%9: 
/	.	.	.r   c                      \        \        R 4      p \        V RR7      ;_uu_ 4       pVP                  R,          R,          p\	        V. RO4       RRR4       R#   + '       g   i     R# ; i)r   Tr   	var6_charr   Nr   r   r   s      r   test_read_withCharr    sK    .";<E	U	.	.!++k*1-G%9: 
/	.	.	.r   c            	          \        \        R 4      p \        V RR7      ;_uu_ 4       pVP                  R,          R,          p\	        VRR.RR.RR..4       RRR4       R#   + '       g   i     R# ; i)r   Tr   var7_2dr   FNr   r   s      r   test_read_with2dVarr  #  s]    .";<E	U	.	.!++i(+GtUmeU^eT]%ST 
/	.	.	.s   0A  A1	c                      \        \        R 4      p \        V RRR7      ;_uu_ 4       pVP                  R,          R,          p\	        V. RO4       \        V. RO4       RRR4       R#   + '       g   i     R# ; i)r   F)r   r<   r   r   Nr   r   r   r   s      r   test_read_withMaskAndScaleFalser  )  s\     .";<E 
UU	;	;q++;<Q?G%:;Wi( 
<	;	;	;s   7A((A9	)>__doc__rA   os.pathr   ru   r   rI   r   rG   r   r   r   
contextlibr   r   numpyr   numpy.testingr   r	   r
   pytestr   rT   scipy.ior   __file__rv   r   r   markthread_unsafe
pytestmarkr   r'   r.   r6   rO   r^   rj   rs   rx   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r/   r   <module>r     s    	 *      ,  @ @  *  wx(&1
 [[&&
  * 	 	'&(CL+8.#b=: "
O&:-..*'-R"-R;'8;;;U	)r/   