# Note that this feedstock must be paired with bumping the version of
# `arrow-cpp-feedstock` and the SHA-256 hashes should match between the packages.
{% set version = "16.1.0" %}
{% set filename = "apache-arrow-" + version + ".tar.gz" %}
{% set sha256 = "c9e60c7e87e59383d21b20dc874b17153729ee153264af6d21654b7dff2c60d7" %}

package:
  name: pyarrow
  version: {{ version }}

source:
  url: https://archive.apache.org/dist/arrow/arrow-{{ version }}/{{ filename }}
  sha256: {{ sha256 }}

build:
  number: 0
  skip: true  # [py<38]
  rpaths:
    - lib/
    - {{ SP_DIR }}/pyarrow
  missing_dso_whitelist:
    # These can be found in {{ SP_DIR }}, see the tests below
    - "*/libarrow_python{{ SHLIB_EXT }}"         # [unix]
    - "*/libarrow_python_flight{{ SHLIB_EXT }}"  # [unix]
    - "*/arrow_python.dll"                       # [win]
    - "*/arrow_python_flight.dll"                # [win]
    - "*/arrow_python_parquet_encryption.dll"    # [win]

requirements:
  build:
    - cmake
    - ninja
    - make  # [unix]
    - {{ compiler('c') }}
    - {{ compiler('cxx') }}
  host:
    # directly pin boost-cpp as we also seem to directly include boost symbols
    # in the Python modules.
    - arrow-cpp {{ version }}
    - cython >=0.29.31
    - numpy {{ numpy }}
    - pip
    - python
    - setuptools
    - setuptools_scm
    - wheel
  run:
    - {{ pin_compatible('numpy') }}
    - python

test:
  imports:
    - pyarrow
    - pyarrow.compute
    - pyarrow.acero
    - pyarrow.csv
    - pyarrow.dataset
    - pyarrow.flight
    - pyarrow.json
    - pyarrow.orc
    - pyarrow.parquet
    - pyarrow.fs
    - pyarrow._s3fs
    - pyarrow._hdfs
  requires:
    - pip
  commands:
    - pip check
    - test ! -f ${SP_DIR}/pyarrow/tests/test_array.py       # [unix]
    - if exist %SP_DIR%/pyarrow/tests/test_array.py exit 1  # [win]
    - test -f ${SP_DIR}/pyarrow/libarrow_python_flight${SHLIB_EXT}  # [unix]
    - test -f ${SP_DIR}/pyarrow/libarrow_python${SHLIB_EXT}  # [unix]
    - if not exist %SP_DIR%\pyarrow\arrow_python.dll exit 1                   # [win]
    - if not exist %SP_DIR%\pyarrow\arrow_python_flight.dll exit 1            # [win]

about:
  home: https://github.com/apache/arrow
  license: Apache-2.0
  license_family: Apache
  license_file: LICENSE.txt
  summary: Python libraries for Apache Arrow
  description: |
    This library provides a Python API for functionality provided by the Arrow C++ libraries, 
    along with tools for Arrow integration and interoperability with pandas, NumPy, and other 
    software in the Python ecosystem.
  dev_url: https://github.com/apache/arrow/tree/main/python
  doc_url: https://github.com/apache/arrow/blob/main/docs/source/developers/python.rst

extra:
  recipe-maintainers:
    - wesm
    - xhochy
    - jreback
    - cpcloud
    - pcmoritz
    - robertnishihara
    - siddharthteotia
    - kou
    - kszucs
    - pitrou 
