Skip to content

Commit 080c623

Browse files
author
Rens Dimmendaal
committed
simplify modules
1 parent 4bcb615 commit 080c623

11 files changed

Lines changed: 800 additions & 918 deletions

fasttransform/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
__version__ = "0.0.1"
22

3+
from .cast import *
34
from .transform import *
4-
from .pipeline import *

fasttransform/_modidx.py

Lines changed: 42 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -5,46 +5,12 @@
55
'doc_host': 'https://AnswerDotAI.github.io',
66
'git_url': 'https://github.com/AnswerDotAI/fasttransform',
77
'lib_path': 'fasttransform'},
8-
'syms': { 'fasttransform.dispatch': { 'fasttransform.dispatch.cast': ('dispatch.html#cast', 'fasttransform/dispatch.py'),
9-
'fasttransform.dispatch.default_set_meta': ( 'dispatch.html#default_set_meta',
10-
'fasttransform/dispatch.py'),
11-
'fasttransform.dispatch.explode_types': ( 'dispatch.html#explode_types',
12-
'fasttransform/dispatch.py'),
13-
'fasttransform.dispatch.get_name': ('dispatch.html#get_name', 'fasttransform/dispatch.py'),
14-
'fasttransform.dispatch.is_tuple': ('dispatch.html#is_tuple', 'fasttransform/dispatch.py'),
15-
'fasttransform.dispatch.merge_funcs': ('dispatch.html#merge_funcs', 'fasttransform/dispatch.py'),
16-
'fasttransform.dispatch.retain_meta': ('dispatch.html#retain_meta', 'fasttransform/dispatch.py'),
17-
'fasttransform.dispatch.retain_type': ('dispatch.html#retain_type', 'fasttransform/dispatch.py'),
18-
'fasttransform.dispatch.retain_types': ('dispatch.html#retain_types', 'fasttransform/dispatch.py')},
19-
'fasttransform.pipeline': { 'fasttransform.pipeline.Pipeline': ('pipeline.html#pipeline', 'fasttransform/pipeline.py'),
20-
'fasttransform.pipeline.Pipeline.__call__': ( 'pipeline.html#pipeline.__call__',
21-
'fasttransform/pipeline.py'),
22-
'fasttransform.pipeline.Pipeline.__dir__': ( 'pipeline.html#pipeline.__dir__',
23-
'fasttransform/pipeline.py'),
24-
'fasttransform.pipeline.Pipeline.__getattr__': ( 'pipeline.html#pipeline.__getattr__',
25-
'fasttransform/pipeline.py'),
26-
'fasttransform.pipeline.Pipeline.__getitem__': ( 'pipeline.html#pipeline.__getitem__',
27-
'fasttransform/pipeline.py'),
28-
'fasttransform.pipeline.Pipeline.__init__': ( 'pipeline.html#pipeline.__init__',
29-
'fasttransform/pipeline.py'),
30-
'fasttransform.pipeline.Pipeline.__repr__': ( 'pipeline.html#pipeline.__repr__',
31-
'fasttransform/pipeline.py'),
32-
'fasttransform.pipeline.Pipeline.__setstate__': ( 'pipeline.html#pipeline.__setstate__',
33-
'fasttransform/pipeline.py'),
34-
'fasttransform.pipeline.Pipeline._is_showable': ( 'pipeline.html#pipeline._is_showable',
35-
'fasttransform/pipeline.py'),
36-
'fasttransform.pipeline.Pipeline.add': ('pipeline.html#pipeline.add', 'fasttransform/pipeline.py'),
37-
'fasttransform.pipeline.Pipeline.decode': ( 'pipeline.html#pipeline.decode',
38-
'fasttransform/pipeline.py'),
39-
'fasttransform.pipeline.Pipeline.setup': ( 'pipeline.html#pipeline.setup',
40-
'fasttransform/pipeline.py'),
41-
'fasttransform.pipeline.Pipeline.show': ( 'pipeline.html#pipeline.show',
42-
'fasttransform/pipeline.py'),
43-
'fasttransform.pipeline.compose_tfms': ('pipeline.html#compose_tfms', 'fasttransform/pipeline.py'),
44-
'fasttransform.pipeline.gather_attr_names': ( 'pipeline.html#gather_attr_names',
45-
'fasttransform/pipeline.py'),
46-
'fasttransform.pipeline.gather_attrs': ('pipeline.html#gather_attrs', 'fasttransform/pipeline.py'),
47-
'fasttransform.pipeline.mk_transform': ('pipeline.html#mk_transform', 'fasttransform/pipeline.py')},
8+
'syms': { 'fasttransform.cast': { 'fasttransform.cast.cast': ('cast.html#cast', 'fasttransform/cast.py'),
9+
'fasttransform.cast.default_set_meta': ('cast.html#default_set_meta', 'fasttransform/cast.py'),
10+
'fasttransform.cast.explode_types': ('cast.html#explode_types', 'fasttransform/cast.py'),
11+
'fasttransform.cast.retain_meta': ('cast.html#retain_meta', 'fasttransform/cast.py'),
12+
'fasttransform.cast.retain_type': ('cast.html#retain_type', 'fasttransform/cast.py'),
13+
'fasttransform.cast.retain_types': ('cast.html#retain_types', 'fasttransform/cast.py')},
4814
'fasttransform.transform': { 'fasttransform.transform.DisplayedTransform': ( 'transform.html#displayedtransform',
4915
'fasttransform/transform.py'),
5016
'fasttransform.transform.DisplayedTransform.name': ( 'transform.html#displayedtransform.name',
@@ -69,6 +35,31 @@
6935
'fasttransform/transform.py'),
7036
'fasttransform.transform.ItemTransform.decode': ( 'transform.html#itemtransform.decode',
7137
'fasttransform/transform.py'),
38+
'fasttransform.transform.Pipeline': ('transform.html#pipeline', 'fasttransform/transform.py'),
39+
'fasttransform.transform.Pipeline.__call__': ( 'transform.html#pipeline.__call__',
40+
'fasttransform/transform.py'),
41+
'fasttransform.transform.Pipeline.__dir__': ( 'transform.html#pipeline.__dir__',
42+
'fasttransform/transform.py'),
43+
'fasttransform.transform.Pipeline.__getattr__': ( 'transform.html#pipeline.__getattr__',
44+
'fasttransform/transform.py'),
45+
'fasttransform.transform.Pipeline.__getitem__': ( 'transform.html#pipeline.__getitem__',
46+
'fasttransform/transform.py'),
47+
'fasttransform.transform.Pipeline.__init__': ( 'transform.html#pipeline.__init__',
48+
'fasttransform/transform.py'),
49+
'fasttransform.transform.Pipeline.__repr__': ( 'transform.html#pipeline.__repr__',
50+
'fasttransform/transform.py'),
51+
'fasttransform.transform.Pipeline.__setstate__': ( 'transform.html#pipeline.__setstate__',
52+
'fasttransform/transform.py'),
53+
'fasttransform.transform.Pipeline._is_showable': ( 'transform.html#pipeline._is_showable',
54+
'fasttransform/transform.py'),
55+
'fasttransform.transform.Pipeline.add': ( 'transform.html#pipeline.add',
56+
'fasttransform/transform.py'),
57+
'fasttransform.transform.Pipeline.decode': ( 'transform.html#pipeline.decode',
58+
'fasttransform/transform.py'),
59+
'fasttransform.transform.Pipeline.setup': ( 'transform.html#pipeline.setup',
60+
'fasttransform/transform.py'),
61+
'fasttransform.transform.Pipeline.show': ( 'transform.html#pipeline.show',
62+
'fasttransform/transform.py'),
7263
'fasttransform.transform.Transform': ('transform.html#transform', 'fasttransform/transform.py'),
7364
'fasttransform.transform.Transform.__call__': ( 'transform.html#transform.__call__',
7465
'fasttransform/transform.py'),
@@ -105,4 +96,14 @@
10596
'fasttransform.transform._is_tfm_method': ( 'transform.html#_is_tfm_method',
10697
'fasttransform/transform.py'),
10798
'fasttransform.transform._is_tuple': ('transform.html#_is_tuple', 'fasttransform/transform.py'),
108-
'fasttransform.transform.get_func': ('transform.html#get_func', 'fasttransform/transform.py')}}}
99+
'fasttransform.transform._merge_funcs': ( 'transform.html#_merge_funcs',
100+
'fasttransform/transform.py'),
101+
'fasttransform.transform.compose_tfms': ( 'transform.html#compose_tfms',
102+
'fasttransform/transform.py'),
103+
'fasttransform.transform.gather_attr_names': ( 'transform.html#gather_attr_names',
104+
'fasttransform/transform.py'),
105+
'fasttransform.transform.gather_attrs': ( 'transform.html#gather_attrs',
106+
'fasttransform/transform.py'),
107+
'fasttransform.transform.get_func': ('transform.html#get_func', 'fasttransform/transform.py'),
108+
'fasttransform.transform.mk_transform': ( 'transform.html#mk_transform',
109+
'fasttransform/transform.py')}}}
Lines changed: 11 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
"""Dispatch utility functions for compatibility with other libraries"""
1+
"""Type casting utility functions"""
22

