Giter Site home page Giter Site logo

benliles / djangopypi Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ask/chishop

181.0 181.0 27.0 539 KB

Simple PyPI server written in django. Allows you to register/upload with distutils and install with easy_install/pip.

License: BSD 3-Clause "New" or "Revised" License

Python 100.00%

djangopypi's People

Contributors

benliles avatar brosner avatar bshi avatar davidmiller avatar hltbra avatar jaap3 avatar jacobian avatar jezdez avatar runeh avatar stefanfoulis avatar stefanor avatar tomwys avatar vandersonmota avatar viniciuschagas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

djangopypi's Issues

Support multiple users

It would be nice if this could somehow be hooked into django-auto-ldap and allow anyone with the right user in ldap to upload packages to djangopypi.

Using south fail

python manage.py syncdb --migrate
Syncing...
Creating tables ...
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_user_permissions
Creating table auth_user_groups
Creating table auth_user
Creating table django_content_type
Creating table django_session
Creating table django_site
Creating table south_migrationhistory

You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): no
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)
Migrating...
Running migrations for djangopypi:
 - Migrating forwards to 0005_allow_null_distribution_uploader.
 > djangopypi:0001_initial
 > djangopypi:0002_refactoring
~/hg/chishop/apps/local/lib/python2.7/site-packages/django/db/models/fields/__init__.py:808: RuntimeWarning: DateTimeField received a naive datetime (1970-01-01 00:00:00) while time zone support is active.
  RuntimeWarning)
FATAL ERROR - The following SQL query failed: ALTER TABLE `djangopypi_release` ADD COLUMN `package_id` varchar(255) NOT NULL DEFAULT None;
The error was: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'None' at line 1")
 ! Error found during real run of migration! Aborting.

 ! Since you have a database that does not support running
 ! schema-altering statements in transactions, we have had 
 ! to leave it in an interim state between migrations.

