appengine-python-standard 1.1.9__tar.gz → 1.2.0b0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. {appengine_python_standard-1.1.9/src/appengine_python_standard.egg-info → appengine_python_standard-1.2.0b0}/PKG-INFO +12 -2
  2. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/setup.py +2 -1
  3. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0/src/appengine_python_standard.egg-info}/PKG-INFO +12 -2
  4. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/appengine_python_standard.egg-info/requires.txt +3 -0
  5. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/mail.py +68 -9
  6. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/LICENSE +0 -0
  7. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/README.md +0 -0
  8. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/setup.cfg +0 -0
  9. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/appengine_python_standard.egg-info/SOURCES.txt +0 -0
  10. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/appengine_python_standard.egg-info/dependency_links.txt +0 -0
  11. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/appengine_python_standard.egg-info/namespace_packages.txt +0 -0
  12. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/appengine_python_standard.egg-info/top_level.txt +0 -0
  13. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/__init__.py +0 -0
  14. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/__init__.py +0 -0
  15. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/__init__.py +0 -0
  16. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/antlr3/__init__.py +0 -0
  17. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/antlr3/compat.py +0 -0
  18. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/antlr3/constants.py +0 -0
  19. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/antlr3/dfa.py +0 -0
  20. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/antlr3/dottreegen.py +0 -0
  21. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/antlr3/exceptions.py +0 -0
  22. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/antlr3/extras.py +0 -0
  23. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/antlr3/main.py +0 -0
  24. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/antlr3/recognizers.py +0 -0
  25. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/antlr3/streams.py +0 -0
  26. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/antlr3/tokens.py +0 -0
  27. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/antlr3/tree.py +0 -0
  28. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/antlr3/treewizard.py +0 -0
  29. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/protorpc/__init__.py +0 -0
  30. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/protorpc/definition.py +0 -0
  31. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/protorpc/descriptor.py +0 -0
  32. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/protorpc/descriptor2py.py +0 -0
  33. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/protorpc/gen_protorpc.py +0 -0
  34. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/protorpc/generate.py +0 -0
  35. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/protorpc/generate_proto.py +0 -0
  36. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/protorpc/generate_python.py +0 -0
  37. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/protorpc/message_types.py +0 -0
  38. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/protorpc/messages.py +0 -0
  39. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/protorpc/non_sdk_imports.py +0 -0
  40. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/protorpc/protobuf.py +0 -0
  41. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/protorpc/protobuf_base.py +0 -0
  42. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/protorpc/protojson.py +0 -0
  43. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/protorpc/protourlencode.py +0 -0
  44. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/protorpc/registry.py +0 -0
  45. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/protorpc/remote.py +0 -0
  46. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/protorpc/transport.py +0 -0
  47. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/protorpc/util.py +0 -0
  48. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/protorpc/wsgi/__init__.py +0 -0
  49. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/protorpc/wsgi/service.py +0 -0
  50. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/_internal/protorpc/wsgi/util.py +0 -0
  51. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/__init__.py +0 -0
  52. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/api_base_pb2.py +0 -0
  53. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/api_testutil.py +0 -0
  54. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/apiproxy_rpc.py +0 -0
  55. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/apiproxy_stub.py +0 -0
  56. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/apiproxy_stub_map.py +0 -0
  57. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/app_identity/__init__.py +0 -0
  58. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/app_identity/_metadata_server.py +0 -0
  59. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/app_identity/app_identity.py +0 -0
  60. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/app_identity/app_identity_defaultcredentialsbased_stub.py +0 -0
  61. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/app_identity/app_identity_keybased_stub.py +0 -0
  62. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/app_identity/app_identity_service_pb2.py +0 -0
  63. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/app_identity/app_identity_stub.py +0 -0
  64. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/app_identity/app_identity_stub_base.py +0 -0
  65. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/appinfo.py +0 -0
  66. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/appinfo_errors.py +0 -0
  67. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/backendinfo.py +0 -0
  68. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/background_thread/__init__.py +0 -0
  69. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/background_thread/background_thread.py +0 -0
  70. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/blobstore/__init__.py +0 -0
  71. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/blobstore/blob_storage.py +0 -0
  72. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/blobstore/blobstore.py +0 -0
  73. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/blobstore/blobstore_service_pb2.py +0 -0
  74. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/blobstore/blobstore_stub.py +0 -0
  75. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/blobstore/blobstore_stub_service_pb2.py +0 -0
  76. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/blobstore/dict_blob_storage.py +0 -0
  77. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/blobstore/file_blob_storage.py +0 -0
  78. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/capabilities/__init__.py +0 -0
  79. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/capabilities/capability_service_pb2.py +0 -0
  80. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/capabilities/capability_stub.py +0 -0
  81. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/cmp_compat.py +0 -0
  82. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/croninfo.py +0 -0
  83. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/datastore.py +0 -0
  84. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/datastore_admin.py +0 -0
  85. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/datastore_entities.py +0 -0
  86. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/datastore_errors.py +0 -0
  87. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/datastore_file_stub.py +0 -0
  88. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/datastore_types.py +0 -0
  89. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/dispatchinfo.py +0 -0
  90. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/full_app_id.py +0 -0
  91. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/images/__init__.py +0 -0
  92. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/images/image_comparison.py +0 -0
  93. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/images/images_blob_stub.py +0 -0
  94. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/images/images_service_pb2.py +0 -0
  95. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/images/images_stub.py +0 -0
  96. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/lib_config.py +0 -0
  97. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/mail_errors.py +0 -0
  98. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/mail_service_pb2.py +0 -0
  99. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/mail_stub.py +0 -0
  100. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/mail_stub_service_pb2.py +0 -0
  101. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/memcache/__init__.py +0 -0
  102. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/memcache/memcache_service_pb2.py +0 -0
  103. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/memcache/memcache_stub.py +0 -0
  104. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/memcache/memcache_stub_service_pb2.py +0 -0
  105. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/module_testutil.py +0 -0
  106. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/modules/__init__.py +0 -0
  107. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/modules/modules.py +0 -0
  108. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/modules/modules_service_pb2.py +0 -0
  109. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/modules/modules_stub.py +0 -0
  110. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/namespace_manager/__init__.py +0 -0
  111. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/namespace_manager/namespace_manager.py +0 -0
  112. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/oauth/__init__.py +0 -0
  113. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/oauth/oauth_api.py +0 -0
  114. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/queueinfo.py +0 -0
  115. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/request_info.py +0 -0
  116. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/runtime/__init__.py +0 -0
  117. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/runtime/runtime.py +0 -0
  118. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/search/ExpressionLexer.py +0 -0
  119. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/search/ExpressionParser.py +0 -0
  120. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/search/QueryLexer.py +0 -0
  121. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/search/QueryParser.py +0 -0
  122. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/search/__init__.py +0 -0
  123. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/search/expression_parser.py +0 -0
  124. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/search/geo_util.py +0 -0
  125. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/search/query_parser.py +0 -0
  126. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/search/search.py +0 -0
  127. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/search/search_service_pb2.py +0 -0
  128. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/search/search_util.py +0 -0
  129. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/search/simple_search_stub.py +0 -0
  130. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/search/stub/__init__.py +0 -0
  131. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/search/stub/document_matcher.py +0 -0
  132. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/search/stub/expression_evaluator.py +0 -0
  133. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/search/stub/simple_facet.py +0 -0
  134. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/search/stub/simple_tokenizer.py +0 -0
  135. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/search/stub/tokens.py +0 -0
  136. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/search/unicode_util.py +0 -0
  137. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/stublib.py +0 -0
  138. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/system/__init__.py +0 -0
  139. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/system/system_service_pb2.py +0 -0
  140. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/system/system_stub.py +0 -0
  141. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/taskqueue/__init__.py +0 -0
  142. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/taskqueue/taskqueue.py +0 -0
  143. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/taskqueue/taskqueue_service_bytes_pb2.py +0 -0
  144. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/taskqueue/taskqueue_stub.py +0 -0
  145. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/titanoboa_request_info.py +0 -0
  146. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/urlfetch.py +0 -0
  147. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/urlfetch_errors.py +0 -0
  148. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/urlfetch_service_pb2.py +0 -0
  149. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/urlfetch_stub.py +0 -0
  150. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/user_service_pb2.py +0 -0
  151. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/user_service_stub.py +0 -0
  152. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/users.py +0 -0
  153. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/validation.py +0 -0
  154. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/yaml_builder.py +0 -0
  155. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/yaml_errors.py +0 -0
  156. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/yaml_listener.py +0 -0
  157. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/yaml_object.py +0 -0
  158. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/api/yaml_test_util.py +0 -0
  159. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/base/__init__.py +0 -0
  160. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/base/capabilities_pb2.py +0 -0
  161. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/datastore/__init__.py +0 -0
  162. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/datastore/action_pb2.py +0 -0
  163. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/datastore/cloud_datastore_v1_remote_stub.py +0 -0
  164. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/datastore/cloud_datastore_v1_stub.py +0 -0
  165. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/datastore/cloud_datastore_validator.py +0 -0
  166. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/datastore/datastore_index.py +0 -0
  167. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/datastore/datastore_index_xml.py +0 -0
  168. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/datastore/datastore_pb.py +0 -0
  169. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/datastore/datastore_pbs.py +0 -0
  170. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/datastore/datastore_query.py +0 -0
  171. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/datastore/datastore_rpc.py +0 -0
  172. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/datastore/datastore_stub_index.py +0 -0
  173. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/datastore/datastore_stub_util.py +0 -0
  174. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/datastore/datastore_v3_bytes_pb2.py +0 -0
  175. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/datastore/datastore_v4_pb2.py +0 -0
  176. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/datastore/datastore_v4_stub.py +0 -0
  177. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/datastore/datastore_v4_validator.py +0 -0
  178. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/datastore/document_pb2.py +0 -0
  179. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/datastore/entity_bytes_pb2.py +0 -0
  180. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/datastore/entity_v4_pb2.py +0 -0
  181. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/datastore/snapshot_pb2.py +0 -0
  182. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/datastore/sortable_pb_encoder.py +0 -0
  183. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/__init__.py +0 -0
  184. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/blobstore/__init__.py +0 -0
  185. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/blobstore/blobstore.py +0 -0
  186. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/db/__init__.py +0 -0
  187. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/db/metadata.py +0 -0
  188. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/db/polymodel.py +0 -0
  189. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/db/stats.py +0 -0
  190. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/db/sync.py +0 -0
  191. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/deferred/__init__.py +0 -0
  192. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/deferred/deferred.py +0 -0
  193. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/gql/__init__.py +0 -0
  194. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/key_range/__init__.py +0 -0
  195. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/ndb/__init__.py +0 -0
  196. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/ndb/blobstore.py +0 -0
  197. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/ndb/context.py +0 -0
  198. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/ndb/django_middleware.py +0 -0
  199. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/ndb/eventloop.py +0 -0
  200. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/ndb/key.py +0 -0
  201. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/ndb/key_test.py +0 -0
  202. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/ndb/metadata.py +0 -0
  203. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/ndb/model.py +0 -0
  204. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/ndb/msgprop.py +0 -0
  205. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/ndb/polymodel.py +0 -0
  206. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/ndb/query.py +0 -0
  207. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/ndb/stats.py +0 -0
  208. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/ndb/tasklets.py +0 -0
  209. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/ndb/test_utils.py +0 -0
  210. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/ndb/utils.py +0 -0
  211. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/remote_api/__init__.py +0 -0
  212. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/remote_api/remote_api_bytes_pb2.py +0 -0
  213. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/ext/testbed/__init__.py +0 -0
  214. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/runtime/__init__.py +0 -0
  215. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/runtime/apiproxy.py +0 -0
  216. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/runtime/apiproxy_errors.py +0 -0
  217. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/runtime/background.py +0 -0
  218. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/runtime/callback.py +0 -0
  219. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/runtime/context/__init__.py +0 -0
  220. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/runtime/context/ctx_test_util.py +0 -0
  221. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/runtime/context/gae_headers.py +0 -0
  222. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/runtime/context/wsgi.py +0 -0
  223. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/runtime/default_api_stub.py +0 -0
  224. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/runtime/initialize.py +0 -0
  225. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/runtime/middlewares.py +0 -0
  226. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/runtime/request_environment.py +0 -0
  227. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/runtime/thread_hooks.py +0 -0
  228. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/tools/__init__.py +0 -0
  229. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/tools/app_engine_config_exception.py +0 -0
  230. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/tools/os_compat.py +0 -0
  231. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/tools/queue_xml_parser.py +0 -0
  232. {appengine_python_standard-1.1.9 → appengine_python_standard-1.2.0b0}/src/google/appengine/tools/xml_parser_utils.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: appengine-python-standard
