def test_border_cases(): s1 = graphscope.session(run_on_local=True) s2 = graphscope.session(run_on_local=True) s3 = graphscope.session(run_on_local=True) with pytest.raises(RuntimeError, match="No default session found."): g = graphscope.load_from( edges={ "e0": ( "twitter_property_e_0#header_row=true", ["dist"], ("src_id", "v0"), ("dst_id", "v1"), ), }, vertices={ "v0": "{}/twitter_property_v_0#header_row=true", "v1": "{}/twitter_property_v_1#header_row=true", }, ) s1.as_default() assert graphscope.get_default_session() == s1 g3 = load_graph(s3) # g3 is op of s3 with pytest.raises( ValueError, match= "A default session is already active. You must explicitly call Session.close().", ): s2.as_default() s1.close() s2.as_default() assert graphscope.get_default_session() == s2 s2.close() s3.as_default() assert graphscope.get_default_session() == s3 sssp = graphscope.property_sssp(g3, src=4) # ok, g3 belong to s3 s3.close() with pytest.raises(RuntimeError, match="No default session found."): g = graphscope.load_from( edges={ "e0": ( "twitter_property_e_0#header_row=true", ["dist"], ("src_id", "v0"), ("dst_id", "v1"), ), }, vertices={ "v0": "{}/twitter_property_v_0#header_row=true", "v1": "{}/twitter_property_v_1#header_row=true", }, )
def test_error_on_used_after_close(): # use after session close s1 = graphscope.session(run_on_local=True) s1.close() with pytest.raises(RuntimeError, match="Attempted to use a closed Session."): load_graph(s1) with pytest.raises(RuntimeError, match="No default session found."): g = graphscope.load_from( edges={ "e0": ( "twitter_property_e_0#header_row=true", ["dist"], ("src_id", "v0"), ("dst_id", "v1"), ), }, vertices={ "v0": "{}/twitter_property_v_0#header_row=true", "v1": "{}/twitter_property_v_1#header_row=true", }, ) # close after close s2 = graphscope.session(run_on_local=True) s2.close() assert s2.info["status"] == "closed" s2.close() assert s2.info["status"] == "closed"
def load_p2p(prefix, directed): graph = graphscope.load_from( edges={ "group": { "loader": Loader( os.path.join(prefix, "p2p-31.e"), header_row=False, delimiter=" " ) } }, directed=directed, generate_eid=False, ) return graph
def test_error_on_used_after_close(): # use after session close s1 = graphscope.session(run_on_local=True) s1.close() with pytest.raises(ValueError, match="Session not exists."): g = load_graph(s1) g._ensure_loaded() with pytest.raises(RuntimeError, match="No default session found."): g = graphscope.load_from(edges={ "e0": "twitter_property_e_0#header_row=true", }) g._ensure_loaded() # close after close s2 = graphscope.session(run_on_local=True) s2.close() assert s2.info["status"] == "closed" s2.close() assert s2.info["status"] == "closed"
def load_from(self, *args, **kwargs): """Load a graph within the session. See more information in :meth:`graphscope.load_from`. """ with default_session(self): return graphscope.load_from(*args, **kwargs)
def load_from(self, *args, **kwargs): with default_session(self): return graphscope.load_from(*args, **kwargs)