@@ -50,7 +50,7 @@ def display_size(n):
50
50
51
51
52
52
@dataclasses .dataclass
53
- class VcfFieldSummary :
53
+ class VcfFieldSummary ( core . JsonDataclass ) :
54
54
num_chunks : int = 0
55
55
compressed_size : int = 0
56
56
uncompressed_size : int = 0
@@ -67,9 +67,6 @@ def update(self, other):
67
67
self .min_value = min (self .min_value , other .min_value )
68
68
self .max_value = max (self .max_value , other .max_value )
69
69
70
- def asdict (self ):
71
- return dataclasses .asdict (self )
72
-
73
70
@staticmethod
74
71
def fromdict (d ):
75
72
return VcfFieldSummary (** d )
@@ -168,7 +165,7 @@ class Filter:
168
165
169
166
170
167
@dataclasses .dataclass
171
- class IcfMetadata :
168
+ class IcfMetadata ( core . JsonDataclass ) :
172
169
samples : list
173
170
contigs : list
174
171
filters : list
@@ -226,12 +223,6 @@ def fromdict(d):
226
223
d ["contigs" ] = [Contig (** cd ) for cd in d ["contigs" ]]
227
224
return IcfMetadata (** d )
228
225
229
- def asdict (self ):
230
- return dataclasses .asdict (self )
231
-
232
- def asjson (self ):
233
- return json .dumps (self .asdict (), indent = 4 )
234
-
235
226
236
227
def fixed_vcf_field_definitions ():
237
228
def make_field_def (name , vcf_type , vcf_number ):
@@ -933,17 +924,11 @@ def num_fields(self):
933
924
934
925
935
926
@dataclasses .dataclass
936
- class IcfPartitionMetadata :
927
+ class IcfPartitionMetadata ( core . JsonDataclass ) :
937
928
num_records : int
938
929
last_position : int
939
930
field_summaries : dict
940
931
941
- def asdict (self ):
942
- return dataclasses .asdict (self )
943
-
944
- def asjson (self ):
945
- return json .dumps (self .asdict (), indent = 4 )
946
-
947
932
@staticmethod
948
933
def fromdict (d ):
949
934
md = IcfPartitionMetadata (** d )
@@ -987,17 +972,11 @@ def check_field_clobbering(icf_metadata):
987
972
988
973
989
974
@dataclasses .dataclass
990
- class IcfWriteSummary :
975
+ class IcfWriteSummary ( core . JsonDataclass ) :
991
976
num_partitions : int
992
977
num_samples : int
993
978
num_variants : int
994
979
995
- def asdict (self ):
996
- return dataclasses .asdict (self )
997
-
998
- def asjson (self ):
999
- return json .dumps (self .asdict (), indent = 4 )
1000
-
1001
980
1002
981
class IntermediateColumnarFormatWriter :
1003
982
def __init__ (self , path ):
@@ -1409,7 +1388,7 @@ def variant_chunk_nbytes(self):
1409
1388
1410
1389
1411
1390
@dataclasses .dataclass
1412
- class VcfZarrSchema :
1391
+ class VcfZarrSchema ( core . JsonDataclass ) :
1413
1392
format_version : str
1414
1393
samples_chunk_size : int
1415
1394
variants_chunk_size : int
@@ -1421,12 +1400,6 @@ class VcfZarrSchema:
1421
1400
def field_map (self ):
1422
1401
return {field .name : field for field in self .fields }
1423
1402
1424
- def asdict (self ):
1425
- return dataclasses .asdict (self )
1426
-
1427
- def asjson (self ):
1428
- return json .dumps (self .asdict (), indent = 4 )
1429
-
1430
1403
@staticmethod
1431
1404
def fromdict (d ):
1432
1405
if d ["format_version" ] != ZARR_SCHEMA_FORMAT_VERSION :
@@ -1645,17 +1618,14 @@ def generate_partitions(num_records, chunk_size, num_partitions, max_chunks=None
1645
1618
1646
1619
1647
1620
@dataclasses .dataclass
1648
- class VcfZarrWriterMetadata :
1621
+ class VcfZarrWriterMetadata ( core . JsonDataclass ) :
1649
1622
format_version : str
1650
1623
icf_path : str
1651
1624
schema : VcfZarrSchema
1652
1625
dimension_separator : str
1653
1626
partitions : list
1654
1627
provenance : dict
1655
1628
1656
- def asdict (self ):
1657
- return dataclasses .asdict (self )
1658
-
1659
1629
@staticmethod
1660
1630
def fromdict (d ):
1661
1631
if d ["format_version" ] != VZW_METADATA_FORMAT_VERSION :
@@ -1670,19 +1640,13 @@ def fromdict(d):
1670
1640
1671
1641
1672
1642
@dataclasses .dataclass
1673
- class VcfZarrWriteSummary :
1643
+ class VcfZarrWriteSummary ( core . JsonDataclass ) :
1674
1644
num_partitions : int
1675
1645
num_samples : int
1676
1646
num_variants : int
1677
1647
num_chunks : int
1678
1648
max_encoding_memory : str
1679
1649
1680
- def asdict (self ):
1681
- return dataclasses .asdict (self )
1682
-
1683
- def asjson (self ):
1684
- return json .dumps (self .asdict (), indent = 4 )
1685
-
1686
1650
1687
1651
class VcfZarrWriter :
1688
1652
def __init__ (self , path ):
0 commit comments