diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-04-21 09:31:32 +0000 | 
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-04-21 09:31:32 +0000 | 
| commit | 76998b2ca64773b657702fb77785904dee99981d (patch) | |
| tree | 6a15994c83ade9ba913be7aa014658f8744e1635 | |
| parent | 49f836a2bf4357d7a1c23afa0bdceaba9bb81f57 (diff) | |
automatic import of python-twilioopeneuler20.03
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-twilio.spec | 441 | ||||
| -rw-r--r-- | sources | 2 | 
3 files changed, 300 insertions, 144 deletions
| @@ -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 @@ -1 +1 @@ -c59d5e39b400de8fbcd38f471a9b97d9  twilio-8.0.0.tar.gz +82cc223de80f7a7891d0ceef947f9f4c  twilio-8.1.0.tar.gz | 