! You *might* be able to recover with:   = CREATE TABLE `djangopypi_project` (`updated` datetime NOT NULL, `description` longtext NOT NULL, `metadata_version` varchar(64) NOT NULL DEFAULT '1.0', `owner_id` integer NOT NULL, `summary` longtext NOT NULL, `name` varchar(255) NOT NULL UNIQUE, `license` longtext NOT NULL, `author` varchar(128) NOT NULL, `home_page` varchar(200) NULL, `download_url` varchar(200) NULL, `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, `author_email` varchar(255) NOT NULL); []
   = CREATE TABLE `djangopypi_project_classifiers` (`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, `project_id` integer NOT NULL, `classifier_id` integer NOT NULL); []
   = ALTER TABLE `djangopypi_project_classifiers` ADD CONSTRAINT `djangopypi_project_classifiers_project_id_cff2b4571a6cca1_uniq` UNIQUE (`project_id`, `classifier_id`) []
   = DROP TABLE `djangopypi_distribution` CASCADE; []
   = DROP TABLE `djangopypi_review` CASCADE; []
   = DROP TABLE `djangopypi_package` CASCADE; []
   = DROP TABLE `djangopypi_package_owners` CASCADE; []
   = DROP TABLE `djangopypi_package_maintainers` CASCADE; []
   - no dry run output for alter_column() due to dynamic DDL, sorry
   = ALTER TABLE `djangopypi_release` ADD COLUMN `md5_digest` varchar(255) NOT NULL DEFAULT ''; []
   - no dry run output for alter_column() due to dynamic DDL, sorry
   = ALTER TABLE `djangopypi_release` ADD COLUMN `filetype` varchar(255) NOT NULL DEFAULT ''; []
   - no dry run output for alter_column() due to dynamic DDL, sorry
   = ALTER TABLE `djangopypi_release` ADD COLUMN `upload_time` datetime NOT NULL DEFAULT '1969-12-31 23:00:00'; []
   - no dry run output for alter_column() due to dynamic DDL, sorry
   = ALTER TABLE `djangopypi_release` ADD COLUMN `pyversion` varchar(255) NOT NULL DEFAULT ''; []
   - no dry run output for alter_column() due to dynamic DDL, sorry
   = ALTER TABLE `djangopypi_release` ADD COLUMN `project_id` integer NOT NULL DEFAULT None; []
   - no dry run output for alter_column() due to dynamic DDL, sorry
   = ALTER TABLE `djangopypi_release` ADD COLUMN `platform` varchar(255) NOT NULL DEFAULT ''; []
   - no dry run output for alter_column() due to dynamic DDL, sorry
   = ALTER TABLE `djangopypi_release` ADD COLUMN `signature` varchar(128) NOT NULL DEFAULT ''; []
   - no dry run output for alter_column() due to dynamic DDL, sorry
   = ALTER TABLE `djangopypi_release` ADD COLUMN `distribution` varchar(100) NOT NULL DEFAULT ''; []
   - no dry run output for alter_column() due to dynamic DDL, sorry
   - no dry run output for delete_foreign_key() due to dynamic DDL, sorry
   = ALTER TABLE `djangopypi_release` DROP COLUMN `package_id` CASCADE; []
   - no dry run output for delete_foreign_key() due to dynamic DDL, sorry
   = ALTER TABLE `djangopypi_release` DROP COLUMN `metadata_version` CASCADE; []
   - no dry run output for delete_foreign_key() due to dynamic DDL, sorry
   = ALTER TABLE `djangopypi_release` DROP COLUMN `package_info` CASCADE; []
   - no dry run output for delete_foreign_key() due to dynamic DDL, sorry
   = ALTER TABLE `djangopypi_release` DROP COLUMN `hidden` CASCADE; []
   - no dry run output for delete_foreign_key() due to dynamic DDL, sorry
   = ALTER TABLE `djangopypi_release` DROP COLUMN `created` CASCADE; []
   = ALTER TABLE `djangopypi_release` ADD CONSTRAINT `djangopypi_release_project_id_3b8fc244160e211b_uniq` UNIQUE (`project_id`, `platform`, `distribution`, `version`, `pyversion`) []
   - no dry run output for delete_unique_column() due to dynamic DDL, sorry

 ! The South developers regret this has happened, and would
 ! like to gently persuade you to consider a slightly
 ! easier-to-deal-with DBMS (one that supports DDL transactions)
 ! NOTE: The error which caused the migration to fail is further up.
Error in migration: djangopypi:0002_refactoring
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "~/hg/chishop/apps/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line
    utility.execute()
  File "~/hg/chishop/apps/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "~/hg/chishop/apps/local/lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "~/hg/chishop/apps/local/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute
    output = self.handle(*args, **options)
  File "~/hg/chishop/apps/local/lib/python2.7/site-packages/django/core/management/base.py", line 371, in handle
    return self.handle_noargs(**options)
  File "~/hg/chishop/apps/local/lib/python2.7/site-packages/south/management/commands/syncdb.py", line 99, in handle_noargs
    management.call_command('migrate', **options)
  File "~/hg/chishop/apps/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 150, in call_command
    return klass.execute(*args, **defaults)
  File "~/hg/chishop/apps/local/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute
    output = self.handle(*args, **options)
  File "~/hg/chishop/apps/local/lib/python2.7/site-packages/south/management/commands/migrate.py", line 107, in handle
    ignore_ghosts = ignore_ghosts,
  File "~/hg/chishop/apps/local/lib/python2.7/site-packages/south/migration/__init__.py", line 219, in migrate_app
    success = migrator.migrate_many(target, workplan, database)
  File "~/hg/chishop/apps/local/lib/python2.7/site-packages/south/migration/migrators.py", line 235, in migrate_many
    result = migrator.__class__.migrate_many(migrator, target, migrations, database)
  File "~/hg/chishop/apps/local/lib/python2.7/site-packages/south/migration/migrators.py", line 310, in migrate_many
    result = self.migrate(migration, database)
  File "~/hg/chishop/apps/local/lib/python2.7/site-packages/south/migration/migrators.py", line 133, in migrate
    result = self.run(migration)
  File "~/hg/chishop/apps/local/lib/python2.7/site-packages/south/migration/migrators.py", line 107, in run
    return self.run_migration(migration)
  File "~/hg/chishop/apps/local/lib/python2.7/site-packages/south/migration/migrators.py", line 81, in run_migration
    migration_function()
  File "~/hg/chishop/apps/local/lib/python2.7/site-packages/south/migration/migrators.py", line 57, in <lambda>
    return (lambda: direction(orm))
  File "~/hg/chishop/apps/local/lib/python2.7/site-packages/djangopypi/migrations/0002_refactoring.py", line 96, in forwards
    db.add_column('djangopypi_release', 'package', self.gf('django.db.models.fields.related.ForeignKey')(default='', related_name='releases', to=orm['djangopypi.Package']), keep_default=False)
  File "~/hg/chishop/apps/local/lib/python2.7/site-packages/south/db/generic.py", line 46, in _cache_clear
    return func(self, table, *args, **opts)
  File "~/hg/chishop/apps/local/lib/python2.7/site-packages/south/db/generic.py", line 408, in add_column
    self.execute(sql)
  File "~/hg/chishop/apps/local/lib/python2.7/site-packages/south/db/generic.py", line 264, in execute
    cursor.execute(sql, params)
  File "~/hg/chishop/apps/local/lib/python2.7/site-packages/django/db/backends/util.py", line 40, in execute
    return self.cursor.execute(sql, params)
  File "~/hg/chishop/apps/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 114, in execute
    return self.cursor.execute(query, args)
  File "~/hg/chishop/apps/local/lib/python2.7/site-packages/MySQLdb/cursors.py", line 174, in execute
    self.errorhandler(self, exc, value)
  File "~/hg/chishop/apps/local/lib/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
