diff --git a/remotespark/RemoteSparkMagics.py b/remotespark/RemoteSparkMagics.py
index 361b91b..5271de0 100644
--- a/remotespark/RemoteSparkMagics.py
+++ b/remotespark/RemoteSparkMagics.py
@@ -55,30 +55,40 @@ class RemoteSparkMagics(Magics):
                                              Constants.context_name_sql,
                                              Constants.context_name_hive,
                                              Constants.context_name_spark))
-    @argument("-e", "--endpoint", help="The name of the Livy endpoint to use. "
-                                       "If only one endpoint has been created, there's no need to specify one.")
+    @argument("-s", "--session", help="The name of the Livy session to use. "
+                                       "If only one session has been created, there's no need to specify one.")
     @argument("-t", "--chart", type=str, default="area", help='Chart type to use: table, area, line, bar.')
     @argument("command", type=str, default=[""], nargs="*", help="Commands to execute.")
     @line_cell_magic
     def spark(self, line, cell=""):
-        """Magic to execute spark remotely.           
-           If invoked with no subcommand, the code will be executed against the specified endpoint.
+        """Magic to execute spark remotely.
+
+           This magic allows you to create a Livy Scala or Python session against a Livy endpoint. Every session can
+           be used to execute either Spark code or SparkSQL code by executing against the SQL context in the session.
+           When the SQL context is used, the result will be a Pandas dataframe of a sample of the results.
+
+           If invoked with no subcommand, the cell will be executed against the specified session.
            Subcommands
            -----------
            info
-               Display the mode and available Livy endpoints.
+               Display the mode and available Livy sessions.
            add
-               Add a Livy endpoint. First argument is the friendly name of the endpoint, second argument
-               is the language, and third argument is the connection string. A fourth argument specifying if
-               endpoint can be skipped if already present is optional: "skip" or empty.
+               Add a Livy session. First argument is the name of the session, second argument
+               is the language, and third argument is the connection string of the Livy endpoint.
+               A fourth argument specifying if session creation can be skipped if it already exists is optional:
+               "skip" or empty.
                e.g. `%%spark add test python url=https://sparkcluster.example.net/livy;username=admin;password=MyPassword skip`
                or
                e.g. `%%spark add test python url=https://sparkcluster.example.net/livy;username=admin;password=MyPassword`
+           run
+               Run Spark code against a session.
+               e.g. `%%spark -e testsession` will execute the cell code against the testsession previously created
+               e.g. `%%spark -e testsession -c sql` will execute the SQL code against the testsession previously created
            delete
-               Delete a Livy endpoint. Argument is the friendly name of the endpoint to be deleted.
+               Delete a Livy session. Argument is the name of the session to be deleted.
                e.g. `%%spark delete defaultlivy`
            cleanup
