---
document: modulemd
version: 2
data:
    name: python38
    stream: 3.8_bootstrap
    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: [el8]

              # 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: [el8]
    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:
                # In the 3.8-bootstrap stream we cannot filter RPMs (like we do in the 3.8 stream),
                # because they wondn't be available to build against next time.
    api:
        rpms:
                # api list of packages is only needed in the final build to be included in the metadata,
                # therefore it's not included here in the 3.8-bootstrap stream so as not to maintain it
                # in two different locations.
    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


            # 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: stream-python38-3.8-rhel-8.9.0
            #     buildorder: 10
            # python3x-setuptools:
            #     rationale: Packaging tool
            #     ref: stream-python38-3.8-rhel-8.9.0
            #     buildorder: 20
            # python-wheel:
            #     rationale: Packaging tool
            #     ref: stream-python38-3.8-rhel-8.9.0
            #     buildorder: 30
            # python3x-pip:
            #     rationale: Packaging tool
            #     ref: stream-python38-3.8-rhel-8.9.0
            #     buildorder: 40


            # === Bootstrap phase 2 ===
            #
            # python3x-setuptools:
            #     rationale: Packaging tool
            #     ref: stream-python38-3.8-rhel-8.9.0
            #     buildorder: 10
            # python38:
            #     rationale: The main Python interpreter
            #     ref: stream-python38-3.8-rhel-8.9.0
            #     buildorder: 20
            # python-wheel:
            #     rationale: Packaging tool
            #     ref: stream-python38-3.8-rhel-8.9.0
            #     buildorder: 30
            # python3x-pip:
            #     rationale: Packaging tool
            #     ref: stream-python38-3.8-rhel-8.9.0
            #     buildorder: 30

            # python3x-six:
            #     rationale: Python component
            #     ref: stream-python38-3.8-rhel-8.9.0
            #     buildorder: 30
            # python-py:
            #     rationale: Python component
            #     ref: stream-python38-3.8-rhel-8.9.0
            #     buildorder: 30
            # python-chardet:
            #     rationale: Python component
            #     ref: stream-python38-3.8-rhel-8.9.0
            #     buildorder: 30
            # python-attrs:
            #     rationale: Python component
            #     ref: stream-python38-3.8-rhel-8.9.0
            #     buildorder: 30
            # python-pluggy:
            #     rationale: Python component
            #     ref: stream-python38-3.8-rhel-8.9.0
            #     buildorder: 30
            # python-markupsafe:
            #     rationale: Python component
            #     ref: stream-python38-3.8-rhel-8.9.0
            #     buildorder: 30
            # python-pysocks:
            #     rationale: Python component
            #     ref: stream-python38-3.8-rhel-8.9.0
            #     buildorder: 30
            # python3x-pyparsing:
            #     rationale: Python component
            #     ref: stream-python38-3.8-rhel-8.9.0
            #     buildorder: 30
            # python-atomicwrites:
            #     rationale: Python component
            #     ref: stream-python38-3.8-rhel-8.9.0
            #     buildorder: 30
            # python-wcwidth:
            #     rationale: Python component
            #     ref: stream-python38-3.8-rhel-8.9.0
            #     buildorder: 30
            # python-more-itertools:
            #     rationale: Python component
            #     ref: stream-python38-3.8-rhel-8.9.0
            #     buildorder: 40
            # python-packaging:
            #     rationale: Python component
            #     ref: stream-python38-3.8-rhel-8.9.0
            #     buildorder: 40
            # pytest:
            #     rationale: Python component
            #     ref: stream-python38-3.8-rhel-8.9.0
            #     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: changed/i8c-stream-3.8_bootstrap/python38-3.8.16-2.module_el8+613+9956a23f
            python3x-setuptools:
                rationale: Packaging tool
                ref: changed/i8c-stream-3.8_bootstrap/python3x-setuptools-41.6.0-5.module_el8+613+9956a23f
            python-wheel:
                rationale: Packaging tool
                ref: changed/i8c-stream-3.8_bootstrap/python-wheel-0.33.6-6.module_el8+613+9956a23f
            python3x-pip:
                rationale: Packaging tool
                ref: changed/i8c-stream-3.8_bootstrap/python3x-pip-19.3.1-6.module_el8+613+9956a23f

            python3x-six:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/python3x-six-1.12.0-10.module_el8+613+9956a23f
            python-py:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/python-py-1.8.0-8.module_el8+613+9956a23f
            python-chardet:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/python-chardet-3.0.4-19.module_el8+613+9956a23f
            python-attrs:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/python-attrs-19.3.0-3.module_el8+613+9956a23f
            python-pluggy:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/python-pluggy-0.13.0-3.module_el8+613+9956a23f
            python-markupsafe:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/python-markupsafe-1.1.1-6.module_el8+613+9956a23f
            python-pysocks:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/python-pysocks-1.7.1-4.module_el8+613+9956a23f
            python3x-pyparsing:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/python3x-pyparsing-2.4.5-3.module_el8+613+9956a23f
            python-atomicwrites:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/python-atomicwrites-1.3.0-8.module_el8+613+9956a23f
            python-wcwidth:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/python-wcwidth-0.1.7-16.module_el8+613+9956a23f
            python-more-itertools:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/python-more-itertools-7.2.0-5.module_el8+613+9956a23f
            python-packaging:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/python-packaging-19.2-3.module_el8+613+9956a23f
            pytest:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/pytest-4.6.6-3.module_el8+613+9956a23f
            pytz:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/pytz-2019.3-4.module_el8+613+9956a23f
            babel:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/babel-2.7.0-11.module_el8+613+9956a23f
            python-idna:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/python-idna-2.8-6.module_el8+613+9956a23f
            python-urllib3:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/python-urllib3-1.25.7-5.module_el8+613+9956a23f
            Cython:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/Cython-0.29.14-4.module_el8+613+9956a23f
            python-asn1crypto:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/python-asn1crypto-1.2.0-3.module_el8+613+9956a23f
            python-ply:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/python-ply-3.11-10.module_el8+613+9956a23f
            python-psutil:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/python-psutil-5.6.4-4.module_el8+613+9956a23f
            python-psycopg2:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/python-psycopg2-2.8.4-4.module_el8+613+9956a23f
            mod_wsgi:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/mod_wsgi-4.6.8-5.module_el8+613+9956a23f

            python-requests:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/python-requests-2.22.0-10.module_el8+613+9956a23f
                # buildorder: 10
            python-jinja2:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/python-jinja2-2.11.3-1.module_el8+613+9956a23f
                # buildorder: 10
            numpy:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/numpy-1.17.3-7.module_el8+613+9956a23f
                # buildorder: 10
            PyYAML:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/PyYAML-5.4.1-1.module_el8+613+9956a23f
                # buildorder: 10
            python-pycparser:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/python-pycparser-2.19-3.module_el8+613+9956a23f
                # buildorder: 10
            python-lxml:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/python-lxml-4.4.1-7.module_el8+613+9956a23f
                # buildorder: 10

            python-cffi:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/python-cffi-1.13.2-3.module_el8+613+9956a23f
                # buildorder: 20
            scipy:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/scipy-1.3.1-5.module_el8+613+9956a23f
                # buildorder: 20

            python-cryptography:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/python-cryptography-2.8-3.module_el8+613+9956a23f
                # needs cffi
                # buildorder: 30

            python-PyMySQL:
                rationale: Python component
                ref: changed/i8c-stream-3.8_bootstrap/python-PyMySQL-0.10.1-1.module_el8+613+9956a23f
                # needs cryptography
                # buildorder: 40
...