django.db.utils.DatabaseError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'None' at line 1")

Only works on Django 1.2. Not Django 1.0 or 1.1 compatible

The statement:

from django.utils.decorators import available_attrs

Makes it incompatible with any other version other than Django 1.2, as django.utils.decorators was refactored after 1.1.

Any possible way to fallback to something else?

[question] write up on how it works

Hey, I know this is old unmaintained code, but I would like to understand the concepts and how the system works.

If you have a blog and have written about this code or if it haven't, I would like to ask to please write about this code.

As is, though, I am already reading and trying to understand it's blocks. Thanks for opening your code here!

Allow a cache when proxying

Rather than simply redirecting to pypi, it'd be nice to have an additional setting that will enable caching of missing packages on the local djangopypi server. What are your thoughts on including something like this? I'm willing to work on implementing if others desire it too.

Djangopypi isn't case insenstive

For example, If I forbit redirect, and upload Fabric to djangopypi, and then ask for 'fabric', I won't get the package. But if I do if I ask for 'Fabric'.

According to PEP8, package names are case-insensitive, and so does pypi.python.org

Classifier model is unused

As far as I can tell the classifier model is not used. This means that a bunch of code can be deleted like the model itself, the admin class, the loadclassifiers management command etc.

OSX El Capitan Issue

When I do a "setup.py sdist bdist_egg upload" after upgrading to El Capitan the Post Data has

u':action': [u'\r\nfile_upload\r']

Which fails when you do a string compare for the 'file_upload' command

POST data handling

Need to investigate post data handling and why the default request parsers in django are failing.

413 error if sdist is too big

Hi,

I have a djangopypi instance installed, and it works well, but when I tried to upload a "big" (~1.7MB) tarball, I got back a 413 http error.

Refactor repository

Refactor this repository to make the djangopypi vs. chishop distinction more clear.

Update url in setup.py

Easiest issue evah!

The url in setup.py still references chishop (404) instead of djangopypi.

``pip search`` results in internal server error

pip supports specifying a custom cheeseshop when performing a search. this takes the form pip search --index {cheeseshop} {query}. however, when i try to use this, my chishop instance responds with an internal server error:

