1. PyPA
  2. Python Packaging Authority Projects
  3. pypi


pypi /

Filename Size Date modified Message
6 B
ignore pycs
123 B
add .idea to ignore
1.7 KB
1.4 KB
add license; BSD boilerplate
3.5 KB
add ability to configure TLS and Authentication for sending PyPI mail
208 B
Add SSH remote access.
2.0 KB
moar clues stolen from dstufft
1.2 KB
turns out there's README.pdf .. and probably others...
0 B
*** empty log message ***
12.8 KB
Use the stored path instead of computing it each time
238 B
Add a script and little server to run PyPI
2.8 KB
enable secure cookies for authomatic
6.9 KB
backout old changes for ES
4.2 KB
Merged in msabramo/pypi/fix_typo_emty (pull request #65)
19.6 KB
added browsing a-la Flamenco, thanks amk
14.8 KB
favicon needs to be in the root
4.0 KB
Notify users about duplicate email addresses.
3.6 KB
import redis
2.1 KB
agh static analysis
2.2 KB
Include a migration path for moving legacy users to a stronger hash
833 B
Force file name to match package name. Fixes #1901694.
269 B
Update e location.
139 B
path changes for ximinez
23.0 KB
handle form data with more than one value per key
7.3 KB
"fix" sqlite3 handling of timestamp in this one edge case
929 B
updates for debugging in testpypi
30.0 KB
capture and report errors in python-openid association
71.5 KB
fix deleting of users
1.8 KB
Make the config.ini file relative
1.9 KB
Make directories (and other files) group-writable.
2.0 KB
Make the config.ini file relative
4.9 KB
Add some security headers to every response
10.7 KB
bring me in line with python cvs
7.9 KB
requests version of OAuth client access
527 B
Update dependencies and add rfc3986
2.0 KB
Update dependencies and add rfc3986
9.2 KB
use elastic search for rpc search call
1.2 KB
add more useful information
195 B
Add SSH remote access.
837 B
Make the config.ini file relative
4.6 KB
Make the config.ini file relative
106.2 KB
Use packages.last_serial where it makes sense
1.3 KB
cache calls to slow rpc methods
19.3 KB
committing changes from running server (all robustification)
1.6 KB
Add browse support to the store, add levels.
2.0 KB
reduce MSI magic number to 8 bytes to allow more MSIs through
16.0 KB
remove workaround and update verlib to the bugfixed implementation
3.3 KB
match what is present in distutils
157.8 KB
Work when UNKNOWN values are uploaded for urls

Required packages

To run the PyPI software, you need Python 2.5+ and PostgreSQL

Quick development setup

Make sure you read http://wiki.python.org/moin/CheeseShopDev#DevelopmentEnvironmentHints and you have a working PostgreSQL DB.

Make sure your config.ini is up-to-date, initially copying from config.ini.template. Change CONFIG_FILE at the begining of pypi.wsgi, so it looks like this:

CONFIG_FILE = 'config.ini'

Then, you can create a development environment like this, if you have virtualenv installed:

$ virtualenv --no-site-packages .
$ pip install -r requirements.txt

Then you can launch the server using the pypi.wsgi script:

$ python pypi.wsgi
Serving on port 8000...

PyPI will be available in your browser at http://localhost:8000

Database Setup

To fill a database, run pkgbase_schema.sql on an empty Postgres database. Then run tools/demodata to populate the database with dummy data.

For testing purposes, run tools/mksqlite to create packages.db. Set [database]driver to sqlite3, and [database]name to packages.db, then run tools/demodata to populate the database.

PyPI Requires the citext extension to be installed.

TestPyPI Database Setup

testpypi runs under postgres; because I don't care to fill my head with such trivialities, the setup commands are:

createdb -O testpypi testpypi psql -U testpypi testpypi <pkgbase_schema.sql

Restarting PyPI

PyPI has 2 different pieces that need started, web server and the task runner.

# Restart the web server $ /etc/init.d/pypi restart # Restart the task runner $ initctl restart pypi-worker

Clearing a stuck cache

Users reporting stale data being displayed? Try:

curl -X PURGE https://pypi.python.org/pypi/setuptools

(where the URL is the relevant one to the issue, I presume)

To see what fastly thinks it knows about a page (or how it's getting to you) try:

curl -I -H 'Fastly-Debug: 1' https://pypi.python.org/pypi/setuptools