# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json
schema_version: 1

context:
  version: "9.4.0"

recipe:
  name: ipython
  version: ${{ version }}

source:
  url: https://pypi.org/packages/source/i/ipython/ipython-${{ version }}.tar.gz
  sha256: c033c6d4e7914c3d9768aabe76bbe87ba1dc66a92a05db6bfa1125d81f2ee270

build:
  number: 0
  noarch: python

outputs:
  - package:
      name: ipython
    build:
      noarch: python
      script:
        - ${{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation --disable-pip-version-check
      python:
        entry_points:
          - ipython = IPython:start_ipython
          - ipython3 = IPython:start_ipython
    requirements:
      host:
        - pip
        - python ${{ python_min }}.*
        - setuptools >=61.2
      run:
        - if: unix
          then:
            - __unix
            - pexpect >4.3
          else:
            - __win
            - colorama
        - decorator
        - exceptiongroup
        - ipython_pygments_lexers
        - jedi >=0.16
        - matplotlib-inline
        - pickleshare
        - prompt-toolkit >=3.0.41,<3.1.0
        - pygments >=2.4.0
        - python >=${{ python_min }}
        - stack_data
        - traitlets >=5.13.0
        - typing_extensions >=4.6
    tests:
      - python:
          imports: IPython
          pip_check: true
          python_version:
            - ${{ python_min }}.*
            - 3.13.*
      - requirements:
          run:
            - python ${{ python_min }}.*
            - if: win
              then:
                - m2-grep
        script:
          - ipython --version
          - ipython3 --version
          - ipython --help
          - pygmentize -L | grep ipython
      # TODO: unvendor tests as separate package
      - files:
          recipe:
            - run_test.py
          source:
            - tests/
            - pyproject.toml
        requirements:
          run:
            - python ${{ python_min }}.*
            # mypy
            - mypy
            - types-decorator
            # coverage
            - coverage
            # actual test deps
            - black
            - curio
            - matplotlib-base !=3.2.0
            - nbformat
            - numpy >=1.23
            - pandas
            - pickleshare
            - pygments
            - pytest
            - pytest-asyncio <0.22
            - testpath
            - trio
        script:
          - mypy -p IPython
          - python run_test.py

about:
  license: BSD-3-Clause
  license_file: LICENSE
  summary: 'IPython: Productive Interactive Computing'
  homepage: https://ipython.org
  documentation: https://ipython.readthedocs.io
  repository: https://github.com/ipython/ipython
  description: |
    IPython provides a rich architecture for interactive computing with
    a powerful interactive shell, a kernel for Jupyter, high performance
    tools for parallel computing, and more.

extra:
  feedstock-name: ipython
  recipe-maintainers:
    - Carreau
    - jakirkham
    - fperez
    - ellisonbg
    - minrk
    - ocefpaf
    - pelson
    - takluyver
    - bollwyvl
    - blink1073
    - krassowski
    - trallard
