Skip to main content

UV-PUBLISH - run uv publish using credentials from your ~/.pypirc

PyPi

uv-publish is a simple command line wrapper to run uv publish using your configured Python PyPi credentials from your ~/.pypirc file. Simply run uv-publish instead of uv publish with any of the options and arguments that uv publish normally accepts. uv-publish will read your ~/.pypirc and pass those credentials to uv publish as arguments --username, --password, or --token, and --publish-url. Those arguments are passed automatically at the start of the uv publish command line so they can be overridden manually by later arguments if required.

Note that similar tools to push your Python packages to PyPi such as twine, hatch, and flit recognise the common ~/.pypirc file so this wrapper is created to enable uv publish to do the same.

By default uv-publish will use the first repository in your ~/.pypirc file (defaulting to pypi if the file does not exist). You can specify the repository to use from your ~./pypirc file with the --repository (or --repo) option. This is the only option that uv-publish accepts itself, all other options and arguments are passed directly to uv publish. Note that --repository is the same switch that twine and flit accept, and --repo is the same switch that hatch accepts, so both are supported by uv-publish.

This utility has been developed and tested on Linux but should also work on macOS and Windows although has not been tried on those platforms. The latest documentation and code is available at https://github.com/bulletmark/uv-publish.

How to run

You are a uv user so you should have uv installed. Just run uv-publish as follows (uv-publish will get automatically installed by uvx if you don't already have it):

$ uvx uv-publish [uv publish options]

E.g. if you use twine to publish your package[s] and you store your PyPi credentials in ~/.pypirc then you can swap to uv-publish by simply changing the command:

$ twine upload dist/*

to:

$ uvx uv-publish

Of course uv-publish is available from PyPi so you can choose to install it using pipx or pipxu or uv tool if you prefer a traditional approach.

Usage

Type uv-publish -h to view the usage summary:

usage: uv-publish [-h] [--repository {pypi,testpypi}]

Command line wrapper to run `uv publish` using default credentials from your
`~/.pypirc`. All extra arguments supplied on the command line are passed to
`uv publish`.

options:
  -h, --help            show this help message and exit
  --repository, --repo {pypi,testpypi}
                        Name of the repository to upload to (must match a
                        repository in your .pypirc file). Default is "pypi".

License

Copyright (C) 2024 Mark Blakeney. This program is distributed under the terms of the GNU General Public License. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License at https://en.wikipedia.org/wiki/GNU_General_Public_License for more details.

Metadata

Release files for uv-publish 1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for uv-publish 1.4
File Size Uploaded
uv_publish-1.4.tar.gz 4.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for uv-publish 1.4
File Interpreter ABI Platform
uv_publish-1.4-py3-none-any.whl Python 3 none any Details

Total release size: 8.5 kB

Release files / uv_publish-1.4.tar.gz

Download URL uv_publish-1.4.tar.gz
Size 4.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d4316958158aa1af75044bbe14befa6ec2b84aad8a18e3ecf05f3616b64b51da
BLAKE2b-256 checksum
How to use checksums
f1dba670049a69b553a284ef448b1e92cff5a7c61ec00750bb89e3b0cd260fc8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / uv_publish-1.4-py3-none-any.whl

Download URL uv_publish-1.4-py3-none-any.whl
Size 4.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8b7dd829a2660b0e2f5fb371b8ce5f205d505455679b0c367c7df4fda245c413
BLAKE2b-256 checksum
How to use checksums
b22d24c10de7c728cb853473d651d148bed06266bd10115332d74b9549b38ee1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

1.4 This release

2 release files

1.3

2 release files

1.2

2 release files

1.1

2 release files

1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page