Source code for cdflib.dataclasses

from dataclasses import dataclass
from numbers import Number
from pathlib import Path
from typing import Dict, List, Optional, Union

import numpy as np

__all__ = ["ADRInfo", "CDFInfo", "CDRInfo", "GDRInfo", "VDRInfo", "AEDR", "VDR", "AEDR", "AttData"]


[docs] @dataclass class ADRInfo: scope: int next_adr_loc: int attribute_number: int num_gr_entry: int max_gr_entry: int num_z_entry: int max_z_entry: int first_z_entry: int first_gr_entry: int name: str
[docs] @dataclass class CDFInfo: """ CDF information. """ #: Path to the CDF. CDF: Union[str, Path] #: CDF version. Version: str #: Endianness of the CDF. Encoding: int #: Row/column majority. Majority: str #: zVariable names. rVariables: List[str] #: rVariable names. zVariables: List[str] #: List of dictionary objects that map attribute_name to scope. Attributes: List[Dict[str, str]] Copyright: str #: Checksum indicator. Checksum: bool #: Number of dimensions for rVariables. Num_rdim: int #: Dimensional sizes for rVariables. rDim_sizes: List[int] #: If CDF is compressed at file level. Compressed: bool #: Last updated leap second table. LeapSecondUpdate: Optional[int] = None
[docs] @dataclass class CDRInfo: encoding: int copyright_: str version: str majority: int format_: bool md5: bool post25: bool
[docs] @dataclass class GDRInfo: first_zvariable: int first_rvariable: int first_adr: int num_zvariables: int num_rvariables: int num_attributes: int rvariables_num_dims: int rvariables_dim_sizes: List[int] eof: int leapsecond_updated: Optional[int] = None
[docs] @dataclass class VDRInfo: """ Variable data record info. """ #: Name of the variable. Variable: str #: Variable number. Num: int #: Variable type: zVariable or rVariable. Var_Type: str #: Variable CDF data type. Data_Type: int Data_Type_Description: str #: Number of elements of the variable. Num_Elements: int #: Dimensionality of variable record. Num_Dims: int #: Shape of the variable record. Dim_Sizes: List[int] Sparse: str #: Maximum written variable number (0-based). Last_Rec: int #: Record variance. Rec_Vary: int #: Dimensional variance(s). Dim_Vary: Union[List[int], List[bool]] #: a doc Compress: int #: Padded value (if set). Pad: Optional[Union[str, np.ndarray]] = None #: Blocking factor (if variable is compressed). Block_Factor: Optional[int] = None
[docs] @dataclass class AEDR: entry: Union[str, np.ndarray] data_type: int num_elements: int next_aedr: int entry_num: int num_strings: Optional[int] = None
[docs] @dataclass class VDR: data_type: int section_type: int next_vdr_location: int variable_number: int head_vxr: int last_vxr: int max_rec: int name: str num_dims: int dim_sizes: List[int] compression_bool: bool compression_level: int blocking_factor: int dim_vary: Union[List[int], List[bool]] record_vary: int num_elements: int sparse: int pad: Optional[Union[str, np.ndarray]] = None
[docs] @dataclass class AttData: """ Attribute data. """ #: Number of bytes for each entry value. Item_Size: int #: CDF data type. Data_Type: str #: Number of values extracted. Num_Items: int #: Data as a scalar value, a numpy array or a string. Data: Union[Number, str, np.ndarray]