---
document: modulemd
version: 2
data:
  name: python38
  stream: 3.8
  summary: Python programming language, version 3.8
  description: |-
    This module gives users access to the internal Python 3.8 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
      python38: [3.8_bootstrap]

      # sicpy needs package swig
      swig: [3.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.8/
  profiles:
    common:
      rpms:
      - python38
    build:
      rpms:
      - python38
      - python38-devel
      - python38-rpm-macros
  filter:
    rpms:
    - python38-pyparsing
    - python38-atomicwrites
    - python38-attrs
    - python38-packaging
    - python38-py
    - python38-pytest
    - python38-more-itertools
    - python38-pluggy
    - python38-wcwidth
  api:
    rpms:
    - python38
    - python38-Cython
    - python38-PyMySQL
    - python38-asn1crypto
    - python38-babel
    - python38-cffi
    - python38-chardet
    - python38-cryptography
    - python38-devel
    - python38-idle
    - python38-idna
    - python38-jinja2
    - python38-libs
    - python38-lxml
    - python38-markupsafe
    - python38-mod_wsgi
    - python38-numpy
    - python38-numpy-f2py
    - python38-pip
    - python38-pip-wheel
    - python38-ply
    - python38-psutil
    - python38-psycopg2
    - python38-pycparser
    - python38-pysocks
    - python38-pytz
    - python38-pyyaml
    - python38-requests
    - python38-rpm-macros
    - python38-scipy
    - python38-setuptools
    - python38-setuptools-wheel
    - python38-six
    - python38-test
    - python38-tkinter
    - python38-urllib3
    - python38-wheel
  buildopts:
    rpms:
      # === Bootstrap phase 1 ===
      #
      # %python3_pkgversion 38
      # %_without_python2 1
      # # python38, setuptools, wheel
      # %_with_bootstrap 1
      # # python38
      # %_without_rpmwheels 1
      # # python38, setuptools, pip
      # %_without_tests 1
      # # pip
      # %_without_doc 1

      # === Bootstrap phase 2 ===
      #
      # %python3_pkgversion 38
      # %_without_python2 1
      # # python38, setuptools, six, py, chardet, attrs, pluggy, pysocks,
      # # atomicwrites, wcwidth, packaging
      # %_without_tests 1
      # # py, pyparsing, atomicwrites, packaging, pytest
      # %_without_docs 1
      # # pytest
      # %_without_timeout 1
      # %_without_optional_tests 1

      #  # === Bootstrap phase 3/4 ===
      #  #
      #  %python3_pkgversion 38
      #  %_without_python2 1
      #  # py, pyparsing, atomicwrites, packaging, pytest
      #  %_without_docs 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 3/4 ===
        #
        %python3_pkgversion 38
        %_without_python2 1
        # py, pyparsing, atomicwrites, packaging, pytest
        %_without_docs 1

  components:
    rpms:
      # === Bootstrap phase 1 ===
      #
      # python38:
      #   rationale: The main Python interpreter
      #   ref: 5c278631961a274ba4718d2ffd3860a37bf2334b
      #   buildorder: 10
      # python3x-setuptools:
      #   rationale: Packaging tool
      #   ref: 293afda38c8ba74274544d667a30281a0d0e45d1
      #   buildorder: 20
      # python-wheel:
      #   rationale: Packaging tool
      #   ref: 0f5cadb26f2580b47642a698aaf56f77e355eceb
      #   buildorder: 30
      # python3x-pip:
      #   rationale: Packaging tool
      #   ref: 6e139932aaf3c090680c0620b58c41997a523859
      #   buildorder: 40

      # === Bootstrap phase 2 ===
      #
      # python3x-setuptools:
      #   rationale: Packaging tool
      #   ref: 293afda38c8ba74274544d667a30281a0d0e45d1
      #   buildorder: 10
      # python38:
      #   rationale: The main Python interpreter
      #   ref: 5c278631961a274ba4718d2ffd3860a37bf2334b
      #   buildorder: 20
      # python-wheel:
      #   rationale: Packaging tool
      #   ref: 0f5cadb26f2580b47642a698aaf56f77e355eceb
      #   buildorder: 30
      # python3x-pip:
      #   rationale: Packaging tool
      #   ref: 6e139932aaf3c090680c0620b58c41997a523859
      #   buildorder: 30

      # python3x-six:
      #   rationale: Python component
      #   ref: 3d8044d2f7f5d171890e62fae643847fd1dd4a61
      #   buildorder: 30
      # python-py:
      #   rationale: Python component
      #   ref: 390118b811dcf841e94f47c0dcf05dbeef1e8d45
      #   buildorder: 30
      # python-chardet:
      #   rationale: Python component
      #   ref: f5491b76458f3e3e5cd90d653419719b6ace4174
      #   buildorder: 30
      # python-attrs:
      #   rationale: Python component
      #   ref: 096f976d1e87fc3efab428296253a7857ed00759
      #   buildorder: 30
      # python-pluggy:
      #   rationale: Python component
      #   ref: 02049c044aea6356a077dab7f4197579f3d2662a
      #   buildorder: 30
      # python-markupsafe:
      #   rationale: Python component
      #   ref: 7e6afd0754981acc8f42684c66baa278582a4370
      #   buildorder: 30
      # python-pysocks:
      #   rationale: Python component
      #   ref: 511749f1e0fecc255c27788c172ca43b406931e3
      #   buildorder: 30
      # python3x-pyparsing:
      #   rationale: Python component
      #   ref: 226577ec3b467d10cf3c8d111fb3ed81c7899e5c
      #   buildorder: 30
      # python-atomicwrites:
      #   rationale: Python component
      #   ref: 20fe5608a2bb31c0b08d3121e91bbe8a5336dfbe
      #   buildorder: 30
      # python-wcwidth:
      #   rationale: Python component
      #   ref: 4662f6551251d988f583da3892d904987b6e4eea
      #   buildorder: 30
      # python-more-itertools:
      #   rationale: Python component
      #   ref: a62aead25be524cb38e7d350cf162ae632bfb5fb
      #   buildorder: 40
      # python-packaging:
      #   rationale: Python component
      #   ref: d3454dbdcb4f4206ad8b48f3c370b241bc620d2c
      #   buildorder: 40
      # pytest:
      #   rationale: Python component
      #   ref: 98dc6a39ccf573b51752a784b38df4882eeb8369
      #   buildorder: 50


      # === Bootstrap phase 3/4 ===
      # For bootstrap phase 3 uncomment all `buildorder:` lines below,
      # for bootstrap phase 4 comment them out.
      #
      python38:
        rationale: The main Python interpreter
        ref: d69f4d2405a2cb7de64a98bf60f0c96a95d1411a
      python3x-setuptools:
        rationale: Packaging tool
        ref: e06cefa6405849b371ebed86d7ad04131cf53cd3
      python-wheel:
        rationale: Packaging tool
        ref: 253ebf603c2117c4a570176a72e8b4682afb7592
      python3x-pip:
        rationale: Packaging tool
        ref: 6a1405d33dc061ea5b685c86aa727d81ff85a7db

      python3x-six:
        rationale: Python component
        ref: 5235db020b38c94aff67199e07612d0924c764de
      python-py:
        rationale: Python component
        ref: 3b221f2ad263228cfe8ff3cc79573fcbe93567ad
      python-chardet:
        rationale: Python component
        ref: 88b7f968944c9c600b370a8493615bec737c27b2
      python-attrs:
        rationale: Python component
        ref: b955323e0b830b55b3a71571313720dc4de581ad
      python-pluggy:
        rationale: Python component
        ref: b2cc48a2bedd41915bc5d0eb913e8eca66ac2aad
      python-markupsafe:
        rationale: Python component
        ref: 5a1ba5d6c2d337e80129e7e241e430add4ea5469
      python-pysocks:
        rationale: Python component
        ref: 3c5eaaab85ce1b478991f0d05b69925ec2150c05
      python3x-pyparsing:
        rationale: Python component
        ref: 3f1e7b43a1b6a6defb61c92fd56e3cfa219704fc
      python-atomicwrites:
        rationale: Python component
        ref: a3be9f30226e0593a16565fdecab6fd8f56359a3
      python-wcwidth:
        rationale: Python component
        ref: 136ff6b2458cd46cd806fb7f6b6115235231e132
      python-more-itertools:
        rationale: Python component
        ref: e3533f8facd8e2b04a7ff3cdc21191e8d45afd35
      python-packaging:
        rationale: Python component
        ref: 02330a40ce8fcf800d58fc75b3bac19dfdb5b7d2
      pytest:
        rationale: Python component
        ref: 2671f21cd641d79b92fd1fdf7bc4b5710b1d6434
      pytz:
        rationale: Python component
        ref: 959edf6279f997b426c751c9dc07f720377f6dad
      babel:
        rationale: Python component
        ref: b06874858ee346176224b53259021e72e63c56a2
      python-idna:
        rationale: Python component
        ref: d564d05bed1eb9bb1cd24c9630f6fbd39a4d4ada
      python-urllib3:
        rationale: Python component
        ref: 73d3515120b6ca21772b90be9d9b1960500cf5be
      Cython:
        rationale: Python component
        ref: 633f41509330d00b0159c76d3b096a92add73000
      python-asn1crypto:
        rationale: Python component
        ref: 63a26e96a6bab8c48679414decba8ec0ed2ea92c
      python-ply:
        rationale: Python component
        ref: 0e96b507eb8f69bc3c6f7450f84fa0b158b39466
      python-psutil:
        rationale: Python component
        ref: 0907622d1d1321f6cd342985d3a5e52835fd52be
      python-psycopg2:
        rationale: Python component
        ref: a5d1a1552ee5efb8259f5415a7ba423f690980a6
      mod_wsgi:
        rationale: Python component
        ref: 83bbc6db4be8e36231b9f1796b718d7ab167b496

      python-requests:
        rationale: Python component
        ref: c6d985ee02f324e0db83810d6ee021fdc2ad5673
        # buildorder: 10
      python-jinja2:
        rationale: Python component
        ref: 96128be42f3eccd492fa9d5357438bd46f5b66e0
        # buildorder: 10
      numpy:
        rationale: Python component
        ref: abaea2f4a92c9d9dcfc3326e8d7da6bbb0a1c438
        # buildorder: 10
      PyYAML:
        rationale: Python component
        ref: 9377d8316718a80ef39ed33b562526c16d2a5ed1
        # buildorder: 10
      python-pycparser:
        rationale: Python component
        ref: b9de4cc76acffea6f5a1b4234d04d32cba39be7f
        # buildorder: 10
      python-lxml:
        rationale: Python component
        ref: 13f4a592a8778b85728b1c4ddcdea817f9452835
        # buildorder: 10

      python-cffi:
        rationale: Python component
        ref: 8bb413d498e49973290d50c8b32ddba9ed22f2b8
        # buildorder: 20
      scipy:
        rationale: Python component
        ref: 45c7fcf1aea6ba7ccc94f45da12cc42cb1b83eec
        # buildorder: 20

      python-cryptography:
        rationale: Python component
        ref: 104e9a6a9c62dc35dd62df0c76e08770a77904c4
        # needs cffi
        # buildorder: 30

      python-PyMySQL:
        rationale: Python component
        ref: c8f9e7a2ae3030a7b07b6da12c0e353f2c7b4474
        # needs cryptography
        # buildorder: 40
...