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 upload 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.1.tar.gz (18.0 kB view details)

Uploaded Source

twine-1.1.1.tar.bz2 (16.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded Python 2Python 3

File details

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

File metadata

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

File hashes

Hashes for twine-1.1.1.tar.gz
Algorithm Hash digest
SHA256 05cc298a82886569c9ab9d96632d1c779102c5294b638fb22f4fa967be53730b
MD5 a4fbd38cddddad17de0cf05612e4f856
BLAKE2b-256 88b3553ed6356327e72196ced7492ef020c8db54f4387849b97a6f2c516dc482

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for twine-1.1.1.tar.bz2
Algorithm Hash digest
SHA256 278b9c0ab536142eb5da0c7e3c609d862aa94338c135f99da86ca52a59ea17cb
MD5 3c799f617255a85d90e9c2a1fd4efe9f
BLAKE2b-256 cafd778d8f1f5458d7e5fcc0702809ee63fa7619bb00d43e0295cf65845eb483

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for twine-1.1.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 cce0e4e5c9fff7def0ead194b075d7966e6859980a4d10b41d4d9cd3b86660c6
MD5 bc592e443a625b1b3ade3eb29e24d483
BLAKE2b-256 bdd6ab5717e73c99ce53e6963d280a38c3790dccb7ef2fd59f0f40a0f6ddba57

See more details on using hashes here.

Supported by

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