document: modulemd
version: 2
data:
name: python36
stream: 3.6
summary: Python programming language, version 3.6
description: |-
This module gives users access to the internal Python 3.6 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]
# python-pymongo needs mongodb for tests
# - mongodb version `3.6` being the same as version of Python 3.6
# is a coincidence.
mongodb: [3.6]
requires:
platform: [el8]
references:
community: https://www.python.org/
documentation: https://docs.python.org/3.6/
profiles:
common:
rpms:
- python36
build:
rpms:
- python36
- python36-devel
- python36-rpm-macros
filter:
rpms:
- python2-PyMySQL
- python2-docutils
- python2-nose
- python2-pygments
- python2-scipy
- python2-sqlalchemy
- python2-virtualenv
api:
rpms:
- python-sqlalchemy-doc
- python-virtualenv-doc
- python3-PyMySQL
- python3-bson
- python3-distro
- python3-docs
- python3-docutils
- python3-nose
- python3-pygments
- python3-pymongo
- python3-pymongo-gridfs
- python3-scipy
- python3-sqlalchemy
- python3-virtualenv
- python3-wheel
- python36
- python36-debug
- python36-devel
- python36-rpm-macros
buildopts:
rpms:
macros: |
%_without_python2 1
# For packages depending on python36, so that they
# BuildRequire python36-devel/debug/rpm-macros instead of python3-*
#
# This won't be necessary for python37 and later. There we can
# set %{python3_pkgversion}, because all packages will need to
# have the pythonXY prefix. Whereas for Python 3.6 the packages
# are split between non-modular RHEL and the python36 module,
# and so it was easier and less confusing to keep the prefix at
# python3- except for the devel/debug/rpm/macros packages.
%_with_python36_module 1
components:
rpms:
python36:
# This package needs to be built before all others due to containing python36-rpm-macros
rationale:
Contains the symlink to the platform-python interpreter.
Also contains python36-rpm-macros needed to build the
remaining packages.
ref: stream-3.6-rhel-8.1.0
buildorder: 10
python-PyMySQL:
rationale: Python adapter for the MySQL/MariaDB databases
# PyMySQL [0] vs. mysqlclient-python [1]
# - PyMySQL was originally chosen for the rh-python35 RH
# Software collection due to the opinion that maintaining
# mysqlclient-python would take much more resources (bad
# communication with upstream, backward incompatibilities in
# test suite, ...)[2]. PyMySQL was deemed the better
# alternative.
# - When creating this module, this decision was reassessed,
# because mysqlclient-python seems to be faster than PyMySQL,
# but the choice was reaffirmed due to the customers already
# being familiar with PyMySQL from the abovementioned RHSCLs,
# and due to wider popularity of PyMySQL upstream.[3]
# [0] https://github.com/PyMySQL/PyMySQL
# [1] https://github.com/PyMySQL/mysqlclient-python
# [2] https://bugzilla.redhat.com/show_bug.cgi?id=1012475
# [3] python-maint@redhat.com mailing list, 2018-04-30, subject
# "python-MySQL vs PyMySQL"
ref: stream-0.8.0-rhel-8.1.0
buildorder: 20
python-docutils:
rationale: System for processing plaintext documentation
ref: stream-0.14-rhel-8.1.0
buildorder: 20
python-nose:
rationale: Discovery-based unit test extension for Python
ref: stream-1.3.7-rhel-8.1.0
buildorder: 20
python-pygments:
rationale: Syntax highlighting engine written in Python
ref: stream-2.2.0-rhel-8.1.0
buildorder: 20
python-pymongo:
# Package maintainer: mskalick
rationale: Python driver for MongoDB
ref: stream-3.6.1-rhel-8.1.0
buildorder: 20
python-sqlalchemy:
rationale: Modular and flexible ORM library for python
ref: stream-1.3.2-rhel-8.1.0
buildorder: 20
python-wheel:
rationale: Built-package format for Python
ref: stream-0.30.0-rhel-8.1.0
buildorder: 20
scipy:
rationale: Scientific Tools for Python
ref: stream-1.0.0-rhel-8.1.0
buildorder: 20
python-docs:
rationale: Documentation for Python
ref: stream-3.6-rhel-8.1.0
buildorder: 20
python-distro:
rationale: Linux Distribution - a Linux OS platform information API
ref: stream-1.4-rhel-8.1.0
buildorder: 20
python-virtualenv:
rationale: Tool to create isolated Python environments
ref: stream-15.1.0-rhel-8.1.0
buildorder: 30