summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-03-09 17:41:02 +0000
committerCoprDistGit <infra@openeuler.org>2023-03-09 17:41:02 +0000
commit80a723c9ecb34ca3d60da10ed99d54d3574369f4 (patch)
tree3870e7060d847c4c65b55e33220524cbac25a023
parented1621fc7ac0110517dca3b61aea36f6e88c1eb2 (diff)
automatic import of python-twilio
-rw-r--r--.gitignore1
-rw-r--r--python-twilio.spec717
-rw-r--r--sources1
3 files changed, 719 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..50c83c5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/twilio-7.16.5.tar.gz
diff --git a/python-twilio.spec b/python-twilio.spec
new file mode 100644
index 0000000..0373195
--- /dev/null
+++ b/python-twilio.spec
@@ -0,0 +1,717 @@
+%global _empty_manifest_terminate_build 0
+Name: python-twilio
+Version: 7.16.5
+Release: 1
+Summary: Twilio API client and TwiML generator
+License: MIT License
+URL: https://github.com/twilio/twilio-python/
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/3c/42/b9c073e40fc001213e9c97b474132e7e3b7deea9088febcf97f21f1f3c04/twilio-7.16.5.tar.gz
+BuildArch: noarch
+
+Requires: python3-pytz
+Requires: python3-requests
+Requires: python3-PyJWT
+
+%description
+# twilio-python
+
+[![Tests](https://github.com/twilio/twilio-python/actions/workflows/test-and-deploy.yml/badge.svg)](https://github.com/twilio/twilio-python/actions/workflows/test-and-deploy.yml)
+[![PyPI](https://img.shields.io/pypi/v/twilio.svg)](https://pypi.python.org/pypi/twilio)
+[![PyPI](https://img.shields.io/pypi/pyversions/twilio.svg)](https://pypi.python.org/pypi/twilio)
+[![Learn OSS Contribution in TwilioQuest](https://img.shields.io/static/v1?label=TwilioQuest&message=Learn%20to%20contribute%21&color=F22F46&labelColor=1f243c&style=flat-square&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAASFBMVEUAAAAZGRkcHBwjIyMoKCgAAABgYGBoaGiAgICMjIyzs7PJycnMzMzNzc3UoBfd3d3m5ubqrhfrMEDu7u739/f4vSb/3AD///9tbdyEAAAABXRSTlMAAAAAAMJrBrEAAAKoSURBVHgB7ZrRcuI6EESdyxXGYoNFvMD//+l2bSszRgyUYpFAsXOeiJGmj4NkuWx1Qeh+Ekl9DgEXOBwOx+Px5xyQhDykfgq4wG63MxxaR4ddIkg6Ul3g84vCIcjPBA5gmUMeXESrlukuoK33+33uID8TWeLAdOWsKpJYzwVMB7bOzYSGOciyUlXSn0/ABXTosJ1M1SbypZ4O4MbZuIDMU02PMbauhhHMHXbmebmALIiEbbbbbUrpF1gwE9kFfRNAJaP+FQEXCCTGyJ4ngDrjOFo3jEL5JdqjF/pueR4cCeCGgAtwmuRS6gDwaRiGvu+DMFwSBLTE3+jF8JyuV1okPZ+AC4hDFhCHyHQjdjPHUKFDlHSJkHQXMB3KpSwXNGJPcwwTdZiXlRN0gSp0zpWxNtM0beYE0nRH6QIbO7rawwXaBYz0j78gxjokDuv12gVeUuBD0MDi0OQCLvDaAho4juP1Q/jkAncXqIcCfd+7gAu4QLMACCLxpRsSuQh0igu0C9Svhi7weAGZg50L3IE3cai4IfkNZAC8dfdhsUD3CgKBVC9JE5ABAFzg4QL/taYPAAWrHdYcgfLaIgAXWJ7OV38n1LEF8tt2TH29E+QAoDoO5Ve/LtCQDmKM9kPbvCEBApK+IXzbcSJ0cIGF6e8gpcRhUDogWZ8JnaWjPXc/fNnBBUKRngiHgTUSivSzDRDgHZQOLvBQgf8rRt+VdBUUhwkU6VpJ+xcOwQUqZr+mR0kvBUgv6cB4+37hQAkXqE8PwGisGhJtN4xAHMzrsgvI7rccXqSvKh6jltGlrOHA3Xk1At3LC4QiPdX9/0ndHpGVvTjR4bZA1ypAKgVcwE5vx74ulwIugDt8e/X7JgfkucBMIAr26ndnB4UCLnDOqvteQsHlgX9N4A+c4cW3DXSPbwAAAABJRU5ErkJggg==)](https://twil.io/learn-open-source)
+
+## Documentation
+
+The documentation for the Twilio API can be found [here][apidocs].
+
+The Python library documentation can be found [here][libdocs].
+
+## Versions
+
+`twilio-python` uses a modified version of [Semantic Versioning](https://semver.org) for all changes. [See this document](VERSIONS.md) for details.
+
+### Migrating from 5.x
+
+Please consult the [official migration guide](https://www.twilio.com/docs/libraries/python/migration-guide) for information on upgrading your application using twilio-python 5.x to 6.x
+
+### Supported Python Versions
+
+This library supports the following Python implementations:
+
+* Python 3.6
+* Python 3.7
+* Python 3.8
+* Python 3.9
+* Python 3.10
+* Python 3.11
+
+## Installation
+
+Install from PyPi using [pip](https://pip.pypa.io/en/latest/), a
+package manager for Python.
+
+ pip install twilio
+
+If pip install fails on Windows, check the path length of the directory. If it is greater 260 characters then enable [Long Paths](https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation) or choose other shorter location.
+
+Don't have pip installed? Try installing it, by running this from the command
+line:
+
+ $ curl https://bootstrap.pypa.io/get-pip.py | python
+
+Or, you can [download the source code
+(ZIP)](https://github.com/twilio/twilio-python/zipball/main "twilio-python
+source code") for `twilio-python`, and then run:
+
+ python setup.py install
+
+You may need to run the above commands with `sudo`.
+
+## Getting Started
+
+Getting started with the Twilio API couldn't be easier. Create a
+`Client` and you're ready to go.
+
+### API Credentials
+
+The `Twilio` needs your Twilio credentials. You can either pass these
+directly to the constructor (see the code below) or via environment variables.
+
+```python
+from twilio.rest import Client
+
+account = "ACXXXXXXXXXXXXXXXXX"
+token = "YYYYYYYYYYYYYYYYYY"
+client = Client(account, token)
+```
+
+Alternatively, a `Client` constructor without these parameters will
+look for `TWILIO_ACCOUNT_SID` and `TWILIO_AUTH_TOKEN` variables inside the
+current environment.
+
+We suggest storing your credentials as environment variables. Why? You'll never
+have to worry about committing your credentials and accidentally posting them
+somewhere public.
+
+
+```python
+from twilio.rest import Client
+client = Client()
+```
+
+### Specify Region and/or Edge
+
+To take advantage of Twilio's [Global Infrastructure](https://www.twilio.com/docs/global-infrastructure), specify the target Region and/or Edge for the client:
+
+```python
+from twilio.rest import Client
+
+client = Client(region='au1', edge='sydney')
+```
+A `Client` constructor without these parameters will also look for `TWILIO_REGION` and `TWILIO_EDGE` variables inside the current environment.
+
+Alternatively, you may specify the edge and/or region after constructing the Twilio client:
+
+```python
+from twilio.rest import Client
+
+client = Client()
+client.region = 'au1'
+client.edge = 'sydney'
+```
+
+This will result in the `hostname` transforming from `api.twilio.com` to `api.sydney.au1.twilio.com`.
+
+### Make a Call
+
+```python
+from twilio.rest import Client
+
+account = "ACXXXXXXXXXXXXXXXXX"
+token = "YYYYYYYYYYYYYYYYYY"
+client = Client(account, token)
+
+call = client.calls.create(to="9991231234",
+ from_="9991231234",
+ url="http://twimlets.com/holdmusic?Bucket=com.twilio.music.ambient")
+print(call.sid)
+```
+
+### Send an SMS
+
+```python
+from twilio.rest import Client
+
+account = "ACXXXXXXXXXXXXXXXXX"
+token = "YYYYYYYYYYYYYYYYYY"
+client = Client(account, token)
+
+message = client.messages.create(to="+12316851234", from_="+15555555555",
+ body="Hello there!")
+```
+
+### Enable Debug Logging
+
+Log the API request and response data to the console:
+
+```python
+import logging
+
+client = Client(account, token)
+logging.basicConfig()
+client.http_client.logger.setLevel(logging.INFO)
+```
+
+Log the API request and response data to a file:
+
+```python
+import logging
+
+client = Client(account, token)
+logging.basicConfig(filename='./log.txt')
+client.http_client.logger.setLevel(logging.INFO)
+```
+
+### Handling Exceptions
+
+```python
+from twilio.rest import Client
+from twilio.base.exceptions import TwilioRestException
+
+account = "ACXXXXXXXXXXXXXXXXX"
+token = "YYYYYYYYYYYYYYYYYY"
+client = Client(account, token)
+
+try:
+ message = client.messages.create(to="+12316851234", from_="+15555555555",
+ body="Hello there!")
+except TwilioRestException as e:
+ print(e)
+```
+
+For more descriptive exception types, please see the [Twilio documentation](https://www.twilio.com/docs/libraries/python/usage-guide#exceptions).
+
+### Generating TwiML
+
+To control phone calls, your application needs to output [TwiML][twiml].
+
+Use `twilio.twiml.Response` to easily create such responses.
+
+```python
+from twilio.twiml.voice_response import VoiceResponse
+
+r = VoiceResponse()
+r.say("Welcome to twilio!")
+print(str(r))
+```
+
+```xml
+<?xml version="1.0" encoding="utf-8"?>
+<Response><Say>Welcome to twilio!</Say></Response>
+```
+
+### Using a Custom HTTP Client
+
+To use a custom HTTP client with this helper library, please see the [Twilio documentation](https://www.twilio.com/docs/libraries/python/custom-http-clients-python).
+
+### Docker Image
+
+The `Dockerfile` present in this repository and its respective `twilio/twilio-python` Docker image are currently used by Twilio for testing purposes only.
+
+### Getting help
+
+If you need help installing or using the library, please check the [Twilio Support Help Center](https://support.twilio.com) first, and [file a support ticket](https://twilio.com/help/contact) if you don't find an answer to your question.
+
+If you've instead found a bug in the library or would like new features added, go ahead and open issues or pull requests against this repo!
+
+[apidocs]: https://www.twilio.com/docs/api
+[twiml]: https://www.twilio.com/docs/api/twiml
+[libdocs]: https://twilio.github.io/twilio-python
+
+
+%package -n python3-twilio
+Summary: Twilio API client and TwiML generator
+Provides: python-twilio
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-twilio
+# twilio-python
+
+[![Tests](https://github.com/twilio/twilio-python/actions/workflows/test-and-deploy.yml/badge.svg)](https://github.com/twilio/twilio-python/actions/workflows/test-and-deploy.yml)
+[![PyPI](https://img.shields.io/pypi/v/twilio.svg)](https://pypi.python.org/pypi/twilio)
+[![PyPI](https://img.shields.io/pypi/pyversions/twilio.svg)](https://pypi.python.org/pypi/twilio)
+[![Learn OSS Contribution in TwilioQuest](https://img.shields.io/static/v1?label=TwilioQuest&message=Learn%20to%20contribute%21&color=F22F46&labelColor=1f243c&style=flat-square&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAASFBMVEUAAAAZGRkcHBwjIyMoKCgAAABgYGBoaGiAgICMjIyzs7PJycnMzMzNzc3UoBfd3d3m5ubqrhfrMEDu7u739/f4vSb/3AD///9tbdyEAAAABXRSTlMAAAAAAMJrBrEAAAKoSURBVHgB7ZrRcuI6EESdyxXGYoNFvMD//+l2bSszRgyUYpFAsXOeiJGmj4NkuWx1Qeh+Ekl9DgEXOBwOx+Px5xyQhDykfgq4wG63MxxaR4ddIkg6Ul3g84vCIcjPBA5gmUMeXESrlukuoK33+33uID8TWeLAdOWsKpJYzwVMB7bOzYSGOciyUlXSn0/ABXTosJ1M1SbypZ4O4MbZuIDMU02PMbauhhHMHXbmebmALIiEbbbbbUrpF1gwE9kFfRNAJaP+FQEXCCTGyJ4ngDrjOFo3jEL5JdqjF/pueR4cCeCGgAtwmuRS6gDwaRiGvu+DMFwSBLTE3+jF8JyuV1okPZ+AC4hDFhCHyHQjdjPHUKFDlHSJkHQXMB3KpSwXNGJPcwwTdZiXlRN0gSp0zpWxNtM0beYE0nRH6QIbO7rawwXaBYz0j78gxjokDuv12gVeUuBD0MDi0OQCLvDaAho4juP1Q/jkAncXqIcCfd+7gAu4QLMACCLxpRsSuQh0igu0C9Svhi7weAGZg50L3IE3cai4IfkNZAC8dfdhsUD3CgKBVC9JE5ABAFzg4QL/taYPAAWrHdYcgfLaIgAXWJ7OV38n1LEF8tt2TH29E+QAoDoO5Ve/LtCQDmKM9kPbvCEBApK+IXzbcSJ0cIGF6e8gpcRhUDogWZ8JnaWjPXc/fNnBBUKRngiHgTUSivSzDRDgHZQOLvBQgf8rRt+VdBUUhwkU6VpJ+xcOwQUqZr+mR0kvBUgv6cB4+37hQAkXqE8PwGisGhJtN4xAHMzrsgvI7rccXqSvKh6jltGlrOHA3Xk1At3LC4QiPdX9/0ndHpGVvTjR4bZA1ypAKgVcwE5vx74ulwIugDt8e/X7JgfkucBMIAr26ndnB4UCLnDOqvteQsHlgX9N4A+c4cW3DXSPbwAAAABJRU5ErkJggg==)](https://twil.io/learn-open-source)
+
+## Documentation
+
+The documentation for the Twilio API can be found [here][apidocs].
+
+The Python library documentation can be found [here][libdocs].
+
+## Versions
+
+`twilio-python` uses a modified version of [Semantic Versioning](https://semver.org) for all changes. [See this document](VERSIONS.md) for details.
+
+### Migrating from 5.x
+
+Please consult the [official migration guide](https://www.twilio.com/docs/libraries/python/migration-guide) for information on upgrading your application using twilio-python 5.x to 6.x
+
+### Supported Python Versions
+
+This library supports the following Python implementations:
+
+* Python 3.6
+* Python 3.7
+* Python 3.8
+* Python 3.9
+* Python 3.10
+* Python 3.11
+
+## Installation
+
+Install from PyPi using [pip](https://pip.pypa.io/en/latest/), a
+package manager for Python.
+
+ pip install twilio
+
+If pip install fails on Windows, check the path length of the directory. If it is greater 260 characters then enable [Long Paths](https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation) or choose other shorter location.
+
+Don't have pip installed? Try installing it, by running this from the command
+line:
+
+ $ curl https://bootstrap.pypa.io/get-pip.py | python
+
+Or, you can [download the source code
+(ZIP)](https://github.com/twilio/twilio-python/zipball/main "twilio-python
+source code") for `twilio-python`, and then run:
+
+ python setup.py install
+
+You may need to run the above commands with `sudo`.
+
+## Getting Started
+
+Getting started with the Twilio API couldn't be easier. Create a
+`Client` and you're ready to go.
+
+### API Credentials
+
+The `Twilio` needs your Twilio credentials. You can either pass these
+directly to the constructor (see the code below) or via environment variables.
+
+```python
+from twilio.rest import Client
+
+account = "ACXXXXXXXXXXXXXXXXX"
+token = "YYYYYYYYYYYYYYYYYY"
+client = Client(account, token)
+```
+
+Alternatively, a `Client` constructor without these parameters will
+look for `TWILIO_ACCOUNT_SID` and `TWILIO_AUTH_TOKEN` variables inside the
+current environment.
+
+We suggest storing your credentials as environment variables. Why? You'll never
+have to worry about committing your credentials and accidentally posting them
+somewhere public.
+
+
+```python
+from twilio.rest import Client
+client = Client()
+```
+
+### Specify Region and/or Edge
+
+To take advantage of Twilio's [Global Infrastructure](https://www.twilio.com/docs/global-infrastructure), specify the target Region and/or Edge for the client:
+
+```python
+from twilio.rest import Client
+
+client = Client(region='au1', edge='sydney')
+```
+A `Client` constructor without these parameters will also look for `TWILIO_REGION` and `TWILIO_EDGE` variables inside the current environment.
+
+Alternatively, you may specify the edge and/or region after constructing the Twilio client:
+
+```python
+from twilio.rest import Client
+
+client = Client()
+client.region = 'au1'
+client.edge = 'sydney'
+```
+
+This will result in the `hostname` transforming from `api.twilio.com` to `api.sydney.au1.twilio.com`.
+
+### Make a Call
+
+```python
+from twilio.rest import Client
+
+account = "ACXXXXXXXXXXXXXXXXX"
+token = "YYYYYYYYYYYYYYYYYY"
+client = Client(account, token)
+
+call = client.calls.create(to="9991231234",
+ from_="9991231234",
+ url="http://twimlets.com/holdmusic?Bucket=com.twilio.music.ambient")
+print(call.sid)
+```
+
+### Send an SMS
+
+```python
+from twilio.rest import Client
+
+account = "ACXXXXXXXXXXXXXXXXX"
+token = "YYYYYYYYYYYYYYYYYY"
+client = Client(account, token)
+
+message = client.messages.create(to="+12316851234", from_="+15555555555",
+ body="Hello there!")
+```
+
+### Enable Debug Logging
+
+Log the API request and response data to the console:
+
+```python
+import logging
+
+client = Client(account, token)
+logging.basicConfig()
+client.http_client.logger.setLevel(logging.INFO)
+```
+
+Log the API request and response data to a file:
+
+```python
+import logging
+
+client = Client(account, token)
+logging.basicConfig(filename='./log.txt')
+client.http_client.logger.setLevel(logging.INFO)
+```
+
+### Handling Exceptions
+
+```python
+from twilio.rest import Client
+from twilio.base.exceptions import TwilioRestException
+
+account = "ACXXXXXXXXXXXXXXXXX"
+token = "YYYYYYYYYYYYYYYYYY"
+client = Client(account, token)
+
+try:
+ message = client.messages.create(to="+12316851234", from_="+15555555555",
+ body="Hello there!")
+except TwilioRestException as e:
+ print(e)
+```
+
+For more descriptive exception types, please see the [Twilio documentation](https://www.twilio.com/docs/libraries/python/usage-guide#exceptions).
+
+### Generating TwiML
+
+To control phone calls, your application needs to output [TwiML][twiml].
+
+Use `twilio.twiml.Response` to easily create such responses.
+
+```python
+from twilio.twiml.voice_response import VoiceResponse
+
+r = VoiceResponse()
+r.say("Welcome to twilio!")
+print(str(r))
+```
+
+```xml
+<?xml version="1.0" encoding="utf-8"?>
+<Response><Say>Welcome to twilio!</Say></Response>
+```
+
+### Using a Custom HTTP Client
+
+To use a custom HTTP client with this helper library, please see the [Twilio documentation](https://www.twilio.com/docs/libraries/python/custom-http-clients-python).
+
+### Docker Image
+
+The `Dockerfile` present in this repository and its respective `twilio/twilio-python` Docker image are currently used by Twilio for testing purposes only.
+
+### Getting help
+
+If you need help installing or using the library, please check the [Twilio Support Help Center](https://support.twilio.com) first, and [file a support ticket](https://twilio.com/help/contact) if you don't find an answer to your question.
+
+If you've instead found a bug in the library or would like new features added, go ahead and open issues or pull requests against this repo!
+
+[apidocs]: https://www.twilio.com/docs/api
+[twiml]: https://www.twilio.com/docs/api/twiml
+[libdocs]: https://twilio.github.io/twilio-python
+
+
+%package help
+Summary: Development documents and examples for twilio
+Provides: python3-twilio-doc
+%description help
+# twilio-python
+
+[![Tests](https://github.com/twilio/twilio-python/actions/workflows/test-and-deploy.yml/badge.svg)](https://github.com/twilio/twilio-python/actions/workflows/test-and-deploy.yml)
+[![PyPI](https://img.shields.io/pypi/v/twilio.svg)](https://pypi.python.org/pypi/twilio)
+[![PyPI](https://img.shields.io/pypi/pyversions/twilio.svg)](https://pypi.python.org/pypi/twilio)
+[![Learn OSS Contribution in TwilioQuest](https://img.shields.io/static/v1?label=TwilioQuest&message=Learn%20to%20contribute%21&color=F22F46&labelColor=1f243c&style=flat-square&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAASFBMVEUAAAAZGRkcHBwjIyMoKCgAAABgYGBoaGiAgICMjIyzs7PJycnMzMzNzc3UoBfd3d3m5ubqrhfrMEDu7u739/f4vSb/3AD///9tbdyEAAAABXRSTlMAAAAAAMJrBrEAAAKoSURBVHgB7ZrRcuI6EESdyxXGYoNFvMD//+l2bSszRgyUYpFAsXOeiJGmj4NkuWx1Qeh+Ekl9DgEXOBwOx+Px5xyQhDykfgq4wG63MxxaR4ddIkg6Ul3g84vCIcjPBA5gmUMeXESrlukuoK33+33uID8TWeLAdOWsKpJYzwVMB7bOzYSGOciyUlXSn0/ABXTosJ1M1SbypZ4O4MbZuIDMU02PMbauhhHMHXbmebmALIiEbbbbbUrpF1gwE9kFfRNAJaP+FQEXCCTGyJ4ngDrjOFo3jEL5JdqjF/pueR4cCeCGgAtwmuRS6gDwaRiGvu+DMFwSBLTE3+jF8JyuV1okPZ+AC4hDFhCHyHQjdjPHUKFDlHSJkHQXMB3KpSwXNGJPcwwTdZiXlRN0gSp0zpWxNtM0beYE0nRH6QIbO7rawwXaBYz0j78gxjokDuv12gVeUuBD0MDi0OQCLvDaAho4juP1Q/jkAncXqIcCfd+7gAu4QLMACCLxpRsSuQh0igu0C9Svhi7weAGZg50L3IE3cai4IfkNZAC8dfdhsUD3CgKBVC9JE5ABAFzg4QL/taYPAAWrHdYcgfLaIgAXWJ7OV38n1LEF8tt2TH29E+QAoDoO5Ve/LtCQDmKM9kPbvCEBApK+IXzbcSJ0cIGF6e8gpcRhUDogWZ8JnaWjPXc/fNnBBUKRngiHgTUSivSzDRDgHZQOLvBQgf8rRt+VdBUUhwkU6VpJ+xcOwQUqZr+mR0kvBUgv6cB4+37hQAkXqE8PwGisGhJtN4xAHMzrsgvI7rccXqSvKh6jltGlrOHA3Xk1At3LC4QiPdX9/0ndHpGVvTjR4bZA1ypAKgVcwE5vx74ulwIugDt8e/X7JgfkucBMIAr26ndnB4UCLnDOqvteQsHlgX9N4A+c4cW3DXSPbwAAAABJRU5ErkJggg==)](https://twil.io/learn-open-source)
+
+## Documentation
+
+The documentation for the Twilio API can be found [here][apidocs].
+
+The Python library documentation can be found [here][libdocs].
+
+## Versions
+
+`twilio-python` uses a modified version of [Semantic Versioning](https://semver.org) for all changes. [See this document](VERSIONS.md) for details.
+
+### Migrating from 5.x
+
+Please consult the [official migration guide](https://www.twilio.com/docs/libraries/python/migration-guide) for information on upgrading your application using twilio-python 5.x to 6.x
+
+### Supported Python Versions
+
+This library supports the following Python implementations:
+
+* Python 3.6
+* Python 3.7
+* Python 3.8
+* Python 3.9
+* Python 3.10
+* Python 3.11
+
+## Installation
+
+Install from PyPi using [pip](https://pip.pypa.io/en/latest/), a
+package manager for Python.
+
+ pip install twilio
+
+If pip install fails on Windows, check the path length of the directory. If it is greater 260 characters then enable [Long Paths](https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation) or choose other shorter location.
+
+Don't have pip installed? Try installing it, by running this from the command
+line:
+
+ $ curl https://bootstrap.pypa.io/get-pip.py | python
+
+Or, you can [download the source code
+(ZIP)](https://github.com/twilio/twilio-python/zipball/main "twilio-python
+source code") for `twilio-python`, and then run:
+
+ python setup.py install
+
+You may need to run the above commands with `sudo`.
+
+## Getting Started
+
+Getting started with the Twilio API couldn't be easier. Create a
+`Client` and you're ready to go.
+
+### API Credentials
+
+The `Twilio` needs your Twilio credentials. You can either pass these
+directly to the constructor (see the code below) or via environment variables.
+
+```python
+from twilio.rest import Client
+
+account = "ACXXXXXXXXXXXXXXXXX"
+token = "YYYYYYYYYYYYYYYYYY"
+client = Client(account, token)
+```
+
+Alternatively, a `Client` constructor without these parameters will
+look for `TWILIO_ACCOUNT_SID` and `TWILIO_AUTH_TOKEN` variables inside the
+current environment.
+
+We suggest storing your credentials as environment variables. Why? You'll never
+have to worry about committing your credentials and accidentally posting them
+somewhere public.
+
+
+```python
+from twilio.rest import Client
+client = Client()
+```
+
+### Specify Region and/or Edge
+
+To take advantage of Twilio's [Global Infrastructure](https://www.twilio.com/docs/global-infrastructure), specify the target Region and/or Edge for the client:
+
+```python
+from twilio.rest import Client
+
+client = Client(region='au1', edge='sydney')
+```
+A `Client` constructor without these parameters will also look for `TWILIO_REGION` and `TWILIO_EDGE` variables inside the current environment.
+
+Alternatively, you may specify the edge and/or region after constructing the Twilio client:
+
+```python
+from twilio.rest import Client
+
+client = Client()
+client.region = 'au1'
+client.edge = 'sydney'
+```
+
+This will result in the `hostname` transforming from `api.twilio.com` to `api.sydney.au1.twilio.com`.
+
+### Make a Call
+
+```python
+from twilio.rest import Client
+
+account = "ACXXXXXXXXXXXXXXXXX"
+token = "YYYYYYYYYYYYYYYYYY"
+client = Client(account, token)
+
+call = client.calls.create(to="9991231234",
+ from_="9991231234",
+ url="http://twimlets.com/holdmusic?Bucket=com.twilio.music.ambient")
+print(call.sid)
+```
+
+### Send an SMS
+
+```python
+from twilio.rest import Client
+
+account = "ACXXXXXXXXXXXXXXXXX"
+token = "YYYYYYYYYYYYYYYYYY"
+client = Client(account, token)
+
+message = client.messages.create(to="+12316851234", from_="+15555555555",
+ body="Hello there!")
+```
+
+### Enable Debug Logging
+
+Log the API request and response data to the console:
+
+```python
+import logging
+
+client = Client(account, token)
+logging.basicConfig()
+client.http_client.logger.setLevel(logging.INFO)
+```
+
+Log the API request and response data to a file:
+
+```python
+import logging
+
+client = Client(account, token)
+logging.basicConfig(filename='./log.txt')
+client.http_client.logger.setLevel(logging.INFO)
+```
+
+### Handling Exceptions
+
+```python
+from twilio.rest import Client
+from twilio.base.exceptions import TwilioRestException
+
+account = "ACXXXXXXXXXXXXXXXXX"
+token = "YYYYYYYYYYYYYYYYYY"
+client = Client(account, token)
+
+try:
+ message = client.messages.create(to="+12316851234", from_="+15555555555",
+ body="Hello there!")
+except TwilioRestException as e:
+ print(e)
+```
+
+For more descriptive exception types, please see the [Twilio documentation](https://www.twilio.com/docs/libraries/python/usage-guide#exceptions).
+
+### Generating TwiML
+
+To control phone calls, your application needs to output [TwiML][twiml].
+
+Use `twilio.twiml.Response` to easily create such responses.
+
+```python
+from twilio.twiml.voice_response import VoiceResponse
+
+r = VoiceResponse()
+r.say("Welcome to twilio!")
+print(str(r))
+```
+
+```xml
+<?xml version="1.0" encoding="utf-8"?>
+<Response><Say>Welcome to twilio!</Say></Response>
+```
+
+### Using a Custom HTTP Client
+
+To use a custom HTTP client with this helper library, please see the [Twilio documentation](https://www.twilio.com/docs/libraries/python/custom-http-clients-python).
+
+### Docker Image
+
+The `Dockerfile` present in this repository and its respective `twilio/twilio-python` Docker image are currently used by Twilio for testing purposes only.
+
+### Getting help
+
+If you need help installing or using the library, please check the [Twilio Support Help Center](https://support.twilio.com) first, and [file a support ticket](https://twilio.com/help/contact) if you don't find an answer to your question.
+
+If you've instead found a bug in the library or would like new features added, go ahead and open issues or pull requests against this repo!
+
+[apidocs]: https://www.twilio.com/docs/api
+[twiml]: https://www.twilio.com/docs/api/twiml
+[libdocs]: https://twilio.github.io/twilio-python
+
+
+%prep
+%autosetup -n twilio-7.16.5
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-twilio -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Thu Mar 09 2023 Python_Bot <Python_Bot@openeuler.org> - 7.16.5-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..375a50e
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+5cdd49d122f210a41fbef54bda93d713 twilio-7.16.5.tar.gz