Re: [pylons-devel] Paste #urlmap and console scripts don't seem to be working correctly.

2015-07-22 Thread Michael Merickel
Yup, the "last pyramid app loaded" is definitely non-deterministic.
It's the best sane default we could think of as most people have only
one app and it's sometimes wrapped in a [pipeline:main] so we didn't
want you to have to specify the section name every single time in that
scenario.

It's esoteric enough that if you have a better idea we can always consider it!

On Wed, Jul 22, 2015 at 4:05 PM, Chip Kellam  wrote:
> Thanks Michael!
>
> It's worth noting that the last pyramid app created, isn't actually
> determined from the order in the .ini file.  Since it ultimately serializes
> to a dictionary {(domain, path): loader, ...} and we all know and love the
> unordered natured of Python dicts.
>
> -C
>
> On Wednesday, July 22, 2015 at 4:53:40 PM UTC-4, Michael Merickel wrote:
>>
>> Pyramid has no way to know which pyramid app you are referring to in
>> bootstrap unless you specify the section. As pyramid at a fundamental
>> level supports running multiple apps in the same process you have to
>> handle this yourself outside if you need to load a specific app for
>> your script to run.
>>
>> The config_uri supports specifying the section without your patch. You
>> just do bootstrap('development.ini#project'). By default it uses main
>> of course, and after that it falls back to loading "the last pyramid
>> app created" logic which is what's finding your support app right now.
>> If this isn't working for you then you should be specifying the
>> section in your scripts.
>>
>> On Wed, Jul 22, 2015 at 2:09 PM, Chip Kellam  wrote:
>> > I have defined my config.ini file as such using the paste urlmap
>> > guidelines
>> > for creating this type of application:
>> >
>> > [composite:main]
>> > use = egg:Paste#urlmap
>> > / = project
>> > domain developer.domain.com / = dev
>> > domain support.domain.internal / = support   # Internal/VPN-only URL
>> >
>> > [app:project]
>> > use = egg:project
>> >
>> > [app:dev]
>> > paste.app_factory = dev:main
>> >
>> > [app:support]
>> > paste.app_factory = support:main
>> >
>> >
>> > "support" is a new module we just wrote to allow our CSRs to manage data
>> > through a CRUD-style interface.  However, when I added this 3rd app
>> > ("dev"
>> > has been there for a while), Pyramid now bootstraps that app in console
>> > scripts INSTEAD of "project".  I can tell because when I run: proutes
>> > config.ini, I see the "support" routes and NOT the "project" routes.
>> >
>> > I'm using the standard:
>> >
>> > from pyramid.paster import bootstrap
>> > env = bootstrap(config_uri)
>> >
>> > I did notice if I monkey patch bootstrap and pass in the app name I
>> > want, it
>> > works fine, e.g:
>> >
>> > def bootstrap(config_uri, request=None, options=None, name='main'):
>> > app = get_app(config_uri, name=name)
>> > env = prepare(request)
>> > env['app'] = app
>> > return env
>> >
>> >
>> > Any idea why this would be occurring??  I'd rather not do anything hacky
>> > with the core pyramid code, but this is affecting all of the logic in
>> > our
>> > scripts that deal with any custom app configurations.
>> >
>> > Thanks for your help!
>> >
>> > -Chip
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups
>> > "pylons-devel" group.
>> > To unsubscribe from this group and stop receiving emails from it, send
>> > an
>> > email to pylons-devel...@googlegroups.com.
>> > To post to this group, send email to pylons...@googlegroups.com.
>> > Visit this group at http://groups.google.com/group/pylons-devel.
>> > For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups
> "pylons-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to pylons-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to pylons-devel@googlegroups.com.
> Visit this group at http://groups.google.com/group/pylons-devel.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"pylons-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to pylons-devel+unsubscr...@googlegroups.com.
To post to this group, send email to pylons-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/pylons-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [pylons-devel] Paste #urlmap and console scripts don't seem to be working correctly.

2015-07-22 Thread Chip Kellam
Thanks Michael!

It's worth noting that the last pyramid app created, isn't actually 
determined from the order in the .ini file.  Since it ultimately serializes 
to a dictionary {(domain, path): loader, ...} and we all know and love the 
unordered natured of Python dicts.

-C

On Wednesday, July 22, 2015 at 4:53:40 PM UTC-4, Michael Merickel wrote:
>
> Pyramid has no way to know which pyramid app you are referring to in 
> bootstrap unless you specify the section. As pyramid at a fundamental 
> level supports running multiple apps in the same process you have to 
> handle this yourself outside if you need to load a specific app for 
> your script to run. 
>
> The config_uri supports specifying the section without your patch. You 
> just do bootstrap('development.ini#project'). By default it uses main 
> of course, and after that it falls back to loading "the last pyramid 
> app created" logic which is what's finding your support app right now. 
> If this isn't working for you then you should be specifying the 
> section in your scripts. 
>
> On Wed, Jul 22, 2015 at 2:09 PM, Chip Kellam > 
> wrote: 
> > I have defined my config.ini file as such using the paste urlmap 
> guidelines 
> > for creating this type of application: 
> > 
> > [composite:main] 
> > use = egg:Paste#urlmap 
> > / = project 
> > domain developer.domain.com / = dev 
> > domain support.domain.internal / = support   # Internal/VPN-only URL 
> > 
> > [app:project] 
> > use = egg:project 
> > 
> > [app:dev] 
> > paste.app_factory = dev:main 
> > 
> > [app:support] 
> > paste.app_factory = support:main 
> > 
> > 
> > "support" is a new module we just wrote to allow our CSRs to manage data 
> > through a CRUD-style interface.  However, when I added this 3rd app 
> ("dev" 
> > has been there for a while), Pyramid now bootstraps that app in console 
> > scripts INSTEAD of "project".  I can tell because when I run: proutes 
> > config.ini, I see the "support" routes and NOT the "project" routes. 
> > 
> > I'm using the standard: 
> > 
> > from pyramid.paster import bootstrap 
> > env = bootstrap(config_uri) 
> > 
> > I did notice if I monkey patch bootstrap and pass in the app name I 
> want, it 
> > works fine, e.g: 
> > 
> > def bootstrap(config_uri, request=None, options=None, name='main'): 
> > app = get_app(config_uri, name=name) 
> > env = prepare(request) 
> > env['app'] = app 
> > return env 
> > 
> > 
> > Any idea why this would be occurring??  I'd rather not do anything hacky 
> > with the core pyramid code, but this is affecting all of the logic in 
> our 
> > scripts that deal with any custom app configurations. 
> > 
> > Thanks for your help! 
> > 
> > -Chip 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> Groups 
> > "pylons-devel" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> an 
> > email to pylons-devel...@googlegroups.com . 
> > To post to this group, send email to pylons...@googlegroups.com 
> . 
> > Visit this group at http://groups.google.com/group/pylons-devel. 
> > For more options, visit https://groups.google.com/d/optout. 
>

