[pylons-discuss] Cloud 19 tel. 2019-04-08
--- schaufler --- dollfuss multiclienten shop/mandante faehig startup nachaltige mode logistikanbindung logsta https://www.logsta.com/ -- Klein & Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/pylons-discuss/q8fbd8%24oun%241%40blaine.gmane.org. For more options, visit https://groups.google.com/d/optout.
[pylons-discuss] Re: Testing Pyramid Traversal App with ZODB
On 26.02.19 23:28, Gerhard Schmidt wrote: > Am 25.02.2019 um 10:51 schrieb Jens W. Klein: >> On 24.02.19 08:48, Gerhard Schmidt wrote:> Hi, [...]>>> Is there a way to test if a persistent object would be saved when the >>> transaction is committed. >> >> _p_changed is meant as a trigger, but it is not meant to read a status. >> Triggering _p_changed joins the object to a transaction manager which >> then on commit saves the object. > > In the normal code I don't read it, but for testing purposes it would be > quite handy. > >> What your're looking for is probably _p_status which is "saved" or >> "unsaved". > > it's always 'unsaved' while testing, because all objects are brand new > as the database is new for every test. Even after calling > transaction.commit() it's still unsaved. Is there a way to query the > transaction manager if a object is in the to be saved list. Sorry, I am not sure what it means in testing and if the bahvior here is different. >> For dicts/lists Thierry is right, better use >> PersistentList/PersistentDict in order to not to have to trigger >> _p_changed manually. > > For most purposes I use PersistenList/Dict, but first there is no > PersistentSet. PersistenList and PeristentDict (especial PeristentDicts > in a PersistentList) tend to fill the ZODB with many small objects and > remove other from the cache. So I use the not persistent ones when they > don't change often (most of the Time never) but even code that called > once a month or once a year has to be tested. And when _p_changed is not > used often the chance of forgetting increases and testing it is rather > useful. You may want touse the BTrees package https://pypi.org/project/BTrees/ where different kinds of persistent BTrees and persistent Sets are implemented in a very efficient way (also using C-Extension). Documentation at https://btrees.readthedocs.io/en/latest/ hth Jens -- Klein & Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/pylons-discuss/q5qnt6%2465ip%241%40blaine.gmane.org. For more options, visit https://groups.google.com/d/optout.
[pylons-discuss] Re: Testing Pyramid Traversal App with ZODB
On 24.02.19 08:48, Gerhard Schmidt wrote:> Hi, > > I'm writing a pyramid app using traversal and ZODB. Right now i writing > unit tests and try to test if the _p_changed attribute is set after a > method that changes a persistent object. > > The problem is that _p_changed is always False when running in the > testrunner. Even after I do obj._p_changed = True obj._p_changed is > still False. > > In running environment everything works fine. But I often forget the > self._p_changed = True after modifying lists or dicts inside a > persistent object. So i really like to test if it's get set. > > Is there a way to test if a persistent object would be saved when the > transaction is committed. _p_changed is meant as a trigger, but it is not meant to read a status. Triggering _p_changed joins the object to a transaction manager which then on commit saves the object. What your're looking for is probably _p_status which is "saved" or "unsaved". For dicts/lists Thierry is right, better use PersistentList/PersistentDict in order to not to have to trigger _p_changed manually. hth Jens -- Klein & Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/pylons-discuss/q50dqk%2460r4%241%40blaine.gmane.org. For more options, visit https://groups.google.com/d/optout.
[pylons-discuss] Re: Pyramid Registry Creates Too many connections To the Same Server with pysimplesoap
On 14.11.18 17:42, bher...@uniqueinsuranceco.com wrote: > We are using pyramid for our insured portal at Unique Insurance. > We have had great success with pyramid and still use it to this day! > However we have hit a problem, when we use the pyramid.registry and > register an SOAP object to the registry object our server seems to block > us because we are making to many connections to the server. > I have tried using a singleton, which I will try again today. Is there a > way in the registry to force it to only create one instance of the object? [...] I do not know you SOAP Client implementation and can't help in detail here. But recently I had a similar use-case I used the Zeep library https://python-zeep.readthedocs.io/ for our SOAP connections. It is a very cleanly written, well documented and easy to use SOAP client library. It is using the famous Requests library for all HTTP connections. So, it offers all session/connection pooling features Requests has. This really helps getting the number of connections down. hth Jens -- Klein & Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/pylons-discuss/psm7o7%2424s%241%40blaine.gmane.org. For more options, visit https://groups.google.com/d/optout.
[pylons-discuss] Re: WebSockets API Framework Similar To Cornice
On 2018-05-08 02:27, Guillermo Cruz wrote: > > I have a REST API built with Cornice that serves as a Web3 endpoint with > Web3.py. And now I would like to add WebSockets support. > > I'm a total newbie when it comes to WebSockets, so I was wondering if > anyone knows of a simple framework like Cornice or similar but for > WebSockets. I never used this on my own, but since I may have a similar need soon I stubled over "aiopyramid" + its websockets. It looks very promising, is simple and could be worth a try: https://aiopyramid.readthedocs.io/features.html#websockets Jens -- Klein & Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/pylons-discuss/pcs4o7%24l86%241%40blaine.gmane.org. For more options, visit https://groups.google.com/d/optout.
[pylons-discuss] Cornice: define CORS policy in configuration?
I have a small application where I want to configure `cors_origins` different dependent on the server its running on (dev/ staging/ live) without allowing access cross those domains. At the moment I have a policy defined in Python in a base.py, import it and use it in my classes with the enpoint like so: CORS_POLICY = { 'origins': ('*.dev.myserver'.com,), #'origins': ('*.stage.customerserver.com',), #'origins': ('*.livedomain.com',), ..., } --- @resource(path='/api/menu', cors_policy=CORS_POLICY) class Menu(object): def get(self): ... return menu_def --- Question: is there a way to define the `cors_origin` in the INI-files? TIA Jens -- Klein & Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/pylons-discuss/p2vk75%242bt%241%40blaine.gmane.org. For more options, visit https://groups.google.com/d/optout.
[pylons-discuss] Re: Porting a ZOPE (2.13) application into PYRAMID
On 2017-09-14 18:12, roberto@gmail.com wrote: > Hello to everybody, > I have an alive application running in (on) ZOPE 2.13. ... > Since ZOPE is dead, or so it seems (at least as own product), > I'm looking for a little-painful-solution to run away from ZOPE. I do not think Zope is dead. There is a community pushing Zope forward, porting it to Python 3. There were several sprints happening the last years, the last one ended just a few days ago. Zope 4.0 beta1 was released after this sprint. For more information consult https://zope.readthedocs.io/en/latest/changes.html You should consider looking at it, as it may save you lots of work. Jens -- Klein & Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/pylons-discuss/oq09rb%24nm7%241%40blaine.gmane.org. For more options, visit https://groups.google.com/d/optout.
[pylons-discuss] Re: SOAP - spyne
On 2016-04-29 19:36, Andrew Sawyers wrote: > On 4/29/16 8:57 AM, Miguel Branco wrote: >> I need to integrate my aplication with other that only comunicates by >> soap protocol. My application will be de master and the other will be >> consumer. >> >> From what I have been looking it seems that spyne is the most promisse >> using pyramid. I'm correct with this? >> >> Could you point me some examples, using pyramid with soap. > I used suds in my current project that required soap integration; i was > very happy. suds was also my choice and all worked. I found the suds-jurko fork more advanced and used it. Does anybody knows if there is recent activity on the suds code base? Jens -- Klein & Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/pylons-discuss/ng0qc8%24uvn%241%40ger.gmane.org. For more options, visit https://groups.google.com/d/optout.
[pylons-discuss] Re: Traversal over a filesystem
On 2015-08-23 16:24, Mike Orr wrote: > Has anyone used traversal over a filesystem for non-static content? One extension in our "node-family" - node.ext.directory[1] - can be used for filesystem traversal in Pyramid - and we're doing so in a Pyramid based framework written by us called Cone[2]. Here you have full CRUD access to the filesystem. Node abstracts the underlying data as a tree with children and attributes and so we have different node implementations for different cases such as ldap[3], filesystem, zodb[4] and so on. A node can be seen as a unified data access object and container. Data access is always done with x.attrs[key] and childs are accessed by x.[childname]. independent if its ldap, zodb, filesystem or a custom sqlalchemy based node implemenation. [1] https://github.com/bluedynamics/node.ext.directory [2] https://github.com/bluedynamics/cone.app [3] https://github.com/bluedynamics/node.ext.ldap [4] https://github.com/bluedynamics/node.ext.zodb hth Jens -- Klein & Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. Visit this group at https://groups.google.com/group/pylons-discuss. For more options, visit https://groups.google.com/d/optout.
[pylons-discuss] Re: dynamic domain cookie with authtkt?
On 2016-02-19 19:32, Bert JW Regeer wrote: > AuthTktAuthenticationPolicy by default pulls the domain out of the the WSGI > environment using WebOb. If you leave the domain setting blank, it should do > the right thing, so long as your WSGI server correctly sets up the HTTP_HOST > environment variable. Thanks for the hint, unfortunately the header this company reverse proxy sets is different and there is no HTTP_HOST set. And since its a bigger company its outside of projects scope to change this *shrug*. Making the header used configurable would help... best Jens > Bert > >> On Feb 19, 2016, at 07:18, Jens W. Klein <j...@bluedynamics.com> wrote: >> >> I fear did get all the details of authtkt in pyramid.authentication. >> >> I have a Pyramid based service authenticating users against LDAP in >> order to grant them access to a webservice. >> >> Until know the service was only for one domain valid. There is a reverse >> proxy in front and I may fetch the domain from the "X-Forwarded-For" >> header. >> >> But since domain is set usually on service startup/configuration time I >> hard coded the domain name in the ini-file and set it like so:: >> >>authn_policy = AuthTktAuthenticationPolicy( >>secret=settings.get('auth.secret'), >>cookie_name=settings.get('auth.cookie_name'), >>hashalg=settings.get('auth.hashalg'), >>callback=groupfinder, >>domain=settings.get('auth.cookie.domain'), >>) >>config.set_authentication_policy(authn_policy) >> >> >> From now on I need to have the domain dynamic based on the header >> mentioned above (cookie has to be valid mutually exclusive for: 'foo.de' >> or 'bar.de'). >> >> Looking at pyramid.authentication and AuthTKTHelper I did not find an >> easy way to plug in a callable or something dynamic to get the domain >> for the cookie. >> >> What I did - and what works fine - is to patch the domain attribute on >> AuthTKTHelper like so:: >> >> def _domain_getter(self): >>req = get_current_request() >>return req.headers.get('X-Forwarded-Server', 'localhost') >> >> >> def _domain_setter(self, value): >>pass >> >> >> _domain_patch = property(fget=_domain_getter, fset=_domain_setter) >> >> # patch pyramid.authentication.AuthTktCookieHelper >> AuthTktCookieHelper.domain = _domain_patch >> >> >> But in my opinion this is far from elegant or pluggable. Did I miss >> something? Is there a better method to achieve the same goal? >> >> regards Jens >> -- >> Klein & Partner KG, member of BlueDynamics Alliance >> >> -- >> You received this message because you are subscribed to the Google Groups >> "pylons-discuss" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to pylons-discuss+unsubscr...@googlegroups.com. >> To post to this group, send email to pylons-discuss@googlegroups.com. >> Visit this group at https://groups.google.com/group/pylons-discuss. >> For more options, visit https://groups.google.com/d/optout. > -- Klein & Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. Visit this group at https://groups.google.com/group/pylons-discuss. For more options, visit https://groups.google.com/d/optout.
[pylons-discuss] dynamic domain cookie with authtkt?
I fear did get all the details of authtkt in pyramid.authentication. I have a Pyramid based service authenticating users against LDAP in order to grant them access to a webservice. Until know the service was only for one domain valid. There is a reverse proxy in front and I may fetch the domain from the "X-Forwarded-For" header. But since domain is set usually on service startup/configuration time I hard coded the domain name in the ini-file and set it like so:: authn_policy = AuthTktAuthenticationPolicy( secret=settings.get('auth.secret'), cookie_name=settings.get('auth.cookie_name'), hashalg=settings.get('auth.hashalg'), callback=groupfinder, domain=settings.get('auth.cookie.domain'), ) config.set_authentication_policy(authn_policy) >From now on I need to have the domain dynamic based on the header mentioned above (cookie has to be valid mutually exclusive for: 'foo.de' or 'bar.de'). Looking at pyramid.authentication and AuthTKTHelper I did not find an easy way to plug in a callable or something dynamic to get the domain for the cookie. What I did - and what works fine - is to patch the domain attribute on AuthTKTHelper like so:: def _domain_getter(self): req = get_current_request() return req.headers.get('X-Forwarded-Server', 'localhost') def _domain_setter(self, value): pass _domain_patch = property(fget=_domain_getter, fset=_domain_setter) # patch pyramid.authentication.AuthTktCookieHelper AuthTktCookieHelper.domain = _domain_patch But in my opinion this is far from elegant or pluggable. Did I miss something? Is there a better method to achieve the same goal? regards Jens -- Klein & Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. Visit this group at https://groups.google.com/group/pylons-discuss. For more options, visit https://groups.google.com/d/optout.
[pylons-discuss] Re: How to use Single Sign-On (SSO) with pyramid
On 2016-02-10 13:15, Sami Pietilä wrote: [...] > How can I authenticate user against external SSO in pyramid app? Pyramid > docs search gave nothing when I tried with "single sign-on" or "SSO". As already commented SSO is a generic concept. If youre SSO is OpenID, OAuth1 or OAuth2 there is the really good package Authomatic http://peterhudec.github.io/authomatic/examples/pyramid-simple.html around which solves this very clean. Jens -- Klein & Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. Visit this group at https://groups.google.com/group/pylons-discuss. For more options, visit https://groups.google.com/d/optout.
[pylons-discuss] Re: What do you use for storage abstraction
I'am not sure if this helps, but if it comes to file system abstraction I really like to use 'fs' https://pypi.python.org/pypi/fs http://docs.pyfilesystem.org/en/latest/ But it does not help with the pyramid/upload/web part - its just a powerful file system abstraction layer/ api hth Jens On 2015-12-19 20:10, Rachid Belaid wrote: > Hi, > > For file storage abstraction, I used few times pyramid_storage and it > did it the job.. > > Recently I tried filedepot because I wanted something which can be > initialised outside the registry but I hit few problems: > - Dislike the global setup > - Require a bit of plumbing to play nice with ini file > - If you don't use s3 then the local storage make serving files through > nginx (or other) a bit challenging due to the way that it's stored. > > I'll get back to use pyramid storage but I thought that I would ask what > you are using on your projects? > > Thanks. -- Klein & Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. Visit this group at https://groups.google.com/group/pylons-discuss. For more options, visit https://groups.google.com/d/optout.
[pylons-discuss] Re: What do folks use for build tools? (buildout alternatives?)
On 2015-07-21 01:05, Iain Duncan wrote: Hi, we're embarking on a project that will stitch together many apps, and I figured I should do my due diligence on hunting for the state-of-the-nation in python build tools. I've personally used buildout in the past and liked it, but I know for other team members something that was more pip/virtualenv based would be preferable. Just curious what folks are using? I use primary zc.buildout. It is really powerful, but also complex. I love the swiff-knife like features. But for a smaller project I recently used just pip, requirements.txt and make. It really depends on the projects complexity. Jens -- Klein Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups pylons-discuss group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. Visit this group at http://groups.google.com/group/pylons-discuss. For more options, visit https://groups.google.com/d/optout.
[pylons-discuss] Re: Pyramid translation do Brazilian Portuguese
On 2014-08-18 20:06, Chris McDonough wrote: On 08/18/2014 02:03 PM, Ivan Neto wrote: Hi (sorry for the crossposting), I am part of the Pyramid Brazilian community, and we are planning to translate Pylons project docs, starting with Pyramid, to Brazilian Portuguese. I would like to know how can we start it. Should we create a new repository and put the portuguese docs there or are there some existing repo we can mess with? Thanks for giving this a shot! There are no repos for docs translation in the Pylons project. I'm not entirely sure what to suggest for this. Anyone have any ideas? You may want to look at the new Plone documentation (its also sphinx-based). The doc-team did some awesome work, also (but not only) in making it translatable using transifex. https://www.transifex.com/projects/p/MLS_Plone/ Read also the section in the styleguide http://docs.plone.org/about/styleguide.html#line-length-translations hth Jens -- Klein Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups pylons-discuss group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. Visit this group at http://groups.google.com/group/pylons-discuss. For more options, visit https://groups.google.com/d/optout.
[pylons-discuss] Re: Traversal root path
On 2014-05-20 09:00, uralbash wrote: Hello, I'm trying to go to home page (http://localhost:6543/) through traversal. What should be the key of context to traversal choice it? Root is not a key in the dict: the dict object itself is root (context). So the root is a dict - or dict-like - and all 'contained' are fetched by calling __getitem__ on root (and for subpaths on the subobjects, it's a tree). HTH Jens config.add_route('pages_view', '/*traverse', factory='sacrud_pages.routes.root_factory') My context {'': About company, 'foo12': foo12} 1) http://localhost:6543/ - not choice About company PATH_INFO = '/' PATH_INFO.split('/') ['', ''] 2) http://localhost:6543/foo12 - It OK (choice foo12) PATH_INFO = '/foo12' PATH_INFO.split('/') ['', 'foo12'] -- Klein Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups pylons-discuss group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. Visit this group at http://groups.google.com/group/pylons-discuss. For more options, visit https://groups.google.com/d/optout.
[pylons-discuss] Re: Pyramid with traversal an BTree
Hi, just how we are using BTrees and traversal. I hope it may help or give inspirations. We developed zodict[1][2] and are using it with great success in pyramid applications together with node.ext.zodb[4][5] (which is based on zodict) as the foundation for traversal based applications. For a ZODB Storage for (lots of) searchable (light weight) data we developed souper[5][6], but it does not target on traversal (so maybe OT here, just to to paint the whole picture). [1] https://github.com/bluedynamics/zodict [2] https://pypi.python.org/pypi/zodict [3] https://github.com/bluedynamics/node.ext.zodb [4] https://pypi.python.org/pypi/node.ext.zodb/1.0 [5] https://github.com/bluedynamics/souper [6] https://pypi.python.org/pypi/souper HTH Jens On 2013-12-24 10:39, Gerhard Schmidt wrote: Hi i'm building a web application based on pyramid and traversal in a ZODB. So far it's working fine with Container derived from Persitent Mapping. But some containers will get many children so i'm trying to use a BTree based Container. So far no success. I've tried from BTrees.OOBTree import BTree from persistent import Persistent class container(BTree, Persistent) I'ts working but changes don't geht stored in the zodb. I there a example how to do this out there or can someone get mit a Hint what im missing. Regards Estartu -- You received this message because you are subscribed to the Google Groups pylons-discuss group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. Visit this group at http://groups.google.com/group/pylons-discuss. For more options, visit https://groups.google.com/groups/opt_out. -- Klein Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups pylons-discuss group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. Visit this group at http://groups.google.com/group/pylons-discuss. For more options, visit https://groups.google.com/d/optout.
[pylons-discuss] Re: Starting Background Thread with zodb
On 2014-03-18 14:39, Gerhard Schmidt wrote: On 18.03.2014 14:08, Chris Rossi wrote: It should start its own connection via the standard ZODB API. You might consider moving the extra work to a different process. Redis pub/sub or list objects are good ways to communicate and set up a primitive, simple queue. I prefer that to more complex queue/messaging frameworks. YMMV. Right now I have no ZEO running. In Production there will be a ZEO but while developing a ZEO server simply adds to complexity and makes debugging even more pain in the ass. Well, really? A ZEO-Client-Server in development enables you to connect with two threads, i.e. one debugging console, one serving requests. I prefer this way of debugging. But yes - the zeoserver needs to be started, thats all. Using buildout setup/configuration is very easy. It might solve me problem if I could start a worker thread at application start an send the task via queue there but there is still the problem to get a thread with access to the zodb started. I know that it's possible to use one ZODB connection in multiple threads, Zope does it and pyramid does it. The question is how to fork a new subconnection or transaction and pass it to the new thread. Using ZEO and if youre running exact one worker thread: Let the request-process(s) store the tasks in the ZODB and fetch it task by task in a worker process. Dont forget to keep transaction (begin to commit) time at both, request and worker, as short as possible to avoid database conflicts. If you need more than one worker there are solutions around AMQP (i.e. rabbitmq) or redis helping you with queue management. I used such only with Zope2 so far, but the principle is very basic. So I'am sure it works in a pyramid environment well. regards Jens Regards Estartu -- Klein Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups pylons-discuss group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. Visit this group at http://groups.google.com/group/pylons-discuss. For more options, visit https://groups.google.com/d/optout.
[pylons-discuss] Re: passwords in .ini files?
Hi Chris, we're using buildout for our setups here and are generating the config files using collective.recipe.template. Now the usernames, passwords and other dynamic elements are in buildout.cfg - no advantage so far. But: We are using a base.cfg and then inheriting dev.cfg, rc.cfg and live.cfg from it. On the actual server we're creating a minimal (few lines) non-version controlled buildout.cfg, just inheriting from one of the three targets flavors, and putting the password in there. I hope there we're a simpler solution, but its works fine anyway. regards Jens On 2014-02-27 09:03, Chris Withers wrote: Hi All, I'd like to source control my .ini configs, but they have a sqlalchemy url in them which contains a username and password. Obviously, I don't want those in source control. What's the best practice for handling this situation? cheers, Chris -- Klein Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups pylons-discuss group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. Visit this group at http://groups.google.com/group/pylons-discuss. For more options, visit https://groups.google.com/groups/opt_out.
Re: AngularJS and Pyramid: Directory Structure
On 2013-07-25 22:00, Raoul Snyman wrote: Hi folks, I'm starting a project using AngularJS, and I was wondering what others using AngularJS do for directory structure? Do you follow the app/, etc. directories used by AngularJS? I started with my own directory structure, but things don't seem to want to work nicely. I'm trying to use AngularJS UI/bootstrap. We are using gruntjs with a bunch of plugins to merge all js and lesscss from an outside-the-egg location to the eggs target directories. So in deployment the structure is reduced to some files. In development the default angularjs structure is kept and symlinked only for developement/debugging purposes to the egg structure. hth Jens -- Klein Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups pylons-discuss group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. Visit this group at http://groups.google.com/group/pylons-discuss. For more options, visit https://groups.google.com/groups/opt_out.
Re: Pyramid authentication and rest api
On 2013-05-15 17:16, tonthon wrote: Hi, one of our web applications based on pyramid is actually handling authentication through the SessionAuthenticationPolicy. We've built a rest API that's reached by ajax calls. We'd like to use the same one from a kivy based application. Any idea how we could cleanly implement the authentication part ? I use pyramid_multiauth and an own oauth2 authentication policy. This works fine Jens -- Klein Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups pylons-discuss group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. Visit this group at http://groups.google.com/group/pylons-discuss?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
Re: Pyramid routing resolver error
On 2013-04-29 12:46, Andreas Jung wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 huh? Why should I have one route for two completely different functionalities and make a decision on the view to call further down the road? Does not make sense In pyramid you configure one route and then make a difference based on the predicates in the view_config whats used to render the route. Thus you can define two or more different views i.e. based on http-method. I used this for rest APIs already, so a get, put and delete all are different views on the same route. Otherwise you could skip the add_route at all and define it in the view_config. Then it would not makes sense :/ hth Jens Andreas Joel Kaiser wrote: Hi, I don't know why you are using two different routes for the same url. You can delete your 'journal_delete_entry_api' and use your 'journal_entry_api' in your delete view. Joel 2013/4/29 Andreas Jung li...@zopyx.com mailto:li...@zopyx.com Hi there, running Pyramid 1.4.1 with the following two routes: config.add_route( 'journal_entry_api', '/api/user/{username}/journal/{entryid}', factory=UserFactory, traverse='/{username}/dailyjournal/{entryid}') config.add_route( 'journal_delete_entry_api', '/api/user/{username}/journal/{entryid}', factory=UserFactory, traverse='/{username}/dailyjournal/{entryid}') The related views are defined as @view_config(route_name='journal_entry_api', renderer=json, request_method=GET, permission=VIEW_DAILY_JOURNAL) def daily_journal_entry_api(self):. @view_config(route_name='journal_delete_entry_api', permission=MANAGE_DAILY_JOURNAL, request_method='DELETE', renderer='json') def api_delete_blog_entry(self): Both views are called through the same URL - only the request method GET vs. DELETE differs...in theory this is supposed to work. But in real life a GET request to http://localhost:8080/api/user/my-id/journal/i2uz3i13zi123z1i leads to a 404 error. Changing the path configuration of the first route from '/api/user/{username}/journal/{entryid}' to let's say '/api/user/{username}/journal2/{entryid}' fixes the problemthere must be some problem in the route configuration resolver for routes having the same path specs... or am I missing something? Andreas -- You received this message because you are subscribed to the Google Groups pylons-discuss group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com mailto:pylons-discuss%2bunsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com mailto:pylons-discuss@googlegroups.com. Visit this group at http://groups.google.com/group/pylons-discuss?hl=en. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups pylons-discuss group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. Visit this group at http://groups.google.com/group/pylons-discuss?hl=en. For more options, visit https://groups.google.com/groups/opt_out. - -- ZOPYX Limited | Python | Zope | Plone | MongoDB Hundskapfklinge 33| Consulting Development D-72074 Tübingen | Electronic Publishing Solutions www.zopyx.com | Scalable Web Solutions - -- Produce Publish - www.produce-and-publish.com -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.11 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQGUBAEBAgAGBQJRfk+XAAoJEADcfz7u4AZjITULviNCkc9W9W7SNKsUJhxukzc0 C4/XUY66joGqvBDiFajGoNTSjQmnLcTsze+L4Ce4PBypwd/peJIS+6pd6dXJxZzt Yu1QaJ3cIqjU5742GkN0/+70M4WZOPjdQ/dqSBUTnx4jkpiT8RmQlYyjPfTQuM2J umuT00XnPmzh+YlqdLTHVJetBhNJBFd45WwJx8SJBsk4cb2NtdZ0a4ERchxKNtbN AKNSfhR1dqZ+gDtUIWgcWWt+IVToRB7qqaWDyVPEaDcsaZeenH3nz7Vanun2wE7b qYR6LADA8DwSrwJzgGBOagSjznFZSxwFjndpuiN+CCVTB7jKswPTlSlMirU7n8Bw oJBps4AJkXy1jsRUm+jUzpdoGu598kHLadvk2S26Rf//eOrQzEgaMMIEHr/dsbY2 NQXvf8HltBIfsYbgGVqfE+ai8MKmz61mbHyklkswf6GKmTWn/h8nZB5H3t0KZo36 lMetfznrky9noISVbugAe0bnGV7G3Iw= =0oNo -END PGP SIGNATURE- -- Klein Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups pylons-discuss group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. Visit this group at http://groups.google.com/group/pylons-discuss?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
Re: response from a string ?
On 2013-04-29 23:37, John Anderson wrote: On Mon, Apr 29, 2013 at 2:24 PM, Jonathan Vanasco jonat...@findmeon.com mailto:jonat...@findmeon.com wrote: what's the best way to create a response from a string ? it's not a file to serve or a template to render. it's driving me a bit crazy trying to figure out a simple/idiomatic way to do this. ( i can do it in a complex , obtuse way that will be a pain to maintain ) Are you looking for something other than: from pyramid.response import Response return Response(Hey!) documented here: https://pyramid.readthedocs.org/en/latest/narr/views.html#view-callable-responses Jens -- Klein Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups pylons-discuss group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. Visit this group at http://groups.google.com/group/pylons-discuss?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
Re: Pyramid, App Engine, Buildout and Nose Tests
Hi Raoul, this works for me too now! Thanks for the hint! Jens On 2013-03-08 13:20, Raoul Snyman wrote: Ah, solved! I threw out pbp.recipe.noserunner in favour of zc.recipe.egg, and now things are working. Updated configuration so that others can get nose working with pyramid_appengine (nsupport is the project name): [nosetests] recipe = zc.recipe.egg eggs = nose nosegae nsupport extra-paths = ${buildout:directory}/parts/nsupport ${buildout:directory}/parts/google_appengine ${buildout:directory}/parts/google_appengine/lib/fancy_urllib ${buildout:directory}/parts/google_appengine/lib/yaml/lib -- Klein Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups pylons-discuss group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. Visit this group at http://groups.google.com/group/pylons-discuss?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
Re: Pyramid, App Engine, Buildout and Nose Tests
Hi Raoul, I'am using pyramid on appengine and tried a lot to get NoseGAE http://farmdev.com/projects/nosegae/ running, but finally failed. I'am using a buildout, which I described here in its base: https://github.com/jensens/pyramid-gae-tutorial I ended up using my own testrunner, but I'am not that happy with this solution, because it feels like reinventing the wheel. The gist below contains the main elements of my testrunner, hope that help a bit. https://gist.github.com/jensens/5092543 If you find a better solution it would be great if you can tell me. I also would like to enhance the pyramid-gae-tutorial example with a working solution. best regards Jens On 2013-03-05 11:12, Raoul Snyman wrote: Hi guys, I used the pyramid_appengine module and buildout to create a Pyramid app running on App Engine. Now that I have a minimum viable system I'm trying to add tests to the project using Nose, but it's not quite working. I'm using the pbp.recipe.noserunner recipe for Nose, but it doesn't seem to be pulling in all the dependencies necessary for Pyramid and my app. Here's the error I get when running the nosetests generated script (which may or may not be correct, I've messed with it to get it this far): [...] -- Klein Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups pylons-discuss group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. Visit this group at http://groups.google.com/group/pylons-discuss?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
pyramid_layout: slots and macros in panels
pyramid_layout is a handy addon i like very much. Unfortunately chameleon zpts macros and fill-slots of the master template are not available in a panel. Is it technically possible to make it work? Is there any good argument why it shall not work that way? tia Jens -- You received this message because you are subscribed to the Google Groups pylons-discuss group. To view this discussion on the web visit https://groups.google.com/d/msg/pylons-discuss/-/_VEh92mqtFcJ. To post to this group, send email to pylons-discuss@googlegroups.com. To unsubscribe from this group, send email to pylons-discuss+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/pylons-discuss?hl=en.
Re: Chameleon on Google App Engine
Am Dienstag, 11. Dezember 2012 01:59:57 UTC+1 schrieb Michael Lenaghan: I'm starting to put together a Pyramid-based app that's meant to run on Google App Engine. I'd like to be able to use Chameleon for templates, but I've seen reports of it being slow in that environment. The problem is that the reports I've come across all seem to be a couple of years old; in the meantime Google has introduced the 2.7 runtime (with some key bytecode modification changes: https://developers.google.com/appengine/docs/python/python25/diff27#Bytecode_Modification), and Chameleon itself has continued to evolve. My question, then, is this: does anyone know if Chameleon is competitive with Jinja2 *on App Engine*? Slightly OT (I did not benchmark it) but to make it work with the local developemt app-server running in debug mode I had to do the following tweak: # disable chameleon debug module loader, gae does not allow tempdirs import chameleon.template from chameleon.loader import MemoryLoader chameleon.template._make_module_loader = MemoryLoader chameleon.template.BaseTemplate.loader = MemoryLoader() hth anyway Jensens -- You received this message because you are subscribed to the Google Groups pylons-discuss group. To view this discussion on the web visit https://groups.google.com/d/msg/pylons-discuss/-/aDxLqwfkKwkJ. To post to this group, send email to pylons-discuss@googlegroups.com. To unsubscribe from this group, send email to pylons-discuss+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/pylons-discuss?hl=en.
Re: Good form library for pyramid ? Better doing it by hand ?
Am Dienstag, 11. Dezember 2012 17:03:16 UTC+1 schrieb Nicolas Di Pietro: Hi Jensens, This sounds nice, but, reading the doc (a bit fast, I've to admit) it sounds like to define new widgets, you have to define it using YAML, right ? No, you do not need any YAML - it is only an option for those who do not like to write forms in python. Writings forms in YAML is also not in YAFOWIL core, it is only an addon for yafowil. hth Jens Thank you for your previews answer Regards, Nicolas Le vendredi 7 décembre 2012 16:48:45 UTC+1, Jens W. Klein a écrit : Anyway, not that popular yet, but I recommend to use YAFOWIL for forms in pyramid. Ok, I'am biased, because I'am one of the authors. Include the yafowil.webob and yafowil.bootstrap packages and get started. Dcumentation and live-example are at http://yafowil.info Example registration form here: http://pastebin.com/GFqrZj0r template has to have i.e. div class=row div class=span12 h1Register/h1 ${structure: view.form()} /div Questions? Just ask. I try to help. regards Jensens -- You received this message because you are subscribed to the Google Groups pylons-discuss group. To view this discussion on the web visit https://groups.google.com/d/msg/pylons-discuss/-/8GjwRQZVkw0J. To post to this group, send email to pylons-discuss@googlegroups.com. To unsubscribe from this group, send email to pylons-discuss+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/pylons-discuss?hl=en.
Re: Good form library for pyramid ? Better doing it by hand ?
Anyway, not that popular yet, but I recommend to use YAFOWIL for forms in pyramid. Ok, I'am biased, because I'am one of the authors. Include the yafowil.webob and yafowil.bootstrap packages and get started. Dcumentation and live-example are at http://yafowil.info Example registration form here: http://pastebin.com/GFqrZj0r template has to have i.e. div class=row div class=span12 h1Register/h1 ${structure: view.form()} /div Questions? Just ask. I try to help. regards Jensens -- You received this message because you are subscribed to the Google Groups pylons-discuss group. To view this discussion on the web visit https://groups.google.com/d/msg/pylons-discuss/-/0Tkr0heyflcJ. To post to this group, send email to pylons-discuss@googlegroups.com. To unsubscribe from this group, send email to pylons-discuss+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/pylons-discuss?hl=en.
Re: Pyramid with GAE error
On 2012-10-05 04:56, Jacob Hite wrote: Thanks Alejandro for the tip. Indeed things work well with pyramid 1.3. Not so well with 1.4. I run in similar problems with 1.4 and tried to fix them. Even if not tested in-depth, here are my working results. https://github.com/jensens/pyramid-gae-tutorial comments and further help is welcome. hth anyone Jens On Wed, Oct 3, 2012 at 6:15 AM, Alejandro Jatib aja...@gmail.com wrote: Thanks Thomas. I solve this issue deleting all files and creating a brand new virtualenv with a new installation of pyramid_appengine (a few week ago with pyramid 1.4 this not work, but with 1.3.4 yes) I not understand deeply how buildout works but i can do the salad with buildout/appengine/pyramid and works fine! Alejandro El miércoles, 26 de septiembre de 2012 13:23:16 UTC-3, Thomas G. Willis escribió: I suppose the explanation for what you are doing(or should be) should go here then to make it more obvious. http://docs.pylonsproject.org/projects/pyramid_cookbook/en/latest/deployment/gae_buildout.html#bootstrap-the-buildout ~/ $ cd newproject ~/newproject $ /usr/bin/python2.7 bootstrap.py --distribute pyramid_appengine merely generates a buildout directory based on templates, once the project is generated, it's does not have pyramid_appengine as a dependency. installing pyramid/associated libs like pyramid_appengine in a virtualenv is generally good practice so that you avoid polluting your system install of python maybe it's a miss on the expected experience level of the reader. If I documented why you should use buildout and why you should use virtualenv and why appengine apps are structured the way they are it would be very long documentation that would be quickly out of date because it would have to be copied from other sources. So I'm open to suggestions on how to make this bit clearer, but I'm not too keen on documenting virtualenv, appengine apps and buildout. especially since all 3 are in a state of flux at the moment. Thomas G. Willis On Tue, Sep 25, 2012 at 2:25 AM, Jacob Hite jrh...@gmail.com wrote: I've encountered the same problem. The pyramid docs here specifically document using virtualenv and buildout together. Docs should probably be fixed... http://docs.pylonsproject.org/projects/pyramid_cookbook/en/latest/deployment/gae_buildout.html On Sun, Sep 16, 2012 at 10:05 PM, Thomas G. Willis tom.w...@gmail.com wrote: As far as I know, buildout and virtualenv dont play well together. buildout and virtualenv do share some of the same goals such as isolating your development environment libraries from your system. there's no reason I can think of to use both. I would suggest trying to bootstrap the buildout with the system python2.7. like so $ /usr/bin/python2.7 bootstrap.py --distribute ./bin/buildout If that doesn't work, file an issue @ https://github.com/Batterii/pyramid_appengine/issues and I'll see if I can help you out. On Saturday, September 15, 2012 11:43:41 PM UTC-4, Alejandro Jatib wrote: Hi guys, I'm making a new project with pyramid_appengine (I have a few other and these are working fine) and when i try to buildout a skeleton empty project i have this error: . rod.recipe.appengine: Google App Engine distribution already downloaded. While: Installing mascotanube. An internal error occurred due to a bug in either zc.buildout or in a recipe being used: Traceback (most recent call last): File /Users/alejandro/Development/Python/enviroments/mascotanube/mascotanube/eggs/zc.buildout-1.6.3-py2.7.egg/zc/buildout/buildout.py, line 1852, in main getattr(buildout, command)(args) File /Users/alejandro/Development/Python/enviroments/mascotanube/mascotanube/eggs/zc.buildout-1.6.3-py2.7.egg/zc/buildout/buildout.py, line 618, in install installed_files = self[part]._call(recipe.install) File /Users/alejandro/Development/Python/enviroments/mascotanube/mascotanube/eggs/zc.buildout-1.6.3-py2.7.egg/zc/buildout/buildout.py, line 1327, in _call return f() File /Users/alejandro/Development/Python/enviroments/mascotanube/mascotanube/eggs/rod.recipe.appengine-2.0.0-py2.7.egg/rod/recipe/appengine/__init__.py, line 327, in install self.copy_packages(ws, temp_dir) File /Users/alejandro/Development/Python/enviroments/mascotanube/mascotanube/eggs/rod.recipe.appengine-2.0.0-py2.7.egg/rod/recipe/appengine/__init__.py, line 234, in copy_packages self.write_pkg_resources(ws, lib) File /Users/alejandro/Development/Python/enviroments/mascotanube/mascotanube/eggs/rod.recipe.appengine-2.0.0-py2.7.egg/rod/recipe/appengine/__init__.py, line 217, in write_pkg_resources assert len(setuptools_eggs) == 1, setuptools not found AssertionError: setuptools not found Any suggestion? I use virtualenv and I have setuptools installed in the same virtualenv. Thanks! -- Klein Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups