feast-custom 0.64.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1661) hide show
  1. docs/conf.py +200 -0
  2. docs/source/conf.py +200 -0
  3. feast/__init__.py +82 -0
  4. feast/aggregation/__init__.py +141 -0
  5. feast/aggregation/tiling/__init__.py +27 -0
  6. feast/aggregation/tiling/base.py +97 -0
  7. feast/aggregation/tiling/orchestrator.py +189 -0
  8. feast/aggregation/tiling/tile_subtraction.py +177 -0
  9. feast/api/__init__.py +0 -0
  10. feast/api/registry/__init__.py +0 -0
  11. feast/api/registry/rest/__init__.py +34 -0
  12. feast/api/registry/rest/codegen_utils.py +51 -0
  13. feast/api/registry/rest/data_sources.py +276 -0
  14. feast/api/registry/rest/entities.py +194 -0
  15. feast/api/registry/rest/feature_services.py +148 -0
  16. feast/api/registry/rest/feature_views.py +373 -0
  17. feast/api/registry/rest/features.py +203 -0
  18. feast/api/registry/rest/label_views.py +137 -0
  19. feast/api/registry/rest/lineage.py +297 -0
  20. feast/api/registry/rest/metrics.py +511 -0
  21. feast/api/registry/rest/monitoring.py +399 -0
  22. feast/api/registry/rest/permissions.py +78 -0
  23. feast/api/registry/rest/projects.py +52 -0
  24. feast/api/registry/rest/rest_registry_server.py +338 -0
  25. feast/api/registry/rest/rest_utils.py +1033 -0
  26. feast/api/registry/rest/saved_datasets.py +134 -0
  27. feast/api/registry/rest/search.py +336 -0
  28. feast/arrow_error_handler.py +94 -0
  29. feast/base_feature_view.py +284 -0
  30. feast/batch_feature_view.py +236 -0
  31. feast/chunker.py +150 -0
  32. feast/cli/__init__.py +0 -0
  33. feast/cli/cli.py +659 -0
  34. feast/cli/cli_options.py +8 -0
  35. feast/cli/cli_utils.py +328 -0
  36. feast/cli/data_sources.py +55 -0
  37. feast/cli/dbt_import.py +410 -0
  38. feast/cli/entities.py +55 -0
  39. feast/cli/feature_services.py +62 -0
  40. feast/cli/feature_views.py +236 -0
  41. feast/cli/features.py +209 -0
  42. feast/cli/label_views.py +69 -0
  43. feast/cli/monitor.py +225 -0
  44. feast/cli/on_demand_feature_views.py +57 -0
  45. feast/cli/permissions.py +271 -0
  46. feast/cli/projects.py +113 -0
  47. feast/cli/saved_datasets.py +57 -0
  48. feast/cli/serve.py +353 -0
  49. feast/cli/stream_feature_views.py +57 -0
  50. feast/cli/ui.py +70 -0
  51. feast/cli/validation_references.py +57 -0
  52. feast/constants.py +48 -0
  53. feast/data_format.py +173 -0
  54. feast/data_source.py +958 -0
  55. feast/dataframe.py +96 -0
  56. feast/dbt/__init__.py +30 -0
  57. feast/dbt/codegen.py +423 -0
  58. feast/dbt/mapper.py +480 -0
  59. feast/dbt/parser.py +260 -0
  60. feast/demos.py +851 -0
  61. feast/diff/__init__.py +0 -0
  62. feast/diff/apply_progress.py +185 -0
  63. feast/diff/infra_diff.py +229 -0
  64. feast/diff/property_diff.py +17 -0
  65. feast/diff/registry_diff.py +425 -0
  66. feast/doc_embedder.py +380 -0
  67. feast/document_labeling.py +96 -0
  68. feast/dqm/__init__.py +0 -0
  69. feast/dqm/errors.py +13 -0
  70. feast/dqm/profilers/__init__.py +0 -0
  71. feast/dqm/profilers/ge_profiler.py +203 -0
  72. feast/dqm/profilers/profiler.py +105 -0
  73. feast/driver_test_data.py +349 -0
  74. feast/embedded_go/__init__.py +0 -0
  75. feast/embedded_go/online_features_service.py +346 -0
  76. feast/embedded_go/type_map.py +88 -0
  77. feast/embedder.py +241 -0
  78. feast/entity.py +213 -0
  79. feast/errors.py +578 -0
  80. feast/feast_object.py +66 -0
  81. feast/feature.py +134 -0
  82. feast/feature_logging.py +172 -0
  83. feast/feature_server.py +1163 -0
  84. feast/feature_server_utils.py +141 -0
  85. feast/feature_service.py +273 -0
  86. feast/feature_store.py +4307 -0
  87. feast/feature_view.py +806 -0
  88. feast/feature_view_projection.py +165 -0
  89. feast/feature_view_utils.py +301 -0
  90. feast/field.py +289 -0
  91. feast/file_utils.py +85 -0
  92. feast/flags_helper.py +11 -0
  93. feast/grpc_error_interceptor.py +48 -0
  94. feast/image_utils.py +272 -0
  95. feast/importer.py +47 -0
  96. feast/inference.py +355 -0
  97. feast/infra/__init__.py +1 -0
  98. feast/infra/common/__init__.py +0 -0
  99. feast/infra/common/materialization_job.py +61 -0
  100. feast/infra/common/retrieval_task.py +19 -0
  101. feast/infra/common/serde.py +42 -0
  102. feast/infra/compute_engines/__init__.py +0 -0
  103. feast/infra/compute_engines/algorithms/__init__.py +0 -0
  104. feast/infra/compute_engines/algorithms/topo.py +43 -0
  105. feast/infra/compute_engines/aws_lambda/__init__.py +0 -0
  106. feast/infra/compute_engines/aws_lambda/app.py +93 -0
  107. feast/infra/compute_engines/aws_lambda/lambda_engine.py +285 -0
  108. feast/infra/compute_engines/backends/__init__.py +0 -0
  109. feast/infra/compute_engines/backends/base.py +79 -0
  110. feast/infra/compute_engines/backends/factory.py +54 -0
  111. feast/infra/compute_engines/backends/pandas_backend.py +46 -0
  112. feast/infra/compute_engines/backends/polars_backend.py +49 -0
  113. feast/infra/compute_engines/base.py +164 -0
  114. feast/infra/compute_engines/dag/__init__.py +0 -0
  115. feast/infra/compute_engines/dag/context.py +105 -0
  116. feast/infra/compute_engines/dag/model.py +9 -0
  117. feast/infra/compute_engines/dag/node.py +50 -0
  118. feast/infra/compute_engines/dag/plan.py +75 -0
  119. feast/infra/compute_engines/dag/value.py +14 -0
  120. feast/infra/compute_engines/feature_builder.py +197 -0
  121. feast/infra/compute_engines/feature_resolver.py +95 -0
  122. feast/infra/compute_engines/flink/__init__.py +11 -0
  123. feast/infra/compute_engines/flink/compute.py +161 -0
  124. feast/infra/compute_engines/flink/feature_builder.py +214 -0
  125. feast/infra/compute_engines/flink/job.py +124 -0
  126. feast/infra/compute_engines/flink/nodes.py +816 -0
  127. feast/infra/compute_engines/flink/utils.py +218 -0
  128. feast/infra/compute_engines/kubernetes/__init__.py +0 -0
  129. feast/infra/compute_engines/kubernetes/k8s_engine.py +386 -0
  130. feast/infra/compute_engines/kubernetes/k8s_materialization_job.py +62 -0
  131. feast/infra/compute_engines/kubernetes/k8s_materialization_task.py +10 -0
  132. feast/infra/compute_engines/kubernetes/main.py +85 -0
  133. feast/infra/compute_engines/local/__init__.py +0 -0
  134. feast/infra/compute_engines/local/arrow_table_value.py +12 -0
  135. feast/infra/compute_engines/local/compute.py +117 -0
  136. feast/infra/compute_engines/local/feature_builder.py +134 -0
  137. feast/infra/compute_engines/local/job.py +111 -0
  138. feast/infra/compute_engines/local/local_node.py +14 -0
  139. feast/infra/compute_engines/local/nodes.py +410 -0
  140. feast/infra/compute_engines/ray/__init__.py +38 -0
  141. feast/infra/compute_engines/ray/compute.py +314 -0
  142. feast/infra/compute_engines/ray/config.py +137 -0
  143. feast/infra/compute_engines/ray/feature_builder.py +352 -0
  144. feast/infra/compute_engines/ray/job.py +301 -0
  145. feast/infra/compute_engines/ray/nodes.py +1047 -0
  146. feast/infra/compute_engines/ray/utils.py +214 -0
  147. feast/infra/compute_engines/snowflake/__init__.py +0 -0
  148. feast/infra/compute_engines/snowflake/snowflake_engine.py +521 -0
  149. feast/infra/compute_engines/snowflake/snowflake_materialization_job.py +36 -0
  150. feast/infra/compute_engines/spark/__init__.py +0 -0
  151. feast/infra/compute_engines/spark/compute.py +233 -0
  152. feast/infra/compute_engines/spark/feature_builder.py +150 -0
  153. feast/infra/compute_engines/spark/job.py +90 -0
  154. feast/infra/compute_engines/spark/nodes.py +724 -0
  155. feast/infra/compute_engines/spark/utils.py +225 -0
  156. feast/infra/compute_engines/utils.py +83 -0
  157. feast/infra/contrib/__init__.py +0 -0
  158. feast/infra/contrib/grpc_server.py +187 -0
  159. feast/infra/contrib/spark_kafka_processor.py +175 -0
  160. feast/infra/contrib/stream_processor.py +108 -0
  161. feast/infra/feature_servers/__init__.py +0 -0
  162. feast/infra/feature_servers/base_config.py +117 -0
  163. feast/infra/feature_servers/local_process/__init__.py +0 -0
  164. feast/infra/feature_servers/local_process/config.py +11 -0
  165. feast/infra/feature_servers/multicloud/__init__.py +0 -0
  166. feast/infra/infra_object.py +154 -0
  167. feast/infra/key_encoding_utils.py +294 -0
  168. feast/infra/mcp_servers/__init__.py +9 -0
  169. feast/infra/mcp_servers/mcp_config.py +26 -0
  170. feast/infra/mcp_servers/mcp_server.py +85 -0
  171. feast/infra/offline_stores/__init__.py +0 -0
  172. feast/infra/offline_stores/bigquery.py +1721 -0
  173. feast/infra/offline_stores/bigquery_source.py +305 -0
  174. feast/infra/offline_stores/contrib/__init__.py +0 -0
  175. feast/infra/offline_stores/contrib/athena_offline_store/__init__.py +0 -0
  176. feast/infra/offline_stores/contrib/athena_offline_store/athena.py +741 -0
  177. feast/infra/offline_stores/contrib/athena_offline_store/athena_source.py +346 -0
  178. feast/infra/offline_stores/contrib/athena_offline_store/tests/__init__.py +0 -0
  179. feast/infra/offline_stores/contrib/athena_offline_store/tests/data_source.py +122 -0
  180. feast/infra/offline_stores/contrib/athena_repo_configuration.py +15 -0
  181. feast/infra/offline_stores/contrib/clickhouse_offline_store/__init__.py +0 -0
  182. feast/infra/offline_stores/contrib/clickhouse_offline_store/clickhouse.py +622 -0
  183. feast/infra/offline_stores/contrib/clickhouse_offline_store/clickhouse_source.py +215 -0
  184. feast/infra/offline_stores/contrib/clickhouse_offline_store/tests/__init__.py +1 -0
  185. feast/infra/offline_stores/contrib/clickhouse_offline_store/tests/data_source.py +224 -0
  186. feast/infra/offline_stores/contrib/clickhouse_repo_configuration.py +11 -0
  187. feast/infra/offline_stores/contrib/couchbase_columnar_repo_configuration.py +20 -0
  188. feast/infra/offline_stores/contrib/couchbase_offline_store/__init__.py +0 -0
  189. feast/infra/offline_stores/contrib/couchbase_offline_store/couchbase.py +742 -0
  190. feast/infra/offline_stores/contrib/couchbase_offline_store/couchbase_source.py +410 -0
  191. feast/infra/offline_stores/contrib/couchbase_offline_store/tests/__init__.py +0 -0
  192. feast/infra/offline_stores/contrib/couchbase_offline_store/tests/data_source.py +213 -0
  193. feast/infra/offline_stores/contrib/mongodb_offline_store/__init__.py +8 -0
  194. feast/infra/offline_stores/contrib/mongodb_offline_store/mongodb.py +1067 -0
  195. feast/infra/offline_stores/contrib/mssql_offline_store/__init__.py +0 -0
  196. feast/infra/offline_stores/contrib/mssql_offline_store/mssql.py +226 -0
  197. feast/infra/offline_stores/contrib/mssql_offline_store/mssqlserver_source.py +283 -0
  198. feast/infra/offline_stores/contrib/mssql_offline_store/tests/__init__.py +1 -0
  199. feast/infra/offline_stores/contrib/mssql_offline_store/tests/data_source.py +123 -0
  200. feast/infra/offline_stores/contrib/mssql_pymssql_offline_store.py +407 -0
  201. feast/infra/offline_stores/contrib/mssql_repo_configuration.py +13 -0
  202. feast/infra/offline_stores/contrib/oracle_offline_store/__init__.py +1 -0
  203. feast/infra/offline_stores/contrib/oracle_offline_store/oracle.py +900 -0
  204. feast/infra/offline_stores/contrib/oracle_offline_store/oracle_source.py +193 -0
  205. feast/infra/offline_stores/contrib/postgres_offline_store/__init__.py +0 -0
  206. feast/infra/offline_stores/contrib/postgres_offline_store/postgres.py +1344 -0
  207. feast/infra/offline_stores/contrib/postgres_offline_store/postgres_source.py +237 -0
  208. feast/infra/offline_stores/contrib/postgres_offline_store/tests/__init__.py +1 -0
  209. feast/infra/offline_stores/contrib/postgres_offline_store/tests/data_source.py +136 -0
  210. feast/infra/offline_stores/contrib/postgres_repo_configuration.py +11 -0
  211. feast/infra/offline_stores/contrib/ray_offline_store/__init__.py +56 -0
  212. feast/infra/offline_stores/contrib/ray_offline_store/ray.py +2632 -0
  213. feast/infra/offline_stores/contrib/ray_offline_store/ray_offline_store_reader.py +126 -0
  214. feast/infra/offline_stores/contrib/ray_offline_store/ray_source.py +283 -0
  215. feast/infra/offline_stores/contrib/ray_repo_configuration.py +128 -0
  216. feast/infra/offline_stores/contrib/spark_offline_store/__init__.py +0 -0
  217. feast/infra/offline_stores/contrib/spark_offline_store/spark.py +1704 -0
  218. feast/infra/offline_stores/contrib/spark_offline_store/spark_source.py +466 -0
  219. feast/infra/offline_stores/contrib/spark_offline_store/tests/__init__.py +0 -0
  220. feast/infra/offline_stores/contrib/spark_offline_store/tests/data_source.py +127 -0
  221. feast/infra/offline_stores/contrib/spark_repo_configuration.py +13 -0
  222. feast/infra/offline_stores/contrib/trino_offline_store/__init__.py +0 -0
  223. feast/infra/offline_stores/contrib/trino_offline_store/connectors/__init__.py +0 -0
  224. feast/infra/offline_stores/contrib/trino_offline_store/connectors/upload.py +196 -0
  225. feast/infra/offline_stores/contrib/trino_offline_store/test_config/__init__.py +0 -0
  226. feast/infra/offline_stores/contrib/trino_offline_store/test_config/manual_tests.py +13 -0
  227. feast/infra/offline_stores/contrib/trino_offline_store/tests/__init__.py +1 -0
  228. feast/infra/offline_stores/contrib/trino_offline_store/tests/data_source.py +132 -0
  229. feast/infra/offline_stores/contrib/trino_offline_store/trino.py +728 -0
  230. feast/infra/offline_stores/contrib/trino_offline_store/trino_queries.py +158 -0
  231. feast/infra/offline_stores/contrib/trino_offline_store/trino_source.py +282 -0
  232. feast/infra/offline_stores/contrib/trino_offline_store/trino_type_map.py +146 -0
  233. feast/infra/offline_stores/contrib/trino_repo_configuration.py +13 -0
  234. feast/infra/offline_stores/dask.py +1264 -0
  235. feast/infra/offline_stores/duckdb.py +713 -0
  236. feast/infra/offline_stores/file_source.py +434 -0
  237. feast/infra/offline_stores/hybrid_offline_store.py +220 -0
  238. feast/infra/offline_stores/ibis.py +561 -0
  239. feast/infra/offline_stores/offline_store.py +758 -0
  240. feast/infra/offline_stores/offline_utils.py +431 -0
  241. feast/infra/offline_stores/redshift.py +1397 -0
  242. feast/infra/offline_stores/redshift_source.py +402 -0
  243. feast/infra/offline_stores/remote.py +627 -0
  244. feast/infra/offline_stores/snowflake.py +1442 -0
  245. feast/infra/offline_stores/snowflake_source.py +450 -0
  246. feast/infra/online_stores/__init__.py +0 -0
  247. feast/infra/online_stores/bigtable.py +338 -0
  248. feast/infra/online_stores/cassandra_online_store/__init__.py +0 -0
  249. feast/infra/online_stores/cassandra_online_store/cassandra_online_store.py +594 -0
  250. feast/infra/online_stores/cassandra_online_store/cassandra_repo_configuration.py +26 -0
  251. feast/infra/online_stores/couchbase_online_store/__init__.py +0 -0
  252. feast/infra/online_stores/couchbase_online_store/couchbase.py +315 -0
  253. feast/infra/online_stores/couchbase_online_store/couchbase_repo_configuration.py +10 -0
  254. feast/infra/online_stores/datastore.py +469 -0
  255. feast/infra/online_stores/dynamodb.py +1291 -0
  256. feast/infra/online_stores/elasticsearch_online_store/__init__.py +0 -0
  257. feast/infra/online_stores/elasticsearch_online_store/elasticsearch.py +524 -0
  258. feast/infra/online_stores/elasticsearch_online_store/elasticsearch_repo_configuration.py +13 -0
  259. feast/infra/online_stores/faiss_online_store.py +272 -0
  260. feast/infra/online_stores/hazelcast_online_store/__init__.py +0 -0
  261. feast/infra/online_stores/hazelcast_online_store/hazelcast_online_store.py +318 -0
  262. feast/infra/online_stores/hazelcast_online_store/hazelcast_repo_configuration.py +26 -0
  263. feast/infra/online_stores/hbase_online_store/__init__.py +0 -0
  264. feast/infra/online_stores/hbase_online_store/hbase.py +266 -0
  265. feast/infra/online_stores/hbase_online_store/hbase_repo_configuration.py +10 -0
  266. feast/infra/online_stores/helpers.py +89 -0
  267. feast/infra/online_stores/hybrid_online_store/__init__.py +0 -0
  268. feast/infra/online_stores/hybrid_online_store/hybrid_online_store.py +327 -0
  269. feast/infra/online_stores/hybrid_online_store/hybrid_online_store_repo_configuration.py +28 -0
  270. feast/infra/online_stores/milvus_online_store/__init__.py +0 -0
  271. feast/infra/online_stores/milvus_online_store/milvus.py +866 -0
  272. feast/infra/online_stores/milvus_online_store/milvus_repo_configuration.py +15 -0
  273. feast/infra/online_stores/mongodb_online_store/__init__.py +3 -0
  274. feast/infra/online_stores/mongodb_online_store/mongodb.py +789 -0
  275. feast/infra/online_stores/mongodb_online_store/mongodb_repo_configuration.py +13 -0
  276. feast/infra/online_stores/mysql_online_store/__init__.py +0 -0
  277. feast/infra/online_stores/mysql_online_store/mysql.py +329 -0
  278. feast/infra/online_stores/mysql_online_store/mysql_repo_configuration.py +12 -0
  279. feast/infra/online_stores/online_store.py +966 -0
  280. feast/infra/online_stores/postgres_online_store/__init__.py +0 -0
  281. feast/infra/online_stores/postgres_online_store/pgvector_repo_configuration.py +12 -0
  282. feast/infra/online_stores/postgres_online_store/postgres.py +865 -0
  283. feast/infra/online_stores/postgres_online_store/postgres_repo_configuration.py +12 -0
  284. feast/infra/online_stores/qdrant_online_store/__init__.py +0 -0
  285. feast/infra/online_stores/qdrant_online_store/qdrant.py +323 -0
  286. feast/infra/online_stores/qdrant_online_store/qdrant_repo_configuration.py +12 -0
  287. feast/infra/online_stores/redis.py +757 -0
  288. feast/infra/online_stores/remote.py +780 -0
  289. feast/infra/online_stores/singlestore_online_store/__init__.py +0 -0
  290. feast/infra/online_stores/singlestore_online_store/singlestore.py +229 -0
  291. feast/infra/online_stores/singlestore_online_store/singlestore_repo_configuration.py +10 -0
  292. feast/infra/online_stores/snowflake.py +263 -0
  293. feast/infra/online_stores/sqlite.py +853 -0
  294. feast/infra/online_stores/vector_store.py +16 -0
  295. feast/infra/passthrough_provider.py +584 -0
  296. feast/infra/provider.py +551 -0
  297. feast/infra/ray_initializer.py +909 -0
  298. feast/infra/ray_shared_utils.py +572 -0
  299. feast/infra/registry/__init__.py +0 -0
  300. feast/infra/registry/base_registry.py +1293 -0
  301. feast/infra/registry/caching_registry.py +528 -0
  302. feast/infra/registry/contrib/__init__.py +0 -0
  303. feast/infra/registry/contrib/azure/__init__.py +0 -0
  304. feast/infra/registry/contrib/azure/azure_registry_store.py +136 -0
  305. feast/infra/registry/contrib/hdfs/__init__.py +0 -0
  306. feast/infra/registry/contrib/hdfs/hdfs_registry_store.py +121 -0
  307. feast/infra/registry/file.py +97 -0
  308. feast/infra/registry/gcs.py +110 -0
  309. feast/infra/registry/proto_registry_utils.py +498 -0
  310. feast/infra/registry/registry.py +1671 -0
  311. feast/infra/registry/registry_store.py +49 -0
  312. feast/infra/registry/remote.py +794 -0
  313. feast/infra/registry/s3.py +118 -0
  314. feast/infra/registry/snowflake.py +1586 -0
  315. feast/infra/registry/sql.py +1843 -0
  316. feast/infra/supported_async_methods.py +10 -0
  317. feast/infra/transformation_servers/__init__.py +0 -0
  318. feast/infra/transformation_servers/app.py +65 -0
  319. feast/infra/utils/__init__.py +0 -0
  320. feast/infra/utils/aws_utils.py +1142 -0
  321. feast/infra/utils/clickhouse/__init__.py +0 -0
  322. feast/infra/utils/clickhouse/clickhouse_config.py +20 -0
  323. feast/infra/utils/clickhouse/connection_utils.py +34 -0
  324. feast/infra/utils/couchbase/__init__.py +0 -0
  325. feast/infra/utils/couchbase/couchbase_utils.py +13 -0
  326. feast/infra/utils/hbase_utils.py +221 -0
  327. feast/infra/utils/postgres/__init__.py +0 -0
  328. feast/infra/utils/postgres/connection_utils.py +123 -0
  329. feast/infra/utils/postgres/postgres_config.py +28 -0
  330. feast/infra/utils/snowflake/__init__.py +0 -0
  331. feast/infra/utils/snowflake/registry/__init__.py +0 -0
  332. feast/infra/utils/snowflake/snowflake_utils.py +716 -0
  333. feast/infra/utils/snowflake/snowpark/__init__.py +0 -0
  334. feast/infra/utils/snowflake/snowpark/snowflake_udfs.py +474 -0
  335. feast/labeling/__init__.py +11 -0
  336. feast/labeling/conflict_policy.py +66 -0
  337. feast/labeling/conflict_resolver.py +157 -0
  338. feast/labeling/label_view.py +446 -0
  339. feast/lineage/__init__.py +4 -0
  340. feast/lineage/registry_lineage.py +545 -0
  341. feast/metrics.py +639 -0
  342. feast/mlflow.py +139 -0
  343. feast/mlflow_integration/__init__.py +39 -0
  344. feast/mlflow_integration/client.py +313 -0
  345. feast/mlflow_integration/config.py +65 -0
  346. feast/mlflow_integration/entity_df_builder.py +116 -0
  347. feast/mlflow_integration/logger.py +375 -0
  348. feast/mlflow_integration/model_resolver.py +138 -0
  349. feast/monitoring/__init__.py +7 -0
  350. feast/monitoring/dqm_job_manager.py +149 -0
  351. feast/monitoring/metrics_calculator.py +187 -0
  352. feast/monitoring/monitoring_service.py +1251 -0
  353. feast/monitoring/monitoring_utils.py +296 -0
  354. feast/names.py +928 -0
  355. feast/nlp_test_data.py +67 -0
  356. feast/offline_server.py +628 -0
  357. feast/on_demand_feature_view.py +1459 -0
  358. feast/online_response.py +181 -0
  359. feast/openlineage/__init__.py +85 -0
  360. feast/openlineage/client.py +309 -0
  361. feast/openlineage/config.py +169 -0
  362. feast/openlineage/emitter.py +1035 -0
  363. feast/openlineage/facets.py +281 -0
  364. feast/openlineage/mappers.py +546 -0
  365. feast/permissions/__init__.py +0 -0
  366. feast/permissions/action.py +40 -0
  367. feast/permissions/auth/__init__.py +0 -0
  368. feast/permissions/auth/auth_manager.py +68 -0
  369. feast/permissions/auth/auth_type.py +11 -0
  370. feast/permissions/auth/kubernetes_token_parser.py +477 -0
  371. feast/permissions/auth/oidc_token_parser.py +265 -0
  372. feast/permissions/auth/token_extractor.py +51 -0
  373. feast/permissions/auth/token_parser.py +28 -0
  374. feast/permissions/auth_model.py +75 -0
  375. feast/permissions/client/__init__.py +0 -0
  376. feast/permissions/client/arrow_flight_auth_interceptor.py +29 -0
  377. feast/permissions/client/auth_client_manager.py +49 -0
  378. feast/permissions/client/client_auth_token.py +14 -0
  379. feast/permissions/client/grpc_client_auth_interceptor.py +60 -0
  380. feast/permissions/client/http_auth_requests_wrapper.py +256 -0
  381. feast/permissions/client/intra_comm_authentication_client_manager.py +32 -0
  382. feast/permissions/client/kubernetes_auth_client_manager.py +59 -0
  383. feast/permissions/client/oidc_authentication_client_manager.py +119 -0
  384. feast/permissions/decision.py +114 -0
  385. feast/permissions/decorator.py +42 -0
  386. feast/permissions/enforcer.py +112 -0
  387. feast/permissions/matcher.py +149 -0
  388. feast/permissions/oidc_service.py +53 -0
  389. feast/permissions/permission.py +281 -0
  390. feast/permissions/policy.py +345 -0
  391. feast/permissions/security_manager.py +254 -0
  392. feast/permissions/server/__init__.py +0 -0
  393. feast/permissions/server/arrow.py +91 -0
  394. feast/permissions/server/arrow_flight_token_extractor.py +42 -0
  395. feast/permissions/server/grpc.py +33 -0
  396. feast/permissions/server/grpc_token_extractor.py +36 -0
  397. feast/permissions/server/rest.py +46 -0
  398. feast/permissions/server/rest_token_extractor.py +38 -0
  399. feast/permissions/server/utils.py +131 -0
  400. feast/permissions/user.py +87 -0
  401. feast/project.py +175 -0
  402. feast/project_metadata.py +109 -0
  403. feast/proto_json.py +256 -0
  404. feast/proto_utils.py +101 -0
  405. feast/protos/__init__.py +0 -0
  406. feast/protos/feast/__init__.py +0 -0
  407. feast/protos/feast/core/Aggregation_pb2.py +28 -0
  408. feast/protos/feast/core/Aggregation_pb2.pyi +45 -0
  409. feast/protos/feast/core/Aggregation_pb2_grpc.py +4 -0
  410. feast/protos/feast/core/DataFormat_pb2.py +59 -0
  411. feast/protos/feast/core/DataFormat_pb2.pyi +287 -0
  412. feast/protos/feast/core/DataFormat_pb2_grpc.py +4 -0
  413. feast/protos/feast/core/DataSource_pb2.py +74 -0
  414. feast/protos/feast/core/DataSource_pb2.pyi +598 -0
  415. feast/protos/feast/core/DataSource_pb2_grpc.py +4 -0
  416. feast/protos/feast/core/DatastoreTable_pb2.py +28 -0
  417. feast/protos/feast/core/DatastoreTable_pb2.pyi +67 -0
  418. feast/protos/feast/core/DatastoreTable_pb2_grpc.py +4 -0
  419. feast/protos/feast/core/Entity_pb2.py +39 -0
  420. feast/protos/feast/core/Entity_pb2.pyi +145 -0
  421. feast/protos/feast/core/Entity_pb2_grpc.py +4 -0
  422. feast/protos/feast/core/FeatureService_pb2.py +59 -0
  423. feast/protos/feast/core/FeatureService_pb2.pyi +312 -0
  424. feast/protos/feast/core/FeatureService_pb2_grpc.py +4 -0
  425. feast/protos/feast/core/FeatureTable_pb2.py +39 -0
  426. feast/protos/feast/core/FeatureTable_pb2.pyi +166 -0
  427. feast/protos/feast/core/FeatureTable_pb2_grpc.py +4 -0
  428. feast/protos/feast/core/FeatureViewProjection_pb2.py +33 -0
  429. feast/protos/feast/core/FeatureViewProjection_pb2.pyi +98 -0
  430. feast/protos/feast/core/FeatureViewProjection_pb2_grpc.py +4 -0
  431. feast/protos/feast/core/FeatureViewVersion_pb2.py +30 -0
  432. feast/protos/feast/core/FeatureViewVersion_pb2.pyi +87 -0
  433. feast/protos/feast/core/FeatureViewVersion_pb2_grpc.py +4 -0
  434. feast/protos/feast/core/FeatureView_pb2.py +46 -0
  435. feast/protos/feast/core/FeatureView_pb2.pyi +306 -0
  436. feast/protos/feast/core/FeatureView_pb2_grpc.py +4 -0
  437. feast/protos/feast/core/Feature_pb2.py +32 -0
  438. feast/protos/feast/core/Feature_pb2.pyi +87 -0
  439. feast/protos/feast/core/Feature_pb2_grpc.py +4 -0
  440. feast/protos/feast/core/InfraObject_pb2.py +33 -0
  441. feast/protos/feast/core/InfraObject_pb2.pyi +96 -0
  442. feast/protos/feast/core/InfraObject_pb2_grpc.py +4 -0
  443. feast/protos/feast/core/LabelView_pb2.py +43 -0
  444. feast/protos/feast/core/LabelView_pb2.pyi +195 -0
  445. feast/protos/feast/core/LabelView_pb2_grpc.py +4 -0
  446. feast/protos/feast/core/OnDemandFeatureView_pb2.py +56 -0
  447. feast/protos/feast/core/OnDemandFeatureView_pb2.pyi +283 -0
  448. feast/protos/feast/core/OnDemandFeatureView_pb2_grpc.py +4 -0
  449. feast/protos/feast/core/Permission_pb2.py +45 -0
  450. feast/protos/feast/core/Permission_pb2.pyi +198 -0
  451. feast/protos/feast/core/Permission_pb2_grpc.py +4 -0
  452. feast/protos/feast/core/Policy_pb2.py +35 -0
  453. feast/protos/feast/core/Policy_pb2.pyi +123 -0
  454. feast/protos/feast/core/Policy_pb2_grpc.py +4 -0
  455. feast/protos/feast/core/PrecomputedFeatureVector_pb2.py +31 -0
  456. feast/protos/feast/core/PrecomputedFeatureVector_pb2.pyi +76 -0
  457. feast/protos/feast/core/PrecomputedFeatureVector_pb2_grpc.py +4 -0
  458. feast/protos/feast/core/Project_pb2.py +36 -0
  459. feast/protos/feast/core/Project_pb2.pyi +119 -0
  460. feast/protos/feast/core/Project_pb2_grpc.py +4 -0
  461. feast/protos/feast/core/Registry_pb2.py +46 -0
  462. feast/protos/feast/core/Registry_pb2.pyi +150 -0
  463. feast/protos/feast/core/Registry_pb2_grpc.py +4 -0
  464. feast/protos/feast/core/SavedDataset_pb2.py +39 -0
  465. feast/protos/feast/core/SavedDataset_pb2.pyi +192 -0
  466. feast/protos/feast/core/SavedDataset_pb2_grpc.py +4 -0
  467. feast/protos/feast/core/SqliteTable_pb2.py +27 -0
  468. feast/protos/feast/core/SqliteTable_pb2.pyi +50 -0
  469. feast/protos/feast/core/SqliteTable_pb2_grpc.py +4 -0
  470. feast/protos/feast/core/Store_pb2.py +37 -0
  471. feast/protos/feast/core/Store_pb2.pyi +234 -0
  472. feast/protos/feast/core/Store_pb2_grpc.py +4 -0
  473. feast/protos/feast/core/StreamFeatureView_pb2.py +42 -0
  474. feast/protos/feast/core/StreamFeatureView_pb2.pyi +200 -0
  475. feast/protos/feast/core/StreamFeatureView_pb2_grpc.py +4 -0
  476. feast/protos/feast/core/Transformation_pb2.py +31 -0
  477. feast/protos/feast/core/Transformation_pb2.pyi +84 -0
  478. feast/protos/feast/core/Transformation_pb2_grpc.py +4 -0
  479. feast/protos/feast/core/ValidationProfile_pb2.py +37 -0
  480. feast/protos/feast/core/ValidationProfile_pb2.pyi +136 -0
  481. feast/protos/feast/core/ValidationProfile_pb2_grpc.py +4 -0
  482. feast/protos/feast/core/__init__.py +0 -0
  483. feast/protos/feast/registry/RegistryServer_pb2.py +240 -0
  484. feast/protos/feast/registry/RegistryServer_pb2.pyi +1946 -0
  485. feast/protos/feast/registry/RegistryServer_pb2_grpc.py +1744 -0
  486. feast/protos/feast/registry/__init__.py +0 -0
  487. feast/protos/feast/serving/Connector_pb2.py +39 -0
  488. feast/protos/feast/serving/Connector_pb2.pyi +97 -0
  489. feast/protos/feast/serving/Connector_pb2_grpc.py +66 -0
  490. feast/protos/feast/serving/GrpcServer_pb2.py +53 -0
  491. feast/protos/feast/serving/GrpcServer_pb2.pyi +163 -0
  492. feast/protos/feast/serving/GrpcServer_pb2_grpc.py +133 -0
  493. feast/protos/feast/serving/ServingService_pb2.py +65 -0
  494. feast/protos/feast/serving/ServingService_pb2.pyi +376 -0
  495. feast/protos/feast/serving/ServingService_pb2_grpc.py +101 -0
  496. feast/protos/feast/serving/TransformationService_pb2.py +39 -0
  497. feast/protos/feast/serving/TransformationService_pb2.pyi +136 -0
  498. feast/protos/feast/serving/TransformationService_pb2_grpc.py +99 -0
  499. feast/protos/feast/serving/__init__.py +0 -0
  500. feast/protos/feast/storage/Redis_pb2.py +28 -0
  501. feast/protos/feast/storage/Redis_pb2.pyi +54 -0
  502. feast/protos/feast/storage/Redis_pb2_grpc.py +4 -0
  503. feast/protos/feast/storage/__init__.py +0 -0
  504. feast/protos/feast/types/EntityKey_pb2.py +28 -0
  505. feast/protos/feast/types/EntityKey_pb2.pyi +51 -0
  506. feast/protos/feast/types/EntityKey_pb2_grpc.py +4 -0
  507. feast/protos/feast/types/Field_pb2.py +32 -0
  508. feast/protos/feast/types/Field_pb2.pyi +73 -0
  509. feast/protos/feast/types/Field_pb2_grpc.py +4 -0
  510. feast/protos/feast/types/Value_pb2.py +77 -0
  511. feast/protos/feast/types/Value_pb2.pyi +684 -0
  512. feast/protos/feast/types/Value_pb2_grpc.py +4 -0
  513. feast/protos/feast/types/__init__.py +0 -0
  514. feast/py.typed +0 -0
  515. feast/rag_retriever.py +329 -0
  516. feast/registry_server.py +1420 -0
  517. feast/repo_config.py +796 -0
  518. feast/repo_contents.py +63 -0
  519. feast/repo_operations.py +657 -0
  520. feast/rest_error_handler.py +109 -0
  521. feast/saved_dataset.py +353 -0
  522. feast/ssl_ca_trust_store_setup.py +22 -0
  523. feast/static/chat/index.html +129 -0
  524. feast/stream_feature_view.py +545 -0
  525. feast/table_format.py +564 -0
  526. feast/templates/athena/__init__.py +0 -0
  527. feast/templates/athena/feature_repo/__init__.py +0 -0
  528. feast/templates/athena/feature_repo/test_workflow.py +116 -0
  529. feast/templates/aws/__init__.py +0 -0
  530. feast/templates/aws/bootstrap.py +73 -0
  531. feast/templates/aws/feature_repo/__init__.py +0 -0
  532. feast/templates/aws/feature_repo/feature_definitions.py +146 -0
  533. feast/templates/aws/feature_repo/test_workflow.py +184 -0
  534. feast/templates/cassandra/__init__.py +0 -0
  535. feast/templates/cassandra/bootstrap.py +288 -0
  536. feast/templates/cassandra/feature_repo/__init__.py +0 -0
  537. feast/templates/cassandra/feature_repo/feature_definitions.py +141 -0
  538. feast/templates/cassandra/feature_repo/test_workflow.py +130 -0
  539. feast/templates/couchbase/__init__.py +0 -0
  540. feast/templates/couchbase/bootstrap.py +108 -0
  541. feast/templates/couchbase/feature_repo/__init__.py +0 -0
  542. feast/templates/couchbase/feature_repo/feature_definitions.py +136 -0
  543. feast/templates/couchbase/feature_repo/test_workflow.py +112 -0
  544. feast/templates/gcp/__init__.py +0 -0
  545. feast/templates/gcp/feature_repo/__init__.py +0 -0
  546. feast/templates/gcp/feature_repo/feature_definitions.py +150 -0
  547. feast/templates/gcp/feature_repo/test_workflow.py +180 -0
  548. feast/templates/hazelcast/__init__.py +0 -0
  549. feast/templates/hazelcast/bootstrap.py +178 -0
  550. feast/templates/hazelcast/feature_repo/__init__.py +0 -0
  551. feast/templates/hazelcast/feature_repo/feature_definitions.py +141 -0
  552. feast/templates/hazelcast/feature_repo/test_workflow.py +130 -0
  553. feast/templates/hbase/__init__.py +0 -0
  554. feast/templates/hbase/bootstrap.py +32 -0
  555. feast/templates/hbase/feature_repo/__init__.py +0 -0
  556. feast/templates/hbase/feature_repo/feature_definitions.py +141 -0
  557. feast/templates/hbase/feature_repo/test_workflow.py +130 -0
  558. feast/templates/local/__init__.py +0 -0
  559. feast/templates/local/bootstrap.py +64 -0
  560. feast/templates/local/feature_repo/__init__.py +0 -0
  561. feast/templates/local/feature_repo/feature_definitions.py +207 -0
  562. feast/templates/local/feature_repo/test_workflow.py +139 -0
  563. feast/templates/milvus/__init__.py +0 -0
  564. feast/templates/milvus/bootstrap.py +37 -0
  565. feast/templates/milvus/feature_repo/__init__.py +0 -0
  566. feast/templates/milvus/feature_repo/feature_definitions.py +150 -0
  567. feast/templates/milvus/feature_repo/test_workflow.py +130 -0
  568. feast/templates/minimal/__init__.py +0 -0
  569. feast/templates/minimal/feature_repo/__init__.py +0 -0
  570. feast/templates/postgres/__init__.py +0 -0
  571. feast/templates/postgres/bootstrap.py +82 -0
  572. feast/templates/postgres/feature_repo/__init__.py +0 -0
  573. feast/templates/postgres/feature_repo/feature_definitions.py +133 -0
  574. feast/templates/postgres/feature_repo/test_workflow.py +131 -0
  575. feast/templates/pytorch_nlp/__init__.py +1 -0
  576. feast/templates/pytorch_nlp/bootstrap.py +305 -0
  577. feast/templates/pytorch_nlp/feature_repo/__init__.py +1 -0
  578. feast/templates/pytorch_nlp/feature_repo/example_repo.py +277 -0
  579. feast/templates/pytorch_nlp/feature_repo/static_artifacts.py +139 -0
  580. feast/templates/pytorch_nlp/feature_repo/test_workflow.py +350 -0
  581. feast/templates/ray/__init__.py +0 -0
  582. feast/templates/ray/bootstrap.py +93 -0
  583. feast/templates/ray/feature_repo/__init__.py +0 -0
  584. feast/templates/ray/feature_repo/feature_definitions.py +140 -0
  585. feast/templates/ray/feature_repo/test_workflow.py +193 -0
  586. feast/templates/ray_rag/__init__.py +1 -0
  587. feast/templates/ray_rag/bootstrap.py +90 -0
  588. feast/templates/ray_rag/feature_repo/__init__.py +1 -0
  589. feast/templates/ray_rag/feature_repo/feature_definitions.py +139 -0
  590. feast/templates/ray_rag/feature_repo/test_workflow.py +89 -0
  591. feast/templates/snowflake/__init__.py +0 -0
  592. feast/templates/snowflake/bootstrap.py +91 -0
  593. feast/templates/snowflake/feature_repo/__init__.py +0 -0
  594. feast/templates/snowflake/feature_repo/driver_repo.py +153 -0
  595. feast/templates/snowflake/test_workflow.py +192 -0
  596. feast/templates/spark/__init__.py +0 -0
  597. feast/templates/spark/bootstrap.py +37 -0
  598. feast/templates/spark/feature_repo/__init__.py +0 -0
  599. feast/templates/spark/feature_repo/feature_definitions.py +77 -0
  600. feast/templates/spark/feature_repo/test_workflow.py +124 -0
  601. feast/torch_wrapper.py +39 -0
  602. feast/transformation/__init__.py +0 -0
  603. feast/transformation/base.py +147 -0
  604. feast/transformation/factory.py +25 -0
  605. feast/transformation/flink_transformation.py +78 -0
  606. feast/transformation/mode.py +12 -0
  607. feast/transformation/pandas_transformation.py +152 -0
  608. feast/transformation/python_transformation.py +170 -0
  609. feast/transformation/ray_transformation.py +293 -0
  610. feast/transformation/spark_transformation.py +125 -0
  611. feast/transformation/sql_transformation.py +8 -0
  612. feast/transformation/substrait_transformation.py +213 -0
  613. feast/transformation_server.py +78 -0
  614. feast/type_map.py +2288 -0
  615. feast/types.py +490 -0
  616. feast/ui/__init__.py +0 -0
  617. feast/ui/build/asset-manifest.json +1032 -0
  618. feast/ui/build/favicon.ico +0 -0
  619. feast/ui/build/feast-favicon-300x300.png +0 -0
  620. feast/ui/build/feast-favicon-36x36.png +0 -0
  621. feast/ui/build/index.html +1 -0
  622. feast/ui/build/manifest.json +25 -0
  623. feast/ui/build/projects-list.json +11 -0
  624. feast/ui/build/robots.txt +3 -0
  625. feast/ui/build/static/css/main.d54c2a3e.css +2 -0
  626. feast/ui/build/static/css/main.d54c2a3e.css.map +1 -0
  627. feast/ui/build/static/js/icon..569adb91.chunk.js +2 -0
  628. feast/ui/build/static/js/icon..569adb91.chunk.js.map +1 -0
  629. feast/ui/build/static/js/icon.accessibility.356e2a75.chunk.js +2 -0
  630. feast/ui/build/static/js/icon.accessibility.356e2a75.chunk.js.map +1 -0
  631. feast/ui/build/static/js/icon.aggregate.307f39bc.chunk.js +2 -0
  632. feast/ui/build/static/js/icon.aggregate.307f39bc.chunk.js.map +1 -0
  633. feast/ui/build/static/js/icon.alert.e35f353f.chunk.js +2 -0
  634. feast/ui/build/static/js/icon.alert.e35f353f.chunk.js.map +1 -0
  635. feast/ui/build/static/js/icon.analyzeEvent.3653139e.chunk.js +2 -0
  636. feast/ui/build/static/js/icon.analyzeEvent.3653139e.chunk.js.map +1 -0
  637. feast/ui/build/static/js/icon.analyze_event.12119011.chunk.js +2 -0
  638. feast/ui/build/static/js/icon.analyze_event.12119011.chunk.js.map +1 -0
  639. feast/ui/build/static/js/icon.annotation.921b0bba.chunk.js +2 -0
  640. feast/ui/build/static/js/icon.annotation.921b0bba.chunk.js.map +1 -0
  641. feast/ui/build/static/js/icon.anomaly_chart.9edd5298.chunk.js +2 -0
  642. feast/ui/build/static/js/icon.anomaly_chart.9edd5298.chunk.js.map +1 -0
  643. feast/ui/build/static/js/icon.anomaly_swim_lane.22eb0cf9.chunk.js +2 -0
  644. feast/ui/build/static/js/icon.anomaly_swim_lane.22eb0cf9.chunk.js.map +1 -0
  645. feast/ui/build/static/js/icon.apm_trace.d159ddfd.chunk.js +2 -0
  646. feast/ui/build/static/js/icon.apm_trace.d159ddfd.chunk.js.map +1 -0
  647. feast/ui/build/static/js/icon.app_add_data.ae1f94f7.chunk.js +2 -0
  648. feast/ui/build/static/js/icon.app_add_data.ae1f94f7.chunk.js.map +1 -0
  649. feast/ui/build/static/js/icon.app_advanced_settings.3a59f17e.chunk.js +2 -0
  650. feast/ui/build/static/js/icon.app_advanced_settings.3a59f17e.chunk.js.map +1 -0
  651. feast/ui/build/static/js/icon.app_agent.267cd7f1.chunk.js +2 -0
  652. feast/ui/build/static/js/icon.app_agent.267cd7f1.chunk.js.map +1 -0
  653. feast/ui/build/static/js/icon.app_apm.57b25c37.chunk.js +2 -0
  654. feast/ui/build/static/js/icon.app_apm.57b25c37.chunk.js.map +1 -0
  655. feast/ui/build/static/js/icon.app_app_search.bb6ea371.chunk.js +2 -0
  656. feast/ui/build/static/js/icon.app_app_search.bb6ea371.chunk.js.map +1 -0
  657. feast/ui/build/static/js/icon.app_auditbeat.36cad572.chunk.js +2 -0
  658. feast/ui/build/static/js/icon.app_auditbeat.36cad572.chunk.js.map +1 -0
  659. feast/ui/build/static/js/icon.app_canvas.1ef69b77.chunk.js +2 -0
  660. feast/ui/build/static/js/icon.app_canvas.1ef69b77.chunk.js.map +1 -0
  661. feast/ui/build/static/js/icon.app_cases.e1e2fe7e.chunk.js +2 -0
  662. feast/ui/build/static/js/icon.app_cases.e1e2fe7e.chunk.js.map +1 -0
  663. feast/ui/build/static/js/icon.app_code.29e18db1.chunk.js +2 -0
  664. feast/ui/build/static/js/icon.app_code.29e18db1.chunk.js.map +1 -0
  665. feast/ui/build/static/js/icon.app_console.1e5f8deb.chunk.js +2 -0
  666. feast/ui/build/static/js/icon.app_console.1e5f8deb.chunk.js.map +1 -0
  667. feast/ui/build/static/js/icon.app_cross_cluster_replication.58460936.chunk.js +2 -0
  668. feast/ui/build/static/js/icon.app_cross_cluster_replication.58460936.chunk.js.map +1 -0
  669. feast/ui/build/static/js/icon.app_dashboard.512d9586.chunk.js +2 -0
  670. feast/ui/build/static/js/icon.app_dashboard.512d9586.chunk.js.map +1 -0
  671. feast/ui/build/static/js/icon.app_devtools.c6d3ed0e.chunk.js +2 -0
  672. feast/ui/build/static/js/icon.app_devtools.c6d3ed0e.chunk.js.map +1 -0
  673. feast/ui/build/static/js/icon.app_discover.ced50348.chunk.js +2 -0
  674. feast/ui/build/static/js/icon.app_discover.ced50348.chunk.js.map +1 -0
  675. feast/ui/build/static/js/icon.app_ems.0eefe8e9.chunk.js +2 -0
  676. feast/ui/build/static/js/icon.app_ems.0eefe8e9.chunk.js.map +1 -0
  677. feast/ui/build/static/js/icon.app_filebeat.c9dcc5da.chunk.js +2 -0
  678. feast/ui/build/static/js/icon.app_filebeat.c9dcc5da.chunk.js.map +1 -0
  679. feast/ui/build/static/js/icon.app_fleet.e1e24753.chunk.js +2 -0
  680. feast/ui/build/static/js/icon.app_fleet.e1e24753.chunk.js.map +1 -0
  681. feast/ui/build/static/js/icon.app_gis.36c531a9.chunk.js +2 -0
  682. feast/ui/build/static/js/icon.app_gis.36c531a9.chunk.js.map +1 -0
  683. feast/ui/build/static/js/icon.app_graph.72cb7727.chunk.js +2 -0
  684. feast/ui/build/static/js/icon.app_graph.72cb7727.chunk.js.map +1 -0
  685. feast/ui/build/static/js/icon.app_grok.9425093f.chunk.js +2 -0
  686. feast/ui/build/static/js/icon.app_grok.9425093f.chunk.js.map +1 -0
  687. feast/ui/build/static/js/icon.app_heartbeat.73135522.chunk.js +2 -0
  688. feast/ui/build/static/js/icon.app_heartbeat.73135522.chunk.js.map +1 -0
  689. feast/ui/build/static/js/icon.app_index_management.d5f2766a.chunk.js +2 -0
  690. feast/ui/build/static/js/icon.app_index_management.d5f2766a.chunk.js.map +1 -0
  691. feast/ui/build/static/js/icon.app_index_pattern.511122bb.chunk.js +2 -0
  692. feast/ui/build/static/js/icon.app_index_pattern.511122bb.chunk.js.map +1 -0
  693. feast/ui/build/static/js/icon.app_index_rollup.a89a5615.chunk.js +2 -0
  694. feast/ui/build/static/js/icon.app_index_rollup.a89a5615.chunk.js.map +1 -0
  695. feast/ui/build/static/js/icon.app_lens.fa51a295.chunk.js +2 -0
  696. feast/ui/build/static/js/icon.app_lens.fa51a295.chunk.js.map +1 -0
  697. feast/ui/build/static/js/icon.app_logs.17f0d84a.chunk.js +2 -0
  698. feast/ui/build/static/js/icon.app_logs.17f0d84a.chunk.js.map +1 -0
  699. feast/ui/build/static/js/icon.app_management.0a72b8d0.chunk.js +2 -0
  700. feast/ui/build/static/js/icon.app_management.0a72b8d0.chunk.js.map +1 -0
  701. feast/ui/build/static/js/icon.app_metricbeat.a3cf45ca.chunk.js +2 -0
  702. feast/ui/build/static/js/icon.app_metricbeat.a3cf45ca.chunk.js.map +1 -0
  703. feast/ui/build/static/js/icon.app_metrics.9fc2926a.chunk.js +2 -0
  704. feast/ui/build/static/js/icon.app_metrics.9fc2926a.chunk.js.map +1 -0
  705. feast/ui/build/static/js/icon.app_ml.45f1796a.chunk.js +2 -0
  706. feast/ui/build/static/js/icon.app_ml.45f1796a.chunk.js.map +1 -0
  707. feast/ui/build/static/js/icon.app_monitoring.539c0cbd.chunk.js +2 -0
  708. feast/ui/build/static/js/icon.app_monitoring.539c0cbd.chunk.js.map +1 -0
  709. feast/ui/build/static/js/icon.app_notebook.04b40a3c.chunk.js +2 -0
  710. feast/ui/build/static/js/icon.app_notebook.04b40a3c.chunk.js.map +1 -0
  711. feast/ui/build/static/js/icon.app_packetbeat.bb7c7c19.chunk.js +2 -0
  712. feast/ui/build/static/js/icon.app_packetbeat.bb7c7c19.chunk.js.map +1 -0
  713. feast/ui/build/static/js/icon.app_pipeline.b1502b09.chunk.js +2 -0
  714. feast/ui/build/static/js/icon.app_pipeline.b1502b09.chunk.js.map +1 -0
  715. feast/ui/build/static/js/icon.app_recently_viewed.f1129567.chunk.js +2 -0
  716. feast/ui/build/static/js/icon.app_recently_viewed.f1129567.chunk.js.map +1 -0
  717. feast/ui/build/static/js/icon.app_reporting.554a2a2d.chunk.js +2 -0
  718. feast/ui/build/static/js/icon.app_reporting.554a2a2d.chunk.js.map +1 -0
  719. feast/ui/build/static/js/icon.app_saved_objects.17462a80.chunk.js +2 -0
  720. feast/ui/build/static/js/icon.app_saved_objects.17462a80.chunk.js.map +1 -0
  721. feast/ui/build/static/js/icon.app_search_profiler.207c54d0.chunk.js +2 -0
  722. feast/ui/build/static/js/icon.app_search_profiler.207c54d0.chunk.js.map +1 -0
  723. feast/ui/build/static/js/icon.app_security.fc9e4212.chunk.js +2 -0
  724. feast/ui/build/static/js/icon.app_security.fc9e4212.chunk.js.map +1 -0
  725. feast/ui/build/static/js/icon.app_security_analytics.872578e7.chunk.js +2 -0
  726. feast/ui/build/static/js/icon.app_security_analytics.872578e7.chunk.js.map +1 -0
  727. feast/ui/build/static/js/icon.app_spaces.8b34d39a.chunk.js +2 -0
  728. feast/ui/build/static/js/icon.app_spaces.8b34d39a.chunk.js.map +1 -0
  729. feast/ui/build/static/js/icon.app_sql.74f153c7.chunk.js +2 -0
  730. feast/ui/build/static/js/icon.app_sql.74f153c7.chunk.js.map +1 -0
  731. feast/ui/build/static/js/icon.app_timelion.187be25b.chunk.js +2 -0
  732. feast/ui/build/static/js/icon.app_timelion.187be25b.chunk.js.map +1 -0
  733. feast/ui/build/static/js/icon.app_upgrade_assistant.a64b434b.chunk.js +2 -0
  734. feast/ui/build/static/js/icon.app_upgrade_assistant.a64b434b.chunk.js.map +1 -0
  735. feast/ui/build/static/js/icon.app_uptime.74fcd358.chunk.js +2 -0
  736. feast/ui/build/static/js/icon.app_uptime.74fcd358.chunk.js.map +1 -0
  737. feast/ui/build/static/js/icon.app_users_roles.17436948.chunk.js +2 -0
  738. feast/ui/build/static/js/icon.app_users_roles.17436948.chunk.js.map +1 -0
  739. feast/ui/build/static/js/icon.app_visualize.948f4d0f.chunk.js +2 -0
  740. feast/ui/build/static/js/icon.app_visualize.948f4d0f.chunk.js.map +1 -0
  741. feast/ui/build/static/js/icon.app_vulnerability_management.3691447a.chunk.js +2 -0
  742. feast/ui/build/static/js/icon.app_vulnerability_management.3691447a.chunk.js.map +1 -0
  743. feast/ui/build/static/js/icon.app_watches.b3af8e38.chunk.js +2 -0
  744. feast/ui/build/static/js/icon.app_watches.b3af8e38.chunk.js.map +1 -0
  745. feast/ui/build/static/js/icon.app_workplace_search.1da5abab.chunk.js +2 -0
  746. feast/ui/build/static/js/icon.app_workplace_search.1da5abab.chunk.js.map +1 -0
  747. feast/ui/build/static/js/icon.apps.a8ed76b1.chunk.js +2 -0
  748. feast/ui/build/static/js/icon.apps.a8ed76b1.chunk.js.map +1 -0
  749. feast/ui/build/static/js/icon.arrowEnd.f2d8d0be.chunk.js +2 -0
  750. feast/ui/build/static/js/icon.arrowEnd.f2d8d0be.chunk.js.map +1 -0
  751. feast/ui/build/static/js/icon.arrowStart.62c5a8a5.chunk.js +2 -0
  752. feast/ui/build/static/js/icon.arrowStart.62c5a8a5.chunk.js.map +1 -0
  753. feast/ui/build/static/js/icon.arrow_down.50a8ddfa.chunk.js +2 -0
  754. feast/ui/build/static/js/icon.arrow_down.50a8ddfa.chunk.js.map +1 -0
  755. feast/ui/build/static/js/icon.arrow_left.b7459559.chunk.js +2 -0
  756. feast/ui/build/static/js/icon.arrow_left.b7459559.chunk.js.map +1 -0
  757. feast/ui/build/static/js/icon.arrow_right.50527893.chunk.js +2 -0
  758. feast/ui/build/static/js/icon.arrow_right.50527893.chunk.js.map +1 -0
  759. feast/ui/build/static/js/icon.arrow_up.c7168b37.chunk.js +2 -0
  760. feast/ui/build/static/js/icon.arrow_up.c7168b37.chunk.js.map +1 -0
  761. feast/ui/build/static/js/icon.article.9161a48f.chunk.js +2 -0
  762. feast/ui/build/static/js/icon.article.9161a48f.chunk.js.map +1 -0
  763. feast/ui/build/static/js/icon.asterisk.0467a4ea.chunk.js +2 -0
  764. feast/ui/build/static/js/icon.asterisk.0467a4ea.chunk.js.map +1 -0
  765. feast/ui/build/static/js/icon.at.754e0815.chunk.js +2 -0
  766. feast/ui/build/static/js/icon.at.754e0815.chunk.js.map +1 -0
  767. feast/ui/build/static/js/icon.beaker.095b77ab.chunk.js +2 -0
  768. feast/ui/build/static/js/icon.beaker.095b77ab.chunk.js.map +1 -0
  769. feast/ui/build/static/js/icon.bell.f6d86a3c.chunk.js +2 -0
  770. feast/ui/build/static/js/icon.bell.f6d86a3c.chunk.js.map +1 -0
  771. feast/ui/build/static/js/icon.bellSlash.3b791313.chunk.js +2 -0
  772. feast/ui/build/static/js/icon.bellSlash.3b791313.chunk.js.map +1 -0
  773. feast/ui/build/static/js/icon.beta.61ac7e99.chunk.js +2 -0
  774. feast/ui/build/static/js/icon.beta.61ac7e99.chunk.js.map +1 -0
  775. feast/ui/build/static/js/icon.bolt.caa06741.chunk.js +2 -0
  776. feast/ui/build/static/js/icon.bolt.caa06741.chunk.js.map +1 -0
  777. feast/ui/build/static/js/icon.boxes_horizontal.ee50cd82.chunk.js +2 -0
  778. feast/ui/build/static/js/icon.boxes_horizontal.ee50cd82.chunk.js.map +1 -0
  779. feast/ui/build/static/js/icon.boxes_vertical.9d043c37.chunk.js +2 -0
  780. feast/ui/build/static/js/icon.boxes_vertical.9d043c37.chunk.js.map +1 -0
  781. feast/ui/build/static/js/icon.branch.c761b9f7.chunk.js +2 -0
  782. feast/ui/build/static/js/icon.branch.c761b9f7.chunk.js.map +1 -0
  783. feast/ui/build/static/js/icon.branchUser.456d2686.chunk.js +2 -0
  784. feast/ui/build/static/js/icon.branchUser.456d2686.chunk.js.map +1 -0
  785. feast/ui/build/static/js/icon.broom.4a54cd6a.chunk.js +2 -0
  786. feast/ui/build/static/js/icon.broom.4a54cd6a.chunk.js.map +1 -0
  787. feast/ui/build/static/js/icon.brush.007c4735.chunk.js +2 -0
  788. feast/ui/build/static/js/icon.brush.007c4735.chunk.js.map +1 -0
  789. feast/ui/build/static/js/icon.bug.6fc8512b.chunk.js +2 -0
  790. feast/ui/build/static/js/icon.bug.6fc8512b.chunk.js.map +1 -0
  791. feast/ui/build/static/js/icon.bullseye.193b420f.chunk.js +2 -0
  792. feast/ui/build/static/js/icon.bullseye.193b420f.chunk.js.map +1 -0
  793. feast/ui/build/static/js/icon.calendar.f54b5d3d.chunk.js +2 -0
  794. feast/ui/build/static/js/icon.calendar.f54b5d3d.chunk.js.map +1 -0
  795. feast/ui/build/static/js/icon.change_point_detection.da1d64dd.chunk.js +2 -0
  796. feast/ui/build/static/js/icon.change_point_detection.da1d64dd.chunk.js.map +1 -0
  797. feast/ui/build/static/js/icon.check.b921ee22.chunk.js +2 -0
  798. feast/ui/build/static/js/icon.check.b921ee22.chunk.js.map +1 -0
  799. feast/ui/build/static/js/icon.checkInCircleFilled.fd1da5d4.chunk.js +2 -0
  800. feast/ui/build/static/js/icon.checkInCircleFilled.fd1da5d4.chunk.js.map +1 -0
  801. feast/ui/build/static/js/icon.cheer.6dfd7ece.chunk.js +2 -0
  802. feast/ui/build/static/js/icon.cheer.6dfd7ece.chunk.js.map +1 -0
  803. feast/ui/build/static/js/icon.clickLeft.9610e26a.chunk.js +2 -0
  804. feast/ui/build/static/js/icon.clickLeft.9610e26a.chunk.js.map +1 -0
  805. feast/ui/build/static/js/icon.clickRight.c3cd2e3c.chunk.js +2 -0
  806. feast/ui/build/static/js/icon.clickRight.c3cd2e3c.chunk.js.map +1 -0
  807. feast/ui/build/static/js/icon.clock.23554007.chunk.js +2 -0
  808. feast/ui/build/static/js/icon.clock.23554007.chunk.js.map +1 -0
  809. feast/ui/build/static/js/icon.clockCounter.1abc49eb.chunk.js +2 -0
  810. feast/ui/build/static/js/icon.clockCounter.1abc49eb.chunk.js.map +1 -0
  811. feast/ui/build/static/js/icon.cloudDrizzle.fc79f057.chunk.js +2 -0
  812. feast/ui/build/static/js/icon.cloudDrizzle.fc79f057.chunk.js.map +1 -0
  813. feast/ui/build/static/js/icon.cloudStormy.22bc67b9.chunk.js +2 -0
  814. feast/ui/build/static/js/icon.cloudStormy.22bc67b9.chunk.js.map +1 -0
  815. feast/ui/build/static/js/icon.cloudSunny.4b69a889.chunk.js +2 -0
  816. feast/ui/build/static/js/icon.cloudSunny.4b69a889.chunk.js.map +1 -0
  817. feast/ui/build/static/js/icon.cluster.8b49b7f9.chunk.js +2 -0
  818. feast/ui/build/static/js/icon.cluster.8b49b7f9.chunk.js.map +1 -0
  819. feast/ui/build/static/js/icon.color.8bceea47.chunk.js +2 -0
  820. feast/ui/build/static/js/icon.color.8bceea47.chunk.js.map +1 -0
  821. feast/ui/build/static/js/icon.compute.9b959f63.chunk.js +2 -0
  822. feast/ui/build/static/js/icon.compute.9b959f63.chunk.js.map +1 -0
  823. feast/ui/build/static/js/icon.console.d0edb577.chunk.js +2 -0
  824. feast/ui/build/static/js/icon.console.d0edb577.chunk.js.map +1 -0
  825. feast/ui/build/static/js/icon.container.63756e89.chunk.js +2 -0
  826. feast/ui/build/static/js/icon.container.63756e89.chunk.js.map +1 -0
  827. feast/ui/build/static/js/icon.continuityAbove.68021180.chunk.js +2 -0
  828. feast/ui/build/static/js/icon.continuityAbove.68021180.chunk.js.map +1 -0
  829. feast/ui/build/static/js/icon.continuityAboveBelow.cc7c64cf.chunk.js +2 -0
  830. feast/ui/build/static/js/icon.continuityAboveBelow.cc7c64cf.chunk.js.map +1 -0
  831. feast/ui/build/static/js/icon.continuityBelow.e3a3de3b.chunk.js +2 -0
  832. feast/ui/build/static/js/icon.continuityBelow.e3a3de3b.chunk.js.map +1 -0
  833. feast/ui/build/static/js/icon.continuityWithin.588f6348.chunk.js +2 -0
  834. feast/ui/build/static/js/icon.continuityWithin.588f6348.chunk.js.map +1 -0
  835. feast/ui/build/static/js/icon.controls_horizontal.23e13bae.chunk.js +2 -0
  836. feast/ui/build/static/js/icon.controls_horizontal.23e13bae.chunk.js.map +1 -0
  837. feast/ui/build/static/js/icon.controls_vertical.bb2f3c4d.chunk.js +2 -0
  838. feast/ui/build/static/js/icon.controls_vertical.bb2f3c4d.chunk.js.map +1 -0
  839. feast/ui/build/static/js/icon.copy.eb0570fd.chunk.js +2 -0
  840. feast/ui/build/static/js/icon.copy.eb0570fd.chunk.js.map +1 -0
  841. feast/ui/build/static/js/icon.copy_clipboard.6906cf96.chunk.js +2 -0
  842. feast/ui/build/static/js/icon.copy_clipboard.6906cf96.chunk.js.map +1 -0
  843. feast/ui/build/static/js/icon.cross.0301755e.chunk.js +2 -0
  844. feast/ui/build/static/js/icon.cross.0301755e.chunk.js.map +1 -0
  845. feast/ui/build/static/js/icon.crossInCircle.de57685a.chunk.js +2 -0
  846. feast/ui/build/static/js/icon.crossInCircle.de57685a.chunk.js.map +1 -0
  847. feast/ui/build/static/js/icon.cross_in_circle.1262d486.chunk.js +2 -0
  848. feast/ui/build/static/js/icon.cross_in_circle.1262d486.chunk.js.map +1 -0
  849. feast/ui/build/static/js/icon.crosshairs.8b5f25b3.chunk.js +2 -0
  850. feast/ui/build/static/js/icon.crosshairs.8b5f25b3.chunk.js.map +1 -0
  851. feast/ui/build/static/js/icon.currency.8e52d339.chunk.js +2 -0
  852. feast/ui/build/static/js/icon.currency.8e52d339.chunk.js.map +1 -0
  853. feast/ui/build/static/js/icon.cut.3f8bf368.chunk.js +2 -0
  854. feast/ui/build/static/js/icon.cut.3f8bf368.chunk.js.map +1 -0
  855. feast/ui/build/static/js/icon.database.cdd45416.chunk.js +2 -0
  856. feast/ui/build/static/js/icon.database.cdd45416.chunk.js.map +1 -0
  857. feast/ui/build/static/js/icon.desktop.4728299d.chunk.js +2 -0
  858. feast/ui/build/static/js/icon.desktop.4728299d.chunk.js.map +1 -0
  859. feast/ui/build/static/js/icon.diff.6d1894fc.chunk.js +2 -0
  860. feast/ui/build/static/js/icon.diff.6d1894fc.chunk.js.map +1 -0
  861. feast/ui/build/static/js/icon.discuss.4e0e796d.chunk.js +2 -0
  862. feast/ui/build/static/js/icon.discuss.4e0e796d.chunk.js.map +1 -0
  863. feast/ui/build/static/js/icon.document.9ec9ae06.chunk.js +2 -0
  864. feast/ui/build/static/js/icon.document.9ec9ae06.chunk.js.map +1 -0
  865. feast/ui/build/static/js/icon.documentEdit.8c4e6fd4.chunk.js +2 -0
  866. feast/ui/build/static/js/icon.documentEdit.8c4e6fd4.chunk.js.map +1 -0
  867. feast/ui/build/static/js/icon.documentation.29d29514.chunk.js +2 -0
  868. feast/ui/build/static/js/icon.documentation.29d29514.chunk.js.map +1 -0
  869. feast/ui/build/static/js/icon.documents.7aa1582f.chunk.js +2 -0
  870. feast/ui/build/static/js/icon.documents.7aa1582f.chunk.js.map +1 -0
  871. feast/ui/build/static/js/icon.dot.a0097d3a.chunk.js +2 -0
  872. feast/ui/build/static/js/icon.dot.a0097d3a.chunk.js.map +1 -0
  873. feast/ui/build/static/js/icon.dotInCircle.48a7c142.chunk.js +2 -0
  874. feast/ui/build/static/js/icon.dotInCircle.48a7c142.chunk.js.map +1 -0
  875. feast/ui/build/static/js/icon.doubleArrowLeft.4a6d5430.chunk.js +2 -0
  876. feast/ui/build/static/js/icon.doubleArrowLeft.4a6d5430.chunk.js.map +1 -0
  877. feast/ui/build/static/js/icon.doubleArrowRight.28e17ef7.chunk.js +2 -0
  878. feast/ui/build/static/js/icon.doubleArrowRight.28e17ef7.chunk.js.map +1 -0
  879. feast/ui/build/static/js/icon.download.c581bf2d.chunk.js +2 -0
  880. feast/ui/build/static/js/icon.download.c581bf2d.chunk.js.map +1 -0
  881. feast/ui/build/static/js/icon.editorDistributeHorizontal.9e330f89.chunk.js +2 -0
  882. feast/ui/build/static/js/icon.editorDistributeHorizontal.9e330f89.chunk.js.map +1 -0
  883. feast/ui/build/static/js/icon.editorDistributeVertical.fde4067e.chunk.js +2 -0
  884. feast/ui/build/static/js/icon.editorDistributeVertical.fde4067e.chunk.js.map +1 -0
  885. feast/ui/build/static/js/icon.editorItemAlignBottom.a33e5269.chunk.js +2 -0
  886. feast/ui/build/static/js/icon.editorItemAlignBottom.a33e5269.chunk.js.map +1 -0
  887. feast/ui/build/static/js/icon.editorItemAlignCenter.c71dc9ca.chunk.js +2 -0
  888. feast/ui/build/static/js/icon.editorItemAlignCenter.c71dc9ca.chunk.js.map +1 -0
  889. feast/ui/build/static/js/icon.editorItemAlignLeft.a42c7014.chunk.js +2 -0
  890. feast/ui/build/static/js/icon.editorItemAlignLeft.a42c7014.chunk.js.map +1 -0
  891. feast/ui/build/static/js/icon.editorItemAlignMiddle.342f527e.chunk.js +2 -0
  892. feast/ui/build/static/js/icon.editorItemAlignMiddle.342f527e.chunk.js.map +1 -0
  893. feast/ui/build/static/js/icon.editorItemAlignRight.5efb739b.chunk.js +2 -0
  894. feast/ui/build/static/js/icon.editorItemAlignRight.5efb739b.chunk.js.map +1 -0
  895. feast/ui/build/static/js/icon.editorItemAlignTop.cc590eca.chunk.js +2 -0
  896. feast/ui/build/static/js/icon.editorItemAlignTop.cc590eca.chunk.js.map +1 -0
  897. feast/ui/build/static/js/icon.editorPositionBottomLeft.304a04fc.chunk.js +2 -0
  898. feast/ui/build/static/js/icon.editorPositionBottomLeft.304a04fc.chunk.js.map +1 -0
  899. feast/ui/build/static/js/icon.editorPositionBottomRight.264258f5.chunk.js +2 -0
  900. feast/ui/build/static/js/icon.editorPositionBottomRight.264258f5.chunk.js.map +1 -0
  901. feast/ui/build/static/js/icon.editorPositionTopLeft.f8ee5320.chunk.js +2 -0
  902. feast/ui/build/static/js/icon.editorPositionTopLeft.f8ee5320.chunk.js.map +1 -0
  903. feast/ui/build/static/js/icon.editorPositionTopRight.bc9995ec.chunk.js +2 -0
  904. feast/ui/build/static/js/icon.editorPositionTopRight.bc9995ec.chunk.js.map +1 -0
  905. feast/ui/build/static/js/icon.editor_align_center.8bef7901.chunk.js +2 -0
  906. feast/ui/build/static/js/icon.editor_align_center.8bef7901.chunk.js.map +1 -0
  907. feast/ui/build/static/js/icon.editor_align_left.dea80635.chunk.js +2 -0
  908. feast/ui/build/static/js/icon.editor_align_left.dea80635.chunk.js.map +1 -0
  909. feast/ui/build/static/js/icon.editor_align_right.a0847c47.chunk.js +2 -0
  910. feast/ui/build/static/js/icon.editor_align_right.a0847c47.chunk.js.map +1 -0
  911. feast/ui/build/static/js/icon.editor_bold.130b1e20.chunk.js +2 -0
  912. feast/ui/build/static/js/icon.editor_bold.130b1e20.chunk.js.map +1 -0
  913. feast/ui/build/static/js/icon.editor_checklist.8db3a236.chunk.js +2 -0
  914. feast/ui/build/static/js/icon.editor_checklist.8db3a236.chunk.js.map +1 -0
  915. feast/ui/build/static/js/icon.editor_code_block.78fbf146.chunk.js +2 -0
  916. feast/ui/build/static/js/icon.editor_code_block.78fbf146.chunk.js.map +1 -0
  917. feast/ui/build/static/js/icon.editor_comment.f845d5cd.chunk.js +2 -0
  918. feast/ui/build/static/js/icon.editor_comment.f845d5cd.chunk.js.map +1 -0
  919. feast/ui/build/static/js/icon.editor_heading.33a773d6.chunk.js +2 -0
  920. feast/ui/build/static/js/icon.editor_heading.33a773d6.chunk.js.map +1 -0
  921. feast/ui/build/static/js/icon.editor_italic.38ad0328.chunk.js +2 -0
  922. feast/ui/build/static/js/icon.editor_italic.38ad0328.chunk.js.map +1 -0
  923. feast/ui/build/static/js/icon.editor_link.67963831.chunk.js +2 -0
  924. feast/ui/build/static/js/icon.editor_link.67963831.chunk.js.map +1 -0
  925. feast/ui/build/static/js/icon.editor_ordered_list.b1a6d0c3.chunk.js +2 -0
  926. feast/ui/build/static/js/icon.editor_ordered_list.b1a6d0c3.chunk.js.map +1 -0
  927. feast/ui/build/static/js/icon.editor_redo.2b23ed60.chunk.js +2 -0
  928. feast/ui/build/static/js/icon.editor_redo.2b23ed60.chunk.js.map +1 -0
  929. feast/ui/build/static/js/icon.editor_strike.89aaac3f.chunk.js +2 -0
  930. feast/ui/build/static/js/icon.editor_strike.89aaac3f.chunk.js.map +1 -0
  931. feast/ui/build/static/js/icon.editor_table.ff0360bd.chunk.js +2 -0
  932. feast/ui/build/static/js/icon.editor_table.ff0360bd.chunk.js.map +1 -0
  933. feast/ui/build/static/js/icon.editor_underline.a5d0d87f.chunk.js +2 -0
  934. feast/ui/build/static/js/icon.editor_underline.a5d0d87f.chunk.js.map +1 -0
  935. feast/ui/build/static/js/icon.editor_undo.9a9f3c2e.chunk.js +2 -0
  936. feast/ui/build/static/js/icon.editor_undo.9a9f3c2e.chunk.js.map +1 -0
  937. feast/ui/build/static/js/icon.editor_unordered_list.478631fc.chunk.js +2 -0
  938. feast/ui/build/static/js/icon.editor_unordered_list.478631fc.chunk.js.map +1 -0
  939. feast/ui/build/static/js/icon.email.526f5590.chunk.js +2 -0
  940. feast/ui/build/static/js/icon.email.526f5590.chunk.js.map +1 -0
  941. feast/ui/build/static/js/icon.endpoint.5e0a3035.chunk.js +2 -0
  942. feast/ui/build/static/js/icon.endpoint.5e0a3035.chunk.js.map +1 -0
  943. feast/ui/build/static/js/icon.eql.648bf108.chunk.js +2 -0
  944. feast/ui/build/static/js/icon.eql.648bf108.chunk.js.map +1 -0
  945. feast/ui/build/static/js/icon.eraser.69c5b38d.chunk.js +2 -0
  946. feast/ui/build/static/js/icon.eraser.69c5b38d.chunk.js.map +1 -0
  947. feast/ui/build/static/js/icon.error.0a5d8dd9.chunk.js +2 -0
  948. feast/ui/build/static/js/icon.error.0a5d8dd9.chunk.js.map +1 -0
  949. feast/ui/build/static/js/icon.errorFilled.b02d7f1b.chunk.js +2 -0
  950. feast/ui/build/static/js/icon.errorFilled.b02d7f1b.chunk.js.map +1 -0
  951. feast/ui/build/static/js/icon.esqlVis.8fb5121d.chunk.js +2 -0
  952. feast/ui/build/static/js/icon.esqlVis.8fb5121d.chunk.js.map +1 -0
  953. feast/ui/build/static/js/icon.exit.334ba07f.chunk.js +2 -0
  954. feast/ui/build/static/js/icon.exit.334ba07f.chunk.js.map +1 -0
  955. feast/ui/build/static/js/icon.expand.4d851e64.chunk.js +2 -0
  956. feast/ui/build/static/js/icon.expand.4d851e64.chunk.js.map +1 -0
  957. feast/ui/build/static/js/icon.expandMini.96bd2222.chunk.js +2 -0
  958. feast/ui/build/static/js/icon.expandMini.96bd2222.chunk.js.map +1 -0
  959. feast/ui/build/static/js/icon.export.1c0e7978.chunk.js +2 -0
  960. feast/ui/build/static/js/icon.export.1c0e7978.chunk.js.map +1 -0
  961. feast/ui/build/static/js/icon.eye.508400d7.chunk.js +2 -0
  962. feast/ui/build/static/js/icon.eye.508400d7.chunk.js.map +1 -0
  963. feast/ui/build/static/js/icon.eye_closed.9d922639.chunk.js +2 -0
  964. feast/ui/build/static/js/icon.eye_closed.9d922639.chunk.js.map +1 -0
  965. feast/ui/build/static/js/icon.face_happy.7a55ee24.chunk.js +2 -0
  966. feast/ui/build/static/js/icon.face_happy.7a55ee24.chunk.js.map +1 -0
  967. feast/ui/build/static/js/icon.face_neutral.1e7ac69f.chunk.js +2 -0
  968. feast/ui/build/static/js/icon.face_neutral.1e7ac69f.chunk.js.map +1 -0
  969. feast/ui/build/static/js/icon.face_sad.17c186ca.chunk.js +2 -0
  970. feast/ui/build/static/js/icon.face_sad.17c186ca.chunk.js.map +1 -0
  971. feast/ui/build/static/js/icon.field_statistics.1a45593a.chunk.js +2 -0
  972. feast/ui/build/static/js/icon.field_statistics.1a45593a.chunk.js.map +1 -0
  973. feast/ui/build/static/js/icon.filter.827c24ce.chunk.js +2 -0
  974. feast/ui/build/static/js/icon.filter.827c24ce.chunk.js.map +1 -0
  975. feast/ui/build/static/js/icon.filterExclude.013c953a.chunk.js +2 -0
  976. feast/ui/build/static/js/icon.filterExclude.013c953a.chunk.js.map +1 -0
  977. feast/ui/build/static/js/icon.filterIgnore.9c41dd70.chunk.js +2 -0
  978. feast/ui/build/static/js/icon.filterIgnore.9c41dd70.chunk.js.map +1 -0
  979. feast/ui/build/static/js/icon.filterInCircle.fc0767fa.chunk.js +2 -0
  980. feast/ui/build/static/js/icon.filterInCircle.fc0767fa.chunk.js.map +1 -0
  981. feast/ui/build/static/js/icon.filterInclude.98818d7c.chunk.js +2 -0
  982. feast/ui/build/static/js/icon.filterInclude.98818d7c.chunk.js.map +1 -0
  983. feast/ui/build/static/js/icon.flag.cf3a9b5d.chunk.js +2 -0
  984. feast/ui/build/static/js/icon.flag.cf3a9b5d.chunk.js.map +1 -0
  985. feast/ui/build/static/js/icon.fold.c78762b3.chunk.js +2 -0
  986. feast/ui/build/static/js/icon.fold.c78762b3.chunk.js.map +1 -0
  987. feast/ui/build/static/js/icon.folder_check.fe702bd4.chunk.js +2 -0
  988. feast/ui/build/static/js/icon.folder_check.fe702bd4.chunk.js.map +1 -0
  989. feast/ui/build/static/js/icon.folder_closed.f2b2cdc8.chunk.js +2 -0
  990. feast/ui/build/static/js/icon.folder_closed.f2b2cdc8.chunk.js.map +1 -0
  991. feast/ui/build/static/js/icon.folder_exclamation.1627d02d.chunk.js +2 -0
  992. feast/ui/build/static/js/icon.folder_exclamation.1627d02d.chunk.js.map +1 -0
  993. feast/ui/build/static/js/icon.folder_open.5f2de871.chunk.js +2 -0
  994. feast/ui/build/static/js/icon.folder_open.5f2de871.chunk.js.map +1 -0
  995. feast/ui/build/static/js/icon.frameNext.1f9983b7.chunk.js +2 -0
  996. feast/ui/build/static/js/icon.frameNext.1f9983b7.chunk.js.map +1 -0
  997. feast/ui/build/static/js/icon.framePrevious.edefa865.chunk.js +2 -0
  998. feast/ui/build/static/js/icon.framePrevious.edefa865.chunk.js.map +1 -0
  999. feast/ui/build/static/js/icon.fullScreenExit.89543ce1.chunk.js +2 -0
  1000. feast/ui/build/static/js/icon.fullScreenExit.89543ce1.chunk.js.map +1 -0
  1001. feast/ui/build/static/js/icon.full_screen.42093df1.chunk.js +2 -0
  1002. feast/ui/build/static/js/icon.full_screen.42093df1.chunk.js.map +1 -0
  1003. feast/ui/build/static/js/icon.function.f7e33e24.chunk.js +2 -0
  1004. feast/ui/build/static/js/icon.function.f7e33e24.chunk.js.map +1 -0
  1005. feast/ui/build/static/js/icon.gear.257025bc.chunk.js +2 -0
  1006. feast/ui/build/static/js/icon.gear.257025bc.chunk.js.map +1 -0
  1007. feast/ui/build/static/js/icon.glasses.0123a6c2.chunk.js +2 -0
  1008. feast/ui/build/static/js/icon.glasses.0123a6c2.chunk.js.map +1 -0
  1009. feast/ui/build/static/js/icon.globe.458ecb77.chunk.js +2 -0
  1010. feast/ui/build/static/js/icon.globe.458ecb77.chunk.js.map +1 -0
  1011. feast/ui/build/static/js/icon.grab.d7411522.chunk.js +2 -0
  1012. feast/ui/build/static/js/icon.grab.d7411522.chunk.js.map +1 -0
  1013. feast/ui/build/static/js/icon.grabOmnidirectional.006bd560.chunk.js +2 -0
  1014. feast/ui/build/static/js/icon.grabOmnidirectional.006bd560.chunk.js.map +1 -0
  1015. feast/ui/build/static/js/icon.grab_horizontal.a993fc2c.chunk.js +2 -0
  1016. feast/ui/build/static/js/icon.grab_horizontal.a993fc2c.chunk.js.map +1 -0
  1017. feast/ui/build/static/js/icon.gradient.6409e7e2.chunk.js +2 -0
  1018. feast/ui/build/static/js/icon.gradient.6409e7e2.chunk.js.map +1 -0
  1019. feast/ui/build/static/js/icon.grid.982e8626.chunk.js +2 -0
  1020. feast/ui/build/static/js/icon.grid.982e8626.chunk.js.map +1 -0
  1021. feast/ui/build/static/js/icon.heart.2c4acd4b.chunk.js +2 -0
  1022. feast/ui/build/static/js/icon.heart.2c4acd4b.chunk.js.map +1 -0
  1023. feast/ui/build/static/js/icon.heatmap.4c7eff0b.chunk.js +2 -0
  1024. feast/ui/build/static/js/icon.heatmap.4c7eff0b.chunk.js.map +1 -0
  1025. feast/ui/build/static/js/icon.help.62effc1f.chunk.js +2 -0
  1026. feast/ui/build/static/js/icon.help.62effc1f.chunk.js.map +1 -0
  1027. feast/ui/build/static/js/icon.home.195a7c88.chunk.js +2 -0
  1028. feast/ui/build/static/js/icon.home.195a7c88.chunk.js.map +1 -0
  1029. feast/ui/build/static/js/icon.iInCircle.9643eaba.chunk.js +2 -0
  1030. feast/ui/build/static/js/icon.iInCircle.9643eaba.chunk.js.map +1 -0
  1031. feast/ui/build/static/js/icon.image.f045acad.chunk.js +2 -0
  1032. feast/ui/build/static/js/icon.image.f045acad.chunk.js.map +1 -0
  1033. feast/ui/build/static/js/icon.import.d6db0911.chunk.js +2 -0
  1034. feast/ui/build/static/js/icon.import.d6db0911.chunk.js.map +1 -0
  1035. feast/ui/build/static/js/icon.indexTemporary.23f46f85.chunk.js +2 -0
  1036. feast/ui/build/static/js/icon.indexTemporary.23f46f85.chunk.js.map +1 -0
  1037. feast/ui/build/static/js/icon.index_close.c789d1d6.chunk.js +2 -0
  1038. feast/ui/build/static/js/icon.index_close.c789d1d6.chunk.js.map +1 -0
  1039. feast/ui/build/static/js/icon.index_edit.226b4879.chunk.js +2 -0
  1040. feast/ui/build/static/js/icon.index_edit.226b4879.chunk.js.map +1 -0
  1041. feast/ui/build/static/js/icon.index_flush.ed7d7270.chunk.js +2 -0
  1042. feast/ui/build/static/js/icon.index_flush.ed7d7270.chunk.js.map +1 -0
  1043. feast/ui/build/static/js/icon.index_mapping.c5cfd016.chunk.js +2 -0
  1044. feast/ui/build/static/js/icon.index_mapping.c5cfd016.chunk.js.map +1 -0
  1045. feast/ui/build/static/js/icon.index_open.929631a0.chunk.js +2 -0
  1046. feast/ui/build/static/js/icon.index_open.929631a0.chunk.js.map +1 -0
  1047. feast/ui/build/static/js/icon.index_runtime.67ffb110.chunk.js +2 -0
  1048. feast/ui/build/static/js/icon.index_runtime.67ffb110.chunk.js.map +1 -0
  1049. feast/ui/build/static/js/icon.index_settings.9f8d90a0.chunk.js +2 -0
  1050. feast/ui/build/static/js/icon.index_settings.9f8d90a0.chunk.js.map +1 -0
  1051. feast/ui/build/static/js/icon.infinity.8cf50139.chunk.js +2 -0
  1052. feast/ui/build/static/js/icon.infinity.8cf50139.chunk.js.map +1 -0
  1053. feast/ui/build/static/js/icon.inputOutput.28ed931d.chunk.js +2 -0
  1054. feast/ui/build/static/js/icon.inputOutput.28ed931d.chunk.js.map +1 -0
  1055. feast/ui/build/static/js/icon.inspect.f61ae039.chunk.js +2 -0
  1056. feast/ui/build/static/js/icon.inspect.f61ae039.chunk.js.map +1 -0
  1057. feast/ui/build/static/js/icon.invert.e54df244.chunk.js +2 -0
  1058. feast/ui/build/static/js/icon.invert.e54df244.chunk.js.map +1 -0
  1059. feast/ui/build/static/js/icon.ip.7008fca7.chunk.js +2 -0
  1060. feast/ui/build/static/js/icon.ip.7008fca7.chunk.js.map +1 -0
  1061. feast/ui/build/static/js/icon.issue.06c9d0e5.chunk.js +2 -0
  1062. feast/ui/build/static/js/icon.issue.06c9d0e5.chunk.js.map +1 -0
  1063. feast/ui/build/static/js/icon.key.dc3d90bd.chunk.js +2 -0
  1064. feast/ui/build/static/js/icon.key.dc3d90bd.chunk.js.map +1 -0
  1065. feast/ui/build/static/js/icon.keyboard.8a09b24d.chunk.js +2 -0
  1066. feast/ui/build/static/js/icon.keyboard.8a09b24d.chunk.js.map +1 -0
  1067. feast/ui/build/static/js/icon.kql_field.41160b3a.chunk.js +2 -0
  1068. feast/ui/build/static/js/icon.kql_field.41160b3a.chunk.js.map +1 -0
  1069. feast/ui/build/static/js/icon.kql_function.e40bb25e.chunk.js +2 -0
  1070. feast/ui/build/static/js/icon.kql_function.e40bb25e.chunk.js.map +1 -0
  1071. feast/ui/build/static/js/icon.kql_operand.c42a2d08.chunk.js +2 -0
  1072. feast/ui/build/static/js/icon.kql_operand.c42a2d08.chunk.js.map +1 -0
  1073. feast/ui/build/static/js/icon.kql_selector.1e3ca39b.chunk.js +2 -0
  1074. feast/ui/build/static/js/icon.kql_selector.1e3ca39b.chunk.js.map +1 -0
  1075. feast/ui/build/static/js/icon.kql_value.8dd5b219.chunk.js +2 -0
  1076. feast/ui/build/static/js/icon.kql_value.8dd5b219.chunk.js.map +1 -0
  1077. feast/ui/build/static/js/icon.kubernetesNode.98e86d53.chunk.js +2 -0
  1078. feast/ui/build/static/js/icon.kubernetesNode.98e86d53.chunk.js.map +1 -0
  1079. feast/ui/build/static/js/icon.kubernetesPod.f2ec4a06.chunk.js +2 -0
  1080. feast/ui/build/static/js/icon.kubernetesPod.f2ec4a06.chunk.js.map +1 -0
  1081. feast/ui/build/static/js/icon.launch.8583fa4b.chunk.js +2 -0
  1082. feast/ui/build/static/js/icon.launch.8583fa4b.chunk.js.map +1 -0
  1083. feast/ui/build/static/js/icon.layers.c5c75b34.chunk.js +2 -0
  1084. feast/ui/build/static/js/icon.layers.c5c75b34.chunk.js.map +1 -0
  1085. feast/ui/build/static/js/icon.lettering.65f88bf6.chunk.js +2 -0
  1086. feast/ui/build/static/js/icon.lettering.65f88bf6.chunk.js.map +1 -0
  1087. feast/ui/build/static/js/icon.lineDashed.3130bf49.chunk.js +2 -0
  1088. feast/ui/build/static/js/icon.lineDashed.3130bf49.chunk.js.map +1 -0
  1089. feast/ui/build/static/js/icon.lineDotted.b1904440.chunk.js +2 -0
  1090. feast/ui/build/static/js/icon.lineDotted.b1904440.chunk.js.map +1 -0
  1091. feast/ui/build/static/js/icon.lineSolid.df3193e9.chunk.js +2 -0
  1092. feast/ui/build/static/js/icon.lineSolid.df3193e9.chunk.js.map +1 -0
  1093. feast/ui/build/static/js/icon.link.f3df649f.chunk.js +2 -0
  1094. feast/ui/build/static/js/icon.link.f3df649f.chunk.js.map +1 -0
  1095. feast/ui/build/static/js/icon.list.07044958.chunk.js +2 -0
  1096. feast/ui/build/static/js/icon.list.07044958.chunk.js.map +1 -0
  1097. feast/ui/build/static/js/icon.list_add.c0bed9cc.chunk.js +2 -0
  1098. feast/ui/build/static/js/icon.list_add.c0bed9cc.chunk.js.map +1 -0
  1099. feast/ui/build/static/js/icon.lock.658d99ea.chunk.js +2 -0
  1100. feast/ui/build/static/js/icon.lock.658d99ea.chunk.js.map +1 -0
  1101. feast/ui/build/static/js/icon.lockOpen.2d4f3da9.chunk.js +2 -0
  1102. feast/ui/build/static/js/icon.lockOpen.2d4f3da9.chunk.js.map +1 -0
  1103. feast/ui/build/static/js/icon.log_pattern_analysis.38d8f12e.chunk.js +2 -0
  1104. feast/ui/build/static/js/icon.log_pattern_analysis.38d8f12e.chunk.js.map +1 -0
  1105. feast/ui/build/static/js/icon.log_rate_analysis.9f13f2fb.chunk.js +2 -0
  1106. feast/ui/build/static/js/icon.log_rate_analysis.9f13f2fb.chunk.js.map +1 -0
  1107. feast/ui/build/static/js/icon.logo_aerospike.a09cc17e.chunk.js +2 -0
  1108. feast/ui/build/static/js/icon.logo_aerospike.a09cc17e.chunk.js.map +1 -0
  1109. feast/ui/build/static/js/icon.logo_apache.264b27fc.chunk.js +2 -0
  1110. feast/ui/build/static/js/icon.logo_apache.264b27fc.chunk.js.map +1 -0
  1111. feast/ui/build/static/js/icon.logo_app_search.8d98ced6.chunk.js +2 -0
  1112. feast/ui/build/static/js/icon.logo_app_search.8d98ced6.chunk.js.map +1 -0
  1113. feast/ui/build/static/js/icon.logo_aws.11ce8654.chunk.js +2 -0
  1114. feast/ui/build/static/js/icon.logo_aws.11ce8654.chunk.js.map +1 -0
  1115. feast/ui/build/static/js/icon.logo_aws_mono.e8a02044.chunk.js +2 -0
  1116. feast/ui/build/static/js/icon.logo_aws_mono.e8a02044.chunk.js.map +1 -0
  1117. feast/ui/build/static/js/icon.logo_azure.ba8603ea.chunk.js +2 -0
  1118. feast/ui/build/static/js/icon.logo_azure.ba8603ea.chunk.js.map +1 -0
  1119. feast/ui/build/static/js/icon.logo_azure_mono.ef9c3313.chunk.js +2 -0
  1120. feast/ui/build/static/js/icon.logo_azure_mono.ef9c3313.chunk.js.map +1 -0
  1121. feast/ui/build/static/js/icon.logo_beats.ab06d0b5.chunk.js +2 -0
  1122. feast/ui/build/static/js/icon.logo_beats.ab06d0b5.chunk.js.map +1 -0
  1123. feast/ui/build/static/js/icon.logo_business_analytics.f4c36905.chunk.js +2 -0
  1124. feast/ui/build/static/js/icon.logo_business_analytics.f4c36905.chunk.js.map +1 -0
  1125. feast/ui/build/static/js/icon.logo_ceph.2849be47.chunk.js +2 -0
  1126. feast/ui/build/static/js/icon.logo_ceph.2849be47.chunk.js.map +1 -0
  1127. feast/ui/build/static/js/icon.logo_cloud.a5eb0274.chunk.js +2 -0
  1128. feast/ui/build/static/js/icon.logo_cloud.a5eb0274.chunk.js.map +1 -0
  1129. feast/ui/build/static/js/icon.logo_cloud_ece.d376ae54.chunk.js +2 -0
  1130. feast/ui/build/static/js/icon.logo_cloud_ece.d376ae54.chunk.js.map +1 -0
  1131. feast/ui/build/static/js/icon.logo_code.c9430d63.chunk.js +2 -0
  1132. feast/ui/build/static/js/icon.logo_code.c9430d63.chunk.js.map +1 -0
  1133. feast/ui/build/static/js/icon.logo_codesandbox.29a07167.chunk.js +2 -0
  1134. feast/ui/build/static/js/icon.logo_codesandbox.29a07167.chunk.js.map +1 -0
  1135. feast/ui/build/static/js/icon.logo_couchbase.66e78722.chunk.js +2 -0
  1136. feast/ui/build/static/js/icon.logo_couchbase.66e78722.chunk.js.map +1 -0
  1137. feast/ui/build/static/js/icon.logo_docker.0a49b9f5.chunk.js +2 -0
  1138. feast/ui/build/static/js/icon.logo_docker.0a49b9f5.chunk.js.map +1 -0
  1139. feast/ui/build/static/js/icon.logo_dropwizard.aed47c3c.chunk.js +2 -0
  1140. feast/ui/build/static/js/icon.logo_dropwizard.aed47c3c.chunk.js.map +1 -0
  1141. feast/ui/build/static/js/icon.logo_elastic.e3ee5df3.chunk.js +2 -0
  1142. feast/ui/build/static/js/icon.logo_elastic.e3ee5df3.chunk.js.map +1 -0
  1143. feast/ui/build/static/js/icon.logo_elastic_stack.cb367d7f.chunk.js +2 -0
  1144. feast/ui/build/static/js/icon.logo_elastic_stack.cb367d7f.chunk.js.map +1 -0
  1145. feast/ui/build/static/js/icon.logo_elasticsearch.3a82ba08.chunk.js +2 -0
  1146. feast/ui/build/static/js/icon.logo_elasticsearch.3a82ba08.chunk.js.map +1 -0
  1147. feast/ui/build/static/js/icon.logo_enterprise_search.8ed25c99.chunk.js +2 -0
  1148. feast/ui/build/static/js/icon.logo_enterprise_search.8ed25c99.chunk.js.map +1 -0
  1149. feast/ui/build/static/js/icon.logo_etcd.cead1e12.chunk.js +2 -0
  1150. feast/ui/build/static/js/icon.logo_etcd.cead1e12.chunk.js.map +1 -0
  1151. feast/ui/build/static/js/icon.logo_gcp.b23c9096.chunk.js +2 -0
  1152. feast/ui/build/static/js/icon.logo_gcp.b23c9096.chunk.js.map +1 -0
  1153. feast/ui/build/static/js/icon.logo_gcp_mono.b0ea40f5.chunk.js +2 -0
  1154. feast/ui/build/static/js/icon.logo_gcp_mono.b0ea40f5.chunk.js.map +1 -0
  1155. feast/ui/build/static/js/icon.logo_github.7e4f152c.chunk.js +2 -0
  1156. feast/ui/build/static/js/icon.logo_github.7e4f152c.chunk.js.map +1 -0
  1157. feast/ui/build/static/js/icon.logo_gmail.95e0309e.chunk.js +2 -0
  1158. feast/ui/build/static/js/icon.logo_gmail.95e0309e.chunk.js.map +1 -0
  1159. feast/ui/build/static/js/icon.logo_golang.9a20e76e.chunk.js +2 -0
  1160. feast/ui/build/static/js/icon.logo_golang.9a20e76e.chunk.js.map +1 -0
  1161. feast/ui/build/static/js/icon.logo_google_g.ce601728.chunk.js +2 -0
  1162. feast/ui/build/static/js/icon.logo_google_g.ce601728.chunk.js.map +1 -0
  1163. feast/ui/build/static/js/icon.logo_haproxy.229cfc71.chunk.js +2 -0
  1164. feast/ui/build/static/js/icon.logo_haproxy.229cfc71.chunk.js.map +1 -0
  1165. feast/ui/build/static/js/icon.logo_ibm.3b69ddda.chunk.js +2 -0
  1166. feast/ui/build/static/js/icon.logo_ibm.3b69ddda.chunk.js.map +1 -0
  1167. feast/ui/build/static/js/icon.logo_ibm_mono.2c06c59a.chunk.js +2 -0
  1168. feast/ui/build/static/js/icon.logo_ibm_mono.2c06c59a.chunk.js.map +1 -0
  1169. feast/ui/build/static/js/icon.logo_kafka.231a812e.chunk.js +2 -0
  1170. feast/ui/build/static/js/icon.logo_kafka.231a812e.chunk.js.map +1 -0
  1171. feast/ui/build/static/js/icon.logo_kibana.cbcfc0d4.chunk.js +2 -0
  1172. feast/ui/build/static/js/icon.logo_kibana.cbcfc0d4.chunk.js.map +1 -0
  1173. feast/ui/build/static/js/icon.logo_kubernetes.cca2c510.chunk.js +2 -0
  1174. feast/ui/build/static/js/icon.logo_kubernetes.cca2c510.chunk.js.map +1 -0
  1175. feast/ui/build/static/js/icon.logo_logging.ce3dc643.chunk.js +2 -0
  1176. feast/ui/build/static/js/icon.logo_logging.ce3dc643.chunk.js.map +1 -0
  1177. feast/ui/build/static/js/icon.logo_logstash.84806897.chunk.js +2 -0
  1178. feast/ui/build/static/js/icon.logo_logstash.84806897.chunk.js.map +1 -0
  1179. feast/ui/build/static/js/icon.logo_maps.8864a338.chunk.js +2 -0
  1180. feast/ui/build/static/js/icon.logo_maps.8864a338.chunk.js.map +1 -0
  1181. feast/ui/build/static/js/icon.logo_memcached.0bca770d.chunk.js +2 -0
  1182. feast/ui/build/static/js/icon.logo_memcached.0bca770d.chunk.js.map +1 -0
  1183. feast/ui/build/static/js/icon.logo_metrics.f5fc19fc.chunk.js +2 -0
  1184. feast/ui/build/static/js/icon.logo_metrics.f5fc19fc.chunk.js.map +1 -0
  1185. feast/ui/build/static/js/icon.logo_mongodb.9136ebd2.chunk.js +2 -0
  1186. feast/ui/build/static/js/icon.logo_mongodb.9136ebd2.chunk.js.map +1 -0
  1187. feast/ui/build/static/js/icon.logo_mysql.0d3b7cd7.chunk.js +2 -0
  1188. feast/ui/build/static/js/icon.logo_mysql.0d3b7cd7.chunk.js.map +1 -0
  1189. feast/ui/build/static/js/icon.logo_nginx.a40f3231.chunk.js +2 -0
  1190. feast/ui/build/static/js/icon.logo_nginx.a40f3231.chunk.js.map +1 -0
  1191. feast/ui/build/static/js/icon.logo_observability.cef6ae03.chunk.js +2 -0
  1192. feast/ui/build/static/js/icon.logo_observability.cef6ae03.chunk.js.map +1 -0
  1193. feast/ui/build/static/js/icon.logo_osquery.453aed39.chunk.js +2 -0
  1194. feast/ui/build/static/js/icon.logo_osquery.453aed39.chunk.js.map +1 -0
  1195. feast/ui/build/static/js/icon.logo_php.8de8f44b.chunk.js +2 -0
  1196. feast/ui/build/static/js/icon.logo_php.8de8f44b.chunk.js.map +1 -0
  1197. feast/ui/build/static/js/icon.logo_postgres.a550917d.chunk.js +2 -0
  1198. feast/ui/build/static/js/icon.logo_postgres.a550917d.chunk.js.map +1 -0
  1199. feast/ui/build/static/js/icon.logo_prometheus.d5d2a0b2.chunk.js +2 -0
  1200. feast/ui/build/static/js/icon.logo_prometheus.d5d2a0b2.chunk.js.map +1 -0
  1201. feast/ui/build/static/js/icon.logo_rabbitmq.4fa74fdc.chunk.js +2 -0
  1202. feast/ui/build/static/js/icon.logo_rabbitmq.4fa74fdc.chunk.js.map +1 -0
  1203. feast/ui/build/static/js/icon.logo_redis.1405d0d6.chunk.js +2 -0
  1204. feast/ui/build/static/js/icon.logo_redis.1405d0d6.chunk.js.map +1 -0
  1205. feast/ui/build/static/js/icon.logo_security.3efcbc52.chunk.js +2 -0
  1206. feast/ui/build/static/js/icon.logo_security.3efcbc52.chunk.js.map +1 -0
  1207. feast/ui/build/static/js/icon.logo_site_search.e5b2d3d4.chunk.js +2 -0
  1208. feast/ui/build/static/js/icon.logo_site_search.e5b2d3d4.chunk.js.map +1 -0
  1209. feast/ui/build/static/js/icon.logo_sketch.454d4690.chunk.js +2 -0
  1210. feast/ui/build/static/js/icon.logo_sketch.454d4690.chunk.js.map +1 -0
  1211. feast/ui/build/static/js/icon.logo_slack.cc9fff5b.chunk.js +2 -0
  1212. feast/ui/build/static/js/icon.logo_slack.cc9fff5b.chunk.js.map +1 -0
  1213. feast/ui/build/static/js/icon.logo_uptime.28f5a475.chunk.js +2 -0
  1214. feast/ui/build/static/js/icon.logo_uptime.28f5a475.chunk.js.map +1 -0
  1215. feast/ui/build/static/js/icon.logo_vulnerability_management.d1e02609.chunk.js +2 -0
  1216. feast/ui/build/static/js/icon.logo_vulnerability_management.d1e02609.chunk.js.map +1 -0
  1217. feast/ui/build/static/js/icon.logo_webhook.75e18290.chunk.js +2 -0
  1218. feast/ui/build/static/js/icon.logo_webhook.75e18290.chunk.js.map +1 -0
  1219. feast/ui/build/static/js/icon.logo_windows.2c27241c.chunk.js +2 -0
  1220. feast/ui/build/static/js/icon.logo_windows.2c27241c.chunk.js.map +1 -0
  1221. feast/ui/build/static/js/icon.logo_workplace_search.a93863da.chunk.js +2 -0
  1222. feast/ui/build/static/js/icon.logo_workplace_search.a93863da.chunk.js.map +1 -0
  1223. feast/ui/build/static/js/icon.logstash_filter.6c810188.chunk.js +2 -0
  1224. feast/ui/build/static/js/icon.logstash_filter.6c810188.chunk.js.map +1 -0
  1225. feast/ui/build/static/js/icon.logstash_if.73ecb3e9.chunk.js +2 -0
  1226. feast/ui/build/static/js/icon.logstash_if.73ecb3e9.chunk.js.map +1 -0
  1227. feast/ui/build/static/js/icon.logstash_input.4cee8f4b.chunk.js +2 -0
  1228. feast/ui/build/static/js/icon.logstash_input.4cee8f4b.chunk.js.map +1 -0
  1229. feast/ui/build/static/js/icon.logstash_output.87d25f95.chunk.js +2 -0
  1230. feast/ui/build/static/js/icon.logstash_output.87d25f95.chunk.js.map +1 -0
  1231. feast/ui/build/static/js/icon.logstash_queue.991aafa4.chunk.js +2 -0
  1232. feast/ui/build/static/js/icon.logstash_queue.991aafa4.chunk.js.map +1 -0
  1233. feast/ui/build/static/js/icon.magnet.4a7e559f.chunk.js +2 -0
  1234. feast/ui/build/static/js/icon.magnet.4a7e559f.chunk.js.map +1 -0
  1235. feast/ui/build/static/js/icon.magnifyWithExclamation.5cd975cd.chunk.js +2 -0
  1236. feast/ui/build/static/js/icon.magnifyWithExclamation.5cd975cd.chunk.js.map +1 -0
  1237. feast/ui/build/static/js/icon.magnifyWithMinus.bf0184ff.chunk.js +2 -0
  1238. feast/ui/build/static/js/icon.magnifyWithMinus.bf0184ff.chunk.js.map +1 -0
  1239. feast/ui/build/static/js/icon.magnifyWithPlus.8b29a00d.chunk.js +2 -0
  1240. feast/ui/build/static/js/icon.magnifyWithPlus.8b29a00d.chunk.js.map +1 -0
  1241. feast/ui/build/static/js/icon.map_marker.c1d37218.chunk.js +2 -0
  1242. feast/ui/build/static/js/icon.map_marker.c1d37218.chunk.js.map +1 -0
  1243. feast/ui/build/static/js/icon.memory.fb1802f2.chunk.js +2 -0
  1244. feast/ui/build/static/js/icon.memory.fb1802f2.chunk.js.map +1 -0
  1245. feast/ui/build/static/js/icon.menu.b7de7bbb.chunk.js +2 -0
  1246. feast/ui/build/static/js/icon.menu.b7de7bbb.chunk.js.map +1 -0
  1247. feast/ui/build/static/js/icon.menuDown.3a3f0a62.chunk.js +2 -0
  1248. feast/ui/build/static/js/icon.menuDown.3a3f0a62.chunk.js.map +1 -0
  1249. feast/ui/build/static/js/icon.menuLeft.29d3ebc1.chunk.js +2 -0
  1250. feast/ui/build/static/js/icon.menuLeft.29d3ebc1.chunk.js.map +1 -0
  1251. feast/ui/build/static/js/icon.menuRight.7807c36f.chunk.js +2 -0
  1252. feast/ui/build/static/js/icon.menuRight.7807c36f.chunk.js.map +1 -0
  1253. feast/ui/build/static/js/icon.menuUp.2b49602b.chunk.js +2 -0
  1254. feast/ui/build/static/js/icon.menuUp.2b49602b.chunk.js.map +1 -0
  1255. feast/ui/build/static/js/icon.merge.26d19011.chunk.js +2 -0
  1256. feast/ui/build/static/js/icon.merge.26d19011.chunk.js.map +1 -0
  1257. feast/ui/build/static/js/icon.minimize.25f484f3.chunk.js +2 -0
  1258. feast/ui/build/static/js/icon.minimize.25f484f3.chunk.js.map +1 -0
  1259. feast/ui/build/static/js/icon.minus.6c05682f.chunk.js +2 -0
  1260. feast/ui/build/static/js/icon.minus.6c05682f.chunk.js.map +1 -0
  1261. feast/ui/build/static/js/icon.minus_in_circle.6d80ecb0.chunk.js +2 -0
  1262. feast/ui/build/static/js/icon.minus_in_circle.6d80ecb0.chunk.js.map +1 -0
  1263. feast/ui/build/static/js/icon.minus_in_circle_filled.d565cbf0.chunk.js +2 -0
  1264. feast/ui/build/static/js/icon.minus_in_circle_filled.d565cbf0.chunk.js.map +1 -0
  1265. feast/ui/build/static/js/icon.minus_in_square.975b444e.chunk.js +2 -0
  1266. feast/ui/build/static/js/icon.minus_in_square.975b444e.chunk.js.map +1 -0
  1267. feast/ui/build/static/js/icon.ml_classification_job.fc719529.chunk.js +2 -0
  1268. feast/ui/build/static/js/icon.ml_classification_job.fc719529.chunk.js.map +1 -0
  1269. feast/ui/build/static/js/icon.ml_create_advanced_job.aea3cc0d.chunk.js +2 -0
  1270. feast/ui/build/static/js/icon.ml_create_advanced_job.aea3cc0d.chunk.js.map +1 -0
  1271. feast/ui/build/static/js/icon.ml_create_multi_metric_job.05ca8615.chunk.js +2 -0
  1272. feast/ui/build/static/js/icon.ml_create_multi_metric_job.05ca8615.chunk.js.map +1 -0
  1273. feast/ui/build/static/js/icon.ml_create_population_job.0a7edddb.chunk.js +2 -0
  1274. feast/ui/build/static/js/icon.ml_create_population_job.0a7edddb.chunk.js.map +1 -0
  1275. feast/ui/build/static/js/icon.ml_create_single_metric_job.f8b55527.chunk.js +2 -0
  1276. feast/ui/build/static/js/icon.ml_create_single_metric_job.f8b55527.chunk.js.map +1 -0
  1277. feast/ui/build/static/js/icon.ml_data_visualizer.8544c62e.chunk.js +2 -0
  1278. feast/ui/build/static/js/icon.ml_data_visualizer.8544c62e.chunk.js.map +1 -0
  1279. feast/ui/build/static/js/icon.ml_outlier_detection_job.edec391f.chunk.js +2 -0
  1280. feast/ui/build/static/js/icon.ml_outlier_detection_job.edec391f.chunk.js.map +1 -0
  1281. feast/ui/build/static/js/icon.ml_regression_job.fba433e9.chunk.js +2 -0
  1282. feast/ui/build/static/js/icon.ml_regression_job.fba433e9.chunk.js.map +1 -0
  1283. feast/ui/build/static/js/icon.mobile.ea3d3187.chunk.js +2 -0
  1284. feast/ui/build/static/js/icon.mobile.ea3d3187.chunk.js.map +1 -0
  1285. feast/ui/build/static/js/icon.moon.94558c42.chunk.js +2 -0
  1286. feast/ui/build/static/js/icon.moon.94558c42.chunk.js.map +1 -0
  1287. feast/ui/build/static/js/icon.move.db8b7486.chunk.js +2 -0
  1288. feast/ui/build/static/js/icon.move.db8b7486.chunk.js.map +1 -0
  1289. feast/ui/build/static/js/icon.namespace.6c03044b.chunk.js +2 -0
  1290. feast/ui/build/static/js/icon.namespace.6c03044b.chunk.js.map +1 -0
  1291. feast/ui/build/static/js/icon.nested.77c3d5da.chunk.js +2 -0
  1292. feast/ui/build/static/js/icon.nested.77c3d5da.chunk.js.map +1 -0
  1293. feast/ui/build/static/js/icon.new_chat.34616d22.chunk.js +2 -0
  1294. feast/ui/build/static/js/icon.new_chat.34616d22.chunk.js.map +1 -0
  1295. feast/ui/build/static/js/icon.node.4ff69ed6.chunk.js +2 -0
  1296. feast/ui/build/static/js/icon.node.4ff69ed6.chunk.js.map +1 -0
  1297. feast/ui/build/static/js/icon.number.702e9f09.chunk.js +2 -0
  1298. feast/ui/build/static/js/icon.number.702e9f09.chunk.js.map +1 -0
  1299. feast/ui/build/static/js/icon.offline.1af78ac4.chunk.js +2 -0
  1300. feast/ui/build/static/js/icon.offline.1af78ac4.chunk.js.map +1 -0
  1301. feast/ui/build/static/js/icon.online.215cb672.chunk.js +2 -0
  1302. feast/ui/build/static/js/icon.online.215cb672.chunk.js.map +1 -0
  1303. feast/ui/build/static/js/icon.package.01c69acb.chunk.js +2 -0
  1304. feast/ui/build/static/js/icon.package.01c69acb.chunk.js.map +1 -0
  1305. feast/ui/build/static/js/icon.pageSelect.da71abf9.chunk.js +2 -0
  1306. feast/ui/build/static/js/icon.pageSelect.da71abf9.chunk.js.map +1 -0
  1307. feast/ui/build/static/js/icon.pagesSelect.af52b0e8.chunk.js +2 -0
  1308. feast/ui/build/static/js/icon.pagesSelect.af52b0e8.chunk.js.map +1 -0
  1309. feast/ui/build/static/js/icon.paint.3d67012e.chunk.js +2 -0
  1310. feast/ui/build/static/js/icon.paint.3d67012e.chunk.js.map +1 -0
  1311. feast/ui/build/static/js/icon.palette.9de9d2a1.chunk.js +2 -0
  1312. feast/ui/build/static/js/icon.palette.9de9d2a1.chunk.js.map +1 -0
  1313. feast/ui/build/static/js/icon.paper_clip.e740bfe5.chunk.js +2 -0
  1314. feast/ui/build/static/js/icon.paper_clip.e740bfe5.chunk.js.map +1 -0
  1315. feast/ui/build/static/js/icon.partial.50d74fbb.chunk.js +2 -0
  1316. feast/ui/build/static/js/icon.partial.50d74fbb.chunk.js.map +1 -0
  1317. feast/ui/build/static/js/icon.pause.e9514b1f.chunk.js +2 -0
  1318. feast/ui/build/static/js/icon.pause.e9514b1f.chunk.js.map +1 -0
  1319. feast/ui/build/static/js/icon.payment.b67de02e.chunk.js +2 -0
  1320. feast/ui/build/static/js/icon.payment.b67de02e.chunk.js.map +1 -0
  1321. feast/ui/build/static/js/icon.pencil.c8f1838d.chunk.js +2 -0
  1322. feast/ui/build/static/js/icon.pencil.c8f1838d.chunk.js.map +1 -0
  1323. feast/ui/build/static/js/icon.percent.6380b7c6.chunk.js +2 -0
  1324. feast/ui/build/static/js/icon.percent.6380b7c6.chunk.js.map +1 -0
  1325. feast/ui/build/static/js/icon.pin.3fec6cd0.chunk.js +2 -0
  1326. feast/ui/build/static/js/icon.pin.3fec6cd0.chunk.js.map +1 -0
  1327. feast/ui/build/static/js/icon.pin_filled.66bd923b.chunk.js +2 -0
  1328. feast/ui/build/static/js/icon.pin_filled.66bd923b.chunk.js.map +1 -0
  1329. feast/ui/build/static/js/icon.pipeBreaks.88e3bd74.chunk.js +2 -0
  1330. feast/ui/build/static/js/icon.pipeBreaks.88e3bd74.chunk.js.map +1 -0
  1331. feast/ui/build/static/js/icon.pipeNoBreaks.656b5b65.chunk.js +2 -0
  1332. feast/ui/build/static/js/icon.pipeNoBreaks.656b5b65.chunk.js.map +1 -0
  1333. feast/ui/build/static/js/icon.pivot.21818c25.chunk.js +2 -0
  1334. feast/ui/build/static/js/icon.pivot.21818c25.chunk.js.map +1 -0
  1335. feast/ui/build/static/js/icon.play.177ef681.chunk.js +2 -0
  1336. feast/ui/build/static/js/icon.play.177ef681.chunk.js.map +1 -0
  1337. feast/ui/build/static/js/icon.playFilled.7ed07649.chunk.js +2 -0
  1338. feast/ui/build/static/js/icon.playFilled.7ed07649.chunk.js.map +1 -0
  1339. feast/ui/build/static/js/icon.plus.3a4c2ecb.chunk.js +2 -0
  1340. feast/ui/build/static/js/icon.plus.3a4c2ecb.chunk.js.map +1 -0
  1341. feast/ui/build/static/js/icon.plus_in_circle.1ab48f33.chunk.js +2 -0
  1342. feast/ui/build/static/js/icon.plus_in_circle.1ab48f33.chunk.js.map +1 -0
  1343. feast/ui/build/static/js/icon.plus_in_circle_filled.70031773.chunk.js +2 -0
  1344. feast/ui/build/static/js/icon.plus_in_circle_filled.70031773.chunk.js.map +1 -0
  1345. feast/ui/build/static/js/icon.plus_in_square.2396e921.chunk.js +2 -0
  1346. feast/ui/build/static/js/icon.plus_in_square.2396e921.chunk.js.map +1 -0
  1347. feast/ui/build/static/js/icon.popout.6cb4dc69.chunk.js +2 -0
  1348. feast/ui/build/static/js/icon.popout.6cb4dc69.chunk.js.map +1 -0
  1349. feast/ui/build/static/js/icon.push.19862dfa.chunk.js +2 -0
  1350. feast/ui/build/static/js/icon.push.19862dfa.chunk.js.map +1 -0
  1351. feast/ui/build/static/js/icon.question_in_circle.7b61fe1d.chunk.js +2 -0
  1352. feast/ui/build/static/js/icon.question_in_circle.7b61fe1d.chunk.js.map +1 -0
  1353. feast/ui/build/static/js/icon.quote.d6cccf6c.chunk.js +2 -0
  1354. feast/ui/build/static/js/icon.quote.d6cccf6c.chunk.js.map +1 -0
  1355. feast/ui/build/static/js/icon.refresh.7fcfa0cb.chunk.js +2 -0
  1356. feast/ui/build/static/js/icon.refresh.7fcfa0cb.chunk.js.map +1 -0
  1357. feast/ui/build/static/js/icon.reporter.dddf7aec.chunk.js +2 -0
  1358. feast/ui/build/static/js/icon.reporter.dddf7aec.chunk.js.map +1 -0
  1359. feast/ui/build/static/js/icon.return_key.b8cbffbe.chunk.js +2 -0
  1360. feast/ui/build/static/js/icon.return_key.b8cbffbe.chunk.js.map +1 -0
  1361. feast/ui/build/static/js/icon.save.b0ed2e9c.chunk.js +2 -0
  1362. feast/ui/build/static/js/icon.save.b0ed2e9c.chunk.js.map +1 -0
  1363. feast/ui/build/static/js/icon.scale.f7183248.chunk.js +2 -0
  1364. feast/ui/build/static/js/icon.scale.f7183248.chunk.js.map +1 -0
  1365. feast/ui/build/static/js/icon.search.78d35d76.chunk.js +2 -0
  1366. feast/ui/build/static/js/icon.search.78d35d76.chunk.js.map +1 -0
  1367. feast/ui/build/static/js/icon.securitySignal.b86f31ea.chunk.js +2 -0
  1368. feast/ui/build/static/js/icon.securitySignal.b86f31ea.chunk.js.map +1 -0
  1369. feast/ui/build/static/js/icon.securitySignalDetected.1e5c65cc.chunk.js +2 -0
  1370. feast/ui/build/static/js/icon.securitySignalDetected.1e5c65cc.chunk.js.map +1 -0
  1371. feast/ui/build/static/js/icon.securitySignalResolved.6afc63b1.chunk.js +2 -0
  1372. feast/ui/build/static/js/icon.securitySignalResolved.6afc63b1.chunk.js.map +1 -0
  1373. feast/ui/build/static/js/icon.sessionViewer.b5d0dcd3.chunk.js +2 -0
  1374. feast/ui/build/static/js/icon.sessionViewer.b5d0dcd3.chunk.js.map +1 -0
  1375. feast/ui/build/static/js/icon.shard.2c08ec40.chunk.js +2 -0
  1376. feast/ui/build/static/js/icon.shard.2c08ec40.chunk.js.map +1 -0
  1377. feast/ui/build/static/js/icon.share.980bc750.chunk.js +2 -0
  1378. feast/ui/build/static/js/icon.share.980bc750.chunk.js.map +1 -0
  1379. feast/ui/build/static/js/icon.single_metric_viewer.9bad664c.chunk.js +2 -0
  1380. feast/ui/build/static/js/icon.single_metric_viewer.9bad664c.chunk.js.map +1 -0
  1381. feast/ui/build/static/js/icon.snowflake.37f198e1.chunk.js +2 -0
  1382. feast/ui/build/static/js/icon.snowflake.37f198e1.chunk.js.map +1 -0
  1383. feast/ui/build/static/js/icon.sortAscending.c08f27f0.chunk.js +2 -0
  1384. feast/ui/build/static/js/icon.sortAscending.c08f27f0.chunk.js.map +1 -0
  1385. feast/ui/build/static/js/icon.sortDescending.d844a86c.chunk.js +2 -0
  1386. feast/ui/build/static/js/icon.sortDescending.d844a86c.chunk.js.map +1 -0
  1387. feast/ui/build/static/js/icon.sortLeft.e640e586.chunk.js +2 -0
  1388. feast/ui/build/static/js/icon.sortLeft.e640e586.chunk.js.map +1 -0
  1389. feast/ui/build/static/js/icon.sortRight.c2c9f149.chunk.js +2 -0
  1390. feast/ui/build/static/js/icon.sortRight.c2c9f149.chunk.js.map +1 -0
  1391. feast/ui/build/static/js/icon.sort_down.da9b90d0.chunk.js +2 -0
  1392. feast/ui/build/static/js/icon.sort_down.da9b90d0.chunk.js.map +1 -0
  1393. feast/ui/build/static/js/icon.sort_up.48c04115.chunk.js +2 -0
  1394. feast/ui/build/static/js/icon.sort_up.48c04115.chunk.js.map +1 -0
  1395. feast/ui/build/static/js/icon.sortable.478f6ba8.chunk.js +2 -0
  1396. feast/ui/build/static/js/icon.sortable.478f6ba8.chunk.js.map +1 -0
  1397. feast/ui/build/static/js/icon.spaces.59fc3f28.chunk.js +2 -0
  1398. feast/ui/build/static/js/icon.spaces.59fc3f28.chunk.js.map +1 -0
  1399. feast/ui/build/static/js/icon.sparkles.ea59f22f.chunk.js +2 -0
  1400. feast/ui/build/static/js/icon.sparkles.ea59f22f.chunk.js.map +1 -0
  1401. feast/ui/build/static/js/icon.starPlusEmpty.7ee10306.chunk.js +2 -0
  1402. feast/ui/build/static/js/icon.starPlusEmpty.7ee10306.chunk.js.map +1 -0
  1403. feast/ui/build/static/js/icon.starPlusFilled.e06993ed.chunk.js +2 -0
  1404. feast/ui/build/static/js/icon.starPlusFilled.e06993ed.chunk.js.map +1 -0
  1405. feast/ui/build/static/js/icon.star_empty.5feeedb1.chunk.js +2 -0
  1406. feast/ui/build/static/js/icon.star_empty.5feeedb1.chunk.js.map +1 -0
  1407. feast/ui/build/static/js/icon.star_empty_space.d7ac740d.chunk.js +2 -0
  1408. feast/ui/build/static/js/icon.star_empty_space.d7ac740d.chunk.js.map +1 -0
  1409. feast/ui/build/static/js/icon.star_filled.e08e684e.chunk.js +2 -0
  1410. feast/ui/build/static/js/icon.star_filled.e08e684e.chunk.js.map +1 -0
  1411. feast/ui/build/static/js/icon.star_filled_space.61d250e5.chunk.js +2 -0
  1412. feast/ui/build/static/js/icon.star_filled_space.61d250e5.chunk.js.map +1 -0
  1413. feast/ui/build/static/js/icon.star_minus_empty.c038a7fc.chunk.js +2 -0
  1414. feast/ui/build/static/js/icon.star_minus_empty.c038a7fc.chunk.js.map +1 -0
  1415. feast/ui/build/static/js/icon.star_minus_filled.2d7cae39.chunk.js +2 -0
  1416. feast/ui/build/static/js/icon.star_minus_filled.2d7cae39.chunk.js.map +1 -0
  1417. feast/ui/build/static/js/icon.stats.de1cb6f5.chunk.js +2 -0
  1418. feast/ui/build/static/js/icon.stats.de1cb6f5.chunk.js.map +1 -0
  1419. feast/ui/build/static/js/icon.stop.29754374.chunk.js +2 -0
  1420. feast/ui/build/static/js/icon.stop.29754374.chunk.js.map +1 -0
  1421. feast/ui/build/static/js/icon.stop_filled.c9f2bada.chunk.js +2 -0
  1422. feast/ui/build/static/js/icon.stop_filled.c9f2bada.chunk.js.map +1 -0
  1423. feast/ui/build/static/js/icon.stop_slash.95c508d0.chunk.js +2 -0
  1424. feast/ui/build/static/js/icon.stop_slash.95c508d0.chunk.js.map +1 -0
  1425. feast/ui/build/static/js/icon.storage.b8dd9df4.chunk.js +2 -0
  1426. feast/ui/build/static/js/icon.storage.b8dd9df4.chunk.js.map +1 -0
  1427. feast/ui/build/static/js/icon.string.9b110d8e.chunk.js +2 -0
  1428. feast/ui/build/static/js/icon.string.9b110d8e.chunk.js.map +1 -0
  1429. feast/ui/build/static/js/icon.submodule.0de0e2cd.chunk.js +2 -0
  1430. feast/ui/build/static/js/icon.submodule.0de0e2cd.chunk.js.map +1 -0
  1431. feast/ui/build/static/js/icon.sun.e878e965.chunk.js +2 -0
  1432. feast/ui/build/static/js/icon.sun.e878e965.chunk.js.map +1 -0
  1433. feast/ui/build/static/js/icon.swatch_input.79d9b582.chunk.js +2 -0
  1434. feast/ui/build/static/js/icon.swatch_input.79d9b582.chunk.js.map +1 -0
  1435. feast/ui/build/static/js/icon.symlink.0a16bdd7.chunk.js +2 -0
  1436. feast/ui/build/static/js/icon.symlink.0a16bdd7.chunk.js.map +1 -0
  1437. feast/ui/build/static/js/icon.tableOfContents.ec46033d.chunk.js +2 -0
  1438. feast/ui/build/static/js/icon.tableOfContents.ec46033d.chunk.js.map +1 -0
  1439. feast/ui/build/static/js/icon.table_density_compact.d4f76c12.chunk.js +2 -0
  1440. feast/ui/build/static/js/icon.table_density_compact.d4f76c12.chunk.js.map +1 -0
  1441. feast/ui/build/static/js/icon.table_density_expanded.33a1c148.chunk.js +2 -0
  1442. feast/ui/build/static/js/icon.table_density_expanded.33a1c148.chunk.js.map +1 -0
  1443. feast/ui/build/static/js/icon.table_density_normal.1b22dc63.chunk.js +2 -0
  1444. feast/ui/build/static/js/icon.table_density_normal.1b22dc63.chunk.js.map +1 -0
  1445. feast/ui/build/static/js/icon.tag.2ecfe5bb.chunk.js +2 -0
  1446. feast/ui/build/static/js/icon.tag.2ecfe5bb.chunk.js.map +1 -0
  1447. feast/ui/build/static/js/icon.tear.ad6b169a.chunk.js +2 -0
  1448. feast/ui/build/static/js/icon.tear.ad6b169a.chunk.js.map +1 -0
  1449. feast/ui/build/static/js/icon.temperature.3457ec39.chunk.js +2 -0
  1450. feast/ui/build/static/js/icon.temperature.3457ec39.chunk.js.map +1 -0
  1451. feast/ui/build/static/js/icon.timeRefresh.b0eb9a09.chunk.js +2 -0
  1452. feast/ui/build/static/js/icon.timeRefresh.b0eb9a09.chunk.js.map +1 -0
  1453. feast/ui/build/static/js/icon.timeline.e8161ffb.chunk.js +2 -0
  1454. feast/ui/build/static/js/icon.timeline.e8161ffb.chunk.js.map +1 -0
  1455. feast/ui/build/static/js/icon.timelineWithArrow.12fbe752.chunk.js +2 -0
  1456. feast/ui/build/static/js/icon.timelineWithArrow.12fbe752.chunk.js.map +1 -0
  1457. feast/ui/build/static/js/icon.timeslider.5096f6dc.chunk.js +2 -0
  1458. feast/ui/build/static/js/icon.timeslider.5096f6dc.chunk.js.map +1 -0
  1459. feast/ui/build/static/js/icon.tokenAlias.b004927b.chunk.js +2 -0
  1460. feast/ui/build/static/js/icon.tokenAlias.b004927b.chunk.js.map +1 -0
  1461. feast/ui/build/static/js/icon.tokenAnnotation.5334afe3.chunk.js +2 -0
  1462. feast/ui/build/static/js/icon.tokenAnnotation.5334afe3.chunk.js.map +1 -0
  1463. feast/ui/build/static/js/icon.tokenArray.ce0dc686.chunk.js +2 -0
  1464. feast/ui/build/static/js/icon.tokenArray.ce0dc686.chunk.js.map +1 -0
  1465. feast/ui/build/static/js/icon.tokenBinary.5ca30803.chunk.js +2 -0
  1466. feast/ui/build/static/js/icon.tokenBinary.5ca30803.chunk.js.map +1 -0
  1467. feast/ui/build/static/js/icon.tokenBoolean.2cc7aa20.chunk.js +2 -0
  1468. feast/ui/build/static/js/icon.tokenBoolean.2cc7aa20.chunk.js.map +1 -0
  1469. feast/ui/build/static/js/icon.tokenClass.9f6a1041.chunk.js +2 -0
  1470. feast/ui/build/static/js/icon.tokenClass.9f6a1041.chunk.js.map +1 -0
  1471. feast/ui/build/static/js/icon.tokenCompletionSuggester.b0ed1ca2.chunk.js +2 -0
  1472. feast/ui/build/static/js/icon.tokenCompletionSuggester.b0ed1ca2.chunk.js.map +1 -0
  1473. feast/ui/build/static/js/icon.tokenConstant.279fed27.chunk.js +2 -0
  1474. feast/ui/build/static/js/icon.tokenConstant.279fed27.chunk.js.map +1 -0
  1475. feast/ui/build/static/js/icon.tokenDate.037387bd.chunk.js +2 -0
  1476. feast/ui/build/static/js/icon.tokenDate.037387bd.chunk.js.map +1 -0
  1477. feast/ui/build/static/js/icon.tokenDimension.b8233e90.chunk.js +2 -0
  1478. feast/ui/build/static/js/icon.tokenDimension.b8233e90.chunk.js.map +1 -0
  1479. feast/ui/build/static/js/icon.tokenElement.ebe1552e.chunk.js +2 -0
  1480. feast/ui/build/static/js/icon.tokenElement.ebe1552e.chunk.js.map +1 -0
  1481. feast/ui/build/static/js/icon.tokenEnum.2fcb85cb.chunk.js +2 -0
  1482. feast/ui/build/static/js/icon.tokenEnum.2fcb85cb.chunk.js.map +1 -0
  1483. feast/ui/build/static/js/icon.tokenEnumMember.e2405f39.chunk.js +2 -0
  1484. feast/ui/build/static/js/icon.tokenEnumMember.e2405f39.chunk.js.map +1 -0
  1485. feast/ui/build/static/js/icon.tokenEvent.5e61b7cb.chunk.js +2 -0
  1486. feast/ui/build/static/js/icon.tokenEvent.5e61b7cb.chunk.js.map +1 -0
  1487. feast/ui/build/static/js/icon.tokenException.95d88ab1.chunk.js +2 -0
  1488. feast/ui/build/static/js/icon.tokenException.95d88ab1.chunk.js.map +1 -0
  1489. feast/ui/build/static/js/icon.tokenField.af520559.chunk.js +2 -0
  1490. feast/ui/build/static/js/icon.tokenField.af520559.chunk.js.map +1 -0
  1491. feast/ui/build/static/js/icon.tokenFile.701d7f5e.chunk.js +2 -0
  1492. feast/ui/build/static/js/icon.tokenFile.701d7f5e.chunk.js.map +1 -0
  1493. feast/ui/build/static/js/icon.tokenFlattened.6b2b414d.chunk.js +2 -0
  1494. feast/ui/build/static/js/icon.tokenFlattened.6b2b414d.chunk.js.map +1 -0
  1495. feast/ui/build/static/js/icon.tokenFunction.f9cca68b.chunk.js +2 -0
  1496. feast/ui/build/static/js/icon.tokenFunction.f9cca68b.chunk.js.map +1 -0
  1497. feast/ui/build/static/js/icon.tokenGeo.f1893411.chunk.js +2 -0
  1498. feast/ui/build/static/js/icon.tokenGeo.f1893411.chunk.js.map +1 -0
  1499. feast/ui/build/static/js/icon.tokenHistogram.6e03090e.chunk.js +2 -0
  1500. feast/ui/build/static/js/icon.tokenHistogram.6e03090e.chunk.js.map +1 -0
  1501. feast/ui/build/static/js/icon.tokenIP.5eaedcb5.chunk.js +2 -0
  1502. feast/ui/build/static/js/icon.tokenIP.5eaedcb5.chunk.js.map +1 -0
  1503. feast/ui/build/static/js/icon.tokenInterface.c94fbeeb.chunk.js +2 -0
  1504. feast/ui/build/static/js/icon.tokenInterface.c94fbeeb.chunk.js.map +1 -0
  1505. feast/ui/build/static/js/icon.tokenJoin.a4ee52d0.chunk.js +2 -0
  1506. feast/ui/build/static/js/icon.tokenJoin.a4ee52d0.chunk.js.map +1 -0
  1507. feast/ui/build/static/js/icon.tokenKey.b1decfe3.chunk.js +2 -0
  1508. feast/ui/build/static/js/icon.tokenKey.b1decfe3.chunk.js.map +1 -0
  1509. feast/ui/build/static/js/icon.tokenKeyword.8000201e.chunk.js +2 -0
  1510. feast/ui/build/static/js/icon.tokenKeyword.8000201e.chunk.js.map +1 -0
  1511. feast/ui/build/static/js/icon.tokenMethod.9249f526.chunk.js +2 -0
  1512. feast/ui/build/static/js/icon.tokenMethod.9249f526.chunk.js.map +1 -0
  1513. feast/ui/build/static/js/icon.tokenMetricCounter.de157ac4.chunk.js +2 -0
  1514. feast/ui/build/static/js/icon.tokenMetricCounter.de157ac4.chunk.js.map +1 -0
  1515. feast/ui/build/static/js/icon.tokenMetricGauge.4e4032be.chunk.js +2 -0
  1516. feast/ui/build/static/js/icon.tokenMetricGauge.4e4032be.chunk.js.map +1 -0
  1517. feast/ui/build/static/js/icon.tokenModule.edcd8980.chunk.js +2 -0
  1518. feast/ui/build/static/js/icon.tokenModule.edcd8980.chunk.js.map +1 -0
  1519. feast/ui/build/static/js/icon.tokenNamespace.070737aa.chunk.js +2 -0
  1520. feast/ui/build/static/js/icon.tokenNamespace.070737aa.chunk.js.map +1 -0
  1521. feast/ui/build/static/js/icon.tokenNested.87068d28.chunk.js +2 -0
  1522. feast/ui/build/static/js/icon.tokenNested.87068d28.chunk.js.map +1 -0
  1523. feast/ui/build/static/js/icon.tokenNull.3ad590e4.chunk.js +2 -0
  1524. feast/ui/build/static/js/icon.tokenNull.3ad590e4.chunk.js.map +1 -0
  1525. feast/ui/build/static/js/icon.tokenNumber.bdb4c068.chunk.js +2 -0
  1526. feast/ui/build/static/js/icon.tokenNumber.bdb4c068.chunk.js.map +1 -0
  1527. feast/ui/build/static/js/icon.tokenObject.2e2fa95e.chunk.js +2 -0
  1528. feast/ui/build/static/js/icon.tokenObject.2e2fa95e.chunk.js.map +1 -0
  1529. feast/ui/build/static/js/icon.tokenOperator.9f1e8bf4.chunk.js +2 -0
  1530. feast/ui/build/static/js/icon.tokenOperator.9f1e8bf4.chunk.js.map +1 -0
  1531. feast/ui/build/static/js/icon.tokenPackage.ff9e5d52.chunk.js +2 -0
  1532. feast/ui/build/static/js/icon.tokenPackage.ff9e5d52.chunk.js.map +1 -0
  1533. feast/ui/build/static/js/icon.tokenParameter.17899899.chunk.js +2 -0
  1534. feast/ui/build/static/js/icon.tokenParameter.17899899.chunk.js.map +1 -0
  1535. feast/ui/build/static/js/icon.tokenPercolator.dc41b490.chunk.js +2 -0
  1536. feast/ui/build/static/js/icon.tokenPercolator.dc41b490.chunk.js.map +1 -0
  1537. feast/ui/build/static/js/icon.tokenProperty.d89119f3.chunk.js +2 -0
  1538. feast/ui/build/static/js/icon.tokenProperty.d89119f3.chunk.js.map +1 -0
  1539. feast/ui/build/static/js/icon.tokenRange.d4e867a2.chunk.js +2 -0
  1540. feast/ui/build/static/js/icon.tokenRange.d4e867a2.chunk.js.map +1 -0
  1541. feast/ui/build/static/js/icon.tokenRankFeature.f8034b99.chunk.js +2 -0
  1542. feast/ui/build/static/js/icon.tokenRankFeature.f8034b99.chunk.js.map +1 -0
  1543. feast/ui/build/static/js/icon.tokenRankFeatures.e5130db0.chunk.js +2 -0
  1544. feast/ui/build/static/js/icon.tokenRankFeatures.e5130db0.chunk.js.map +1 -0
  1545. feast/ui/build/static/js/icon.tokenRepo.a6af4051.chunk.js +2 -0
  1546. feast/ui/build/static/js/icon.tokenRepo.a6af4051.chunk.js.map +1 -0
  1547. feast/ui/build/static/js/icon.tokenSearchType.a2d80f26.chunk.js +2 -0
  1548. feast/ui/build/static/js/icon.tokenSearchType.a2d80f26.chunk.js.map +1 -0
  1549. feast/ui/build/static/js/icon.tokenSemanticText.23d4019a.chunk.js +2 -0
  1550. feast/ui/build/static/js/icon.tokenSemanticText.23d4019a.chunk.js.map +1 -0
  1551. feast/ui/build/static/js/icon.tokenShape.147fe5df.chunk.js +2 -0
  1552. feast/ui/build/static/js/icon.tokenShape.147fe5df.chunk.js.map +1 -0
  1553. feast/ui/build/static/js/icon.tokenString.1b4501a9.chunk.js +2 -0
  1554. feast/ui/build/static/js/icon.tokenString.1b4501a9.chunk.js.map +1 -0
  1555. feast/ui/build/static/js/icon.tokenStruct.385ba881.chunk.js +2 -0
  1556. feast/ui/build/static/js/icon.tokenStruct.385ba881.chunk.js.map +1 -0
  1557. feast/ui/build/static/js/icon.tokenSymbol.433406e3.chunk.js +2 -0
  1558. feast/ui/build/static/js/icon.tokenSymbol.433406e3.chunk.js.map +1 -0
  1559. feast/ui/build/static/js/icon.tokenTag.521f491a.chunk.js +2 -0
  1560. feast/ui/build/static/js/icon.tokenTag.521f491a.chunk.js.map +1 -0
  1561. feast/ui/build/static/js/icon.tokenText.5cc1edd0.chunk.js +2 -0
  1562. feast/ui/build/static/js/icon.tokenText.5cc1edd0.chunk.js.map +1 -0
  1563. feast/ui/build/static/js/icon.tokenTokenCount.bd7f3485.chunk.js +2 -0
  1564. feast/ui/build/static/js/icon.tokenTokenCount.bd7f3485.chunk.js.map +1 -0
  1565. feast/ui/build/static/js/icon.tokenVariable.34e0e247.chunk.js +2 -0
  1566. feast/ui/build/static/js/icon.tokenVariable.34e0e247.chunk.js.map +1 -0
  1567. feast/ui/build/static/js/icon.tokenVectorDense.6e8dbc4b.chunk.js +2 -0
  1568. feast/ui/build/static/js/icon.tokenVectorDense.6e8dbc4b.chunk.js.map +1 -0
  1569. feast/ui/build/static/js/icon.tokenVectorSparse.022d7602.chunk.js +2 -0
  1570. feast/ui/build/static/js/icon.tokenVectorSparse.022d7602.chunk.js.map +1 -0
  1571. feast/ui/build/static/js/icon.training.300ca447.chunk.js +2 -0
  1572. feast/ui/build/static/js/icon.training.300ca447.chunk.js.map +1 -0
  1573. feast/ui/build/static/js/icon.transitionLeftIn.9fbd3c22.chunk.js +2 -0
  1574. feast/ui/build/static/js/icon.transitionLeftIn.9fbd3c22.chunk.js.map +1 -0
  1575. feast/ui/build/static/js/icon.transitionLeftOut.1b40b543.chunk.js +2 -0
  1576. feast/ui/build/static/js/icon.transitionLeftOut.1b40b543.chunk.js.map +1 -0
  1577. feast/ui/build/static/js/icon.transitionTopIn.babe5dec.chunk.js +2 -0
  1578. feast/ui/build/static/js/icon.transitionTopIn.babe5dec.chunk.js.map +1 -0
  1579. feast/ui/build/static/js/icon.transitionTopOut.a4e084b0.chunk.js +2 -0
  1580. feast/ui/build/static/js/icon.transitionTopOut.a4e084b0.chunk.js.map +1 -0
  1581. feast/ui/build/static/js/icon.trash.5a9abcf9.chunk.js +2 -0
  1582. feast/ui/build/static/js/icon.trash.5a9abcf9.chunk.js.map +1 -0
  1583. feast/ui/build/static/js/icon.unfold.b17ec283.chunk.js +2 -0
  1584. feast/ui/build/static/js/icon.unfold.b17ec283.chunk.js.map +1 -0
  1585. feast/ui/build/static/js/icon.unlink.b217a423.chunk.js +2 -0
  1586. feast/ui/build/static/js/icon.unlink.b217a423.chunk.js.map +1 -0
  1587. feast/ui/build/static/js/icon.user.f2bfcad7.chunk.js +2 -0
  1588. feast/ui/build/static/js/icon.user.f2bfcad7.chunk.js.map +1 -0
  1589. feast/ui/build/static/js/icon.userAvatar.b626fe37.chunk.js +2 -0
  1590. feast/ui/build/static/js/icon.userAvatar.b626fe37.chunk.js.map +1 -0
  1591. feast/ui/build/static/js/icon.users.0cb9178b.chunk.js +2 -0
  1592. feast/ui/build/static/js/icon.users.0cb9178b.chunk.js.map +1 -0
  1593. feast/ui/build/static/js/icon.vector.2e2fa8e2.chunk.js +2 -0
  1594. feast/ui/build/static/js/icon.vector.2e2fa8e2.chunk.js.map +1 -0
  1595. feast/ui/build/static/js/icon.videoPlayer.c21f20ac.chunk.js +2 -0
  1596. feast/ui/build/static/js/icon.videoPlayer.c21f20ac.chunk.js.map +1 -0
  1597. feast/ui/build/static/js/icon.vis_area.84e96cd4.chunk.js +2 -0
  1598. feast/ui/build/static/js/icon.vis_area.84e96cd4.chunk.js.map +1 -0
  1599. feast/ui/build/static/js/icon.vis_area_stacked.9c0fd63a.chunk.js +2 -0
  1600. feast/ui/build/static/js/icon.vis_area_stacked.9c0fd63a.chunk.js.map +1 -0
  1601. feast/ui/build/static/js/icon.vis_bar_horizontal.52d1389c.chunk.js +2 -0
  1602. feast/ui/build/static/js/icon.vis_bar_horizontal.52d1389c.chunk.js.map +1 -0
  1603. feast/ui/build/static/js/icon.vis_bar_horizontal_stacked.b104aac5.chunk.js +2 -0
  1604. feast/ui/build/static/js/icon.vis_bar_horizontal_stacked.b104aac5.chunk.js.map +1 -0
  1605. feast/ui/build/static/js/icon.vis_bar_vertical.a0401cb1.chunk.js +2 -0
  1606. feast/ui/build/static/js/icon.vis_bar_vertical.a0401cb1.chunk.js.map +1 -0
  1607. feast/ui/build/static/js/icon.vis_bar_vertical_stacked.b0b04e60.chunk.js +2 -0
  1608. feast/ui/build/static/js/icon.vis_bar_vertical_stacked.b0b04e60.chunk.js.map +1 -0
  1609. feast/ui/build/static/js/icon.vis_gauge.3f23a421.chunk.js +2 -0
  1610. feast/ui/build/static/js/icon.vis_gauge.3f23a421.chunk.js.map +1 -0
  1611. feast/ui/build/static/js/icon.vis_goal.141027b6.chunk.js +2 -0
  1612. feast/ui/build/static/js/icon.vis_goal.141027b6.chunk.js.map +1 -0
  1613. feast/ui/build/static/js/icon.vis_line.d82e7370.chunk.js +2 -0
  1614. feast/ui/build/static/js/icon.vis_line.d82e7370.chunk.js.map +1 -0
  1615. feast/ui/build/static/js/icon.vis_map_coordinate.7c6ec8ce.chunk.js +2 -0
  1616. feast/ui/build/static/js/icon.vis_map_coordinate.7c6ec8ce.chunk.js.map +1 -0
  1617. feast/ui/build/static/js/icon.vis_map_region.ba667e6b.chunk.js +2 -0
  1618. feast/ui/build/static/js/icon.vis_map_region.ba667e6b.chunk.js.map +1 -0
  1619. feast/ui/build/static/js/icon.vis_metric.1f6e55db.chunk.js +2 -0
  1620. feast/ui/build/static/js/icon.vis_metric.1f6e55db.chunk.js.map +1 -0
  1621. feast/ui/build/static/js/icon.vis_pie.d4848284.chunk.js +2 -0
  1622. feast/ui/build/static/js/icon.vis_pie.d4848284.chunk.js.map +1 -0
  1623. feast/ui/build/static/js/icon.vis_table.4e86cae3.chunk.js +2 -0
  1624. feast/ui/build/static/js/icon.vis_table.4e86cae3.chunk.js.map +1 -0
  1625. feast/ui/build/static/js/icon.vis_tag_cloud.0309b6fd.chunk.js +2 -0
  1626. feast/ui/build/static/js/icon.vis_tag_cloud.0309b6fd.chunk.js.map +1 -0
  1627. feast/ui/build/static/js/icon.vis_text.937fad72.chunk.js +2 -0
  1628. feast/ui/build/static/js/icon.vis_text.937fad72.chunk.js.map +1 -0
  1629. feast/ui/build/static/js/icon.vis_timelion.19045219.chunk.js +2 -0
  1630. feast/ui/build/static/js/icon.vis_timelion.19045219.chunk.js.map +1 -0
  1631. feast/ui/build/static/js/icon.vis_vega.b20b823b.chunk.js +2 -0
  1632. feast/ui/build/static/js/icon.vis_vega.b20b823b.chunk.js.map +1 -0
  1633. feast/ui/build/static/js/icon.vis_visual_builder.590d0087.chunk.js +2 -0
  1634. feast/ui/build/static/js/icon.vis_visual_builder.590d0087.chunk.js.map +1 -0
  1635. feast/ui/build/static/js/icon.warning.c555a5de.chunk.js +2 -0
  1636. feast/ui/build/static/js/icon.warning.c555a5de.chunk.js.map +1 -0
  1637. feast/ui/build/static/js/icon.warningFilled.9e2e84db.chunk.js +2 -0
  1638. feast/ui/build/static/js/icon.warningFilled.9e2e84db.chunk.js.map +1 -0
  1639. feast/ui/build/static/js/icon.wordWrap.72a071da.chunk.js +2 -0
  1640. feast/ui/build/static/js/icon.wordWrap.72a071da.chunk.js.map +1 -0
  1641. feast/ui/build/static/js/icon.wordWrapDisabled.25c0cc82.chunk.js +2 -0
  1642. feast/ui/build/static/js/icon.wordWrapDisabled.25c0cc82.chunk.js.map +1 -0
  1643. feast/ui/build/static/js/icon.wrench.029ca7db.chunk.js +2 -0
  1644. feast/ui/build/static/js/icon.wrench.029ca7db.chunk.js.map +1 -0
  1645. feast/ui/build/static/js/main.03ac5c90.js +3 -0
  1646. feast/ui/build/static/js/main.03ac5c90.js.LICENSE.txt +174 -0
  1647. feast/ui/build/static/js/main.03ac5c90.js.map +1 -0
  1648. feast/ui/build/static/media/feast-icon-grey.e5aa0a305d8efd775c4b.svg +1 -0
  1649. feast/ui_server.py +1132 -0
  1650. feast/utils.py +1781 -0
  1651. feast/value_type.py +106 -0
  1652. feast/vector_store.py +87 -0
  1653. feast/version.py +10 -0
  1654. feast/version_utils.py +51 -0
  1655. feast/wait.py +55 -0
  1656. feast_custom-0.64.0.dist-info/METADATA +536 -0
  1657. feast_custom-0.64.0.dist-info/RECORD +1661 -0
  1658. feast_custom-0.64.0.dist-info/WHEEL +5 -0
  1659. feast_custom-0.64.0.dist-info/entry_points.txt +2 -0
  1660. feast_custom-0.64.0.dist-info/licenses/LICENSE +202 -0
  1661. feast_custom-0.64.0.dist-info/top_level.txt +3 -0
