"""
This script generates a directory containing the full closure of a set
of Python requirements for a set of platforms and a given Python version
Config file has the following format:
wheels:
name1: url1#branch1
name2: url2
update_wheel_version_file: true
requirements:
- "req1"
- "req2"
- "req3"
discard_from_closure: "regexp"
frozen_requirement_file: "requirements.txt"
platforms:
- x86_64-linux
- x86_64-windows
- aarch64-linux
wheels contains the optional list of wheel that should be locally built
from source located at a git repository url (branch is specified after
a #, if no branch is specified master is assumed
update_wheel_verison_file is an optional parameter to force version
update during generation of the wheels based on sources. The update
works only if the version is stored in a file called VERSION and the
version in this file has MAJOR.MINOR format. In that case during
generation the version is updated to MAJOR.MINOR.YYYYMMDD
requirements are additional python requirements as string
discard_from_closure are packages that should not be copied into the
target dir (packages do not appears also in the generated requirement
file)
frozen_requirement_file is the basename of the generated frozen requirement
file.
platforms is the list of platforms for which wheel should be fetched
"""