=> twine
can be easily used:

    $ twine upload
        --repository-url http://gocheese.host:8080/simple/ \
        --username spam --password foo dist/tarball.tar.gz

Also you can permanently configure it:

    [pypi]
    repository: https://gocheese.host/simple/
    username: spam
    password: foo

All metadata information sent by twine is stored on the disk.
Package creation time will be server's current time. If twine
send package checksums, then they are checked against.