[google-appengine] Re: loading a model by key

2008-11-19 Thread russ.au

That works, thanks Alexander!

It also works without the db.Key:
model = MyModel.get(key)

The relevant references - of course it was all there in front of me:
http://code.google.com/appengine/docs/datastore/modelclass.html - Note
get() is a CLASS method
http://code.google.com/appengine/docs/datastore/keyclass.html - The
string-encoded key can be converted back to a Key object by passing it
to the Key constructor 


On Nov 19, 5:31 pm, Alexander Kojevnikov [EMAIL PROTECTED]
wrote:
  Aw, man... typed that wrong, i am doing:
  model = MyModel.get(key)

  So this _should_ work with the string I'm getting from the
  querystring?

 Try this:

 model = MyModel.get(db.Key(key))
--~--~-~--~~~---~--~~
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: User login problem

2008-11-19 Thread Giacomo Cucciati

Thank you!
Now it works without the user login!
I had an old library that didn't allow me to use that method!

Thank you again!!!


On 14 Nov, 18:36, Jeff S [EMAIL PROTECTED] wrote:
 Hi Giacomo,

 I think I've spotted the issue. The appendix section in this article
 explains how to use ClientLogin on App Engine:

 http://code.google.com/appengine/articles/gdata.html

 If you change your run_on_appengine call to this, you should be able
 to get the documents feed without requiring the end user to sign in:

 gdata.alt.appengine.run_on_appengine(gd_client,
     store_tokens=False, single_user_mode=True)

 With that change you can remove the auto-signin code which you pointed
 out above. You should no longer need to check to see if the user is
 signed in to your app.

 Happy coding,

 Jeff

 On Nov 14, 2:47 am, Giacomo Cucciati [EMAIL PROTECTED]
 wrote:

  Hi Jeff!

  Ok! The application is similar to which you have described.
  A web page should show my documents list (the title of the documents)
  and each item of the list is a link to the an other web page that
  embeds the document content. Everyone should be able to view my list
  and the contents (it should be public).

  I'll try to explain better myproblem:)

  To retrive my document list and the documents contents, an external
  user has to know my global account's credentials. As you have said i
  have embedded them in the code so theoretically everyone can see the
  document list... here it is the code:

                 gd_client = gdata.docs.service.DocsService()
                 gdata.alt.appengine.run_on_appengine(gd_client)
                 gd_client.ClientLogin('my-
  [EMAIL PROTECTED]','mypassword')
                 feed = gd_client.GetDocumentListFeed()

  Thanks to the feed i can obtain everything about the documents.

  Theproblemis: when someone tries to enter in this web page an error
  page occours with this message: Authorization required.
  Apparently the application required the user to be logged in. Infact
  when i have inserted first of all in the code aloginto the app
  through the method explained in the Getting started guide: Using the
  Users Service...

      user = users.get_current_user()

      if user:
        self.response.out.write(template.render('mySite.html',values))
      else:
        self.redirect(users.create_login_url(self.request.uri))

  ...it started working! But in this way, if an external user runs my
  application, it asks him tologinwith his google account and then he
  redirect to my web page and he really is able to view my document list
  and doc contents.
  So my application isn't public because a google account (and alogin
  to my app) is required.

  I think that a solution could be avoiding thisloginor create a fake
  user (with mail and pass already inserted in the code) but i haven't
  found a way to do this.

  I hope it's a bit clear now.
  I don't know where theloginrequest comes from. There isn't a
 login:required mark in the app.yaml.

  Thank you!!!

  Giacomo

  On 13 Nov, 18:30, Jeff S [EMAIL PROTECTED] wrote:

   Hi Giacomo,

   I want to make sure I've understood your design. You said you want a
   page listing your Google Docs, and this listing page would not require
   users to log in, in other words, it is public. Do you want everyone to
   be able to view the doc content as well? This should be doable if you
   are using clientloginand embedding the global account's credentials
   in the code.

   If your app is asking users to log in, then the cause may be that a
   URL is markedlogin:required in app.yaml, or perhaps a request handler
   is automatically redirecting to a sign in page. I might be able to get
   a better idea if I could look at some of your code.

   Thank you,

   Jeff

   On Nov 12, 12:22 am, Giacomo Cucciati [EMAIL PROTECTED]
   wrote:

Hi all!

I have aproblemlinked to the userlogin...

My web application should work in this way:
-an external user visits my web page were there are some links
-each of these shows a list of my documents (using Docs API)
-each doc title, shown in the list, is a link to the doc content

Now, when i have updated my application (by appcfg.py command) I have
seen
that an external user has tologinwith his google account whene he
clicks on a link to obtain
just the list of my docs, otherwise an authentication error occours.
The credentials of my account for the clientlogin(mail and password)
are inserted in the code so it isn't their fault.
I know there is the users.create_login_url(self.request.uri)
function... but is there a way to avoid the userloginpage or to
create a fake user (to insert in the code as the previous one) so that
everyone can see my document list?

I'm not sure to have explaned clearly theproblem...

Thank you!

Giacomo
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the 

[google-appengine] Re: Expires header for zipserve files?

2008-11-19 Thread Hector Zhao

change this:
  - url: /images/.*
script: $PYTHON_LIB/google/appengine/ext/zipserve
to
  - url: /images/.*
script: main.py  # this could be other script, e.g. zipserve.py

then have a look at:
http://code.google.com/p/googleappengine/source/browse/trunk/google/appengine/ext/zipserve/__init__.py#36
and edit your main.py

and don't forget to include this in your main.py:
from google.appengine.ext import zipserve

On 11月19日, 下午1时45分, Adam Fisk [EMAIL PROTECTED] wrote:
 Is there any way to set an expires header for files served with google/
 appengine/ext/zipserve?  I've got expires working for static content
 and within Django, but the zipserve files are slipping through my
 fingers.

 Thanks.

 -Adam Fisk
--~--~-~--~~~---~--~~
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] bulk upload

2008-11-19 Thread Gampesh

my bulkupload was working properly but after two or three upload of
data i got following error

can any body help me?
Thanks


INFO 2008-11-19 19:00:38,358 bulkload_client.py] Starting import;
maximum 10 entities per post
INFO 2008-11-19 19:00:38,358 bulkload_client.py] Importing 10
entities in 5379 bytes
ERROR2008-11-19 19:00:43,828 bulkload_client.py] An error occurred
while importing: Received code 500: Internal Server Error

htmlhead
meta http-equiv=content-type content=text/html;charset=utf-8
title500 Server Error/title
/head
body text=#00 bgcolor=#ff
h1Error: Server Error/h1
h2The server encountered an error and could not complete your
request.pIf the problem persists, please A HREF=http://
www.google.com/support/report/A your proble
m and mention this error message and the query that caused it./h2
h2/h2
/body/html

ERROR2008-11-19 19:00:43,858 bulkload_client.py] Import failed
--~--~-~--~~~---~--~~
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: loading a model by key

2008-11-19 Thread Alexander Kojevnikov

 That works, thanks Alexander!

 It also works without the db.Key:
 model = MyModel.get(key)

 The relevant references - of course it was all there in front of 
 me:http://code.google.com/appengine/docs/datastore/modelclass.html- Note
 get() is a CLASS 
 methodhttp://code.google.com/appengine/docs/datastore/keyclass.html- The
 string-encoded key can be converted back to a Key object by passing it
 to the Key constructor 

No worries Russ.
--~--~-~--~~~---~--~~
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: Add Model field via Mixin?

2008-11-19 Thread Adam

Not that anyone cares, but the metaclass approach did not work, as
Python doesn't want to have two non-identical metaclasses in an
inheritance chain.  Or something.

On Nov 18, 10:42 am, Adam [EMAIL PROTECTED] wrote:
 It just occurred to me that this solution could be made much easier by
 using a simple, small metaclass (which, it is worth noting, I totally
 copped from GAE's PropertiedClass metaclass):

 class ModelMixin(type):
   def __init__(cls, name, bases, dct):
     super(PropertiedClass, cls).__init__(name, bases, dct)

     for attr_name in dct.keys():
       attr = dct[attr_name]
       if isinstance(attr, Property):
         cls._properties[attr_name] = attr

 class Commentable():
   __metaclass__ = ModelMixin

   comments_counter = db.IntegerProperty(required=True, default=0)

 Bada-bing.  Now, the ugly nonsense of creating the _properties dict
 and assigning to it is gone.
--~--~-~--~~~---~--~~
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] urls truncated in the Dashboard

2008-11-19 Thread Moritz Angermann

Hi everyone,

I have this pretty simple and stupid app:
http://cibanzhuan.appspot.com/

The Dashboard only shows me stats for the following url:
/lang%20113,hkust,chinese/Lesson%203/Character-pin1yin1/perm

so I suspect google is treating the '=' symbol in the url special.
Is this the expected behaviour? I would understand if data after a ?
is dropped but
this got me thinking.

kindest regards,
  Moritz

