squareconnect

2.20190724.1last stable release 5 years ago
Complexity Score
High
Open Issues
5
Dependent Projects
1
Weekly Downloadsglobal
683

License

  • MIT-feh

    Downloads

    Readme

    Square Connect Python SDK - RETIRED

    NOTICE: Square Connect Python SDK retired

    The Square Connect Python SDK is retired (EOL) as of 2019-08-15 and will no longer receive bug fixes or product updates. To continue receiving API and SDK improvements, please follow the instructions below to migrate to the new Square Python SDK.

    The old Connect SDK documentation is available under the /docs folder.


    • Migrate to the Square Python SDK
    • Example code migration
    • Ask the community

    Migrate to the Square Python SDK

    Follow the instructions below to migrate your apps from the deprecated squareconnect library to the new square library.

    Install the new library

    Install the latest Square Python SDK using pip:

    pip install squareup
    

    Update your code

    1. Change all instances of import 'squareconnect' to import 'square'.
    2. Replace models with plain Python dictionary equivalents.
    3. Update client instantiation to follow the method outlined below.
    4. Update code for accessing response data to follow the method outlined below.
    5. Check response.is_success or response.is_error rather than rescuing exceptions for flow control.

    To simplify your code, we also recommend that you use method chaining to access APIs instead of explicitly instantiating multiple clients.

    Client instantiation

    from square.client import Client
    
    square = Client(access_token='YOUR ACCESS TOKEN')
    
    response = square.API.ENDPOINT(body=BODY)
    

    Accessing response data

    if response.is_success():
      print({response.body})
    elif response.is_error():
      print({response.errors})
    

    An example code migration

    As a specific example, consider the following code for creating a new customer from this dictionary:

    new_customer = {
      'given_name': 'Ava',
      'address': {
        'address_line_1': '555 Electric Ave',
        'locality': 'Los Angeles',
        'country': 'US'
      }
    }
    

    With the deprecated squareconnect library, this is how you instantiate a client for the Customers API, format the request, and call the endpoint:

    from squareconnect import ApiClient
    from squareconnect.rest import ApiException
    from squareconnect.apis.customers_api import CustomersApi
    from squareconnect.models.create_customer_request import CreateCustomerRequest
    
    # Instantiate and initialize the client
    api_client = ApiClient()
    api_client.configuration.access_token = 'YOUR ACCESS TOKEN'
    
    # Get an instance of the Square API you want call
    api_instance = CustomersApi(api_client)
    
    # Build the request
    create_customer_request = CreateCustomerRequest(
      given_name=new_customer['given_name'],
      address=new_customer['address'],
    )
    
    # Call create_customer method to create a new customer and handle the response
    try:
      api_response = api_instance.create_customer(create_customer_request)
      print(f"Success: {api_response.customer}")
    except ApiException as err:
      print(f"Exception when calling CustomersApi->create_customer: {err}")
    

    Now consider equivalent code using the new square library:

    from square.client import Client
    
    # Instantiate the client
    client = Client(access_token='YOUR ACCESS TOKEN')
    
    # Call create_customer method to create a new customer
    result = client.customers.create_customer(new_customer)
    
    # Handle the result
    if result.is_success():
      # Display the response as text
      print(f"Success: {result.text}")
    # Call the error method to see if the call failed
    elif result.is_error():
      print(f"Errors: {result.errors}")
    

    That’s it! What was once a multi-block process can be handled in 2 lines of code and an if/elif block. Migrating to the square library reduces boilerplate and lets you can focus on the parts of your code that really matter.



    Ask the community

    Please join us in our Square developer community if you have any questions!

    Square Python SDK

    Dependencies

    CVE IssuesActive
    0
    Scorecards Score
    2.10
    Test Coverage
    No Data
    Follows Semver
    Yes
    Github Stars
    43
    Dependenciestotal
    4
    DependenciesOutdated
    0
    DependenciesDeprecated
    0
    Threat Modelling
    No
    Repo Audits
    No

    Learn how to distribute squareconnect in your own private PyPI registry

    pip install squareconnect
    Processing...
    Done

    41 Releases

    PyPI on Cloudsmith

    Getting started with PyPI on Cloudsmith is fast and easy.