[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.


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 c...@honey.is 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.


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 ch...@honey.is javascript: 
 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 javascript:. 
  To post to this group, send email to pylons...@googlegroups.com 
 javascript:. 
  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.