Metadata-Version: 1.1
Name: pyramid-duh
Version: 0.1.2
Summary: Useful utilities for every pyramid app
Home-page: http://pyramid-duh.readthedocs.org/
Author: Steven Arcangeli
Author-email: arcangeli07@gmail.com
License: MIT
Description: Pyramid Duh
        ===========
        :Master Build: |build|_ |coverage|_
        :0.1 Build: |build-0.1|_ |coverage-0.1|_
        :Documentation: http://pyramid_duh.readthedocs.org/
        :Downloads: http://pypi.python.org/pypi/pyramid_duh
        :Source: https://github.com/stevearc/pyramid_duh
        
        .. |build| image:: https://travis-ci.org/stevearc/pyramid_duh.png?branch=master
        .. _build: https://travis-ci.org/stevearc/pyramid_duh
        .. |coverage| image:: https://coveralls.io/repos/stevearc/pyramid_duh/badge.png?branch=master
        .. _coverage: https://coveralls.io/r/stevearc/pyramid_duh?branch=master
        
        .. |build-0.1| image:: https://travis-ci.org/stevearc/pyramid_duh.png?branch=0.1
        .. _build-0.1: https://travis-ci.org/stevearc/pyramid_duh
        .. |coverage-0.1| image:: https://coveralls.io/repos/stevearc/pyramid_duh/badge.png?branch=0.1
        .. _coverage-0.1: https://coveralls.io/r/stevearc/pyramid_duh?branch=0.1
        
        This is just a collection of utilities that I found myself putting into *every
        single* pyramid project I made. So now they're all in one place.
        
        Here's a quick taste.
        
        Don't do this::
        
            def register_user(request):
                username = request.POST['username']
                password = request.POST['password']
                birthdate = request.POST['birthdate']
        
        Do this::
        
            @argify(birthdate=date)
            def register_user(request, username, password, birthdate):
                ...
        
        What urls does this match?
        
        ::
        
            @view_config(context=Root, name='package')
            def get_or_list_packages(request):
                ...
        
        Well, it matches
        
        * ``/package``
        * ``/package/``
        * ``/package/1234``
        * ``/package/wait/hold/on``
        * ``/package/this/seems/confusing``
        
        Whaaaat? Let's fix that::
        
            @view_config(context=Root, name='package', subpath=())
            def list_packages(request):
                # return a list of packages
        
            @view_config(context=Root, name='package', subpath=('id/*')
            def get_package(request):
                package_id = request.named_subpaths['id']
                # fetch a single package
        
        The first one matches
        
        * ``/package``
        * ``/package/``
        
        The second matches
        
        * ``/package/*``
        * ``/package/*/``
        
        But that still seems sloppy. You *demand* consistency!
        
        ::
        
            @view_config(context=Root, name='package', subpath=())
            @addslash
            def list_packages(request):
                # return a list of packages
        
            @view_config(context=Root, name='package', subpath=('id/*')
            @addslash
            def get_package(request):
                package_id = request.named_subpaths['id']
                # fetch a single package
        
        Now it's just ``/package/`` and ``/package/*/``
        
        That's the sales pitch. Read the docs for more details.
        
        
        Changelog
        =========
        
        0.1.2
        -----
        * Bug fix: Fix potential timezone issue when converting unix time to datetime
        * Using the 'six' library for python 2/3 compatibility
        
        0.1.1
        -----
        * Bug fix: IStaticResource fails to look up self.request if nested 2-deep
        * Bug fix: Name collisions with version_helper.py
        * Bug fix: Subpath glob matching always respects case
        * Feature: @argify works on view classes
        * Feature: @argify can inject types that consume multiple parameters
        * Feature: Parameter types can be a dotted path
        
        0.1.0
        -----
        * Package released into the wild
        
Keywords: pyramid util utility
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: Pyramid
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Utilities
