We need extensive support and documentation on how to wrap and use the primitive types properly in a remote context in 0.3.0. I'll describe down below the process of doing this. To be sure that our types are working properly, we will use the interpreter tests on our syft types.
[x] syft.lib.python.int.Int
int primitive and add an id to them.int API available - make all methods that are available for int available for Int as wellint and run them for Int[x] syft.lib.python.float.Float
float primitive and add an uid to the object.float API available - make all methods that are available for float available for Float as wellfloat and run them for Float[x] syft.lib.python.none.None
[x] syft.lib.python.string.String
UserStr class and add an uid to the object.str API available - make all methods that are available for str available for String as wellstr and run them for String[x] syft.lib.python.list.List
UserList class and add an uid to the object.list API available - make all methods that are available for list available for List as welllist and run them for List[x] syft.lib.pyton.dict.Dict
UserDict class and add an uid to the object.dict API available - make all methods that are available for dict available for Dict as welldict and run them for Dict[x] Pointers:
[ ] Test our types against torch and numpy as well. Except of None and bool there should be no difference.
[x] Profit.
Picking up String
will be working on dict @tudorcebere :)
We merged one of the String PRs.
I think we still need to work on/test if they work:
len returns an Int from Syft, rather than an int from Python) -- We need to do this when we add full support for all the other typesAny help still needed on this @gmuraru @tudorcebere @madhavajay ?
Is support to String and StringPointer done @gmuraru ?
Most helpful comment
will be working on dict @tudorcebere :)