| 
68 | 68 | filter_extension.conformance_classes.append(  | 
69 | 69 |     FilterConformanceClasses.ADVANCED_COMPARISON_OPERATORS  | 
70 | 70 | )  | 
 | 71 | +filter_extension.conformance_classes = [  | 
 | 72 | +    "https://api.stacspec.org/v1.0.0-rc.1/item-search#filter"  | 
 | 73 | +    if cls.value == "https://api.stacspec.org/v1.0.0-rc.2/item-search#filter"  | 
 | 74 | +    else cls.value  | 
 | 75 | +    for cls in filter_extension.conformance_classes  | 
 | 76 | +]  | 
71 | 77 | 
 
  | 
72 | 78 | # Adding collection search extension for compatibility with stac-auth-proxy  | 
73 | 79 | # (https://github.com/developmentseed/stac-auth-proxy)  | 
74 | 80 | # The extension is not fully implemented yet but is required for collection filtering support  | 
75 | 81 | collection_search_extension = CollectionSearchExtension()  | 
76 |  | -collection_search_extension.conformance_classes.append(  | 
77 |  | -    "https://api.stacspec.org/v1.0.0-rc.1/collection-search#filter"  | 
78 |  | -)  | 
 | 82 | + | 
 | 83 | +collection_search_extension.conformance_classes = [  | 
 | 84 | +    "http://www.opengis.net/spec/ogcapi-common-2/1.0/req/simple-query"  | 
 | 85 | +    if cls == "http://www.opengis.net/spec/ogcapi-common-2/1.0/conf/simple-query"  | 
 | 86 | +    else cls  | 
 | 87 | +    for cls in collection_search_extension.conformance_classes  | 
 | 88 | +]  | 
 | 89 | + | 
 | 90 | +collection_search_extension.conformance_classes = [  | 
 | 91 | +    cls  | 
 | 92 | +    for cls in collection_search_extension.conformance_classes  | 
 | 93 | +    if cls  | 
 | 94 | +    not in [  | 
 | 95 | +        "https://api.stacspec.org/v1.0.0-rc.1/collection-search",  | 
 | 96 | +    ]  | 
 | 97 | +]  | 
79 | 98 | 
 
  | 
80 | 99 | aggregation_extension = AggregationExtension(  | 
81 | 100 |     client=EsAsyncBaseAggregationClient(  | 
82 | 101 |         database=database_logic, session=session, settings=settings  | 
83 | 102 |     )  | 
84 | 103 | )  | 
 | 104 | + | 
 | 105 | +aggregation_extension.conformance_classes = [  | 
 | 106 | +    cls  | 
 | 107 | +    for cls in aggregation_extension.conformance_classes  | 
 | 108 | +    if cls != "https://api.stacspec.org/v0.3.0/aggregation"  | 
 | 109 | +]  | 
 | 110 | + | 
85 | 111 | aggregation_extension.POST = EsAggregationExtensionPostRequest  | 
86 | 112 | aggregation_extension.GET = EsAggregationExtensionGetRequest  | 
87 | 113 | 
 
  | 
88 | 114 | fields_extension = FieldsExtension()  | 
89 | 115 | fields_extension.conformance_classes.append(FieldsConformanceClasses.ITEMS)  | 
90 | 116 | 
 
  | 
 | 117 | +fields_extension.conformance_classes = [  | 
 | 118 | +    cls  | 
 | 119 | +    for cls in fields_extension.conformance_classes  | 
 | 120 | +    if cls.value != "http://www.opengis.net/spec/ogcapi-common-2/1.0/conf/simple-query"  | 
 | 121 | +]  | 
 | 122 | + | 
91 | 123 | search_extensions = [  | 
92 | 124 |     fields_extension,  | 
93 | 125 |     QueryExtension(),  | 
 | 
120 | 152 |         ),  | 
121 | 153 |     )  | 
122 | 154 | 
 
  | 
 | 155 | +LINKS_TO_BE_REMOVED = {  | 
 | 156 | +    "https://api.stacspec.org/v1.0.0/collections/extensions/transaction",  | 
 | 157 | +    "https://api.stacspec.org/v1.0.0/ogcapi-features/extensions/transaction",  | 
 | 158 | +    "https://api.stacspec.org/v1.0.0/item-search#query",  | 
 | 159 | +    "https://api.stacspec.org/v1.0.0-rc.1/item-search#free-text",  | 
 | 160 | +}  | 
 | 161 | + | 
 | 162 | +for extension in search_extensions:  | 
 | 163 | +    extension.conformance_classes = [  | 
 | 164 | +        cls for cls in extension.conformance_classes if cls not in LINKS_TO_BE_REMOVED  | 
 | 165 | +    ]  | 
 | 166 | + | 
 | 167 | +for extension in search_extensions:  | 
 | 168 | +    extension.conformance_classes = [  | 
 | 169 | +        "https://api.stacspec.org/v1.0.0-rc.1/item-search#fields"  | 
 | 170 | +        if cls == "https://api.stacspec.org/v1.0.0/item-search#fields"  | 
 | 171 | +        else "https://api.stacspec.org/v1.0.0-rc.1/item-search#sort"  | 
 | 172 | +        if cls == "https://api.stacspec.org/v1.0.0/item-search#sort"  | 
 | 173 | +        else cls  | 
 | 174 | +        for cls in extension.conformance_classes  | 
 | 175 | +    ]  | 
 | 176 | + | 
 | 177 | + | 
123 | 178 | extensions = [aggregation_extension] + search_extensions  | 
124 | 179 | 
 
  | 
125 | 180 | database_logic.extensions = [type(ext).__name__ for ext in extensions]  | 
 | 
0 commit comments