def query_assets(self, query: Optional[str]) -> List[Asset]: """Returns all assets that match the query. The supported query syntax is described in detail at https://docs.dagster.io/overview/solid-selection. """ if query is None: return list(self._assets_by_path_str.values()) queried_asset_path = parse_clause(query)[1] if queried_asset_path not in self._assets_by_path_str.keys(): raise LakehouseAssetQueryError(f"{queried_asset_path} does not exist in set of assets.") return [self._assets_by_path_str[pstr] for pstr in clause_to_subset(self._dep_graph, query)]
def test_parse_clause(): assert parse_clause("some_solid") == (0, "some_solid", 0) assert parse_clause("*some_solid") == (MAX_NUM, "some_solid", 0) assert parse_clause("some_solid+") == (0, "some_solid", 1) assert parse_clause("+some_solid+") == (1, "some_solid", 1) assert parse_clause("*some_solid++") == (MAX_NUM, "some_solid", 2)
def test_parse_clause_invalid(): assert parse_clause("1+some_solid") == None
def test_parse_clause(): assert parse_clause('some_solid') == (0, 'some_solid', 0) assert parse_clause('*some_solid') == (MAX_NUM, 'some_solid', 0) assert parse_clause('some_solid+') == (0, 'some_solid', 1) assert parse_clause('+some_solid+') == (1, 'some_solid', 1) assert parse_clause('*some_solid++') == (MAX_NUM, 'some_solid', 2)