File tree Expand file tree Collapse file tree 2 files changed +14
-5
lines changed
Expand file tree Collapse file tree 2 files changed +14
-5
lines changed Original file line number Diff line number Diff line change @@ -41,7 +41,7 @@ def fromdict(d):
4141 return VcfFieldSummary (** d )
4242
4343
44- @dataclasses .dataclass
44+ @dataclasses .dataclass ( order = True )
4545class VcfField :
4646 category : str
4747 name : str
@@ -116,24 +116,24 @@ class VcfPartition:
116116)
117117
118118
119- @dataclasses .dataclass
119+ @dataclasses .dataclass ( order = True )
120120class Contig :
121121 id : str
122122 length : int = None
123123
124124
125- @dataclasses .dataclass
125+ @dataclasses .dataclass ( order = True )
126126class Sample :
127127 id : str
128128
129129
130- @dataclasses .dataclass
130+ @dataclasses .dataclass ( order = True )
131131class Filter :
132132 id : str
133133 description : str = ""
134134
135135
136- @dataclasses .dataclass
136+ @dataclasses .dataclass ( order = True )
137137class IcfMetadata (core .JsonDataclass ):
138138 samples : list
139139 contigs : list
@@ -192,6 +192,14 @@ def fromdict(d):
192192 d ["contigs" ] = [Contig (** cd ) for cd in d ["contigs" ]]
193193 return IcfMetadata (** d )
194194
195+ def __eq__ (self , other ):
196+ if not isinstance (other , IcfMetadata ):
197+ return NotImplemented
198+ return (sorted (self .samples ) == sorted (other .samples ) and
199+ sorted (self .contigs ) == sorted (other .contigs ) and
200+ sorted (self .filters ) == sorted (self .filters ) and
201+ sorted (self .fields ) == sorted (self .fields ))
202+
195203
196204def fixed_vcf_field_definitions ():
197205 def make_field_def (name , vcf_type , vcf_number ):
Original file line number Diff line number Diff line change @@ -23,6 +23,7 @@ dependencies = [
2323 # colouredlogs pulls in humanfriendly",
2424 " cyvcf2" ,
2525 " bed_reader" ,
26+ " packaging" ,
2627]
2728requires-python = " >=3.9"
2829classifiers = [
You can’t perform that action at this time.
0 commit comments