Metadata-Version: 2.4
Name: sf_toolkit
Version: 0.6.0
Summary: A Salesforce API Adapter for Python
License: MIT
License-File: LICENSE.txt
Keywords: salesforce,api,rest,adapter,toolkit,sfdc,sfdx,forcedotcom
Author: David Culbreth
Author-email: david.culbreth.256@gmail.com
Requires-Python: >= 3.11
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
Requires-Dist: httpx (>=0.28.1,<0.29.0)
Requires-Dist: lxml (>=5.3.1,<6.0.0)
Requires-Dist: pyjwt (>=2.10.1,<3.0.0)
Requires-Dist: typing_extensions (>=4.0.0,<5.0.0)
Project-URL: Changelog, https://github.com/AndroxxTraxxon/python-sf-toolkit/blob/main/CHANGELOG.md
Project-URL: Documentation, https://androxxtraxxon.github.io/python-sf-toolkit/
Project-URL: Homepage, https://github.com/AndroxxTraxxon/python-sf-toolkit
Project-URL: Issues, https://github.com/AndroxxTraxxon/python-sf-toolkit/issues
Project-URL: Repository, https://github.com/AndroxxTraxxon/python-sf-toolkit.git
Description-Content-Type: text/markdown

# Salesforce Toolkit for Python

A modern, Pythonic interface to Salesforce APIs.

## Features

- Clean, intuitive API design
- Both synchronous and asynchronous client support
- Simple SObject modeling using Python classes
- Powerful query builder for SOQL queries
- Efficient batch operations
- Automatic session management and token refresh

## Installation

```bash
pip install sf-toolkit
```

## Quick Start

```python
from sf_toolkit import SalesforceClient, SObject, cli_login
from sf_toolkit.io import select, save
from sf_toolkit.data.fields import IdField, TextField

# Define a Salesforce object model
class Account(SObject):
    Id = IdField()
    Name = TextField()
    Industry = TextField()
    Description = TextField()

# Connect to Salesforce using the CLI authentication
with SalesforceClient(login=cli_login()) as sf:
    # Create a new account
    account = Account(Name="Acme Corp", Industry="Technology")
    save(account)

    # Query accounts
    result = select(Account).execute()

    for acc in result:
        print(f"{acc.Name} ({acc.Industry}) {acc.Description}")
```

