[Python-modules-commits] [python-botocore] 01/01: Import python-botocore_1.4.60.orig.tar.gz

Takaki Taniguchi takaki at moszumanska.debian.org
Tue Oct 11 01:14:31 UTC 2016


This is an automated email from the git hooks/post-receive script.

takaki pushed a commit to branch upstream
in repository python-botocore.

commit af927425f0e0e7f91a231c785a0e888e66971644
Author: TANIGUCHI Takaki <takaki at asis.media-as.org>
Date:   Tue Oct 11 09:22:54 2016 +0900

    Import python-botocore_1.4.60.orig.tar.gz
---
 PKG-INFO                                           |    7 +-
 README.rst                                         |    5 +-
 botocore.egg-info/PKG-INFO                         |    7 +-
 botocore.egg-info/SOURCES.txt                      |   58 +-
 botocore/__init__.py                               |    2 +-
 botocore/args.py                                   |  194 +
 botocore/auth.py                                   |   56 +-
 botocore/awsrequest.py                             |   13 +-
 botocore/client.py                                 |  606 ++-
 botocore/compat.py                                 |   48 +
 botocore/config.py                                 |  352 +-
 botocore/{config.py => configloader.py}            |    3 +-
 botocore/credentials.py                            |  246 +-
 botocore/data/_endpoints.json                      |  226 -
 botocore/data/_retry.json                          |   30 +
 botocore/data/acm/2015-12-08/paginators-1.json     |   11 +
 botocore/data/acm/2015-12-08/service-2.json        |  411 +-
 botocore/data/apigateway/2015-07-09/service-2.json | 4398 +++++++++---------
 .../2016-02-06/paginators-1.json                   |   22 +
 .../2016-02-06/service-2.json                      |  766 ++++
 .../data/autoscaling/2011-01-01/service-2.json     |  656 ++-
 .../data/cloudformation/2010-05-15/service-2.json  |  709 ++-
 .../data/cloudformation/2010-05-15/waiters-2.json  |  235 +
 botocore/data/cloudfront/2016-01-28/service-2.json |   24 +-
 .../data/cloudfront/2016-08-01/paginators-1.json   |   32 +
 .../{2016-01-28 => 2016-08-01}/service-2.json      |  537 ++-
 botocore/data/cloudfront/2016-08-01/waiters-2.json |   47 +
 .../data/cloudfront/2016-08-20/paginators-1.json   |   32 +
 .../{2016-01-28 => 2016-08-20}/service-2.json      |  590 ++-
 botocore/data/cloudfront/2016-08-20/waiters-2.json |   47 +
 .../data/cloudfront/2016-09-07/paginators-1.json   |   32 +
 .../{2016-01-28 => 2016-09-07}/service-2.json      |  608 ++-
 botocore/data/cloudfront/2016-09-07/waiters-2.json |   47 +
 botocore/data/cloudhsm/2014-05-30/service-2.json   |  642 ++-
 .../cloudsearchdomain/2013-01-01/service-2.json    |  190 +-
 botocore/data/cloudtrail/2013-11-01/service-2.json |  171 +-
 botocore/data/cloudwatch/2010-08-01/service-2.json |  607 +--
 .../data/codecommit/2015-04-13/paginators-1.json   |   14 +
 botocore/data/codecommit/2015-04-13/service-2.json | 1248 ++---
 botocore/data/codedeploy/2014-10-06/service-2.json | 2176 ++++-----
 botocore/data/codedeploy/2014-10-06/waiters-2.json |   30 +
 .../data/codepipeline/2015-07-09/service-2.json    | 1238 +++--
 .../cognito-identity/2014-06-30/service-2.json     | 1111 ++---
 .../data/cognito-idp/2016-04-18/service-2.json     | 4341 ++++++++++++++++++
 botocore/data/config/2014-11-12/service-2.json     |  217 +-
 .../data/devicefarm/2015-06-23/paginators-1.json   |   59 +
 botocore/data/devicefarm/2015-06-23/service-2.json |  836 +++-
 .../data/directconnect/2012-10-25/service-2.json   |  133 +-
 botocore/data/discovery/2015-11-01/service-2.json  |  761 ++++
 botocore/data/dms/2016-01-01/service-2.json        | 2427 ++++++++++
 botocore/data/ds/2015-04-16/service-2.json         |  888 +++-
 botocore/data/dynamodb/2012-08-10/service-2.json   |  784 ++--
 .../data/dynamodbstreams/2012-08-10/service-2.json |  204 +-
 botocore/data/ec2/2015-10-01/paginators-1.json     |    6 +
 botocore/data/ec2/2015-10-01/service-2.json        | 1597 +++++--
 botocore/data/ec2/2015-10-01/waiters-2.json        |  128 +-
 .../{2015-10-01 => 2016-04-01}/paginators-1.json   |    6 +
 .../ec2/{2015-10-01 => 2016-04-01}/service-2.json  | 2539 ++++++++---
 .../ec2/{2015-10-01 => 2016-04-01}/waiters-2.json  |  146 +-
 botocore/data/ec2/2016-09-15/examples-1.json       | 3740 +++++++++++++++
 .../{2015-10-01 => 2016-09-15}/paginators-1.json   |    6 +
 .../ec2/{2015-10-01 => 2016-09-15}/service-2.json  | 2803 +++++++++---
 .../ec2/{2015-10-01 => 2016-09-15}/waiters-2.json  |  138 +-
 botocore/data/ecr/2015-09-21/paginators-1.json     |   10 +
 botocore/data/ecr/2015-09-21/service-2.json        |   53 +-
 botocore/data/ecs/2014-11-13/service-2.json        |  206 +-
 botocore/data/efs/2015-02-01/service-2.json        |  653 +--
 .../data/elasticache/2015-02-02/service-2.json     | 2880 +++---------
 .../elasticbeanstalk/2010-12-01/examples-1.json    | 1109 +++++
 .../elasticbeanstalk/2010-12-01/service-2.json     |  445 +-
 .../elastictranscoder/2012-09-25/service-2.json    | 1030 +----
 botocore/data/elb/2012-06-01/service-2.json        | 1258 ++---
 botocore/data/elbv2/2015-12-01/paginators-1.json   |   22 +
 botocore/data/elbv2/2015-12-01/service-2.json      | 2470 ++++++++++
 botocore/data/emr/2009-03-31/service-2.json        |  539 ++-
 botocore/data/emr/2009-03-31/waiters-2.json        |   19 +
 botocore/data/endpoints.json                       | 1422 ++++++
 botocore/data/es/2015-01-01/service-2.json         |  476 +-
 botocore/data/events/2015-10-07/service-2.json     |  997 ++++
 botocore/data/firehose/2015-08-04/service-2.json   |  578 ++-
 botocore/data/gamelift/2015-10-01/service-2.json   | 3706 +++++++++++++++
 botocore/data/iam/2010-05-08/paginators-1.json     |  121 +-
 botocore/data/iam/2010-05-08/service-2.json        |  858 ++--
 botocore/data/inspector/2016-02-16/service-2.json  | 2782 ++++++++++++
 botocore/data/iot/2015-05-28/service-2.json        | 2711 +++++++++--
 botocore/data/kinesis/2013-12-02/paginators-1.json |    3 +-
 botocore/data/kinesis/2013-12-02/service-2.json    |  676 ++-
 .../kinesisanalytics/2015-08-14/service-2.json     | 1595 +++++++
 botocore/data/kms/2014-11-01/service-2.json        | 2420 +++-------
 botocore/data/lambda/2015-03-31/service-2.json     | 1471 +++---
 botocore/data/logs/2014-03-28/service-2.json       |  143 +-
 .../data/machinelearning/2014-12-12/service-2.json |  594 ++-
 .../2015-07-01/service-2.json                      |  188 +-
 .../meteringmarketplace/2016-01-14/service-2.json  |  151 +
 botocore/data/opsworks/2013-02-18/service-2.json   |  288 +-
 botocore/data/opsworks/2013-02-18/waiters-2.json   |  295 ++
 botocore/data/rds/2014-10-31/paginators-1.json     |    6 +
 botocore/data/rds/2014-10-31/service-2.json        | 2145 ++++++---
 botocore/data/redshift/2012-12-01/service-2.json   | 4783 ++++++--------------
 botocore/data/route53/2013-04-01/service-2.json    |  993 ++--
 .../data/route53domains/2014-05-15/service-2.json  |  895 ++--
 botocore/data/s3/2006-03-01/paginators-1.json      |   10 +
 botocore/data/s3/2006-03-01/service-2.json         |  325 +-
 .../data/servicecatalog/2015-12-10/service-2.json  | 1238 +++++
 botocore/data/ses/2010-12-01/service-2.json        | 1008 ++---
 botocore/data/snowball/2016-06-30/service-2.json   |  860 ++++
 botocore/data/sns/2010-03-31/service-2.json        | 1542 ++-----
 botocore/data/sqs/2012-11-05/service-2.json        |  508 +--
 botocore/data/ssm/2014-11-06/service-2.json        | 1073 ++++-
 .../data/storagegateway/2013-06-30/service-2.json  | 1739 +++----
 botocore/data/sts/2011-06-15/service-2.json        |  130 +-
 botocore/data/support/2013-04-15/service-2.json    |  460 +-
 botocore/data/waf/2015-08-24/service-2.json        |  474 +-
 botocore/data/workspaces/2015-04-08/service-2.json |  621 ++-
 botocore/docs/bcdoc/docstringparser.py             |  189 +-
 botocore/docs/bcdoc/style.py                       |   19 +-
 botocore/docs/bcdoc/textwriter.py                  |   78 +-
 botocore/docs/example.py                           |    6 +-
 botocore/docs/method.py                            |   14 +-
 botocore/docs/params.py                            |   26 +-
 botocore/docs/shape.py                             |   28 +-
 botocore/docs/sharedexample.py                     |    2 +-
 botocore/endpoint.py                               |  107 +-
 botocore/exceptions.py                             |   88 +-
 botocore/handlers.py                               |  227 +-
 botocore/hooks.py                                  |   41 +-
 botocore/loaders.py                                |    9 +-
 botocore/model.py                                  |   14 +-
 botocore/paginate.py                               |   95 +-
 botocore/parsers.py                                |   69 +-
 botocore/regions.py                                |  240 +-
 botocore/response.py                               |   14 +-
 botocore/retryhandler.py                           |    6 +-
 botocore/serialize.py                              |   11 +-
 botocore/session.py                                |  102 +-
 botocore/signers.py                                |  214 +-
 botocore/stub.py                                   |  364 ++
 botocore/translate.py                              |  479 +-
 botocore/utils.py                                  |  334 +-
 botocore/validate.py                               |   25 +-
 botocore/waiter.py                                 |   25 +-
 docs/source/conf.py                                |    4 +-
 docs/source/reference/config.rst                   |   11 +
 docs/source/reference/stubber.rst                  |   11 +
 requirements.txt                                   |    2 +-
 tests/__init__.py                                  |   78 +-
 tests/functional/docs/test_alias.py                |   36 +
 tests/functional/test_alias.py                     |   84 +
 tests/functional/test_apigateway.py                |   42 +
 tests/functional/test_credentials.py               |   97 +
 tests/functional/test_iot_data.py                  |   14 +-
 tests/functional/test_paginate.py                  |   60 +
 tests/functional/test_paginator_config.py          |  155 +
 tests/functional/test_regions.py                   |  500 ++
 tests/functional/test_s3.py                        |  436 +-
 tests/functional/test_session.py                   |   14 +
 tests/functional/test_stub.py                      |  234 +
 tests/functional/test_waiter_config.py             |   59 +-
 tests/integration/test_apigateway.py               |   11 +-
 tests/integration/test_client.py                   |   15 +-
 tests/integration/test_credentials.py              |    2 +
 tests/integration/test_ec2.py                      |   16 +-
 tests/integration/test_rds.py                      |    3 +-
 tests/integration/test_route53.py                  |   23 +-
 tests/integration/test_s3.py                       |  121 +-
 tests/integration/test_smoke.py                    |   20 +-
 tests/integration/test_sts.py                      |    2 +
 tests/integration/test_waiters.py                  |   17 +-
 tests/unit/__init__.py                             |   28 +
 tests/unit/auth/test_signers.py                    |   82 +
 tests/unit/docs/__init__.py                        |    6 +-
 tests/unit/docs/bcdoc/test_docstringparser.py      |  212 +
 tests/unit/docs/bcdoc/test_style.py                |   38 +
 tests/unit/docs/test_method.py                     |   18 +
 tests/unit/docs/test_sharedexample.py              |   13 +
 tests/unit/protocols/input/rest-json.json          |   50 +
 tests/unit/protocols/input/rest-xml.json           |  130 +-
 tests/unit/protocols/output/query.json             |    3 +-
 tests/unit/protocols/output/rest-json.json         |   20 +
 .../unit/response_parsing/test_response_parsing.py |    1 +
 tests/unit/test_args.py                            |  126 +
 tests/unit/test_awsrequest.py                      |   17 +-
 tests/unit/test_client.py                          |  773 +++-
 tests/unit/test_compat.py                          |   50 +-
 .../unit/{test_config.py => test_configloader.py}  |    4 +-
 tests/unit/test_credentials.py                     |  301 +-
 tests/unit/test_endpoint.py                        |  137 +-
 tests/unit/test_exceptions.py                      |   42 +
 tests/unit/test_handlers.py                        |  456 +-
 tests/unit/test_loaders.py                         |   16 +
 tests/unit/test_model.py                           |   77 +-
 tests/unit/test_paginate.py                        |  224 +-
 tests/unit/test_parsers.py                         |  587 ++-
 tests/unit/test_regions.py                         |  649 +--
 tests/unit/test_response.py                        |   31 +-
 tests/unit/test_retryhandler.py                    |    6 +-
 tests/unit/test_s3_addressing.py                   |   21 +-
 tests/unit/test_serialize.py                       |  182 +-
 tests/unit/test_session.py                         |  181 +-
 tests/unit/test_signers.py                         |  439 +-
 tests/unit/test_stub.py                            |  186 +
 tests/unit/test_translate.py                       | 1048 +----
 tests/unit/test_utils.py                           |  468 +-
 tests/unit/test_validate.py                        |   38 +-
 tests/unit/test_waiters.py                         |   28 +
 205 files changed, 70925 insertions(+), 31878 deletions(-)