-               Delete all Livy endpoints. No arguments required.
+               Delete all Livy sessions created by the notebook. No arguments required.
                e.g. `%%spark cleanup`
         """
         usage = "Please look at usage of %spark by executing `%spark?`."
@@ -102,13 +112,13 @@ class RemoteSparkMagics(Magics):
                 skip = args.command[4].lower() == "skip"
             else:
                 skip = False
-            self.spark_controller.add_endpoint(name, language, connection_string, skip)
+            self.spark_controller.add_session(name, language, connection_string, skip)
         # delete
         elif subcommand == "delete":
             if len(args.command) != 2:
                 raise ValueError("Subcommand 'delete' requires an argument. {}".format(usage))
             name = args.command[1].lower()
-            self.spark_controller.delete_endpoint(name)
+            self.spark_controller.delete_session(name)
         # cleanup 
         elif subcommand == "cleanup":
             self.spark_controller.cleanup()
@@ -116,7 +126,7 @@ class RemoteSparkMagics(Magics):
         elif len(subcommand) == 0:
             if args.context == Constants.context_name_spark:
                 (success, out) = self.spark_controller.run_cell(cell,
-                                                                args.endpoint)
+                                                                args.session)
                 if success:
                     self.ipython.write(out)
                 else:
@@ -124,13 +134,13 @@ class RemoteSparkMagics(Magics):
             elif args.context == Constants.context_name_sql:
                 try:
                     return self.spark_controller.run_cell_sql(cell,
-                                                              args.endpoint)
+                                                              args.session)
                 except DataFrameParseException as e:
                     self.ipython.write_err(e.out)
             elif args.context == Constants.context_name_hive:
                 try:
                     return self.spark_controller.run_cell_hive(cell,
-                                                              args.endpoint)
+                                                              args.session)
                 except DataFrameParseException as e:
                     self.ipython.write_err(e.out)
             else:
diff --git a/remotespark/livyclientlib/clientmanager.py b/remotespark/livyclientlib/clientmanager.py
index d6466ae..e253735 100644
--- a/remotespark/livyclientlib/clientmanager.py
+++ b/remotespark/livyclientlib/clientmanager.py
@@ -41,12 +41,12 @@ class ClientManager(object):
     def _serialize_state(self):
         self._serializer.serialize_state(self._livy_clients)
 
-    def get_endpoints_list(self):
+    def get_sessions_list(self):
         return list(self._livy_clients.keys())
 
     def add_client(self, name, livy_client):
-        if name in self.get_endpoints_list():
-            raise ValueError("Endpoint with name '{}' already exists. Please delete the endpoint"
+        if name in self.get_sessions_list():
+            raise ValueError("Session with name '{}' already exists. Please delete the session"
                              " first if you intend to replace it.".format(name))
 
         self._livy_clients[name] = livy_client
@@ -54,34 +54,34 @@ class ClientManager(object):
     def get_any_client(self):
         number_of_sessions = len(self._livy_clients)
         if number_of_sessions == 1:
-            key = self.get_endpoints_list()[0]
+            key = self.get_sessions_list()[0]
             return self._livy_clients[key]
         elif number_of_sessions == 0:
             raise AssertionError("You need to have at least 1 client created to execute commands.")
         else:
-            raise AssertionError("Please specify the client to use. Possible endpoints are {}".format(
-                self.get_endpoints_list()))
+            raise AssertionError("Please specify the client to use. Possible sessions are {}".format(
+                self.get_sessions_list()))
         
     def get_client(self, name):
-        if name in self.get_endpoints_list():
+        if name in self.get_sessions_list():
             return self._livy_clients[name]
-        raise ValueError("Could not find '{}' endpoint in list of saved endpoints. Possible endpoints are {}".format(
-            name, self.get_endpoints_list()))
+        raise ValueError("Could not find '{}' session in list of saved sessions. Possible sessions are {}".format(
+            name, self.get_sessions_list()))
 
     def delete_client(self, name):
-        self._remove_endpoint(name)
+        self._remove_session(name)
     
     def clean_up_all(self):
-        for name in self.get_endpoints_list():
-            self._remove_endpoint(name)
+        for name in self.get_sessions_list():
+            self._remove_session(name)
 
         if self._serializer is not None:
             self._serialize_state()
 
-    def _remove_endpoint(self, name):
-        if name in self.get_endpoints_list():
+    def _remove_session(self, name):
+        if name in self.get_sessions_list():
             self._livy_clients[name].close_session()
             del self._livy_clients[name]
         else:
-            raise ValueError("Could not find '{}' endpoint in list of saved endpoints. Possible endpoints are {}"
-                             .format(name, self.get_endpoints_list()))
+            raise ValueError("Could not find '{}' session in list of saved sessions. Possible sessions are {}"
+                             .format(name, self.get_sessions_list()))
diff --git a/remotespark/livyclientlib/livyclient.py b/remotespark/livyclientlib/livyclient.py
index 87fb395..dedefbb 100644
--- a/remotespark/livyclientlib/livyclient.py
+++ b/remotespark/livyclientlib/livyclient.py
@@ -7,7 +7,7 @@ from .constants import Constants
 
 
 class LivyClient(object):
-    """Spark client for Livy endpoint"""
+    """Spark client for Livy session"""
 
     def __init__(self, session):
         self.logger = Log("LivyClient")
diff --git a/remotespark/livyclientlib/livyclientfactory.py b/remotespark/livyclientlib/livyclientfactory.py
index 85443b3..2b89045 100644
--- a/remotespark/livyclientlib/livyclientfactory.py
+++ b/remotespark/livyclientlib/livyclientfactory.py
@@ -11,7 +11,7 @@ from .linearretrypolicy import LinearRetryPolicy
 
 
 class LivyClientFactory(object):
-    """Spark client for Livy endpoint"""
+    """Spark client factory"""
 
     def __init__(self):
         self.logger = Log("LivyClientFactory")
diff --git a/remotespark/livyclientlib/pandaslivyclientbase.py b/remotespark/livyclientlib/pandaslivyclientbase.py
index 692c5d0..72852f1 100644
--- a/remotespark/livyclientlib/pandaslivyclientbase.py
+++ b/remotespark/livyclientlib/pandaslivyclientbase.py
@@ -5,7 +5,7 @@ from .livyclient import LivyClient
 from .dataframeparseexception import DataFrameParseException
 
 class PandasLivyClientBase(LivyClient):
-    """Spark client for Livy endpoint that produces pandas df for sql and hive commands."""
+    """Spark client for Livy session that produces pandas df for sql and hive commands."""
     def __init__(self, session, max_take_rows):
         super(PandasLivyClientBase, self).__init__(session)
         self.max_take_rows = max_take_rows
diff --git a/remotespark/livyclientlib/pandaspysparklivyclient.py b/remotespark/livyclientlib/pandaspysparklivyclient.py
index edf6abb..81c5123 100644
--- a/remotespark/livyclientlib/pandaspysparklivyclient.py
+++ b/remotespark/livyclientlib/pandaspysparklivyclient.py
@@ -7,7 +7,7 @@ import json
 from .pandaslivyclientbase import PandasLivyClientBase
 
 class PandasPysparkLivyClient(PandasLivyClientBase):
-    """Spark client for Livy endpoint in PySpark"""
+    """Spark client for Livy session in PySpark"""
 
     def __init__(self, session, max_take_rows):
         super(PandasPysparkLivyClient, self).__init__(session, max_take_rows)
diff --git a/remotespark/livyclientlib/pandasscalalivyclient.py b/remotespark/livyclientlib/pandasscalalivyclient.py
index 5b9e031..8bb1ea8 100644
--- a/remotespark/livyclientlib/pandasscalalivyclient.py
+++ b/remotespark/livyclientlib/pandasscalalivyclient.py
@@ -8,7 +8,7 @@ import re
 from .pandaslivyclientbase import PandasLivyClientBase
 
 class PandasScalaLivyClient(PandasLivyClientBase):
-    """Spark client for Livy endpoint in Scala"""
+    """Spark client for Livy session in Scala"""
     def __init__(self, session, max_take_rows):
         super(PandasScalaLivyClient, self).__init__(session, max_take_rows)
 
diff --git a/remotespark/livyclientlib/sparkcontroller.py b/remotespark/livyclientlib/sparkcontroller.py
index 4ab4dd2..d736011 100644
--- a/remotespark/livyclientlib/sparkcontroller.py
+++ b/remotespark/livyclientlib/sparkcontroller.py
@@ -1,6 +1,3 @@
-"""Runs Scala, PySpark and SQL statement through Spark using a REST endpoint in remote cluster.
-Provides the %spark magic."""
-
 # Copyright (c) 2015  aggftw@gmail.com
 # Distributed under the terms of the Modified BSD License.
 
@@ -38,12 +35,12 @@ class SparkController(object):
     def cleanup(self):
         self.client_manager.clean_up_all()
 
-    def delete_endpoint(self, name):
+    def delete_session(self, name):
         self.client_manager.delete_client(name)
 
-    def add_endpoint(self, name, language, connection_string, skip_if_exists):
-        if skip_if_exists and (name in self.client_manager.get_endpoints_list()):
-            self.logger.debug("Skipping {} because it already exists in list of endpoints.".format(name))
+    def add_session(self, name, language, connection_string, skip_if_exists):
+        if skip_if_exists and (name in self.client_manager.get_sessions_list()):
+            self.logger.debug("Skipping {} because it already exists in list of sessions.".format(name))
             return
 
         session = self.client_factory.create_session(language, connection_string, "-1", False)
@@ -52,7 +49,7 @@ class SparkController(object):
         self.client_manager.add_client(name, livy_client)
 
     def get_client_keys(self):
-        return self.client_manager.get_endpoints_list()
+        return self.client_manager.get_sessions_list()
 
     def get_client_by_name_or_default(self, client_name):
         if client_name is None:
diff --git a/remotespark/sparkkernelbase.py b/remotespark/sparkkernelbase.py
index b842b76..d8074f7 100644
--- a/remotespark/sparkkernelbase.py
+++ b/remotespark/sparkkernelbase.py
@@ -81,11 +81,11 @@ class SparkKernelBase(IPythonKernel):
 
         self.already_ran_once = True
 
-        add_endpoint_code = "%spark add {} {} {} skip".format(
+        add_session_code = "%spark add {} {} {} skip".format(
             self.client_name, self.session_language, connection_string)
-        self._execute_cell(add_endpoint_code, True, False, shutdown_if_error=True,
+        self._execute_cell(add_session_code, True, False, shutdown_if_error=True,
                            log_if_error="Failed to create a Livy session.")
-        self.logger.debug("Added endpoint.")
+        self.logger.debug("Added session.")
 
     def _get_configuration(self):
         try:

Rename --endpoint param to magics to --session
Make -e be -s
diff --git a/tests/test_clientmanager.py b/tests/test_clientmanager.py
index 3376082..b1ef425 100644
--- a/tests/test_clientmanager.py
+++ b/tests/test_clientmanager.py
@@ -18,13 +18,13 @@ def test_deserialize_on_creation():
     serializer.deserialize_state.return_value = [("py", None), ("sc", None)]
     manager = ClientManager(serializer)
 
-    assert "py" in manager.get_endpoints_list()
-    assert "sc" in manager.get_endpoints_list()
+    assert "py" in manager.get_sessions_list()
+    assert "sc" in manager.get_sessions_list()
 
     serializer = MagicMock()
     manager = ClientManager(serializer)
 
-    assert len(manager.get_endpoints_list()) == 0
+    assert len(manager.get_sessions_list()) == 0
 
 
 def test_serialize_periodically():
@@ -82,7 +82,7 @@ def test_client_names_returned():
     manager.add_client("name0", client)
     manager.add_client("name1", client)
 
-    assert_equals({"name0", "name1"}, set(manager.get_endpoints_list()))
+    assert_equals({"name0", "name1"}, set(manager.get_sessions_list()))
 
 
 def test_get_any_client():
diff --git a/tests/test_remotesparkmagics.py b/tests/test_remotesparkmagics.py
index 363849f..22a70b4 100644
--- a/tests/test_remotesparkmagics.py
+++ b/tests/test_remotesparkmagics.py
@@ -32,10 +32,10 @@ def test_info_command_parses():
 
 
 @with_setup(_setup, _teardown)
-def test_add_endpoint_command_parses():
+def test_add_sessions_command_parses():
     # Do not skip
-    add_endpoint_mock = MagicMock()
-    spark_controller.add_endpoint = add_endpoint_mock
+    add_sessions_mock = MagicMock()
+    spark_controller.add_session = add_sessions_mock
     command = "add"
     name = "name"
     language = "python"
@@ -44,11 +44,11 @@ def test_add_endpoint_command_parses():
 
     magic.spark(line)
 
-    add_endpoint_mock.assert_called_once_with(name, language, connection_string, False)
+    add_sessions_mock.assert_called_once_with(name, language, connection_string, False)
 
     # Skip
-    add_endpoint_mock = MagicMock()
-    spark_controller.add_endpoint = add_endpoint_mock
+    add_sessions_mock = MagicMock()
+    spark_controller.add_session = add_sessions_mock
     command = "add"
     name = "name"
     language = "python"
@@ -57,13 +57,13 @@ def test_add_endpoint_command_parses():
 
     magic.spark(line)
 
-    add_endpoint_mock.assert_called_once_with(name, language, connection_string, True)
+    add_sessions_mock.assert_called_once_with(name, language, connection_string, True)
 
 
 @with_setup(_setup, _teardown)
-def test_delete_endpoint_command_parses():
+def test_delete_sessions_command_parses():
     mock_method = MagicMock()
-    spark_controller.delete_endpoint = mock_method
+    spark_controller.delete_session = mock_method
     command = "delete"
     name = "name"
     line = " ".join([command, name])
@@ -98,8 +98,8 @@ def test_run_cell_command_parses():
     run_cell_method.return_value = (True, "")
     spark_controller.run_cell = run_cell_method
 
-    command = "-e"
-    name = "endpoint_name"
+    command = "-s"
+    name = "sessions_name"
     line = " ".join([command, name])
     cell = "cell code"
 
diff --git a/tests/test_sparkcontroller.py b/tests/test_sparkcontroller.py
index 9dea184..4a20537 100644
--- a/tests/test_sparkcontroller.py
+++ b/tests/test_sparkcontroller.py
@@ -25,7 +25,7 @@ def _teardown():
 
 
 @with_setup(_setup, _teardown)
-def test_add_endpoint():
+def test_add_session():
     name = "name"
     language = "python"
     connection_string = "url=http://location:port;username=name;password=word"
@@ -34,7 +34,7 @@ def test_add_endpoint():
     client_factory.create_session = MagicMock(return_value=session)
     client_factory.build_client = MagicMock(return_value=client)
 
-    controller.add_endpoint(name, language, connection_string, False)
+    controller.add_session(name, language, connection_string, False)
 
     client_factory.create_session.assert_called_once_with(language, connection_string, "-1", False)
     client_factory.build_client.assert_called_once_with(language, session)
@@ -43,7 +43,7 @@ def test_add_endpoint():
 
 
 @with_setup(_setup, _teardown)
-def test_add_endpoint_skip():
+def test_add_session_skip():
     name = "name"
     language = "python"
     connection_string = "url=http://location:port;username=name;password=word"
@@ -52,8 +52,8 @@ def test_add_endpoint_skip():
     client_factory.create_session = MagicMock(return_value=session)
     client_factory.build_client = MagicMock(return_value=client)
 
-    client_manager.get_endpoints_list.return_value = [name]
-    controller.add_endpoint(name, language, connection_string, True)
+    client_manager.get_sessions_list.return_value = [name]
+    controller.add_session(name, language, connection_string, True)
 
     assert client_factory.create_session.call_count == 0
     assert client_factory.build_client.call_count == 0
@@ -62,10 +62,10 @@ def test_add_endpoint_skip():
 
 
 @with_setup(_setup, _teardown)
-def test_delete_endpoint():
+def test_delete_session():
     name = "name"
 
-    controller.delete_endpoint(name)
+    controller.delete_session(name)
 
     client_manager.delete_client.assert_called_once_with(name)
 
@@ -83,7 +83,7 @@ def test_run_cell():
     default_client.execute = chosen_client.execute = MagicMock(return_value=(True,""))
     client_manager.get_any_client = MagicMock(return_value=default_client)
     client_manager.get_client = MagicMock(return_value=chosen_client)
-    name = "endpoint_name"
+    name = "session_name"
     cell = "cell code"
 
     controller.run_cell(cell, name)
@@ -107,4 +107,4 @@ def test_run_cell():
 @with_setup(_setup, _teardown)
 def test_get_client_keys():
     controller.get_client_keys()
-    client_manager.get_endpoints_list.assert_called_once_with()
+    client_manager.get_sessions_list.assert_called_once_with()

pip install -e .
parse_log_pytest
requirements.txt
pytest
mkdir ~/.sparkmagic cp remotespark/default_config.json ~/.sparkmagic/config.json
3.9
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
anyio==4.9.0
argon2-cffi==23.1.0
argon2-cffi-bindings==21.2.0
arrow==1.3.0
async-lru==2.0.5
attrs==25.3.0
babel==2.17.0
beautifulsoup4==4.13.3
bleach==6.2.0
certifi==2025.1.31
cffi==1.17.1
charset-normalizer==3.4.1
comm==0.2.2
decorator==5.2.1
defusedxml==0.7.1
exceptiongroup==1.2.2
fastjsonschema==2.21.1
fqdn==1.5.1
h11==0.14.0
httpcore==1.0.7
httpx==0.28.1
idna==3.10
importlib_metadata==8.6.1
iniconfig==2.1.0
ipykernel==4.1.1
ipython==4.0.0
ipython-genutils==0.2.0
ipywidgets==7.8.5
isoduration==20.11.0
Jinja2==3.1.6
json5==0.10.0
jsonpointer==3.0.0
jsonschema==4.23.0
jsonschema-specifications==2024.10.1
jupyter-events==0.12.0
jupyter-lsp==2.2.5
jupyter_client==8.6.3
jupyter_core==5.7.2
jupyter_server==2.15.0
jupyter_server_terminals==0.5.3
jupyterlab==4.1.5
jupyterlab_pygments==0.3.0
jupyterlab_server==2.27.3
jupyterlab_widgets==1.1.11
MarkupSafe==3.0.2
mistune==3.1.3
mock==5.2.0
narwhals==1.32.0
nbclient==0.10.2
nbconvert==7.16.6
nbformat==5.10.4
nose==1.3.7
notebook==7.1.3
notebook_shim==0.2.4
numpy==2.0.2
overrides==7.7.0
packaging==24.2
pandas==2.2.3
pandocfilters==1.5.1
pexpect==4.9.0
pickleshare==0.7.5
platformdirs==4.3.7
plotly==6.0.1
pluggy==1.5.0
prometheus_client==0.21.1
ptyprocess==0.7.0
pycparser==2.22
Pygments==2.19.1
pytest==8.3.5
python-dateutil==2.9.0.post0
python-json-logger==3.3.0
pytz==2025.2
PyYAML==6.0.2
pyzmq==26.3.0
referencing==0.36.2
-e git+https://github.com/jupyter-incubator/sparkmagic.git@d9662c5c5b089976810dfe863437d86ae72ccf82#egg=remotespark
requests==2.32.3
rfc3339-validator==0.1.4
rfc3986-validator==0.1.1
rpds-py==0.24.0
Send2Trash==1.8.3
simplegeneric==0.8.1
six==1.17.0
sniffio==1.3.1
soupsieve==2.6
terminado==0.18.1
tinycss2==1.4.0
tomli==2.2.1
tornado==6.4.2
traitlets==5.14.3
types-python-dateutil==2.9.0.20241206
typing_extensions==4.13.0
tzdata==2025.2
uri-template==1.3.0
urllib3==2.3.0
webcolors==24.11.1
webencodings==0.5.1
websocket-client==1.8.0
widgetsnbextension==3.6.10
zipp==3.21.0

name: sparkmagic
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - anyio==4.9.0
      - argon2-cffi==23.1.0
      - argon2-cffi-bindings==21.2.0
      - arrow==1.3.0
      - async-lru==2.0.5
      - attrs==25.3.0
      - babel==2.17.0
      - beautifulsoup4==4.13.3
      - bleach==6.2.0
      - certifi==2025.1.31
      - cffi==1.17.1
      - charset-normalizer==3.4.1
      - comm==0.2.2
      - decorator==5.2.1
      - defusedxml==0.7.1
      - exceptiongroup==1.2.2
      - fastjsonschema==2.21.1
      - fqdn==1.5.1
      - h11==0.14.0
      - httpcore==1.0.7
      - httpx==0.28.1
      - idna==3.10
      - importlib-metadata==8.6.1
      - iniconfig==2.1.0
      - ipykernel==4.1.1
      - ipython==4.0.0
      - ipython-genutils==0.2.0
      - ipywidgets==7.8.5
      - isoduration==20.11.0
      - jinja2==3.1.6
      - json5==0.10.0
      - jsonpointer==3.0.0
      - jsonschema==4.23.0
      - jsonschema-specifications==2024.10.1
      - jupyter-client==8.6.3
      - jupyter-core==5.7.2
      - jupyter-events==0.12.0
      - jupyter-lsp==2.2.5
      - jupyter-server==2.15.0
      - jupyter-server-terminals==0.5.3
      - jupyterlab==4.1.5
      - jupyterlab-pygments==0.3.0
      - jupyterlab-server==2.27.3
      - jupyterlab-widgets==1.1.11
      - markupsafe==3.0.2
      - mistune==3.1.3
      - mock==5.2.0
      - narwhals==1.32.0
      - nbclient==0.10.2
      - nbconvert==7.16.6
      - nbformat==5.10.4
      - nose==1.3.7
      - notebook==7.1.3
      - notebook-shim==0.2.4
      - numpy==2.0.2
      - overrides==7.7.0
      - packaging==24.2
      - pandas==2.2.3
      - pandocfilters==1.5.1
      - pexpect==4.9.0
      - pickleshare==0.7.5
      - platformdirs==4.3.7
      - plotly==6.0.1
      - pluggy==1.5.0
      - prometheus-client==0.21.1
      - ptyprocess==0.7.0
      - pycparser==2.22
      - pygments==2.19.1
      - pytest==8.3.5
      - python-dateutil==2.9.0.post0
      - python-json-logger==3.3.0
      - pytz==2025.2
      - pyyaml==6.0.2
      - pyzmq==26.3.0
      - referencing==0.36.2
      - requests==2.32.3
      - rfc3339-validator==0.1.4
      - rfc3986-validator==0.1.1
      - rpds-py==0.24.0
      - send2trash==1.8.3
      - simplegeneric==0.8.1
      - six==1.17.0
      - sniffio==1.3.1
      - soupsieve==2.6
      - terminado==0.18.1
      - tinycss2==1.4.0
      - tomli==2.2.1
      - tornado==6.4.2
      - traitlets==5.14.3
      - types-python-dateutil==2.9.0.20241206
      - typing-extensions==4.13.0
      - tzdata==2025.2
      - uri-template==1.3.0
      - urllib3==2.3.0
      - webcolors==24.11.1
      - webencodings==0.5.1
      - websocket-client==1.8.0
      - widgetsnbextension==3.6.10
      - zipp==3.21.0
prefix: /opt/conda/envs/sparkmagic

tests/test_clientmanager.py::test_deserialize_on_creation tests/test_clientmanager.py::test_client_names_returned
tests/test_remotesparkmagics.py::test_info_command_parses tests/test_remotesparkmagics.py::test_add_sessions_command_parses tests/test_remotesparkmagics.py::test_delete_sessions_command_parses tests/test_remotesparkmagics.py::test_cleanup_command_parses tests/test_remotesparkmagics.py::test_bad_command_throws_exception tests/test_remotesparkmagics.py::test_run_cell_command_parses tests/test_sparkcontroller.py::test_add_session tests/test_sparkcontroller.py::test_add_session_skip tests/test_sparkcontroller.py::test_delete_session tests/test_sparkcontroller.py::test_cleanup tests/test_sparkcontroller.py::test_run_cell tests/test_sparkcontroller.py::test_get_client_keys
tests/test_clientmanager.py::test_get_client_throws_when_client_not_exists tests/test_clientmanager.py::test_serialize_periodically tests/test_clientmanager.py::test_get_client tests/test_clientmanager.py::test_delete_client tests/test_clientmanager.py::test_delete_client_throws_when_client_not_exists tests/test_clientmanager.py::test_add_client_throws_when_client_exists tests/test_clientmanager.py::test_get_any_client tests/test_clientmanager.py::test_get_any_client_raises_exception_with_no_client tests/test_clientmanager.py::test_get_any_client_raises_exception_with_two_clients tests/test_clientmanager.py::test_clean_up tests/test_clientmanager.py::test_clean_up_serializer
remotespark/livyclientlib/pandasscalalivyclient.py remotespark/livyclientlib/clientmanager.py remotespark/livyclientlib/livyclient.py remotespark/livyclientlib/pandaspysparklivyclient.py remotespark/sparkkernelbase.py remotespark/livyclientlib/pandaslivyclientbase.py remotespark/livyclientlib/livyclientfactory.py remotespark/livyclientlib/sparkcontroller.py remotespark/RemoteSparkMagics.py
remotespark/livyclientlib/pandasscalalivyclient.py remotespark/livyclientlib/clientmanager.py remotespark/livyclientlib/livyclient.py remotespark/livyclientlib/pandaspysparklivyclient.py remotespark/sparkkernelbase.py remotespark/livyclientlib/pandaslivyclientbase.py remotespark/livyclientlib/livyclientfactory.py remotespark/livyclientlib/sparkcontroller.py remotespark/RemoteSparkMagics.py