arrayfire-python icon indicating copy to clipboard operation
arrayfire-python copied to clipboard

[WIP] [Data API] Backend refactoring

Open roaffix opened this issue 1 year ago • 0 comments

NOTE: the assumption that this PR will be merged right after the #261

Major changes:

  • Wrap safe_call(backend.get()...) under the library 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 under CType which inherits the ctypes._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

roaffix avatar Apr 03 '23 21:04 roaffix