--~--~-~--~~~---~--~~
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] bulkload_client.py

2008-11-19 Thread Gampesh

my bulkload_client.py command is working problem is:

tools\bulkload_client.py --filename=c:/celebrities.txt --
kind=Celebrities --url=http://famousandspicy.appspot.com/load

above command is working fine and data is imoporting.

but once i run
tools\bulkload_client.py --filename=c:/photos.txt --kind=Photos --
url=http://famousandspicy.appspot.com/load
i got  following error

INFO 2008-11-19 19:57:05,983 bulkload_client.py] Starting import;
maximum 10 entities per post
INFO 2008-11-19 19:57:05,983 bulkload_client.py] Importing 10
entities in 5379 bytes
ERROR2008-11-19 19:57:11,890 bulkload_client.py] An error occurred
while importing: Received code 500: Internal Server Error

htmlhead
meta http-equiv=content-type content=text/html;charset=utf-8
title500 Server Error/title
/head
body text=#00 bgcolor=#ff
h1Error: Server Error/h1
h2The server encountered an error and could not complete your
request.pIf the problem persists, please A HREF=http://
www.google.com/support/report/A your proble
m and mention this error message and the query that caused it./h2
h2/h2
/body/html

ERROR2008-11-19 19:57:11,921 bulkload_client.py] Import failed
bulkload_client.py is

from google.appengine.ext import bulkload

class PhotosLoader(bulkload.Loader):

def __init__(self):

fields = [
(photoid, str),
(celebrity_id, str),
(title, str),
(source, str),
(image_url, str),
(img_title_link, str),
(description, str),
(created_at, str),
(updated_at, str)
]


bulkload.Loader.__init__(self, Photos, fields)

if __name__ == __main__:

bulkload.main(PhotosLoader())

model is

class Photos(db.Model):
photoid=db.StringProperty()
celebrity_id=db.StringProperty()
title = db.StringProperty()
source = db.StringProperty()
image_url = db.StringProperty()
img_title_link = db.StringProperty()
description = db.StringProperty()
created_at = db.StringProperty()
updated_at = db.StringProperty()


what wrong i am doing.

Gampesh






--~--~-~--~~~---~--~~
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: Add Model field via Mixin?

2008-11-19 Thread Moritz Angermann

Sorry for adding confustion to this buy why does Chained inheritance not work?

class Commentable(db.Model):
   def put(...): ... # if some create/modify logic is needed
   def delete(...): ... # if some delete magic is needed (trash comments?)
   comments_counter = db.IntegerProperty(required=True, defualt=0)

class Post(Commentable):
   title = db.StringProperty(required=True)
   body = db.TextProperty(required=True)
   added = db.DateProperty(auto_add_now=True)

this is perfectly readable and sould do pretty much what was asked for.

Am I missing something?


BTW: Adam, how do I search with the tag mixins for the objects that
are tagged with A, B, C and D? // just curious because I
implemented some tagging to my app the other day and didn't use the
solution you used.

regards,
 Moritz

On Wed, Nov 19, 2008 at 10:07 PM, Adam [EMAIL PROTECTED] wrote:

 Not that anyone cares, but the metaclass approach did not work, as
 Python doesn't want to have two non-identical metaclasses in an
 inheritance chain.  Or something.

 On Nov 18, 10:42 am, Adam [EMAIL PROTECTED] wrote:
 It just occurred to me that this solution could be made much easier by
 using a simple, small metaclass (which, it is worth noting, I totally
 copped from GAE's PropertiedClass metaclass):

 class ModelMixin(type):
   def __init__(cls, name, bases, dct):
 super(PropertiedClass, cls).__init__(name, bases, dct)

 for attr_name in dct.keys():
   attr = dct[attr_name]
   if isinstance(attr, Property):
 cls._properties[attr_name] = attr

 class Commentable():
   __metaclass__ = ModelMixin

   comments_counter = db.IntegerProperty(required=True, default=0)

 Bada-bing.  Now, the ugly nonsense of creating the _properties dict
 and assigning to it is gone.
 


--~--~-~--~~~---~--~~
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: bulkload_client.py

2008-11-19 Thread Moritz Angermann

Hi,

I didn't see anything wrong, but I might be missing it.

Two questions though:
1. Does it work localy?
2. how about throwing in a from logging import debug
   and then doing a binary search with the debug(...) in your code?

regards,
 Moritz

On Wed, Nov 19, 2008 at 10:33 PM, Gampesh [EMAIL PROTECTED] wrote:

 my bulkload_client.py command is working problem is:

 tools\bulkload_client.py --filename=c:/celebrities.txt --
 kind=Celebrities --url=http://famousandspicy.appspot.com/load

 above command is working fine and data is imoporting.

 but once i run
 tools\bulkload_client.py --filename=c:/photos.txt --kind=Photos --
 url=http://famousandspicy.appspot.com/load
 i got  following error

 INFO 2008-11-19 19:57:05,983 bulkload_client.py] Starting import;
 maximum 10 entities per post
 INFO 2008-11-19 19:57:05,983 bulkload_client.py] Importing 10
 entities in 5379 bytes
 ERROR2008-11-19 19:57:11,890 bulkload_client.py] An error occurred
 while importing: Received code 500: Internal Server Error

 htmlhead
 meta http-equiv=content-type content=text/html;charset=utf-8
 title500 Server Error/title
 /head
 body text=#00 bgcolor=#ff
 h1Error: Server Error/h1
 h2The server encountered an error and could not complete your
 request.pIf the problem persists, please A HREF=http://
 www.google.com/support/report/A your proble
 m and mention this error message and the query that caused it./h2
 h2/h2
 /body/html

 ERROR2008-11-19 19:57:11,921 bulkload_client.py] Import failed
 bulkload_client.py is

 from google.appengine.ext import bulkload

 class PhotosLoader(bulkload.Loader):

def __init__(self):

fields = [
(photoid, str),
(celebrity_id, str),
(title, str),
(source, str),
(image_url, str),
(img_title_link, str),
(description, str),
(created_at, str),
(updated_at, str)
]


bulkload.Loader.__init__(self, Photos, fields)

 if __name__ == __main__:

bulkload.main(PhotosLoader())

 model is

 class Photos(db.Model):
photoid=db.StringProperty()
celebrity_id=db.StringProperty()
title = db.StringProperty()
source = db.StringProperty()
image_url = db.StringProperty()
img_title_link = db.StringProperty()
description = db.StringProperty()
created_at = db.StringProperty()
updated_at = db.StringProperty()


 what wrong i am doing.

 Gampesh






 


--~--~-~--~~~---~--~~
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: Add Model field via Mixin?

2008-11-19 Thread Moritz Angermann

Ahh Right I see, I could trade off the mixablility of Commentable with Taggable.
hmm, how about a factory?

regards,
 Moritz