$ pip search --index http://localhost:8333/pypi foo
Exception:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/pip/basecommand.py", line 126, in main
    self.run(options, args)
  File "/usr/local/lib/python2.7/dist-packages/pip/commands/search.py", line 33, in run
    pypi_hits = self.search(query, index_url)
  File "/usr/local/lib/python2.7/dist-packages/pip/commands/search.py", line 44, in search
    hits = pypi.search({'name': query, 'summary': query}, 'or')
  File "/usr/lib/python2.7/xmlrpclib.py", line 1224, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1575, in __request
    verbose=self.__verbose
  File "/usr/lib/python2.7/xmlrpclib.py", line 1264, in request
    return self.single_request(host, handler, request_body, verbose)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1312, in single_request
    response.msg,
ProtocolError: <ProtocolError for localhost:8333/pypi: 500 INTERNAL SERVER ERROR>

Storing complete log in /home/ivan/.pip/pip.log

meanwhile, chishop outputs a line like this:
[05/Aug/2011 18:25:17] "POST /pypi HTTP/1.1" 500 75674

that's with a chishop instance running on localhost, invoked as bin/django runserver -v 2 8333. i have customized a few, but not many, of the chishop settings. if you'd like, i can provide a complete minimal working example.

Syntax error in tests/pip.py

There seems to be a stray ":" sitting in this file.

Full pip log below...

pip install djangopypi
Downloading/unpacking djangopypi
Downloading djangopypi-0.4.4.tar.gz
Running setup.py egg_info for package djangopypi

Installed /home/dragon/Snakepit/djangoplay/build/djangopypi/setuptools_git-1.0-py2.7.egg

Requirement already satisfied (use --upgrade to upgrade): setuptools in /home/dragon/Snakepit/djangoplay/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg (from djangopypi)
Downloading/unpacking pkginfo (from djangopypi)
Downloading pkginfo-1.1b1.tar.gz
Running setup.py egg_info for package pkginfo

Downloading/unpacking docutils (from djangopypi)
Downloading docutils-0.11.tar.gz (1.6MB): 1.6MB downloaded
Running setup.py egg_info for package docutils

warning: no files found matching 'MANIFEST'
warning: no files found matching '*' under directory 'extras'
warning: no previously-included files matching '.cvsignore' found under directory '*'
warning: no previously-included files matching '*.pyc' found under directory '*'
warning: no previously-included files matching '*~' found under directory '*'
warning: no previously-included files matching '.DS_Store' found under directory '*'

Installing collected packages: djangopypi, pkginfo, docutils
Running setup.py install for djangopypi

  File "/home/dragon/Snakepit/djangoplay/lib/python2.7/site-packages/djangopypi/tests/pip.py", line 3
    :
    ^
SyntaxError: invalid syntax

Running setup.py install for pkginfo

Installing pkginfo script to /home/dragon/Snakepit/djangoplay/bin

Running setup.py install for docutils
changing mode of build/scripts-2.7/rst2html.py from 644 to 755
changing mode of build/scripts-2.7/rst2s5.py from 644 to 755
changing mode of build/scripts-2.7/rst2latex.py from 644 to 755
changing mode of build/scripts-2.7/rst2xetex.py from 644 to 755
changing mode of build/scripts-2.7/rst2man.py from 644 to 755
changing mode of build/scripts-2.7/rst2xml.py from 644 to 755
changing mode of build/scripts-2.7/rst2pseudoxml.py from 644 to 755
changing mode of build/scripts-2.7/rstpep2html.py from 644 to 755
changing mode of build/scripts-2.7/rst2odt.py from 644 to 755
changing mode of build/scripts-2.7/rst2odt_prepstyles.py from 644 to 755

