Metadata-Version: 2.3
Name: sf_toolkit
Version: 0.2.0
Summary: A Salesforce API Adapter for Python
License: MIT
Author: David Culbreth
Author-email: david.culbreth.256@gmail.com
Requires-Python: >=3.11,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Dist: httpx (>=0.28.1,<0.29.0)
Requires-Dist: lxml (>=5.3.1,<6.0.0)
Requires-Dist: more-itertools (>=10.6.0,<11.0.0)
Requires-Dist: pyjwt (>=2.10.1,<3.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://example.com
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.data.fields import IdField, TextField

# Define a Salesforce object model
class Account(SObject, api_name="Account"):
    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")
    account.save()

    # Query accounts
    query = SoqlSelect(Account)
    results = query.query()

    for acc in results.records:
        print(f"{acc.Name} ({acc.Industry})")
```

## Documentation

View the full documentation on [github.io](https://androxxtraxxon.github.io/python-sf-toolkit/).
### Building the documentation

You can build the documentation locally with:

```bash
# One-time build
python -m sphinx -b html docs/source docs/build/html

# Or with auto-reload during development
sphinx-autobuild docs/source docs/build/html
```

The documentation is automatically built from docstrings in the code, so make sure to write
comprehensive docstrings for all public classes and methods.

## License

MIT