On Wed, Nov 19, 2008 at 10:48 PM, Moritz Angermann
[EMAIL PROTECTED] wrote:
 Sorry for adding confustion to this buy why does Chained inheritance not work?

 class Commentable(db.Model):
   def put(...): ... # if some create/modify logic is needed
   def delete(...): ... # if some delete magic is needed (trash comments?)
   comments_counter = db.IntegerProperty(required=True, defualt=0)

 class Post(Commentable):
   title = db.StringProperty(required=True)
   body = db.TextProperty(required=True)
   added = db.DateProperty(auto_add_now=True)

 this is perfectly readable and sould do pretty much what was asked for.

 Am I missing something?


 BTW: Adam, how do I search with the tag mixins for the objects that
 are tagged with A, B, C and D? // just curious because I
 implemented some tagging to my app the other day and didn't use the
 solution you used.

 regards,
  Moritz

 On Wed, Nov 19, 2008 at 10:07 PM, Adam [EMAIL PROTECTED] wrote:

 Not that anyone cares, but the metaclass approach did not work, as
 Python doesn't want to have two non-identical metaclasses in an
 inheritance chain.  Or something.

 On Nov 18, 10:42 am, Adam [EMAIL PROTECTED] wrote:
 It just occurred to me that this solution could be made much easier by
 using a simple, small metaclass (which, it is worth noting, I totally
 copped from GAE's PropertiedClass metaclass):

 class ModelMixin(type):
   def __init__(cls, name, bases, dct):
 super(PropertiedClass, cls).__init__(name, bases, dct)

 for attr_name in dct.keys():
   attr = dct[attr_name]
   if isinstance(attr, Property):
 cls._properties[attr_name] = attr

 class Commentable():
   __metaclass__ = ModelMixin

   comments_counter = db.IntegerProperty(required=True, default=0)

 Bada-bing.  Now, the ugly nonsense of creating the _properties dict
 and assigning to it is gone.
 



--~--~-~--~~~---~--~~
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: Add Model field via Mixin?

2008-11-19 Thread Robin B

Have you tried having ModelMixin inherit from PropertiedClass
directly:

class ModelMixin(PropertiedClass):
  pass

class Commentable():
  __metaclass__ = ModelMixin

I am using something similar without error.

Robin

On Nov 19, 8:07 am, Adam [EMAIL PROTECTED] wrote:
 Not that anyone cares, but the metaclass approach did not work, as
 Python doesn't want to have two non-identical metaclasses in an
 inheritance chain.  Or something.

 On Nov 18, 10:42 am, Adam [EMAIL PROTECTED] wrote:

  It just occurred to me that this solution could be made much easier by
  using a simple, small metaclass (which, it is worth noting, I totally
  copped from GAE's PropertiedClass metaclass):

  class ModelMixin(type):
    def __init__(cls, name, bases, dct):
      super(PropertiedClass, cls).__init__(name, bases, dct)

      for attr_name in dct.keys():
        attr = dct[attr_name]
        if isinstance(attr, Property):
          cls._properties[attr_name] = attr

  class Commentable():
    __metaclass__ = ModelMixin

    comments_counter = db.IntegerProperty(required=True, default=0)

  Bada-bing.  Now, the ugly nonsense of creating the _properties dict
  and assigning to it is gone.
--~--~-~--~~~---~--~~
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: Add Model field via Mixin?

2008-11-19 Thread Moritz Angermann

Ohh, after some thinking, how about this:
Basically This is a Coutable Mixin wich replaces the .count() method
on objects by caching the value in a seperate table.
code below or (http://dpaste.com/hold/92118/ for more convinient reading)
[ tried this in the SDK console]

kindest regards,
 Moritz

PS: it is important to have the mixin order... e.g. all db.Model
deriving classes before the db.Model class.


from google.appengine.ext import db

class _Counter(db.Model):
  
  some helper class, to keep track
  of the actual amount of elements
  
  count = db.IntegerProperty(default=0)

class Countable(db.Model):
  
  the ``mixin'' to make an object have
  a cheap ``.count()'' method
  

  def count(klass):
  return _Counter.get_or_insert('class:%s' % klass.__name__).count
  count = classmethod(count)
  def put(self,*args,**kwargs):
if not self.is_saved():
  counter = _Counter.get_or_insert('class:%s' % self.__class__.__name__)
  counter.count += 1
  counter.put()
super(Countable, self).put(*args,**kwargs)

  def delete(self, *args, **kwargs):
counter = _Counter.get_by_key_name('class:%s' % self.__class__.__name__)
if not counter is None:
  counter.count -= 1
  counter.put()
super(Countable, self).delete(*args,**kwargs)

class Test(Countable, db.Model):
  name = db.StringProperty()

print set up
print ==
print   installing 10 entities in Test model...
for i in range(10):
  Test(name='item %d' % i).put()
print test
print 
print   Test.count() yields , Test.count()
print   deleting two entities
for e in Test.all().fetch(2):
  e.delete()
print   Test.count() yields , Test.count()
print tear down
print =
print   deleting all items from Test model...
for e in Test.all():
  e.delete()
print   deleting all items from _Counter model...
for e in _Counter.all():
  e.delete()


On Wed, Nov 19, 2008 at 11:18 PM, Robin B [EMAIL PROTECTED] wrote:

 Have you tried having ModelMixin inherit from PropertiedClass
 directly:

 class ModelMixin(PropertiedClass):
  pass

 class Commentable():
  __metaclass__ = ModelMixin

 I am using something similar without error.

 Robin

 On Nov 19, 8:07 am, Adam [EMAIL PROTECTED] wrote:
 Not that anyone cares, but the metaclass approach did not work, as
 Python doesn't want to have two non-identical metaclasses in an
 inheritance chain.  Or something.

 On Nov 18, 10:42 am, Adam [EMAIL PROTECTED] wrote:

  It just occurred to me that this solution could be made much easier by
  using a simple, small metaclass (which, it is worth noting, I totally
  copped from GAE's PropertiedClass metaclass):

  class ModelMixin(type):
def __init__(cls, name, bases, dct):
  super(PropertiedClass, cls).__init__(name, bases, dct)

  for attr_name in dct.keys():
attr = dct[attr_name]
if isinstance(attr, Property):
  cls._properties[attr_name] = attr

  class Commentable():
__metaclass__ = ModelMixin

comments_counter = db.IntegerProperty(required=True, default=0)

  Bada-bing.  Now, the ugly nonsense of creating the _properties dict
  and assigning to it is gone.
 


--~--~-~--~~~---~--~~
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: bulkload_client.py

2008-11-19 Thread Moritz Angermann

Yes, you load data into GAE. Have you made sure it works on the SDK?
e.g. bulkload_client.py --filename=c:/photos.txt --kind=Photos
--url=http://localhost:8080/load

Second point: try to see where your app terminates.
To do this, you could simply add print ...  statements if this was a
normal console app.
For GAE apps is makes more sense to use

from logging import debug #somewhere at the top of you bluckload_client.py

and then use
  debug(reached this point)
in your code.

That way the SDK Log will yield you some clue to where it executed the
bulckload_client.py before terminating.


regards,
 Moritz

On Wed, Nov 19, 2008 at 11:41 PM, Gampesh [EMAIL PROTECTED] wrote:

 no  i am uploading data in google app server
 sorry but i am nit getting your second point.

 thanks

 On Nov 19, 7:51 pm, Moritz Angermann [EMAIL PROTECTED]
 wrote:
 Hi,

 I didn't see anything wrong, but I might be missing it.

 Two questions though:
 1. Does it work localy?
 2. how about throwing in a from logging import debug
and then doing a binary search with the debug(...) in your code?

 regards,
  Moritz

 On Wed, Nov 19, 2008 at 10:33 PM, Gampesh [EMAIL PROTECTED] wrote:

  my bulkload_client.py command is working problem is:

  tools\bulkload_client.py --filename=c:/celebrities.txt --
  kind=Celebrities --url=http://famousandspicy.appspot.com/load

  above command is working fine and data is imoporting.

  but once i run
  tools\bulkload_client.py --filename=c:/photos.txt --kind=Photos --
  url=http://famousandspicy.appspot.com/load
  i got  following error

  INFO 2008-11-19 19:57:05,983 bulkload_client.py] Starting import;
  maximum 10 entities per post
  INFO 2008-11-19 19:57:05,983 bulkload_client.py] Importing 10
  entities in 5379 bytes
  ERROR2008-11-19 19:57:11,890 bulkload_client.py] An error occurred
  while importing: Received code 500: Internal Server Error

  htmlhead
  meta http-equiv=content-type content=text/html;charset=utf-8
  title500 Server Error/title
  /head
  body text=#00 bgcolor=#ff
  h1Error: Server Error/h1
  h2The server encountered an error and could not complete your
  request.pIf the problem persists, please A HREF=http://
 www.google.com/support/report/A your proble
  m and mention this error message and the query that caused it./h2
  h2/h2
  /body/html

  ERROR2008-11-19 19:57:11,921 bulkload_client.py] Import failed
  bulkload_client.py is

  from google.appengine.ext import bulkload

  class PhotosLoader(bulkload.Loader):

 def __init__(self):

 fields = [
 (photoid, str),
 (celebrity_id, str),
 (title, str),
 (source, str),
 (image_url, str),
 (img_title_link, str),
 (description, str),
 (created_at, str),
 (updated_at, str)
 ]

 bulkload.Loader.__init__(self, Photos, fields)

  if __name__ == __main__:

 bulkload.main(PhotosLoader())

  model is

  class Photos(db.Model):
 photoid=db.StringProperty()
 celebrity_id=db.StringProperty()
 title = db.StringProperty()
 source = db.StringProperty()
 image_url = db.StringProperty()
 img_title_link = db.StringProperty()
 description = db.StringProperty()
 created_at = db.StringProperty()
 updated_at = db.StringProperty()

  what wrong i am doing.

  Gampesh
 


--~--~-~--~~~---~--~~
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: bulkload_client.py

2008-11-19 Thread Gampesh

i tried run locally and got following error


INFO 2008-11-19 21:22:59,342 bulkload_client.py] Starting import;
maximum 10 entities per post
INFO 2008-11-19 21:22:59,342 bulkload_client.py] Importing 10
entities in 4822 bytes
ERROR2008-11-19 21:23:01,092 bulkload_client.py] An error occurred
while importing: (10061, 'Connection refused')
ERROR2008-11-19 21:23:01,092 bulkload_client.py] Import failed





