Does anybody know, how GAE limit Python interpreter? For instance, the way they block IO procedures, or URL procedures.

Hosting that is shared also get it done in some manner?

From Google's site:

  • A credit card applicatoin are only able to access other computer systems on the web with the provided URL fetch and email services. Other computer systems are only able to connect with the applying by looking into making HTTP (or HTTPS) demands around the standard ports.

  • A credit card applicatoin cannot email the file system. An application can see files, only files submitted using the application code. The application must use the Application Engine datastore, memcache or other services for those data that continues between demands.

  • Application code only runs in reaction to an internet request, a queued task, or perhaps a scheduled task, and should return response data within 30 seconds regardless. A request handler cannot spawn a sub-process or execute code following the response has been sent.

Beyond that, you are tied to Python 2.5, you cannot use any C-based extensions, more up-to-date versions of web frameworks will not work in some instances (Python 2.5 again).

Read the entire article What's Google Application Engine?.

The sandbox "internally works" by them getting a unique version from the Python interpreter. You are not running the conventional Python executable, only one especially modified to operate on the internet Application engine.

Update:

With no it isn't an online machine within the regular sense. Each application doesn't have an entire virtual PC. There might be some virtualization happening, but Google is not saying just how much or what.

A procedure has normally within an operating-system already limited use of the relaxation from the OS and also the hardware. Google have limited this much more and also you have an atmosphere where you stand only permitted to see the specific areas of the file system, and never email it whatsoever, you aren't permitted to spread out electrical sockets and never permitted to create system calls etc.

I'm not sure where level OS/Filesystem/Interpreter each limitation is implemented, though.

I discovered this website

with a pretty decent information. Exactly what are you attempting to do?

Here

FRESH!

Take a look here: http://code.google.com/appengine/paperwork/python/runtime.html

Your IO Procedures are limited the following (beyond disabled modules):

Application Engine records just how much of every resource a credit card applicatoin uses inside a calendar day, and views the resource depleted if this amount reaches the app's quota for that resource. A calendar day is a time of 24 hrs beginning at night time, Off-shore Time. Application Engine starts over all resource dimensions at the outset of every day, aside from Saved Data which always signifies the quantity of datastore storage being used.

When an application consumes all an allotted resource, the resource becomes not available before the quota is replenished. This might imply that your application won't work before the quota is replenished.

A credit card applicatoin can figure out how much CPU time the present request has had to date by calling the Quota API. This really is helpful for profiling CPU-intensive code, and finding places where CPU efficiency could be enhanced for greater financial savings. You are able to appraise the CPU used for the whole request, or call the API pre and post a piece of code then take away to look for the CPU used between individuals two points.

Resource Free Default Quota Billing Enabled Default Quota Blobstore Saved Data 1 GB 1 GB free no maximum Resource Billing Enabled Default Quota Daily Limit Maximum Rate Blobstore API Calls 140,000,000 calls 72,000 calls/minute

Hmm my table is not so good, but hopefully still readable.

EDIT: OK, I realize. But mister, you didn't need to use the "f" word. :) And also you know, it's kinda such as the whole 'teach a guy to fish' scenario. Bing is who I usually request which explains why I am responding to questions for fun.

EDIT AGAIN: OK that made more sense prior to the comment was tooked. And So I went and clarified the question a bit more. I really hope it will help.