contrib/automation/hgautomation/pypi.py
author Gregory Szorc <gregory.szorc@gmail.com>
Thu, 05 Sep 2019 21:09:58 -0700
changeset 42907 92593d72e10b
child 43076 2372284d9457
permissions -rw-r--r--
automation: implement "publish-windows-artifacts" command The new command and associated functionality can be used to automate the publishing of Windows release artifacts. It supports uploading wheels to PyPI (using twine) and copying the artifacts to mercurial-scm.org and updating the latest.dat file to advertise them via the website. I ran `automation.py publish-windows-artifacts 5.1.1` and it appeared to "just work." But the real test will be to do this on the next release... Differential Revision: https://phab.mercurial-scm.org/D6786

# pypi.py - Automation around PyPI
#
# Copyright 2019 Gregory Szorc <gregory.szorc@gmail.com>
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.

# no-check-code because Python 3 native.

from twine.commands.upload import (
    upload as twine_upload,
)
from twine.settings import (
    Settings,
)


def upload(paths):
    """Upload files to PyPI.

    `paths` is an iterable of `pathlib.Path`.
    """
    settings = Settings()

    twine_upload(settings, [str(p) for p in paths])