diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-05-30 17:08:30 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-05-30 17:08:30 +0000 |
| commit | 83020caffd812e05aea34c226045b0536879973b (patch) | |
| tree | c79801cf9a5ced987a5adbe754a99267727fabeb | |
| parent | 393b2f5348c0ce79fefa3839a992a38baaec2f5d (diff) | |
automatic import of python-checkout-sdk
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-checkout-sdk.spec | 706 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 708 insertions, 0 deletions
@@ -0,0 +1 @@ +/checkout_sdk-3.0.12.tar.gz diff --git a/python-checkout-sdk.spec b/python-checkout-sdk.spec new file mode 100644 index 0000000..db7c0f2 --- /dev/null +++ b/python-checkout-sdk.spec @@ -0,0 +1,706 @@ +%global _empty_manifest_terminate_build 0 +Name: python-checkout-sdk +Version: 3.0.12 +Release: 1 +Summary: Checkout.com Python SDK +License: MIT +URL: https://github.com/checkout/checkout-sdk-python +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/61/ca/05f9fb3f549712e21cf33d6b332282f020c8542ddf3a457b7552c884532f/checkout_sdk-3.0.12.tar.gz +BuildArch: noarch + +Requires: python3-requests + +%description +# Checkout.com Python SDK + + +[](https://github.com/checkout/checkout-sdk-python/blob/main/LICENSE.md) +[](https://sonarcloud.io/summary/new_code?id=checkout_checkout-sdk-python) +[](https://GitHub.com/checkout/checkout-sdk-php/releases/) +[](https://pypi.org/project/checkout-sdk) + +## Getting started + +``` +# Requires Python > 3.6 +pip install checkout-sdk==<version> +``` + +> **Version 3.0.0 is here!** +> <br/><br/> +> We improved the initialization of SDK making it easier to understand the available options. <br/> +> Now `NAS` accounts are the default instance for the SDK and `ABC` structure was moved to a `previous` prefixes. <br/> +> If you have been using this SDK before, you may find the following important changes: +> * Imports: if you used to import `checkout_sdk.payments.payments` now use `checkout_sdk.payments.payments_previous` +> * Marketplace module was moved to Accounts module, same for classes and references. +> * In most cases, IDE can help you determine from where to import, but if you’re still having issues don't hesitate to open a [ticket](https://github.com/checkout/checkout-sdk-python/issues/new/choose). + + +### :rocket: Please check in [GitHub releases](https://github.com/checkout/checkout-sdk-python/releases) for all the versions available. + +### :book: Checkout our official documentation. + +* [Official Docs (Default)](https://docs.checkout.com/) +* [Official Docs (Previous)](https://docs.checkout.com/previous) + +### :books: Check out our official API documentation guide, where you can also find more usage examples. + +* [API Reference (Default)](https://api-reference.checkout.com/) +* [API Reference (Previous)](https://api-reference.checkout.com/previous) + +## How to use the SDK + +This SDK can be used with two different pair of API keys provided by Checkout. However, using different API keys imply +using specific API features. Please find in the table below the types of keys that can be used within this SDK. + +| Account System | Public Key (example) | Secret Key (example) | +|----------------|-----------------------------------------|-----------------------------------------| +| Default | pk_pkhpdtvabcf7hdgpwnbhw7r2uic | sk_m73dzypy7cf3gf5d2xr4k7sxo4e | +| Previous | pk_g650ff27-7c42-4ce1-ae90-5691a188ee7b | sk_gk3517a8-3z01-45fq-b4bd-4282384b0a64 | + +Note: sandbox keys have a `sbox_` or `test_` identifier, for Default and Previous accounts respectively. + +If you don't have your own API keys, you can sign up for a test +account [here](https://www.checkout.com/get-test-account). + +**PLEASE NEVER SHARE OR PUBLISH YOUR CHECKOUT CREDENTIALS.** + +### Default + +Default keys client instantiation can be done as follows: + +```python +from checkout_sdk.checkout_sdk import CheckoutSdk +from checkout_sdk.environment import Environment + + +def default(): + # public key is optional, only required for operations related with tokens + checkout_api = CheckoutSdk + .builder() + .secret_key('secret_key') + .public_key('public_key') + .environment(Environment.sandbox()) + .build() + + payments_client = checkout_api.payments + payments_client.refund_payment('payment_id') +``` + +### Default OAuth + +The SDK supports client credentials OAuth, when initialized as follows: + +```python +from checkout_sdk.checkout_sdk import CheckoutSdk +from checkout_sdk.environment import Environment +from checkout_sdk.oauth_scopes import OAuthScopes + + +def oauth(): + checkout_api = CheckoutSdk + .builder() + .oauth() + .client_credentials(client_id='client_id', client_secret='client_secret') + .environment(Environment.sandbox()) + .scopes([OAuthScopes.GATEWAY_PAYMENT_REFUNDS, OAuthScopes.FILES]) + .build() + + payments_client = checkout_api.payments + payments_client.refund_payment('payment_id') +``` + +### Previous + +If your pair of keys matches the Previous type, this is how the SDK should be used: + +```python +from checkout_sdk.checkout_sdk import CheckoutSdk +from checkout_sdk.environment import Environment + +def previous(): + # public key is optional, only required for operations related with tokens + checkout_api = CheckoutSdk + .builder() + .previous() + .secret_key('secret_key') + .public_key('public_key') + .environment(Environment.sandbox()) + .build() + + payments_client = checkout_api.payments + payments_client.refund_payment('payment_id') +``` + +## Logging + +Checkout SDK custom logger can be enabled and configured through Python's logging module: + +```python +import logging +logging.basicConfig() +logging.getLogger('checkout').setLevel(logging.INFO) +``` + +## HttpClient + +Checkout SDK uses `requests` library to perform http operations, and you can provide your own custom http client implementing `HttpClientBuilderInterface` + +```python +import requests +from requests import Session + +import checkout_sdk +from checkout_sdk.checkout_sdk import CheckoutSdk +from checkout_sdk.environment import Environment +from checkout_sdk.oauth_scopes import OAuthScopes +from checkout_sdk.http_client_interface import HttpClientBuilderInterface + + +class CustomHttpClientBuilder(HttpClientBuilderInterface): + + def get_client(self) -> Session: + session = requests.Session() + session.max_redirects = 5 + return session + + +def oauth(): + checkout_api = CheckoutSdk + .builder() + .oauth() + .client_credentials(client_id='client_id', client_secret='client_secret') + .environment(Environment.sandbox()) + .http_client_builder(CustomHttpClientBuilder()) + .scopes([OAuthScopes.GATEWAY_PAYMENT_REFUNDS, OAuthScopes.FILES]) + .build() + + payments_client = checkout_api.payments + payments_client.refund_payment('payment_id') +``` + +## Exception handling + +All the API responses that do not fall in the 2** status codes will cause a `CheckoutApiException`. The exception encapsulates +the `http_metadata` and a dictionary of `error_details`, if available. + +```python +try: + checkout_api.customers.get("customer_id") +except CheckoutApiException as err: + http_status_code = err.http_metadata.status_code + error_details = err.error_details +``` + +## Building from source + +Once you checkout the code from GitHub, the project can be built using `pip`: + +``` +# install the latest version pip +python -m pip install --upgrade pip + +# install project dependencies +pip install -r requirements-dev.txt + +# run unit and integration tests +python -m pytest +``` + +The execution of integration tests require the following environment variables set in your system: + +* For Default account systems: `CHECKOUT_DEFAULT_PUBLIC_KEY` & `CHECKOUT_DEFAULT_SECRET_KEY` +* For OAuth account systems: `CHECKOUT_DEFAULT_OAUTH_CLIENT_ID` & `CHECKOUT_DEFAULT_OAUTH_CLIENT_SECRET` +* For Previous account systems: `CHECKOUT_PREVIOUS_PUBLIC_KEY` & `CHECKOUT_PREVIOUS_SECRET_KEY` + +## Code of Conduct + +Please refer to [Code of Conduct](CODE_OF_CONDUCT.md) + +## Licensing + +[MIT](LICENSE.md) + + + + +%package -n python3-checkout-sdk +Summary: Checkout.com Python SDK +Provides: python-checkout-sdk +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-checkout-sdk +# Checkout.com Python SDK + + +[](https://github.com/checkout/checkout-sdk-python/blob/main/LICENSE.md) +[](https://sonarcloud.io/summary/new_code?id=checkout_checkout-sdk-python) +[](https://GitHub.com/checkout/checkout-sdk-php/releases/) +[](https://pypi.org/project/checkout-sdk) + +## Getting started + +``` +# Requires Python > 3.6 +pip install checkout-sdk==<version> +``` + +> **Version 3.0.0 is here!** +> <br/><br/> +> We improved the initialization of SDK making it easier to understand the available options. <br/> +> Now `NAS` accounts are the default instance for the SDK and `ABC` structure was moved to a `previous` prefixes. <br/> +> If you have been using this SDK before, you may find the following important changes: +> * Imports: if you used to import `checkout_sdk.payments.payments` now use `checkout_sdk.payments.payments_previous` +> * Marketplace module was moved to Accounts module, same for classes and references. +> * In most cases, IDE can help you determine from where to import, but if you’re still having issues don't hesitate to open a [ticket](https://github.com/checkout/checkout-sdk-python/issues/new/choose). + + +### :rocket: Please check in [GitHub releases](https://github.com/checkout/checkout-sdk-python/releases) for all the versions available. + +### :book: Checkout our official documentation. + +* [Official Docs (Default)](https://docs.checkout.com/) +* [Official Docs (Previous)](https://docs.checkout.com/previous) + +### :books: Check out our official API documentation guide, where you can also find more usage examples. + +* [API Reference (Default)](https://api-reference.checkout.com/) +* [API Reference (Previous)](https://api-reference.checkout.com/previous) + +## How to use the SDK + +This SDK can be used with two different pair of API keys provided by Checkout. However, using different API keys imply +using specific API features. Please find in the table below the types of keys that can be used within this SDK. + +| Account System | Public Key (example) | Secret Key (example) | +|----------------|-----------------------------------------|-----------------------------------------| +| Default | pk_pkhpdtvabcf7hdgpwnbhw7r2uic | sk_m73dzypy7cf3gf5d2xr4k7sxo4e | +| Previous | pk_g650ff27-7c42-4ce1-ae90-5691a188ee7b | sk_gk3517a8-3z01-45fq-b4bd-4282384b0a64 | + +Note: sandbox keys have a `sbox_` or `test_` identifier, for Default and Previous accounts respectively. + +If you don't have your own API keys, you can sign up for a test +account [here](https://www.checkout.com/get-test-account). + +**PLEASE NEVER SHARE OR PUBLISH YOUR CHECKOUT CREDENTIALS.** + +### Default + +Default keys client instantiation can be done as follows: + +```python +from checkout_sdk.checkout_sdk import CheckoutSdk +from checkout_sdk.environment import Environment + + +def default(): + # public key is optional, only required for operations related with tokens + checkout_api = CheckoutSdk + .builder() + .secret_key('secret_key') + .public_key('public_key') + .environment(Environment.sandbox()) + .build() + + payments_client = checkout_api.payments + payments_client.refund_payment('payment_id') +``` + +### Default OAuth + +The SDK supports client credentials OAuth, when initialized as follows: + +```python +from checkout_sdk.checkout_sdk import CheckoutSdk +from checkout_sdk.environment import Environment +from checkout_sdk.oauth_scopes import OAuthScopes + + +def oauth(): + checkout_api = CheckoutSdk + .builder() + .oauth() + .client_credentials(client_id='client_id', client_secret='client_secret') + .environment(Environment.sandbox()) + .scopes([OAuthScopes.GATEWAY_PAYMENT_REFUNDS, OAuthScopes.FILES]) + .build() + + payments_client = checkout_api.payments + payments_client.refund_payment('payment_id') +``` + +### Previous + +If your pair of keys matches the Previous type, this is how the SDK should be used: + +```python +from checkout_sdk.checkout_sdk import CheckoutSdk +from checkout_sdk.environment import Environment + +def previous(): + # public key is optional, only required for operations related with tokens + checkout_api = CheckoutSdk + .builder() + .previous() + .secret_key('secret_key') + .public_key('public_key') + .environment(Environment.sandbox()) + .build() + + payments_client = checkout_api.payments + payments_client.refund_payment('payment_id') +``` + +## Logging + +Checkout SDK custom logger can be enabled and configured through Python's logging module: + +```python +import logging +logging.basicConfig() +logging.getLogger('checkout').setLevel(logging.INFO) +``` + +## HttpClient + +Checkout SDK uses `requests` library to perform http operations, and you can provide your own custom http client implementing `HttpClientBuilderInterface` + +```python +import requests +from requests import Session + +import checkout_sdk +from checkout_sdk.checkout_sdk import CheckoutSdk +from checkout_sdk.environment import Environment +from checkout_sdk.oauth_scopes import OAuthScopes +from checkout_sdk.http_client_interface import HttpClientBuilderInterface + + +class CustomHttpClientBuilder(HttpClientBuilderInterface): + + def get_client(self) -> Session: + session = requests.Session() + session.max_redirects = 5 + return session + + +def oauth(): + checkout_api = CheckoutSdk + .builder() + .oauth() + .client_credentials(client_id='client_id', client_secret='client_secret') + .environment(Environment.sandbox()) + .http_client_builder(CustomHttpClientBuilder()) + .scopes([OAuthScopes.GATEWAY_PAYMENT_REFUNDS, OAuthScopes.FILES]) + .build() + + payments_client = checkout_api.payments + payments_client.refund_payment('payment_id') +``` + +## Exception handling + +All the API responses that do not fall in the 2** status codes will cause a `CheckoutApiException`. The exception encapsulates +the `http_metadata` and a dictionary of `error_details`, if available. + +```python +try: + checkout_api.customers.get("customer_id") +except CheckoutApiException as err: + http_status_code = err.http_metadata.status_code + error_details = err.error_details +``` + +## Building from source + +Once you checkout the code from GitHub, the project can be built using `pip`: + +``` +# install the latest version pip +python -m pip install --upgrade pip + +# install project dependencies +pip install -r requirements-dev.txt + +# run unit and integration tests +python -m pytest +``` + +The execution of integration tests require the following environment variables set in your system: + +* For Default account systems: `CHECKOUT_DEFAULT_PUBLIC_KEY` & `CHECKOUT_DEFAULT_SECRET_KEY` +* For OAuth account systems: `CHECKOUT_DEFAULT_OAUTH_CLIENT_ID` & `CHECKOUT_DEFAULT_OAUTH_CLIENT_SECRET` +* For Previous account systems: `CHECKOUT_PREVIOUS_PUBLIC_KEY` & `CHECKOUT_PREVIOUS_SECRET_KEY` + +## Code of Conduct + +Please refer to [Code of Conduct](CODE_OF_CONDUCT.md) + +## Licensing + +[MIT](LICENSE.md) + + + + +%package help +Summary: Development documents and examples for checkout-sdk +Provides: python3-checkout-sdk-doc +%description help +# Checkout.com Python SDK + + +[](https://github.com/checkout/checkout-sdk-python/blob/main/LICENSE.md) +[](https://sonarcloud.io/summary/new_code?id=checkout_checkout-sdk-python) +[](https://GitHub.com/checkout/checkout-sdk-php/releases/) +[](https://pypi.org/project/checkout-sdk) + +## Getting started + +``` +# Requires Python > 3.6 +pip install checkout-sdk==<version> +``` + +> **Version 3.0.0 is here!** +> <br/><br/> +> We improved the initialization of SDK making it easier to understand the available options. <br/> +> Now `NAS` accounts are the default instance for the SDK and `ABC` structure was moved to a `previous` prefixes. <br/> +> If you have been using this SDK before, you may find the following important changes: +> * Imports: if you used to import `checkout_sdk.payments.payments` now use `checkout_sdk.payments.payments_previous` +> * Marketplace module was moved to Accounts module, same for classes and references. +> * In most cases, IDE can help you determine from where to import, but if you’re still having issues don't hesitate to open a [ticket](https://github.com/checkout/checkout-sdk-python/issues/new/choose). + + +### :rocket: Please check in [GitHub releases](https://github.com/checkout/checkout-sdk-python/releases) for all the versions available. + +### :book: Checkout our official documentation. + +* [Official Docs (Default)](https://docs.checkout.com/) +* [Official Docs (Previous)](https://docs.checkout.com/previous) + +### :books: Check out our official API documentation guide, where you can also find more usage examples. + +* [API Reference (Default)](https://api-reference.checkout.com/) +* [API Reference (Previous)](https://api-reference.checkout.com/previous) + +## How to use the SDK + +This SDK can be used with two different pair of API keys provided by Checkout. However, using different API keys imply +using specific API features. Please find in the table below the types of keys that can be used within this SDK. + +| Account System | Public Key (example) | Secret Key (example) | +|----------------|-----------------------------------------|-----------------------------------------| +| Default | pk_pkhpdtvabcf7hdgpwnbhw7r2uic | sk_m73dzypy7cf3gf5d2xr4k7sxo4e | +| Previous | pk_g650ff27-7c42-4ce1-ae90-5691a188ee7b | sk_gk3517a8-3z01-45fq-b4bd-4282384b0a64 | + +Note: sandbox keys have a `sbox_` or `test_` identifier, for Default and Previous accounts respectively. + +If you don't have your own API keys, you can sign up for a test +account [here](https://www.checkout.com/get-test-account). + +**PLEASE NEVER SHARE OR PUBLISH YOUR CHECKOUT CREDENTIALS.** + +### Default + +Default keys client instantiation can be done as follows: + +```python +from checkout_sdk.checkout_sdk import CheckoutSdk +from checkout_sdk.environment import Environment + + +def default(): + # public key is optional, only required for operations related with tokens + checkout_api = CheckoutSdk + .builder() + .secret_key('secret_key') + .public_key('public_key') + .environment(Environment.sandbox()) + .build() + + payments_client = checkout_api.payments + payments_client.refund_payment('payment_id') +``` + +### Default OAuth + +The SDK supports client credentials OAuth, when initialized as follows: + +```python +from checkout_sdk.checkout_sdk import CheckoutSdk +from checkout_sdk.environment import Environment +from checkout_sdk.oauth_scopes import OAuthScopes + + +def oauth(): + checkout_api = CheckoutSdk + .builder() + .oauth() + .client_credentials(client_id='client_id', client_secret='client_secret') + .environment(Environment.sandbox()) + .scopes([OAuthScopes.GATEWAY_PAYMENT_REFUNDS, OAuthScopes.FILES]) + .build() + + payments_client = checkout_api.payments + payments_client.refund_payment('payment_id') +``` + +### Previous + +If your pair of keys matches the Previous type, this is how the SDK should be used: + +```python +from checkout_sdk.checkout_sdk import CheckoutSdk +from checkout_sdk.environment import Environment + +def previous(): + # public key is optional, only required for operations related with tokens + checkout_api = CheckoutSdk + .builder() + .previous() + .secret_key('secret_key') + .public_key('public_key') + .environment(Environment.sandbox()) + .build() + + payments_client = checkout_api.payments + payments_client.refund_payment('payment_id') +``` + +## Logging + +Checkout SDK custom logger can be enabled and configured through Python's logging module: + +```python +import logging +logging.basicConfig() +logging.getLogger('checkout').setLevel(logging.INFO) +``` + +## HttpClient + +Checkout SDK uses `requests` library to perform http operations, and you can provide your own custom http client implementing `HttpClientBuilderInterface` + +```python +import requests +from requests import Session + +import checkout_sdk +from checkout_sdk.checkout_sdk import CheckoutSdk +from checkout_sdk.environment import Environment +from checkout_sdk.oauth_scopes import OAuthScopes +from checkout_sdk.http_client_interface import HttpClientBuilderInterface + + +class CustomHttpClientBuilder(HttpClientBuilderInterface): + + def get_client(self) -> Session: + session = requests.Session() + session.max_redirects = 5 + return session + + +def oauth(): + checkout_api = CheckoutSdk + .builder() + .oauth() + .client_credentials(client_id='client_id', client_secret='client_secret') + .environment(Environment.sandbox()) + .http_client_builder(CustomHttpClientBuilder()) + .scopes([OAuthScopes.GATEWAY_PAYMENT_REFUNDS, OAuthScopes.FILES]) + .build() + + payments_client = checkout_api.payments + payments_client.refund_payment('payment_id') +``` + +## Exception handling + +All the API responses that do not fall in the 2** status codes will cause a `CheckoutApiException`. The exception encapsulates +the `http_metadata` and a dictionary of `error_details`, if available. + +```python +try: + checkout_api.customers.get("customer_id") +except CheckoutApiException as err: + http_status_code = err.http_metadata.status_code + error_details = err.error_details +``` + +## Building from source + +Once you checkout the code from GitHub, the project can be built using `pip`: + +``` +# install the latest version pip +python -m pip install --upgrade pip + +# install project dependencies +pip install -r requirements-dev.txt + +# run unit and integration tests +python -m pytest +``` + +The execution of integration tests require the following environment variables set in your system: + +* For Default account systems: `CHECKOUT_DEFAULT_PUBLIC_KEY` & `CHECKOUT_DEFAULT_SECRET_KEY` +* For OAuth account systems: `CHECKOUT_DEFAULT_OAUTH_CLIENT_ID` & `CHECKOUT_DEFAULT_OAUTH_CLIENT_SECRET` +* For Previous account systems: `CHECKOUT_PREVIOUS_PUBLIC_KEY` & `CHECKOUT_PREVIOUS_SECRET_KEY` + +## Code of Conduct + +Please refer to [Code of Conduct](CODE_OF_CONDUCT.md) + +## Licensing + +[MIT](LICENSE.md) + + + + +%prep +%autosetup -n checkout-sdk-3.0.12 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-checkout-sdk -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue May 30 2023 Python_Bot <Python_Bot@openeuler.org> - 3.0.12-1 +- Package Spec generated @@ -0,0 +1 @@ +14328cb77e127549a7d75703e13add1a checkout_sdk-3.0.12.tar.gz |
