HOME


sh-3ll 1.0
DIR:/usr/local/lib/python3.6/site-packages/xarray/backends/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.6/site-packages/xarray/backends/__pycache__/h5netcdf_.cpython-36.pyc
3

���h��@s�ddlZddlmZddlmZddlmZddlmZm	Z	m
Z
ddlmZm
Z
mZmZdd	lmZdd
lmZmZmZdd�Zd
d�Zejeddd�ZGdd�de�ZdS)�N�)�Variable)�
cf_encoder)�indexing)�FrozenOrderedDict�close_on_error�Frozen)�	iteritems�
bytes_type�unicode_type�OrderedDict�)�WritableCFDataStore)�
_nc4_group�_nc4_values_and_dtype�_extract_nc4_encodingcCst|t�r|jd�S|SdS)Nzutf-8)�
isinstancer
�decode)�txt�r�9/tmp/pip-build-5_djhm0z/xray/xarray/backends/h5netcdf_.py�maybe_decode_bytes
s

rcCs>t�}x2|j�D]&}|j|�}|dkr.t|�}|||<qW|S)N�
_FillValue�
missing_value)rr)rZncattrsZ	getncattrr)Zh5netcdf_var�attrs�k�vrrr�_read_attributess
rF�h5netcdf)Zlsd_okay�backendcspeZdZdZd�fdd�	Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
ddd�Z�fdd�Zdd�Z
�ZS)�
H5NetCDFStorez4Store for reading and writing data via h5netcdf
    �rNcsjddl}|dkrtd��|jj||d�}t|��t|||�|_WdQRX||_||_t	t
|�j|�dS)Nr�NETCDF4z#invalid format for h5netcdf backend)�mode)Nr")Zh5netcdf.legacyapi�
ValueErrorZ	legacyapiZDatasetrr�ds�format�	_filename�superr �__init__)�self�filenamer#r&�group�writerrr%)�	__class__rrr)(s
zH5NetCDFStore.__init__cCsb|j}tj|�}t|�}t|j��}|j�}|dkr8|nd|d<|j|d<|j|d<t	||||�S)N�
contiguous�
chunksizes�sourceZoriginal_shape)
�
dimensionsrZLazilyIndexedArrayr�dict�filters�chunkingr'�shaper)r*�varr2�datar�encodingr5rrr�open_store_variable4s


z!H5NetCDFStore.open_store_variablecst�fdd�t�jj�D��S)Nc3s |]\}}|�j|�fVqdS)N)r:)�.0rr)r*rr�	<genexpr>Esz.H5NetCDFStore.get_variables.<locals>.<genexpr>)rr	r%�	variables)r*r)r*r�
get_variablesDszH5NetCDFStore.get_variablescCstt|j��S)N)rrr%)r*rrr�	get_attrsHszH5NetCDFStore.get_attrscCs|jjS)N)r%r2)r*rrr�get_dimensionsKszH5NetCDFStore.get_dimensionscCs|jj||d�dS)N)�size)r%ZcreateDimension)r*�name�lengthrrr�
set_dimensionNszH5NetCDFStore.set_dimensioncCs|jj||�dS)N)r%�	setncattr)r*�key�valuerrr�
set_attributeQszH5NetCDFStore.set_attributeFcCs�ddl}|jj�}t|�\}}|tkr2|jtd�}|j|�|jdd�}|dkrTd}t	||d�}i}	x d
D]}
|
|krj||
|	|
<qjW|j
j|||jfd|i|	��}x t
|�D]\}}
|j||
�q�W||jfS)Nr)Zvlenr�)Zraise_on_invalid�zlib�	complevel�shuffler0�
fletcher32�
fill_value)rI)rJrKrLr0rM)�h5pyr�copyr�strZ
special_dtyperZset_necessary_dimensions�pop�_extract_h5nc_encodingr%ZcreateVariableZdimsr	rEr8)r*rB�variableZcheck_encodingrOrZdtyperNr9�kwargsrFZnc4_varrrrrr�prepare_variableTs*

zH5NetCDFStore.prepare_variablecstt|�j�|jj�dS)N)r(r �syncr%)r*)r.rrrWrszH5NetCDFStore.synccCs(|j}x|jdk	r|j}qW|j�dS)N)r%�parent�close)r*r%rrrrYvs
zH5NetCDFStore.close)r!NNN)F)�__name__�
__module__�__qualname__�__doc__r)r:r>r?r@rDrHrVrWrY�
__classcell__rr)r.rr %s
r )�	functools�rZconventionsr�corerZ
core.utilsrrrZ
core.pycompatr	r
rr�commonrZnetCDF4_rrrrr�partialrSr rrrr�<module>s