17
17
from imageio import imwrite
18
18
from shutil import copyfile
19
19
from collections import namedtuple , deque
20
+ import functools
20
21
import torch .distributed
21
22
from typing import (
22
23
List ,
29
30
)
30
31
import pandas as pd
31
32
from easydict import EasyDict
32
- from decorator import decorator
33
33
34
34
try :
35
35
import visdom
@@ -184,8 +184,8 @@ def _spawn_defaultdict_ordereddict():
184
184
return collections .OrderedDict ()
185
185
186
186
187
- @decorator
188
187
def check_path_init (f ):
188
+ @functools .wraps (f )
189
189
def set_default_path (self , * args , ** kwargs ):
190
190
if not self ._initialized :
191
191
logger .info ('Working folder not initialized! Initialize working folder to default.' )
@@ -197,19 +197,19 @@ def set_default_path(self, *args, **kwargs):
197
197
return set_default_path
198
198
199
199
200
- @decorator
201
200
def standardize_name (f ):
201
+ @functools .wraps (f )
202
202
def func (self , name : str , * args , ** kwargs ):
203
203
if name is not None :
204
204
name = name .replace (' ' , '-' )
205
205
206
- return f (self , name , * args , ** kwargs )
206
+ f (self , name , * args , ** kwargs )
207
207
208
208
return func
209
209
210
210
211
- @decorator
212
211
def distributed_collect (f ):
212
+ @functools .wraps (f )
213
213
def func (self , name : str , value : T .Tensor , * args , ** kwargs ):
214
214
if self .distributed :
215
215
assert isinstance (value , T .Tensor ), 'value must be a Tensor in distributed mode'
@@ -220,8 +220,8 @@ def func(self, name: str, value: T.Tensor, *args, **kwargs):
220
220
return func
221
221
222
222
223
- @decorator
224
223
def distributed_flush (f ):
224
+ @functools .wraps (f )
225
225
def func (self , * args , ** kwargs ):
226
226
if self .distributed and self .rank != 0 :
227
227
return
0 commit comments