@@ -52,7 +52,7 @@ def __setitem__(self, k, v):
5252 if k not in self : super ().__setitem__ (k , Function (v ))
5353 self [k ].dispatch (v )
5454
55- # %% ../nbs/01_transform.ipynb 14
55+ # %% ../nbs/01_transform.ipynb 13
5656class _TfmMeta (type ):
5757 @classmethod
5858 def __prepare__ (cls , name , bases ): return _TfmDict ()
@@ -82,7 +82,7 @@ def __new__(cls, name, bases, namespace):
8282 new_cls .__signature__ = inspect .signature (new_cls .__init__ )
8383 return new_cls
8484
85- # %% ../nbs/01_transform.ipynb 15
85+ # %% ../nbs/01_transform.ipynb 14
8686class Transform (metaclass = _TfmMeta ):
8787 "Delegates (`__call__`,`decode`,`setup`) to (<code>encodes</code>,<code>decodes</code>,<code>setups</code>) if `split_idx` matches"
8888 split_idx ,init_enc ,order ,train_setup = None ,None ,0 ,None
@@ -137,21 +137,21 @@ def _do_call(self, nm, *args, **kwargs):
137137
138138add_docs (Transform , decode = "Delegate to decodes to undo transform" , setup = "Delegate to setups to set up transform" )
139139
140- # %% ../nbs/01_transform.ipynb 157
140+ # %% ../nbs/01_transform.ipynb 156
141141class InplaceTransform (Transform ):
142142 "A `Transform` that modifies in-place and just returns whatever it's passed"
143143 def _call (self , fn , * args , split_idx = None , ** kwargs ):
144144 super ()._call (fn ,* args , split_idx = split_idx , ** kwargs )
145145 return args [0 ]
146146
147- # %% ../nbs/01_transform.ipynb 161
147+ # %% ../nbs/01_transform.ipynb 160
148148class DisplayedTransform (Transform ):
149149 "A transform with a `__repr__` that shows its attrs"
150150
151151 @property
152152 def name (self ): return f"{ super ().name } -- { getattr (self ,'__stored_args__' ,{})} \n "
153153
154- # %% ../nbs/01_transform.ipynb 167
154+ # %% ../nbs/01_transform.ipynb 166
155155class ItemTransform (Transform ):
156156 "A transform that always take tuples as items"
157157 _retain = True
@@ -165,21 +165,21 @@ def _call1(self, x, name, **kwargs):
165165 return retain_type (y , x , Any )
166166
167167
168- # %% ../nbs/01_transform.ipynb 176
168+ # %% ../nbs/01_transform.ipynb 175
169169def get_func (t , name , * args , ** kwargs ):
170170 "Get the `t.name` (potentially partial-ized with `args` and `kwargs`) or `noop` if not defined"
171171 f = nested_callable (t , name )
172172 return f if not (args or kwargs ) else partial (f , * args , ** kwargs )
173173
174- # %% ../nbs/01_transform.ipynb 180
174+ # %% ../nbs/01_transform.ipynb 179
175175class Func ():
176176 "Basic wrapper around a `name` with `args` and `kwargs` to call on a given type"
177177 def __init__ (self , name , * args , ** kwargs ): self .name ,self .args ,self .kwargs = name ,args ,kwargs
178178 def __repr__ (self ): return f'sig: { self .name } ({ self .args } , { self .kwargs } )'
179179 def _get (self , t ): return get_func (t , self .name , * self .args , ** self .kwargs )
180180 def __call__ (self ,t ): return mapped (self ._get , t )
181181
182- # %% ../nbs/01_transform.ipynb 183
182+ # %% ../nbs/01_transform.ipynb 182
183183class _Sig ():
184184 def __getattr__ (self ,k ):
185185 def _inner (* args , ** kwargs ): return Func (k , * args , ** kwargs )
@@ -188,7 +188,7 @@ def _inner(*args, **kwargs): return Func(k, *args, **kwargs)
188188Sig = _Sig ()
189189
190190
191- # %% ../nbs/01_transform.ipynb 189
191+ # %% ../nbs/01_transform.ipynb 188
192192def compose_tfms (x , tfms , is_enc = True , reverse = False , ** kwargs ):
193193 "Apply all `func_nm` attribute of `tfms` on `x`, maybe in `reverse` order"
194194 if reverse : tfms = reversed (tfms )
@@ -198,13 +198,13 @@ def compose_tfms(x, tfms, is_enc=True, reverse=False, **kwargs):
198198 return x
199199
200200
201- # %% ../nbs/01_transform.ipynb 194
201+ # %% ../nbs/01_transform.ipynb 193
202202def mk_transform (f ):
203203 "Convert function `f` to `Transform` if it isn't already one"
204204 f = instantiate (f )
205205 return f if isinstance (f ,(Transform ,Pipeline )) else Transform (f )
206206
207- # %% ../nbs/01_transform.ipynb 195
207+ # %% ../nbs/01_transform.ipynb 194
208208def gather_attrs (o , k , nm ):
209209 "Used in __getattr__ to collect all attrs `k` from `self.{nm}`"
210210 if k .startswith ('_' ) or k == nm : raise AttributeError (k )
@@ -213,12 +213,12 @@ def gather_attrs(o, k, nm):
213213 if not res : raise AttributeError (k )
214214 return res [0 ] if len (res )== 1 else L (res )
215215
216- # %% ../nbs/01_transform.ipynb 196
216+ # %% ../nbs/01_transform.ipynb 195
217217def gather_attr_names (o , nm ):
218218 "Used in __dir__ to collect all attrs `k` from `self.{nm}`"
219219 return L (getattr (o ,nm )).map (dir ).concat ().unique ()
220220
221- # %% ../nbs/01_transform.ipynb 197
221+ # %% ../nbs/01_transform.ipynb 196
222222class Pipeline :
223223 "A pipeline of composed (for encode/decode) transforms, setup with types"
224224 def __init__ (self , funcs = None , split_idx = None ):
0 commit comments