-- 
You received this message because you are subscribed to the Google Groups 
"pylons-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to pylons-devel+unsubscr...@googlegroups.com.
To post to this group, send email to pylons-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/pylons-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [pylons-devel] Paste #urlmap and console scripts don't seem to be working correctly.

2015-07-22 Thread Michael Merickel
Pyramid has no way to know which pyramid app you are referring to in
bootstrap unless you specify the section. As pyramid at a fundamental
level supports running multiple apps in the same process you have to
handle this yourself outside if you need to load a specific app for
your script to run.

The config_uri supports specifying the section without your patch. You
just do bootstrap('development.ini#project'). By default it uses main
of course, and after that it falls back to loading "the last pyramid
app created" logic which is what's finding your support app right now.
If this isn't working for you then you should be specifying the
section in your scripts.

On Wed, Jul 22, 2015 at 2:09 PM, Chip Kellam  wrote:
> I have defined my config.ini file as such using the paste urlmap guidelines
> for creating this type of application:
>
> [composite:main]
> use = egg:Paste#urlmap
> / = project
> domain developer.domain.com / = dev
> domain support.domain.internal / = support   # Internal/VPN-only URL
>
> [app:project]
> use = egg:project
>
> [app:dev]
> paste.app_factory = dev:main
>
> [app:support]
> paste.app_factory = support:main
>
>
> "support" is a new module we just wrote to allow our CSRs to manage data
> through a CRUD-style interface.  However, when I added this 3rd app ("dev"
> has been there for a while), Pyramid now bootstraps that app in console
> scripts INSTEAD of "project".  I can tell because when I run: proutes
> config.ini, I see the "support" routes and NOT the "project" routes.
>
> I'm using the standard:
>
> from pyramid.paster import bootstrap
> env = bootstrap(config_uri)
>
> I did notice if I monkey patch bootstrap and pass in the app name I want, it
> works fine, e.g:
>
> def bootstrap(config_uri, request=None, options=None, name='main'):
> app = get_app(config_uri, name=name)
> env = prepare(request)
> env['app'] = app
> return env
>
>
> Any idea why this would be occurring??  I'd rather not do anything hacky
> with the core pyramid code, but this is affecting all of the logic in our
> scripts that deal with any custom app configurations.
>
> Thanks for your help!
>
> -Chip
>
> --
> You received this message because you are subscribed to the Google Groups
> "pylons-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to pylons-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to pylons-devel@googlegroups.com.
> Visit this group at http://groups.google.com/group/pylons-devel.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"pylons-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to pylons-devel+unsubscr...@googlegroups.com.
To post to this group, send email to pylons-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/pylons-devel.
For more options, visit https://groups.google.com/d/optout.


[pylons-devel] Paste #urlmap and console scripts don't seem to be working correctly.

2015-07-22 Thread Chip Kellam
I have defined my config.ini file as such using the paste urlmap guidelines 
for creating this type of application:

[composite:main]
use = egg:Paste#urlmap
/ = project
domain developer.domain.com / = dev
domain support.domain.internal / = support   # Internal/VPN-only URL

[app:project]
use = egg:project

[app:dev]
paste.app_factory = dev:main

[app:support]
paste.app_factory = support:main


"support" is a new module we just wrote to allow our CSRs to manage data 
through a CRUD-style interface.  However, when I added this 3rd app ("dev" 
has been there for a while), Pyramid now bootstraps that app in console 
scripts INSTEAD of "project".  I can tell because when I run: proutes 
config.ini, I see the "support" routes and NOT the "project" routes.

I'm using the standard:

from pyramid.paster import bootstrap
env = bootstrap(config_uri)

I did notice if I monkey patch bootstrap and pass in the app name I want, 
it works fine, e.g:

def bootstrap(config_uri, request=None, options=None*, name='main'*):
app = get_app(config_uri*, name=name*)
env = prepare(request)
env['app'] = app
return env


Any idea why this would be occurring??  I'd rather not do anything hacky 
with the core pyramid code, but this is affecting all of the logic in our 
scripts that deal with any custom app configurations.

Thanks for your help!

-Chip

-- 
You received this message because you are subscribed to the Google Groups 
"pylons-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to pylons-devel+unsubscr...@googlegroups.com.
To post to this group, send email to pylons-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/pylons-devel.
For more options, visit https://groups.google.com/d/optout.