Skip to main content

Async fork of simple-salesforce

Project description

Async Simple Salesforce

This is an async fork of the library simple-salesforce. It is considered beta software.

This fork is available on PyPI and can be installed like this:

$ pip install "async-simple-salesforce"

Because we release with alpha or beta version identifiers, you will likely need to specify the tag you want (see Release page):

$ pip install "async-simple-salesforce == 1.12.9b0"

Installation Prerequisites

This library depends on zeep, which requires lxml. On most platforms and Python versions, lxml installs via a pre-built wheel with no extra steps. However, if you are on macOS or Linux with a Python version that does not yet have a pre-built lxml wheel, the install will attempt to build lxml from source and will fail unless the libxml2 and libxslt development libraries are present.

macOS:

brew install libxml2 libxslt

Linux (Debian/Ubuntu):

sudo apt-get install libxml2-dev libxslt1-dev

After installing the system libraries, re-run the pip install command.

Versioning

Versioning for this library tracks the upstream version; i.e., when a new version of upstream has been published, it will be integrated into this codebase and released under the same version identifier, with one notable difference: we add alpha or beta identifiers to make it more obvious that this fork has not been around as long as upstream and that it has also not seen the same wide-scale usage that upstream has.

For example, when changes from upstream version 1.12.9 have been integrated into this library, a new version of this library will be published as 1.12.9b0. Further changes under the same version will increment the alpha version identifier.

How to Use

This library attempts to offer the same API as simple-salesforce inside an aio subpackage.

For instance, here's how to create and use an async Salesforce client:

import asyncio
import datetime

from simple_salesforce.aio import build_async_salesforce_client, AsyncSalesforce


async def create_client(username, consumer_key, private_key) -> AsyncSalesforce:
    # build_async_salesforce_client accepts all args of simple-salesforce Login
    return await build_async_salesforce_client(
            username=username,
            consumer_key=consumer_key,
            privatekey_file=private_key,
            request_timeout_seconds=60 * 2,
        )

async def update_contact(sf_client):
    end = datetime.datetime.now(pytz.UTC) # we need to use UTC as salesforce API requires this
    await sf_client.Contact.updated(end - datetime.timedelta(days=10), end)


async def run_query(sf_client, opportunity_name: str):
    query = (
        f"SELECT Id,StageName from Opportunity where "
        f"Name='{opportunity_name}'"
    )
    return await sf_client.query_all(search)

You can typically call any method available on the synchronous Salesforce object as an async method with an await added.

For full documentation of the async API — all authentication methods, SObject CRUD, queries, Bulk v1, Bulk v2, Metadata API, session customization, and more — see docs/async.md.

See upstream docs continued here.

How to Contribute

This project uses uv to manage dependencies. In addition, a justfile has been provided to aid contributors. If you have uv and just in your environment, you can get started with just bootstrap. You can run the test suite with just test and code quality checks with just test. For more common recipes, run just:

 just
just --list
Available recipes:
    bootstrap                         # Create a virtual environment and install dependencies
    build *args                       # Build the project as a package
    check                             # Run code quality checks
    check-types                       # Run mypy checks
    ci-test coverage_dir='./coverage' # Run all tests locally
    format                            # Run the formatter (`ruff`)
    lock                              # Update the lock file
    release                           # Release this project to PyPI
    sync *args                        # Make sure all dependencies are up to date in env
    test *args                        # Run all tests locally

The upstream README is located here

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

async_simple_salesforce-1.12.9b0.tar.gz (250.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

async_simple_salesforce-1.12.9b0-py3-none-any.whl (259.2 kB view details)

Uploaded Python 3

File details

Details for the file async_simple_salesforce-1.12.9b0.tar.gz.

File metadata

File hashes

Hashes for async_simple_salesforce-1.12.9b0.tar.gz
Algorithm Hash digest
SHA256 099082dfba5eb6fd8651f5236d303868e3df7b0ba3953adecfc90c8b32cfacd2
MD5 66a6425620076c2dd0349f449d27ca67
BLAKE2b-256 a0d4303cbdd1a9437fb6e686c40ed146b1c67160e262f32c41e0c8526146a21f

See more details on using hashes here.

Provenance

The following attestation bundles were made for async_simple_salesforce-1.12.9b0.tar.gz:

Publisher: release.yaml on MulliganFunding/async-simple-salesforce

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file async_simple_salesforce-1.12.9b0-py3-none-any.whl.

File metadata

File hashes

Hashes for async_simple_salesforce-1.12.9b0-py3-none-any.whl
Algorithm Hash digest
SHA256 f87acfd66a70e5f0baab850603d9aac7b60160ec4a374ab73fcb182d1b16ad88
MD5 db81f5c91033869b41f5f655d4e4bd02
BLAKE2b-256 68445acdd5bb85c10c9bd13770a15067736f360f4ee6c8507c765057d44240cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for async_simple_salesforce-1.12.9b0-py3-none-any.whl:

Publisher: release.yaml on MulliganFunding/async-simple-salesforce

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page