On Nov 19, 8:45 pm, Moritz Angermann [EMAIL PROTECTED]
wrote:
 Yes, you load data into GAE. Have you made sure it works on the SDK?
 e.g. bulkload_client.py --filename=c:/photos.txt --kind=Photos
 --url=http://localhost:8080/load

 Second point: try to see where your app terminates.
 To do this, you could simply add print ...  statements if this was a
 normal console app.
 For GAE apps is makes more sense to use

 from logging import debug #somewhere at the top of you bluckload_client.py

 and then use
   debug(reached this point)
 in your code.

 That way the SDK Log will yield you some clue to where it executed the
 bulckload_client.py before terminating.

 regards,
  Moritz

 On Wed, Nov 19, 2008 at 11:41 PM, Gampesh [EMAIL PROTECTED] wrote:

  no  i am uploading data in google app server
  sorry but i am nit getting your second point.

  thanks

  On Nov 19, 7:51 pm, Moritz Angermann [EMAIL PROTECTED]
  wrote:
  Hi,

  I didn't see anything wrong, but I might be missing it.

  Two questions though:
  1. Does it work localy?
  2. how about throwing in a from logging import debug
 and then doing a binary search with the debug(...) in your code?

  regards,
   Moritz

  On Wed, Nov 19, 2008 at 10:33 PM, Gampesh [EMAIL PROTECTED] wrote:

   my bulkload_client.py command is working problem is:

   tools\bulkload_client.py --filename=c:/celebrities.txt --
   kind=Celebrities --url=http://famousandspicy.appspot.com/load

   above command is working fine and data is imoporting.

   but once i run
   tools\bulkload_client.py --filename=c:/photos.txt --kind=Photos --
   url=http://famousandspicy.appspot.com/load
   i got  following error

   INFO 2008-11-19 19:57:05,983 bulkload_client.py] Starting import;
   maximum 10 entities per post
   INFO 2008-11-19 19:57:05,983 bulkload_client.py] Importing 10
   entities in 5379 bytes
   ERROR2008-11-19 19:57:11,890 bulkload_client.py] An error occurred
   while importing: Received code 500: Internal Server Error

   htmlhead
   meta http-equiv=content-type content=text/html;charset=utf-8
   title500 Server Error/title
   /head
   body text=#00 bgcolor=#ff
   h1Error: Server Error/h1
   h2The server encountered an error and could not complete your
   request.pIf the problem persists, please A HREF=http://
  www.google.com/support/report/A your proble
   m and mention this error message and the query that caused it./h2
   h2/h2
   /body/html

   ERROR2008-11-19 19:57:11,921 bulkload_client.py] Import failed
   bulkload_client.py is

   from google.appengine.ext import bulkload

   class PhotosLoader(bulkload.Loader):

  def __init__(self):

  fields = [
  (photoid, str),
  (celebrity_id, str),
  (title, str),
  (source, str),
  (image_url, str),
  (img_title_link, str),
  (description, str),
  (created_at, str),
  (updated_at, str)
  ]

  bulkload.Loader.__init__(self, Photos, fields)

   if __name__ == __main__:

  bulkload.main(PhotosLoader())

   model is

   class Photos(db.Model):
  photoid=db.StringProperty()
  celebrity_id=db.StringProperty()
  title = db.StringProperty()
  source = db.StringProperty()
  image_url = db.StringProperty()
  img_title_link = db.StringProperty()
  description = db.StringProperty()
  created_at = db.StringProperty()
  updated_at = db.StringProperty()

   what wrong i am doing.

   Gampesh
--~--~-~--~~~---~--~~
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: Add Model field via Mixin?

2008-11-19 Thread Adam

 BTW: Adam, how do I search with the tag mixins for the objects that
 are tagged with A, B, C and D? // just curious because I
 implemented some tagging to my app the other day and didn't use the
 solution you used.

I didn't have this use case accoutned for directly in taggable-mixin,
but it really ought to be there.  It could be accounted for simply in
the get_tag_by_value method.  The method should check to see if the
incoming parameter is a list, and if it is, query for all of the
elements in the list.  I'll make sure that gets in to the next
release.  BTW, a new release, with many improvements is already on its
way.

