예제 #1
0
파일: pypi.py 프로젝트: mrc75/pyppi
    def dispatch(self, request, *args, **kwargs):
        """ Root view of the package index, handle incoming actions from distutils
        or redirect to a more user friendly view """
        if not request.user.is_authenticated():
            user = login_basic_auth(request)
            if user:
                login(request, user)

        if request.method == 'POST':
            if request.META['CONTENT_TYPE'] == 'text/xml':
                log.debug('XMLRPC request received')
                return parse_xmlrpc_request(request)
            log.debug('Distutils request received')
            parse_distutils_request(request)
            action = request.POST.get(':action', '')
        else:
            action = request.GET.get(':action', '')

        if action == 'submit':
            return RegisterView.as_view()(request, *args, **kwargs)
        elif action == 'file_upload':
            return UploadView.as_view()(request, *args, **kwargs)
        elif action == 'list_classifiers':
            return ClassifierView.as_view()(request, *args, **kwargs)
        elif action == '':
            return ReleaseIndex.as_view()(request, *args, **kwargs)
        else:
            log.error('Invalid action encountered: `%s`', action)
            return HttpResponseNotAllowed(action)
예제 #2
0
파일: urls.py 프로젝트: mrc75/pyppi

    # url(r'^pypi/(?P<package>[\w\d_\.\-]+)/$','packages.details',
    #     name='djangopypi-package'),
    # url(r'^pypi/(?P<package>[\w\d_\.\-]+)/rss/$', ReleaseFeed(),
    #     name='djangopypi-package-rss'),
    # url(r'^pypi/(?P<package>[\w\d_\.\-]+)/doap.rdf$','packages.doap',
    #     name='djangopypi-package-doap'),
    # url(r'^pypi/(?P<package>[\w\d_\.\-]+)/manage/$','packages.manage',
    #     name='djangopypi-package-manage'),
    # url(r'^pypi/(?P<package>[\w\d_\.\-]+)/manage/versions/$','packages.manage_versions',
    #     name='djangopypi-package-manage-versions'),
    #

    url(r'^pypi/$',
        ReleaseIndex.as_view(),
        name='pyppi-release-list'),

    url(r'^pypi/(?P<package>[\w\d_\.\-]+)/(?P<version>[\w\d_\.\-]+)/$',
        ReleaseDetail.as_view(), name='pyppi-release'),

    # url(r'^pypi/(?P<package>[\w\d_\.\-]+)/(?P<version>[\w\d_\.\-]+)/doap.rdf$',
    #     'releases.doap',name='djangopypi-release-doap'),
    # url(r'^pypi/(?P<package>[\w\d_\.\-]+)/(?P<version>[\w\d_\.\-]+)/manage/$',
    #     'releases.manage',name='djangopypi-release-manage'),
    # url(r'^pypi/(?P<package>[\w\d_\.\-]+)/(?P<version>[\w\d_\.\-]+)/metadata/$',
    #     'releases.manage_metadata',name='djangopypi-release-manage-metadata'),
    # url(r'^pypi/(?P<package>[\w\d_\.\-]+)/(?P<version>[\w\d_\.\-]+)/files/$',
    #     'releases.manage_files',name='djangopypi-release-manage-files'),
    # url(r'^pypi/(?P<package>[\w\d_\.\-]+)/(?P<version>[\w\d_\.\-]+)/files/upload/$',
    #     'releases.upload_file',name='djangopypi-release-upload-file'),