Skip to main content

Collection of utilities for interacting with PyPI

Project description

Twine is a utility for interacting with PyPI.

Currently it only supports uploading distributions.

Why Should I Use This?

The biggest reason to use twine is that python setup.py upload uploads files over plaintext. This means anytime you use it you expose your username and password to a MITM attack. Twine uses only verified TLS to upload to PyPI protecting your credentials from theft.

Secondly it allows you to precreate your distribution files. python setup.py upload only allows you to upload something that you’ve created in the same command invocation. This means that you cannot test the exact file you’re going to be uploaded to PyPI to ensure that it works before uploading it.

Finally it allows you to pre-sign your files and pass the .asc files into the command line invocation (twine upload twine-1.0.1.tar.gz twine-1.0.1.tar.gz.asc). This enables you to be assured that you’re typing your gpg passphrase into gpg itself and not anything else since you will be the one directly executing gpg --detach-sign -a <filename>.

Features

  • Verified HTTPS Connections

  • Uploading doesn’t require executing setup.py

  • Uploading files that have already been created, allowing testing of distributions before release

Installation

$ pip install twine

Usage

  1. Create some distributions in the normal way:

$ python setup.py sdist bdist_wheel
  1. Upload with twine:

$ twine upload dist/*
  1. Done!

Options

$ twine upload -h
usage: twine upload [-h] [-r REPOSITORY] [-s] [-i IDENTITY] [-u USERNAME]
                    [-p PASSWORD] [-c COMMENT]
                    dist [dist ...]

positional arguments:
  dist                  The distribution files to upload to the repository,
                        may additionally contain a .asc file to include an
                        existing signature with the file upload

optional arguments:
  -h, --help            show this help message and exit
  -r REPOSITORY, --repository REPOSITORY
                        The repository to upload the files to
  -s, --sign            Sign files to upload using gpg
  -i IDENTITY, --identity IDENTITY
                        GPG identity used to sign files
  -u USERNAME, --username USERNAME
                        The username to authenticate to the repository as
  -p PASSWORD, --password PASSWORD
                        The password to authenticate to the repository with
  -c COMMENT, --comment COMMENT
                        The comment to include with the distribution file

Resources

Contributing

  1. Fork the repository on GitHub.

  2. Make a branch off of master and commit your changes to it.

  3. Ensure that your name is added to the end of the AUTHORS file using the format Name <email@domain.com> (url), where the (url) portion is optional.

  4. Submit a Pull Request to the master branch on GitHub.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

twine-1.1.0.tar.gz (18.0 kB view details)

Uploaded Source

twine-1.1.0.tar.bz2 (16.4 kB view details)

Uploaded Source

Built Distribution

twine-1.1.0-py2.py3-none-any.whl (14.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file twine-1.1.0.tar.gz.

File metadata

  • Download URL: twine-1.1.0.tar.gz
  • Upload date:
  • Size: 18.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for twine-1.1.0.tar.gz
Algorithm Hash digest
SHA256 86aeb0f7f0558467c426fe89e367dd1ceab6f8d43760961e3e9ea631b37e6e25
MD5 af5b2504c3d5c7a0f271772b8faedc99
BLAKE2b-256 2858939b84740a47616178656dc18e10a88e5e3114fccd9d6ec677e1bbe2f8fe

See more details on using hashes here.

File details

Details for the file twine-1.1.0.tar.bz2.

File metadata

  • Download URL: twine-1.1.0.tar.bz2
  • Upload date:
  • Size: 16.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for twine-1.1.0.tar.bz2
Algorithm Hash digest
SHA256 a1ad5a66d68af3e1416fcb6c4d73cb67978eee3bcbda3f81f6641aaf25b73972
MD5 3e51e1551e02fd168acdff7e7b334640
BLAKE2b-256 92e84f8881967a14dfda3c6fab241fa06cc9ceb6238ac1a2916e31589bb73baa

See more details on using hashes here.

File details

Details for the file twine-1.1.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for twine-1.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 9a9aff6377e66f5fed197910a6d2bd4e34f20f1e584733ed3e3a4b8ed94cb89c
MD5 8cbf8cea7df27b8072ac7654c4bd7f94
BLAKE2b-256 e5d31b0dcd83eefd092a805c85342051b3220a548419815abc15f5114ba89c35

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page