summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-21 09:31:32 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-21 09:31:32 +0000
commit76998b2ca64773b657702fb77785904dee99981d (patch)
tree6a15994c83ade9ba913be7aa014658f8744e1635
parent49f836a2bf4357d7a1c23afa0bdceaba9bb81f57 (diff)
automatic import of python-twilioopeneuler20.03
-rw-r--r--.gitignore1
-rw-r--r--python-twilio.spec441
-rw-r--r--sources2
3 files changed, 300 insertions, 144 deletions
diff --git a/.gitignore b/.gitignore
index 7d4f834..323193a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
/twilio-7.16.5.tar.gz
/twilio-8.0.0.tar.gz
+/twilio-8.1.0.tar.gz
diff --git a/python-twilio.spec b/python-twilio.spec
index dc76bcf..34d290e 100644
--- a/python-twilio.spec
+++ b/python-twilio.spec
@@ -1,17 +1,16 @@
%global _empty_manifest_terminate_build 0
Name: python-twilio
-Version: 8.0.0
+Version: 8.1.0
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/bb/2d/f89b714e176b470173bda0e1d90d9ffff4d4838281b35c08fad15728ea9b/twilio-8.0.0.tar.gz
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/7d/96/21192c1e035869a53a909bf6f7b78d0664c9680cfe5be2bb8e965c7e664c/twilio-8.1.0.tar.gz
BuildArch: noarch
Requires: python3-pytz
Requires: python3-requests
Requires: python3-PyJWT
-Requires: python3-asyncio
Requires: python3-aiohttp
Requires: python3-aiohttp-retry
@@ -33,68 +32,101 @@ The Python library documentation can be found [here][libdocs].
`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.7
-* Python 3.8
-* Python 3.9
-* Python 3.10
-* Python 3.11
+- 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
+```shell
+pip3 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
+```shell
+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:
+(ZIP)](https://github.com/twilio/twilio-python/zipball/main 'twilio-python
+source code') for `twilio-python`, and then run:
+
+```shell
+python3 setup.py install
+```
+
+> **Info**
+> If the command line gives you an error message that says Permission Denied, try running the above commands with `sudo` (e.g., `sudo pip3 install twilio`).
+
+### Test your installation
+
+Try sending yourself an SMS message. Save the following code sample to your computer with a text editor. Be sure to update the `account_sid`, `auth_token`, and `from_` phone number with values from your [Twilio account](https://console.twilio.com). The `to` phone number will be your own mobile phone.
+
+```python
+from twilio.rest import Client
+
+# Your Account SID and Auth Token from console.twilio.com
+account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+auth_token = "your_auth_token"
+
+client = Client(account_sid, auth_token)
+
+message = client.messages.create(
+ to="+15558675309",
+ from_="+15017250604",
+ body="Hello from Python!")
- python setup.py install
+print(message.sid)
+```
+
+Save the file as `send_sms.py`. In the terminal, `cd` to the directory containing the file you just saved then run:
+
+```shell
+python3 send_sms.py
+```
-You may need to run the above commands with `sudo`.
+After a brief delay, you will receive the text message on your phone.
-## Getting Started
+> **Warning**
+> It's okay to hardcode your credentials when testing locally, but you should use environment variables to keep them secret before committing any code or deploying to production. Check out [How to Set Environment Variables](https://www.twilio.com/blog/2017/01/how-to-set-environment-variables.html) for more information.
-Getting started with the Twilio API couldn't be easier. Create a
-`Client` and you're ready to go.
+## Use the helper library
### API Credentials
-The `Twilio` client needs your Twilio credentials. You can either pass these
-directly to the constructor (see the code below) or via environment variables.
+The `Twilio` client needs your Twilio credentials. You can either pass these directly to the constructor (see the code below) or via environment variables.
Authenticating with Account SID and Auth Token:
+
```python
from twilio.rest import Client
-account_sid = "ACXXXXXXXXXXXXXXXXX"
-auth_token = "YYYYYYYYYYYYYYYYYY"
+account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+auth_token = "your_auth_token"
client = Client(account_sid, auth_token)
```
Authenticating with API Key and API Secret:
+
```python
from twilio.rest import Client
api_key = "XXXXXXXXXXXXXXXXX"
api_secret = "YYYYYYYYYYYYYYYYYY"
-account_sid = "ACXXXXXXXXXXXXXXXXX"
+account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
client = Client(api_key, api_secret, account_sid)
```
@@ -106,7 +138,6 @@ 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()
@@ -121,7 +152,8 @@ 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.
+
+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:
@@ -140,9 +172,9 @@ This will result in the `hostname` transforming from `api.twilio.com` to `api.sy
```python
from twilio.rest import Client
-username = "ACXXXXXXXXXXXXXXXXX"
-password = "YYYYYYYYYYYYYYYYYY"
-client = Client(username, password)
+account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+auth_token = "your_auth_token"
+client = Client(account_sid, auth_token)
call = client.calls.create(to="9991231234",
from_="9991231234",
@@ -150,17 +182,36 @@ call = client.calls.create(to="9991231234",
print(call.sid)
```
-### Send an SMS
+### Get data about an existing call
```python
from twilio.rest import Client
-username = "ACXXXXXXXXXXXXXXXXX"
-password = "YYYYYYYYYYYYYYYYYY"
-client = Client(username, password)
+account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+auth_token = "your_auth_token"
+client = Client(account_sid, auth_token)
-message = client.messages.create(to="+12316851234", from_="+15555555555",
- body="Hello there!")
+call = client.calls.get("CA42ed11f93dc08b952027ffbc406d0868")
+print(call.to)
+```
+
+### Iterate through records
+
+The library automatically handles paging for you. Collections, such as `calls` and `messages`, have `list` and `stream` methods that page under the hood. With both `list` and `stream`, you can specify the number of records you want to receive (`limit`) and the maximum size you want each page fetch to be (`page_size`). The library will then handle the task for you.
+
+`list` eagerly fetches all records and returns them as a list, whereas `stream` returns an iterator and lazily retrieves pages of records as you iterate over the collection. You can also page manually using the `page` method.
+
+#### Use the `list` method
+
+```python
+from twilio.rest import Client
+
+account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+auth_token = "your_auth_token"
+client = Client(account_sid, auth_token)
+
+for sms in client.messages.list():
+ print(sms.to)
```
### Asynchronous API Requests
@@ -172,10 +223,10 @@ from twilio.http.async_http_client import AsyncTwilioHttpClient
from twilio.rest import Client
async def main():
- username = "ACXXXXXXXXXXXXXXXXX"
- password = "YYYYYYYYYYYYYYYYYY"
+ account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+ auth_token = "your_auth_token"
http_client = AsyncTwilioHttpClient()
- client = Client(username, password, http_client=http_client)
+ client = Client(account_sid, auth_token, http_client=http_client)
message = await client.messages.create_async(to="+12316851234", from_="+15555555555",
body="Hello there!")
@@ -190,7 +241,7 @@ Log the API request and response data to the console:
```python
import logging
-client = Client(username, password)
+client = Client(account_sid, auth_token)
logging.basicConfig()
client.http_client.logger.setLevel(logging.INFO)
```
@@ -200,20 +251,22 @@ Log the API request and response data to a file:
```python
import logging
-client = Client(username, password)
+client = Client(account_sid, auth_token)
logging.basicConfig(filename='./log.txt')
client.http_client.logger.setLevel(logging.INFO)
```
### Handling Exceptions
+Version 8.x of `twilio-python` exports an exception class to help you handle exceptions that are specific to Twilio methods. To use it, import `TwilioRestException` and catch exceptions as follows:
+
```python
from twilio.rest import Client
from twilio.base.exceptions import TwilioRestException
-username = "ACXXXXXXXXXXXXXXXXX"
-password = "YYYYYYYYYYYYYYYYYY"
-client = Client(username, password)
+account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+auth_token = "your_auth_token"
+client = Client(account_sid, auth_token)
try:
message = client.messages.create(to="+12316851234", from_="+15555555555",
@@ -222,8 +275,6 @@ 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].
@@ -243,9 +294,9 @@ print(str(r))
<Response><Say>Welcome to twilio!</Say></Response>
```
-### Using a Custom HTTP Client
+### Other advanced examples
-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).
+- [Learn how to create your own custom HTTP client](./advanced-examples/custom-http-client.md)
### Docker Image
@@ -286,68 +337,101 @@ The Python library documentation can be found [here][libdocs].
`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.7
-* Python 3.8
-* Python 3.9
-* Python 3.10
-* Python 3.11
+- 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
+```shell
+pip3 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
+```shell
+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:
+(ZIP)](https://github.com/twilio/twilio-python/zipball/main 'twilio-python
+source code') for `twilio-python`, and then run:
- python setup.py install
+```shell
+python3 setup.py install
+```
-You may need to run the above commands with `sudo`.
+> **Info**
+> If the command line gives you an error message that says Permission Denied, try running the above commands with `sudo` (e.g., `sudo pip3 install twilio`).
-## Getting Started
+### Test your installation
-Getting started with the Twilio API couldn't be easier. Create a
-`Client` and you're ready to go.
+Try sending yourself an SMS message. Save the following code sample to your computer with a text editor. Be sure to update the `account_sid`, `auth_token`, and `from_` phone number with values from your [Twilio account](https://console.twilio.com). The `to` phone number will be your own mobile phone.
+
+```python
+from twilio.rest import Client
+
+# Your Account SID and Auth Token from console.twilio.com
+account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+auth_token = "your_auth_token"
+
+client = Client(account_sid, auth_token)
+
+message = client.messages.create(
+ to="+15558675309",
+ from_="+15017250604",
+ body="Hello from Python!")
+
+print(message.sid)
+```
+
+Save the file as `send_sms.py`. In the terminal, `cd` to the directory containing the file you just saved then run:
+
+```shell
+python3 send_sms.py
+```
+
+After a brief delay, you will receive the text message on your phone.
+
+> **Warning**
+> It's okay to hardcode your credentials when testing locally, but you should use environment variables to keep them secret before committing any code or deploying to production. Check out [How to Set Environment Variables](https://www.twilio.com/blog/2017/01/how-to-set-environment-variables.html) for more information.
+
+## Use the helper library
### API Credentials
-The `Twilio` client needs your Twilio credentials. You can either pass these
-directly to the constructor (see the code below) or via environment variables.
+The `Twilio` client needs your Twilio credentials. You can either pass these directly to the constructor (see the code below) or via environment variables.
Authenticating with Account SID and Auth Token:
+
```python
from twilio.rest import Client
-account_sid = "ACXXXXXXXXXXXXXXXXX"
-auth_token = "YYYYYYYYYYYYYYYYYY"
+account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+auth_token = "your_auth_token"
client = Client(account_sid, auth_token)
```
Authenticating with API Key and API Secret:
+
```python
from twilio.rest import Client
api_key = "XXXXXXXXXXXXXXXXX"
api_secret = "YYYYYYYYYYYYYYYYYY"
-account_sid = "ACXXXXXXXXXXXXXXXXX"
+account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
client = Client(api_key, api_secret, account_sid)
```
@@ -359,7 +443,6 @@ 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()
@@ -374,7 +457,8 @@ 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.
+
+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:
@@ -393,9 +477,9 @@ This will result in the `hostname` transforming from `api.twilio.com` to `api.sy
```python
from twilio.rest import Client
-username = "ACXXXXXXXXXXXXXXXXX"
-password = "YYYYYYYYYYYYYYYYYY"
-client = Client(username, password)
+account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+auth_token = "your_auth_token"
+client = Client(account_sid, auth_token)
call = client.calls.create(to="9991231234",
from_="9991231234",
@@ -403,17 +487,36 @@ call = client.calls.create(to="9991231234",
print(call.sid)
```
-### Send an SMS
+### Get data about an existing call
+
+```python
+from twilio.rest import Client
+
+account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+auth_token = "your_auth_token"
+client = Client(account_sid, auth_token)
+
+call = client.calls.get("CA42ed11f93dc08b952027ffbc406d0868")
+print(call.to)
+```
+
+### Iterate through records
+
+The library automatically handles paging for you. Collections, such as `calls` and `messages`, have `list` and `stream` methods that page under the hood. With both `list` and `stream`, you can specify the number of records you want to receive (`limit`) and the maximum size you want each page fetch to be (`page_size`). The library will then handle the task for you.
+
+`list` eagerly fetches all records and returns them as a list, whereas `stream` returns an iterator and lazily retrieves pages of records as you iterate over the collection. You can also page manually using the `page` method.
+
+#### Use the `list` method
```python
from twilio.rest import Client
-username = "ACXXXXXXXXXXXXXXXXX"
-password = "YYYYYYYYYYYYYYYYYY"
-client = Client(username, password)
+account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+auth_token = "your_auth_token"
+client = Client(account_sid, auth_token)
-message = client.messages.create(to="+12316851234", from_="+15555555555",
- body="Hello there!")
+for sms in client.messages.list():
+ print(sms.to)
```
### Asynchronous API Requests
@@ -425,10 +528,10 @@ from twilio.http.async_http_client import AsyncTwilioHttpClient
from twilio.rest import Client
async def main():
- username = "ACXXXXXXXXXXXXXXXXX"
- password = "YYYYYYYYYYYYYYYYYY"
+ account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+ auth_token = "your_auth_token"
http_client = AsyncTwilioHttpClient()
- client = Client(username, password, http_client=http_client)
+ client = Client(account_sid, auth_token, http_client=http_client)
message = await client.messages.create_async(to="+12316851234", from_="+15555555555",
body="Hello there!")
@@ -443,7 +546,7 @@ Log the API request and response data to the console:
```python
import logging
-client = Client(username, password)
+client = Client(account_sid, auth_token)
logging.basicConfig()
client.http_client.logger.setLevel(logging.INFO)
```
@@ -453,20 +556,22 @@ Log the API request and response data to a file:
```python
import logging
-client = Client(username, password)
+client = Client(account_sid, auth_token)
logging.basicConfig(filename='./log.txt')
client.http_client.logger.setLevel(logging.INFO)
```
### Handling Exceptions
+Version 8.x of `twilio-python` exports an exception class to help you handle exceptions that are specific to Twilio methods. To use it, import `TwilioRestException` and catch exceptions as follows:
+
```python
from twilio.rest import Client
from twilio.base.exceptions import TwilioRestException
-username = "ACXXXXXXXXXXXXXXXXX"
-password = "YYYYYYYYYYYYYYYYYY"
-client = Client(username, password)
+account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+auth_token = "your_auth_token"
+client = Client(account_sid, auth_token)
try:
message = client.messages.create(to="+12316851234", from_="+15555555555",
@@ -475,8 +580,6 @@ 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].
@@ -496,9 +599,9 @@ print(str(r))
<Response><Say>Welcome to twilio!</Say></Response>
```
-### Using a Custom HTTP Client
+### Other advanced examples
-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).
+- [Learn how to create your own custom HTTP client](./advanced-examples/custom-http-client.md)
### Docker Image
@@ -536,68 +639,101 @@ The Python library documentation can be found [here][libdocs].
`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.7
-* Python 3.8
-* Python 3.9
-* Python 3.10
-* Python 3.11
+- 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
+```shell
+pip3 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
+```shell
+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:
+(ZIP)](https://github.com/twilio/twilio-python/zipball/main 'twilio-python
+source code') for `twilio-python`, and then run:
+
+```shell
+python3 setup.py install
+```
+
+> **Info**
+> If the command line gives you an error message that says Permission Denied, try running the above commands with `sudo` (e.g., `sudo pip3 install twilio`).
- python setup.py install
+### Test your installation
-You may need to run the above commands with `sudo`.
+Try sending yourself an SMS message. Save the following code sample to your computer with a text editor. Be sure to update the `account_sid`, `auth_token`, and `from_` phone number with values from your [Twilio account](https://console.twilio.com). The `to` phone number will be your own mobile phone.
-## Getting Started
+```python
+from twilio.rest import Client
-Getting started with the Twilio API couldn't be easier. Create a
-`Client` and you're ready to go.
+# Your Account SID and Auth Token from console.twilio.com
+account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+auth_token = "your_auth_token"
+
+client = Client(account_sid, auth_token)
+
+message = client.messages.create(
+ to="+15558675309",
+ from_="+15017250604",
+ body="Hello from Python!")
+
+print(message.sid)
+```
+
+Save the file as `send_sms.py`. In the terminal, `cd` to the directory containing the file you just saved then run:
+
+```shell
+python3 send_sms.py
+```
+
+After a brief delay, you will receive the text message on your phone.
+
+> **Warning**
+> It's okay to hardcode your credentials when testing locally, but you should use environment variables to keep them secret before committing any code or deploying to production. Check out [How to Set Environment Variables](https://www.twilio.com/blog/2017/01/how-to-set-environment-variables.html) for more information.
+
+## Use the helper library
### API Credentials
-The `Twilio` client needs your Twilio credentials. You can either pass these
-directly to the constructor (see the code below) or via environment variables.
+The `Twilio` client needs your Twilio credentials. You can either pass these directly to the constructor (see the code below) or via environment variables.
Authenticating with Account SID and Auth Token:
+
```python
from twilio.rest import Client
-account_sid = "ACXXXXXXXXXXXXXXXXX"
-auth_token = "YYYYYYYYYYYYYYYYYY"
+account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+auth_token = "your_auth_token"
client = Client(account_sid, auth_token)
```
Authenticating with API Key and API Secret:
+
```python
from twilio.rest import Client
api_key = "XXXXXXXXXXXXXXXXX"
api_secret = "YYYYYYYYYYYYYYYYYY"
-account_sid = "ACXXXXXXXXXXXXXXXXX"
+account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
client = Client(api_key, api_secret, account_sid)
```
@@ -609,7 +745,6 @@ 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()
@@ -624,7 +759,8 @@ 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.
+
+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:
@@ -643,9 +779,9 @@ This will result in the `hostname` transforming from `api.twilio.com` to `api.sy
```python
from twilio.rest import Client
-username = "ACXXXXXXXXXXXXXXXXX"
-password = "YYYYYYYYYYYYYYYYYY"
-client = Client(username, password)
+account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+auth_token = "your_auth_token"
+client = Client(account_sid, auth_token)
call = client.calls.create(to="9991231234",
from_="9991231234",
@@ -653,17 +789,36 @@ call = client.calls.create(to="9991231234",
print(call.sid)
```
-### Send an SMS
+### Get data about an existing call
```python
from twilio.rest import Client
-username = "ACXXXXXXXXXXXXXXXXX"
-password = "YYYYYYYYYYYYYYYYYY"
-client = Client(username, password)
+account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+auth_token = "your_auth_token"
+client = Client(account_sid, auth_token)
-message = client.messages.create(to="+12316851234", from_="+15555555555",
- body="Hello there!")
+call = client.calls.get("CA42ed11f93dc08b952027ffbc406d0868")
+print(call.to)
+```
+
+### Iterate through records
+
+The library automatically handles paging for you. Collections, such as `calls` and `messages`, have `list` and `stream` methods that page under the hood. With both `list` and `stream`, you can specify the number of records you want to receive (`limit`) and the maximum size you want each page fetch to be (`page_size`). The library will then handle the task for you.
+
+`list` eagerly fetches all records and returns them as a list, whereas `stream` returns an iterator and lazily retrieves pages of records as you iterate over the collection. You can also page manually using the `page` method.
+
+#### Use the `list` method
+
+```python
+from twilio.rest import Client
+
+account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+auth_token = "your_auth_token"
+client = Client(account_sid, auth_token)
+
+for sms in client.messages.list():
+ print(sms.to)
```
### Asynchronous API Requests
@@ -675,10 +830,10 @@ from twilio.http.async_http_client import AsyncTwilioHttpClient
from twilio.rest import Client
async def main():
- username = "ACXXXXXXXXXXXXXXXXX"
- password = "YYYYYYYYYYYYYYYYYY"
+ account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+ auth_token = "your_auth_token"
http_client = AsyncTwilioHttpClient()
- client = Client(username, password, http_client=http_client)
+ client = Client(account_sid, auth_token, http_client=http_client)
message = await client.messages.create_async(to="+12316851234", from_="+15555555555",
body="Hello there!")
@@ -693,7 +848,7 @@ Log the API request and response data to the console:
```python
import logging
-client = Client(username, password)
+client = Client(account_sid, auth_token)
logging.basicConfig()
client.http_client.logger.setLevel(logging.INFO)
```
@@ -703,20 +858,22 @@ Log the API request and response data to a file:
```python
import logging
-client = Client(username, password)
+client = Client(account_sid, auth_token)
logging.basicConfig(filename='./log.txt')
client.http_client.logger.setLevel(logging.INFO)
```
### Handling Exceptions
+Version 8.x of `twilio-python` exports an exception class to help you handle exceptions that are specific to Twilio methods. To use it, import `TwilioRestException` and catch exceptions as follows:
+
```python
from twilio.rest import Client
from twilio.base.exceptions import TwilioRestException
-username = "ACXXXXXXXXXXXXXXXXX"
-password = "YYYYYYYYYYYYYYYYYY"
-client = Client(username, password)
+account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+auth_token = "your_auth_token"
+client = Client(account_sid, auth_token)
try:
message = client.messages.create(to="+12316851234", from_="+15555555555",
@@ -725,8 +882,6 @@ 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].
@@ -746,9 +901,9 @@ print(str(r))
<Response><Say>Welcome to twilio!</Say></Response>
```
-### Using a Custom HTTP Client
+### Other advanced examples
-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).
+- [Learn how to create your own custom HTTP client](./advanced-examples/custom-http-client.md)
### Docker Image
@@ -766,7 +921,7 @@ If you've instead found a bug in the library or would like new features added, g
%prep
-%autosetup -n twilio-8.0.0
+%autosetup -n twilio-8.1.0
%build
%py3_build
@@ -806,5 +961,5 @@ mv %{buildroot}/doclist.lst .
%{_docdir}/*
%changelog
-* Mon Apr 10 2023 Python_Bot <Python_Bot@openeuler.org> - 8.0.0-1
+* Fri Apr 21 2023 Python_Bot <Python_Bot@openeuler.org> - 8.1.0-1
- Package Spec generated
diff --git a/sources b/sources
index 1b48c47..980c631 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-c59d5e39b400de8fbcd38f471a9b97d9 twilio-8.0.0.tar.gz
+82cc223de80f7a7891d0ceef947f9f4c twilio-8.1.0.tar.gz