You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by mr...@apache.org on 2016/09/02 15:59:28 UTC
usergrid git commit: Moving Python SDK to
https://github.com/apache/usergrid-python
Repository: usergrid
Updated Branches:
refs/heads/master 1a080a2d7 -> 2550c96aa
Moving Python SDK to https://github.com/apache/usergrid-python
Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/2550c96a
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/2550c96a
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/2550c96a
Branch: refs/heads/master
Commit: 2550c96aadccc16bd1135833e3dd21fe2242fac3
Parents: 1a080a2
Author: Michael Russo <mr...@apigee.com>
Authored: Fri Sep 2 08:58:52 2016 -0700
Committer: Michael Russo <mr...@apigee.com>
Committed: Fri Sep 2 08:58:52 2016 -0700
----------------------------------------------------------------------
sdks/python/.gitignore | 57 ---
sdks/python/GUIDE.md | 2 -
sdks/python/LICENSE | 202 -----------
sdks/python/README.md | 16 +-
sdks/python/README.rst | 20 -
sdks/python/sample_app.py | 77 ----
sdks/python/setup.py | 51 ---
sdks/python/usergrid/UsergridApplication.py | 65 ----
sdks/python/usergrid/UsergridAuth.py | 105 ------
sdks/python/usergrid/UsergridClient.py | 401 ---------------------
sdks/python/usergrid/UsergridCollection.py | 82 -----
sdks/python/usergrid/UsergridConnection.py | 30 --
sdks/python/usergrid/UsergridError.py | 21 --
sdks/python/usergrid/UsergridOrganization.py | 35 --
sdks/python/usergrid/UsergridQueryIterator.py | 157 --------
sdks/python/usergrid/__init__.py | 37 --
sdks/python/usergrid/app_templates.py | 38 --
sdks/python/usergrid/management_templates.py | 27 --
18 files changed, 2 insertions(+), 1421 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/usergrid/blob/2550c96a/sdks/python/.gitignore
----------------------------------------------------------------------
diff --git a/sdks/python/.gitignore b/sdks/python/.gitignore
deleted file mode 100644
index ba74660..0000000
--- a/sdks/python/.gitignore
+++ /dev/null
@@ -1,57 +0,0 @@
-# Byte-compiled / optimized / DLL files
-__pycache__/
-*.py[cod]
-
-# C extensions
-*.so
-
-# Distribution / packaging
-.Python
-env/
-build/
-develop-eggs/
-dist/
-downloads/
-eggs/
-.eggs/
-lib/
-lib64/
-parts/
-sdist/
-var/
-*.egg-info/
-.installed.cfg
-*.egg
-
-# PyInstaller
-# Usually these files are written by a python script from a template
-# before PyInstaller builds the exe, so as to inject date/other infos into it.
-*.manifest
-*.spec
-
-# Installer logs
-pip-log.txt
-pip-delete-this-directory.txt
-
-# Unit test / coverage reports
-htmlcov/
-.tox/
-.coverage
-.coverage.*
-.cache
-nosetests.xml
-coverage.xml
-*,cover
-
-# Translations
-*.mo
-*.pot
-
-# Django stuff:
-*.log
-
-# Sphinx documentation
-docs/_build/
-
-# PyBuilder
-target/
http://git-wip-us.apache.org/repos/asf/usergrid/blob/2550c96a/sdks/python/GUIDE.md
----------------------------------------------------------------------
diff --git a/sdks/python/GUIDE.md b/sdks/python/GUIDE.md
deleted file mode 100644
index 0719005..0000000
--- a/sdks/python/GUIDE.md
+++ /dev/null
@@ -1,2 +0,0 @@
-
-https://docs.python.org/2/distutils/packageindex.html
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/usergrid/blob/2550c96a/sdks/python/LICENSE
----------------------------------------------------------------------
diff --git a/sdks/python/LICENSE b/sdks/python/LICENSE
deleted file mode 100755
index 8f71f43..0000000
--- a/sdks/python/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "{}"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright {yyyy} {name of copyright owner}
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
http://git-wip-us.apache.org/repos/asf/usergrid/blob/2550c96a/sdks/python/README.md
----------------------------------------------------------------------
diff --git a/sdks/python/README.md b/sdks/python/README.md
index cc2af97..e000db1 100755
--- a/sdks/python/README.md
+++ b/sdks/python/README.md
@@ -1,16 +1,4 @@
# Usergrid Python SDK
-# Overview
-This is a starter project for the Usergrid Python SDK. It is a work in progress.
-
-# Installation
-
-## PIP (http://pip.readthedocs.org/en/stable/installing/)
-
-`pip install usergrid`
-
-## Manual installation
-
-- `git clone git@github.com:jwest-apigee/usergrid-python.git`
-- `cd usergrid-python`
-- `pip install -e .`
\ No newline at end of file
+The Python SDK code has been moved into its own repository and can be found
+at https://github.com/apache/usergrid-python.
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/usergrid/blob/2550c96a/sdks/python/README.rst
----------------------------------------------------------------------
diff --git a/sdks/python/README.rst b/sdks/python/README.rst
deleted file mode 100755
index 659384c..0000000
--- a/sdks/python/README.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-**********
-Overview
-**********
-
-This is a starter project for the Usergrid Python SDK. It is a work in progress.
-
-**************************
-Installation
-**************************
-
-================================================
-Installation From Pypi Using PIP
-================================================
-
-PIP is a package manager for Python. For more information please view the information here: `PIP Installation Guide <http://pip.readthedocs.org/en/stable/installing/>`_
-
-From the command line::
-
- pip install usergrid
-
http://git-wip-us.apache.org/repos/asf/usergrid/blob/2550c96a/sdks/python/sample_app.py
----------------------------------------------------------------------
diff --git a/sdks/python/sample_app.py b/sdks/python/sample_app.py
deleted file mode 100755
index 9deefbe..0000000
--- a/sdks/python/sample_app.py
+++ /dev/null
@@ -1,77 +0,0 @@
-# */
-# * Licensed to the Apache Software Foundation (ASF) under one
-# * or more contributor license agreements. See the NOTICE file
-# * distributed with this work for additional information
-# * regarding copyright ownership. The ASF licenses this file
-# * to you under the Apache License, Version 2.0 (the
-# * "License"); you may not use this file except in compliance
-# * with the License. You may obtain a copy of the License at
-# *
-# * http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing,
-# * software distributed under the License is distributed on an
-# * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# * KIND, either express or implied. See the License for the
-# * specific language governing permissions and limitations
-# * under the License.
-# */
-
-from usergrid import Usergrid
-
-__author__ = 'Jeff West @ ApigeeCorporation'
-
-
-def main():
- Usergrid.init(org_id='jwest1',
- app_id='sandbox')
-
- response = Usergrid.DELETE('pets', 'max')
-
- if not response.ok:
- print 'Failed to delete max: %s' % response
- exit()
-
- response = Usergrid.DELETE('owners', 'jeff')
-
- if not response.ok:
- print 'Failed to delete Jeff: %s' % response
- exit()
-
- response = Usergrid.POST('pets', {'name': 'max'})
-
- if response.ok:
- pet = response.first()
-
- print pet
-
- response = Usergrid.POST('owners', {'name': 'jeff'})
-
- if response.ok:
- owner = response.first()
-
- print owner
-
- response = pet.connect('ownedBy', owner)
-
- if response.ok:
- print 'Connected!'
-
- response = pet.disconnect('ownedBy', owner)
-
- if response.ok:
- print 'all done!'
- else:
- print response
-
- else:
- print 'failed to connect: %s' % response
-
- else:
- print 'Failed to create Jeff: %s' % response
-
- else:
- print response
-
-
-main()
http://git-wip-us.apache.org/repos/asf/usergrid/blob/2550c96a/sdks/python/setup.py
----------------------------------------------------------------------
diff --git a/sdks/python/setup.py b/sdks/python/setup.py
deleted file mode 100755
index 8a2d332..0000000
--- a/sdks/python/setup.py
+++ /dev/null
@@ -1,51 +0,0 @@
-# */
-# * Licensed to the Apache Software Foundation (ASF) under one
-# * or more contributor license agreements. See the NOTICE file
-# * distributed with this work for additional information
-# * regarding copyright ownership. The ASF licenses this file
-# * to you under the Apache License, Version 2.0 (the
-# * "License"); you may not use this file except in compliance
-# * with the License. You may obtain a copy of the License at
-# *
-# * http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing,
-# * software distributed under the License is distributed on an
-# * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# * KIND, either express or implied. See the License for the
-# * specific language governing permissions and limitations
-# * under the License.
-# */
-
-__author__ = 'Jeff West @ ApigeeCorporation'
-
-from setuptools import setup, find_packages
-
-VERSION = '0.1.13.1'
-
-with open('README.rst') as file:
- long_description = file.read()
-
-setup(
- name='usergrid',
- version=VERSION,
- description='Usergrid SDK for Python',
- url='http://usergrid.apache.org',
- download_url="https://codeload.github.com/jwest-apigee/usergrid-python/zip/v" + VERSION,
- author='Jeff West',
- author_email='jwest@apigee.com',
- packages=find_packages(),
- long_description=long_description,
- install_requires=[
- 'requests',
- 'urllib3'
- ],
- entry_points={
- },
- classifiers=[
- 'Development Status :: 4 - Beta',
- 'Intended Audience :: Developers',
- 'Operating System :: OS Independent',
- 'Topic :: Software Development',
- ]
-)
http://git-wip-us.apache.org/repos/asf/usergrid/blob/2550c96a/sdks/python/usergrid/UsergridApplication.py
----------------------------------------------------------------------
diff --git a/sdks/python/usergrid/UsergridApplication.py b/sdks/python/usergrid/UsergridApplication.py
deleted file mode 100644
index 9c86efd..0000000
--- a/sdks/python/usergrid/UsergridApplication.py
+++ /dev/null
@@ -1,65 +0,0 @@
-# */
-# * Licensed to the Apache Software Foundation (ASF) under one
-# * or more contributor license agreements. See the NOTICE file
-# * distributed with this work for additional information
-# * regarding copyright ownership. The ASF licenses this file
-# * to you under the Apache License, Version 2.0 (the
-# * "License"); you may not use this file except in compliance
-# * with the License. You may obtain a copy of the License at
-# *
-# * http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing,
-# * software distributed under the License is distributed on an
-# * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# * KIND, either express or implied. See the License for the
-# * specific language governing permissions and limitations
-# * under the License.
-# */
-
-import logging
-from usergrid import UsergridError, UsergridCollection
-from usergrid.app_templates import app_url_template
-
-__author__ = 'Jeff.West@yahoo.com'
-
-class UsergridApplication(object):
- def __init__(self, app_id, client):
- self.app_id = app_id
- self.client = client
- self.logger = logging.getLogger('usergrid.UsergridClient')
-
- def list_collections(self):
- url = app_url_template.format(app_id=self.app_id,
- **self.client.url_data)
- r = self.client.get(url)
-
- if r.status_code == 200:
- api_response = r.json()
- collection_list = api_response.get('entities')[0].get('metadata', {}).get('collections', {})
- collections = {}
-
- for collection_name in collection_list:
- collections[collection_name] = UsergridCollection(self.client.org_id,
- self.app_id,
- collection_name,
- self.client)
-
- return collections
-
- else:
- raise UsergridError(message='Unable to post to list collections',
- status_code=r.status_code,
- api_response=r,
- url=url)
-
- def collection(self, collection_name):
- return UsergridCollection(self.client.org_id,
- self.app_id,
- collection_name,
- self.client)
-
- def authenticate_app_client(self,
- **kwargs):
-
- return self.client.authenticate_app_client(self.app_id, **kwargs)
http://git-wip-us.apache.org/repos/asf/usergrid/blob/2550c96a/sdks/python/usergrid/UsergridAuth.py
----------------------------------------------------------------------
diff --git a/sdks/python/usergrid/UsergridAuth.py b/sdks/python/usergrid/UsergridAuth.py
deleted file mode 100644
index f29bcb9..0000000
--- a/sdks/python/usergrid/UsergridAuth.py
+++ /dev/null
@@ -1,105 +0,0 @@
-# */
-# * Licensed to the Apache Software Foundation (ASF) under one
-# * or more contributor license agreements. See the NOTICE file
-# * distributed with this work for additional information
-# * regarding copyright ownership. The ASF licenses this file
-# * to you under the Apache License, Version 2.0 (the
-# * "License"); you may not use this file except in compliance
-# * with the License. You may obtain a copy of the License at
-# *
-# * http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing,
-# * software distributed under the License is distributed on an
-# * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# * KIND, either express or implied. See the License for the
-# * specific language governing permissions and limitations
-# * under the License.
-# */
-
-import json
-import requests
-from usergrid.management_templates import org_token_url_template
-
-
-class UsergridAuth:
- def __init__(self,
- grant_type,
- url_template,
- username=None,
- password=None,
- client_id=None,
- client_secret=None,
- token_ttl_seconds=86400):
-
- self.grant_type = grant_type
- self.username = username
- self.password = password
- self.client_id = client_id
- self.client_secret = client_secret
- self.token_ttl_seconds = token_ttl_seconds
- self.url_template = url_template
- self.access_token = None
-
- def get_token_request(self):
- if self.grant_type == 'client_credentials':
- return {
- 'grant_type': 'client_credentials',
- 'client_id': self.client_id,
- 'client_secret': self.client_secret,
- 'ttl': self.token_ttl_seconds * 1000
- }
- elif self.grant_type == 'password':
- return {
- 'grant_type': 'password',
- 'username': self.username,
- 'password': self.password,
- 'ttl': self.token_ttl_seconds * 1000
- }
-
- else:
- raise ValueError('Unspecified/unknown grant type: %s' % self.grant_type)
-
- def authenticate(self, client):
- token_request = self.get_token_request()
-
- url = self.url_template.format(**client.url_data)
-
- r = requests.post(url, data=json.dumps(token_request))
-
- if r.status_code == 200:
- response = r.json()
- self.access_token = response.get('access_token')
-
- else:
- raise ValueError('Unable to authenticate: %s' % r.text)
-
-
-class UsergridOrgAuth(UsergridAuth):
- def __init__(self, client_id, client_secret, token_ttl_seconds=86400):
- UsergridAuth.__init__(self,
- grant_type='client_credentials',
- url_template=org_token_url_template,
- client_id=client_id,
- client_secret=client_secret,
- token_ttl_seconds=token_ttl_seconds)
-
-
-class UsergridAppAuth(UsergridAuth):
- def __init__(self, client_id, client_secret, token_ttl_seconds=86400):
- UsergridAuth.__init__(self,
- grant_type='client_credentials',
- url_template=app_token_url_template,
- client_id=client_id,
- client_secret=client_secret,
- token_ttl_seconds=token_ttl_seconds)
-
-
-class UsergridUserAuth(UsergridAuth):
- def __init__(self, username, password, token_ttl_seconds=86400):
- UsergridAuth.__init__(self,
- grant_type='password',
- url_template=app_token_url_template,
- username=username,
- password=password,
- token_ttl_seconds=token_ttl_seconds)
http://git-wip-us.apache.org/repos/asf/usergrid/blob/2550c96a/sdks/python/usergrid/UsergridClient.py
----------------------------------------------------------------------
diff --git a/sdks/python/usergrid/UsergridClient.py b/sdks/python/usergrid/UsergridClient.py
deleted file mode 100644
index cedeaab..0000000
--- a/sdks/python/usergrid/UsergridClient.py
+++ /dev/null
@@ -1,401 +0,0 @@
-# */
-# * Licensed to the Apache Software Foundation (ASF) under one
-# * or more contributor license agreements. See the NOTICE file
-# * distributed with this work for additional information
-# * regarding copyright ownership. The ASF licenses this file
-# * to you under the Apache License, Version 2.0 (the
-# * "License"); you may not use this file except in compliance
-# * with the License. You may obtain a copy of the License at
-# *
-# * http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing,
-# * software distributed under the License is distributed on an
-# * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# * KIND, either express or implied. See the License for the
-# * specific language governing permissions and limitations
-# * under the License.
-# */
-
-import json
-import logging
-import requests
-from usergrid.UsergridAuth import UsergridAppAuth
-from usergrid.app_templates import get_entity_url_template, post_collection_url_template, put_entity_url_template, \
- delete_entity_url_template, connect_entities_by_type_template, assign_role_url_template
-
-__author__ = 'Jeff.West@yahoo.com'
-
-
-def value_error(message):
- raise ValueError(message)
-
-
-def usergrid_error(r):
- pass
-
-
-class Usergrid(object):
- client = None
-
- @staticmethod
- def init(org_id,
- app_id,
- **kwargs):
- Usergrid.client = UsergridClient(org_id, app_id, **kwargs)
-
- @staticmethod
- def GET(collection, uuid_name, **kwargs):
- return Usergrid.client.GET(collection, uuid_name, **kwargs)
-
- @staticmethod
- def PUT(collection, uuid_name, data, **kwargs):
- return Usergrid.client.PUT(collection, uuid_name, data, **kwargs)
-
- @staticmethod
- def POST(collection, data, **kwargs):
- return Usergrid.client.POST(collection, data, **kwargs)
-
- @staticmethod
- def DELETE(collection, uuid_name, **kwargs):
- return Usergrid.client.DELETE(collection, uuid_name, **kwargs)
-
- @staticmethod
- def connect_entities(from_entity, relationship, to_entity, **kwargs):
- return Usergrid.client.connect_entities(from_entity, relationship, to_entity, **kwargs)
-
- @staticmethod
- def disconnect_entities(from_entity, relationship, to_entity, **kwargs):
- return Usergrid.client.disconnect_entities(from_entity, relationship, to_entity, **kwargs)
-
- @staticmethod
- def assign_role(role_uuid_name, user_entity, **kwargs):
- return Usergrid.client.assign_role(role_uuid_name, user_entity, **kwargs)
-
-
-class UsergridResponse(object):
- def __init__(self, api_response, client):
- self.api_response = api_response
- self.client = client
-
- if api_response is None:
- self.ok = False
- self.body = 'No Response'
-
- else:
- self.headers = api_response.headers
-
- if api_response.status_code == 200:
- self.ok = True
- self.body = api_response.json()
- self.entities = self.body.get('entities', [])
-
- else:
- self.ok = False
-
- if api_response.headers.get('Content-type') == 'application/json':
- self.body = api_response.json()
- else:
- self.body = 'HTTP %s: %s' % (api_response.status_code, api_response.text)
-
- def __str__(self):
- return json.dumps(self.body)
-
- def first(self):
- return UsergridEntity(entity_data=self.entities[0]) if self.ok and self.entities and len(
- self.entities) > 0 else None
-
- def entity(self):
- return self.first()
-
- def last(self):
- return UsergridEntity(entity_data=self.entities[len(self.entities) - 1]) if self.ok and self.entities and len(
- self.entities) > 0 else None
-
- def has_next_page(self):
- return 'cursor' in self.body if self.ok else False
-
-
-class UsergridEntity(object):
- def __init__(self, entity_data):
- self.entity_data = entity_data
-
- def __str__(self):
- return json.dumps(self.entity_data)
-
- def get(self, name, default=None):
- return self.entity_data.get(name, default)
-
- def entity_id(self):
-
- if self.entity_data.get('type', '').lower() in ['users', 'user']:
- return self.entity_data.get('uuid', self.entity_data.get('username'))
-
- return self.entity_data.get('uuid', self.entity_data.get('name'))
-
- def can_mutate_or_load(self):
- entity_id = self.entity_id()
-
- if entity_id is None or self.entity_data.get('type') is None:
- return False
-
- return True
-
- def put_property(self, name, value):
- self.entity_data[name] = value
-
- def put_properties(self, properties):
- if isinstance(properties, dict):
- self.entity_data.update(properties)
-
- def remove_property(self, name):
-
- if name is not None and name in self.entity_data:
- del self.entity_data[name]
-
- def remove_properties(self, properties):
- if isinstance(properties, (list, dict)):
- for property_name in properties:
- self.remove_property(property_name)
-
- def append(self, array_name, value):
- if array_name in self.entity_data:
- if isinstance(self.entity_data[array_name], list):
- self.entity_data[array_name].append(value)
- else:
- self.entity_data[array_name] = [value]
-
- def prepend(self, array_name, value):
- if array_name in self.entity_data:
- if isinstance(self.entity_data[array_name], list):
- self.entity_data[array_name].pre(value)
- else:
- self.entity_data[array_name] = [value]
-
- def insert(self, array_name, value, index):
- if array_name in self.entity_data:
- if isinstance(self.entity_data[array_name], list):
- self.entity_data[array_name].insert(index, value)
-
- def shift(self, array_name):
- if array_name in self.entity_data:
- if isinstance(self.entity_data[array_name], list):
- value = self.entity_data[array_name][0]
- self.entity_data[array_name] = self.entity_data[array_name][1:]
- return value
-
- return None
-
- def reload(self):
- if not self.can_mutate_or_load():
- raise ValueError('Unable to reload entity: No uuid nor name')
-
- response = Usergrid.GET(collection=self.entity_data.get('type'),
- uuid_name=self.entity_id())
- if response.ok:
- self.entity_data.update(response.entity().entity_data)
-
- else:
- raise ValueError('Unable to reload entity: %s' % response)
-
- def save(self):
- if not self.can_mutate_or_load():
- raise ValueError('Unable to save entity: No uuid nor name')
-
- response = Usergrid.PUT(collection=self.entity_data.get('type'),
- uuid_name=self.entity_id(),
- data=self.entity_data)
-
- if response.ok and 'uuid' not in self.entity_data:
- self.entity_data['uuid'] = response.entity().get('uuid')
-
- return response
-
- def remove(self):
- if not self.can_mutate_or_load():
- raise ValueError('Unable to delete entity: No uuid nor name')
-
- return Usergrid.DELETE(collection=self.entity_data.get('type'),
- uuid_name=self.entity_id())
-
- def get_connections(self, relationship, direction='connecting'):
- pass
-
- def connect(self, relationship, to_entity):
-
- if not to_entity.can_mutate_or_load():
- raise ValueError('Unable to connect to entity - no uuid or name')
-
- if not self.can_mutate_or_load():
- raise ValueError('Unable from connect to entity - no uuid or name')
-
- return Usergrid.connect_entities(self, relationship, to_entity)
-
- def disconnect(self, relationship, to_entity):
- if not to_entity.can_mutate_or_load():
- raise ValueError('Unable to connect to entity - no uuid or name')
-
- if not self.can_mutate_or_load():
- raise ValueError('Unable from connect to entity - no uuid or name')
-
- return Usergrid.disconnect_entities(self, relationship, to_entity)
-
- def attach_asset(self, filename, data, content_type):
- pass
-
- def download_asset(self, content_type=None):
- pass
-
-
-class UsergridClient(object):
- def __init__(self,
- org_id,
- app_id,
- base_url='http://api.usergrid.com',
- client_id=None,
- client_secret=None,
- token_ttl_seconds=86400,
- auth_fallback="none"):
-
- self.base_url = base_url
- self.org_id = org_id
- self.app_id = app_id
- self.auth_fallback = auth_fallback
- self.logger = logging.getLogger('usergrid.UsergridClient')
- self.session = requests.Session()
-
- self.url_data = {
- 'base_url': base_url,
- 'org_id': org_id,
- 'app_id': app_id
- }
-
- if client_id and not client_secret:
- value_error('Client ID Specified but not Secret')
-
- elif client_secret and not client_id:
- value_error('Client ID Specified but not Secret')
-
- elif client_secret and client_id:
- self.auth = UsergridAppAuth(client_id=client_id,
- client_secret=client_secret,
- token_ttl_seconds=token_ttl_seconds)
-
- self.auth.authenticate(self)
- self.session.headers.update({'Authorization': 'Bearer %s' % self.auth.access_token})
-
- def __str__(self):
- return json.dumps({
- 'base_url': self.base_url,
- 'org_id': self.org_id,
- 'app_id': self.app_id,
- 'access_token': self.auth.access_token
- })
-
- def GET(self, collection, uuid_name, connections='none', auth=None, **kwargs):
- url = get_entity_url_template.format(collection=collection,
- uuid_name=uuid_name,
- connections=connections,
- **self.url_data)
- if auth:
- r = requests.get(url, headers={'Authorization': 'Bearer %s' % auth.access_token})
-
- else:
- r = self.session.get(url)
-
- return UsergridResponse(r, self)
-
- def PUT(self, collection, uuid_name, data, auth=None, **kwargs):
- url = put_entity_url_template.format(collection=collection,
- uuid_name=uuid_name,
- **self.url_data)
-
- if auth:
- r = requests.put(url,
- data=json.dumps(data),
- headers={'Authorization': 'Bearer %s' % auth.access_token})
- else:
- r = self.session.put(url, data=json.dumps(data))
-
- return UsergridResponse(r, self)
-
- def POST(self, collection, data, auth=None, **kwargs):
- url = post_collection_url_template.format(collection=collection,
- **self.url_data)
-
- if auth:
- r = requests.post(url,
- data=json.dumps(data),
- headers={'Authorization': 'Bearer %s' % auth.access_token})
- else:
- r = self.session.post(url, data=json.dumps(data))
-
- return UsergridResponse(r, self)
-
- def DELETE(self, collection, uuid_name, auth=None, **kwargs):
- url = delete_entity_url_template.format(collection=collection,
- uuid_name=uuid_name,
- **self.url_data)
-
- if auth:
- r = requests.delete(url, headers={'Authorization': 'Bearer %s' % auth.access_token})
- else:
- r = self.session.delete(url)
-
- return UsergridResponse(r, self)
-
- def connect_entities(self, from_entity, relationship, to_entity, auth=None, **kwargs):
-
- url = connect_entities_by_type_template.format(from_collection=from_entity.get('type'),
- from_uuid_name=from_entity.entity_id(),
- relationship=relationship,
- to_collection=to_entity.get('type'),
- to_uuid_name=to_entity.entity_id(),
- **self.url_data)
-
- if auth:
- r = requests.post(url, headers={'Authorization': 'Bearer %s' % auth.access_token})
- else:
- r = self.session.post(url)
-
- return UsergridResponse(r, self)
-
- def assign_role(self, role_uuid_name, entity, auth=None, **kwargs):
- url = assign_role_url_template.format(role_uuid_name=role_uuid_name,
- entity_type=entity.get('type'),
- entity_uuid_name=entity.entity_id(),
- **self.url_data)
-
- if auth:
- r = requests.delete(url, headers={'Authorization': 'Bearer %s' % auth.access_token})
- else:
- r = self.session.delete(url)
-
- return UsergridResponse(r, self)
-
- def disconnect_entities(self, from_entity, relationship, to_entity, auth=None, **kwargs):
- url = connect_entities_by_type_template.format(from_collection=from_entity.get('type'),
- from_uuid_name=from_entity.entity_id(),
- relationship=relationship,
- to_collection=to_entity.get('type'),
- to_uuid_name=to_entity.entity_id(),
- **self.url_data)
-
- if auth:
- r = requests.delete(url, headers={'Authorization': 'Bearer %s' % auth.access_token})
- else:
- r = self.session.delete(url)
-
- return UsergridResponse(r, self)
-
-
-class UsergridUser(object):
- def __init__(self):
- pass
-
-
-class UsergridAsset(object):
- def __init__(self, filename, data, content_type):
- self.filename = filename
- self.data = data
- self.content_type = content_type
http://git-wip-us.apache.org/repos/asf/usergrid/blob/2550c96a/sdks/python/usergrid/UsergridCollection.py
----------------------------------------------------------------------
diff --git a/sdks/python/usergrid/UsergridCollection.py b/sdks/python/usergrid/UsergridCollection.py
deleted file mode 100644
index eb8863d..0000000
--- a/sdks/python/usergrid/UsergridCollection.py
+++ /dev/null
@@ -1,82 +0,0 @@
-# */
-# * Licensed to the Apache Software Foundation (ASF) under one
-# * or more contributor license agreements. See the NOTICE file
-# * distributed with this work for additional information
-# * regarding copyright ownership. The ASF licenses this file
-# * to you under the Apache License, Version 2.0 (the
-# * "License"); you may not use this file except in compliance
-# * with the License. You may obtain a copy of the License at
-# *
-# * http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing,
-# * software distributed under the License is distributed on an
-# * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# * KIND, either express or implied. See the License for the
-# * specific language governing permissions and limitations
-# * under the License.
-# */
-
-__author__ = 'Jeff.West@yahoo.com'
-
-
-class UsergridCollection(object):
- def __init__(self, org_id, app_id, collection_name, client):
- self.org_id = org_id
- self.app_id = app_id
- self.collection_name = collection_name
- self.client = client
-
- def __str__(self):
- return json.dumps({
- 'org_id': self.org_id,
- 'app_id': self.app_id,
- 'collection_name': self.collection_name,
- })
-
- def entity(self, uuid):
- pass
-
- def entity_from_data(self, data):
- return UsergridEntity(org_id=self.org_id,
- app_id=self.app_id,
- collection_name=self.collection_name,
- data=data,
- client=self.client)
-
- def query(self, ql='select *', limit=100):
- url = collection_query_url_template.format(app_id=self.app_id,
- ql=ql,
- limit=limit,
- collection=self.collection_name,
- **self.client.url_data)
-
- return UsergridQuery(url, headers=self.client.headers)
-
- def entities(self, **kwargs):
- return self.query(**kwargs)
-
- def post(self, entity, **kwargs):
- url = collection_url_template.format(collection=self.collection_name,
- app_id=self.app_id,
- **self.client.url_data)
-
- r = self.client.post(url, data=entity, **kwargs)
-
- if r.status_code == 200:
- api_response = r.json()
- entity = api_response.get('entities')[0]
- e = UsergridEntity(org_id=self.org_id,
- app_id=self.app_id,
- collection_name=self.collection_name,
- data=entity,
- client=self.client)
- return e
-
- else:
- raise UsergridError(message='Unable to post to collection name=[%s]' % self.collection_name,
- status_code=r.status_code,
- data=entity,
- api_response=r,
- url=url)
-
http://git-wip-us.apache.org/repos/asf/usergrid/blob/2550c96a/sdks/python/usergrid/UsergridConnection.py
----------------------------------------------------------------------
diff --git a/sdks/python/usergrid/UsergridConnection.py b/sdks/python/usergrid/UsergridConnection.py
deleted file mode 100644
index c008b91..0000000
--- a/sdks/python/usergrid/UsergridConnection.py
+++ /dev/null
@@ -1,30 +0,0 @@
-# */
-# * Licensed to the Apache Software Foundation (ASF) under one
-# * or more contributor license agreements. See the NOTICE file
-# * distributed with this work for additional information
-# * regarding copyright ownership. The ASF licenses this file
-# * to you under the Apache License, Version 2.0 (the
-# * "License"); you may not use this file except in compliance
-# * with the License. You may obtain a copy of the License at
-# *
-# * http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing,
-# * software distributed under the License is distributed on an
-# * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# * KIND, either express or implied. See the License for the
-# * specific language governing permissions and limitations
-# * under the License.
-# */
-
-import logging
-
-__author__ = 'Jeff.West@yahoo.com'
-
-
-class UsergridConnection(object):
- def __init__(self, source_entity, verb, target_entity):
- self.source_entity = source_entity
- self.verb = verb
- self.target_entity = target_entity
- self.logger = logging.getLogger('usergrid.UsergridConnection')
http://git-wip-us.apache.org/repos/asf/usergrid/blob/2550c96a/sdks/python/usergrid/UsergridError.py
----------------------------------------------------------------------
diff --git a/sdks/python/usergrid/UsergridError.py b/sdks/python/usergrid/UsergridError.py
deleted file mode 100644
index 3b2a4e0..0000000
--- a/sdks/python/usergrid/UsergridError.py
+++ /dev/null
@@ -1,21 +0,0 @@
-# */
-# * Licensed to the Apache Software Foundation (ASF) under one
-# * or more contributor license agreements. See the NOTICE file
-# * distributed with this work for additional information
-# * regarding copyright ownership. The ASF licenses this file
-# * to you under the Apache License, Version 2.0 (the
-# * "License"); you may not use this file except in compliance
-# * with the License. You may obtain a copy of the License at
-# *
-# * http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing,
-# * software distributed under the License is distributed on an
-# * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# * KIND, either express or implied. See the License for the
-# * specific language governing permissions and limitations
-# * under the License.
-# */
-
-__author__ = 'Jeff.West@yahoo.com'
-
http://git-wip-us.apache.org/repos/asf/usergrid/blob/2550c96a/sdks/python/usergrid/UsergridOrganization.py
----------------------------------------------------------------------
diff --git a/sdks/python/usergrid/UsergridOrganization.py b/sdks/python/usergrid/UsergridOrganization.py
deleted file mode 100644
index 14ad7a5..0000000
--- a/sdks/python/usergrid/UsergridOrganization.py
+++ /dev/null
@@ -1,35 +0,0 @@
-# */
-# * Licensed to the Apache Software Foundation (ASF) under one
-# * or more contributor license agreements. See the NOTICE file
-# * distributed with this work for additional information
-# * regarding copyright ownership. The ASF licenses this file
-# * to you under the Apache License, Version 2.0 (the
-# * "License"); you may not use this file except in compliance
-# * with the License. You may obtain a copy of the License at
-# *
-# * http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing,
-# * software distributed under the License is distributed on an
-# * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# * KIND, either express or implied. See the License for the
-# * specific language governing permissions and limitations
-# * under the License.
-# */
-
-from usergrid import UsergridApplication
-
-__author__ = 'Jeff.West@yahoo.com'
-
-
-class UsergridOrganization(object):
- def __init__(self, org_id, client):
- self.org_id = org_id
- self.client = client
-
- def application(self, app_id):
- return UsergridApplication(app_id, client=self.client)
-
- def app(self, app_id):
- return self.application(app_id)
-
http://git-wip-us.apache.org/repos/asf/usergrid/blob/2550c96a/sdks/python/usergrid/UsergridQueryIterator.py
----------------------------------------------------------------------
diff --git a/sdks/python/usergrid/UsergridQueryIterator.py b/sdks/python/usergrid/UsergridQueryIterator.py
deleted file mode 100755
index e487fb3..0000000
--- a/sdks/python/usergrid/UsergridQueryIterator.py
+++ /dev/null
@@ -1,157 +0,0 @@
-# */
-# * Licensed to the Apache Software Foundation (ASF) under one
-# * or more contributor license agreements. See the NOTICE file
-# * distributed with this work for additional information
-# * regarding copyright ownership. The ASF licenses this file
-# * to you under the Apache License, Version 2.0 (the
-# * "License"); you may not use this file except in compliance
-# * with the License. You may obtain a copy of the License at
-# *
-# * http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing,
-# * software distributed under the License is distributed on an
-# * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# * KIND, either express or implied. See the License for the
-# * specific language governing permissions and limitations
-# * under the License.
-# */
-
-import json
-import logging
-import traceback
-import requests
-import time
-
-__author__ = 'Jeff.West@yahoo.com'
-
-
-class UsergridQueryIterator(object):
- def __init__(self,
- url,
- operation='GET',
- sleep_time=10,
- page_delay=0,
- headers=None,
- data=None):
-
- if not data:
- data = {}
- if not headers:
- headers = {}
-
- self.page_counter = 0
- self.total_retrieved = 0
- self.logger = logging.getLogger('usergrid.UsergridQuery')
- self.data = data
- self.headers = headers
- self.url = url
- self.operation = operation
- self.next_cursor = None
- self.entities = []
- self.count_retrieved = 0
- self._pos = 0
- self.last_response = None
- self.page_delay = page_delay
- self.sleep_time = sleep_time
- self.session = None
-
- def _get_next_response(self, attempts=0):
-
- if self.session is None:
- self.session = requests.Session()
-
- try:
- if self.operation == 'PUT':
- op = self.session.put
- elif self.operation == 'DELETE':
- op = self.session.delete
- else:
- op = self.session.get
-
- target_url = self.url
-
- if self.next_cursor is not None:
- delim = '&' if '?' in target_url else '?'
- target_url = '%s%scursor=%s' % (self.url, delim, self.next_cursor)
-
- self.logger.debug('Operation=[%s] URL=[%s]' % (self.operation, target_url))
-
- r = op(target_url, data=json.dumps(self.data), headers=self.headers)
-
- if r.status_code == 200:
- r_json = r.json()
- count_retrieved = len(r_json.get('entities', []))
- self.total_retrieved += count_retrieved
- self.logger.debug('Retrieved [%s] entities in [%s]th page in [%s], total from [%s] is [%s]' % (
- count_retrieved, self.page_counter, r.elapsed, self.url, self.total_retrieved))
-
- return r_json
-
- elif r.status_code in [401, 404] and 'service_resource_not_found' in r.text:
- self.logger.error('Query Not Found [%s] on URL=[%s]: %s' % (r.status_code, target_url, r.text))
- raise SystemError('Query Not Found [%s] on URL=[%s]: %s' % (r.status_code, target_url, r.text))
-
- else:
- if attempts < 10:
- self.logger.error('Sleeping %s after HTTP [%s] for retry attempt=[%s] on URL=[%s], response: %s' % (
- self.sleep_time, r.status_code, attempts, target_url, r.text))
-
- time.sleep(self.sleep_time)
-
- return self._get_next_response(attempts=attempts + 1)
-
- else:
- raise SystemError('Unable to get next response after %s attempts' % attempts)
-
- except:
- print traceback.format_exc()
-
- def next(self):
-
- if self.last_response is None:
- self.logger.debug('getting first page, url=[%s]' % self.url)
-
- self._process_next_page()
-
- elif self._pos >= len(self.entities) > 0 and self.next_cursor is not None:
-
- self.logger.debug('getting next page, count=[%s] url=[%s], cursor=[%s]' % (
- self.count_retrieved, self.url, self.next_cursor))
-
- self._process_next_page()
- self.logger.debug('Sleeping [%s]s between pages' % self.page_delay)
-
- time.sleep(self.page_delay)
-
- if self._pos < len(self.entities):
- response = self.entities[self._pos]
- self._pos += 1
- return response
-
- raise StopIteration
-
- def __iter__(self):
- return self
-
- def _process_next_page(self, attempts=0):
-
- api_response = self._get_next_response()
-
- if api_response is None:
- message = 'Unable to retrieve query results from url=[%s]' % self.url
- self.logger.error(message)
- api_response = {}
- raise StopIteration
-
- self.last_response = api_response
-
- self.entities = api_response.get('entities', [])
- self.next_cursor = api_response.get('cursor', None)
- self._pos = 0
- self.count_retrieved += len(self.entities)
- self.page_counter += 1
-
- if self.next_cursor is None:
- self.logger.debug('no cursor in response. Total pages=[%s], entities=[%s] url=[%s]' % (
- self.page_counter, self.count_retrieved, self.url))
http://git-wip-us.apache.org/repos/asf/usergrid/blob/2550c96a/sdks/python/usergrid/__init__.py
----------------------------------------------------------------------
diff --git a/sdks/python/usergrid/__init__.py b/sdks/python/usergrid/__init__.py
deleted file mode 100644
index 93f8273..0000000
--- a/sdks/python/usergrid/__init__.py
+++ /dev/null
@@ -1,37 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. The ASF licenses this file to You
-# under the Apache License, Version 2.0 (the "License"); you may not
-# use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License. For additional information regarding
-# copyright in this work, please see the NOTICE file in the top level
-# directory of this distribution.
-
-__all__ = [
- 'UsergridApplication',
- 'UsergridClient',
- 'UsergridConnection',
- 'UsergridConnectionProfile',
- 'UsergridEntity',
- 'Usergrid',
- 'UsergridError',
- 'UsergridOrganization',
- 'UsergridAuth',
- 'UsergridQueryIterator',
- 'UsergridResponse'
-]
-
-from .UsergridApplication import UsergridApplication
-from .UsergridClient import UsergridClient, Usergrid, UsergridResponse
-from .UsergridConnection import UsergridConnection
-from .UsergridOrganization import UsergridOrganization
-from .UsergridQueryIterator import UsergridQueryIterator
-from .UsergridAuth import UsergridAuth
http://git-wip-us.apache.org/repos/asf/usergrid/blob/2550c96a/sdks/python/usergrid/app_templates.py
----------------------------------------------------------------------
diff --git a/sdks/python/usergrid/app_templates.py b/sdks/python/usergrid/app_templates.py
deleted file mode 100644
index 3598587..0000000
--- a/sdks/python/usergrid/app_templates.py
+++ /dev/null
@@ -1,38 +0,0 @@
-# */
-# * Licensed to the Apache Software Foundation (ASF) under one
-# * or more contributor license agreements. See the NOTICE file
-# * distributed with this work for additional information
-# * regarding copyright ownership. The ASF licenses this file
-# * to you under the Apache License, Version 2.0 (the
-# * "License"); you may not use this file except in compliance
-# * with the License. You may obtain a copy of the License at
-# *
-# * http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing,
-# * software distributed under the License is distributed on an
-# * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# * KIND, either express or implied. See the License for the
-# * specific language governing permissions and limitations
-# * under the License.
-# */
-
-__author__ = 'Jeff.West@yahoo.com'
-
-org_url_template = "{base_url}/{org_id}"
-app_url_template = "%s/{app_id}" % org_url_template
-
-app_token_url_template = "%s/token" % app_url_template
-
-collection_url_template = "%s/{collection}" % app_url_template
-collection_query_url_template = "%s?ql={ql}&limit={limit}" % collection_url_template
-
-post_collection_url_template = collection_url_template
-entity_url_template = "%s/{uuid_name}" % collection_url_template
-get_entity_url_template = "%s?connections={connections}" % entity_url_template
-put_entity_url_template = entity_url_template
-delete_entity_url_template = entity_url_template
-
-assign_role_url_template = '%s/roles/{role_uuid_name}/{entity_type}/{entity_uuid_name}' % app_url_template
-
-connect_entities_by_type_template = '%s/{from_collection}/{from_uuid_name}/{relationship}/{to_collection}/{to_uuid_name}' % app_url_template
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/usergrid/blob/2550c96a/sdks/python/usergrid/management_templates.py
----------------------------------------------------------------------
diff --git a/sdks/python/usergrid/management_templates.py b/sdks/python/usergrid/management_templates.py
deleted file mode 100644
index c231b49..0000000
--- a/sdks/python/usergrid/management_templates.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# */
-# * Licensed to the Apache Software Foundation (ASF) under one
-# * or more contributor license agreements. See the NOTICE file
-# * distributed with this work for additional information
-# * regarding copyright ownership. The ASF licenses this file
-# * to you under the Apache License, Version 2.0 (the
-# * "License"); you may not use this file except in compliance
-# * with the License. You may obtain a copy of the License at
-# *
-# * http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing,
-# * software distributed under the License is distributed on an
-# * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# * KIND, either express or implied. See the License for the
-# * specific language governing permissions and limitations
-# * under the License.
-# */
-
-__author__ = 'Jeff.West@yahoo.com'
-
-management_base_url = '{base_url}/management'
-management_org_url_template = "%s/organizations/{org_id}" % management_base_url
-management_org_list_apps_url_template = "%s/applications" % management_org_url_template
-management_app_url_template = "%s/applications/{app_id}" % management_org_url_template
-
-org_token_url_template = "%s/token" % management_base_url