@@ -2506,23 +2506,41 @@ def dlt_source(self, uri: str, table: str, **kwargs):
2506
2506
).with_resources (table_name )
2507
2507
except ResourcesNotFoundError :
2508
2508
raise UnsupportedResourceError (table_name , "Solidgate" )
2509
-
2509
+
2510
+
2510
2511
class CassandraSource :
2511
2512
def handles_incrementality (self ) -> bool :
2512
2513
return False
2513
2514
2514
2515
def dlt_source (self , uri : str , table : str , ** kwargs ):
2515
2516
parsed_uri = urlparse (uri )
2516
- query_params = parse_qs (parsed_uri .query )
2517
- username = query_params .get ("username" )
2518
- if username is not None :
2517
+ username = parsed_uri .username
2518
+ if username :
2519
2519
username = username [0 ]
2520
- password = query_params .get ("password" )
2521
- if password is not None :
2520
+
2521
+ password = parsed_uri .password
2522
+ if password :
2522
2523
password = password [0 ]
2523
- host = query_params .get ("host" )[0 ]
2524
- port = query_params .get ("port" )[0 ]
2525
- keyspace = query_params .get ("keyspace" )[0 ]
2526
-
2524
+
2525
+ host = parsed_uri .hostname
2526
+ if not host :
2527
+ raise MissingValueError ("host" , "Cassandra" )
2528
+
2529
+ port = parsed_uri .port
2530
+ if not port :
2531
+ port = 9042
2532
+
2533
+ keyspace = parsed_uri .path .lstrip ("/" )
2534
+ if not keyspace :
2535
+ raise MissingValueError ("keyspace" , "Cassandra" )
2536
+
2527
2537
from ingestr .src .cassandra import cassandra_source
2528
- return cassandra_source (host = host , port = port , keyspace = keyspace , table = table , username = username , password = password )
2538
+
2539
+ return cassandra_source (
2540
+ host = host ,
2541
+ port = port ,
2542
+ keyspace = keyspace ,
2543
+ table = table ,
2544
+ username = username ,
2545
+ password = password ,
2546
+ ).with_resources ("fetch_data" )
0 commit comments