Skip to content

Commit 43ea991

Browse files
committed
Update package structure to clarify package API
Issue #25 - Refactor module and class names to clearly communicate the intended user interfaces Update the `ciscosparkapi.__init__.py` API to clarify what classes and data are being exposed to the user. Update the package docstrings and documentation accordingly.
1 parent b920e0a commit 43ea991

18 files changed

+180
-143
lines changed

ciscosparkapi/__init__.py

Lines changed: 55 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -15,32 +15,53 @@
1515
import logging
1616
import os
1717

18-
from ciscosparkapi.exceptions import ciscosparkapiException, SparkApiError
19-
from ciscosparkapi.restsession import (
18+
from .api.people import Person
19+
from .api.rooms import Room
20+
from .api.memberships import Membership
21+
from .api.messages import Message
22+
from .api.teams import Team
23+
from .api.team_memberships import TeamMembership
24+
from .api.webhooks import Webhook, WebhookEvent
25+
from .api.organizations import Organization
26+
from .api.licenses import License
27+
from .api.roles import Role
28+
from .api.access_tokens import AccessToken
29+
30+
from .api.people import PeopleAPI as _PeopleAPI
31+
from .api.rooms import RoomsAPI as _RoomsAPI
32+
from .api.memberships import MembershipsAPI as _MembershipsAPI
33+
from .api.messages import MessagesAPI as _MessagesAPI
34+
from .api.teams import TeamsAPI as _TeamsAPI
35+
from .api.team_memberships import TeamMembershipsAPI as _TeamMembershipsAPI
36+
from .api.webhooks import WebhooksAPI as _WebhooksAPI
37+
from .api.organizations import OrganizationsAPI as _OrganizationsAPI
38+
from .api.licenses import LicensesAPI as _LicensesAPI
39+
from .api.roles import RolesAPI as _RolesAPI
40+
from .api.access_tokens import AccessTokensAPI as _AccessTokensAPI
41+
42+
from .exceptions import (
43+
ciscosparkapiException,
44+
SparkApiError,
45+
SparkRateLimitError,
46+
)
47+
48+
from .restsession import (
2049
DEFAULT_SINGLE_REQUEST_TIMEOUT,
2150
DEFAULT_WAIT_ON_RATE_LIMIT,
22-
RestSession,
23-
)
24-
from ciscosparkapi.api.people import Person, PeopleAPI
25-
from ciscosparkapi.api.rooms import Room, RoomsAPI
26-
from ciscosparkapi.api.memberships import Membership, MembershipsAPI
27-
from ciscosparkapi.api.messages import Message, MessagesAPI
28-
from ciscosparkapi.api.teams import Team, TeamsAPI
29-
from ciscosparkapi.api.teammemberships import (
30-
TeamMembership,
31-
TeamMembershipsAPI
51+
RestSession as _RestSession,
3252
)
33-
from ciscosparkapi.api.webhooks import Webhook, WebhookEvent, WebhooksAPI
34-
from ciscosparkapi.api.organizations import Organization, OrganizationsAPI
35-
from ciscosparkapi.api.licenses import License, LicensesAPI
36-
from ciscosparkapi.api.roles import Role, RolesAPI
37-
from ciscosparkapi.api.accesstokens import AccessToken, AccessTokensAPI
3853

3954

4055
__author__ = "Chris Lunsford"
4156
__author_email__ = "chrlunsf@cisco.com"
4257
__copyright__ = "Copyright (c) 2016 Cisco Systems, Inc."
4358
__license__ = "MIT"
59+
__all__ = [
60+
"CiscoSparkAPI", "ciscosparkapiException", "SparkApiError",
61+
"SparkRateLimitError", "Person", "Room", "Membership", "Message", "Team",
62+
"TeamMembership", "Webhook", "WebhookEvent", "Organization", "License",
63+
"Role", "AccessToken"
64+
]
4465

4566

4667
# Versioneer version control
@@ -151,7 +172,7 @@ def __init__(self, access_token=None, base_url=DEFAULT_BASE_URL,
151172
# All of the API calls associated with a CiscoSparkAPI object will
152173
# leverage a single RESTful 'session' connecting to the Cisco Spark
153174
# cloud.
154-
self._session = RestSession(
175+
self._session = _RestSession(
155176
access_token,
156177
base_url,
157178
timeout=timeout,
@@ -160,34 +181,39 @@ def __init__(self, access_token=None, base_url=DEFAULT_BASE_URL,
160181
)
161182

162183
# Spark API wrappers
163-
self.people = PeopleAPI(self._session)
164-
self.rooms = RoomsAPI(self._session)
165-
self.memberships = MembershipsAPI(self._session)
166-
self.messages = MessagesAPI(self._session)
167-
self.teams = TeamsAPI(self._session)
168-
self.team_memberships = TeamMembershipsAPI(self._session)
169-
self.webhooks = WebhooksAPI(self._session)
170-
self.organizations = OrganizationsAPI(self._session)
171-
self.licenses = LicensesAPI(self._session)
172-
self.roles = RolesAPI(self._session)
173-
self.access_tokens = AccessTokensAPI(self.base_url, timeout=timeout)
184+
self.people = _PeopleAPI(self._session)
185+
self.rooms = _RoomsAPI(self._session)
186+
self.memberships = _MembershipsAPI(self._session)
187+
self.messages = _MessagesAPI(self._session)
188+
self.teams = _TeamsAPI(self._session)
189+
self.team_memberships = _TeamMembershipsAPI(self._session)
190+
self.webhooks = _WebhooksAPI(self._session)
191+
self.organizations = _OrganizationsAPI(self._session)
192+
self.licenses = _LicensesAPI(self._session)
193+
self.roles = _RolesAPI(self._session)
194+
self.access_tokens = _AccessTokensAPI(self.base_url, timeout=timeout)
174195

175196
@property
176197
def access_token(self):
198+
"""The access token used for API calls to the Cisco Spark service."""
177199
return self._session.access_token
178200

179201
@property
180202
def base_url(self):
203+
"""The base URL prefixed to the individual API endpoint suffixes."""
181204
return self._session.base_url
182205

183206
@property
184207
def timeout(self):
208+
"""[deprecated] Timeout (in seconds) for RESTful HTTP requests."""
185209
return self._session.timeout
186210

187211
@property
188212
def single_request_timeout(self):
213+
"""Timeout (in seconds) for an single HTTP request."""
189214
return self._session.single_request_timeout
190215

191216
@property
192217
def wait_on_rate_limit(self):
218+
"""Automatic rate-limit handling enabled / disabled."""
193219
return self._session.wait_on_rate_limit

ciscosparkapi/api/accesstokens.py renamed to ciscosparkapi/api/access_tokens.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# -*- coding: utf-8 -*-
2-
"""Cisco Spark Access-Tokens-API wrapper classes.
2+
"""Cisco Spark Access-Tokens API wrapper.
33
44
Classes:
55
AccessToken: Models a Spark 'access token' JSON object as a native Python
66
object.
7-
AccessTokensAPI: Wraps the Cisco Spark Access-Tokens-API and exposes the
8-
APIs as native Python methods that return native Python objects.
7+
AccessTokensAPI: Wraps the Cisco Spark Access-Tokens API and exposes the
8+
API as native Python methods that return native Python objects.
99
1010
"""
1111

@@ -26,9 +26,9 @@
2626

2727
import requests
2828

29-
from ciscosparkapi.responsecodes import EXPECTED_RESPONSE_CODE
30-
from ciscosparkapi.sparkdata import SparkData
31-
from ciscosparkapi.utils import (
29+
from ..response_codes import EXPECTED_RESPONSE_CODE
30+
from ..sparkdata import SparkData
31+
from ..utils import (
3232
check_response_code,
3333
check_type,
3434
dict_from_items_with_values,
@@ -83,9 +83,9 @@ def refresh_token_expires_in(self):
8383

8484

8585
class AccessTokensAPI(object):
86-
"""Cisco Spark Access-Tokens-API wrapper class.
86+
"""Cisco Spark Access-Tokens API wrapper.
8787
88-
Wraps the Cisco Spark Access-Tokens-API and exposes the APIs as native
88+
Wraps the Cisco Spark Access-Tokens API and exposes the API as native
8989
Python methods that return native Python objects.
9090
9191
"""

ciscosparkapi/api/licenses.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# -*- coding: utf-8 -*-
2-
"""Cisco Spark Licenses-API wrapper.
2+
"""Cisco Spark Licenses API wrapper.
33
44
Classes:
55
License: Models a Spark License JSON object as a native Python object.
6-
LicensesAPI: Wraps the Cisco Spark Licenses-API and exposes the APIs as
6+
LicensesAPI: Wraps the Cisco Spark Licenses API and exposes the API as
77
native Python methods that return native Python objects.
88
99
"""
@@ -19,9 +19,9 @@
1919
from builtins import *
2020
from past.builtins import basestring
2121

22-
from ciscosparkapi.restsession import RestSession
23-
from ciscosparkapi.sparkdata import SparkData
24-
from ciscosparkapi.utils import (
22+
from ..restsession import RestSession
23+
from ..sparkdata import SparkData
24+
from ..utils import (
2525
check_type,
2626
dict_from_items_with_values,
2727
generator_container,
@@ -71,9 +71,9 @@ def consumedUnits(self):
7171

7272

7373
class LicensesAPI(object):
74-
"""Cisco Spark Licenses-API wrapper.
74+
"""Cisco Spark Licenses API wrapper.
7575
76-
Wraps the Cisco Spark Licenses-API and exposes the APIs as native Python
76+
Wraps the Cisco Spark Licenses API and exposes the API as native Python
7777
methods that return native Python objects.
7878
7979
"""

ciscosparkapi/api/memberships.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# -*- coding: utf-8 -*-
2-
"""Cisco Spark Memberships-API wrapper classes.
2+
"""Cisco Spark Memberships API wrapper.
33
44
Classes:
55
Membership: Models a Spark 'membership' JSON object as a native Python
66
object.
7-
MembershipsAPI: Wraps the Cisco Spark Memberships-API and exposes the
7+
MembershipsAPI: Wraps the Cisco Spark Memberships API and exposes the
88
APIs as native Python methods that return native Python objects.
99
1010
"""
@@ -20,9 +20,9 @@
2020
from builtins import *
2121
from past.builtins import basestring
2222

23-
from ciscosparkapi.restsession import RestSession
24-
from ciscosparkapi.sparkdata import SparkData
25-
from ciscosparkapi.utils import (
23+
from ..restsession import RestSession
24+
from ..sparkdata import SparkData
25+
from ..utils import (
2626
check_type,
2727
dict_from_items_with_values,
2828
generator_container,
@@ -97,9 +97,9 @@ def created(self):
9797

9898

9999
class MembershipsAPI(object):
100-
"""Cisco Spark Memberships-API wrapper class.
100+
"""Cisco Spark Memberships API wrapper.
101101
102-
Wraps the Cisco Spark Memberships-API and exposes the APIs as native Python
102+
Wraps the Cisco Spark Memberships API and exposes the API as native Python
103103
methods that return native Python objects.
104104
105105
"""

ciscosparkapi/api/messages.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# -*- coding: utf-8 -*-
2-
"""Cisco Spark Messages-API wrapper classes.
2+
"""Cisco Spark Messages API wrapper.
33
44
Classes:
55
Message: Models a Spark 'message' JSON object as a native Python object.
6-
MessagesAPI: Wraps the Cisco Spark Messages-API and exposes the APIs as
6+
MessagesAPI: Wraps the Cisco Spark Messages API and exposes the API as
77
native Python methods that return native Python objects.
88
99
"""
@@ -21,9 +21,9 @@
2121

2222
from requests_toolbelt import MultipartEncoder
2323

24-
from ciscosparkapi.restsession import RestSession
25-
from ciscosparkapi.sparkdata import SparkData
26-
from ciscosparkapi.utils import (
24+
from ..restsession import RestSession
25+
from ..sparkdata import SparkData
26+
from ..utils import (
2727
check_type,
2828
dict_from_items_with_values,
2929
generator_container,
@@ -111,9 +111,9 @@ def created(self):
111111

112112

113113
class MessagesAPI(object):
114-
"""Cisco Spark Messages-API wrapper class.
114+
"""Cisco Spark Messages API wrapper.
115115
116-
Wraps the Cisco Spark Messages-API and exposes the APIs as native Python
116+
Wraps the Cisco Spark Messages API and exposes the API as native Python
117117
methods that return native Python objects.
118118
119119
"""

ciscosparkapi/api/organizations.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# -*- coding: utf-8 -*-
2-
"""Cisco Spark Organizations-API wrapper.
2+
"""Cisco Spark Organizations API wrapper.
33
44
Classes:
55
Organization: Models a Spark Organization JSON object as a native Python
66
object.
7-
OrganizationsAPI: Wraps the Cisco Spark Organizations-API and exposes the
7+
OrganizationsAPI: Wraps the Cisco Spark Organizations API and exposes the
88
APIs as native Python methods that return native Python objects.
99
1010
"""
@@ -20,9 +20,9 @@
2020
from builtins import *
2121
from past.builtins import basestring
2222

23-
from ciscosparkapi.restsession import RestSession
24-
from ciscosparkapi.sparkdata import SparkData
25-
from ciscosparkapi.utils import (
23+
from ..restsession import RestSession
24+
from ..sparkdata import SparkData
25+
from ..utils import (
2626
check_type,
2727
dict_from_items_with_values,
2828
generator_container,
@@ -67,9 +67,9 @@ def created(self):
6767

6868

6969
class OrganizationsAPI(object):
70-
"""Cisco Spark Organizations-API wrapper.
70+
"""Cisco Spark Organizations API wrapper.
7171
72-
Wraps the Cisco Spark Organizations-API and exposes the APIs as native
72+
Wraps the Cisco Spark Organizations API and exposes the API as native
7373
Python methods that return native Python objects.
7474
7575
"""

ciscosparkapi/api/people.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# -*- coding: utf-8 -*-
2-
"""Cisco Spark People-API wrapper classes.
2+
"""Cisco Spark People API wrapper classes.
33
44
Classes:
55
Person: Models a Spark 'person' JSON object as a native Python object.
6-
PeopleAPI: Wraps the Cisco Spark People-API and exposes the APIs as native
6+
PeopleAPI: Wraps the Cisco Spark People API and exposes the API as native
77
Python methods that return native Python objects.
88
99
"""
@@ -19,9 +19,9 @@
1919
from builtins import *
2020
from past.builtins import basestring
2121

22-
from ciscosparkapi.restsession import RestSession
23-
from ciscosparkapi.sparkdata import SparkData
24-
from ciscosparkapi.utils import (
22+
from ..restsession import RestSession
23+
from ..sparkdata import SparkData
24+
from ..utils import (
2525
check_type,
2626
dict_from_items_with_values,
2727
generator_container,
@@ -131,9 +131,9 @@ def loginEnabled(self):
131131

132132

133133
class PeopleAPI(object):
134-
"""Cisco Spark People-API wrapper class.
134+
"""Cisco Spark People API wrapper.
135135
136-
Wraps the Cisco Spark People-API and exposes the APIs as native Python
136+
Wraps the Cisco Spark People API and exposes the API as native Python
137137
methods that return native Python objects.
138138
139139
"""

ciscosparkapi/api/roles.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# -*- coding: utf-8 -*-
2-
"""Cisco Spark Roles-API wrapper.
2+
"""Cisco Spark Roles API wrapper.
33
44
Classes:
55
Role: Models a Spark Role JSON object as a native Python object.
6-
RolesAPI: Wraps the Cisco Spark Roles-API and exposes the APIs as native
6+
RolesAPI: Wraps the Cisco Spark Roles API and exposes the API as native
77
Python methods that return native Python objects.
88
99
"""
@@ -19,9 +19,9 @@
1919
from builtins import *
2020
from past.builtins import basestring
2121

22-
from ciscosparkapi.restsession import RestSession
23-
from ciscosparkapi.sparkdata import SparkData
24-
from ciscosparkapi.utils import (
22+
from ..restsession import RestSession
23+
from ..sparkdata import SparkData
24+
from ..utils import (
2525
check_type,
2626
dict_from_items_with_values,
2727
generator_container,
@@ -61,9 +61,9 @@ def name(self):
6161

6262

6363
class RolesAPI(object):
64-
"""Cisco Spark Roles-API wrapper.
64+
"""Cisco Spark Roles API wrapper.
6565
66-
Wraps the Cisco Spark Roles-API and exposes the APIs as native Python
66+
Wraps the Cisco Spark Roles API and exposes the API as native Python
6767
methods that return native Python objects.
6868
6969
"""

0 commit comments

Comments
 (0)