arrayfire-python
arrayfire-python copied to clipboard
[WIP] [Data API] Backend refactoring
NOTE: the assumption that this PR will be merged right after the #261
Major changes:
- Wrap
safe_call(backend.get()...)
under thelibrary
call which is now used as a private wrapper of the C library. That makes the public part of the library more intuitive for both end-users and library contributors. - Wrap
ctypes
underCType
which inherits thectypes._SimpleCData
type. - Project structure changes:
- C library wrapper moved to the corresponding folder
- Moved dtype aux functions to
dtypes/helpers
. Also, some methods were transferred there from the array_object file
- Added
operators
block which is duplicated the functionality of magic methods (like__add__
) from the main array object and is required by the specification - Changed testing structure to test parameterization and test auto-generation. These solutions decrease somehow an intuition of test cases but simplify the flow of adding new cases - it requires 1 or 2 rows instead of hundreds, now.
Minor changes:
- Removed some tags (TODO, FIXME, etc.) from the previous PR
- Removed an introduced in previous PR custom type
ShapeType
to avoid extra complexion in library typing - Other minor code style changes
- Fixed minor bugs
--- WIP ---
-
backend
config separated into pre-setup and backend configuration settings - add more
operators
- add more
tests
coverage - add mocks for different backend types for even more coverage of different test scenarios
- fix CI/CD in GitHub for CPU tests