diff --git a/PKG-INFO b/PKG-INFO
index 43c9235..c382b75 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: botocore
-Version: 1.3.23
+Version: 1.4.60
 Summary: Low-level, data-driven core of boto 3.
 Home-page: https://github.com/boto/botocore
 Author: Amazon Web Services
@@ -12,13 +12,16 @@ Description: botocore
         .. image:: https://secure.travis-ci.org/boto/botocore.png?branch=develop
            :target: http://travis-ci.org/boto/botocore
         
+        .. image:: https://codecov.io/github/boto/botocore/coverage.svg?branch=develop
+            :target: https://codecov.io/github/boto/botocore?branch=develop
+        
         
         A low-level interface to a growing number of Amazon Web Services. The
         botocore package is the foundation for the
         `AWS CLI <https://github.com/aws/aws-cli>`__ as well as
         `boto3 <https://github.com/boto/boto3>`__.
         
-        `Documentation <https://botocore.readthedocs.org/en/latest/>`__
+        `Documentation <https://botocore.readthedocs.io/en/latest/>`__
         
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
diff --git a/README.rst b/README.rst
index af2acaa..3331faa 100644
--- a/README.rst
+++ b/README.rst
@@ -4,10 +4,13 @@ botocore
 .. image:: https://secure.travis-ci.org/boto/botocore.png?branch=develop
    :target: http://travis-ci.org/boto/botocore
 
