---
document: modulemd
version: 2
data:
  name: python39
  stream: 3.9
  summary: Python programming language, version 3.9
  description: |-
    This module gives users access to the internal Python 3.9 in RHEL8, as
    well as provides some additional Python packages the users might need.
    In addition to these you can install any python3-* package available
    in RHEL and use it with Python from this module.
  license:
    module:
    - MIT
  dependencies:
  - buildrequires:
      platform: [oc8]

      # Depending on our selves for bootstrapping
      # This is not needed in bootstrap phase 1 and can be disabled
      python39: [3.9_bootstrap]

      # sicpy needs package swig
      swig: [4.0]
      # mod_wsgi needs several packages from httpd
      httpd: [2.4]
    requires:
      platform: [oc8]
  references:
    community: https://www.python.org/
    documentation: https://docs.python.org/3.9/
  profiles:
    common:
      rpms:
      - python39
    build:
      rpms:
      - python39
      - python39-devel
      - python39-rpm-macros
  filter:
    rpms:
    - python39-Cython
    - python39-debug
    - python39-attrs
    - python39-iniconfig
    - python39-more-itertools
    - python39-packaging
    - python39-pluggy
    - python39-py
    - python39-pybind11
    - python39-pybind11-devel
    - python39-pyparsing
    - python39-pytest
    - python39-wcwidth
  api:
    rpms:
    - python39
    - python39-PyMySQL
    - python39-cffi
    - python39-chardet
    - python39-cryptography
    - python39-devel
    - python39-idle
    - python39-idna
    - python39-libs
    - python39-lxml
    - python39-mod_wsgi
    - python39-numpy
    - python39-numpy-f2py
    - python39-pip
    - python39-pip-wheel
    - python39-ply
    - python39-psutil
    - python39-psycopg2
    - python39-pycparser
    - python39-pysocks
    - python39-pyyaml
    - python39-requests
    - python39-rpm-macros
    - python39-scipy
    - python39-setuptools
    - python39-setuptools-wheel
    - python39-six
    - python39-test
    - python39-tkinter
    - python39-toml
    - python39-urllib3
    - python39-wheel
    - python39-wheel-wheel
  buildopts:
    rpms:
      # === Bootstrap phase 1 ===
      #
      # %python3_pkgversion 39
      # # python39
      # %_without_rpmwheels 1
      # %_without_optimizations 1
      # # python39, setuptools, wheel
      # %_with_bootstrap 1
      # # python39, setuptools, pip
      # %_without_tests 1
      # # pip
      # %_without_doc 1

      # === Bootstrap phase 2 ===
      #
      # %python3_pkgversion 39
      # # setuptools, pip, ...
      # %_without_tests 1

      # === Bootstrap phase 3 ===
      #
      # %python3_pkgversion 39
      # # scipy needs pybind11 to build and pybind11 needs scipy for tests
      # %_without_tests 1


      # Macros bootstrapping info:
      #   Only the macros that are below the `macros: |` declaration are
      #   being used in the module at a given time. If you want to switch
      #   to a different bootstrap phase, comment out the current
      #   bootstrap phase macros, move them above this section. And take
      #   the bootstrap phase you want to use, uncomment it, and move it
      #   here, below the `macros: |` line.
      # Explanation:
      #   Macros are expanded even when they are commented out using '#',
      #   therefore it's safer to just move them out of the macros
      #   section entirely to avoid possible issues.
      macros: |
        # === Bootstrap phase 4 ===
        #
        %python3_pkgversion 39

  components:
    rpms:
      # === Bootstrap phase 1 ===
      #
      # python39:
      #     rationale: The main Python interpreter
      #     ref: stream-3.9.0-rhel-8.4.0
      #     buildorder: 10
      # python3x-setuptools:
      #     rationale: Packaging tool
      #     ref: stream-50.1.0-rhel-8.4.0
      #     buildorder: 20
      # python-wheel:
      #     rationale: Packaging tool
      #     ref: stream-0.35.1-rhel-8.4.0
      #     buildorder: 30
      # python3x-pip:
      #     rationale: Packaging tool
      #     ref: stream-20.2.2-rhel-8.4.0
      #     buildorder: 40


      # === Bootstrap phase 2 ===
      #
      # python3x-setuptools:
      #     rationale: Packaging tool
      #     ref: stream-50.1.0-rhel-8.4.0
      #     # buildorder: 10
      # python3x-pyparsing:
      #     rationale: Python component
      #     ref: stream-2.4.7-rhel-8.4.0
      #     # buildorder: 20
      # python39:
      #     rationale: The main Python interpreter
      #     ref: stream-3.9.0-rhel-8.4.0
      #     # buildorder: 30
      # python-wheel:
      #     rationale: Packaging tool
      #     ref: stream-0.35.1-rhel-8.4.0
      #     # buildorder: 40
      # python3x-pip:
      #     rationale: Packaging tool
      #     ref: stream-20.2.2-rhel-8.4.0
      #     # buildorder: 40
      # python3x-six:
      #     rationale: Python component
      #     ref: stream-1.15.0-rhel-8.4.0
      #     # buildorder: 40
      # python-py:
      #     rationale: Python component
      #     ref: stream-1.9.0-rhel-8.4.0
      #     # buildorder: 40
      # python-chardet:
      #     rationale: Python component
      #     # stream branch shared with python38 module
      #     ref: stream-3.0.4-python38-rhel-8.4.0
      #     # buildorder: 40
      # python-attrs:
      #     rationale: Python component
      #     ref: stream-20.3.0-rhel-8.4.0
      #     # buildorder: 40
      # python-pluggy:
      #     rationale: Python component
      #     ref: stream-0.13.1-rhel-8.4.0
      #     # buildorder: 40
      # python-pysocks:
      #     rationale: Python component
      #     # stream branch shared with python38 module
      #     ref: stream-1.7.1-rhel-8.4.0
      #     # buildorder: 40
      # python-wcwidth:
      #     rationale: Python component
      #     ref: stream-0.2.5-rhel-8.4.0
      #     # buildorder: 40
      # python-packaging:
      #     rationale: Python component
      #     ref: stream-20.4-rhel-8.4.0
      #     # buildorder: 40
      # python-toml:
      #     rationale: Python component
      #     ref: stream-0.10.1-rhel-8.4.0
      #     # buildorder: 40
      # python-iniconfig:
      #     rationale: Python component
      #     ref: stream-1.1.1-rhel-8.4.0
      #     # buildorder: 40
      # python-more-itertools:
      #     rationale: Python component
      #     ref: stream-8.5.0-rhel-8.4.0
      #     buildorder: 50
      # pytest:
      #     rationale: Python component
      #     ref: stream-6.0.2-rhel-8.4.0
      #     buildorder: 60


      # === Bootstrap phase 3/4 ===
      # For bootstrap phase 3 uncomment all `buildorder:` lines below,
      # for bootstrap phase 4 comment them out.
      #
      python3x-setuptools:
        rationale: Packaging tool
        ref: 7664d79c7f60da301abb70d974a027fbc9e00ccb
      python3x-pyparsing:
        rationale: Python component
        ref: e75346928b0f673db8c1bafe6b2196fdf4a77d64
      python39:
        rationale: The main Python interpreter
        ref: a06315cdd184850fd066130f263b80d4ac3dc727
      python-wheel:
        rationale: Packaging tool
        ref: acb169522582709235be5120536cef2ee9908224
      python3x-pip:
        rationale: Packaging tool
        ref: c9c799719c737dd2077ceffdbd0e37e2ae73e8a3

      python3x-six:
        rationale: Python component
        ref: 71e8ba8cd29c087374da6c32350c31ab00cc28bb
      python-py:
        rationale: Python component
        ref: 10c49a87a262cdab7f680bc4bbd1b2a4b36f5065
      python-chardet:
        rationale: Python component
        # stream branch shared with python38 module
        ref: eea15c1b01d5183e1dd3002f7ebdb39ccb2db475
      python-attrs:
        rationale: Python component
        ref: 272b94302e78176a719848777591c5080b27b4fa
      python-pluggy:
        rationale: Python component
        ref: c0bcf476afa9712c6e5b46622c093041ae51a2dc
      python-pysocks:
        rationale: Python component
        # stream branch shared with python38 module
        ref: 279e319d0ba07193c839e3210cbb0b79afe0792b
      python-wcwidth:
        rationale: Python component
        ref: 0b21292ecd65ec46f158078532631ecaa88c4c7c
      python-packaging:
        rationale: Python component
        ref: 7a368010c8f01280dcc438c9ebe0abedc03dc142
      python-toml:
        rationale: Python component
        ref: cfe6ad08908cf15eeac8cbab63e74afe1053f3ad
      python-iniconfig:
        rationale: Python component
        ref: 94fa377f2905c1303173ec6e0654d62a35e5bced
      python-more-itertools:
        rationale: Python component
        ref: 527f3974c683e8b28c4a6dc3a6c6e672e198545c
      pytest:
        rationale: Python component
        ref: 68bee1fe7407a89cf572a5bce7ec0d3bcdffea0b

      python-idna:
        rationale: Python component
        ref: d285985fdb53716e8f3b6ee52a39a03273cfbf96
      python-urllib3:
        rationale: Python component
        ref: 381bca2605e392c6410dca3fe39e11e3d70d4c8f
      Cython:
        rationale: Python component
        ref: 6f9a41f30fbc529a57c0249fc37eb7ae9a6b331f
      python-ply:
        rationale: Python component
        # stream branch shared with python38 module
        ref: e740f8b5c85f412c4fa5eb094be2e358d1bbbfd5
      python-psutil:
        rationale: Python component
        ref: 5045c82dfe589d023de622d8e26b8525c6641a29
      python-psycopg2:
        rationale: Python component
        ref: 1bef4792716bd8d5c78f38c2f314da97f91f8cca
      mod_wsgi:
        rationale: Python component
        ref: bd97738cf8e422d6d7da3bc14637ff36189133a3
      python-requests:
        rationale: Python component
        ref: 9a4821298a06049876ea390f815aad7a434f71e7
        # buildorder: 10
      numpy:
        rationale: Python component
        ref: 08a63eb71869219f184e655ca3309ccd8af57238
        # buildorder: 10
      PyYAML:
        rationale: Python component
        ref: 8f6c1c7fb43cfd68abe0027d882bcd0b8677f26a
        # buildorder: 10
      python-pycparser:
        rationale: Python component
        ref: 1d56c7b5fad7ecd9a303d6099cb8bc0f2035b467
        # buildorder: 10
      python-lxml:
        rationale: Python component
        ref: 6cc46aa8ca1a53d077713664b2029bfcfb80a551
        # buildorder: 10
      python-cffi:
        rationale: Python component
        ref: 75731015189b116f917c4bbf32fed4d2d4a858b0
        # buildorder: 20
      pybind11:
        rationale: Python component
        ref: ff0a7b60b4d6d8665cf5ecd27398729473bbfd52
        # needs numpy
        # buildorder: 20
      scipy:
        rationale: Python component
        ref: 327095fd16b5599240f7d75b6ec77528f18c97a1
        # needs pybind11
        # buildorder: 30
      python-cryptography:
        rationale: Python component
        ref: c0d9ca0db6ac6f016bb3813b00c612bdbef1ba77
        # needs cffi
        # buildorder: 30
      python-PyMySQL:
        rationale: Python component
        ref: f6e5744fc22d5ec9eef25697d17309fa191352c0
        # needs cryptography
        # buildorder: 40
...