On Nov 19, 9:48 am, Moritz Angermann [EMAIL PROTECTED]
wrote:
 Sorry for adding confustion to this buy why does Chained inheritance not work?

 class Commentable(db.Model):
    def put(...): ... # if some create/modify logic is needed
    def delete(...): ... # if some delete magic is needed (trash comments?)
    comments_counter = db.IntegerProperty(required=True, defualt=0)

 class Post(Commentable):
    title = db.StringProperty(required=True)
    body = db.TextProperty(required=True)
    added = db.DateProperty(auto_add_now=True)

 this is perfectly readable and sould do pretty much what was asked for.

 Am I missing something?

 BTW: Adam, how do I search with the tag mixins for the objects that
 are tagged with A, B, C and D? // just curious because I
 implemented some tagging to my app the other day and didn't use the
 solution you used.

 regards,
  Moritz

 On Wed, Nov 19, 2008 at 10:07 PM, Adam [EMAIL PROTECTED] wrote:

  Not that anyone cares, but the metaclass approach did not work, as
  Python doesn't want to have two non-identical metaclasses in an
  inheritance chain.  Or something.

  On Nov 18, 10:42 am, Adam [EMAIL PROTECTED] wrote:
  It just occurred to me that this solution could be made much easier by
  using a simple, small metaclass (which, it is worth noting, I totally
  copped from GAE's PropertiedClass metaclass):

  class ModelMixin(type):
    def __init__(cls, name, bases, dct):
      super(PropertiedClass, cls).__init__(name, bases, dct)

      for attr_name in dct.keys():
        attr = dct[attr_name]
        if isinstance(attr, Property):
          cls._properties[attr_name] = attr

  class Commentable():
    __metaclass__ = ModelMixin

    comments_counter = db.IntegerProperty(required=True, default=0)

  Bada-bing.  Now, the ugly nonsense of creating the _properties dict
  and assigning to it is gone.
--~--~-~--~~~---~--~~
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: Add Model field via Mixin?

2008-11-19 Thread Adam

I haven't tried that Robin.  It looks promising.  I'll give it a try.
Thanks.

On Nov 19, 10:18 am, Robin B [EMAIL PROTECTED] wrote:
 Have you tried having ModelMixin inherit from PropertiedClass
 directly:

 class ModelMixin(PropertiedClass):
   pass

 class Commentable():
   __metaclass__ = ModelMixin

 I am using something similar without error.

 Robin

 On Nov 19, 8:07 am, Adam [EMAIL PROTECTED] wrote:

  Not that anyone cares, but the metaclass approach did not work, as
  Python doesn't want to have two non-identical metaclasses in an
  inheritance chain.  Or something.

  On Nov 18, 10:42 am, Adam [EMAIL PROTECTED] wrote:

   It just occurred to me that this solution could be made much easier by
   using a simple, small metaclass (which, it is worth noting, I totally
   copped from GAE's PropertiedClass metaclass):

   class ModelMixin(type):
     def __init__(cls, name, bases, dct):
       super(PropertiedClass, cls).__init__(name, bases, dct)

       for attr_name in dct.keys():
         attr = dct[attr_name]
         if isinstance(attr, Property):
           cls._properties[attr_name] = attr

   class Commentable():
     __metaclass__ = ModelMixin

     comments_counter = db.IntegerProperty(required=True, default=0)

   Bada-bing.  Now, the ugly nonsense of creating the _properties dict
   and assigning to it is gone.
--~--~-~--~~~---~--~~
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: Add Model field via Mixin?

2008-11-19 Thread Adam

I'm fairly sure that I tried just this very solution before giving up
on it because it continued to throw exceptions.  Since you say that
this worked for you, I'll try it again and make sure that I am
matching this pattern as closely as possible.

On Nov 19, 10:36 am, Moritz Angermann [EMAIL PROTECTED]
wrote:
 Ohh, after some thinking, how about this:
 Basically This is a Coutable Mixin wich replaces the .count() method
 on objects by caching the value in a seperate table.
 code below or (http://dpaste.com/hold/92118/for more convinient reading)
 [ tried this in the SDK console]

 kindest regards,
  Moritz

 PS: it is important to have the mixin order... e.g. all db.Model
 deriving classes before the db.Model class.

 from google.appengine.ext import db

 class _Counter(db.Model):
   
   some helper class, to keep track
   of the actual amount of elements
   
   count = db.IntegerProperty(default=0)

 class Countable(db.Model):
   
   the ``mixin'' to make an object have
   a cheap ``.count()'' method
   

   def count(klass):
       return _Counter.get_or_insert('class:%s' % klass.__name__).count
   count = classmethod(count)
   def put(self,*args,**kwargs):
     if not self.is_saved():
       counter = _Counter.get_or_insert('class:%s' % self.__class__.__name__)
       counter.count += 1
       counter.put()
     super(Countable, self).put(*args,**kwargs)

   def delete(self, *args, **kwargs):
     counter = _Counter.get_by_key_name('class:%s' % self.__class__.__name__)
     if not counter is None:
       counter.count -= 1
       counter.put()
     super(Countable, self).delete(*args,**kwargs)

 class Test(Countable, db.Model):
   name = db.StringProperty()

 print set up
 print ==
 print   installing 10 entities in Test model...
 for i in range(10):
   Test(name='item %d' % i).put()
 print test
 print 
 print   Test.count() yields , Test.count()
 print   deleting two entities
 for e in Test.all().fetch(2):
   e.delete()
 print   Test.count() yields , Test.count()
 print tear down
 print =
 print   deleting all items from Test model...
 for e in Test.all():
   e.delete()
 print   deleting all items from _Counter model...
 for e in _Counter.all():
   e.delete()

 On Wed, Nov 19, 2008 at 11:18 PM, Robin B [EMAIL PROTECTED] wrote:

  Have you tried having ModelMixin inherit from PropertiedClass
  directly:

  class ModelMixin(PropertiedClass):
   pass

  class Commentable():
   __metaclass__ = ModelMixin

  I am using something similar without error.

  Robin

  On Nov 19, 8:07 am, Adam [EMAIL PROTECTED] wrote:
  Not that anyone cares, but the metaclass approach did not work, as
  Python doesn't want to have two non-identical metaclasses in an
  inheritance chain.  Or something.

  On Nov 18, 10:42 am, Adam [EMAIL PROTECTED] wrote:

   It just occurred to me that this solution could be made much easier by
   using a simple, small metaclass (which, it is worth noting, I totally
   copped from GAE's PropertiedClass metaclass):

   class ModelMixin(type):
     def __init__(cls, name, bases, dct):
       super(PropertiedClass, cls).__init__(name, bases, dct)

       for attr_name in dct.keys():
         attr = dct[attr_name]
         if isinstance(attr, Property):
           cls._properties[attr_name] = attr

   class Commentable():
     __metaclass__ = ModelMixin

     comments_counter = db.IntegerProperty(required=True, default=0)

   Bada-bing.  Now, the ugly nonsense of creating the _properties dict
   and assigning to it is gone.
--~--~-~--~~~---~--~~
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: Add Model field via Mixin?

2008-11-19 Thread Moritz Angermann

Hi Adam,

The FakeMixin order is very important, unless all FakeMixins are
inherited before
the class inherits from db.Model it will throw an error. So as long as
you make sure
you have db.Model at the end of your inheritances it should be fine.

regards,
 Moritz

On Thu, Nov 20, 2008 at 12:20 AM, Adam [EMAIL PROTECTED] wrote:

 I'm fairly sure that I tried just this very solution before giving up
 on it because it continued to throw exceptions.  Since you say that
 this worked for you, I'll try it again and make sure that I am
 matching this pattern as closely as possible.

 On Nov 19, 10:36 am, Moritz Angermann [EMAIL PROTECTED]
 wrote:
 Ohh, after some thinking, how about this:
 Basically This is a Coutable Mixin wich replaces the .count() method
 on objects by caching the value in a seperate table.
 code below or (http://dpaste.com/hold/92118/for more convinient reading)
 [ tried this in the SDK console]

 kindest regards,
  Moritz

 PS: it is important to have the mixin order... e.g. all db.Model
 deriving classes before the db.Model class.

 from google.appengine.ext import db

 class _Counter(db.Model):
   
   some helper class, to keep track
   of the actual amount of elements
   
   count = db.IntegerProperty(default=0)

 class Countable(db.Model):
   
   the ``mixin'' to make an object have
   a cheap ``.count()'' method
   

   def count(klass):
   return _Counter.get_or_insert('class:%s' % klass.__name__).count
   count = classmethod(count)
   def put(self,*args,**kwargs):
 if not self.is_saved():
   counter = _Counter.get_or_insert('class:%s' % self.__class__.__name__)
   counter.count += 1
   counter.put()
 super(Countable, self).put(*args,**kwargs)

   def delete(self, *args, **kwargs):
 counter = _Counter.get_by_key_name('class:%s' % self.__class__.__name__)
 if not counter is None:
   counter.count -= 1
   counter.put()
 super(Countable, self).delete(*args,**kwargs)

 class Test(Countable, db.Model):
   name = db.StringProperty()

 print set up
 print ==
 print   installing 10 entities in Test model...
 for i in range(10):
   Test(name='item %d' % i).put()
 print test
 print 
 print   Test.count() yields , Test.count()
 print   deleting two entities
 for e in Test.all().fetch(2):
   e.delete()
 print   Test.count() yields , Test.count()
 print tear down
 print =
 print   deleting all items from Test model...
 for e in Test.all():
   e.delete()
 print   deleting all items from _Counter model...
 for e in _Counter.all():
   e.delete()

 On Wed, Nov 19, 2008 at 11:18 PM, Robin B [EMAIL PROTECTED] wrote:

  Have you tried having ModelMixin inherit from PropertiedClass
  directly:

  class ModelMixin(PropertiedClass):
   pass

  class Commentable():
   __metaclass__ = ModelMixin

  I am using something similar without error.

  Robin

  On Nov 19, 8:07 am, Adam [EMAIL PROTECTED] wrote:
  Not that anyone cares, but the metaclass approach did not work, as
  Python doesn't want to have two non-identical metaclasses in an
  inheritance chain.  Or something.

  On Nov 18, 10:42 am, Adam [EMAIL PROTECTED] wrote:

   It just occurred to me that this solution could be made much easier by
   using a simple, small metaclass (which, it is worth noting, I totally
   copped from GAE's PropertiedClass metaclass):

   class ModelMixin(type):
 def __init__(cls, name, bases, dct):
   super(PropertiedClass, cls).__init__(name, bases, dct)

   for attr_name in dct.keys():
 attr = dct[attr_name]
 if isinstance(attr, Property):
   cls._properties[attr_name] = attr

   class Commentable():
 __metaclass__ = ModelMixin

 comments_counter = db.IntegerProperty(required=True, default=0)

   Bada-bing.  Now, the ugly nonsense of creating the _properties dict
   and assigning to it is gone.
 


--~--~-~--~~~---~--~~
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] Best practices implementing paging

2008-11-19 Thread Abel Rodriguez

I am currently doing a detailed study on how to optimize my
application to be scalable.

I have thoroughly studied the lectures delivered by the engineers at
google, and my opinion: fantastic

In this case, my question comes from the presentation

Buildding Scalable Web Applications with Google App Engine whose
rapporteur was Brett Slatkin

In it, in the section Building a Blog: Paging , using the attribute
index, get to paginate infinite elements, using the index as a guide
for the next entry

Now, suppose you delete an entity, the attribute index would not be
consecutive. taking into account that, any idea howto  implement
paging that supports not only next and previous, but also, goto n
page number.?

thanks in advance,

Abel

--~--~-~--~~~---~--~~
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: Is AUTH_DOMAIN supposed to be different from app?

2008-11-19 Thread Marzia Niccolai
Hi,

From: http://code.google.com/appengine/docs/python/theenvironment.html

The domain used for authenticating users with the Users API. Apps hosted on
appspot.com have an AUTH_DOMAIN of gmail.com, and accept any Google account.
Apps hosted on a custom domain using Google Apps have an AUTH_DOMAIN equal
to the custom domain.

-Marzia

On Tue, Nov 18, 2008 at 8:31 PM, yejun [EMAIL PROTECTED] wrote:


 It seems I always get gmail.com.


 


--~--~-~--~~~---~--~~
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: Join us for App Engine Chat Time

2008-11-19 Thread Dan Sanderson
This is happening right now: irc.freenode.net #appengine  See you there!
-- Dan

On Tue, Nov 18, 2008 at 1:49 PM, Marzia Niccolai [EMAIL PROTECTED] wrote:

 Hi,

 A reminder that we will have App Engine Chat Time tomorrow, November 19th
 from 9-10AM PST.  Hope to see some of you there!

 Transcripts of previous chat times are here:

 http://groups.google.com/group/google-appengine/browse_thread/thread/cedc737d9678af06/ec5af0d421e445da
 and

 http://groups.google.com/group/google-appengine/browse_thread/thread/9f1c2775a354c78/ee0ce30274b1543

 -Marzia


 On Thu, Nov 6, 2008 at 10:01 AM, Marzia Niccolai [EMAIL PROTECTED] wrote:

 Chat log will be forthcoming.

 -Marzia


 On Thu, Nov 6, 2008 at 7:42 AM, Sylvain [EMAIL PROTECTED] wrote:


 Is there any chat log ?

 On 5 nov, 17:37, Marzia Niccolai [EMAIL PROTECTED] wrote:
  Just a reminder that the next App Engine chat time is this evening (for
 us
  at least!) from 7-8PM PST.
 
  Hope to see you there!
 
  On Mon, Oct 20, 2008 at 10:23 PM, Marce [EMAIL PROTECTED] wrote:
 
   Hi,
 
   My bad! I've updated the blog, but the correct date for this
 Wednesday
   is the 22nd.
 
   Concerning the quota requests, in general, you can apply for an
   increase in your quota by using our request page:
  
 http://code.google.com/support/bin/request.py?contact_type=AppEngineC...
 
   However, currently we are not able to lift the 1MB file size quota.
   We are currently working on solutions that would allow users to host
   larger files, and it's something we are interested in supporting in
   the future.
 
   Lastly, we plan to post chat transcripts on the group.
 
   -Marzia
 
   On Oct 20, 10:20 pm, Peter Recore [EMAIL PROTECTED] wrote:
Can someone please post a transcript somewhere for those of us who
won't be able to attend 'live'?
 
On Oct 20, 8:54 pm, Marzia Niccolai [EMAIL PROTECTED] wrote:
 
 Have something to ask the App Engine team? Spending time
 scratching
   your
 head on a problem and want to ask someone who spends his or her
 days
   and
 nights working with App Engine? Spend all of your time on IRC
 anyway?
 
 Starting this week, the App Engine developer relations team will
 be
 experimenting with holding bi-monthly 1 hour developer chat
 sessions on
   the
 #appengine IRC channel on irc.freenode.net. Look here:
  http://en.wikipedia.org/wiki/List_of_IRC_clientsforahelpful list of
 IRC
 clients. We welcome all App Engine questions, and will try to
 answer as
   many
 as we can get through in the hour. We'll be posting the complete
 chat
 sessions on the group for those not able to make the scheduled
 chat
   times.
 
 The first chat session will be this Wednesday at 9AM PDT. In
 general,
   we are
 planning on holding the sessions the first and third Wednesday of
 the
   month,
 alternating between day and evening. We're test-driving this
 program,
   so the
 days and times may change.
 
 Here are the currently scheduled dates and times:
 * Wednesday, October 20, 9am-10am PDT
 * Wednesday, November 5, 7pm-8pm PST
 * Wednesday, November 19, 9am-10am PST
 * Wednesday, December 3, 7pm-8pm PST
 * Wednesday, December 17, 9am-10am PST
 
 We look forward to chatting with you!




 


--~--~-~--~~~---~--~~
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: Hardly anything stored in appengine - already 10 MB gone?

2008-11-19 Thread Chris

I've noticed that my data store usage went up by about 5MB a few days
ago for no reason as well. However, today it's back to normal. I know
they've been changing a lot of things lately (based on the downtime e-
mail notifications I keep receiving), so it probably has something to
do with that. However, if anyone has any more information about what's
going on, it would be much appreciated.

Chris
--~--~-~--~~~---~--~~
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] Error starting app engine locally - exceptions.EOFError

2008-11-19 Thread Nefarious

The other day, I saw a great post on taming your history file to speed
up the app engine locally (http://groups.google.com/group/google-
appengine/browse_thread/thread/f42a3471ca3c5b32/7597dd1b2eff6637?
lnk=gstq=history+file#7597dd1b2eff6637).  I thought it would be wiser
to just excavate all the contents of the file and leave an empty
file.  Unfortunately, my local app would no longer start with a
generic exceptions.EOFError .  It took me some time to realize you can
delete the history file and it will start up fine, just don't leave an
empty file.  I hope that saves others some time.

Mike
--~--~-~--~~~---~--~~
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] mac osx python is now 2.6 -- sdk launcher cannot find it

2008-11-19 Thread thebrianschott

GoogleAppEngineLauncher cannot find python 2.6 even though it is in /
usr/local/bin/

I am using a PPC Mac with OS X v10.4.11 and a Universal Binary .dmg
downloaded.

What are my easy alternatives, please?

Brian in Atlanta

--~--~-~--~~~---~--~~
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] Page Refresh Issue on Local Host

2008-11-19 Thread todd.levinsn


I have this issue frequently. The only way I can get the page to
refresh after making code changes is by restarting the app_server.

Any thoughts on this?

--~--~-~--~~~---~--~~
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: Django helper: ImportError: cannot import name djangoforms

2008-11-19 Thread Chris

I'm also getting this error with app-engine-patch. It's unfortunate no
one's been able to resolve this, since it makes these projects
useless.

On Oct 18, 3:43 pm, Giacecco [EMAIL PROTECTED] wrote:
 All,
 when trying to use manage.py from the command line, I get the
 following error. Running python manage.py is sufficient to get this,
 it does not depend on the command after the manage.py.

 =
 gianfranco-cecconis-macbook-pro:GAPE project giacecco$ python
 manage.py
 WARNING:root:Could not read datastore data from /var/folders/N8/
 N8qeBmGnFqqEQCAHzR9XOk+++TI/-Tmp-/django_giacecco-prod.datastore
 WARNING:root:Could not read datastore data from /var/folders/N8/
 N8qeBmGnFqqEQCAHzR9XOk+++TI/-Tmp-/django_giacecco-
 prod.datastore.history
 Traceback (most recent call last):
   File manage.py, line 18, in module
     InstallAppengineHelperForDjango()
   File /Users/giacecco/www.giacec.co.uk/GAPEproject/__init__.py,
 line 441, in InstallAppengineHelperForDjango

   File /Users/giacecco/www.giacec.co.uk/GAPEproject/__init__.py,
 line 494, in InstallModelForm

   File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/
 GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/
 google/appengine/ext/db/djangoforms.py, line 454, in module
     class ModelChoiceField(forms.Field):
   File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/
 GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/
 google/appengine/ext/db/djangoforms.py, line 457, in ModelChoiceField
     'invalid_choice': _(u'Please select a valid choice. '
   File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/
 GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/
 django/django/conf/__init__.py, line 147, in first_time_gettext
     return gettext(*args)
   File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/
 GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/
 django/django/utils/translation/trans_real.py, line 268, in gettext
     _default = translation(settings.LANGUAGE_CODE)
   File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/
 GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/
 django/django/utils/translation/trans_real.py, line 197, in
 translation
     default_translation = _fetch(settings.LANGUAGE_CODE)
   File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/
 GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/
 django/django/utils/translation/trans_real.py, line 182, in _fetch
     app = __import__(appname, {}, {}, [])
   File /Users/giacecco/www.giacec.co.uk/GAPEproject/main.py, line
 29, in module
     InstallAppengineHelperForDjango()
   File /Users/giacecco/www.giacec.co.uk/GAPEproject/__init__.py,
 line 441, in InstallAppengineHelperForDjango

   File /Users/giacecco/www.giacec.co.uk/GAPEproject/__init__.py,
 line 494, in InstallModelForm

 ImportError: cannot import name djangoforms
 =

 I am using Google App Engine Launcher 1.1.5.151 on MacOS 10.5.5. When
 launching the web application through it I have no issues, but perhaps
 it is not relevant. Any advice? I wanted to use the command line to do
 some debugging.

 Giacecco
--~--~-~--~~~---~--~~
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: mac osx python is now 2.6 -- sdk launcher cannot find it

2008-11-19 Thread Marzia Niccolai
Have you explicitly set the python 2.6 path in the launcher preferences?  If
so, can you run the dev_appserver with the --debug_imports flag?  I haven't
yet tried to get 2.6 to work with the launcher, so I don't know if/how it
works.

-Marzia

On Tue, Nov 18, 2008 at 11:51 PM, thebrianschott [EMAIL PROTECTED]wrote:


 GoogleAppEngineLauncher cannot find python 2.6 even though it is in /
 usr/local/bin/

 I am using a PPC Mac with OS X v10.4.11 and a Universal Binary .dmg
 downloaded.

 What are my easy alternatives, please?

 Brian in Atlanta

 --~--~-~--~~-- --~---~--~~
 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][EMAIL PROTECTED]
 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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Page Refresh Issue on Local Host

2008-11-19 Thread Marzia Niccolai
Hi Todd,

I've never experienced this.  Is this with Python code changes only? What
does your app.yaml look like?

All browsers, or a specific one?  What is the OS you are using?  What about
the SDK version?  Python version?

-Marzia

On Wed, Nov 19, 2008 at 9:11 AM, todd.levinsn [EMAIL PROTECTED]wrote:



 I have this issue frequently. The only way I can get the page to
 refresh after making code changes is by restarting the app_server.

 Any thoughts on this?

 


--~--~-~--~~~---~--~~
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: Expires header for zipserve files?

2008-11-19 Thread Adam Fisk

Ahhh perfect -- thanks Hector.

-Adam


On Nov 19, 2:20 am, Hector Zhao [EMAIL PROTECTED] wrote:
 change this:
   - url: /images/.*
 script: $PYTHON_LIB/google/appengine/ext/zipserve
 to
   - url: /images/.*
 script: main.py  # this could be other script, e.g. zipserve.py

 then have a look 
 at:http://code.google.com/p/googleappengine/source/browse/trunk/google/a...
 and edit your main.py

 and don't forget to include this in your main.py:
 from google.appengine.ext import zipserve

 On 11月19日, 下午1时45分, Adam Fisk [EMAIL PROTECTED] wrote:

  Is there any way to set an expires header for files served with google/
  appengine/ext/zipserve?  I've got expires working for static content
  and within Django, but the zipserve files are slipping through my
  fingers.

  Thanks.

  -Adam Fisk
--~--~-~--~~~---~--~~
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: __searchable_text_index gets added multiple times

2008-11-19 Thread Marzia Niccolai
Hi,

This is expected behavior.  When adding the filter, a composite index is
created for the query.  The composite index lists one
__searchable_text_index for the number of terms in your search query.

-Marzia

On Wed, Nov 19, 2008 at 7:51 AM, ravindra [EMAIL PROTECTED] wrote:


 Hi,

 I have created class Record as follows :

 class Record(search.SearchableModel):
  exp_year = db.IntegerProperty()
  keywords = db.StringProperty(multiline=True)

 now when i am running the following query in dev version :
 query = Record.all().search(first second third fourth )

 then index file gets updated as single entry for
 __searchable_text_index
 - kind: Record
  properties:
  - name: __searchable_text_index
  - name: exp_year

 if i modify the query to this  (added the filter clause)
 query = Record.all().search(first second third ).filter(exp_year ,
 1)

 the index file get updated with multiple entries for
 __searchable_text_index
 - kind: Record
  properties:
  - name: __searchable_text_index
  - name: __searchable_text_index
  - name: __searchable_text_index
  - name: exp_year

 The number of entries for __searchable_text_index then directly
 depends on the number of keywords searched for.
 But in earlier query (ie without filter) it does not depend on the
 number of keywords.
 Am I putting query wrong somewhere ? or is it expected behaviour ?



 


--~--~-~--~~~---~--~~
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: Best practices implementing paging

2008-11-19 Thread Adam

So far, I haven't had to deal with problem of paging through more than
a couple dozen items, so I'm just grabbing them all and then slicing
the results to get what I need.  It's ugly and doesn't scale at all,
but it is all that I have been able to come up with.  I'm glad that
I'm not the only one being stymied by this problem.

I know that it is primarily designed to scale well, but other than
that, the datastore is a giant PITA.


On Nov 19, 3:26 pm, [EMAIL PROTECTED]
[EMAIL PROTECTED] wrote:
 I gave up and just went with paging through 1000 results and figure
 people shouldn't have to go back further. That's a reality for the
 application I'm working on, but not one for others I'm sure.

 Besides the if something is deleted problem, I also found it
 problematic to try and page for things that rely on taxonomy, and
 other indexed features like search results and such.

 I'm hoping one day they may just figure out a way to allow offsets to
 work the way most of us expect them to in queries.

 On Nov 19, 12:08 pm, Adam [EMAIL PROTECTED] wrote:

  I am wrestling with the very same problem, Abel.  I don't have a good
  answer just yet.
--~--~-~--~~~---~--~~
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] How do I create the a image object that is located on my local file system?

2008-11-19 Thread charles

I tried to create a image object:
 avatar = images.Image(os.path.join(os.path.dirname(__file__),'images/
head.jpg')
but this will lead to error, can anyone help me with this?

--~--~-~--~~~---~--~~
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: Hardly anything stored in appengine - already 10 MB gone?

2008-11-19 Thread jago

Thanks. At least I am not hallucinating. I didn't do anything and the
next morning diskspace is gone ;)

It would be neat if we at least had the faintest view of our files
(like a html interface) - not the datastore, but the stuff we
upload...html files, images, etc.

On Nov 19, 1:06 pm, saranpol [EMAIL PROTECTED] wrote:
 I found this problem too.

 On Nov 19, 9:37 am, jago [EMAIL PROTECTED] wrote:

  Hello,

  I have hardly anything stored in appengine. Still the dashboard claims
  I have already 10 MB used. Can I get somehow more information about
  what is using the 10 MB?

  It cannot be the few things I have in the datastore or the website
  hosted on the appengine. Can I somehow free all the memory on the
  appengine?

  Cheers,
  jago
--~--~-~--~~~---~--~~
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: Best practices implementing paging

2008-11-19 Thread Michael Hart

You could achieve a back button by using a similar scheme (selecting  
pageSize+1) and ordering descending.

eg, Say you had an index field with entries index1, index2, etc.  
Gaps would be fine (but assume none in this example). Say the page  
size is 10.

First page you just select the first ten items, with index1 to  
index10. The next button would have ?start=index10order=asc (you  
could assume the default order to be asc). On the next page, you  
would select pageSize+1 (11) items = index10 in ascending order,  
remove the first (index10) and display the rest (index11 to index20).  
The Prev link on this page would be ?start=index11order=desc and  
the Next link would be ?start=index20order=asc. If you clicked  
Prev, it would (based on order=desc) select 11 items = index11 in  
descending order, remove the first (index11), reverse the rest and  
display (index1 to index10).

You still wouldn't be able to show links to each numbered page (only  
prev/next) - however, if you selected, say (pageSize*5)+1 items (and  
adjust the start offset accordingly), then you could show links to the  
prev three and next three pages. If you also kept track of the page  
number you were on (for the sake of link names), then you could come  
pretty close to achieving standard paging functionality (first and  
last pages could be done by selecting without a filter, asc or desc).

Cheers,

Michael

On 20/11/2008, at 8:40 AM, Alexander Kojevnikov wrote:


 I use Brett Slatkin's technique: in the model I page over, I have a
 string property called order. It's a composite string and it's
 guarantied to be unique.

 When querying for entities, I ORDER BY this property. If I want to
 have 20 entities per page, I fetch 21 entities, show 20 of them and
 use 21st's order in the Next  link: /mypage?next=order

 The next parameter is used in the query to skip entities: WHERE
 order = :next

 This allows to page as far as user wants without much burden on the
 datastore. The only downside is that it's not possible to page back,
 but alas, that's what the browser's Back button is for!

 Alex
 --
 www.muspy.com

 On Nov 20, 3:38 am, Abel Rodriguez [EMAIL PROTECTED] wrote:
 I am currently doing a detailed study on how to optimize my
 application to be scalable.

 I have thoroughly studied the lectures delivered by the engineers at
 google, and my opinion: fantastic

 In this case, my question comes from the presentation

 Buildding Scalable Web Applications with Google App Engine whose
 rapporteur was Brett Slatkin

 In it, in the section Building a Blog: Paging , using the attribute
 index, get to paginate infinite elements, using the index as a guide
 for the next entry

 Now, suppose you delete an entity, the attribute index would not be
 consecutive. taking into account that, any idea howto  implement
 paging that supports not only next and previous, but also, goto n
 page number.?

 thanks in advance,

 Abel
 


--~--~-~--~~~---~--~~
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] Is there any way to do prefix match for list type data model attributes