docs/conf.py ADDED
@@ -0,0 +1,200 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # Feast documentation build configuration file, created by
4
+ # sphinx-quickstart on Sat Nov 30 15:06:53 2019.
5
+ #
6
+ # This file is execfile()d with the current directory set to its
7
+ # containing dir.
8
+ #
9
+ # Note that not all possible configuration values are present in this
10
+ # autogenerated file.
11
+ #
12
+ # All configuration values have a default; values that are commented out
13
+ # serve to show the default.
14
+
15
+ # If extensions (or modules to document with autodoc) are in another directory,
16
+ # add these directories to sys.path here. If the directory is relative to the
17
+ # documentation root, use os.path.abspath to make it absolute, like shown here.
18
+ #
19
+ import os
20
+ import sys
21
+
22
+ sys.path.insert(0, os.path.abspath("../../feast"))
23
+ sys.path.insert(0, os.path.abspath("../.."))
24
+
25
+
26
+ # -- Build protos ---------------------------------------------------------
27
+
28
+ # For an unknown reason, the Python protos stopped being built correctly.
29
+ # See https://readthedocs.org/projects/feast/builds/17686555/ for an
30
+ # example where the Python protos did not build, which subsequently broke
31
+ # the RTD build. In order to fix this, we manually compile the protos.
32
+ import subprocess
33
+ from pathlib import Path
34
+
35
+ # cwd will be feast/sdk/python/docs/source
36
+ cwd = Path(os.getcwd())
37
+
38
+ # Change to feast/
39
+ os.chdir(cwd.parent.parent.parent.parent)
40
+
41
+ # Compile Python protos
42
+ result = subprocess.run(
43
+ ["python", "infra/scripts/generate_protos.py"], capture_output=True
44
+ )
45
+ stdout = result.stdout.decode("utf-8")
46
+ stderr = result.stderr.decode("utf-8")
47
+ print(f"Apply stdout:\n{stdout}")
48
+ print(f"Apply stderr:\n{stderr}")
49
+
50
+ # -- General configuration ------------------------------------------------
51
+
52
+ # If your documentation needs a minimal Sphinx version, state it here.
53
+ #
54
+ # needs_sphinx = '1.0'
55
+
56
+ # Add any Sphinx extension module names here, as strings. They can be
57
+ # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
58
+ # ones.
59
+ extensions = [
60
+ "sphinx.ext.doctest",
61
+ "sphinx.ext.intersphinx",
62
+ "sphinx.ext.todo",
63
+ "sphinx.ext.coverage",
64
+ "sphinx.ext.mathjax",
65
+ "sphinx.ext.ifconfig",
66
+ "sphinx.ext.viewcode",
67
+ "sphinx.ext.githubpages",
68
+ "sphinx.ext.napoleon",
69
+ "sphinx.ext.autodoc",
70
+ "sphinx_rtd_theme",
71
+ ]
72
+
73
+ # Add any paths that contain templates here, relative to this directory.
74
+ templates_path = ["_templates"]
75
+
76
+ # The suffix(es) of source filenames.
77
+ # You can specify multiple suffix as a list of string:
78
+ #
79
+ # source_suffix = ['.rst', '.md']
80
+ source_suffix = ".rst"
81
+
82
+ # The master toctree document.
83
+ master_doc = "index"
84
+
85
+ # General information about the project.
86
+ project = "Feast"
87
+ copyright = "2021, Feast Authors"
88
+ author = "Feast Authors"
89
+
90
+ # The version info for the project you're documenting, acts as replacement for
91
+ # |version| and |release|, also used in various other places throughout the
92
+ # built documents.
93
+ #
94
+ # The short X.Y version.
95
+
96
+ # TODO: Add the below versions back to documentation building.
97
+ # version = (
98
+ # os.popen("git describe --tags $(git rev-list --tags --max-count=1)").read().strip()
99
+ # )
100
+ # The full version, including alpha/beta/rc tags.
101
+ # release = (
102
+ # os.popen("git describe --tags $(git rev-list --tags --max-count=1)").read().strip()
103
+ # )
104
+
105
+ # The language for content autogenerated by Sphinx. Refer to documentation
106
+ # for a list of supported languages.
107
+ #
108
+ # This is also used if you do content translation via gettext catalogs.
109
+ # Usually you set "language" from the command line for these cases.
110
+ language = None
111
+
112
+ # List of patterns, relative to source directory, that match files and
113
+ # directories to ignore when looking for source files.
114
+ # This patterns also effect to html_static_path and html_extra_path
115
+ exclude_patterns = []
116
+
117
+ # The name of the Pygments (syntax highlighting) style to use.
118
+ pygments_style = "sphinx"
119
+
120
+ # If true, `todo` and `todoList` produce output, else they produce nothing.
121
+ todo_include_todos = True
122
+
123
+
124
+ # -- Options for HTML output ----------------------------------------------
125
+
126
+ # The theme to use for HTML and HTML Help pages. See the documentation for
127
+ # a list of builtin themes.
128
+ #
129
+ html_theme = "sphinx_rtd_theme"
130
+
131
+ # Theme options are theme-specific and customize the look and feel of a theme
132
+ # further. For a list of options available for each theme, see the
133
+ # documentation.
134
+ #
135
+ html_theme_options = {}
136
+
137
+ # Add any paths that contain custom static files (such as style sheets) here,
138
+ # relative to this directory. They are copied after the builtin static files,
139
+ # so a file named "default.css" will overwrite the builtin "default.css".
140
+ html_static_path = ["_static"]
141
+
142
+
143
+ # -- Options for HTMLHelp output ------------------------------------------
144
+
145
+ # Output file base name for HTML help builder.
146
+ htmlhelp_basename = "Feastdoc"
147
+
148
+
149
+ # -- Options for LaTeX output ---------------------------------------------
150
+
151
+ latex_elements = {
152
+ # The paper size ('letterpaper' or 'a4paper').
153
+ #
154
+ # 'papersize': 'letterpaper',
155
+ # The font size ('10pt', '11pt' or '12pt').
156
+ #
157
+ # 'pointsize': '10pt',
158
+ # Additional stuff for the LaTeX preamble.
159
+ #
160
+ # 'preamble': '',
161
+ # Latex figure (float) alignment
162
+ #
163
+ # 'figure_align': 'htbp',
164
+ }
165
+
166
+ # Grouping the document tree into LaTeX files. List of tuples
167
+ # (source start file, target name, title,
168
+ # author, documentclass [howto, manual, or own class]).
169
+ latex_documents = [
170
+ (master_doc, "Feast.tex", "Feast Documentation", "Feast Authors", "manual")
171
+ ]
172
+
173
+
174
+ # -- Options for manual page output ---------------------------------------
175
+
176
+ # One entry per manual page. List of tuples
177
+ # (source start file, name, description, authors, manual section).
178
+ man_pages = [(master_doc, "feast", "Feast Documentation", [author], 1)]
179
+
180
+
181
+ # -- Options for Texinfo output -------------------------------------------
182
+
183
+ # Grouping the document tree into Texinfo files. List of tuples
184
+ # (source start file, target name, title, author,
185
+ # dir menu entry, description, category)
186
+ texinfo_documents = [
187
+ (
188
+ master_doc,
189
+ "Feast",
190
+ "Feast Documentation",
191
+ author,
192
+ "Feast",
193
+ "One line description of project.",
194
+ "Miscellaneous",
195
+ )
196
+ ]
197
+
198
+
199
+ # Example configuration for intersphinx: refer to the Python standard library.
200
+ intersphinx_mapping = {"https://docs.python.org/": None}
docs/source/conf.py ADDED
@@ -0,0 +1,200 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # Feast documentation build configuration file, created by
4
+ # sphinx-quickstart on Sat Nov 30 15:06:53 2019.
5
+ #
6
+ # This file is execfile()d with the current directory set to its
7
+ # containing dir.
8
+ #
9
+ # Note that not all possible configuration values are present in this
10
+ # autogenerated file.
11
+ #
12
+ # All configuration values have a default; values that are commented out
13
+ # serve to show the default.
14
+
15
+ # If extensions (or modules to document with autodoc) are in another directory,
16
+ # add these directories to sys.path here. If the directory is relative to the
17
+ # documentation root, use os.path.abspath to make it absolute, like shown here.
18
+ #
19
+ import os
20
+ import sys
21
+
22
+ sys.path.insert(0, os.path.abspath("../../feast"))
23
+ sys.path.insert(0, os.path.abspath("../.."))
24
+
25
+
26
+ # -- Build protos ---------------------------------------------------------
27
+
28
+ # For an unknown reason, the Python protos stopped being built correctly.
29
+ # See https://readthedocs.org/projects/feast/builds/17686555/ for an
30
+ # example where the Python protos did not build, which subsequently broke
31
+ # the RTD build. In order to fix this, we manually compile the protos.
32
+ import subprocess
33
+ from pathlib import Path
34
+
35
+ # cwd will be feast/sdk/python/docs/source
36
+ cwd = Path(os.getcwd())
37
+
38
+ # Change to feast/
39
+ os.chdir(cwd.parent.parent.parent.parent)
40
+
41
+ # Compile Python protos
42
+ result = subprocess.run(
43
+ ["python", "infra/scripts/generate_protos.py"], capture_output=True
44
+ )
45
+ stdout = result.stdout.decode("utf-8")
46
+ stderr = result.stderr.decode("utf-8")
47
+ print(f"Apply stdout:\n{stdout}")
48
+ print(f"Apply stderr:\n{stderr}")
49
+
50
+ # -- General configuration ------------------------------------------------
51
+
52
+ # If your documentation needs a minimal Sphinx version, state it here.
53
+ #
54
+ # needs_sphinx = '1.0'
55
+
56
+ # Add any Sphinx extension module names here, as strings. They can be
57
+ # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
58
+ # ones.
59
+ extensions = [
60
+ "sphinx.ext.doctest",
61
+ "sphinx.ext.intersphinx",
62
+ "sphinx.ext.todo",
63
+ "sphinx.ext.coverage",
64
+ "sphinx.ext.mathjax",
65
+ "sphinx.ext.ifconfig",
66
+ "sphinx.ext.viewcode",
67
+ "sphinx.ext.githubpages",
68
+ "sphinx.ext.napoleon",
69
+ "sphinx.ext.autodoc",
70
+ "sphinx_rtd_theme",
71
+ ]
72
+
73
+ # Add any paths that contain templates here, relative to this directory.
74
+ templates_path = ["_templates"]
75
+
76
+ # The suffix(es) of source filenames.
77
+ # You can specify multiple suffix as a list of string:
78
+ #
79
+ # source_suffix = ['.rst', '.md']
80
+ source_suffix = ".rst"
81
+
82
+ # The master toctree document.
83
+ master_doc = "index"
84
+
85
+ # General information about the project.
86
+ project = "Feast"
87
+ copyright = "2021, Feast Authors"
88
+ author = "Feast Authors"
89
+
90
+ # The version info for the project you're documenting, acts as replacement for
91
+ # |version| and |release|, also used in various other places throughout the
92
+ # built documents.
93
+ #
94
+ # The short X.Y version.
95
+
96
+ # TODO: Add the below versions back to documentation building.
97
+ # version = (
98
+ # os.popen("git describe --tags $(git rev-list --tags --max-count=1)").read().strip()
99
+ # )
100
+ # The full version, including alpha/beta/rc tags.
101
+ # release = (
102
+ # os.popen("git describe --tags $(git rev-list --tags --max-count=1)").read().strip()
103
+ # )
104
+
105
+ # The language for content autogenerated by Sphinx. Refer to documentation
106
+ # for a list of supported languages.
107
+ #
108
+ # This is also used if you do content translation via gettext catalogs.
109
+ # Usually you set "language" from the command line for these cases.
110
+ language = None
111
+
112
+ # List of patterns, relative to source directory, that match files and
113
+ # directories to ignore when looking for source files.
114
+ # This patterns also effect to html_static_path and html_extra_path
115
+ exclude_patterns = []
116
+
117
+ # The name of the Pygments (syntax highlighting) style to use.
118
+ pygments_style = "sphinx"
119
+
120
+ # If true, `todo` and `todoList` produce output, else they produce nothing.
121
+ todo_include_todos = True
122
+
123
+
124
+ # -- Options for HTML output ----------------------------------------------
125
+
126
+ # The theme to use for HTML and HTML Help pages. See the documentation for
127
+ # a list of builtin themes.
128
+ #
129
+ html_theme = "sphinx_rtd_theme"
130
+
131
+ # Theme options are theme-specific and customize the look and feel of a theme
132
+ # further. For a list of options available for each theme, see the
133
+ # documentation.
134
+ #
135
+ html_theme_options = {}
136
+
137
+ # Add any paths that contain custom static files (such as style sheets) here,
138
+ # relative to this directory. They are copied after the builtin static files,
139
+ # so a file named "default.css" will overwrite the builtin "default.css".
140
+ html_static_path = ["_static"]
141
+
142
+
143
+ # -- Options for HTMLHelp output ------------------------------------------
144
+
145
+ # Output file base name for HTML help builder.
146
+ htmlhelp_basename = "Feastdoc"
147
+
148
+
149
+ # -- Options for LaTeX output ---------------------------------------------
150
+
151
+ latex_elements = {
152
+ # The paper size ('letterpaper' or 'a4paper').
153
+ #
154
+ # 'papersize': 'letterpaper',
155
+ # The font size ('10pt', '11pt' or '12pt').
156
+ #
157
+ # 'pointsize': '10pt',
158
+ # Additional stuff for the LaTeX preamble.
159
+ #
160
+ # 'preamble': '',
161
+ # Latex figure (float) alignment
162
+ #
163
+ # 'figure_align': 'htbp',
164
+ }
165
+
166
+ # Grouping the document tree into LaTeX files. List of tuples
167
+ # (source start file, target name, title,
168
+ # author, documentclass [howto, manual, or own class]).
169
+ latex_documents = [
170
+ (master_doc, "Feast.tex", "Feast Documentation", "Feast Authors", "manual")
171
+ ]
172
+
173
+
174
+ # -- Options for manual page output ---------------------------------------
175
+
176
+ # One entry per manual page. List of tuples
177
+ # (source start file, name, description, authors, manual section).
178
+ man_pages = [(master_doc, "feast", "Feast Documentation", [author], 1)]
179
+
180
+
181
+ # -- Options for Texinfo output -------------------------------------------
182
+
183
+ # Grouping the document tree into Texinfo files. List of tuples
184
+ # (source start file, target name, title, author,
185
+ # dir menu entry, description, category)
186
+ texinfo_documents = [
187
+ (
188
+ master_doc,
189
+ "Feast",
190
+ "Feast Documentation",
191
+ author,
192
+ "Feast",
193
+ "One line description of project.",
194
+ "Miscellaneous",
195
+ )
196
+ ]
197
+
198
+
199
+ # Example configuration for intersphinx: refer to the Python standard library.
200
+ intersphinx_mapping = {"https://docs.python.org/": None}
feast/__init__.py ADDED
@@ -0,0 +1,82 @@
1
+ from importlib.metadata import PackageNotFoundError
2
+ from importlib.metadata import version as _version
3
+
4
+ from feast.demos import copy_demo_notebooks
5
+ from feast.infra.offline_stores.bigquery_source import BigQuerySource
6
+ from feast.infra.offline_stores.contrib.athena_offline_store.athena_source import (
7
+ AthenaSource,
8
+ )
9
+ from feast.infra.offline_stores.contrib.oracle_offline_store.oracle_source import (
10
+ OracleSource,
11
+ )
12
+ from feast.infra.offline_stores.file_source import FileSource
13
+ from feast.infra.offline_stores.redshift_source import RedshiftSource
14
+ from feast.infra.offline_stores.snowflake_source import SnowflakeSource
15
+
16
+ from .aggregation import Aggregation
17
+ from .batch_feature_view import BatchFeatureView
18
+ from .chunker import BaseChunker, ChunkingConfig, TextChunker
19
+ from .data_source import KafkaSource, KinesisSource, PushSource, RequestSource
20
+ from .dataframe import DataFrameEngine, FeastDataFrame
21
+ from .doc_embedder import DocEmbedder, SchemaTransformFn
22
+ from .embedder import BaseEmbedder, EmbeddingConfig, MultiModalEmbedder
23
+ from .entity import Entity
24
+ from .feature import Feature
25
+ from .feature_service import FeatureService
26
+ from .feature_store import FeatureStore
27
+ from .feature_view import FeatureView, FeatureViewState
28
+ from .field import Field
29
+ from .labeling import ConflictPolicy, LabelView
30
+ from .on_demand_feature_view import OnDemandFeatureView
31
+ from .project import Project
32
+ from .repo_config import RepoConfig
33
+ from .stream_feature_view import StreamFeatureView
34
+ from .value_type import ValueType
35
+ from .vector_store import FeastVectorStore
36
+
37
+ try:
38
+ __version__ = _version("feast-custom")
39
+ except PackageNotFoundError:
40
+ # package is not installed
41
+ pass
42
+
43
+ __all__ = [
44
+ "Aggregation",
45
+ "BatchFeatureView",
46
+ "copy_demo_notebooks",
47
+ "DataFrameEngine",
48
+ "Entity",
49
+ "KafkaSource",
50
+ "KinesisSource",
51
+ "FeastDataFrame",
52
+ "Feature",
53
+ "Field",
54
+ "FeatureService",
55
+ "FeatureStore",
56
+ "FeatureView",
57
+ "FeatureViewState",
58
+ "LabelView",
59
+ "ConflictPolicy",
60
+ "OnDemandFeatureView",
61
+ "RepoConfig",
62
+ "StreamFeatureView",
63
+ "ValueType",
64
+ "BigQuerySource",
65
+ "FileSource",
66
+ "RedshiftSource",
67
+ "SnowflakeSource",
68
+ "PushSource",
69
+ "RequestSource",
70
+ "AthenaSource",
71
+ "OracleSource",
72
+ "Project",
73
+ "FeastVectorStore",
74
+ "DocEmbedder",
75
+ "SchemaTransformFn",
76
+ "BaseChunker",
77
+ "TextChunker",
78
+ "ChunkingConfig",
79
+ "BaseEmbedder",
80
+ "MultiModalEmbedder",
81
+ "EmbeddingConfig",
82
+ ]
@@ -0,0 +1,141 @@
1
+ """
2
+ Aggregation module for Feast.
3
+ """
4
+
5
+ from datetime import timedelta
6
+ from typing import Any, Dict, Iterable, Optional, Tuple
7
+
8
+ from google.protobuf.duration_pb2 import Duration
9
+ from typeguard import typechecked
10
+
11
+ from feast.protos.feast.core.Aggregation_pb2 import Aggregation as AggregationProto
12
+
13
+
14
+ @typechecked
15
+ class Aggregation:
16
+ """
17
+ NOTE: Feast-handled aggregations are not yet supported. This class provides a way to register user-defined aggregations.
18
+
19
+ Attributes:
20
+ column: str # Column name of the feature we are aggregating.
21
+ function: str # Provided built in aggregations sum, max, min, count, mean, count_distinct
22
+ time_window: timedelta # The time window for this aggregation.
23
+ slide_interval: timedelta # The sliding window for these aggregations
24
+ name: str # Optional override for the output feature name (defaults to {function}_{column})
25
+ """
26
+
27
+ column: str
28
+ function: str
29
+ time_window: Optional[timedelta]
30
+ slide_interval: Optional[timedelta]
31
+ name: str
32
+
33
+ def __init__(
34
+ self,
35
+ column: Optional[str] = "",
36
+ function: Optional[str] = "",
37
+ time_window: Optional[timedelta] = None,
38
+ slide_interval: Optional[timedelta] = None,
39
+ name: Optional[str] = None,
40
+ ):
41
+ self.column = column or ""
42
+ self.function = function or ""
43
+ self.time_window = time_window
44
+ if not slide_interval:
45
+ self.slide_interval = self.time_window
46
+ else:
47
+ self.slide_interval = slide_interval
48
+ self.name = name or ""
49
+
50
+ def to_proto(self) -> AggregationProto:
51
+ window_duration = None
52
+ if self.time_window is not None:
53
+ window_duration = Duration()
54
+ window_duration.FromTimedelta(self.time_window)
55
+
56
+ slide_interval_duration = None
57
+ if self.slide_interval is not None:
58
+ slide_interval_duration = Duration()
59
+ slide_interval_duration.FromTimedelta(self.slide_interval)
60
+
61
+ return AggregationProto(
62
+ column=self.column,
63
+ function=self.function,
64
+ time_window=window_duration,
65
+ slide_interval=slide_interval_duration,
66
+ name=self.name,
67
+ )
68
+
69
+ @classmethod
70
+ def from_proto(cls, agg_proto: AggregationProto):
71
+ time_window = (
72
+ timedelta(days=0)
73
+ if agg_proto.time_window.ToNanoseconds() == 0
74
+ else agg_proto.time_window.ToTimedelta()
75
+ )
76
+
77
+ slide_interval = (
78
+ timedelta(days=0)
79
+ if agg_proto.slide_interval.ToNanoseconds() == 0
80
+ else agg_proto.slide_interval.ToTimedelta()
81
+ )
82
+ aggregation = cls(
83
+ column=agg_proto.column,
84
+ function=agg_proto.function,
85
+ time_window=time_window,
86
+ slide_interval=slide_interval,
87
+ name=agg_proto.name or None,
88
+ )
89
+ return aggregation
90
+
91
+ def __eq__(self, other):
92
+ if not isinstance(other, Aggregation):
93
+ raise TypeError("Comparisons should only involve Aggregations.")
94
+
95
+ if (
96
+ self.column != other.column
97
+ or self.function != other.function
98
+ or self.time_window != other.time_window
99
+ or self.slide_interval != other.slide_interval
100
+ or self.name != other.name
101
+ ):
102
+ return False
103
+
104
+ return True
105
+
106
+ def resolved_name(self, time_window: Optional[timedelta] = None) -> str:
107
+ """Return the output feature name for this aggregation.
108
+
109
+ If ``name`` is set it is returned as-is. Otherwise the name is
110
+ derived as ``{function}_{column}``, with ``_{seconds}s`` appended
111
+ when *time_window* is provided.
112
+ """
113
+ if self.name:
114
+ return self.name
115
+ base = f"{self.function}_{self.column}"
116
+ if time_window is not None and time_window.total_seconds() > 0:
117
+ return f"{base}_{int(time_window.total_seconds())}s"
118
+ return base
119
+
120
+
121
+ _FUNCTION_ALIASES: Dict[str, str] = {
122
+ "count_distinct": "nunique",
123
+ }
124
+
125
+
126
+ def aggregation_specs_to_agg_ops(
127
+ agg_specs: Iterable[Any],
128
+ *,
129
+ time_window_unsupported_error_message: str,
130
+ ) -> Dict[str, Tuple[str, str]]:
131
+ agg_ops: Dict[str, Tuple[str, str]] = {}
132
+ for agg in agg_specs:
133
+ if getattr(agg, "time_window", None) is not None:
134
+ raise ValueError(time_window_unsupported_error_message)
135
+ alias = getattr(agg, "name", None) or f"{agg.function}_{agg.column}"
136
+ func_name = _FUNCTION_ALIASES.get(agg.function, agg.function)
137
+ agg_ops[alias] = (func_name, agg.column)
138
+ return agg_ops
139
+
140
+
141
+ __all__ = ["Aggregation", "aggregation_specs_to_agg_ops"]
@@ -0,0 +1,27 @@
1
+ """
2
+ Tiling for efficient time-windowed aggregations.
3
+
4
+ This module provides tiling algorithms and interfaces
5
+ that can be implemented by any compute engine (Spark, Ray, etc.).
6
+
7
+ Architecture:
8
+ 1. Engine nodes: Convert to pandas (e.g., dataset.to_pandas(), toPandas())
9
+ 2. orchestrator.py: Generate cumulative tiles
10
+ 3. tile_subtraction.py: Convert cumulative tiles to windowed aggregations
11
+ 4. Engine nodes: Convert back to engine format (e.g., from_pandas(), createDataFrame())
12
+ """
13
+
14
+ from feast.aggregation.tiling.base import IRMetadata, get_ir_metadata_for_aggregation
15
+ from feast.aggregation.tiling.orchestrator import apply_sawtooth_window_tiling
16
+ from feast.aggregation.tiling.tile_subtraction import (
17
+ convert_cumulative_to_windowed,
18
+ deduplicate_keep_latest,
19
+ )
20
+
21
+ __all__ = [
22
+ "IRMetadata",
23
+ "get_ir_metadata_for_aggregation",
24
+ "apply_sawtooth_window_tiling",
25
+ "convert_cumulative_to_windowed",
26
+ "deduplicate_keep_latest",
27
+ ]