3-
# AUTOGENERATED! DO NOT EDIT! File to edit: ../nbs/00_dispatch.ipynb.
3+
# AUTOGENERATED! DO NOT EDIT! File to edit: ../nbs/00_cast.ipynb.
44

55
# %% auto 0
6-
__all__ = ['get_name', 'is_tuple', 'retain_meta', 'default_set_meta', 'cast', 'retain_type', 'retain_types', 'explode_types',
7-
'merge_funcs']
6+
__all__ = ['retain_meta', 'default_set_meta', 'cast', 'retain_type', 'retain_types', 'explode_types']
87

9-
# %% ../nbs/00_dispatch.ipynb 1
8+
# %% ../nbs/00_cast.ipynb 1
109
from typing import Any
1110

1211
from plum import dispatch, Function
@@ -16,23 +15,14 @@
1615
from fastcore.foundation import *
1716
from fastcore.utils import *
1817

19-
# %% ../nbs/00_dispatch.ipynb 7
20-
def get_name(o):
21-
if hasattr(o,'__qualname__'): return o.__qualname__
22-
if hasattr(o,'__name__'): return o.__name__
23-
return o.__class__.__name__
24-
25-
# %% ../nbs/00_dispatch.ipynb 8
26-
def is_tuple(o): return isinstance(o, tuple) and not hasattr(o, '_fields')
27-
28-
# %% ../nbs/00_dispatch.ipynb 11
18+
# %% ../nbs/00_cast.ipynb 6
2919
def retain_meta(x, res, as_copy=False):
3020
"Call `res.set_meta(x)`, if it exists"
3121
if hasattr(res,'set_meta'): res.set_meta(x, as_copy=as_copy)
3222
return res
3323

