1+ import math
12from random import sample
2- from typing import BinaryIO , List , Tuple
3+ from typing import BinaryIO , List , Tuple , Optional
34
45import numpy as np
5- import math
6+
67
78from pose_format .pose_header import PoseHeader
89from pose_format .utils .reader import BufferReader , ConstStructs
@@ -60,9 +61,9 @@ def read(cls, header: PoseHeader, reader: BufferReader, **kwargs) -> "PoseBody":
6061
6162 if header .version == 0 :
6263 return cls .read_v0_0 (header , reader , ** kwargs )
63- elif round (header .version , 3 ) == 0.1 :
64+ if round (header .version , 3 ) == 0.1 :
6465 return cls .read_v0_1 (header , reader , ** kwargs )
65- elif round (header .version , 3 ) == 0.2 :
66+ if round (header .version , 3 ) == 0.2 :
6667 return cls .read_v0_2 (header , reader , ** kwargs )
6768
6869 raise NotImplementedError ("Unknown version - %f" % header .version )
@@ -93,8 +94,8 @@ def read_v0_1_frames(cls,
9394 frames : int ,
9495 shape : List [int ],
9596 reader : BufferReader ,
96- start_frame : int = None ,
97- end_frame : int = None ):
97+ start_frame : Optional [ int ] = None ,
98+ end_frame : Optional [ int ] = None ):
9899 """
99100 Reads frame data for version 0.1 from a buffer.
100101
@@ -149,8 +150,8 @@ def read_v0_1_frames(cls,
149150 def read_v0_1 (cls ,
150151 header : PoseHeader ,
151152 reader : BufferReader ,
152- start_frame : int = None ,
153- end_frame : int = None ,
153+ start_frame : Optional [ int ] = None ,
154+ end_frame : Optional [ int ] = None ,
154155 ** unused_kwargs ) -> "PoseBody" :
155156 """
156157 Reads pose data for version 0.1 from a buffer.
@@ -176,7 +177,7 @@ def read_v0_1(cls,
176177 fps , _frames = reader .unpack (ConstStructs .double_ushort )
177178
178179 _people = reader .unpack (ConstStructs .ushort )
179- _points = sum ([ len (c .points ) for c in header .components ] )
180+ _points = sum (len (c .points ) for c in header .components )
180181 _dims = header .num_dims ()
181182
182183 # _frames is defined as short, which sometimes is not enough! TODO change to int
@@ -191,10 +192,10 @@ def read_v0_1(cls,
191192 def read_v0_2 (cls ,
192193 header : PoseHeader ,
193194 reader : BufferReader ,
194- start_frame : int = None ,
195- end_frame : int = None ,
196- start_time : int = None ,
197- end_time : int = None ,
195+ start_frame : Optional [ int ] = None ,
196+ end_frame : Optional [ int ] = None ,
197+ start_time : Optional [ int ] = None ,
198+ end_time : Optional [ int ] = None ,
198199 ** unused_kwargs ) -> "PoseBody" :
199200 """
200201 Reads pose data for version 0.2 from a buffer.
@@ -256,6 +257,11 @@ def write(self, version: float, buffer: BinaryIO):
256257 Buffer to write the pose data to.
257258 """
258259 raise NotImplementedError ("'write' not implemented on '%s'" % self .__class__ )
260+
261+ def copy (self )-> "PoseBody" :
262+ return self .__class__ (fps = self .fps ,
263+ data = self .data ,
264+ confidence = self .confidence )
259265
260266 def __getitem__ (self , index ):
261267 """
@@ -306,7 +312,7 @@ def torch(self):
306312 Raises
307313 ------
308314 NotImplementedError
309- If toch is not implemented.
315+ If torch is not implemented.
310316 """
311317 raise NotImplementedError ("'torch' not implemented on '%s'" % self .__class__ )
312318
@@ -474,7 +480,7 @@ def get_points(self, indexes: List[int]) -> __qualname__:
474480 Returns
475481 -------
476482 PoseBody
477- PoseBody instance containing only choosen points.
483+ PoseBody instance containing only chosen points.
478484
479485 Raises
480486 ------
0 commit comments