warning: no files found matching 'MANIFEST'
warning: no files found matching '*' under directory 'extras'
warning: no previously-included files matching '.cvsignore' found under directory '*'
warning: no previously-included files matching '*.pyc' found under directory '*'
warning: no previously-included files matching '*~' found under directory '*'
warning: no previously-included files matching '.DS_Store' found under directory '*'
changing mode of /home/dragon/Snakepit/djangoplay/bin/rst2xml.py to 755
changing mode of /home/dragon/Snakepit/djangoplay/bin/rst2man.py to 755
changing mode of /home/dragon/Snakepit/djangoplay/bin/rst2odt_prepstyles.py to 755
changing mode of /home/dragon/Snakepit/djangoplay/bin/rst2latex.py to 755
changing mode of /home/dragon/Snakepit/djangoplay/bin/rst2html.py to 755
changing mode of /home/dragon/Snakepit/djangoplay/bin/rst2pseudoxml.py to 755
changing mode of /home/dragon/Snakepit/djangoplay/bin/rstpep2html.py to 755
changing mode of /home/dragon/Snakepit/djangoplay/bin/rst2odt.py to 755
changing mode of /home/dragon/Snakepit/djangoplay/bin/rst2xetex.py to 755
changing mode of /home/dragon/Snakepit/djangoplay/bin/rst2s5.py to 755

Successfully installed djangopypi pkginfo docutils
Cleaning up...

ppadd don't work

I have a AttributeError when I try to add Fabric(or something else):

./manage.py ppadd fabric --owner=xxx

Traceback (most recent call last):
  File "chishop/manage.py", line 14, in <module>
    execute_manager(settings)
  File "/home/chishop/.env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 438, in execute_manager
    utility.execute()
  File "/home/chishop/.env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 379, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/chishop/.env/local/lib/python2.7/site-packages/django/core/management/base.py", line 191, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/home/chishop/.env/local/lib/python2.7/site-packages/django/core/management/base.py", line 220, in execute
    output = self.handle(*args, **options)
  File "/home/chishop/.env/local/lib/python2.7/site-packages/django/core/management/base.py", line 322, in handle
    label_output = self.handle_label(label, **options)
  File "/home/chishop/.env/local/lib/python2.7/site-packages/djangopypi/management/commands/ppadd.py", line 62, in handle_label
    self._save_package(path, options["owner"])
  File "/home/chishop/.env/local/lib/python2.7/site-packages/djangopypi/management/commands/ppadd.py", line 132, in _save_package
    release.distribution.save(filename, file)
AttributeError: 'Release' object has no attribute 'distribution'

update_mirrors has wrong help text

I'm not sure what update_mirrors does and it's help text is a copy of the text from loadclassifiers, so that's not really helping me figure it out.

Upload failed (401): UNAUTHORIZED

When I run python setup.py register -r local sdist upload -r local I get the error Upload failed (401): UNAUTHORIZED. I followed the instructions exactly as given here: http://pypi.python.org/pypi/djangopypi/0.4.3. Is there a way to set a username and password for the djangopypi server?

Here is the full command output:

~/projects/python/testlocalpypi[master]$ python setup.py register -r local sdist upload -r local
running register
running egg_info
writing testlocalpypi.egg-info/PKG-INFO
writing top-level names to testlocalpypi.egg-info/top_level.txt
writing dependency_links to testlocalpypi.egg-info/dependency_links.txt
reading manifest file 'testlocalpypi.egg-info/SOURCES.txt'
writing manifest file 'testlocalpypi.egg-info/SOURCES.txt'
warning: register: missing required meta-data: url
warning: register: missing meta-data: if 'author' supplied, 'author_email' must be supplied too
Registering testlocalpypi to http://localhost:8000/
Server response (401): UNAUTHORIZED
running sdist
warning: sdist: standard file not found: should have one of README, README.txt
warning: sdist: missing required meta-data: url
warning: sdist: missing meta-data: if 'author' supplied, 'author_email' must be supplied too
creating testlocalpypi-0.0.2
creating testlocalpypi-0.0.2/testlocalpypi
creating testlocalpypi-0.0.2/testlocalpypi.egg-info
creating testlocalpypi-0.0.2/testlocalpypi/tools
making hard links in testlocalpypi-0.0.2...
hard linking setup.py -> testlocalpypi-0.0.2
hard linking testlocalpypi/__init__.py -> testlocalpypi-0.0.2/testlocalpypi
hard linking testlocalpypi/config.py -> testlocalpypi-0.0.2/testlocalpypi
hard linking testlocalpypi.egg-info/PKG-INFO -> testlocalpypi-0.0.2/testlocalpypi.egg-info
hard linking testlocalpypi.egg-info/SOURCES.txt -> testlocalpypi-0.0.2/testlocalpypi.egg-info
hard linking testlocalpypi.egg-info/dependency_links.txt -> testlocalpypi-0.0.2/testlocalpypi.egg-info
hard linking testlocalpypi.egg-info/top_level.txt -> testlocalpypi-0.0.2/testlocalpypi.egg-info
hard linking testlocalpypi/tools/__init__.py -> testlocalpypi-0.0.2/testlocalpypi/tools
hard linking testlocalpypi/tools/class_decorators.py -> testlocalpypi-0.0.2/testlocalpypi/tools
Writing testlocalpypi-0.0.2/setup.cfg
tar -cf dist/testlocalpypi-0.0.2.tar testlocalpypi-0.0.2
gzip -f9 dist/testlocalpypi-0.0.2.tar
removing 'testlocalpypi-0.0.2' (and everything under it)
running upload
Submitting dist/testlocalpypi-0.0.2.tar.gz to http://localhost:8000/                                                                                                            
Upload failed (401): UNAUTHORIZED

