Skip to content

Commit

Permalink
Merge branch 'release/0.1.0'.
Browse files Browse the repository at this point in the history
  • Loading branch information
petrbroz committed May 7, 2021
2 parents b92b699 + 6712963 commit 4a0aa14
Show file tree
Hide file tree
Showing 12 changed files with 473 additions and 290 deletions.
5 changes: 5 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"python.linting.enabled": true,
"python.linting.pylintUseMinimalCheckers": false,
"python.linting.pylintEnabled": true
}
3 changes: 3 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ init-dev: init
test:
python3 -m unittest

lint:
python3 -m pylint src/autodesk_forge_sdk

build:
python3 -m build

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import os
from autodesk_forge_sdk import AuthenticationClient, Scope

client = AuthenticationClient()
auth = client.authenticate(os.environ["FORGE_CLIENT_ID"], os.environ["FORGE_CLIENT_SECRET"], [Scope.ViewablesRead])
auth = client.authenticate(os.environ["FORGE_CLIENT_ID"], os.environ["FORGE_CLIENT_SECRET"], [Scope.VIEWABLES_READ])
print(auth["access_token"])
```

Expand Down
1 change: 1 addition & 0 deletions requirements-dev.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
pylint
build
twine
wheel
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

setuptools.setup(
name="autodesk-forge-sdk",
version="0.0.4",
version="0.1.0",
author="Petr Broz",
author_email="[email protected]",
description="Unofficial Autodesk Forge SDK for Python.",
Expand Down
9 changes: 7 additions & 2 deletions src/autodesk_forge_sdk/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
from .auth import AuthenticationClient, Scope, TokenProviderInterface, SimpleTokenProvider, OAuthTokenProvider
"""
Clients for communicating with different Autodesk Forge services.
"""

from .auth import AuthenticationClient, Scope, get_authorization_url
from .auth import TokenProviderInterface, SimpleTokenProvider, OAuthTokenProvider
from .oss import OSSClient
from .md import ModelDerivativeClient, urnify
from .md import ModelDerivativeClient, urnify
322 changes: 206 additions & 116 deletions src/autodesk_forge_sdk/auth.py

Large diffs are not rendered by default.

48 changes: 30 additions & 18 deletions src/autodesk_forge_sdk/base.py
Original file line number Diff line number Diff line change
@@ -1,50 +1,62 @@
"""
Helper classes used by other API clients.
"""

import requests

class BaseClient(object):

class BaseClient:
"""
Base client for accessing web-based APIs.
"""
def __init__(self, base_url: str):
self.base_url = base_url

def _resolve_url(self, url: str) -> str:
if url.startswith('/'):
if url.startswith("/"):
url = self.base_url + url
return url

def _get(self, url: str, params: dict=None, headers: dict=None) -> requests.Response:
def _get(self, url: str, **kwargs) -> requests.Response:
url = self._resolve_url(url)
response = requests.get(url, params=params, headers=headers)
response = requests.get(url, **kwargs)
response.raise_for_status()
return response

def _post(self, url: str, form: dict=None, json: dict=None, buff=None, params: dict=None, headers: dict=None) -> requests.Response:
def _post(
self, url: str, form: dict = None, json: dict = None, buff=None, **kwargs
) -> requests.Response:
url = self._resolve_url(url)
response = None
if form:
response = requests.post(url, data=form, params=params, headers=headers)
response = requests.post(url, data=form, **kwargs)
elif form:
response = requests.post(url, data=buff, params=params, headers=headers)
response = requests.post(url, data=buff, **kwargs)
elif json:
response = requests.post(url, json=json, params=params, headers=headers)
response = requests.post(url, json=json, **kwargs)
else:
response = requests.post(url, params=params, headers=headers)
response = requests.post(url, **kwargs)
response.raise_for_status()
return response

def _put(self, url: str, form: dict=None, json: dict=None, buff=None, params: dict=None, headers: dict=None) -> requests.Response:
def _put(
self, url: str, form: dict = None, json: dict = None, buff=None, **kwargs
) -> requests.Response:
url = self._resolve_url(url)
response = None
if form:
response = requests.put(url, data=form, params=params, headers=headers)
response = requests.put(url, data=form, **kwargs)
elif buff:
response = requests.put(url, data=buff, params=params, headers=headers)
response = requests.put(url, data=buff, **kwargs)
elif json:
response = requests.put(url, json=json, params=params, headers=headers)
response = requests.put(url, json=json, **kwargs)
else:
response = requests.put(url, params=params, headers=headers)
response = requests.put(url, **kwargs)
response.raise_for_status()
return response
def _delete(self, url: str, params: dict=None, headers: dict=None) -> requests.Response:

def _delete(self, url: str, **kwargs) -> requests.Response:
url = self._resolve_url(url)
response = requests.delete(url, params=params, headers=headers)
response = requests.delete(url, **kwargs)
response.raise_for_status()
return response
return response
Loading

0 comments on commit 4a0aa14

Please sign in to comment.