PATH:
usr
/
local
/
jetapps
/
var
/
lib
/
aws
/
lib
/
python2.7
/
site-packages
/
s3transfer
# 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. from botocore.compat import six from s3transfer.compat import accepts_kwargs from s3transfer.exceptions import InvalidSubscriberMethodError class BaseSubscriber(object): """The base subscriber class It is recommended that all subscriber implementations subclass and then override the subscription methods (i.e. on_{subsribe_type}() methods). """ VALID_SUBSCRIBER_TYPES = [ 'queued', 'progress', 'done' ] def __new__(cls, *args, **kwargs): cls._validate_subscriber_methods() return super(BaseSubscriber, cls).__new__(cls) @classmethod def _validate_subscriber_methods(cls): for subscriber_type in cls.VALID_SUBSCRIBER_TYPES: subscriber_method = getattr(cls, 'on_' + subscriber_type) if not six.callable(subscriber_method): raise InvalidSubscriberMethodError( 'Subscriber method %s must be callable.' % subscriber_method) if not accepts_kwargs(subscriber_method): raise InvalidSubscriberMethodError( 'Subscriber method %s must accept keyword ' 'arguments (**kwargs)' % subscriber_method) def on_queued(self, future, **kwargs): """Callback to be invoked when transfer request gets queued This callback can be useful for: * Keeping track of how many transfers have been requested * Providing the expected transfer size through future.meta.provide_transfer_size() so a HeadObject would not need to be made for copies and downloads. :type future: s3transfer.futures.TransferFuture :param future: The TransferFuture representing the requested transfer. """ pass def on_progress(self, future, bytes_transferred, **kwargs): """Callback to be invoked when progress is made on transfer This callback can be useful for: * Recording and displaying progress :type future: s3transfer.futures.TransferFuture :param future: The TransferFuture representing the requested transfer. :type bytes_transferred: int :param bytes_transferred: The number of bytes transferred for that invocation of the callback. Note that a negative amount can be provided, which usually indicates that an in-progress request needed to be retried and thus progress was rewound. """ pass def on_done(self, future, **kwargs): """Callback to be invoked once a transfer is done This callback can be useful for: * Recording and displaying whether the transfer succeeded or failed using future.result() * Running some task after the transfer completed like changing the last modified time of a downloaded file. :type future: s3transfer.futures.TransferFuture :param future: The TransferFuture representing the requested transfer. """ pass
[-] futures.py
[edit]
[-] processpool.pyc
[edit]
[-] utils.pyc
[edit]
[-] futures.pyc
[edit]
[-] exceptions.py
[edit]
[+]
..
[-] manager.pyc
[edit]
[-] download.py
[edit]
[-] delete.pyc
[edit]
[-] download.pyc
[edit]
[-] subscribers.py
[edit]
[-] exceptions.pyc
[edit]
[-] __init__.pyc
[edit]
[-] delete.py
[edit]
[-] upload.py
[edit]
[-] constants.py
[edit]
[-] utils.py
[edit]
[-] copies.py
[edit]
[-] tasks.pyc
[edit]
[-] bandwidth.py
[edit]
[-] compat.pyc
[edit]
[-] tasks.py
[edit]
[-] compat.py
[edit]
[-] processpool.py
[edit]
[-] manager.py
[edit]
[-] __init__.py
[edit]
[-] subscribers.pyc
[edit]
[-] constants.pyc
[edit]
[-] upload.pyc
[edit]
[-] bandwidth.pyc
[edit]
[-] copies.pyc
[edit]