Skip to content

Commit 9fda81f

Browse files
author
Ghislain Fourny
committed
Refactor to pass tests
1 parent 6a9fd5d commit 9fda81f

3 files changed

Lines changed: 22 additions & 2 deletions

File tree

src/jsoniq/session.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ def __getattr__(cls, item):
2020
class RumbleSession(object, metaclass=MetaRumbleSession):
2121
def __init__(self, spark_session: SparkSession):
2222
self._sparksession = spark_session
23+
self._sparksession.addArtifact(jar_path_str)
2324
self._jrumblesession = spark_session._jvm.org.rumbledb.api.Rumble(spark_session._jsparkSession)
2425

2526
class Builder:
@@ -60,8 +61,18 @@ def __init__(self):
6061
self._sparkbuilder = SparkSession.builder.config("spark.jars", jar_path_str)
6162

6263
def getOrCreate(self):
63-
return RumbleSession(self._sparkbuilder.getOrCreate())
64+
if RumbleSession._rumbleSession is None:
65+
RumbleSession._rumbleSession = RumbleSession(self._sparkbuilder.getOrCreate())
66+
return RumbleSession._rumbleSession
6467

68+
def create(self):
69+
RumbleSession._rumbleSession = RumbleSession(self._sparkbuilder.create())
70+
return RumbleSession._rumbleSession
71+
72+
def remote(self, spark_url):
73+
self._sparkbuilder = self._sparkbuilder.remote(spark_url)
74+
return self
75+
6576
def appName(self, name):
6677
self._sparkbuilder = self._sparkbuilder.appName(name);
6778
return self;
@@ -83,6 +94,7 @@ def __getattr__(self, name):
8394
return res;
8495

8596
_builder = Builder()
97+
_rumbleSession = None
8698

8799
def convert(self, value):
88100
if isinstance(value, tuple):

src/jsoniqmagic/__init__.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from jsoniq.session import RumbleSession
2+
from jsoniqmagic.magic import JSONiqMagic
3+
4+
__all__ = ["JSONiqMagic"]
5+
6+
def load_ipython_extension(ipython):
7+
rumble = RumbleSession.builder.getOrCreate();
8+
ipython.register_magics(JSONiqMagic)
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from IPython.core.magic import Magics, cell_magic, magics_class
22
import time, json
3-
from .session import RumbleSession
3+
from jsoniq.session import RumbleSession
44
from py4j.protocol import Py4JJavaError
55

66
@magics_class

0 commit comments

Comments
 (0)