3424

35-
# %% ../nbs/00_dispatch.ipynb 12
25+
# %% ../nbs/00_cast.ipynb 7
3626
def default_set_meta(self, x, as_copy=False):
3727
"Copy over `_meta` from `x` to `res`, if it's missing"
3828
if hasattr(x, '_meta') and not hasattr(self, '_meta'):
@@ -42,8 +32,7 @@ def default_set_meta(self, x, as_copy=False):
4232
return self
4333

4434

45-
# %% ../nbs/00_dispatch.ipynb 13
46-
@dispatch
35+
# %% ../nbs/00_cast.ipynb 8
4736
def cast(x, typ):
4837
"cast `x` to type `typ` (may also change `x` inplace)"
4938
res = typ._before_cast(x) if hasattr(typ, '_before_cast') else x
@@ -54,8 +43,9 @@ def cast(x, typ):
5443
except: res = typ(res)
5544
return retain_meta(x, res)
5645

57-
# %% ../nbs/00_dispatch.ipynb 20
46+
# %% ../nbs/00_cast.ipynb 15
5847
def retain_type(new, old, ret_type=Any,as_copy=False):
48+
"Cast `new` to `ret_type` if given, or `old`'s type if `new` is a superclass of `old`. No conversion is done if `ret_type=None`"
5949
if new is None: return new
6050
if ret_type is NoneType: return new
6151
if ret_type is Any:
@@ -64,7 +54,7 @@ def retain_type(new, old, ret_type=Any,as_copy=False):
6454
if ret_type is NoneType or isinstance(new,ret_type): return new
6555
return retain_meta(old, cast(new, ret_type), as_copy=as_copy)
6656

67-
# %% ../nbs/00_dispatch.ipynb 42
57+
# %% ../nbs/00_cast.ipynb 40
6858
def retain_types(new, old=None, typs=None):
6959
"Cast each item of `new` to type of matching item in `old` if it's a superclass"
7060
if not is_listy(new):
@@ -79,17 +69,8 @@ def retain_types(new, old=None, typs=None):
7969
return t(L(new, old, typs).map_zip(retain_types, cycled=True))
8070

8171

82-
# %% ../nbs/00_dispatch.ipynb 44
72+
# %% ../nbs/00_cast.ipynb 42
8373
def explode_types(o):
8474
"Return the type of `o`, potentially in nested dictionaries for thing that are listy"
8575
if not is_listy(o): return type(o)
8676
return {type(o): [explode_types(o_) for o_ in o]}
87-
88-
# %% ../nbs/00_dispatch.ipynb 47
89-
def merge_funcs(*fs):
90-
"Merge multiple plum Functions by combining their methods"
91-
fs = fs[::-1] # overwrite old implementations with new ones
92-
res = Function(fs[-1].methods[0].implementation)
93-
for f in fs:
94-
for m in f.methods: res.dispatch(m.implementation)
95-
return res

fasttransform/pipeline.py

Lines changed: 0 additions & 100 deletions
This file was deleted.

0 commit comments

Comments
 (0)