twine.exceptions module

Module containing exceptions raised by twine.

exception twine.exceptions.TwineException[source]

Base class for all exceptions raised by twine.

exception twine.exceptions.RedirectDetected[source]

A redirect was detected that the user needs to resolve.

In some cases, requests refuses to issue a new POST request after a redirect. In order to prevent a confusing user experience, we raise this exception to allow users to know the index they’re uploading to is redirecting them.

classmethod from_args(repository_url: str, redirect_url: str) twine.exceptions.RedirectDetected[source]
exception twine.exceptions.PackageNotFound[source]

A package file was provided that could not be found on the file system.

This is only used when attempting to register a package_file.

exception twine.exceptions.UploadToDeprecatedPyPIDetected[source]

An upload attempt was detected to deprecated PyPI domains.

The sites pypi.python.org and testpypi.python.org are deprecated.

classmethod from_args(target_url: str, default_url: str, test_url: str) twine.exceptions.UploadToDeprecatedPyPIDetected[source]

Return an UploadToDeprecatedPyPIDetected instance.

exception twine.exceptions.UnreachableRepositoryURLDetected[source]

An upload attempt was detected to a URL without a protocol prefix.

All repository URLs must have a protocol (e.g., https://).

exception twine.exceptions.InvalidSigningConfiguration[source]

Both the sign and identity parameters must be present.

exception twine.exceptions.InvalidSigningExecutable[source]

Signing executable must be installed on system.

exception twine.exceptions.InvalidConfiguration[source]

Raised when configuration is invalid.

exception twine.exceptions.InvalidDistribution[source]

Raised when a distribution is invalid.

exception twine.exceptions.NonInteractive[source]

Raised in non-interactive mode when credentials could not be found.

exception twine.exceptions.InvalidPyPIUploadURL[source]

Repository configuration tries to use PyPI with an incorrect URL.

For example, https://pypi.org instead of https://upload.pypi.org/legacy.