3
- Version: 1.1.9
3
+ Version: 1.2.0b0
4
4
  Summary: Google App Engine services SDK for Python 3
5
5
  Home-page: https://github.com/GoogleCloudPlatform/appengine-python-standard
6
6
  Author: Google LLC
@@ -21,6 +21,16 @@ Requires-Dist: requests>=2.25.1
21
21
  Requires-Dist: ruamel.yaml>=0.17.7
22
22
  Requires-Dist: six>=1.15.0
23
23
  Requires-Dist: urllib3<2,>=1.26.2
24
+ Requires-Dist: legacy-cgi>=2.6.2; python_version >= "3.10"
25
+ Dynamic: author
26
+ Dynamic: classifier
27
+ Dynamic: description
28
+ Dynamic: description-content-type
29
+ Dynamic: home-page
30
+ Dynamic: license-file
31
+ Dynamic: requires-dist
32
+ Dynamic: requires-python
33
+ Dynamic: summary
24
34
 
25
35
  # Google App Engine bundled services SDK for Python 3
26
36
 
@@ -5,7 +5,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
5
5
 
6
6
  setuptools.setup(
7
7
  name="appengine-python-standard",
8
- version="1.1.9",
8
+ version="1.2.0-beta",
9
9
  author="Google LLC",
10
10
  description="Google App Engine services SDK for Python 3",
11
11
  long_description=long_description,
@@ -26,6 +26,7 @@ setuptools.setup(
26
26
  "ruamel.yaml>=0.17.7",
27
27
  "six>=1.15.0",
28
28
  "urllib3>=1.26.2,<2",
29
+ "legacy-cgi>=2.6.2; python_version>='3.10'",
29
30
  ],
30
31
  classifiers=[
31
32
  "Programming Language :: Python :: 3",
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: appengine-python-standard
3
- Version: 1.1.9
3
+ Version: 1.2.0b0
4
4
  Summary: Google App Engine services SDK for Python 3
5
5
  Home-page: https://github.com/GoogleCloudPlatform/appengine-python-standard
6
6
  Author: Google LLC
@@ -21,6 +21,16 @@ Requires-Dist: requests>=2.25.1
21
21
  Requires-Dist: ruamel.yaml>=0.17.7
22
22
  Requires-Dist: six>=1.15.0
23
23
  Requires-Dist: urllib3<2,>=1.26.2
24
+ Requires-Dist: legacy-cgi>=2.6.2; python_version >= "3.10"
25
+ Dynamic: author
26
+ Dynamic: classifier
27
+ Dynamic: description
28
+ Dynamic: description-content-type
29
+ Dynamic: home-page
30
+ Dynamic: license-file
31
+ Dynamic: requires-dist
32
+ Dynamic: requires-python
33
+ Dynamic: summary
24
34
 
25
35
  # Google App Engine bundled services SDK for Python 3
26
36
 
@@ -9,3 +9,6 @@ requests>=2.25.1
9
9
  ruamel.yaml>=0.17.7
10
10
  six>=1.15.0
11
11
  urllib3<2,>=1.26.2
12
+
13
+ [:python_version >= "3.10"]
14
+ legacy-cgi>=2.6.2
@@ -45,6 +45,8 @@ from email.mime.multipart import MIMEMultipart
45
45
  from email.mime.text import MIMEText
46
46
  import functools
47
47
  import logging
48
+ import os
49
+ import smtplib
48
50
  import typing
49
51
 
50
52
  from google.appengine.api import api_base_pb2
@@ -1197,20 +1199,77 @@ class _EmailMessageBase(object):
1197
1199
  return self.to_mime_message()
1198
1200
 
1199
1201
  def send(self, make_sync_call=apiproxy_stub_map.MakeSyncCall):
1200
- """Sends an email message via the Mail API.
1202
+ """Sends an email message via the Mail API or SMTP.
1203
+
1204
+ If the 'USE_SMTP_MAIL_SERVICE' environment variable is set to 'true', this
1205
+ method will send the email via SMTP using credentials from other
1206
+ environment variables. Otherwise, it falls back to the App Engine Mail API.
1201
1207
 
1202
1208
  Args:
1203
1209
  make_sync_call: Method that will make a synchronous call to the API proxy.
1204
1210
  """
1205
- message = self.ToProto()
1206
- response = api_base_pb2.VoidProto()
1211
+ if os.environ.get('APPENGINE_USE_SMTP_MAIL_SERVICE') == 'true':
1212
+ logging.info('Sending email via SMTP.')
1213
+ mime_message = self.to_mime_message()
1214
+
1215
+ # The Bcc header should not be in the final message.
1216
+ if 'Bcc' in mime_message:
1217
+ del mime_message['Bcc']
1218
+
1219
+ recipients = []
1220
+ if isinstance(self, AdminEmailMessage):
1221
+ admin_emails = os.environ.get('APPENGINE_ADMIN_EMAIL_RECIPIENTS')
1222
+ if admin_emails:
1223
+ recipients.extend(admin_emails.split(','))
1224
+ else:
1225
+ if hasattr(self, 'to'):
1226
+ recipients.extend(_email_sequence(self.to))
1227
+ if hasattr(self, 'cc'):
1228
+ recipients.extend(_email_sequence(self.cc))
1229
+ if hasattr(self, 'bcc'):
1230
+ recipients.extend(_email_sequence(self.bcc))
1231
+
1232
+ if not recipients:
1233
+ raise MissingRecipientsError()
1234
+
1235
+ try:
1236
+ host = os.environ['APPENGINE_SMTP_HOST']
1237
+ port = int(os.environ.get('APPENGINE_SMTP_PORT', 587))
1238
+ user = os.environ.get('APPENGINE_SMTP_USER')
1239
+ password = os.environ.get('APPENGINE_SMTP_PASSWORD')
1240
+ use_tls = os.environ.get('APPENGINE_SMTP_USE_TLS', 'true').lower() == 'true'
1241
+
1242
+ with smtplib.SMTP(host, port) as server:
1243
+ if use_tls:
1244
+ server.starttls()
1245
+ if user and password:
1246
+ server.login(user, password)
1247
+ server.send_message(mime_message, from_addr=self.sender, to_addrs=recipients)
1248
+ logging.info('Email sent successfully via SMTP.')
1249
+
1250
+ except smtplib.SMTPAuthenticationError as e:
1251
+ logging.error('SMTP authentication failed: %s', e.smtp_error)
1252
+ raise InvalidSenderError(f'SMTP authentication failed: {e.smtp_error}')
1253
+ except (smtplib.SMTPException, OSError) as e:
1254
+ logging.error('Failed to send email via SMTP: %s', e)
1255
+ raise Error(f'Failed to send email via SMTP: {e}')
1256
+ except KeyError as e:
1257
+ logging.error('Missing required SMTP environment variable: %s', e)
1258
+ raise Error(f'Missing required SMTP environment variable: {e}')
1207
1259
 
1208
- try:
1209
- make_sync_call('mail', self._API_CALL, message, response)
1210
- except apiproxy_errors.ApplicationError as e:
1211
- if e.application_error in ERROR_MAP:
1212
- raise ERROR_MAP[e.application_error](e.error_detail)
1213
- raise e
1260
+ else:
1261
+ logging.info('Sending email via App Engine Mail API.')
1262
+ message = self.ToProto()
1263
+ response = api_base_pb2.VoidProto()
1264
+
1265
+ try:
1266
+ make_sync_call('mail', self._API_CALL, message, response)
1267
+ logging.info('Email sent successfully via App Engine Mail API.')
1268
+ except apiproxy_errors.ApplicationError as e:
1269
+ logging.error('App Engine Mail API error: %s', e)
1270
+ if e.application_error in ERROR_MAP:
1271
+ raise ERROR_MAP[e.application_error](e.error_detail)
1272
+ raise e
1214
1273
 
1215
1274
 
1216
1275
  def Send(self, *args, **kwds):