2008-11-19 Thread Jyoti Shete-Javadekar
Hi,
I tried using do prefix match for StringListProperty of a data model. But it
doesn't work. Could someone please tell me if there is any other way to do
so.

Thanks in advance,
Jyoti

On Tue, Nov 18, 2008 at 10:34 AM, Jyoti Shete-Javadekar 
[EMAIL PROTECTED] wrote:

 As per the GQL documentation : (
 http://code.google.com/appengine/docs/datastore/queriesandindexes.html#Defining_Indexes_With_index_yaml
 )

 Query filters do not have an explicit way to match just part of a string
 value, but you can fake a prefix match using inequality filters:

 db.GqlQuery(SELECT * FROM MyModel WHERE prop = :1 AND prop  :2, abc,
 uabc + u\ufffd)

 This matches every MyModel entity with a string property prop that begins
 with the characters abc. The unicode string u\ufffd represents the
 largest possible Unicode character. When the property values are sorted in
 an index, the values that fall in this range are all of the values that
 begin with the given prefix.

 Is this type of prefix match supported for StringListProperty as well? I
 tried the above inequality filters for an attribute having
 StringListProperty, however it did not give correct results for all queries.
 Is there any other way to apply prefix filter on  StringListProperty
 attributes?

 Thanks,
 Jyoti