+.. image:: https://codecov.io/github/boto/botocore/coverage.svg?branch=develop
+    :target: https://codecov.io/github/boto/botocore?branch=develop
+
 
 A low-level interface to a growing number of Amazon Web Services. The
 botocore package is the foundation for the
 `AWS CLI <https://github.com/aws/aws-cli>`__ as well as
 `boto3 <https://github.com/boto/boto3>`__.
 
-`Documentation <https://botocore.readthedocs.org/en/latest/>`__
+`Documentation <https://botocore.readthedocs.io/en/latest/>`__
diff --git a/botocore.egg-info/PKG-INFO b/botocore.egg-info/PKG-INFO
index 43c9235..c382b75 100644
--- a/botocore.egg-info/PKG-INFO
+++ b/botocore.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: botocore
-Version: 1.3.23
+Version: 1.4.60
 Summary: Low-level, data-driven core of boto 3.
 Home-page: https://github.com/boto/botocore
 Author: Amazon Web Services
@@ -12,13 +12,16 @@ Description: botocore
         .. image:: https://secure.travis-ci.org/boto/botocore.png?branch=develop
            :target: http://travis-ci.org/boto/botocore
         
+        .. image:: https://codecov.io/github/boto/botocore/coverage.svg?branch=develop
+            :target: https://codecov.io/github/boto/botocore?branch=develop
+        
         
         A low-level interface to a growing number of Amazon Web Services. The
         botocore package is the foundation for the
         `AWS CLI <https://github.com/aws/aws-cli>`__ as well as
         `boto3 <https://github.com/boto/boto3>`__.
         
-        `Documentation <https://botocore.readthedocs.org/en/latest/>`__
+        `Documentation <https://botocore.readthedocs.io/en/latest/>`__
         
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
diff --git a/botocore.egg-info/SOURCES.txt b/botocore.egg-info/SOURCES.txt
index 859c5cd..db71361 100644
--- a/botocore.egg-info/SOURCES.txt
+++ b/botocore.egg-info/SOURCES.txt
@@ -5,11 +5,13 @@ requirements.txt
 setup.cfg
 setup.py
 botocore/__init__.py
+botocore/args.py
 botocore/auth.py
 botocore/awsrequest.py
 botocore/client.py
 botocore/compat.py
 botocore/config.py
+botocore/configloader.py
 botocore/credentials.py
 botocore/endpoint.py
 botocore/exceptions.py
@@ -25,6 +27,7 @@ botocore/retryhandler.py
 botocore/serialize.py
 botocore/session.py
 botocore/signers.py
