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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 11 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
24.4.6
------
- Regenerate code with latest RAML specifications, bringing the SDK up to date
again with new features released by commercetools.
- Remove ML client as sunsetted
- *BREAKING*: the SDK now returns `None` instead of raising an exception when
a resource is not found.
- *BREAKING*: the `scope` parameter in the `Client` class is now required.
- *BREAKING*: the old `commercetools.services.*` is removed, use the
- `commercetools.platform.*` instead. See release notes for `14.0.0`

23.6.29
--------
- Regenerate code with latest RAML specifications, bringing the SDK up to date
Expand Down
22 changes: 16 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,22 @@
install:
pip install -e .[test]

generate:
java -jar ../rmf-codegen/rmf-codegen.jar generate ../commercetools-api-reference/api-specs/api/api.raml -o src/commercetools/platform/ -t PYTHON_CLIENT
java -jar ../rmf-codegen/rmf-codegen.jar generate ../commercetools-api-reference/api-specs/importapi/api.raml -o src/commercetools/importapi/ -t PYTHON_CLIENT
java -jar ../rmf-codegen/rmf-codegen.jar generate ../commercetools-api-reference/api-specs/ml/api.raml -o src/commercetools/ml/ -t PYTHON_CLIENT
java -jar ../rmf-codegen/rmf-codegen.jar generate ../commercetools-api-reference/api-specs/frontend-api/api.raml -o src/commercetools/frontend/ -t PYTHON_CLIENT
java -jar ../rmf-codegen/rmf-codegen.jar generate ../commercetools-api-reference/api-specs/checkout/api.raml -o src/commercetools/checkout/ -t PYTHON_CLIENT
clean:
rm -rf src/commercetools/platform/
rm -rf src/commercetools/importapi/
rm -rf src/commercetools/frontend/
rm -rf src/commercetools/checkout/
rm -rf src/commercetools/history/
rm -rf src/commercetools/connect/
rm -rf src/commercetools/ml/

generate: clean
java -jar ../rmf-codegen/rmf-codegen.jar generate -v ../commercetools-api-reference/api-specs/api/api.raml -o src/commercetools/platform/ -t PYTHON_CLIENT
java -jar ../rmf-codegen/rmf-codegen.jar generate -v ../commercetools-api-reference/api-specs/import/api.raml -o src/commercetools/importapi/ -t PYTHON_CLIENT
java -jar ../rmf-codegen/rmf-codegen.jar generate -v ../commercetools-api-reference/api-specs/frontend-api/api.raml -o src/commercetools/frontend/ -t PYTHON_CLIENT
java -jar ../rmf-codegen/rmf-codegen.jar generate -v ../commercetools-api-reference/api-specs/checkout/api.raml -o src/commercetools/checkout/ -t PYTHON_CLIENT
java -jar ../rmf-codegen/rmf-codegen.jar generate -v ../commercetools-api-reference/api-specs/history/api.raml -o src/commercetools/history/ -t PYTHON_CLIENT
java -jar ../rmf-codegen/rmf-codegen.jar generate -v ../commercetools-api-reference/api-specs/connect/api.raml -o src/commercetools/connect/ -t PYTHON_CLIENT
find src/ -name "gen.properties" -delete
isort src/commercetools/
black src/commercetools/
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ requires = ["setuptools>=40.6.0", "wheel"]
build-backend = "setuptools.build_meta"

[tool.coverage.paths]
source = ["src", ".tox/**/site-packages"]
source = ["src", ".tox/*/site-packages"]

[tool.isort]
line_length = 88
Expand Down
11 changes: 6 additions & 5 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,15 @@
"mock==4.0.3",
"pretend==1.0.9",
"coverage[toml]>=6.2",
"pytest-cov==3.0.0",
"pytest==7.0.1",
"pytest-cov==5.0.0",
"pytest==8.1.1",
# Linting
"isort==5.10.1",
"flake8==4.0.1",
"flake8-blind-except==0.2.0",
"flake8-debugger==4.0.0",
"flake8-imports==0.1.1",
"mypy==0.931",
"mypy==1.9.0",
]


Expand All @@ -44,7 +44,7 @@

setup(
name="commercetools",
version="2023.6.29",
version="2024.4.6",
description="SDK for Commercetools",
long_description=long_description,
author="Lab Digital B.V.",
Expand All @@ -68,7 +68,8 @@
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: Implementation :: CPython",
],
zip_safe=False,
Expand Down
3 changes: 1 addition & 2 deletions src/commercetools/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
from .client import Client
from .exceptions import CommercetoolsError
from .version import __version__

__all__ = ["Client", "CommercetoolsError"]
__all__ = ["CommercetoolsError"]
17 changes: 1 addition & 16 deletions src/commercetools/base_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
from commercetools.constants import HEADER_CORRELATION_ID
from commercetools.exceptions import CommercetoolsError
from commercetools.helpers import _concurrent_retry
from commercetools.services import ServicesMixin
from commercetools.utils import BaseTokenSaver, DefaultTokenSaver, fix_token_url
from commercetools.version import __version__

Expand All @@ -26,7 +25,6 @@ def refresh_token(self, token_url, **kwargs):
class BaseClient:
"""The Commercetools Client, used to interact with the Commercetools API.

:param project_key: the key for the project with which you want to interact
:param client_id: the oauth2 client id
:param client_secret: the oauth2 client secret
:param scope: the oauth2 scope. If None then 'manage_project:{project_key}'
Expand All @@ -42,7 +40,6 @@ class BaseClient:

def __init__(
self,
project_key: str = None,
client_id: str = None,
client_secret: str = None,
scope: typing.List[str] = None,
Expand All @@ -53,15 +50,14 @@ def __init__(
) -> None:
# Use environment variables as fallback
config = {
"project_key": project_key,
"client_id": client_id,
"client_secret": client_secret,
"url": url,
"token_url": token_url,
"scope": scope,
}
# Make sure we use the config vars
del project_key, client_id, client_secret, url, token_url, scope
del client_id, client_secret, url, token_url, scope

self._config = self._read_env_vars(config)
self._config["token_url"] = fix_token_url(self._config["token_url"])
Expand Down Expand Up @@ -193,9 +189,6 @@ def _create_exception(self, obj, response) -> CommercetoolsError:
return CommercetoolsError(obj.message, errors_raw, obj, correlation_id)

def _read_env_vars(self, config: dict) -> dict:
if not config.get("project_key"):
config["project_key"] = os.environ.get("CTP_PROJECT_KEY")

if not config.get("client_id"):
config["client_id"] = os.environ.get("CTP_CLIENT_ID")

Expand All @@ -212,8 +205,6 @@ def _read_env_vars(self, config: dict) -> dict:
config["scope"] = os.environ.get("CTP_SCOPES")
if config["scope"]:
config["scope"] = config["scope"].split(",")
else:
config["scope"] = ["manage_project:%s" % config["project_key"]]

for key, value in config.items():
if value is None:
Expand All @@ -231,9 +222,3 @@ def _get_user_agent(self):
sys.platform,
arch,
)


class Client(BaseClient, ServicesMixin):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self._base_url = f"{self._config['url']}/{self._config['project_key']}/"
14 changes: 0 additions & 14 deletions src/commercetools/checkout/client/__init__.py

This file was deleted.

Loading