--~--~-~--~~~---~--~~
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] Compressed string extractable in appengine?

2008-11-19 Thread jago

Hi,

I want to create a compressed String in Java and send it to the
appengine where it is decompressed. Can somebody help me to do this?

So far I used GZIP for compression in Java. Extraction in appengine
didn't work though.

Using the ZIP format in Java resulted also in not more luck. Does
somebody have example codes on both sides that is known to work?

Thanks a lot!
--~--~-~--~~~---~--~~
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: Django + GAE

2008-11-19 Thread @@
here
http://groups.google.com/group/google-appengine/browse_thread/thread/d28216f1d350abba/

2008/11/20 riklaunim [EMAIL PROTECTED]


 Is this patch available somewhere?

 @@ napisał(a):
  hi i have django admin works on app engine helper with some modifications
  (both django admin and app engine helper) .
 
  demo: http://djangoadmin.appspot.com/admin/
 http://djangoadmin.appspot.com/admin/
 
  On Thu, Oct 30, 2008 at 2:42 AM, Arash [EMAIL PROTECTED] wrote:
 
  
   Unfortunately you will not get Django's scaffolded admin interface in
   none of them
  
   On Oct 29, 1:52 pm, Adam Fisk [EMAIL PROTECTED] wrote:
I highly recommend app engine patch.  It's a much more active project
than app engine helper, and it works really well.
   
