Skip to content

The python-sdk-core repository contains core functionality required by Python code generated by the IBM OpenAPI SDK Generator.

License

Notifications You must be signed in to change notification settings

bessbd/python-sdk-core

 
 

Repository files navigation

Build Status codecov Latest Stable Version CLA assistant

python-sdk-core

This project contains the core functionality used by Python SDK's generated by the IBM OpenAPI 3 SDK Generator (openapi-sdkgen). Python code generated by openapi-sdkgen will depend on the function contained in this project.

Notice

Support for Python versions 2.x and versions <= 3.4 is deprecated and will be officially dropped in the next major release, which is expected to be end of September, 2019.

Installation

To install, use pip or easy_install:

pip install --upgrade ibm-cloud-sdk-core

or

easy_install --upgrade ibm-cloud-sdk-core

Authentication Types

There are several flavors of authentication supported in this package. To specify the intended authentication pattern to use, simply instantiate the Authenticator of your choice.

Basic

This indicates Basic Auth is to be used. Users will pass in a username and password and the SDK will generate a Basic Auth header to send with requests to the service.

from ibm_cloud_sdk_core.authenticators import BasicAuthenticator

authenticator = BasicAuthenticator(<your_username>, <your_password>)

IAM

This indicates that IAM token authentication is to be used. Users can pass in a apikey and the SDK will generate a Bearer Auth header to send with requests to the service.

from ibm_cloud_sdk_core.authenticators import IAMAuthenticator

authenticator = IAMAuthenticator(<your_apikey>)

Cloud Pak for Data

This indicates that the service is an instance of CP4D, which has its own version of token authentication. Users can pass in a username, password and url, and the SDK will generate a Bearer Auth header to send with requests to the service.

from ibm_cloud_sdk_core.authenticators import CloudPakForDataAuthenticator

authenticator = CloudPakForDataAuthenticator(<your_username>, <your_password>, <your_url>)

Bearer Token

This indicates bearer token authentication is to be used. The system would prepend the bearer name to your token and add it to the authorization header.

from ibm_cloud_sdk_core.authenticators import BearerTokenAuthenticator

authenticator = BearerTokenAuthenticator(<your_bearer_token>)

No Authentication

This indicates that no authentication is needed when sending requests to the service

from ibm_cloud_sdk_core.authenticators import NoAuthAuthenticator

authenticator = NoAuthAuthenticator()

Issues

If you encounter an issue with this project, you are welcome to submit a bug report. Before opening a new issue, please search for similar issues. It's possible that someone has already reported it.

Logging

Enable logging

import logging
logging.basicConfig(level=logging.DEBUG)

This would show output of the form:

DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): iam.cloud.ibm.com:443
DEBUG:urllib3.connectionpool:https://iam.cloud.ibm.com:443 "POST /identity/token HTTP/1.1" 200 1809
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): gateway.watsonplatform.net:443
DEBUG:urllib3.connectionpool:https://gateway.watsonplatform.net:443 "POST /assistant/api/v1/workspaces?version=2018-07-10 HTTP/1.1" 201 None
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): gateway.watsonplatform.net:443
DEBUG:urllib3.connectionpool:https://gateway.watsonplatform.net:443 "GET /assistant/api/v1/workspaces/883a2a44-eb5f-4b1a-96b0-32a90b475ea8?version=2018-07-10&export=true HTTP/1.1" 200 None
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): gateway.watsonplatform.net:443
DEBUG:urllib3.connectionpool:https://gateway.watsonplatform.net:443 "DELETE /assistant/api/v1/workspaces/883a2a44-eb5f-4b1a-96b0-32a90b475ea8?version=2018-07-10 HTTP/1.1" 200 28

Low level request and response dump

To get low level information of the requests/ responses:

from http.client import HTTPConnection
HTTPConnection.debuglevel = 1

Open source @ IBM

Find more open source projects on the IBM Github Page

License

This library is licensed under Apache 2.0. Full license text is available in LICENSE.

Contributing

See CONTRIBUTING.md.

About

The python-sdk-core repository contains core functionality required by Python code generated by the IBM OpenAPI SDK Generator.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%