From a0b7c884022b80bc07f68ab31ec47017a2e956a8 Mon Sep 17 00:00:00 2001 From: Mike Helmick Date: Tue, 24 Sep 2013 15:55:50 -0400 Subject: [PATCH 01/11] Fixing travis encrypted keys, version number and requests requirement --- .travis.yml | 28 ++++++---------------------- requirements.txt | 2 +- setup.py | 4 ++-- 3 files changed, 9 insertions(+), 25 deletions(-) diff --git a/.travis.yml b/.travis.yml index eb88c4d..692131b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,28 +3,12 @@ python: - 2.6 - 2.7 - 3.3 -env: - global: - - secure: |- - ICEoq4tQdOCGzpQAgLHunOflhLqs7hb1xYuD6mXZCbO/L+hDI4+pImA9mZZd - doyfyFMuNprWfgdUdcAL3axliRR2TyQIt51FLf7bD01jJEPa0GOKlKE/s/+3 - 7oDs+kkSr81w9rvIqpx55nE8+DYzkh+TwDp5oAT+m/EE+lFItfk= - - secure: |- - LNowlSsXwgbFT0g8B4fDlBmOhycAfSxUNFiYBDn70H93WDLr9drEbE7Wl2Mv - AlGJw0kXey4K4oTV4+Bsy6gacsvCINpFk7f4ulTDHCH4MTONtG1n51RlkLW0 - SAH8di1DiXR3PqRv+NKixVsgI0ZCY1B78NuvaoDL68bfu0KEdHs= - - secure: |- - kC9hGpdJJesmZZGMXEoPWK/lzIU6vUeguV/yI2jLgRin0EKPsgds0qR4737x - 2Z2q1+CFUlvHkl+povGcm0/A1rkNqU0KKBcxRBu/XXRxJ3DWp7gIGsmoyWUW - 68kdPOwxywZ+tj6BCD7zmStKn4I3mSzTmGKaWj8ZT0wQ91tl0Y8= - - secure: |- - Y0M90wCpDWmSdBmgPCV2N9mMSaRMdEOis5r5sfUq/5aFTB/KDaSR9scM1g+L - 21OtvUBvaG1bdSzn0T+I5Fs/MkfbtTmuahogy83nsNDRpIZJmRIsHFmJw1fz - nEHD2Kbm4iLMYzrKto77KpxYSQMnc3sQKZjreaI31NLu+7raCAk= - - secure: |- - j1gePLSZF8SRcpF1AU+cBK5MSih5MrM1iGE6N7VWI0wrl+xh7wr3QLtVkAar - AeMFgwkz6QalfrKLsoUPFuNMv7vn+2CthC9pRv+NRk+4xV+37NysHFPR7JRo - xK2EC+DCiw2eJECnk9IPGQTgkVnFAQ3GLnsBSzzJ+UAkG2NjZ88= +env: + global: + - secure: USjLDneiXlVvEjkUVqTt+LBi0XJ4QhkRcJzqVXA9gEau1NTjAkNTPmHjUbOygp0dkfoV0uWrZKCw6fL1g+HJgWl0vHeHzcNl4mUkA+OwkGFHgaeIhvUfnyyJA8P3Zm21XHC+ehzMpEFN5fVNNhREjnRj+CXMc0FgA6knwBRobu4= + - secure: HFTL8UN1GkY6/GqygpgzWpYdWvhXRN8uTO//AgGzSg0FkHuDFcxRJigwCNI3PRImFkkRRVmUJDw18dolkx2h60w0wqD9K09DFpPTYfwmF9Bql+O3hjG9Ep9iu+CREwQTm2u66f36Q+pjaDiHWmr0kgi0zUTD7w0UvlN7gdFCMxk= + - secure: L3nD/BEOAqGTmd8Va9bQ8MZL5gbiNWuy9TvIxCmQ5bfdlAAdq371oqXpuy90JftaloapktjjmuSrsiszWgMMB/TGDO45h1LrYQEMEmA/4JN/uly3lUk8th9Rig+blKTG0q6X6GsX8UWA0xVeLtXzkddpNAOBgpeqb33pWmFkdcM= + - secure: OdVG7LVqQ13RQxxEUPEMHZb0seoZUNzq+oy/K1qe4ubcupqiMh47pxnDcei6vkVpMn8QIvbG9lcV0oOREqJ+m+g3wUA5JX95liFqLNsmLMMVgP3yjYDf7KoNHckA5H5BwIYO/AFCBdwyNN0h439kwSciCbIr70UModVkvdWoFLI= - SCREEN_NAME=__twython__ - PROTECTED_TWITTER_1=TwythonSecure1 - PROTECTED_TWITTER_2=TwythonSecure2 diff --git a/requirements.txt b/requirements.txt index b7897fb..cab175e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ coverage==3.6.0 -requests==1.2.2 +requests==2.0.0 requests_oauthlib==0.3.2 python-coveralls==2.1.0 nose-cov==1.6 diff --git a/setup.py b/setup.py index e0501a9..710b097 100755 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ import sys from setuptools import setup __author__ = 'Ryan McGrath ' -__version__ = '3.0.0' +__version__ = '3.1.0' packages = [ 'twython', @@ -20,7 +20,7 @@ if sys.argv[-1] == 'publish': setup( name='twython', version=__version__, - install_requires=['requests==1.2.3', 'requests_oauthlib==0.3.2'], + install_requires=['requests==2.0.0', 'requests_oauthlib==0.3.2'], author='Ryan McGrath', author_email='ryan@venodesigns.net', license=open('LICENSE').read(), From 85a327163de628cd721789d7d2c3ab6bc6a84998 Mon Sep 17 00:00:00 2001 From: Mike Helmick Date: Tue, 24 Sep 2013 17:50:50 -0400 Subject: [PATCH 02/11] Special encrypt for access token, this probably won't work --- .travis.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.travis.yml b/.travis.yml index 692131b..fc0db42 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,7 @@ env: - secure: HFTL8UN1GkY6/GqygpgzWpYdWvhXRN8uTO//AgGzSg0FkHuDFcxRJigwCNI3PRImFkkRRVmUJDw18dolkx2h60w0wqD9K09DFpPTYfwmF9Bql+O3hjG9Ep9iu+CREwQTm2u66f36Q+pjaDiHWmr0kgi0zUTD7w0UvlN7gdFCMxk= - secure: L3nD/BEOAqGTmd8Va9bQ8MZL5gbiNWuy9TvIxCmQ5bfdlAAdq371oqXpuy90JftaloapktjjmuSrsiszWgMMB/TGDO45h1LrYQEMEmA/4JN/uly3lUk8th9Rig+blKTG0q6X6GsX8UWA0xVeLtXzkddpNAOBgpeqb33pWmFkdcM= - secure: OdVG7LVqQ13RQxxEUPEMHZb0seoZUNzq+oy/K1qe4ubcupqiMh47pxnDcei6vkVpMn8QIvbG9lcV0oOREqJ+m+g3wUA5JX95liFqLNsmLMMVgP3yjYDf7KoNHckA5H5BwIYO/AFCBdwyNN0h439kwSciCbIr70UModVkvdWoFLI= + - secure: RJgKNXCxQZxjkxqinv6x96hGZvfJpjOIaRpH9YUJrCZeqLbS1FUOvTWkze5nZQw4DL14zBmpGZXYC9twSYvscEGNnaEhxDKygiFfLosERRa65N57kphD0AsGNe9YAhWUGDbCxnZ0PYHc48DYxX+jPxqsQ/2bxZbXVoJg4pZFP3o= - SCREEN_NAME=__twython__ - PROTECTED_TWITTER_1=TwythonSecure1 - PROTECTED_TWITTER_2=TwythonSecure2 @@ -24,3 +25,9 @@ branches: - master after_success: - coveralls +before_script: + - |- + ACCESS_TOKEN_B64=U2FsdGVkX1+OsKZdDqnhWy1jwIUKKqjp2eeTeIS2S2Z9xfwzg2XPavn01lV9Ml7j + LULxl/l4021YZ3DdYpudm7vQHr+lJGMM1TNPdf0QIusxWYZp7pGayl6uourm8iEY + WIEpMtCNL3l6Ntluw077oVP9TW0kiGQ8JROemIHLTOY= + - ACCESS_TOKEN=`openssl enc -d -aes-256-cbc -a $ACCESS_TOKEN_B64 -pass env:$ACCESS_TOKEN_SECRET` From 58ff3de7a198b582725fe2760a271533e7426892 Mon Sep 17 00:00:00 2001 From: Mike Helmick Date: Tue, 24 Sep 2013 17:58:59 -0400 Subject: [PATCH 03/11] Trying this travis var stuff again! --- .travis.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index fc0db42..07b2744 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,6 +16,10 @@ env: - TEST_TWEET_ID=332992304010899457 - TEST_LIST_SLUG=team - TEST_LIST_OWNER_SCREEN_NAME=twitterapi + - |- + ACCESS_TOKEN_B64=U2FsdGVkX1+OsKZdDqnhWy1jwIUKKqjp2eeTeIS2S2Z9xfwzg2XPavn01lV9Ml7j + LULxl/l4021YZ3DdYpudm7vQHr+lJGMM1TNPdf0QIusxWYZp7pGayl6uourm8iEY + WIEpMtCNL3l6Ntluw077oVP9TW0kiGQ8JROemIHLTOY= install: pip install -r requirements.txt script: nosetests -v -w tests/ --logging-filter="twython" --with-cov --cov twython --cov-config .coveragerc --cov-report term-missing notifications: @@ -26,8 +30,4 @@ branches: after_success: - coveralls before_script: - - |- - ACCESS_TOKEN_B64=U2FsdGVkX1+OsKZdDqnhWy1jwIUKKqjp2eeTeIS2S2Z9xfwzg2XPavn01lV9Ml7j - LULxl/l4021YZ3DdYpudm7vQHr+lJGMM1TNPdf0QIusxWYZp7pGayl6uourm8iEY - WIEpMtCNL3l6Ntluw077oVP9TW0kiGQ8JROemIHLTOY= - - ACCESS_TOKEN=`openssl enc -d -aes-256-cbc -a $ACCESS_TOKEN_B64 -pass env:$ACCESS_TOKEN_SECRET` + - export ACCESS_TOKEN=$(echo $ACCESS_TOKEN_B64 | openssl enc -d -aes-256-cbc -a -pass env:ACCESS_TOKEN_SECRET) From bc373c3436d8407d9ce821be5e2da4fe1f476521 Mon Sep 17 00:00:00 2001 From: Mike Helmick Date: Tue, 24 Sep 2013 18:12:17 -0400 Subject: [PATCH 04/11] Gotsta see what the access token is --- tests/test_core.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_core.py b/tests/test_core.py index 710ba1b..3a38ec8 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -29,6 +29,7 @@ class TwythonAPITestCase(unittest.TestCase): oauth_token, oauth_token_secret, client_args=client_args) + print 'access token is', access_token self.oauth2_api = Twython(app_key, access_token=access_token, client_args=oauth2_client_args) From 082528490eb1674c2b0737b8d832d171bdd6d723 Mon Sep 17 00:00:00 2001 From: Mike Helmick Date: Wed, 25 Sep 2013 10:45:24 -0400 Subject: [PATCH 05/11] Update docs [ci skip] --- docs/usage/advanced_usage.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/usage/advanced_usage.rst b/docs/usage/advanced_usage.rst index 74246f3..db36301 100644 --- a/docs/usage/advanced_usage.rst +++ b/docs/usage/advanced_usage.rst @@ -102,8 +102,8 @@ Here is an example of sending the request through proxies: client_args = { 'proxies': { - 'http': '10.0.10.1:8000', - 'https': '10.0.10.1:8001', + 'http': 'http://10.0.10.1:8000', + 'https': 'https://10.0.10.1:8001', } } @@ -122,8 +122,8 @@ or both (and set a timeout variable): 'User-Agent': 'My App Name' }, 'proxies': { - 'http': '10.0.10.1:8000', - 'https': '10.0.10.1:8001', + 'http': 'http://10.0.10.1:8000', + 'https': 'https://10.0.10.1:8001', } 'timeout': 300, } From 21257d0475a15625d0a2a2c3bcb899428fd0bfd2 Mon Sep 17 00:00:00 2001 From: Mike Helmick Date: Wed, 25 Sep 2013 10:59:22 -0400 Subject: [PATCH 06/11] One line b64 string for ACCESS_TOKEN --- .travis.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 07b2744..a4ebb21 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,10 +16,7 @@ env: - TEST_TWEET_ID=332992304010899457 - TEST_LIST_SLUG=team - TEST_LIST_OWNER_SCREEN_NAME=twitterapi - - |- - ACCESS_TOKEN_B64=U2FsdGVkX1+OsKZdDqnhWy1jwIUKKqjp2eeTeIS2S2Z9xfwzg2XPavn01lV9Ml7j - LULxl/l4021YZ3DdYpudm7vQHr+lJGMM1TNPdf0QIusxWYZp7pGayl6uourm8iEY - WIEpMtCNL3l6Ntluw077oVP9TW0kiGQ8JROemIHLTOY= + - ACCESS_TOKEN_B64=U2FsdGVkX18QdBhvMNshM4PGy04tU3HLwKP+nNSoNZHKsvGLjELcWEXN2LIu/T+yngX1vGONf9lo14ElnfS4k7sfhiru8phR4+rZuBVP3bDvC2A6fXJuhuLqNhBrWqg32WQewvxLWDWBoKmnvRHg5b74GHh+IN/12tU0cBF2HK8= install: pip install -r requirements.txt script: nosetests -v -w tests/ --logging-filter="twython" --with-cov --cov twython --cov-config .coveragerc --cov-report term-missing notifications: From 636e52a8c53e96a047b906cc38b2232a9d94ad86 Mon Sep 17 00:00:00 2001 From: Mike Helmick Date: Wed, 25 Sep 2013 11:14:27 -0400 Subject: [PATCH 07/11] Fixing decrypt, remove print --- .travis.yml | 2 +- tests/test_core.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index a4ebb21..9e4e7fc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,4 +27,4 @@ branches: after_success: - coveralls before_script: - - export ACCESS_TOKEN=$(echo $ACCESS_TOKEN_B64 | openssl enc -d -aes-256-cbc -a -pass env:ACCESS_TOKEN_SECRET) + - export ACCESS_TOKEN=$(echo $ACCESS_TOKEN_B64 | openssl enc -d -aes-256-cbc -A -a -pass env:ACCESS_TOKEN_SECRET) diff --git a/tests/test_core.py b/tests/test_core.py index 3a38ec8..710ba1b 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -29,7 +29,6 @@ class TwythonAPITestCase(unittest.TestCase): oauth_token, oauth_token_secret, client_args=client_args) - print 'access token is', access_token self.oauth2_api = Twython(app_key, access_token=access_token, client_args=oauth2_client_args) From a6399778734d9fea1528a21d4609a0a7500870b8 Mon Sep 17 00:00:00 2001 From: Mike Helmick Date: Wed, 25 Sep 2013 11:24:13 -0400 Subject: [PATCH 08/11] Should have left the print in --- tests/test_core.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_core.py b/tests/test_core.py index 710ba1b..3a38ec8 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -29,6 +29,7 @@ class TwythonAPITestCase(unittest.TestCase): oauth_token, oauth_token_secret, client_args=client_args) + print 'access token is', access_token self.oauth2_api = Twython(app_key, access_token=access_token, client_args=oauth2_client_args) From 6da8805545fdfb40a62d6fd04aeb78400731bdda Mon Sep 17 00:00:00 2001 From: Mike Helmick Date: Wed, 25 Sep 2013 11:59:55 -0400 Subject: [PATCH 09/11] =?UTF-8?q?Fix=20decrypt,=20remove=20print=E2=80=A6.?= =?UTF-8?q?=20again?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 2 +- tests/test_core.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9e4e7fc..8411c02 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,4 +27,4 @@ branches: after_success: - coveralls before_script: - - export ACCESS_TOKEN=$(echo $ACCESS_TOKEN_B64 | openssl enc -d -aes-256-cbc -A -a -pass env:ACCESS_TOKEN_SECRET) + - export ACCESS_TOKEN=$(echo $ACCESS_TOKEN_B64 | openssl enc -d -aes-256-cbc -A -a -pass env:ACCESS_TOKEN_PASS) diff --git a/tests/test_core.py b/tests/test_core.py index 3a38ec8..710ba1b 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -29,7 +29,6 @@ class TwythonAPITestCase(unittest.TestCase): oauth_token, oauth_token_secret, client_args=client_args) - print 'access token is', access_token self.oauth2_api = Twython(app_key, access_token=access_token, client_args=oauth2_client_args) From f6d458e7587069852af1cb05aba4cfc5e382df4b Mon Sep 17 00:00:00 2001 From: Mike Helmick Date: Wed, 25 Sep 2013 12:58:40 -0400 Subject: [PATCH 10/11] Fixes #230 --- twython/streaming/api.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/twython/streaming/api.py b/twython/streaming/api.py index ef8924a..a27e6cd 100644 --- a/twython/streaming/api.py +++ b/twython/streaming/api.py @@ -21,7 +21,7 @@ import time class TwythonStreamer(object): def __init__(self, app_key, app_secret, oauth_token, oauth_token_secret, timeout=300, retry_count=None, retry_in=10, client_args=None, - handlers=None): + handlers=None, chunk_size=1): """Streaming class for a friendly streaming user experience Authentication IS required to use the Twitter Streaming API @@ -42,6 +42,9 @@ class TwythonStreamer(object): [ex. headers, proxies, verify(SSL verification)] :param handlers: (optional) Array of message types for which corresponding handlers will be called + + :param chunk_size: (optional) Define the buffer size before data is + actually returned from the Streaming API. Default: 1 """ self.auth = OAuth1(app_key, app_secret, @@ -124,7 +127,7 @@ class TwythonStreamer(object): while self.connected: response = _send(retry_counter) - for line in response.iter_lines(): + for line in response.iter_lines(self.chunk_size): if not self.connected: break if line: From 99067c3e6ff6c0738d514bdfff9eea2c939cd807 Mon Sep 17 00:00:00 2001 From: Mike Helmick Date: Wed, 25 Sep 2013 13:02:52 -0400 Subject: [PATCH 11/11] Fixes #254 and forgot to def chunk_size --- twython/streaming/api.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/twython/streaming/api.py b/twython/streaming/api.py index a27e6cd..6fa247e 100644 --- a/twython/streaming/api.py +++ b/twython/streaming/api.py @@ -10,6 +10,7 @@ Twitter API calls. from .. import __version__ from ..compat import json, is_py3 +from ..helpers import _transparent_params from .types import TwythonStreamerTypes import requests @@ -88,6 +89,8 @@ class TwythonStreamer(object): self.handlers = handlers if handlers else ['delete', 'limit', 'disconnect'] + self.chunk_size = chunk_size + def _request(self, url, method='GET', params=None): """Internal stream request handling""" self.connected = True @@ -95,6 +98,7 @@ class TwythonStreamer(object): method = method.lower() func = getattr(self.client, method) + params, _ = _transparent_params(params) def _send(retry_counter): requests_args = {}