+botocore/stub.py
 botocore/translate.py
 botocore/utils.py
 botocore/validate.py
@@ -34,15 +37,19 @@ botocore.egg-info/SOURCES.txt
 botocore.egg-info/dependency_links.txt
 botocore.egg-info/requires.txt
 botocore.egg-info/top_level.txt
-botocore/data/_endpoints.json
 botocore/data/_retry.json
+botocore/data/endpoints.json
+botocore/data/acm/2015-12-08/paginators-1.json
 botocore/data/acm/2015-12-08/service-2.json
 botocore/data/apigateway/2015-07-09/paginators-1.json
 botocore/data/apigateway/2015-07-09/service-2.json
+botocore/data/application-autoscaling/2016-02-06/paginators-1.json
+botocore/data/application-autoscaling/2016-02-06/service-2.json
 botocore/data/autoscaling/2011-01-01/paginators-1.json
 botocore/data/autoscaling/2011-01-01/service-2.json
 botocore/data/cloudformation/2010-05-15/paginators-1.json
 botocore/data/cloudformation/2010-05-15/service-2.json
+botocore/data/cloudformation/2010-05-15/waiters-2.json
 botocore/data/cloudfront/2014-05-31/paginators-1.json
 botocore/data/cloudfront/2014-05-31/service-2.json
 botocore/data/cloudfront/2014-05-31/waiters-2.json
@@ -67,6 +74,15 @@ botocore/data/cloudfront/2016-01-13/waiters-2.json
 botocore/data/cloudfront/2016-01-28/paginators-1.json
 botocore/data/cloudfront/2016-01-28/service-2.json
 botocore/data/cloudfront/2016-01-28/waiters-2.json
+botocore/data/cloudfront/2016-08-01/paginators-1.json
+botocore/data/cloudfront/2016-08-01/service-2.json
+botocore/data/cloudfront/2016-08-01/waiters-2.json
+botocore/data/cloudfront/2016-08-20/paginators-1.json
+botocore/data/cloudfront/2016-08-20/service-2.json
+botocore/data/cloudfront/2016-08-20/waiters-2.json
+botocore/data/cloudfront/2016-09-07/paginators-1.json
+botocore/data/cloudfront/2016-09-07/service-2.json
+botocore/data/cloudfront/2016-09-07/waiters-2.json
 botocore/data/cloudhsm/2014-05-30/service-2.json
 botocore/data/cloudsearch/2011-02-01/service-2.json
 botocore/data/cloudsearch/2013-01-01/service-2.json
@@ -74,16 +90,22 @@ botocore/data/cloudsearchdomain/2013-01-01/service-2.json
 botocore/data/cloudtrail/2013-11-01/service-2.json
 botocore/data/cloudwatch/2010-08-01/paginators-1.json
 botocore/data/cloudwatch/2010-08-01/service-2.json
+botocore/data/codecommit/2015-04-13/paginators-1.json
 botocore/data/codecommit/2015-04-13/service-2.json
 botocore/data/codedeploy/2014-10-06/service-2.json
+botocore/data/codedeploy/2014-10-06/waiters-2.json
 botocore/data/codepipeline/2015-07-09/service-2.json
 botocore/data/cognito-identity/2014-06-30/service-2.json
+botocore/data/cognito-idp/2016-04-18/service-2.json
 botocore/data/cognito-sync/2014-06-30/service-2.json
 botocore/data/config/2014-11-12/service-2.json
 botocore/data/datapipeline/2012-10-29/paginators-1.json
 botocore/data/datapipeline/2012-10-29/service-2.json
+botocore/data/devicefarm/2015-06-23/paginators-1.json
 botocore/data/devicefarm/2015-06-23/service-2.json
 botocore/data/directconnect/2012-10-25/service-2.json
+botocore/data/discovery/2015-11-01/service-2.json
+botocore/data/dms/2016-01-01/service-2.json
 botocore/data/ds/2015-04-16/service-2.json
 botocore/data/dynamodb/2012-08-10/paginators-1.json
 botocore/data/dynamodb/2012-08-10/service-2.json
@@ -104,6 +126,14 @@ botocore/data/ec2/2015-04-15/waiters-2.json
 botocore/data/ec2/2015-10-01/paginators-1.json
 botocore/data/ec2/2015-10-01/service-2.json
 botocore/data/ec2/2015-10-01/waiters-2.json
+botocore/data/ec2/2016-04-01/paginators-1.json
+botocore/data/ec2/2016-04-01/service-2.json
+botocore/data/ec2/2016-04-01/waiters-2.json
+botocore/data/ec2/2016-09-15/examples-1.json
+botocore/data/ec2/2016-09-15/paginators-1.json
+botocore/data/ec2/2016-09-15/service-2.json
+botocore/data/ec2/2016-09-15/waiters-2.json
+botocore/data/ecr/2015-09-21/paginators-1.json
 botocore/data/ecr/2015-09-21/service-2.json
 botocore/data/ecs/2014-11-13/paginators-1.json
 botocore/data/ecs/2014-11-13/service-2.json
@@ -115,6 +145,7 @@ botocore/data/elasticache/2014-09-30/waiters-2.json
 botocore/data/elasticache/2015-02-02/paginators-1.json
 botocore/data/elasticache/2015-02-02/service-2.json
 botocore/data/elasticache/2015-02-02/waiters-2.json
+botocore/data/elasticbeanstalk/2010-12-01/examples-1.json
 botocore/data/elasticbeanstalk/2010-12-01/paginators-1.json
 botocore/data/elasticbeanstalk/2010-12-01/service-2.json
 botocore/data/elastictranscoder/2012-09-25/paginators-1.json
@@ -122,12 +153,16 @@ botocore/data/elastictranscoder/2012-09-25/service-2.json
 botocore/data/elastictranscoder/2012-09-25/waiters-2.json
 botocore/data/elb/2012-06-01/paginators-1.json
 botocore/data/elb/2012-06-01/service-2.json
