Metadata-Version: 1.1
Name: aliyun-fc2
Version: 2.0.4
Summary: Aliyun FunctionCompute SDK2
Home-page: https://www.aliyun.com/product/fc
Author: UNKNOWN
Author-email: UNKNOWN
License: UNKNOWN
Description-Content-Type: UNKNOWN
Description: Aliyun FunctionCompute Python SDK
        =================================
        
        .. image:: https://badge.fury.io/py/aliyun-fc2.svg
            :target: https://badge.fury.io/py/aliyun-fc2
        .. image:: https://travis-ci.org/aliyun/fc-python-sdk.svg?branch=master
            :target: https://travis-ci.org/aliyun/fc-python-sdk
        .. image:: https://coveralls.io/repos/github/aliyun/fc-python-sdk/badge.svg?branch=master
            :target: https://coveralls.io/github/aliyun/fc-python-sdk?branch=master
        
        Overview
        --------
        
        The SDK of this version is dependent on the third-party HTTP library `requests <https://github.com/kennethreitz/requests>`_.
        
        
        Running environment
        -------------------
        
        Python 2.7, Python 3.6
        
        
        Notice
        -------------------
        fc and fc2 are not compatible, now master repo is fc2, if you still use fc, 1.x branch is what you need.
        We suggest using fc2, The main difference between fc and fc2 is:
        
        1, all http request fuction can set headers
        
        .. code-block:: python
        
            def invoke_function(self, serviceName, functionName, payload=None, 
                    headers = {'x-fc-invocation-type': 'Sync', 'x-fc-log-type' : 'None'}):                                           
                ...
        
        
        2, The all http response returned by the user is the following object
        
        .. code-block:: python
        
            class FcHttpResponse(object):
                def __init__(self, headers, data):
                    self._headers = headers
                    self._data = data
        
                @property
                def headers(self):
                    return self._headers
        
                @property
                def data(self):
                    return self._data
        
        Note: for invoke function, data is bytes, for other apis, data is dict
        
        Installation
        -------------------
        
        Install the official release version through PIP (taking Linux as an example):
        
        .. code-block:: bash
        
            $ pip install aliyun-fc2
        
        You can also install the unzipped installer package directly:
        
        .. code-block:: bash
        
            $ sudo python setup.py install
        
        
        if you still use fc, you can install the official fc1 release version through PIP (taking Linux as an example):
        
        .. code-block:: bash
        
            $ pip install aliyun-fc
        
        Getting started
        -------------------
        
        .. code-block:: python
        
            # -*- coding: utf-8 -*-
        
            import fc2
        
        
            # To know the endpoint and access key id/secret info, please refer to:
            # https://help.aliyun.com/document_detail/52984.html
            client = fc2.Client(
                endpoint='<Your Endpoint>',
                accessKeyID='<Your AccessKeyID>',
                accessKeySecret='<Your AccessKeySecret>')
        
            # Create service.
            client.create_service('service_name')
        
            # Create function.
            # the current directory has a main.zip file (main.py which has a function of myhandler)
            client.create_function('service_name', 'function_name', 'python3',  'main.my_handler', codeZipFile = 'main.zip')
        
            # Invoke function synchronously.
            client.invoke_function('service_name', 'function_name')
        
            # Invoke a function with a input parameter.
            client.invoke_function('service_name', 'function_name', payload=bytes('hello_world'))
        
            # Read a image and invoke a function with the file data as input parameter.
            src = open('src_image_file_path', 'rb') # Note: please open it as binary.
            r = client.invoke_function('service_name', 'function_name', payload=src)
            # save the result as the output image.
            dst = open('dst_image_file_path', 'wb')
            dst.write(r.data)
            src.close()
            dst.close()
        
            # Invoke function asynchronously.
            client.async_invoke_function('service_name', 'function_name')
        
            # List services.
            client.list_services()
        
            # List functions with prefix and limit.
            client.list_functions('service_name', prefix='the_prefix', limit=10)
        
            # Delete service.
            client.delete_service('service_name')
        
            # Delete function.
            client.delete_function('service_name', 'function_name')
        
        
        Testing
        -------
        
        To run the tests, please set the access key id/secret, endpoint as environment variables.
        Take the Linux system for example:
        
        .. code-block:: bash
        
            $ export ENDPOINT=<endpoint>
            $ export ACCESS_KEY_ID=<AccessKeyId>
            $ export ACCESS_KEY_SECRET=<AccessKeySecret>
            $ export STS_TOKEN=<roleARN>
        
        Run the test in the following method:
        
        .. code-block:: bash
        
            $ nosetests                          # First install nose
        
        More resources
        --------------
        - `Aliyun FunctionCompute docs <https://help.aliyun.com/product/50980.html>`_
        
        Contacting us
        -------------
        - `Links <https://help.aliyun.com/document_detail/53087.html>`_
        
        License
        -------
        - `MIT <https://github.com/aliyun/fc-python-sdk/blob/master/LICENSE>`_
        
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.6
