1"""
2This module provides means to detect the App Engine environment.
3"""
4
5import os
6
7
8def is_appengine():
9    return is_local_appengine() or is_prod_appengine()
10
11
12def is_appengine_sandbox():
13    """Reports if the app is running in the first generation sandbox.
14
15    The second generation runtimes are technically still in a sandbox, but it
16    is much less restrictive, so generally you shouldn't need to check for it.
17    see https://cloud.google.com/appengine/docs/standard/runtimes
18    """
19    return is_appengine() and os.environ["APPENGINE_RUNTIME"] == "python27"
20
21
22def is_local_appengine():
23    return "APPENGINE_RUNTIME" in os.environ and os.environ.get(
24        "SERVER_SOFTWARE", ""
25    ).startswith("Development/")
26
27
28def is_prod_appengine():
29    return "APPENGINE_RUNTIME" in os.environ and os.environ.get(
30        "SERVER_SOFTWARE", ""
31    ).startswith("Google App Engine/")
32
33
34def is_prod_appengine_mvms():
35    """Deprecated."""
36    return False
37