1
+ import math
1
2
from random import sample
2
- from typing import BinaryIO , List , Tuple
3
+ from typing import BinaryIO , List , Tuple , Optional
3
4
4
5
import numpy as np
5
- import math
6
+
6
7
7
8
from pose_format .pose_header import PoseHeader
8
9
from pose_format .utils .reader import BufferReader , ConstStructs
@@ -60,9 +61,9 @@ def read(cls, header: PoseHeader, reader: BufferReader, **kwargs) -> "PoseBody":
60
61
61
62
if header .version == 0 :
62
63
return cls .read_v0_0 (header , reader , ** kwargs )
63
- elif round (header .version , 3 ) == 0.1 :
64
+ if round (header .version , 3 ) == 0.1 :
64
65
return cls .read_v0_1 (header , reader , ** kwargs )
65
- elif round (header .version , 3 ) == 0.2 :
66
+ if round (header .version , 3 ) == 0.2 :
66
67
return cls .read_v0_2 (header , reader , ** kwargs )
67
68
68
69
raise NotImplementedError ("Unknown version - %f" % header .version )
@@ -93,8 +94,8 @@ def read_v0_1_frames(cls,
93
94
frames : int ,
94
95
shape : List [int ],
95
96
reader : BufferReader ,
96
- start_frame : int = None ,
97
- end_frame : int = None ):
97
+ start_frame : Optional [ int ] = None ,
98
+ end_frame : Optional [ int ] = None ):
98
99
"""
99
100
Reads frame data for version 0.1 from a buffer.
100
101
@@ -149,8 +150,8 @@ def read_v0_1_frames(cls,
149
150
def read_v0_1 (cls ,
150
151
header : PoseHeader ,
151
152
reader : BufferReader ,
152
- start_frame : int = None ,
153
- end_frame : int = None ,
153
+ start_frame : Optional [ int ] = None ,
154
+ end_frame : Optional [ int ] = None ,
154
155
** unused_kwargs ) -> "PoseBody" :
155
156
"""
156
157
Reads pose data for version 0.1 from a buffer.
@@ -176,7 +177,7 @@ def read_v0_1(cls,
176
177
fps , _frames = reader .unpack (ConstStructs .double_ushort )
177
178
178
179
_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 )
180
181
_dims = header .num_dims ()
181
182
182
183
# _frames is defined as short, which sometimes is not enough! TODO change to int
@@ -191,10 +192,10 @@ def read_v0_1(cls,
191
192
def read_v0_2 (cls ,
192
193
header : PoseHeader ,
193
194
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 ,
198
199
** unused_kwargs ) -> "PoseBody" :
199
200
"""
200
201
Reads pose data for version 0.2 from a buffer.
@@ -256,6 +257,11 @@ def write(self, version: float, buffer: BinaryIO):
256
257
Buffer to write the pose data to.
257
258
"""
258
259
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 )
259
265
260
266
def __getitem__ (self , index ):
261
267
"""
@@ -306,7 +312,7 @@ def torch(self):
306
312
Raises
307
313
------
308
314
NotImplementedError
309
- If toch is not implemented.
315
+ If torch is not implemented.
310
316
"""
311
317
raise NotImplementedError ("'torch' not implemented on '%s'" % self .__class__ )
312
318
@@ -474,7 +480,7 @@ def get_points(self, indexes: List[int]) -> __qualname__:
474
480
Returns
475
481
-------
476
482
PoseBody
477
- PoseBody instance containing only choosen points.
483
+ PoseBody instance containing only chosen points.
478
484
479
485
Raises
480
486
------
0 commit comments