+botocore/data/elbv2/2015-12-01/paginators-1.json
+botocore/data/elbv2/2015-12-01/service-2.json
 botocore/data/emr/2009-03-31/paginators-1.json
 botocore/data/emr/2009-03-31/service-2.json
 botocore/data/emr/2009-03-31/waiters-2.json
 botocore/data/es/2015-01-01/service-2.json
 botocore/data/events/2014-02-03/service-2.json
+botocore/data/events/2015-10-07/service-2.json
 botocore/data/firehose/2015-08-04/service-2.json
+botocore/data/gamelift/2015-10-01/service-2.json
 botocore/data/glacier/2012-06-01/paginators-1.json
 botocore/data/glacier/2012-06-01/service-2.json
 botocore/data/iam/2010-05-08/paginators-1.json
@@ -136,11 +171,13 @@ botocore/data/iam/2010-05-08/waiters-2.json
 botocore/data/importexport/2010-06-01/paginators-1.json
 botocore/data/importexport/2010-06-01/service-2.json
 botocore/data/inspector/2015-08-18/service-2.json
+botocore/data/inspector/2016-02-16/service-2.json
 botocore/data/iot-data/2015-05-28/service-2.json
 botocore/data/iot/2015-05-28/service-2.json
 botocore/data/kinesis/2013-12-02/paginators-1.json
 botocore/data/kinesis/2013-12-02/service-2.json
 botocore/data/kinesis/2013-12-02/waiters-2.json
+botocore/data/kinesisanalytics/2015-08-14/service-2.json
 botocore/data/kms/2014-11-01/paginators-1.json
 botocore/data/kms/2014-11-01/service-2.json
 botocore/data/lambda/2014-11-11/service-2.json
@@ -152,7 +189,9 @@ botocore/data/machinelearning/2014-12-12/paginators-1.json
 botocore/data/machinelearning/2014-12-12/service-2.json
 botocore/data/machinelearning/2014-12-12/waiters-2.json
 botocore/data/marketplacecommerceanalytics/2015-07-01/service-2.json
+botocore/data/meteringmarketplace/2016-01-14/service-2.json
 botocore/data/opsworks/2013-02-18/service-2.json
+botocore/data/opsworks/2013-02-18/waiters-2.json
 botocore/data/rds/2014-09-01/paginators-1.json
 botocore/data/rds/2014-09-01/service-2.json
 botocore/data/rds/2014-09-01/waiters-2.json
@@ -172,9 +211,11 @@ botocore/data/s3/2006-03-01/service-2.json
 botocore/data/s3/2006-03-01/waiters-2.json
 botocore/data/sdb/2009-04-15/paginators-1.json
 botocore/data/sdb/2009-04-15/service-2.json
+botocore/data/servicecatalog/2015-12-10/service-2.json
 botocore/data/ses/2010-12-01/paginators-1.json
 botocore/data/ses/2010-12-01/service-2.json
 botocore/data/ses/2010-12-01/waiters-2.json
+botocore/data/snowball/2016-06-30/service-2.json
 botocore/data/sns/2010-03-31/paginators-1.json
 botocore/data/sns/2010-03-31/service-2.json
 botocore/data/sqs/2012-11-05/examples-1.json
@@ -298,9 +339,11 @@ docs/source/index.rst
 docs/source/development/changesfor10.rst
 docs/source/development/designnotes.rst
 docs/source/development/index.rst
+docs/source/reference/config.rst
 docs/source/reference/index.rst
 docs/source/reference/loaders.rst
 docs/source/reference/response.rst
+docs/source/reference/stubber.rst
 docs/source/topics/events.rst
 docs/source/topics/index.rst
 docs/source/topics/paginators.rst
@@ -362,17 +405,25 @@ tests/acceptance/features/smoke/waf/waf.feature
 tests/acceptance/features/smoke/workspaces/workspaces.feature
 tests/acceptance/features/steps/base.py
 tests/functional/__init__.py
+tests/functional/test_alias.py
+tests/functional/test_apigateway.py
 tests/functional/test_client_class_names.py
 tests/functional/test_cloudsearchdomain.py
+tests/functional/test_credentials.py
 tests/functional/test_iot_data.py
 tests/functional/test_loaders.py
 tests/functional/test_machinelearning.py
 tests/functional/test_model_completeness.py
+tests/functional/test_paginate.py
+tests/functional/test_paginator_config.py
 tests/functional/test_public_apis.py
+tests/functional/test_regions.py
 tests/functional/test_s3.py
 tests/functional/test_session.py
+tests/functional/test_stub.py
 tests/functional/test_waiter_config.py
 tests/functional/docs/__init__.py
+tests/functional/docs/test_alias.py
 tests/functional/docs/test_autoscaling.py
 tests/functional/docs/test_ec2.py
 tests/functional/docs/test_glacier.py
@@ -403,10 +454,11 @@ tests/integration/test_utils.py
 tests/integration/test_waiters.py
 tests/unit/__init__.py
 tests/unit/put_object_data
+tests/unit/test_args.py
 tests/unit/test_awsrequest.py
 tests/unit/test_client.py
 tests/unit/test_compat.py
-tests/unit/test_config.py
+tests/unit/test_configloader.py
 tests/unit/test_credentials.py
 tests/unit/test_endpoint.py
 tests/unit/test_exceptions.py
@@ -424,6 +476,7 @@ tests/unit/test_s3_addressing.py
 tests/unit/test_serialize.py
 tests/unit/test_session.py
 tests/unit/test_signers.py
+tests/unit/test_stub.py
 tests/unit/test_translate.py
 tests/unit/test_utils.py
 tests/unit/test_validate.py
@@ -613,6 +666,7 @@ tests/unit/docs/test_sharedexample.py
 tests/unit/docs/test_utils.py
 tests/unit/docs/test_waiter.py
 tests/unit/docs/bcdoc/__init__.py
+tests/unit/docs/bcdoc/test_docstringparser.py
 tests/unit/docs/bcdoc/test_document.py
 tests/unit/docs/bcdoc/test_style.py
 tests/unit/protocols/input/ec2.json
diff --git a/botocore/__init__.py b/botocore/__init__.py
index 5104736..a43c69a 100644
--- a/botocore/__init__.py
+++ b/botocore/__init__.py
@@ -16,7 +16,7 @@ import os
 import re
 import logging
 
