Skip to content

Commit

Permalink
Merge branch 'release/0.9.3'
Browse files Browse the repository at this point in the history
  • Loading branch information
prawn-cake committed Mar 3, 2016
2 parents ec5ad88 + 4c20308 commit 0877397
Show file tree
Hide file tree
Showing 9 changed files with 39 additions and 14 deletions.
2 changes: 1 addition & 1 deletion .bumpversion.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 0.9.2
current_version = 0.9.3
tag = False
tag_name = {new_version}
commit = True
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,4 @@ register:
upload: clean
# target: upload - Upload package on PyPi
@$(VIRTUAL_ENV)/bin/pip install wheel
@$(PYTHON) setup.py sdist bdist bdist_wheel upload -r pypi
@$(PYTHON) setup.py bdist_wheel upload -r pypi
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,10 @@
[vk.com](https://vk.com) is the largest social network in Russia.
This library is significantly improved fork of [vk](https://github.com/dimka665/vk)

## Install

pip install vk-requests

## Usage
import vk_requests

Expand Down
2 changes: 2 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[bdist_wheel]
universal=1
12 changes: 9 additions & 3 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
from distutils.core import setup
from setuptools import setup

setup(
name='vk-requests',
version='0.9.2',
packages=['vk_requests', 'vk_requests.tests'],
version='0.9.3',
packages=['vk_requests'],
url='https://github.com/prawn-cake/vk-requests',
license='MIT',
author='Maksim Ekimovskii',
Expand All @@ -13,5 +13,11 @@
'six',
'requests==2.8.1',
'beautifulsoup4==4.4.1'
],
classifiers=[
'Intended Audience :: Developers'

'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3.4',
]
)
2 changes: 1 addition & 1 deletion vk_requests/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from vk_requests.api import API


__version__ = '0.9.2'
__version__ = '0.9.3'


def create_api(app_id=None, login=None, password=None, phone_number=None,
Expand Down
7 changes: 6 additions & 1 deletion vk_requests/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,11 @@ def get_timeout(self):
return self._timeout

def make_request(self, request_obj):
"""Make http request. This method is being called from Request object
:param request_obj: vk_requests.api.Request
:return: dict | VkAPIError
"""
return self._session.make_request(request_obj)

def __getattr__(self, method_name):
Expand All @@ -53,7 +58,7 @@ def get_method_args(self):
return self._method_args

def __getattr__(self, method_name):
return Request(self._api, self._method_name + '.' + method_name)
return Request(self._api, '.'.join([self._method_name, method_name]))

def __call__(self, **method_args):
self._method_args = method_args
Expand Down
21 changes: 15 additions & 6 deletions vk_requests/auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,13 @@ def __repr__(self):
def api_version(self):
return self._api_version or self.DEFAULT_API_VERSION

def is_token_required(self):
"""Helper method for vk_requests.auth.VKSession initialization
:return: bool
"""
return any([self.app_id, self._login, self._password])

@property
def access_token(self):
if self._access_token is None:
Expand Down Expand Up @@ -120,6 +127,7 @@ def get_access_token(self):
with VerboseHTTPSession() as s:
self.do_login(session=s)
url_query_params = self.do_oauth2_authorization(session=s)
logger.debug('url_query_params: %s', url_query_params)

if 'access_token' in url_query_params:
logger.info('Done')
Expand Down Expand Up @@ -299,6 +307,9 @@ def __init__(self, **kwargs):
if not self.app_id:
self.app_id = InteractiveAuthAPI.get_app_id()

# Renew access token, cuz login is set
self.renew_access_token()

@staticmethod
def get_user_login():
user_login = raw_input('VK user login: ')
Expand All @@ -314,7 +325,7 @@ def get_user_password():
import getpass

user_password = getpass.getpass('VK user password: ')
return user_password
return user_password.strip()

def get_access_token(self):
logger.debug('InteractiveMixin.get_access_token()')
Expand Down Expand Up @@ -365,8 +376,6 @@ def __init__(self, app_id=None, user_login=None, user_password=None,
phone_number=phone_number,
**api_kwargs)
self.censored_access_token = None
# Require token if any of auth parameters are being passed
self.is_token_required = any([app_id, user_login, user_password])

# requests.Session subclass instance
self.http_session = VerboseHTTPSession()
Expand Down Expand Up @@ -404,7 +413,7 @@ def access_token(self, value):
logger.debug('access_token = %r', self.censored_access_token)

def make_request(self, request_obj, captcha_response=None):
logger.debug('Prepare API Method request')
logger.debug('Prepare API Method request %r', request_obj)
response = self.send_api_request(request=request_obj,
captcha_response=captcha_response)
response.raise_for_status()
Expand Down Expand Up @@ -454,7 +463,7 @@ def send_api_request(self, request, captcha_response=None):
for values in (vk_api.get_default_kwargs(), request.get_method_args()):
method_kwargs.update(stringify_values(values))

if self.is_token_required:
if self.auth_api.is_token_required():
# Auth api call if access_token weren't be got earlier
method_kwargs['access_token'] = self.access_token
if captcha_response:
Expand All @@ -471,4 +480,4 @@ def __repr__(self):


class InteractiveVKSession(VKSession):
DEFAULT_AUTH_API_CLS = InteractiveAuthAPI
DEFAULT_AUTH_API_CLS = InteractiveAuthAPI
2 changes: 1 addition & 1 deletion vk_requests/tests/test_auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ def test_session_init(self):
self.assertIsInstance(session, VKSession)

# Token is required, cuz auth params are being passed
self.assertTrue(session.is_token_required)
self.assertTrue(session.auth_api.is_token_required)

def test_custom_auth_api_cls(self):
class MyAuthAPI(AuthAPI):
Expand Down

0 comments on commit 0877397

Please sign in to comment.