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 thelibrarycall 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
ctypesunderCTypewhich inherits thectypes._SimpleCDatatype. - 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
operatorsblock 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
ShapeTypeto avoid extra complexion in library typing - Other minor code style changes
- Fixed minor bugs
--- WIP ---
-
backendconfig separated into pre-setup and backend configuration settings - add more
operators - add more
testscoverage - add mocks for different backend types for even more coverage of different test scenarios
- fix CI/CD in GitHub for CPU tests