-__version__ = '1.3.23'
+__version__ = '1.4.60'
 
 
 class NullHandler(logging.Handler):
diff --git a/botocore/args.py b/botocore/args.py
new file mode 100644
index 0000000..6a5cd31
--- /dev/null
+++ b/botocore/args.py
@@ -0,0 +1,194 @@
+# Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"). You
+# may not use this file except in compliance with the License. A copy of
+# the License is located at
+#
+# http://aws.amazon.com/apache2.0/
+#
+# or in the "license" file accompanying this file. This file is
+# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
+# ANY KIND, either express or implied. See the License for the specific
+# language governing permissions and limitations under the License.
+"""Internal module to help with normalizing botocore client args.
+
+This module (and all function/classes within this module) should be
+considered internal, and *not* a public API.
+
+"""
+import copy
+import logging
+
+import botocore.serialize
+from botocore.utils import fix_s3_host
+from botocore.signers import RequestSigner
+from botocore.config import Config
+from botocore.endpoint import EndpointCreator
+
+
+logger = logging.getLogger(__name__)
+
+
+class ClientArgsCreator(object):
+    def __init__(self, event_emitter, user_agent, response_parser_factory,
+                 loader):
+        self._event_emitter = event_emitter
+        self._user_agent = user_agent
+        self._response_parser_factory = response_parser_factory
+        self._loader = loader
+
+    def get_client_args(self, service_model, region_name, is_secure,
+                        endpoint_url, verify, credentials, scoped_config,
+                        client_config, endpoint_bridge):
+        final_args = self.compute_client_args(
+            service_model, client_config, endpoint_bridge, region_name,
+            endpoint_url, is_secure, scoped_config)
+
+        service_name = final_args['service_name']
+        parameter_validation = final_args['parameter_validation']
+        endpoint_config = final_args['endpoint_config']
+        protocol = final_args['protocol']
+        config_kwargs = final_args['config_kwargs']
+        s3_config = final_args['s3_config']
+
+        event_emitter = copy.copy(self._event_emitter)
+        signer = RequestSigner(
+            service_name, endpoint_config['signing_region'],
+            endpoint_config['signing_name'],
+            endpoint_config['signature_version'],
+            credentials, event_emitter)
+
+        # Add any additional s3 configuration for client
+        config_kwargs['s3'] = s3_config
+        self._conditionally_unregister_fix_s3_host(endpoint_url, event_emitter)
+
+        new_config = Config(**config_kwargs)
+        endpoint_creator = EndpointCreator(event_emitter)
+
+        endpoint = endpoint_creator.create_endpoint(
+            service_model, region_name=endpoint_config['region_name'],
+            endpoint_url=endpoint_config['endpoint_url'], verify=verify,
+            response_parser_factory=self._response_parser_factory,
+            max_pool_connections=new_config.max_pool_connections,
+            timeout=(new_config.connect_timeout, new_config.read_timeout))
+
+        serializer = botocore.serialize.create_serializer(
+            protocol, parameter_validation)
+        response_parser = botocore.parsers.create_parser(protocol)
+        return {
+            'serializer': serializer,
+            'endpoint': endpoint,
+            'response_parser': response_parser,
+            'event_emitter': event_emitter,
+            'request_signer': signer,
+            'service_model': service_model,
+            'loader': self._loader,
+            'client_config': new_config
+        }
+
+    def compute_client_args(self, service_model, client_config,
+                            endpoint_bridge, region_name, endpoint_url,
+                            is_secure, scoped_config):
+        service_name = service_model.endpoint_prefix
+        protocol = service_model.metadata['protocol']
+        parameter_validation = True
+        if client_config and not client_config.parameter_validation:
+            parameter_validation = False
+        elif scoped_config:
+            raw_value = str(scoped_config.get('parameter_validation', ''))
+            if raw_value.lower() == 'false':
+                parameter_validation = False
+
+        endpoint_config = endpoint_bridge.resolve(
+            service_name, region_name, endpoint_url, is_secure)
+
+        # Override the user agent if specified in the client config.
+        user_agent = self._user_agent
+        if client_config is not None:
+            if client_config.user_agent is not None:
+                user_agent = client_config.user_agent
+            if client_config.user_agent_extra is not None:
+                user_agent += ' %s' % client_config.user_agent_extra
+
+        # Create a new client config to be passed to the client based
+        # on the final values. We do not want the user to be able
+        # to try to modify an existing client with a client config.
+        config_kwargs = dict(
+            region_name=endpoint_config['region_name'],
+            signature_version=endpoint_config['signature_version'],
+            user_agent=user_agent)
+        if client_config is not None:
+            config_kwargs.update(
+                connect_timeout=client_config.connect_timeout,
+                read_timeout=client_config.read_timeout,
+                max_pool_connections=client_config.max_pool_connections,
+            )
+        s3_config = self.compute_s3_config(scoped_config,
+                                           client_config)
+        return {
+            'service_name': service_name,
+            'parameter_validation': parameter_validation,
+            'user_agent': user_agent,
+            'endpoint_config': endpoint_config,
+            'protocol': protocol,
+            'config_kwargs': config_kwargs,
+            's3_config': s3_config,
+        }
+
+    def compute_s3_config(self, scoped_config, client_config):
+        s3_configuration = None
+
+        # Check the scoped config first.
+        if scoped_config is not None:
+            s3_configuration = scoped_config.get('s3')
+            # Until we have proper validation of the config file (including
+            # nested types), we have to account for the fact that the s3
+            # key could be parsed as a string, e.g 's3 = foo'.
+            # In the case we'll ignore the key for now.
+            if not isinstance(s3_configuration, dict):
+                logger.debug("The s3 config key is not a dictionary type, "
+                             "ignoring its value of: %s", s3_configuration)
+                s3_configuration = None
+
+            # Convert logic for several s3 keys in the scoped config
+            # so that the various strings map to the appropriate boolean value.
+            if s3_configuration:
+                boolean_keys = ['use_accelerate_endpoint',
+                                'use_dualstack_endpoint',
+                                'payload_signing_enabled']
+                s3_configuration = self._convert_config_to_bool(
+                    s3_configuration, boolean_keys)
+
+        # Next specific client config values takes precedence over
+        # specific values in the scoped config.
+        if client_config is not None:
+            if client_config.s3 is not None:
+                if s3_configuration is None:
+                    s3_configuration = client_config.s3
+                else:
+                    # The current s3_configuration dictionary may be
+                    # from a source that only should be read from so
+                    # we want to be safe and just make a copy of it to modify
+                    # before it actually gets updated.
+                    s3_configuration = s3_configuration.copy()
+                    s3_configuration.update(client_config.s3)
+
+        return s3_configuration
+
+    def _conditionally_unregister_fix_s3_host(self, endpoint_url, emitter):
+        # If the user is providing a custom endpoint, we should not alter it.
+        if endpoint_url is not None:
+            emitter.unregister('before-sign.s3', fix_s3_host)
+
+    def _convert_config_to_bool(self, config_dict, keys):
+        # Make sure any further modifications to this section of the config
+        # will not affect the scoped config by making a copy of it.
+        config_copy = config_dict.copy()
+        present_keys = [k for k in keys if k in config_copy]
+        for key in present_keys:
+            # Normalize on different possible values of True
+            if config_copy[key] in [True, 'True', 'true']:
+                config_copy[key] = True
+            else:
+                config_copy[key] = False
+        return config_copy
diff --git a/botocore/auth.py b/botocore/auth.py
index df00552..a1ecb24 100644
--- a/botocore/auth.py
+++ b/botocore/auth.py
@@ -11,7 +11,6 @@
 # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
 # ANY KIND, either express or implied. See the License for the specific
 # language governing permissions and limitations under the License.
