My usecase is: I work on different projects in parallel, with different roles. For example, I work on community project and publish packages on behalf of it, and I publish personal packages too. Obviously, I want to have 2 separate PyPI publishing accounts for those roles. Also, I don't want to cleanup after dumb mistakes, so want to explicitly specify an identity to use for each publishing operation, and get an error if I don't.
It took me some trial and error to arrive at following .pypirc:
====== [distutils] index-servers = use--repository-switch! pfalcon micropython-lib
[micropython-lib] reposytory: http://www.python.org/pypi username:... password:...
[pfalcon] reposytory: http://www.python.org/pypi username:... password:...
[use--repository-switch!] username:foo password:foo ======
However, using standard 3-fold idiom of "python setup.py sdist register upload" (suffixed with "-r pfalcon"), it didn't work, throwing random "Server response (401): basic auth failed". It took me even more trial and error to figure out that I needed to specify -r after each of register & upload:
python setup.py sdist register -r pfalcon upload -r pfalcon
So, the questions are: Why so complicated? Am I doing something wrong and there's easier way to achieve described setup? (https://docs.python.org/2/distutils/packageindex.html#the-pypirc-file describes a case of 2 different servers, and that's what I started with, but it took bunch of attempts to add 3rd "captive" account, and then make it all work without throwing random errors like "AssertionError: unsupported schema").
Thanks, Paul mailto:firstname.lastname@example.org