URLPatterns incomplete in README.rst

On you're front page (README.rst) you say that:
urlpatterns = patterns("",
...
url(r'', include("djangopypi.urls"))
)

I think you need to add:
url(r'.*/(?Pdists/.+)', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT})
Or the server equivalent, or else you'll get django errors when trying to download anything for dists

500 error when not maintainer

I have following error when I'm not maintainer and I'm trying to upload:

TransactionManagementError: Transaction managed block ended with pending COMMIT/ROLLBACK

Dependency graphs

Add support for inspecting package/version requirements to generate dependency graphs

not able to install distribution

I can see the python package that I created with distutil, but I can't install it from the server. Looks like it is having problems with routing....
any ideas?
Trying to access the project from the web interface:

Using the URLconf defined in chi.urls, Django tried these URL patterns, in this order:
^$ [name='djangopypi-root']
^packages/$ [name='djangopypi-package-index']
^simple/$ [name='djangopypi-package-index-simple']
^search/$ [name='djangopypi-search']
^pypi/$ [name='djangopypi-release-index']
^rss/$ [name='djangopypi-rss']
^simple/(?P[\w\d_.-]+)/$ [name='djangopypi-package-simple']
^pypi/(?P[\w\d_.-]+)/$ [name='djangopypi-package']
^pypi/(?P[\w\d_.-]+)/rss/$ [name='djangopypi-package-rss']
^pypi/(?P[\w\d_.-]+)/doap.rdf$ [name='djangopypi-package-doap']
^pypi/(?P[\w\d_.-]+)/manage/$ [name='djangopypi-package-manage']
^pypi/(?P[\w\d_.-]+)/manage/versions/$ [name='djangopypi-package-manage-versions']
^pypi/(?P[\w\d_.-]+)/(?P[\w\d_.-]+)/$ [name='djangopypi-release']
^pypi/(?P[\w\d_.-]+)/(?P[\w\d_.-]+)/doap.rdf$ [name='djangopypi-release-doap']
^pypi/(?P[\w\d_.-]+)/(?P[\w\d_.-]+)/manage/$ [name='djangopypi-release-manage']
^pypi/(?P[\w\d_.-]+)/(?P[\w\d_.-]+)/metadata/$ [name='djangopypi-release-manage-metadata']
^pypi/(?P[\w\d_.-]+)/(?P[\w\d_.-]+)/files/$ [name='djangopypi-release-manage-files']
^pypi/(?P[\w\d_.-]+)/(?P[\w\d_.-]+)/files/upload/$ [name='djangopypi-release-upload-file']
^admin/
The current URL, pypi/daemon/3.0/dists/daemon-3.0.zip, didn't match any of these.

Intro tutorial

Need a simple to follow tutorial for setting up a server, registering a package and uploading a release

Authentication backend

Rewrite djangopypi.http.login_basic_auth as an authentication backend so that it can be used more generally.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.