Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 0 additions & 13 deletions .travis.yml

This file was deleted.

24 changes: 23 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,29 @@ by Aaron Caffrey, Colin Cheevers, Jose Garcia, Tania Prince

A Salesforce.com [Open Source contribution](https://opensource.salesforce.com/).

SalesforcePy is an absurdly simple package for making Salesforce Rest API calls. We created this package so you can:
SalesforcePy is an absurdly simple package for making Salesforce Rest API calls.

## Installation

### With [uv](https://docs.astral.sh/uv/) (recommended)

```bash
uv add salesforcepy
```

**From GitHub (latest):**

```bash
uv add git+https://github.com/forcedotcom/SalesforcePy.git
```

### With pip

```bash
pip install salesforcepy
# or from GitHub
pip install git+https://github.com/forcedotcom/SalesforcePy.git
``` We created this package so you can:

+ Have a Salesforce client that is reusable, minimalistic, and pythonic
+ Use interfaces that are closely knit to the Salesforce Rest API service specification
Expand Down
2 changes: 1 addition & 1 deletion docs/contribute.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Git Workflow

1. Fork this repo.
2. Run ``git clone -b <yourbranch> <yourfork>``.
3. From within the project root directory run pip install.
3. From within the project root directory run ``uv sync`` (or ``pip install -e .``).
4. Develop!
5. Cover your code in ``/tests``.
6. Create a pull request to the ``forcedotcom:developer branch``.
Expand Down
4 changes: 2 additions & 2 deletions docs/faq.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Yes. Here's an example of how to do it, and what to expect.
.. code-block:: python

import logging
import SalesforcePy as sfdc
import salesforcepy as sfdc

username = "jsoap@universalcontainers.com"
password = "p@ssword1"
Expand All @@ -47,7 +47,7 @@ Yes. Here's an example of how to do it.

.. code-block:: python

import SalesforcePy as sfdc
import salesforcepy as sfdc

username = "jsoap@universalcontainers.com"
password = "p@ssword1"
Expand Down
6 changes: 3 additions & 3 deletions docs/get_started.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ From Local Source
^^^^^^^^^^^^^^^^^
1. Download and extract, or clone this repo.
2. cd into the ``/SalesforcePy`` directory.
3. Run ``pip install .``.
3. Run ``uv sync`` (or ``pip install -e .``).

Create a Client and Log In
--------------------------
Expand All @@ -30,8 +30,8 @@ Getting started with SalesforcePy is a three-step process:

.. code-block:: python

#Import SalesforcePy
import SalesforcePy as sfdc
#Import salesforcepy
import salesforcepy as sfdc

# Create an instance of a Salesforce client. Replace the credentials here with valid ones.
client = sfdc.client(
Expand Down
46 changes: 46 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
[build-system]
requires = ["uv_build>=0.11.8,<0.12"]
build-backend = "uv_build"

[project]
name = "salesforcepy"
version = "2.2.0"
description = "An absurdly simple package for making Salesforce REST API calls"
authors = [
{name = "Aaron Caffrey", email = "acaffrey@salesforce.com"},
{name = "Jose Garcia Ponce", email = "jgarciaponce@salesforce.com"},
{name = "Colin Cheevers", email = "ccheevers@salesforce.com"},
{name = "Tania Prince", email = "tania.prince@salesforce.com"},
]
license = {text = "BSD-3-Clause"}
readme = "README.md"
requires-python = ">=3.11,<4.0"
keywords = ["salesforce", "rest", "api", "sfdc"]
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Intended Audience :: Developers",
"Topic :: Software Development :: Libraries :: Python Modules",
]
dependencies = [
"requests>=2.20.0,<3",
]

[project.urls]
repository = "https://github.com/forcedotcom/SalesforcePy"
homepage = "https://github.com/forcedotcom/SalesforcePy"

[dependency-groups]
dev = [
"responses>=0.22.0",
"coverage>=7.3",
"pytest>=7.0.0",
]

[tool.pytest.ini_options]
testpaths = ["tests"]
pythonpath = ["src", "tests"]
python_files = "test_*.py"
python_classes = "Test*"
python_functions = "test_*"
6 changes: 0 additions & 6 deletions requirements-dev.txt

This file was deleted.

1 change: 0 additions & 1 deletion requirements.txt

This file was deleted.

2 changes: 0 additions & 2 deletions setup.cfg

This file was deleted.

40 changes: 0 additions & 40 deletions setup.py

This file was deleted.

4 changes: 2 additions & 2 deletions SalesforcePy/__init__.py → src/salesforcepy/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from __future__ import absolute_import
# Local library imports
from . import sfdc

name = 'SalesforcePy'
name = 'salesforcepy'
client = sfdc.client

LoginException = sfdc.LoginException
3 changes: 1 addition & 2 deletions SalesforcePy/chatter.py → src/salesforcepy/chatter.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@
.. versionadded:: 1.0.0

"""
from __future__ import absolute_import

# Local library imports
from . import commons

FEED_COMMENT_SERVICE = '/services/data/v%s/chatter/feed-elements/%s/capabilities/comments/items'
Expand Down
13 changes: 7 additions & 6 deletions SalesforcePy/commons.py → src/salesforcepy/commons.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,15 @@
.. versionadded:: 1.0.0

"""
from __future__ import absolute_import

# Built-in imports
import collections
import logging
import requests
import xml.etree.ElementTree as ET
from urllib.parse import urlparse

# Third-party imports
import requests

DEFAULT_API_VERSION = '37.0'


Expand Down Expand Up @@ -271,7 +272,7 @@ def request(self):
except Exception as e:
self.exceptions.append(e)
logger.error('%s %s %s' % (self.http_method, service, self.status))
logger.error(e.message)
logger.error(str(e))
return
finally:
return response
Expand Down Expand Up @@ -307,7 +308,7 @@ def request(self):
except Exception as e:
self.exceptions.append(e)
logger.error('%s %s %s' % (self.http_method, service, self.status))
logger.error(e.message)
logger.error(str(e))
return
finally:
return response
Expand Down Expand Up @@ -369,6 +370,6 @@ def request(self):
except Exception as e:
self.exceptions.append(e)
logger.error('%s %s %s' % (self.http_method, service, self.status))
logger.error(e.message)
logger.error(str(e))
finally:
return response
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# Local library imports
from .commons import OAuthRequest


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@

.. moduleauthor:: Aaron Caffrey <acaffrey@salesforce.com>
"""
from __future__ import absolute_import

# Local library imports
from .. import commons
from . import llm

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@

.. moduleauthor:: Aaron Caffrey <acaffrey@salesforce.com>
"""
from __future__ import absolute_import

# Local library imports
from .. import commons
from . import embeddings
from . import prompt
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@

.. moduleauthor:: Aaron Caffrey <acaffrey@salesforce.com>
"""
from __future__ import absolute_import

# Local library imports
from .. import commons

EMBEDDINGS_SERVICE = "/services/data/v%s/einstein/llm/embeddings"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@

.. moduleauthor:: Aaron Caffrey <acaffrey@salesforce.com>
"""
from __future__ import absolute_import

# Local library imports
from .. import commons

GENERATIONS_SERVICE = "/services/data/v%s/einstein/llm/prompt/generations"
Expand Down
2 changes: 1 addition & 1 deletion SalesforcePy/jobs.py → src/salesforcepy/jobs.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
.. moduleauthor:: Aaron Caffrey <acaffrey@salesforce.com>

"""
from __future__ import absolute_import
# Local library imports
from . import commons

BATCHES_URI = '/services/data/v%s/jobs/ingest/%s/batches'
Expand Down
26 changes: 12 additions & 14 deletions SalesforcePy/sfdc.py → src/salesforcepy/sfdc.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,26 +6,24 @@
Colin Cheevers <ccheevers@salesforce.com>, Tania Prince <tania.prince@salesforce.com>

"""
from __future__ import absolute_import
# Built-in imports
import json
import logging
import re
import time
from urllib.parse import urlencode

# Third-party imports
import requests

# Local library imports
from . import chatter
from . import commons
from . import device_flow
from . import einstein
from . import jobs
from . import wave

import json
import logging
import re
import requests
import time

try:
from urllib.parse import urlencode
except ImportError:
from urllib import urlencode

DEFAULT_API_VERSION = commons.DEFAULT_API_VERSION
SOBJ_SERVICE = '/services/data/v%s/sobjects%s'
REVOKE_SERVICE = '/services/oauth2/revoke'
Expand Down Expand Up @@ -97,7 +95,7 @@ def __init__(self, *args, **kwargs):
- `*login_url` (`string`) - Salesforce login URL.
- `*client_id` (`string`) - Salesforce client ID.
- `*client_secret` (`string`) - Salesforce client secret.
- `\**kwargs` - kwargs (see below)
- `**kwargs` - kwargs (see below)

:Keyword Arguments:
* *protocol* (`string`) --
Expand Down Expand Up @@ -1142,7 +1140,7 @@ def client(username, password, client_id=None, client_secret=None, **kwargs):
Salesforce client ID.
`*client_secret` (`string`)
Salesforce client secret.
`\**kwargs`
`**kwargs`
kwargs (see below)

:Keyword Arguments:
Expand Down
2 changes: 1 addition & 1 deletion SalesforcePy/wave.py → src/salesforcepy/wave.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

"""

from __future__ import absolute_import
# Local library imports
from . import commons


Expand Down
2 changes: 1 addition & 1 deletion tests/test_api_version.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import testutil
import responses
import SalesforcePy.sfdc as sfdc
import salesforcepy.sfdc as sfdc


@responses.activate
Expand Down
2 changes: 1 addition & 1 deletion tests/test_client.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import pytest
import responses

import SalesforcePy as sfdc
import salesforcepy as sfdc
import testutil


Expand Down
2 changes: 1 addition & 1 deletion tests/test_login.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import SalesforcePy as sfdc
import salesforcepy as sfdc
import testutil
import responses
import logging
Expand Down
Loading