---
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: 29b8a053f882955af4c1fc8e8416e6ed8746a46f
      python3x-pyparsing:
        rationale: Python component
        ref: 936085b1c7e7dcc2066c28c229911d54029a80de
      python39:
        rationale: The main Python interpreter
        ref: 72801968591eae93f6fdde3e3910365246ad8e28
      python-wheel:
        rationale: Packaging tool
        ref: 43b88f793bb19078fb28bba2a2d740945ea23fe8
      python3x-pip:
        rationale: Packaging tool
        ref: a8af347bfb2b61ea9df9ee625f376ce402cd29a4

      python3x-six:
        rationale: Python component
        ref: 7bf7c244c117ae2610417dc994754cac1394f6fb
      python-py:
        rationale: Python component
        ref: 1137c215fad289b1ffb62b4f0772a4d5dd3a434d
      python-chardet:
        rationale: Python component
        # stream branch shared with python38 module
        ref: 283550a86567a7f459053368d3758614642e9aba
      python-attrs:
        rationale: Python component
        ref: 195eafa10a7f384edcd72a4d334989a080998900
      python-pluggy:
        rationale: Python component
        ref: 9bac5b1a7589e58f3390fde501caa8b658b45d77
      python-pysocks:
        rationale: Python component
        # stream branch shared with python38 module
        ref: f37933ba312249111b5469d56a48e37b92600578
      python-wcwidth:
        rationale: Python component
        ref: 1f4e7362d3cb0ec6bcb109a8f2e8c808137ee30c
      python-packaging:
        rationale: Python component
        ref: e05ef1cf35cf18e48ba59ad40d5380589fa50c8a
      python-toml:
        rationale: Python component
        ref: 594084f46a8670e7f59f2c6b8f810d38ec4afa71
      python-iniconfig:
        rationale: Python component
        ref: 7578b7770d502e8e425dd8a2df632a70a7f1254e
      python-more-itertools:
        rationale: Python component
        ref: a000cd173c96e3b3a9a0458865a5f475e44dc32c
      pytest:
        rationale: Python component
        ref: 7d428318653c6fe275fe0d2fbb852a959b6cb4ab

      python-idna:
        rationale: Python component
        ref: 27b727d3ac952fd8fb3351dd520d3067df3e7973
      python-urllib3:
        rationale: Python component
        ref: 58f98ce5181dbe1099765a4ff57490b91a9f243e
      Cython:
        rationale: Python component
        ref: 0e5f23b0f3b6c99caca7aa975ffd60a7d7458565
      python-ply:
        rationale: Python component
        # stream branch shared with python38 module
        ref: e7954aa02c416b788cab1f2f083969602e6829b8
      python-psutil:
        rationale: Python component
        ref: d04bdc5638dc60b8a89bf80cd2a4fe4a03583938
      python-psycopg2:
        rationale: Python component
        ref: 9f39196436a54546daf93696030b5ee5ae48c430
      mod_wsgi:
        rationale: Python component
        ref: c26f70de4f97b9bef27e1ddf52e8c7d7ab0a5149
      python-requests:
        rationale: Python component
        ref: 753de188015d2ec2cd40340420c992e23e341205
        # buildorder: 10
      numpy:
        rationale: Python component
        ref: 230fbe3660b595aab15d08ee39fc4a142b2dac40
        # buildorder: 10
      PyYAML:
        rationale: Python component
        ref: 18e4a692cbb59ebe96d40d8d9b8f4dfa2e011e32
        # buildorder: 10
      python-pycparser:
        rationale: Python component
        ref: 50a79678508b46c151d6dba869e6b528575368e5
        # buildorder: 10
      python-lxml:
        rationale: Python component
        ref: aeb2af8504a70fcbd90de49a6f5882d385d8d6cd
        # buildorder: 10
      python-cffi:
        rationale: Python component
        ref: f55a902ed163e8e06831d2b194ca27d664e7d927
        # buildorder: 20
      pybind11:
        rationale: Python component
        ref: c5b6a98ab9135231728aaa0ec4daf0d9e8867db7
        # needs numpy
        # buildorder: 20
      scipy:
        rationale: Python component
        ref: dbe7b2857426cef171ea747d1f80cf8feadf2bdb
        # needs pybind11
        # buildorder: 30
      python-cryptography:
        rationale: Python component
        ref: 59e1e731931b3949b2021467335bdc7df384e222
        # needs cffi
        # buildorder: 30
      python-PyMySQL:
        rationale: Python component
        ref: af663b0756df3d27994100ad57e82aa6faf88cef
        # needs cryptography
        # buildorder: 40
...