-Adam
   
On Oct 29, 10:04 am, Dan Sanderson [EMAIL PROTECTED]
 wrote:
   
 I'd recommend Django 1.0 along with the Helper or something
 similar.
You
 could use Django without the Helper if you accommodate some of the
   import
 technicalities, the Helper just makes it easier.  This article
   discusses
 using Django without the Helper (though I'm not sure if the article
   works
 out of the box with Django 1.0):
   http://code.google.com/appengine/articles/django.html
   
 See also the article on using the Helper, and the article on using
   Django
 1.0 via a feature called zipimport (which the Helper also
 supports):

   http://code.google.com/appengine/articles/appengine_helper_for_django.
 ..
  http://code.google.com/appengine/articles/django10_zipimport.html
   
 As far as compatibility goes, the runtime environment is versioned,
   with the
 intent that changes to a given version of the runtime will remain
   backwards
 compatible with apps that run with that version.  When a new
 version of
   the
 runtime environment is released containing incompatible changes,
 your
   app
 will continue to use the original version until you update your
   app.yaml
 file.  I haven't tried appenginepatch, but a version of it that
 works
   with
 v1 of the Python runtime ought to continue to do so even when
 there's a
   v2.
   
 -- Dan
   
 On Wed, Oct 29, 2008 at 9:24 AM, Daniel Larkin 
   [EMAIL PROTECTED]wrote:
   
  Hi all,
   
  I'd like to use Django on GAE for a small project. Ideally I'd
 like
   to
  use version 1.0 of Django rather than 0.96, and I'm aware there
 are
  various patches and helper scripts etc to make this possible.
 Yet,
  these approaches seem less than straight-forward (perhaps I'm
  incorrect there? I haven't actually tried them) and are such
 patches
  going to break with newer versions of GAE. After initially
 deciding
   to
  use Django 1.0, I'm now considering just using the built-in 0.96
  version, would this be such a bad idea for someone moving from
 php-
  land to an elegant python MVC design pattern based solution.
   
  Any comments would be greatly appreciated!
  thanks
  
   
  
 


--~--~-~--~~~---~--~~
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] How to update my new version of db on server

2008-11-19 Thread lp

Hello

I need advice. I have application version 1, in her database they is
one model:
id1 date_1  date_2  int_1   nameemail   pass
In version 1 I have 6000 input

In version 2 I separated model in two parts
id1 date_1 name email pass
id2 id1 int_1 date_2

I want put my version 2 in production on server to replace version 1

Was is the best (and safe) method?

--~--~-~--~~~---~--~~
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: quotas in appengine

2008-11-19 Thread Raj

I understand some of the reasons given above, I guess my app is not
for AppEngine then. I feel that Google would end up alienating
developers with their quota system. When they announced the AppEngine,
they talked about quotas in a different way - some millions or so cpu
hours would be free per month. But, with this per request quotas and
red warnings that I get for most urls long long before I have been
anywhere close to that enormous free stuff which was promised; I feel
that the facts wasn't communicated properly or I didn't understand
them properly. I don't have time to discuss this and waste my time
further, I am off to Amazon today.

Quota   Limit
Emails per Day  2,000
Bandwidth In per Day*   10,000 MB
Bandwidth Out per Day*  10,000 MB
HTTPS Bandwidth In per Day  2,000 MB
HTTPS Bandwidth Out per Day 2,000 MB
CPU Megacycles per Day  200,000,000
Total HTTP Requests per Day 650,000
HTTPS Requests per Day  130,000
Datastore API Calls per Day 2,500,000
URLFetch API Calls per Day  160,000

This is *bs*to at least a class of developers, because it is not true
in reality for them.


--~--~-~--~~~---~--~~
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] gql matching DateTimeProperty

2008-11-19 Thread niklasr

SELECT * FROM thing WHERE added =  '2008-06-08 22:17:45.200477 '
won't match
Neither
SELECT * FROM thing WHERE added   '2008-07-08 22:17:45.200477 ' and
added   '2008-06-08 22:17:45.200477 '
And
SELECT * FROM Ad WHERE added   '2006-11-18 22:17:45.200477 '
surprisingly matches many entities.

How match a day or a month interval, or an exact timepoint?




--~--~-~--~~~---~--~~
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: quotas in appengine

2008-11-19 Thread Jay Freeman (saurik)

It seems to me like, if this were a problem, then Google isn't doing their 
job when it comes to scaling our applications. When I'm using Amazon's S3 or 
their SimpleDB (or, for the most part, EC2) I just have to think about how 
much I pay for per GB used and per GB transferred. Amazon provides me 
almost no limitations on how much data I can store or how quickly I can 
access it, so why does Google? Is Amazon's ability to install more servers 
to handle increased load fundamentally greater than that of Google's? I wish 
less time was spent on quotas, even on features... even on /fixing bugs/ 
(and yes, even those which I consider to be blocking issues), and more time 
was spent on billing infrastructure so I could start paying them to scale in 
the way my application actually needs rather than in the ways they are 
willing to provide out of the kindness of their giant Google hearts for 
free. :( -J

--
From: Barry Hunter [EMAIL PROTECTED]
Sent: Sunday, November 09, 2008 10:57 AM
To: google-appengine@googlegroups.com
Subject: [google-appengine] Re: quotas in appengine

 Remember AppEngine is a 'shared' environment - lots of apps are all
 using a slice of the same resources.

 Would you rather that someone (maliciously or simply though ignorance)
 monopolizes all the resources (even if they are paying) and that
 brings your app (though no fault of your own) to a standstill.
... 


--~--~-~--~~~---~--~~
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: Local datastore import is too slow

2008-11-19 Thread selvakumar Muthusamy

I am also havin the same problem. Could you please clarify me if you
got the answer

On Nov 20, 5:35 am, Jyoti Shete-Javadekar
[EMAIL PROTECTED] wrote:
 Hi,
 I am trying to load my development datastore using the bulk loader script.
 However the import is very slow. I had to kill the import process since it
 was not completed even after 12 hours. I have about 13K rows in the CSV
 file. One data model entity is about 300 bytes. 10 entities are imported at
 a time. The model has two unicode attributes, two unicode list attributes ,
 one url and one long attribute. I use unicode.split to populate list
 attributes. I am running the bulk loader in a virtual machine having 512MB
 memory. During the import about 91% memory is utilized. I have not specified
 any custom index in index.yaml.

 Could someone please tell me why the import is so slow? What optimization
 should I do to improve the performance? I have not yet loaded the data at
 appspot. Above observations are for my local development server. Are there
 any performance numbers available for the bulk loader script?

 Thanks in advance,
 Jyoti
--~--~-~--~~~---~--~~
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: bulk upload

2008-11-19 Thread Gampesh

yes thank Marzia in log file i got that error was in my data there are
some ascii code which is not compatible with Gql Bulkupload parse.

Can you please help me on this :

if i want to store data in local server using same script just change
is in --url=http://localhost:8080/load; then i got following error:

INFO 2008-11-20 10:52:39,890 bulkload_client.py] Starting import;
maximum 10 entities per post
INFO 2008-11-20 10:52:39,890 bulkload_client.py] Importing 10
entities in 4673 bytes
ERROR2008-11-20 10:52:41,765 bulkload_client.py] An error occurred
while importing: (10061, 'Connection refused')
ERROR2008-11-20 10:52:41,780 bulkload_client.py] Import failed

Same script is running for google app enging data store.

Thanks for the help.

On Nov 19, 10:11 pm, Marzia Niccolai [EMAIL PROTECTED] wrote:
 Hi,

 What error is listed in your logs for this message?

 http://appengine.google.com/logs?app_id=xx

 -Marzia

 On Wed, Nov 19, 2008 at 5:36 AM, Gampesh [EMAIL PROTECTED] wrote:

  my bulkupload was working properly but after two or three upload of
  data i got following error

  can any body help me?
  Thanks

  INFO 2008-11-19 19:00:38,358 bulkload_client.py] Starting import;
  maximum 10 entities per post
  INFO 2008-11-19 19:00:38,358 bulkload_client.py] Importing 10
  entities in 5379 bytes
  ERROR2008-11-19 19:00:43,828 bulkload_client.py] An error occurred
  while importing: Received code 500: Internal Server Error

  htmlhead
  meta http-equiv=content-type content=text/html;charset=utf-8
  title500 Server Error/title
  /head
  body text=#00 bgcolor=#ff
  h1Error: Server Error/h1
  h2The server encountered an error and could not complete your
  request.pIf the problem persists, please A HREF=http://
 www.google.com/support/report/A your proble
  m and mention this error message and the query that caused it./h2
  h2/h2
  /body/html

  ERROR2008-11-19 19:00:43,858 bulkload_client.py] Import failed
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---