From 3a2d52a51c3852461efd0279a8654eb65bb64b98 Mon Sep 17 00:00:00 2001
From: Jakub Ramatowski <jramatowski@splunk.com>
Date: Wed, 2 Apr 2025 13:42:37 +0200
Subject: [PATCH 1/3] Use relative imports for splunk-sdk

---
 splunklib/binding.py                       | 4 ++--
 splunklib/client.py                        | 8 ++++----
 splunklib/modularinput/event.py            | 2 +-
 splunklib/modularinput/event_writer.py     | 2 +-
 splunklib/searchcommands/search_command.py | 4 +---
 5 files changed, 9 insertions(+), 11 deletions(-)

diff --git a/splunklib/binding.py b/splunklib/binding.py
index 25a09948..c5f361b8 100644
--- a/splunklib/binding.py
+++ b/splunklib/binding.py
@@ -39,8 +39,8 @@
 from http import client
 from http.cookies import SimpleCookie
 from xml.etree.ElementTree import XML, ParseError
-from splunklib.data import record
-from splunklib import __version__
+from .data import record
+from . import __version__
 
 
 logger = logging.getLogger(__name__)
diff --git a/splunklib/client.py b/splunklib/client.py
index ee390c9e..c78ea88d 100644
--- a/splunklib/client.py
+++ b/splunklib/client.py
@@ -68,9 +68,9 @@
 from time import sleep
 from urllib import parse
 
-from splunklib import data
-from splunklib.data import record
-from splunklib.binding import (AuthenticationError, Context, HTTPError, UrlEncoded,
+from . import data
+from .data import record
+from .binding import (AuthenticationError, Context, HTTPError, UrlEncoded,
                                _encode, _make_cookie_header, _NoAuthenticationToken,
                                namespace)
 
@@ -3999,4 +3999,4 @@ def batch_save(self, *documents):
         data = json.dumps(documents)
 
         return json.loads(
-            self._post('batch_save', headers=KVStoreCollectionData.JSON_HEADER, body=data).body.read().decode('utf-8'))
\ No newline at end of file
+            self._post('batch_save', headers=KVStoreCollectionData.JSON_HEADER, body=data).body.read().decode('utf-8'))
diff --git a/splunklib/modularinput/event.py b/splunklib/modularinput/event.py
index 7ee7266a..bebd61e4 100644
--- a/splunklib/modularinput/event.py
+++ b/splunklib/modularinput/event.py
@@ -15,7 +15,7 @@
 from io import TextIOBase
 import xml.etree.ElementTree as ET
 
-from splunklib.utils import ensure_str
+from ..utils import ensure_str
 
 
 class Event:
diff --git a/splunklib/modularinput/event_writer.py b/splunklib/modularinput/event_writer.py
index 7be3845a..7ea37ca8 100644
--- a/splunklib/modularinput/event_writer.py
+++ b/splunklib/modularinput/event_writer.py
@@ -15,7 +15,7 @@
 import sys
 import traceback
 
-from splunklib.utils import ensure_str
+from ..utils import ensure_str
 from .event import ET
 
 
diff --git a/splunklib/searchcommands/search_command.py b/splunklib/searchcommands/search_command.py
index 7e8f771e..e66f70c3 100644
--- a/splunklib/searchcommands/search_command.py
+++ b/splunklib/searchcommands/search_command.py
@@ -34,11 +34,8 @@
 from urllib.parse import urlsplit
 from warnings import warn
 from xml.etree import ElementTree
-from splunklib.utils import ensure_str
-
 
 # Relative imports
-import splunklib
 from . import Boolean, Option, environment
 from .internals import (
     CommandLineParser,
@@ -53,6 +50,7 @@
     RecordWriterV2,
     json_encode_string)
 from ..client import Service
+from ..utils import ensure_str
 
 
 # ----------------------------------------------------------------------------------------------------------------------

From e2c5eddaee95e22244a9d977152f7cd70337af76 Mon Sep 17 00:00:00 2001
From: Jakub Ramatowski <jramatowski@splunk.com>
Date: Wed, 2 Apr 2025 15:11:01 +0200
Subject: [PATCH 2/3] Revert "Use relative imports for splunk-sdk"

This reverts commit 0e2381e2fa6dbed35bdb838c43cd473c4382a86f.
---
 splunklib/binding.py                       | 4 ++--
 splunklib/client.py                        | 8 ++++----
 splunklib/modularinput/event.py            | 2 +-
 splunklib/modularinput/event_writer.py     | 2 +-
 splunklib/searchcommands/search_command.py | 4 +++-
 5 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/splunklib/binding.py b/splunklib/binding.py
index c5f361b8..25a09948 100644
--- a/splunklib/binding.py
+++ b/splunklib/binding.py
@@ -39,8 +39,8 @@
 from http import client
 from http.cookies import SimpleCookie
 from xml.etree.ElementTree import XML, ParseError
-from .data import record
-from . import __version__
+from splunklib.data import record
+from splunklib import __version__
 
 
 logger = logging.getLogger(__name__)
diff --git a/splunklib/client.py b/splunklib/client.py
index c78ea88d..ee390c9e 100644
--- a/splunklib/client.py
+++ b/splunklib/client.py
@@ -68,9 +68,9 @@
 from time import sleep
 from urllib import parse
 
