[google-appengine] Re: Mail API stops sending email from one admin address, still sends from others
Good catch! Thanks for helping me figure this out! Now to figure out which part of the TOS I am in violation of, if any. -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: Mail API stops sending email from one admin address, still sends from others
Hmm, anyone else? This will become a *serious* issue if it happens again with another address. I'm guessing there must be a logical explanation. Nevin On Oct 21, 8:25 am, Leandro Rezende wrote: > I have the same problem, but in the same google account in different > applications. i dont know what to do. > > when the problem begin to happend, i have to create a new google > application, copy all the data from the old datastore to it, and deploy the > application again. So at the "new" application, it works. Them i delete the > "bugged" application. > > at least u are sending 10k email, i cant send more than 30 and it bugs. > > 2011/10/21 Nevin Freeman > > > > > > > > > My app sends an email to about 10k people every morning (we are a news > > website, and send out an alert that tells people what the new stories > > are). Until today it's worked really well (for over a year). It sends > > from an address that is registered as an admin (since that's required) > > which is not used by anyone other than the app for this purpose. > > > Starting today, calls to the Mail API cause an email to be sent > > *unless* the sender is that address. I noticed this when the daily > > emails weren't actually sent out, and did some testing with the remote > > shell: > > > riabizdev> test_two = mail.EmailMessage(sender='ne...@riabiz.com', > > to='nevin.free...@gmail.com', subject='TEST', body='TEST') > > riabizdev> test_two.send() # Actually works, the email hits my inbox > > > riabizdev> test_two = mail.EmailMessage(sender='f...@riabiz.com', > > to='nevin.free...@gmail.com', subject='TEST', body='TEST') > > riabizdev> test_two.send() # Doesn't throw an error, but no email > > ever makes it > > > The first obvious mishap would be that the emails are getting filtered > > into people's spam folder. I use an invisible image to track email > > opens though, and zero were opened today, as compared to many > > thousands on an average day, so I'm very confident that this isn't the > > problem. I at least know for sure that my test emails never made it to > > my own spam folder. > > > I tried sending out the batch of 10k a few times during the day and > > got nothing. At the end of this testing, I swapped out another admin > > email and it worked fine. Any ideas? > > > Thanks! > > Nevin > > > -- > > You received this message because you are subscribed to the Google Groups > > "Google App Engine" group. > > To post to this group, send email to google-appengine@googlegroups.com. > > To unsubscribe from this group, send email to > > google-appengine+unsubscr...@googlegroups.com. > > For more options, visit this group at > >http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Mail API stops sending email from one admin address, still sends from others
My app sends an email to about 10k people every morning (we are a news website, and send out an alert that tells people what the new stories are). Until today it's worked really well (for over a year). It sends from an address that is registered as an admin (since that's required) which is not used by anyone other than the app for this purpose. Starting today, calls to the Mail API cause an email to be sent *unless* the sender is that address. I noticed this when the daily emails weren't actually sent out, and did some testing with the remote shell: riabizdev> test_two = mail.EmailMessage(sender='ne...@riabiz.com', to='nevin.free...@gmail.com', subject='TEST', body='TEST') riabizdev> test_two.send() # Actually works, the email hits my inbox riabizdev> test_two = mail.EmailMessage(sender='f...@riabiz.com', to='nevin.free...@gmail.com', subject='TEST', body='TEST') riabizdev> test_two.send() # Doesn't throw an error, but no email ever makes it The first obvious mishap would be that the emails are getting filtered into people's spam folder. I use an invisible image to track email opens though, and zero were opened today, as compared to many thousands on an average day, so I'm very confident that this isn't the problem. I at least know for sure that my test emails never made it to my own spam folder. I tried sending out the batch of 10k a few times during the day and got nothing. At the end of this testing, I swapped out another admin email and it worked fine. Any ideas? Thanks! Nevin -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: 1.5.2 SDK Prerelease
For developers facing this issue locally, it may be useful to know that I only was able to access the old local datastore by adding the flag --default_partition= (without any quotes). -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/RAuu4omiwwUJ. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: You cover me, I cover you!
Rudolf: Thanks! I've actually considered migrating all the JS to GWT :) Been a while since I used it though. Ikai: Neat! Just signed up. If I don't get someone here perhaps I'll solicit people on there. On Jun 30, 11:53 am, "Ikai L (Google)" wrote: > You can also look up developers here: > > http://www.appenginepeople.net/ > > (Yes, this is itself an App Engine app!) > > > > > > On Wed, Jun 30, 2010 at 11:43 AM, rudolf michael wrote: > > hi can handle that if it was done using GWT+java backend. > > but i guess that you need to move the whole front end to be implemented > > using GWT, it will become much much faster and the code maintainable and > > clearer. > > > Good job and very nice interface :-) i liked it > > > regards, > > Rudolf Michael > > > On Wed, Jun 30, 2010 at 9:37 PM, Nevin Freeman > > wrote: > > >> Hi all, > > >> I am the sole developer forhttp://riabiz.com, a news website running > >> on App Engine. This is a great gig -- I really like that, thanks to > >> App Engine, one amateur can make a site like this from scratch and > >> keep it running well. > > >> The trouble is that if I am 'off the grid,' there is nobody to tend to > >> the site in the case of some emergency. Summer is in full swing, and I > >> don't really like having to stay within the reach of civilization > >> every single weekend... > > >> So I'm hoping to find someone else who is in the exact same position > >> as I am; the sole developer for an App Engine site that is in > >> production and needs to be maintained. We could learn each other's > >> code well enough so that in an emergency we would be able to cover the > >> other and fix some small bug or something. I think that after an > >> initial learning process we would only need to spend an hour or two > >> each month keeping up with new developments. > > >> Some more info: My app is in Python, uses webapp, and has been in > >> production for almost a year, so there haven;t actually been any > >> "emergencies" for a long time. I work with three other (non-technical) > >> people, and this backup is in large part (but not entirely) for their > >> peace of mind. Since our business is actually becoming valuable, it > >> makes sense to have someone else who understands the code so that in > >> the unlikely case that I get very sick or die or whatever I won't be > >> leaving them with a custom website that nobody understands. > > >> Cheers, > >> Nevin > > >> -- > >> You received this message because you are subscribed to the Google Groups > >> "Google App Engine" group. > >> To post to this group, send email to google-appeng...@googlegroups.com. > >> To unsubscribe from this group, send email to > >> google-appengine+unsubscr...@googlegroups.com >> e...@googlegroups.com> > >> . > >> For more options, visit this group at > >>http://groups.google.com/group/google-appengine?hl=en. > > > -- > > You received this message because you are subscribed to the Google Groups > > "Google App Engine" group. > > To post to this group, send email to google-appeng...@googlegroups.com. > > To unsubscribe from this group, send email to > > google-appengine+unsubscr...@googlegroups.com > e...@googlegroups.com> > > . > > For more options, visit this group at > >http://groups.google.com/group/google-appengine?hl=en. > > -- > Ikai Lan > Developer Programs Engineer, Google App Engine > Blog:http://googleappengine.blogspot.com > Twitter:http://twitter.com/app_engine > Reddit:http://www.reddit.com/r/appengine -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] You cover me, I cover you!
Hi all, I am the sole developer for http://riabiz.com, a news website running on App Engine. This is a great gig -- I really like that, thanks to App Engine, one amateur can make a site like this from scratch and keep it running well. The trouble is that if I am 'off the grid,' there is nobody to tend to the site in the case of some emergency. Summer is in full swing, and I don't really like having to stay within the reach of civilization every single weekend... So I'm hoping to find someone else who is in the exact same position as I am; the sole developer for an App Engine site that is in production and needs to be maintained. We could learn each other's code well enough so that in an emergency we would be able to cover the other and fix some small bug or something. I think that after an initial learning process we would only need to spend an hour or two each month keeping up with new developments. Some more info: My app is in Python, uses webapp, and has been in production for almost a year, so there haven;t actually been any "emergencies" for a long time. I work with three other (non-technical) people, and this backup is in large part (but not entirely) for their peace of mind. Since our business is actually becoming valuable, it makes sense to have someone else who understands the code so that in the unlikely case that I get very sick or die or whatever I won't be leaving them with a custom website that nobody understands. Cheers, Nevin -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Very strange/unpredictable behavior today... need help!
I am getting this error when I load my app on the domain www.riabiz.com: "Error: Server Error The server encountered an error and could not complete your request. If the problem persists, please report your problem and mention this error message and the query that caused it." When I load it on riabizdev.appspot.com, it works, mostly. Now for the odd part: When I load it on www.riabiz.com on another computer right next to me, on the same internet connection, it works perfectly! In Sweden: works on one computer, not on the other In DC: doesn't work In NY: works fine In WA: works fine In CA: works in Chrome, not in IE (!!??) For the ones that don't load, I don't see the request even show up in the logs. I have no idea how to figure out what could be causing this. Ideas? Thanks :) Nevin -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: Google App Engine server down ?
I had similar errors, app completely down, now seems to be back up. On Nov 17, 4:39 pm, arbi wrote: > In fact I canno't even connect to appengine.google.com ! App > completely down :( > > On 17 nov, 16:35, Benjamin wrote: > > > > > Yikes. Server error on my end.https://appengine.google.com/ also > > can't publish updates from eclipse. > > > On Nov 17, 10:34 am, Tim Hoffman wrote: > > > > I am seeing intermittant dashboard failure, transaction timeouts, > > > DeadLineExceededErrors .. > > > > T > > > > On Nov 17, 11:31 pm, Prashant wrote: > > > > > same here... unable to update apps but apps seems to be working fine... -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=.
[google-appengine] Need help understanding an error (not sure if it is my fault or not)
I am getting the following traceback: Traceback (most recent call last): File "/base/python_lib/versions/1/google/appengine/ext/webapp/ __init__.py", line 507, in __call__ handler.get(*groups) File "/base/data/home/apps/riabizdev/1.335829215948087052/ handlers.py", line 197, in get banner_code = models.Banner.get_by_id(int (banner_id)).get_code_and_log_impression() File "/base/data/home/apps/riabizdev/1.335829215948087052/ models.py", line 209, in get_code_and_log_impression self.put() File "/base/python_lib/versions/1/google/appengine/ext/db/ __init__.py", line 725, in put return datastore.Put(self._entity) File "/base/python_lib/versions/1/google/appengine/api/ datastore.py", line 166, in Put raise _ToDatastoreError(err) File "/base/python_lib/versions/1/google/appengine/api/ datastore.py", line 2100, in _ToDatastoreError raise errors[err.application_error](err.error_detail) Timeout And the method in question from models.py is this: def get_text(self): self.counter += 1 self.put() #this is line 209, where the error originates return self.text Is this a common problem that I can do something to avoid? Alternatively, could someone show me the syntax to make this fail gracefully? (I think I've seen an example before, but don't remember where to find it). Thanks in advance-- Nevin Freeman --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Could Mailman run on AppEngine?
Has anyone tried to port Mailman (http://www.gnu.org/software/mailman/ index.html) to run on AppEngine? I'm assuming there would be some major barriers, but I think they might be beyond what I have time for. All comments on the topic welcome! Thanks, Nevin --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: how could you charge users for using your app?
I'm also interested in this topic and can't really find anything out there on how to get started. Any information would be appreciated. Thanks, Nevin On Feb 5, 3:24 am, Sharad wrote: > Alex, > > Is Google Checkout capable of managing subscriptions (as opposed to > one-off payments)? Are there sample scripts/apps that show how Google > Checkout can be integrated with an app engine application. Many > thanks. > > On Jan 30, 11:38 am, Alexander Orlov > wrote: > > > On Jan 29, 8:58 pm, virtual_pm wrote: > > > > what does Google recommend if you wanted tocharge usersusing your > > > application? > > > There are corresponding onlinepaymentservices from PayPal.com and > > Google Checkout (www.google.com/checkout). You can bind the access to > > your SaaS app to the condition to go through one of thesepayment > > services. So the user have to pay a pre-defined amount before he can > > access your service. > > > HTH > > Alex --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Query filter based on the Longitude attribute of a db.GeoPt property
Since starting this thread, I've come up with something slightly similar to what you are suggesting here. Rather than store metadata about both lat and lng, I store a ListProperty of lngs to differing degrees of accuracy, and still use inequalities for latitude. So if you have a point with Lat, Lng = 12.12345678, 40.12345678, my stored "lng-list" property would look like: [40, 40.1, 40.12, 40.123]. This way, based on zoom level (well, actually just based on the size of the viewport, calculated when the query is run), I can query for all of the strips of longitude within my viewport, and then still include a minLat < lat < minLng. This results in a single query up front, but multiple queries behind the scenes, since the viewport will have many longitude strips and thus I will be comparing the lng-list to an array of values. I decide how to divide up the viewport based on the difference in longitude between either edge, and limit the number of strips to 10 (using the larger strips in order to decrease the number). Here is the code for "encoding" and generating the array for the query: import decimal from decimal import Decimal as d import logging def LngList(lng): """returns array of truncated lng strings""" lnglist = [] lnglist.append(__truncate(lng, 0)) lnglist.append(__truncate(lng, 1)) lnglist.append(__truncate(lng, 2)) lnglist.append(__truncate(lng, 3)) return lnglist def ViewportLngs(minLng, maxLng): """returns array of lngs that exist in the viewport, with the right degree of precision""" vislngs = [] dif = abs(maxLng - minLng) if minLng > maxLng: logging.info("minLng: %s maxLng: %s" %(minLng, maxLng)) dif = (180 - minLng) + abs(-180 - maxLng) if dif < .01: vislngs = __makelist(3, minLng, 180) + __makelist(3, -180, maxLng) elif dif < .1: vislngs = __makelist(2, minLng, 180) + __makelist(2, -180, maxLng) elif dif < 1: vislngs = __makelist(1, minLng, 180) + __makelist(1, -180, maxLng) else: logging.error("Viewing both sides of the dateline, zoomed out.") elif dif < .01: vislngs = __makelist(3, minLng, maxLng) elif dif < .1: vislngs = __makelist(2, minLng, maxLng) elif dif < 1: vislngs = __makelist(1, minLng, maxLng) else: # zoomed out case logging.error("The LngList method is being used on a viewport with a range larger than 1 degree.") return vislngs def __makelist(level, minLng, maxLng): """actually populates the list of longs, based on conditions passed in, and accounts for extreme near-zero cases.""" inc = 10**-level lng = __truncate(minLng, level) maxL = __truncate(maxLng, level) vislngs = [lng] while lng != maxL: if lng == 0: return __makelist(level + 1, minLng, maxLng) lng = __truncate(float(lng)+inc, level) vislngs.append(lng) return vislngs def __truncate(num, prec): """truncates the float passed in to _prec_ places after the decimal, and returns it as a string""" result = unicode(d(str(num)).quantize(d("1e%d" % (-prec)), decimal.ROUND_DOWN)) if result == u'-0.0': result = u'0.0' if result == u'-0.00': result == u'0.00' return result This method seems to preform pretty well, though I don't yet have gobs of data. I am able to run a query that returns 3-400 markers and load them all up in less than a second. Unfortunately, this doesn't account for Polylines and Polygons. We're still working on an elegant solution for those, probably similar to your method of storing the grid-boxes each one overlaps. Exploding indexes, here I come. Nevin On Sep 10, 10:11 am, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote: > Thanks for the follow-up. > > I guess one could still use the "geotoken" (my own term) idea, but > only save one token (map-graph-square) per saved point. Then, when > someone searches on a given point, tokenize the search point, search > for anything that shares the same token, and then go back for for data > in the surrounding tokens. In my example, that means 9 DB calls > instead of one, but that's pretty manageable... I don't know how it > scales if you want to have greater variability in your search range, > but you could either define your tokens to cover more ground, or > increase the number of tokens searched. > > Looking at the current quota limits, with 2.5 million datastore > requests per day, I could handle 200,000 searches per day (250,000 * 9 > = 2.45 million), which leaves room for 50,000 posts per day (one > datastore operation per post), all under quota. Once this turns into > a paid service, if I have to pay for more than that, I think I'll be > happy to do so. > > -B > > On Sep 9, 2:52 pm, uprise78 <[EMAIL PROTECTED]> wrote: > > > The exploding index issue can occur with list properties readily. > > > "Properties with multiple values, such as using a list value or a > > ListProperty model, store each value as a separate entry in an index." > > > With a 9 element list you just created 9 indexes. If you expand the > >
[google-appengine] Re: deleting Expando entity dynamic properties [syntax question]
Duh. delattr(myobj, dynamic_prop) # where myobj is an instance of an expando class and dynamic_prop is a string equal to one of the dynamic property names. Nevin On Aug 28, 1:02 pm, Nevin Freeman <[EMAIL PROTECTED]> wrote: > Hi, > > I'm trying to delete a single dynamic property from an Expando > entity, as > perhttp://code.google.com/appengine/docs/datastore/expandoclass.html > The given way to do this is simply: > > del myobj.myprop > > So what I'm looking to do is something like this: > > for dynamic_prop in myobj.dynamic_properties(): > # if statement here... > del myobj.dynamic_prop > > But in this case, dynamic_prop is a string, so myobj.dynamic_prop > throws this error: > > AttributeError: 'super' object has no attribute 'dynamic_prop' > > For storing attributes, I was able to use: > > setattr(myobj, property_name, property_value) # property_name and > property_value are strings > > So the only thing I can think of to do what I want this time would be: > > prop = getattr(myobj, dynamic_prop) > del prop > > But this only deletes the new string created with getattr(), and then > > del getattr(myobj, dynamic_prop) > > Throws the error: SyntaxError: can't delete function call > If anyone can point out the correct way to do this, I would really > appreciate it. > > Thanks, > Nevin --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: GQL Query issue
From: http://code.google.com/appengine/docs/datastore/queriesandindexes.html "The query mechanism relies on all results for a query to be adjacent to one another in the index table, to avoid having to scan the entire table for results. A single index table cannot represent multiple inequality filters on multiple properties while maintaining that all results are consecutive in the table." Nevin On Aug 28, 1:23 pm, Davide Rognoni <[EMAIL PROTECTED]> wrote: > Why this limitation? > > On Aug 28, 10:17 pm, Nevin Freeman <[EMAIL PROTECTED]> wrote: > > > José, > > > Many different workarounds are available, depending on your > > circumstances. The simplest (not ideal) thing to do would be to run > > two queries and then take the intersection of the two results, i.e.: > > > q1 = Model.gql("WHERE prop1 < :1", number1) > > q2 = Model.gql("WHERE prop2 > :1", number2) > > > batch1 = q1.fetch(1000) > > batch2 = q2.fetch(1000) > > result = [] > > > for entity in batch1: > > if entity in batch2: > > result.append(entity) > > > return result > > > If you give us a little more context, maybe people who have similar > > situations can share with you how they have dealt with the limitation. > > In my case, I had to change the way I store my data so that I can get > > the right results with only one inequality operator per query (but > > name equality operators). > > > Nevin > > > On Aug 28, 12:07 pm, fdezjose <[EMAIL PROTECTED]> wrote: > > > > Hello! I'm new in the App Engine world and I've run into an issue > > > that's driving me crazy. I need to compare two properties (ex. > > > propertyA > 4 AND propertyB > 8) But by doing that I've discovered > > > that only one property per query may have inequality filters... Any > > > suggestion or workaround to be able to accomplish this task? > > > > Thanks! > > > > José Luis --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: GQL Query issue
José, Many different workarounds are available, depending on your circumstances. The simplest (not ideal) thing to do would be to run two queries and then take the intersection of the two results, i.e.: q1 = Model.gql("WHERE prop1 < :1", number1) q2 = Model.gql("WHERE prop2 > :1", number2) batch1 = q1.fetch(1000) batch2 = q2.fetch(1000) result = [] for entity in batch1: if entity in batch2: result.append(entity) return result If you give us a little more context, maybe people who have similar situations can share with you how they have dealt with the limitation. In my case, I had to change the way I store my data so that I can get the right results with only one inequality operator per query (but name equality operators). Nevin On Aug 28, 12:07 pm, fdezjose <[EMAIL PROTECTED]> wrote: > Hello! I'm new in the App Engine world and I've run into an issue > that's driving me crazy. I need to compare two properties (ex. > propertyA > 4 AND propertyB > 8) But by doing that I've discovered > that only one property per query may have inequality filters... Any > suggestion or workaround to be able to accomplish this task? > > Thanks! > > José Luis --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] deleting Expando entity dynamic properties [syntax question]
Hi, I'm trying to delete a single dynamic property from an Expando entity, as per http://code.google.com/appengine/docs/datastore/expandoclass.html The given way to do this is simply: del myobj.myprop So what I'm looking to do is something like this: for dynamic_prop in myobj.dynamic_properties(): # if statement here... del myobj.dynamic_prop But in this case, dynamic_prop is a string, so myobj.dynamic_prop throws this error: AttributeError: 'super' object has no attribute 'dynamic_prop' For storing attributes, I was able to use: setattr(myobj, property_name, property_value)# property_name and property_value are strings So the only thing I can think of to do what I want this time would be: prop = getattr(myobj, dynamic_prop) del prop But this only deletes the new string created with getattr(), and then del getattr(myobj, dynamic_prop) Throws the error: SyntaxError: can't delete function call If anyone can point out the correct way to do this, I would really appreciate it. Thanks, Nevin --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---