Hello @potiuk 

I believe you wrote this script - [`prepare_provider_packages.py`](https://github.com/apache/airflow/blob/master/dev/provider_packages/prepare_provider_packages.py).

I am wondering if there is any reason why you did not use the standard library - [`argument.ArgumentParser`](https://docs.python.org/3/library/argparse.html) in this script?
https://docs.python.org/3/library/argparse.html
https://github.com/apache/airflow/blob/550395192929f86376151b4385cea6b8dfb76e8e/dev/provider_packages/prepare_provider_packages.py#L1518-L1552

This makes the code overly complex and, by the way, more prone to errors e.g.  ``usage()`` method describes the `--version-suffix-for-pypi` parameter, but we changed its name to `--version-suffix`.

What do you think to rewrite this script to use the standard library? Do we have a requirement that prevents this? I think of something similar to [my gist](https://gist.github.com/mik-laj/ff008718fc6cec9fe929731b8c62d6f8).

dev/provider_packages/prepare_provider_packages.py
"""
    readme_source = "BACKPORT_PROVIDER_README.md" if backport_packages else "README.md"
    source_provider_package_path = get_source_package_path(provider_package_id)
    readme_source = os.path.join(source_provider_package_path, readme_source)
    readme_target = os.path.join(TARGET_PROVIDER_PACKAGES_PATH, "README.md")
    copyfile(readme_source, readme_target)
    changelog_target = os.path.join(TARGET_PROVIDER_PACKAGES_PATH, "CHANGELOG.txt")
    with open(readme_source) as infile, open(changelog_target, 'wt') as outfile:
        copy = False
        for line in infile:
            if line.strip() == "## Releases":
                copy = True
            if copy:
                outfile.write(line)
if __name__ == "__main__":
    LIST_PROVIDERS_PACKAGES = "list-providers-packages"
    LIST_BACKPORTABLE_PACKAGES = "list-backportable-packages"
    UPDATE_PACKAGE_RELEASE_NOTES = "update-package-release-notes"
    GENERATE_SETUP_FILES = "generate-setup-files"
    BACKPORT_PACKAGES = os.getenv('BACKPORT_PACKAGES') == "true"
    suffix = ""
    provider_names = get_provider_packages()
    possible_first_params = provider_names.copy()
    possible_first_params.append(LIST_PROVIDERS_PACKAGES)
    possible_first_params.append(LIST_BACKPORTABLE_PACKAGES)
    possible_first_params.append(UPDATE_PACKAGE_RELEASE_NOTES)
    possible_first_params.append(GENERATE_SETUP_FILES)
    if len(sys.argv) == 1:
        print(
            """