| 68 | return str(url.password) if url.password else None |
| 69 | |
| 70 | def create_connect_args( |
| 71 | self, |
| 72 | url: URL, |
| 73 | ) -> Tuple[Tuple[()], Dict[str, Any]]: |
| 74 | args, kwargs = super().create_connect_args(url) |
| 75 | |
| 76 | if "adapter_kwargs" in kwargs and kwargs["adapter_kwargs"] != {}: |
| 77 | raise ValueError( |
| 78 | f"Unexpected adapter_kwargs found: {kwargs['adapter_kwargs']}" |
| 79 | ) |
| 80 | |
| 81 | graphql_api = self.db_url_to_graphql_api(url) |
| 82 | bearer_token = self.db_url_to_graphql_bearer(url) |
| 83 | |
| 84 | query = extract_query(url) |
| 85 | pagination_relay_param = query.get("is_relay") |
| 86 | pagination_relay = ( |
| 87 | get_last_query(pagination_relay_param) != "0" |
| 88 | if pagination_relay_param is not None |
| 89 | else None |
| 90 | ) |
| 91 | |
| 92 | adapter_kwargs = { |
| 93 | ADAPTER_NAME: { |
| 94 | "graphql_api": graphql_api, |
| 95 | "bearer_token": bearer_token, |
| 96 | "pagination_relay": pagination_relay, |
| 97 | "list_queries": self.list_queries, |
| 98 | } |
| 99 | } |
| 100 | |
| 101 | # this seems gross, esp the path override. unclear why memory has to be set here |
| 102 | return args, {**kwargs, "path": ":memory:", "adapter_kwargs": adapter_kwargs} |