-from . import data
-from .data import record
-from .binding import (AuthenticationError, Context, HTTPError, UrlEncoded,
+from splunklib import data
+from splunklib.data import record
+from splunklib.binding import (AuthenticationError, Context, HTTPError, UrlEncoded,
                                _encode, _make_cookie_header, _NoAuthenticationToken,
                                namespace)
 
@@ -3999,4 +3999,4 @@ def batch_save(self, *documents):
         data = json.dumps(documents)
 
         return json.loads(
-            self._post('batch_save', headers=KVStoreCollectionData.JSON_HEADER, body=data).body.read().decode('utf-8'))
+            self._post('batch_save', headers=KVStoreCollectionData.JSON_HEADER, body=data).body.read().decode('utf-8'))
\ No newline at end of file
diff --git a/splunklib/modularinput/event.py b/splunklib/modularinput/event.py
index bebd61e4..7ee7266a 100644
--- a/splunklib/modularinput/event.py
+++ b/splunklib/modularinput/event.py
@@ -15,7 +15,7 @@
 from io import TextIOBase
 import xml.etree.ElementTree as ET
 
-from ..utils import ensure_str
+from splunklib.utils import ensure_str
 
 
 class Event:
diff --git a/splunklib/modularinput/event_writer.py b/splunklib/modularinput/event_writer.py
index 7ea37ca8..7be3845a 100644
--- a/splunklib/modularinput/event_writer.py
+++ b/splunklib/modularinput/event_writer.py
@@ -15,7 +15,7 @@
 import sys
 import traceback
 
-from ..utils import ensure_str
+from splunklib.utils import ensure_str
 from .event import ET
 
 
diff --git a/splunklib/searchcommands/search_command.py b/splunklib/searchcommands/search_command.py
index e66f70c3..7e8f771e 100644
--- a/splunklib/searchcommands/search_command.py
+++ b/splunklib/searchcommands/search_command.py
@@ -34,8 +34,11 @@
 from urllib.parse import urlsplit
 from warnings import warn
 from xml.etree import ElementTree
+from splunklib.utils import ensure_str
+
 
 # Relative imports
+import splunklib
 from . import Boolean, Option, environment
 from .internals import (
     CommandLineParser,
@@ -50,7 +53,6 @@
     RecordWriterV2,
     json_encode_string)
 from ..client import Service
-from ..utils import ensure_str
 
 
 # ----------------------------------------------------------------------------------------------------------------------

From e3f45b6a74d3b71ad6cf693f94496924160983f9 Mon Sep 17 00:00:00 2001
From: Jakub Ramatowski <jramatowski@splunk.com>
Date: Wed, 2 Apr 2025 13:42:37 +0200
Subject: [PATCH 3/3] Use relative imports for splunk-sdk

---
 splunklib/binding.py                       | 4 ++--
 splunklib/client.py                        | 8 ++++----
 splunklib/modularinput/event.py            | 2 +-
 splunklib/modularinput/event_writer.py     | 2 +-
 splunklib/searchcommands/search_command.py | 4 +---
 5 files changed, 9 insertions(+), 11 deletions(-)

diff --git a/splunklib/binding.py b/splunklib/binding.py
index 25a09948..c5f361b8 100644
--- a/splunklib/binding.py
+++ b/splunklib/binding.py
@@ -39,8 +39,8 @@
 from http import client
 from http.cookies import SimpleCookie
 from xml.etree.ElementTree import XML, ParseError
-from splunklib.data import record
-from splunklib import __version__
+from .data import record
+from . import __version__
 
 
 logger = logging.getLogger(__name__)
diff --git a/splunklib/client.py b/splunklib/client.py
index ee390c9e..c78ea88d 100644
--- a/splunklib/client.py
+++ b/splunklib/client.py
@@ -68,9 +68,9 @@
 from time import sleep
 from urllib import parse
 
-from splunklib import data
-from splunklib.data import record
-from splunklib.binding import (AuthenticationError, Context, HTTPError, UrlEncoded,
+from . import data
+from .data import record
+from .binding import (AuthenticationError, Context, HTTPError, UrlEncoded,
                                _encode, _make_cookie_header, _NoAuthenticationToken,
                                namespace)
 
@@ -3999,4 +3999,4 @@ def batch_save(self, *documents):
         data = json.dumps(documents)
 
         return json.loads(
-            self._post('batch_save', headers=KVStoreCollectionData.JSON_HEADER, body=data).body.read().decode('utf-8'))
\ No newline at end of file
+            self._post('batch_save', headers=KVStoreCollectionData.JSON_HEADER, body=data).body.read().decode('utf-8'))
diff --git a/splunklib/modularinput/event.py b/splunklib/modularinput/event.py
index 7ee7266a..bebd61e4 100644
--- a/splunklib/modularinput/event.py
+++ b/splunklib/modularinput/event.py
@@ -15,7 +15,7 @@
 from io import TextIOBase
 import xml.etree.ElementTree as ET
 
-from splunklib.utils import ensure_str
+from ..utils import ensure_str
 
 
 class Event:
diff --git a/splunklib/modularinput/event_writer.py b/splunklib/modularinput/event_writer.py
index 7be3845a..7ea37ca8 100644
--- a/splunklib/modularinput/event_writer.py
+++ b/splunklib/modularinput/event_writer.py
@@ -15,7 +15,7 @@
 import sys
 import traceback
 
-from splunklib.utils import ensure_str
+from ..utils import ensure_str
 from .event import ET
 
 
diff --git a/splunklib/searchcommands/search_command.py b/splunklib/searchcommands/search_command.py
index 7e8f771e..e66f70c3 100644
--- a/splunklib/searchcommands/search_command.py
+++ b/splunklib/searchcommands/search_command.py
@@ -34,11 +34,8 @@
 from urllib.parse import urlsplit
 from warnings import warn
 from xml.etree import ElementTree
-from splunklib.utils import ensure_str
-
 
 # Relative imports
-import splunklib
 from . import Boolean, Option, environment
 from .internals import (
     CommandLineParser,
@@ -53,6 +50,7 @@
     RecordWriterV2,
     json_encode_string)
 from ..client import Service
+from ..utils import ensure_str
 
 
 # ----------------------------------------------------------------------------------------------------------------------