-
 import base64
 import datetime
 from hashlib import sha256
@@ -32,6 +31,7 @@ from botocore.compat import urlunsplit
 from botocore.compat import encodebytes
 from botocore.compat import six
 from botocore.compat import json
+from botocore.compat import MD5_AVAILABLE
 
 logger = logging.getLogger(__name__)
 
@@ -44,6 +44,10 @@ EMPTY_SHA256_HASH = (
 PAYLOAD_BUFFER = 1024 * 1024
 ISO8601 = '%Y-%m-%dT%H:%M:%SZ'
 SIGV4_TIMESTAMP = '%Y%m%dT%H%M%SZ'
+SIGNED_HEADERS_BLACKLIST = [
+    'expect',
+    'user-agent'
+]
 
 
 class BaseSigner(object):
@@ -170,7 +174,8 @@ class SigV4Auth(BaseSigner):
         split = urlsplit(request.url)
         for name, value in request.headers.items():
             lname = name.lower()
-            header_map[lname] = value
+            if lname not in SIGNED_HEADERS_BLACKLIST:
+                header_map[lname] = value
         if 'host' not in header_map:
             header_map['host'] = split.netloc
         return header_map
@@ -358,12 +363,50 @@ class SigV4Auth(BaseSigner):
 
 
 class S3SigV4Auth(SigV4Auth):
+    def __init__(self, credentials, service_name, region_name):
+        super(S3SigV4Auth, self).__init__(
+            credentials, service_name, region_name)
+        self._default_region_name = region_name
+
+    def add_auth(self, request):
+        # If we ever decide to share auth sessions, this could potentially be
+        # a source of concurrency bugs.
+        signing_context = request.context.get('signing', {})
+        self._region_name = signing_context.get(
+            'region', self._default_region_name)
+        super(S3SigV4Auth, self).add_auth(request)
 
     def _modify_request_before_signing(self, request):
         super(S3SigV4Auth, self)._modify_request_before_signing(request)
         if 'X-Amz-Content-SHA256' in request.headers:
             del request.headers['X-Amz-Content-SHA256']
-        request.headers['X-Amz-Content-SHA256'] = self.payload(request)
+
+        if self._should_sha256_sign_payload(request):
+            request.headers['X-Amz-Content-SHA256'] = self.payload(request)
+        else:
+            request.headers['X-Amz-Content-SHA256'] = 'UNSIGNED-PAYLOAD'
+
+    def _should_sha256_sign_payload(self, request):
+        # S3 allows optional body signing, so to minimize the performance
+        # impact, we opt to not SHA256 sign the body on streaming uploads,
+        # provided that we're on https.
+        client_config = request.context.get('client_config')
+        s3_config = getattr(client_config, 's3', None)
+
+        # The config could be None if it isn't set, or if the customer sets it
+        # to None.
+        if s3_config is None:
+            s3_config = {}
+
+        sign_payload = s3_config.get('payload_signing_enabled', None)
+        if sign_payload is not None:
+            return sign_payload
+
+        if 'Content-MD5' in request.headers and 'https' in request.url and \
+                request.context.get('has_streaming_input', False):
+            return False
+
+        return True
 
     def _normalize_url_path(self, path):
         # For S3, we do not normalize the path.
@@ -510,8 +553,9 @@ class S3SigV4PostAuth(SigV4Auth):
 class HmacV1Auth(BaseSigner):
 
     # List of Query String Arguments of Interest
-    QSAOfInterest = ['acl', 'cors', 'defaultObjectAcl', 'location', 'logging',
-                     'partNumber', 'policy', 'requestPayment', 'torrent',
+    QSAOfInterest = ['accelerate', 'acl', 'cors', 'defaultObjectAcl',
+                     'location', 'logging', 'partNumber', 'policy',
+                     'requestPayment', 'torrent',
                      'versioning', 'versionId', 'versions', 'website',
                      'uploads', 'uploadId', 'response-content-type',
                      'response-content-language', 'response-expires',
@@ -688,7 +732,7 @@ class HmacV1QueryAuth(HmacV1Auth):
         if p[3]:
             # If there was a pre-existing query string, we should
             # add that back before injecting the new query string.
-            new_query_string ='%s&%s' % (p[3], new_query_string)
+            new_query_string = '%s&%s' % (p[3], new_query_string)
         new_url_parts = (p[0], p[1], p[2], new_query_string, p[4])
         request.url = urlunsplit(new_url_parts)
 
diff --git a/botocore/awsrequest.py b/botocore/awsrequest.py
index 06d0871..a667bb5 100644
--- a/botocore/awsrequest.py
+++ b/botocore/awsrequest.py
@@ -260,7 +260,8 @@ for name, function in AWSHTTPConnection.__dict__.items():
         setattr(AWSHTTPSConnection, name, function)
 
 
-def prepare_request_dict(request_dict, endpoint_url, user_agent=None):
+def prepare_request_dict(request_dict, endpoint_url, context=None,
+                         user_agent=None):
     """
     This method prepares a request dict to be created into an
     AWSRequestObject. This prepares the request dict by adding the
@@ -289,6 +290,9 @@ def prepare_request_dict(request_dict, endpoint_url, user_agent=None):
         else:
             url += '&%s' % encoded_query_string
     r['url'] = url
+    r['context'] = context
+    if context is None:
+        r['context'] = {}
 
 
 def create_request_object(request_dict):
@@ -305,9 +309,10 @@ def create_request_object(request_dict):
 
     """
     r = request_dict
-    return AWSRequest(method=r['method'], url=r['url'],
-                      data=r['body'],
-                      headers=r['headers'])
+    request_object = AWSRequest(
+        method=r['method'], url=r['url'], data=r['body'], headers=r['headers'])
+    request_object.context.update(r['context'])
+    return request_object
 
 
 def _urljoin(endpoint_url, url_path):
diff --git a/botocore/client.py b/botocore/client.py
index 96119cb..18e7132 100644
--- a/botocore/client.py
+++ b/botocore/client.py
@@ -10,28 +10,31 @@
 # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
 # ANY KIND, either express or implied. See the License for the specific
 # language governing permissions and limitations under the License.
-import copy
 import logging
+import functools
 
-import botocore.serialize
-import botocore.validate
 from botocore import waiter, xform_name
+from botocore.auth import AUTH_TYPE_MAPS
 from botocore.awsrequest import prepare_request_dict
-from botocore.compat import OrderedDict
-from botocore.endpoint import EndpointCreator, DEFAULT_TIMEOUT
+from botocore.docs.docstring import ClientMethodDocstring
+from botocore.docs.docstring import PaginatorDocstring
 from botocore.exceptions import ClientError, DataNotFoundError
 from botocore.exceptions import OperationNotPageableError
-from botocore.exceptions import InvalidS3AddressingStyleError
+from botocore.exceptions import UnknownSignatureVersionError
 from botocore.hooks import first_non_none_response
 from botocore.model import ServiceModel
 from botocore.paginate import Paginator
-from botocore.signers import RequestSigner
 from botocore.utils import CachedProperty
-from botocore.utils import get_service_module_name
 from botocore.utils import fix_s3_host
+from botocore.utils import get_service_module_name
 from botocore.utils import switch_to_virtual_host_style
-from botocore.docs.docstring import ClientMethodDocstring
-from botocore.docs.docstring import PaginatorDocstring
+from botocore.utils import switch_host_s3_accelerate
+from botocore.utils import S3_ACCELERATE_ENDPOINT
+from botocore.utils import S3RegionRedirector
+from botocore.args import ClientArgsCreator
+# Keep this imported.  There's pre-existing code that uses
+# "from botocore.client import Config".
+from botocore.config import Config
 
 
 logger = logging.getLogger(__name__)
@@ -57,10 +60,15 @@ class ClientCreator(object):
                       client_config=None):
         service_model = self._load_service_model(service_name, api_version)
         cls = self._create_client_class(service_name, service_model)
+        endpoint_bridge = ClientEndpointBridge(
+            self._endpoint_resolver, scoped_config, client_config,
+            service_signing_name=service_model.metadata.get('signingName'))
         client_args = self._get_client_args(
             service_model, region_name, is_secure, endpoint_url,
-            verify, credentials, scoped_config, client_config)
-        return cls(**client_args)
+            verify, credentials, scoped_config, client_config, endpoint_bridge)
+        service_client = cls(**client_args)
+        self._create_s3_redirector(service_client, endpoint_bridge)
+        return service_client
 
     def create_client_class(self, service_name, api_version=None):
         service_model = self._load_service_model(service_name, api_version)
@@ -106,179 +114,20 @@ class ClientCreator(object):
         self._event_emitter.register('needs-retry.%s' % endpoint_prefix,
                                      handler, unique_id=unique_id)
 
-    def _get_signature_version_and_region(self, service_model, region_name,
-                                          is_secure, scoped_config,
-                                          endpoint_url):
-        # Get endpoint heuristic overrides before creating the
-        # request signer.
-        resolver = self._endpoint_resolver
-        scheme = 'https' if is_secure else 'http'
-        endpoint_config = resolver.construct_endpoint(
-            service_model.endpoint_prefix, region_name, scheme=scheme)
-
-        # Signature version override from endpoint.
-        signature_version = service_model.signature_version
-        if 'signatureVersion' in endpoint_config.get('properties', {}):
-            signature_version = endpoint_config[
-                'properties']['signatureVersion']
-
-        # Signature overrides from a configuration file.
-        if scoped_config is not None:
-            service_config = scoped_config.get(service_model.endpoint_prefix)
-            if service_config is not None and isinstance(service_config, dict):
-                override = service_config.get('signature_version')
-                if override:
-                    logger.debug(
-                        "Switching signature version for service %s "
-                        "to version %s based on config file override.",
-                        service_model.endpoint_prefix, override)
-                    signature_version = override
-
-        # Determine the region name as well
-        region_name = self._determine_region_name(
-            endpoint_config, region_name, endpoint_url)
-
-        return signature_version, region_name
-
-    def _determine_region_name(self, endpoint_config, region_name=None,
-                               endpoint_url=None):
-        # This is a helper function to determine region name to use.
-        # It will take into account whether the user passes in a region
-        # name, whether there is a rule in the endpoint JSON, or
-        # an endpoint url was provided.
-
-        # We only support the credentialScope.region in the properties
-        # bag right now, so if it's available, it will override the
-        # provided region name.
-        region_name_override = endpoint_config['properties'].get(
-            'credentialScope', {}).get('region')
... 158718 lines suppressed ...

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-botocore.git



More information about the Python-modules-commits mailing list