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.
- docs/conf.py +200 -0
- docs/source/conf.py +200 -0
- feast/__init__.py +82 -0
- feast/aggregation/__init__.py +141 -0
- feast/aggregation/tiling/__init__.py +27 -0
- feast/aggregation/tiling/base.py +97 -0
- feast/aggregation/tiling/orchestrator.py +189 -0
- feast/aggregation/tiling/tile_subtraction.py +177 -0
- feast/api/__init__.py +0 -0
- feast/api/registry/__init__.py +0 -0
- feast/api/registry/rest/__init__.py +34 -0
- feast/api/registry/rest/codegen_utils.py +51 -0
- feast/api/registry/rest/data_sources.py +276 -0
- feast/api/registry/rest/entities.py +194 -0
- feast/api/registry/rest/feature_services.py +148 -0
- feast/api/registry/rest/feature_views.py +373 -0
- feast/api/registry/rest/features.py +203 -0
- feast/api/registry/rest/label_views.py +137 -0
- feast/api/registry/rest/lineage.py +297 -0
- feast/api/registry/rest/metrics.py +511 -0
- feast/api/registry/rest/monitoring.py +399 -0
- feast/api/registry/rest/permissions.py +78 -0
- feast/api/registry/rest/projects.py +52 -0
- feast/api/registry/rest/rest_registry_server.py +338 -0
- feast/api/registry/rest/rest_utils.py +1033 -0
- feast/api/registry/rest/saved_datasets.py +134 -0
- feast/api/registry/rest/search.py +336 -0
- feast/arrow_error_handler.py +94 -0
- feast/base_feature_view.py +284 -0
- feast/batch_feature_view.py +236 -0
- feast/chunker.py +150 -0
- feast/cli/__init__.py +0 -0
- feast/cli/cli.py +659 -0
- feast/cli/cli_options.py +8 -0
- feast/cli/cli_utils.py +328 -0
- feast/cli/data_sources.py +55 -0
- feast/cli/dbt_import.py +410 -0
- feast/cli/entities.py +55 -0
- feast/cli/feature_services.py +62 -0
- feast/cli/feature_views.py +236 -0
- feast/cli/features.py +209 -0
- feast/cli/label_views.py +69 -0
- feast/cli/monitor.py +225 -0
- feast/cli/on_demand_feature_views.py +57 -0
- feast/cli/permissions.py +271 -0
- feast/cli/projects.py +113 -0
- feast/cli/saved_datasets.py +57 -0
- feast/cli/serve.py +353 -0
- feast/cli/stream_feature_views.py +57 -0
- feast/cli/ui.py +70 -0
- feast/cli/validation_references.py +57 -0
- feast/constants.py +48 -0
- feast/data_format.py +173 -0
- feast/data_source.py +958 -0
- feast/dataframe.py +96 -0
- feast/dbt/__init__.py +30 -0
- feast/dbt/codegen.py +423 -0
- feast/dbt/mapper.py +480 -0
- feast/dbt/parser.py +260 -0
- feast/demos.py +851 -0
- feast/diff/__init__.py +0 -0
- feast/diff/apply_progress.py +185 -0
- feast/diff/infra_diff.py +229 -0
- feast/diff/property_diff.py +17 -0
- feast/diff/registry_diff.py +425 -0
- feast/doc_embedder.py +380 -0
- feast/document_labeling.py +96 -0
- feast/dqm/__init__.py +0 -0
- feast/dqm/errors.py +13 -0
- feast/dqm/profilers/__init__.py +0 -0
- feast/dqm/profilers/ge_profiler.py +203 -0
- feast/dqm/profilers/profiler.py +105 -0
- feast/driver_test_data.py +349 -0
- feast/embedded_go/__init__.py +0 -0
- feast/embedded_go/online_features_service.py +346 -0
- feast/embedded_go/type_map.py +88 -0
- feast/embedder.py +241 -0
- feast/entity.py +213 -0
- feast/errors.py +578 -0
- feast/feast_object.py +66 -0
- feast/feature.py +134 -0
- feast/feature_logging.py +172 -0
- feast/feature_server.py +1163 -0
- feast/feature_server_utils.py +141 -0
- feast/feature_service.py +273 -0
- feast/feature_store.py +4307 -0
- feast/feature_view.py +806 -0
- feast/feature_view_projection.py +165 -0
- feast/feature_view_utils.py +301 -0
- feast/field.py +289 -0
- feast/file_utils.py +85 -0
- feast/flags_helper.py +11 -0
- feast/grpc_error_interceptor.py +48 -0
- feast/image_utils.py +272 -0
- feast/importer.py +47 -0
- feast/inference.py +355 -0
- feast/infra/__init__.py +1 -0
- feast/infra/common/__init__.py +0 -0
- feast/infra/common/materialization_job.py +61 -0
- feast/infra/common/retrieval_task.py +19 -0
- feast/infra/common/serde.py +42 -0
- feast/infra/compute_engines/__init__.py +0 -0
- feast/infra/compute_engines/algorithms/__init__.py +0 -0
- feast/infra/compute_engines/algorithms/topo.py +43 -0
- feast/infra/compute_engines/aws_lambda/__init__.py +0 -0
- feast/infra/compute_engines/aws_lambda/app.py +93 -0
- feast/infra/compute_engines/aws_lambda/lambda_engine.py +285 -0
- feast/infra/compute_engines/backends/__init__.py +0 -0
- feast/infra/compute_engines/backends/base.py +79 -0
- feast/infra/compute_engines/backends/factory.py +54 -0
- feast/infra/compute_engines/backends/pandas_backend.py +46 -0
- feast/infra/compute_engines/backends/polars_backend.py +49 -0
- feast/infra/compute_engines/base.py +164 -0
- feast/infra/compute_engines/dag/__init__.py +0 -0
- feast/infra/compute_engines/dag/context.py +105 -0
- feast/infra/compute_engines/dag/model.py +9 -0
- feast/infra/compute_engines/dag/node.py +50 -0
- feast/infra/compute_engines/dag/plan.py +75 -0
- feast/infra/compute_engines/dag/value.py +14 -0
- feast/infra/compute_engines/feature_builder.py +197 -0
- feast/infra/compute_engines/feature_resolver.py +95 -0
- feast/infra/compute_engines/flink/__init__.py +11 -0
- feast/infra/compute_engines/flink/compute.py +161 -0
- feast/infra/compute_engines/flink/feature_builder.py +214 -0
- feast/infra/compute_engines/flink/job.py +124 -0
- feast/infra/compute_engines/flink/nodes.py +816 -0
- feast/infra/compute_engines/flink/utils.py +218 -0
- feast/infra/compute_engines/kubernetes/__init__.py +0 -0
- feast/infra/compute_engines/kubernetes/k8s_engine.py +386 -0
- feast/infra/compute_engines/kubernetes/k8s_materialization_job.py +62 -0
- feast/infra/compute_engines/kubernetes/k8s_materialization_task.py +10 -0
- feast/infra/compute_engines/kubernetes/main.py +85 -0
- feast/infra/compute_engines/local/__init__.py +0 -0
- feast/infra/compute_engines/local/arrow_table_value.py +12 -0
- feast/infra/compute_engines/local/compute.py +117 -0
- feast/infra/compute_engines/local/feature_builder.py +134 -0
- feast/infra/compute_engines/local/job.py +111 -0
- feast/infra/compute_engines/local/local_node.py +14 -0
- feast/infra/compute_engines/local/nodes.py +410 -0
- feast/infra/compute_engines/ray/__init__.py +38 -0
- feast/infra/compute_engines/ray/compute.py +314 -0
- feast/infra/compute_engines/ray/config.py +137 -0
- feast/infra/compute_engines/ray/feature_builder.py +352 -0
- feast/infra/compute_engines/ray/job.py +301 -0
- feast/infra/compute_engines/ray/nodes.py +1047 -0
- feast/infra/compute_engines/ray/utils.py +214 -0
- feast/infra/compute_engines/snowflake/__init__.py +0 -0
- feast/infra/compute_engines/snowflake/snowflake_engine.py +521 -0
- feast/infra/compute_engines/snowflake/snowflake_materialization_job.py +36 -0
- feast/infra/compute_engines/spark/__init__.py +0 -0
- feast/infra/compute_engines/spark/compute.py +233 -0
- feast/infra/compute_engines/spark/feature_builder.py +150 -0
- feast/infra/compute_engines/spark/job.py +90 -0
- feast/infra/compute_engines/spark/nodes.py +724 -0
- feast/infra/compute_engines/spark/utils.py +225 -0
- feast/infra/compute_engines/utils.py +83 -0
- feast/infra/contrib/__init__.py +0 -0
- feast/infra/contrib/grpc_server.py +187 -0
- feast/infra/contrib/spark_kafka_processor.py +175 -0
- feast/infra/contrib/stream_processor.py +108 -0
- feast/infra/feature_servers/__init__.py +0 -0
- feast/infra/feature_servers/base_config.py +117 -0
- feast/infra/feature_servers/local_process/__init__.py +0 -0
- feast/infra/feature_servers/local_process/config.py +11 -0
- feast/infra/feature_servers/multicloud/__init__.py +0 -0
- feast/infra/infra_object.py +154 -0
- feast/infra/key_encoding_utils.py +294 -0
- feast/infra/mcp_servers/__init__.py +9 -0
- feast/infra/mcp_servers/mcp_config.py +26 -0
- feast/infra/mcp_servers/mcp_server.py +85 -0
- feast/infra/offline_stores/__init__.py +0 -0
- feast/infra/offline_stores/bigquery.py +1721 -0
- feast/infra/offline_stores/bigquery_source.py +305 -0
- feast/infra/offline_stores/contrib/__init__.py +0 -0
- feast/infra/offline_stores/contrib/athena_offline_store/__init__.py +0 -0
- feast/infra/offline_stores/contrib/athena_offline_store/athena.py +741 -0
- feast/infra/offline_stores/contrib/athena_offline_store/athena_source.py +346 -0
- feast/infra/offline_stores/contrib/athena_offline_store/tests/__init__.py +0 -0
- feast/infra/offline_stores/contrib/athena_offline_store/tests/data_source.py +122 -0
- feast/infra/offline_stores/contrib/athena_repo_configuration.py +15 -0
- feast/infra/offline_stores/contrib/clickhouse_offline_store/__init__.py +0 -0
- feast/infra/offline_stores/contrib/clickhouse_offline_store/clickhouse.py +622 -0
- feast/infra/offline_stores/contrib/clickhouse_offline_store/clickhouse_source.py +215 -0
- feast/infra/offline_stores/contrib/clickhouse_offline_store/tests/__init__.py +1 -0
- feast/infra/offline_stores/contrib/clickhouse_offline_store/tests/data_source.py +224 -0
- feast/infra/offline_stores/contrib/clickhouse_repo_configuration.py +11 -0
- feast/infra/offline_stores/contrib/couchbase_columnar_repo_configuration.py +20 -0
- feast/infra/offline_stores/contrib/couchbase_offline_store/__init__.py +0 -0
- feast/infra/offline_stores/contrib/couchbase_offline_store/couchbase.py +742 -0
- feast/infra/offline_stores/contrib/couchbase_offline_store/couchbase_source.py +410 -0
- feast/infra/offline_stores/contrib/couchbase_offline_store/tests/__init__.py +0 -0
- feast/infra/offline_stores/contrib/couchbase_offline_store/tests/data_source.py +213 -0
- feast/infra/offline_stores/contrib/mongodb_offline_store/__init__.py +8 -0
- feast/infra/offline_stores/contrib/mongodb_offline_store/mongodb.py +1067 -0
- feast/infra/offline_stores/contrib/mssql_offline_store/__init__.py +0 -0
- feast/infra/offline_stores/contrib/mssql_offline_store/mssql.py +226 -0
- feast/infra/offline_stores/contrib/mssql_offline_store/mssqlserver_source.py +283 -0
- feast/infra/offline_stores/contrib/mssql_offline_store/tests/__init__.py +1 -0
- feast/infra/offline_stores/contrib/mssql_offline_store/tests/data_source.py +123 -0
- feast/infra/offline_stores/contrib/mssql_pymssql_offline_store.py +407 -0
- feast/infra/offline_stores/contrib/mssql_repo_configuration.py +13 -0
- feast/infra/offline_stores/contrib/oracle_offline_store/__init__.py +1 -0
- feast/infra/offline_stores/contrib/oracle_offline_store/oracle.py +900 -0
- feast/infra/offline_stores/contrib/oracle_offline_store/oracle_source.py +193 -0
- feast/infra/offline_stores/contrib/postgres_offline_store/__init__.py +0 -0
- feast/infra/offline_stores/contrib/postgres_offline_store/postgres.py +1344 -0
- feast/infra/offline_stores/contrib/postgres_offline_store/postgres_source.py +237 -0
- feast/infra/offline_stores/contrib/postgres_offline_store/tests/__init__.py +1 -0
- feast/infra/offline_stores/contrib/postgres_offline_store/tests/data_source.py +136 -0
- feast/infra/offline_stores/contrib/postgres_repo_configuration.py +11 -0
- feast/infra/offline_stores/contrib/ray_offline_store/__init__.py +56 -0
- feast/infra/offline_stores/contrib/ray_offline_store/ray.py +2632 -0
- feast/infra/offline_stores/contrib/ray_offline_store/ray_offline_store_reader.py +126 -0
- feast/infra/offline_stores/contrib/ray_offline_store/ray_source.py +283 -0
- feast/infra/offline_stores/contrib/ray_repo_configuration.py +128 -0
- feast/infra/offline_stores/contrib/spark_offline_store/__init__.py +0 -0
- feast/infra/offline_stores/contrib/spark_offline_store/spark.py +1704 -0
- feast/infra/offline_stores/contrib/spark_offline_store/spark_source.py +466 -0
- feast/infra/offline_stores/contrib/spark_offline_store/tests/__init__.py +0 -0
- feast/infra/offline_stores/contrib/spark_offline_store/tests/data_source.py +127 -0
- feast/infra/offline_stores/contrib/spark_repo_configuration.py +13 -0
- feast/infra/offline_stores/contrib/trino_offline_store/__init__.py +0 -0
- feast/infra/offline_stores/contrib/trino_offline_store/connectors/__init__.py +0 -0
- feast/infra/offline_stores/contrib/trino_offline_store/connectors/upload.py +196 -0
- feast/infra/offline_stores/contrib/trino_offline_store/test_config/__init__.py +0 -0
- feast/infra/offline_stores/contrib/trino_offline_store/test_config/manual_tests.py +13 -0
- feast/infra/offline_stores/contrib/trino_offline_store/tests/__init__.py +1 -0
- feast/infra/offline_stores/contrib/trino_offline_store/tests/data_source.py +132 -0
- feast/infra/offline_stores/contrib/trino_offline_store/trino.py +728 -0
- feast/infra/offline_stores/contrib/trino_offline_store/trino_queries.py +158 -0
- feast/infra/offline_stores/contrib/trino_offline_store/trino_source.py +282 -0
- feast/infra/offline_stores/contrib/trino_offline_store/trino_type_map.py +146 -0
- feast/infra/offline_stores/contrib/trino_repo_configuration.py +13 -0
- feast/infra/offline_stores/dask.py +1264 -0
- feast/infra/offline_stores/duckdb.py +713 -0
- feast/infra/offline_stores/file_source.py +434 -0
- feast/infra/offline_stores/hybrid_offline_store.py +220 -0
- feast/infra/offline_stores/ibis.py +561 -0
- feast/infra/offline_stores/offline_store.py +758 -0
- feast/infra/offline_stores/offline_utils.py +431 -0
- feast/infra/offline_stores/redshift.py +1397 -0
- feast/infra/offline_stores/redshift_source.py +402 -0
- feast/infra/offline_stores/remote.py +627 -0
- feast/infra/offline_stores/snowflake.py +1442 -0
- feast/infra/offline_stores/snowflake_source.py +450 -0
- feast/infra/online_stores/__init__.py +0 -0
- feast/infra/online_stores/bigtable.py +338 -0
- feast/infra/online_stores/cassandra_online_store/__init__.py +0 -0
- feast/infra/online_stores/cassandra_online_store/cassandra_online_store.py +594 -0
- feast/infra/online_stores/cassandra_online_store/cassandra_repo_configuration.py +26 -0
- feast/infra/online_stores/couchbase_online_store/__init__.py +0 -0
- feast/infra/online_stores/couchbase_online_store/couchbase.py +315 -0
- feast/infra/online_stores/couchbase_online_store/couchbase_repo_configuration.py +10 -0
- feast/infra/online_stores/datastore.py +469 -0
- feast/infra/online_stores/dynamodb.py +1291 -0
- feast/infra/online_stores/elasticsearch_online_store/__init__.py +0 -0
- feast/infra/online_stores/elasticsearch_online_store/elasticsearch.py +524 -0
- feast/infra/online_stores/elasticsearch_online_store/elasticsearch_repo_configuration.py +13 -0
- feast/infra/online_stores/faiss_online_store.py +272 -0
- feast/infra/online_stores/hazelcast_online_store/__init__.py +0 -0
- feast/infra/online_stores/hazelcast_online_store/hazelcast_online_store.py +318 -0
- feast/infra/online_stores/hazelcast_online_store/hazelcast_repo_configuration.py +26 -0
- feast/infra/online_stores/hbase_online_store/__init__.py +0 -0
- feast/infra/online_stores/hbase_online_store/hbase.py +266 -0
- feast/infra/online_stores/hbase_online_store/hbase_repo_configuration.py +10 -0
- feast/infra/online_stores/helpers.py +89 -0
- feast/infra/online_stores/hybrid_online_store/__init__.py +0 -0
- feast/infra/online_stores/hybrid_online_store/hybrid_online_store.py +327 -0
- feast/infra/online_stores/hybrid_online_store/hybrid_online_store_repo_configuration.py +28 -0
- feast/infra/online_stores/milvus_online_store/__init__.py +0 -0
- feast/infra/online_stores/milvus_online_store/milvus.py +866 -0
- feast/infra/online_stores/milvus_online_store/milvus_repo_configuration.py +15 -0
- feast/infra/online_stores/mongodb_online_store/__init__.py +3 -0
- feast/infra/online_stores/mongodb_online_store/mongodb.py +789 -0
- feast/infra/online_stores/mongodb_online_store/mongodb_repo_configuration.py +13 -0
- feast/infra/online_stores/mysql_online_store/__init__.py +0 -0
- feast/infra/online_stores/mysql_online_store/mysql.py +329 -0
- feast/infra/online_stores/mysql_online_store/mysql_repo_configuration.py +12 -0
- feast/infra/online_stores/online_store.py +966 -0
- feast/infra/online_stores/postgres_online_store/__init__.py +0 -0
- feast/infra/online_stores/postgres_online_store/pgvector_repo_configuration.py +12 -0
- feast/infra/online_stores/postgres_online_store/postgres.py +865 -0
- feast/infra/online_stores/postgres_online_store/postgres_repo_configuration.py +12 -0
- feast/infra/online_stores/qdrant_online_store/__init__.py +0 -0
- feast/infra/online_stores/qdrant_online_store/qdrant.py +323 -0
- feast/infra/online_stores/qdrant_online_store/qdrant_repo_configuration.py +12 -0
- feast/infra/online_stores/redis.py +757 -0
- feast/infra/online_stores/remote.py +780 -0
- feast/infra/online_stores/singlestore_online_store/__init__.py +0 -0
- feast/infra/online_stores/singlestore_online_store/singlestore.py +229 -0
- feast/infra/online_stores/singlestore_online_store/singlestore_repo_configuration.py +10 -0
- feast/infra/online_stores/snowflake.py +263 -0
- feast/infra/online_stores/sqlite.py +853 -0
- feast/infra/online_stores/vector_store.py +16 -0
- feast/infra/passthrough_provider.py +584 -0
- feast/infra/provider.py +551 -0
- feast/infra/ray_initializer.py +909 -0
- feast/infra/ray_shared_utils.py +572 -0
- feast/infra/registry/__init__.py +0 -0
- feast/infra/registry/base_registry.py +1293 -0
- feast/infra/registry/caching_registry.py +528 -0
- feast/infra/registry/contrib/__init__.py +0 -0
- feast/infra/registry/contrib/azure/__init__.py +0 -0
- feast/infra/registry/contrib/azure/azure_registry_store.py +136 -0
- feast/infra/registry/contrib/hdfs/__init__.py +0 -0
- feast/infra/registry/contrib/hdfs/hdfs_registry_store.py +121 -0
- feast/infra/registry/file.py +97 -0
- feast/infra/registry/gcs.py +110 -0
- feast/infra/registry/proto_registry_utils.py +498 -0
- feast/infra/registry/registry.py +1671 -0
- feast/infra/registry/registry_store.py +49 -0
- feast/infra/registry/remote.py +794 -0
- feast/infra/registry/s3.py +118 -0
- feast/infra/registry/snowflake.py +1586 -0
- feast/infra/registry/sql.py +1843 -0
- feast/infra/supported_async_methods.py +10 -0
- feast/infra/transformation_servers/__init__.py +0 -0
- feast/infra/transformation_servers/app.py +65 -0
- feast/infra/utils/__init__.py +0 -0
- feast/infra/utils/aws_utils.py +1142 -0
- feast/infra/utils/clickhouse/__init__.py +0 -0
- feast/infra/utils/clickhouse/clickhouse_config.py +20 -0
- feast/infra/utils/clickhouse/connection_utils.py +34 -0
- feast/infra/utils/couchbase/__init__.py +0 -0
- feast/infra/utils/couchbase/couchbase_utils.py +13 -0
- feast/infra/utils/hbase_utils.py +221 -0
- feast/infra/utils/postgres/__init__.py +0 -0
- feast/infra/utils/postgres/connection_utils.py +123 -0
- feast/infra/utils/postgres/postgres_config.py +28 -0
- feast/infra/utils/snowflake/__init__.py +0 -0
- feast/infra/utils/snowflake/registry/__init__.py +0 -0
- feast/infra/utils/snowflake/snowflake_utils.py +716 -0
- feast/infra/utils/snowflake/snowpark/__init__.py +0 -0
- feast/infra/utils/snowflake/snowpark/snowflake_udfs.py +474 -0
- feast/labeling/__init__.py +11 -0
- feast/labeling/conflict_policy.py +66 -0
- feast/labeling/conflict_resolver.py +157 -0
- feast/labeling/label_view.py +446 -0
- feast/lineage/__init__.py +4 -0
- feast/lineage/registry_lineage.py +545 -0
- feast/metrics.py +639 -0
- feast/mlflow.py +139 -0
- feast/mlflow_integration/__init__.py +39 -0
- feast/mlflow_integration/client.py +313 -0
- feast/mlflow_integration/config.py +65 -0
- feast/mlflow_integration/entity_df_builder.py +116 -0
- feast/mlflow_integration/logger.py +375 -0
- feast/mlflow_integration/model_resolver.py +138 -0
- feast/monitoring/__init__.py +7 -0
- feast/monitoring/dqm_job_manager.py +149 -0
- feast/monitoring/metrics_calculator.py +187 -0
- feast/monitoring/monitoring_service.py +1251 -0
- feast/monitoring/monitoring_utils.py +296 -0
- feast/names.py +928 -0
- feast/nlp_test_data.py +67 -0
- feast/offline_server.py +628 -0
- feast/on_demand_feature_view.py +1459 -0
- feast/online_response.py +181 -0
- feast/openlineage/__init__.py +85 -0
- feast/openlineage/client.py +309 -0
- feast/openlineage/config.py +169 -0
- feast/openlineage/emitter.py +1035 -0
- feast/openlineage/facets.py +281 -0
- feast/openlineage/mappers.py +546 -0
- feast/permissions/__init__.py +0 -0
- feast/permissions/action.py +40 -0
- feast/permissions/auth/__init__.py +0 -0
- feast/permissions/auth/auth_manager.py +68 -0
- feast/permissions/auth/auth_type.py +11 -0
- feast/permissions/auth/kubernetes_token_parser.py +477 -0
- feast/permissions/auth/oidc_token_parser.py +265 -0
- feast/permissions/auth/token_extractor.py +51 -0
- feast/permissions/auth/token_parser.py +28 -0
- feast/permissions/auth_model.py +75 -0
- feast/permissions/client/__init__.py +0 -0
- feast/permissions/client/arrow_flight_auth_interceptor.py +29 -0
- feast/permissions/client/auth_client_manager.py +49 -0
- feast/permissions/client/client_auth_token.py +14 -0
- feast/permissions/client/grpc_client_auth_interceptor.py +60 -0
- feast/permissions/client/http_auth_requests_wrapper.py +256 -0
- feast/permissions/client/intra_comm_authentication_client_manager.py +32 -0
- feast/permissions/client/kubernetes_auth_client_manager.py +59 -0
- feast/permissions/client/oidc_authentication_client_manager.py +119 -0
- feast/permissions/decision.py +114 -0
- feast/permissions/decorator.py +42 -0
- feast/permissions/enforcer.py +112 -0
- feast/permissions/matcher.py +149 -0
- feast/permissions/oidc_service.py +53 -0
- feast/permissions/permission.py +281 -0
- feast/permissions/policy.py +345 -0
- feast/permissions/security_manager.py +254 -0
- feast/permissions/server/__init__.py +0 -0
- feast/permissions/server/arrow.py +91 -0
- feast/permissions/server/arrow_flight_token_extractor.py +42 -0
- feast/permissions/server/grpc.py +33 -0
- feast/permissions/server/grpc_token_extractor.py +36 -0
- feast/permissions/server/rest.py +46 -0
- feast/permissions/server/rest_token_extractor.py +38 -0
- feast/permissions/server/utils.py +131 -0
- feast/permissions/user.py +87 -0
- feast/project.py +175 -0
- feast/project_metadata.py +109 -0
- feast/proto_json.py +256 -0
- feast/proto_utils.py +101 -0
- feast/protos/__init__.py +0 -0
- feast/protos/feast/__init__.py +0 -0
- feast/protos/feast/core/Aggregation_pb2.py +28 -0
- feast/protos/feast/core/Aggregation_pb2.pyi +45 -0
- feast/protos/feast/core/Aggregation_pb2_grpc.py +4 -0
- feast/protos/feast/core/DataFormat_pb2.py +59 -0
- feast/protos/feast/core/DataFormat_pb2.pyi +287 -0
- feast/protos/feast/core/DataFormat_pb2_grpc.py +4 -0
- feast/protos/feast/core/DataSource_pb2.py +74 -0
- feast/protos/feast/core/DataSource_pb2.pyi +598 -0
- feast/protos/feast/core/DataSource_pb2_grpc.py +4 -0
- feast/protos/feast/core/DatastoreTable_pb2.py +28 -0
- feast/protos/feast/core/DatastoreTable_pb2.pyi +67 -0
- feast/protos/feast/core/DatastoreTable_pb2_grpc.py +4 -0
- feast/protos/feast/core/Entity_pb2.py +39 -0
- feast/protos/feast/core/Entity_pb2.pyi +145 -0
- feast/protos/feast/core/Entity_pb2_grpc.py +4 -0
- feast/protos/feast/core/FeatureService_pb2.py +59 -0
- feast/protos/feast/core/FeatureService_pb2.pyi +312 -0
- feast/protos/feast/core/FeatureService_pb2_grpc.py +4 -0
- feast/protos/feast/core/FeatureTable_pb2.py +39 -0
- feast/protos/feast/core/FeatureTable_pb2.pyi +166 -0
- feast/protos/feast/core/FeatureTable_pb2_grpc.py +4 -0
- feast/protos/feast/core/FeatureViewProjection_pb2.py +33 -0
- feast/protos/feast/core/FeatureViewProjection_pb2.pyi +98 -0
- feast/protos/feast/core/FeatureViewProjection_pb2_grpc.py +4 -0
- feast/protos/feast/core/FeatureViewVersion_pb2.py +30 -0
- feast/protos/feast/core/FeatureViewVersion_pb2.pyi +87 -0
- feast/protos/feast/core/FeatureViewVersion_pb2_grpc.py +4 -0
- feast/protos/feast/core/FeatureView_pb2.py +46 -0
- feast/protos/feast/core/FeatureView_pb2.pyi +306 -0
- feast/protos/feast/core/FeatureView_pb2_grpc.py +4 -0
- feast/protos/feast/core/Feature_pb2.py +32 -0
- feast/protos/feast/core/Feature_pb2.pyi +87 -0
- feast/protos/feast/core/Feature_pb2_grpc.py +4 -0
- feast/protos/feast/core/InfraObject_pb2.py +33 -0
- feast/protos/feast/core/InfraObject_pb2.pyi +96 -0
- feast/protos/feast/core/InfraObject_pb2_grpc.py +4 -0
- feast/protos/feast/core/LabelView_pb2.py +43 -0
- feast/protos/feast/core/LabelView_pb2.pyi +195 -0
- feast/protos/feast/core/LabelView_pb2_grpc.py +4 -0
- feast/protos/feast/core/OnDemandFeatureView_pb2.py +56 -0
- feast/protos/feast/core/OnDemandFeatureView_pb2.pyi +283 -0
- feast/protos/feast/core/OnDemandFeatureView_pb2_grpc.py +4 -0
- feast/protos/feast/core/Permission_pb2.py +45 -0
- feast/protos/feast/core/Permission_pb2.pyi +198 -0
- feast/protos/feast/core/Permission_pb2_grpc.py +4 -0
- feast/protos/feast/core/Policy_pb2.py +35 -0
- feast/protos/feast/core/Policy_pb2.pyi +123 -0
- feast/protos/feast/core/Policy_pb2_grpc.py +4 -0
- feast/protos/feast/core/PrecomputedFeatureVector_pb2.py +31 -0
- feast/protos/feast/core/PrecomputedFeatureVector_pb2.pyi +76 -0
- feast/protos/feast/core/PrecomputedFeatureVector_pb2_grpc.py +4 -0
- feast/protos/feast/core/Project_pb2.py +36 -0
- feast/protos/feast/core/Project_pb2.pyi +119 -0
- feast/protos/feast/core/Project_pb2_grpc.py +4 -0
- feast/protos/feast/core/Registry_pb2.py +46 -0
- feast/protos/feast/core/Registry_pb2.pyi +150 -0
- feast/protos/feast/core/Registry_pb2_grpc.py +4 -0
- feast/protos/feast/core/SavedDataset_pb2.py +39 -0
- feast/protos/feast/core/SavedDataset_pb2.pyi +192 -0
- feast/protos/feast/core/SavedDataset_pb2_grpc.py +4 -0
- feast/protos/feast/core/SqliteTable_pb2.py +27 -0
- feast/protos/feast/core/SqliteTable_pb2.pyi +50 -0
- feast/protos/feast/core/SqliteTable_pb2_grpc.py +4 -0
- feast/protos/feast/core/Store_pb2.py +37 -0
- feast/protos/feast/core/Store_pb2.pyi +234 -0
- feast/protos/feast/core/Store_pb2_grpc.py +4 -0
- feast/protos/feast/core/StreamFeatureView_pb2.py +42 -0
- feast/protos/feast/core/StreamFeatureView_pb2.pyi +200 -0
- feast/protos/feast/core/StreamFeatureView_pb2_grpc.py +4 -0
- feast/protos/feast/core/Transformation_pb2.py +31 -0
- feast/protos/feast/core/Transformation_pb2.pyi +84 -0
- feast/protos/feast/core/Transformation_pb2_grpc.py +4 -0
- feast/protos/feast/core/ValidationProfile_pb2.py +37 -0
- feast/protos/feast/core/ValidationProfile_pb2.pyi +136 -0
- feast/protos/feast/core/ValidationProfile_pb2_grpc.py +4 -0
- feast/protos/feast/core/__init__.py +0 -0
- feast/protos/feast/registry/RegistryServer_pb2.py +240 -0
- feast/protos/feast/registry/RegistryServer_pb2.pyi +1946 -0
- feast/protos/feast/registry/RegistryServer_pb2_grpc.py +1744 -0
- feast/protos/feast/registry/__init__.py +0 -0
- feast/protos/feast/serving/Connector_pb2.py +39 -0
- feast/protos/feast/serving/Connector_pb2.pyi +97 -0
- feast/protos/feast/serving/Connector_pb2_grpc.py +66 -0
- feast/protos/feast/serving/GrpcServer_pb2.py +53 -0
- feast/protos/feast/serving/GrpcServer_pb2.pyi +163 -0
- feast/protos/feast/serving/GrpcServer_pb2_grpc.py +133 -0
- feast/protos/feast/serving/ServingService_pb2.py +65 -0
- feast/protos/feast/serving/ServingService_pb2.pyi +376 -0
- feast/protos/feast/serving/ServingService_pb2_grpc.py +101 -0
- feast/protos/feast/serving/TransformationService_pb2.py +39 -0
- feast/protos/feast/serving/TransformationService_pb2.pyi +136 -0
- feast/protos/feast/serving/TransformationService_pb2_grpc.py +99 -0
- feast/protos/feast/serving/__init__.py +0 -0
- feast/protos/feast/storage/Redis_pb2.py +28 -0
- feast/protos/feast/storage/Redis_pb2.pyi +54 -0
- feast/protos/feast/storage/Redis_pb2_grpc.py +4 -0
- feast/protos/feast/storage/__init__.py +0 -0
- feast/protos/feast/types/EntityKey_pb2.py +28 -0
- feast/protos/feast/types/EntityKey_pb2.pyi +51 -0
- feast/protos/feast/types/EntityKey_pb2_grpc.py +4 -0
- feast/protos/feast/types/Field_pb2.py +32 -0
- feast/protos/feast/types/Field_pb2.pyi +73 -0
- feast/protos/feast/types/Field_pb2_grpc.py +4 -0
- feast/protos/feast/types/Value_pb2.py +77 -0
- feast/protos/feast/types/Value_pb2.pyi +684 -0
- feast/protos/feast/types/Value_pb2_grpc.py +4 -0
- feast/protos/feast/types/__init__.py +0 -0
- feast/py.typed +0 -0
- feast/rag_retriever.py +329 -0
- feast/registry_server.py +1420 -0
- feast/repo_config.py +796 -0
- feast/repo_contents.py +63 -0
- feast/repo_operations.py +657 -0
- feast/rest_error_handler.py +109 -0
- feast/saved_dataset.py +353 -0
- feast/ssl_ca_trust_store_setup.py +22 -0
- feast/static/chat/index.html +129 -0
- feast/stream_feature_view.py +545 -0
- feast/table_format.py +564 -0
- feast/templates/athena/__init__.py +0 -0
- feast/templates/athena/feature_repo/__init__.py +0 -0
- feast/templates/athena/feature_repo/test_workflow.py +116 -0
- feast/templates/aws/__init__.py +0 -0
- feast/templates/aws/bootstrap.py +73 -0
- feast/templates/aws/feature_repo/__init__.py +0 -0
- feast/templates/aws/feature_repo/feature_definitions.py +146 -0
- feast/templates/aws/feature_repo/test_workflow.py +184 -0
- feast/templates/cassandra/__init__.py +0 -0
- feast/templates/cassandra/bootstrap.py +288 -0
- feast/templates/cassandra/feature_repo/__init__.py +0 -0
- feast/templates/cassandra/feature_repo/feature_definitions.py +141 -0
- feast/templates/cassandra/feature_repo/test_workflow.py +130 -0
- feast/templates/couchbase/__init__.py +0 -0
- feast/templates/couchbase/bootstrap.py +108 -0
- feast/templates/couchbase/feature_repo/__init__.py +0 -0
- feast/templates/couchbase/feature_repo/feature_definitions.py +136 -0
- feast/templates/couchbase/feature_repo/test_workflow.py +112 -0
- feast/templates/gcp/__init__.py +0 -0
- feast/templates/gcp/feature_repo/__init__.py +0 -0
- feast/templates/gcp/feature_repo/feature_definitions.py +150 -0
- feast/templates/gcp/feature_repo/test_workflow.py +180 -0
- feast/templates/hazelcast/__init__.py +0 -0
- feast/templates/hazelcast/bootstrap.py +178 -0
- feast/templates/hazelcast/feature_repo/__init__.py +0 -0
- feast/templates/hazelcast/feature_repo/feature_definitions.py +141 -0
- feast/templates/hazelcast/feature_repo/test_workflow.py +130 -0
- feast/templates/hbase/__init__.py +0 -0
- feast/templates/hbase/bootstrap.py +32 -0
- feast/templates/hbase/feature_repo/__init__.py +0 -0
- feast/templates/hbase/feature_repo/feature_definitions.py +141 -0
- feast/templates/hbase/feature_repo/test_workflow.py +130 -0
- feast/templates/local/__init__.py +0 -0
- feast/templates/local/bootstrap.py +64 -0
- feast/templates/local/feature_repo/__init__.py +0 -0
- feast/templates/local/feature_repo/feature_definitions.py +207 -0
- feast/templates/local/feature_repo/test_workflow.py +139 -0
- feast/templates/milvus/__init__.py +0 -0
- feast/templates/milvus/bootstrap.py +37 -0
- feast/templates/milvus/feature_repo/__init__.py +0 -0
- feast/templates/milvus/feature_repo/feature_definitions.py +150 -0
- feast/templates/milvus/feature_repo/test_workflow.py +130 -0
- feast/templates/minimal/__init__.py +0 -0
- feast/templates/minimal/feature_repo/__init__.py +0 -0
- feast/templates/postgres/__init__.py +0 -0
- feast/templates/postgres/bootstrap.py +82 -0
- feast/templates/postgres/feature_repo/__init__.py +0 -0
- feast/templates/postgres/feature_repo/feature_definitions.py +133 -0
- feast/templates/postgres/feature_repo/test_workflow.py +131 -0
- feast/templates/pytorch_nlp/__init__.py +1 -0
- feast/templates/pytorch_nlp/bootstrap.py +305 -0
- feast/templates/pytorch_nlp/feature_repo/__init__.py +1 -0
- feast/templates/pytorch_nlp/feature_repo/example_repo.py +277 -0
- feast/templates/pytorch_nlp/feature_repo/static_artifacts.py +139 -0
- feast/templates/pytorch_nlp/feature_repo/test_workflow.py +350 -0
- feast/templates/ray/__init__.py +0 -0
- feast/templates/ray/bootstrap.py +93 -0
- feast/templates/ray/feature_repo/__init__.py +0 -0
- feast/templates/ray/feature_repo/feature_definitions.py +140 -0
- feast/templates/ray/feature_repo/test_workflow.py +193 -0
- feast/templates/ray_rag/__init__.py +1 -0
- feast/templates/ray_rag/bootstrap.py +90 -0
- feast/templates/ray_rag/feature_repo/__init__.py +1 -0
- feast/templates/ray_rag/feature_repo/feature_definitions.py +139 -0
- feast/templates/ray_rag/feature_repo/test_workflow.py +89 -0
- feast/templates/snowflake/__init__.py +0 -0
- feast/templates/snowflake/bootstrap.py +91 -0
- feast/templates/snowflake/feature_repo/__init__.py +0 -0
- feast/templates/snowflake/feature_repo/driver_repo.py +153 -0
- feast/templates/snowflake/test_workflow.py +192 -0
- feast/templates/spark/__init__.py +0 -0
- feast/templates/spark/bootstrap.py +37 -0
- feast/templates/spark/feature_repo/__init__.py +0 -0
- feast/templates/spark/feature_repo/feature_definitions.py +77 -0
- feast/templates/spark/feature_repo/test_workflow.py +124 -0
- feast/torch_wrapper.py +39 -0
- feast/transformation/__init__.py +0 -0
- feast/transformation/base.py +147 -0
- feast/transformation/factory.py +25 -0
- feast/transformation/flink_transformation.py +78 -0
- feast/transformation/mode.py +12 -0
- feast/transformation/pandas_transformation.py +152 -0
- feast/transformation/python_transformation.py +170 -0
- feast/transformation/ray_transformation.py +293 -0
- feast/transformation/spark_transformation.py +125 -0
- feast/transformation/sql_transformation.py +8 -0
- feast/transformation/substrait_transformation.py +213 -0
- feast/transformation_server.py +78 -0
- feast/type_map.py +2288 -0
- feast/types.py +490 -0
- feast/ui/__init__.py +0 -0
- feast/ui/build/asset-manifest.json +1032 -0
- feast/ui/build/favicon.ico +0 -0
- feast/ui/build/feast-favicon-300x300.png +0 -0
- feast/ui/build/feast-favicon-36x36.png +0 -0
- feast/ui/build/index.html +1 -0
- feast/ui/build/manifest.json +25 -0
- feast/ui/build/projects-list.json +11 -0
- feast/ui/build/robots.txt +3 -0
- feast/ui/build/static/css/main.d54c2a3e.css +2 -0
- feast/ui/build/static/css/main.d54c2a3e.css.map +1 -0
- feast/ui/build/static/js/icon..569adb91.chunk.js +2 -0
- feast/ui/build/static/js/icon..569adb91.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.accessibility.356e2a75.chunk.js +2 -0
- feast/ui/build/static/js/icon.accessibility.356e2a75.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.aggregate.307f39bc.chunk.js +2 -0
- feast/ui/build/static/js/icon.aggregate.307f39bc.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.alert.e35f353f.chunk.js +2 -0
- feast/ui/build/static/js/icon.alert.e35f353f.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.analyzeEvent.3653139e.chunk.js +2 -0
- feast/ui/build/static/js/icon.analyzeEvent.3653139e.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.analyze_event.12119011.chunk.js +2 -0
- feast/ui/build/static/js/icon.analyze_event.12119011.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.annotation.921b0bba.chunk.js +2 -0
- feast/ui/build/static/js/icon.annotation.921b0bba.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.anomaly_chart.9edd5298.chunk.js +2 -0
- feast/ui/build/static/js/icon.anomaly_chart.9edd5298.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.anomaly_swim_lane.22eb0cf9.chunk.js +2 -0
- feast/ui/build/static/js/icon.anomaly_swim_lane.22eb0cf9.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.apm_trace.d159ddfd.chunk.js +2 -0
- feast/ui/build/static/js/icon.apm_trace.d159ddfd.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_add_data.ae1f94f7.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_add_data.ae1f94f7.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_advanced_settings.3a59f17e.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_advanced_settings.3a59f17e.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_agent.267cd7f1.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_agent.267cd7f1.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_apm.57b25c37.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_apm.57b25c37.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_app_search.bb6ea371.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_app_search.bb6ea371.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_auditbeat.36cad572.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_auditbeat.36cad572.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_canvas.1ef69b77.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_canvas.1ef69b77.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_cases.e1e2fe7e.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_cases.e1e2fe7e.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_code.29e18db1.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_code.29e18db1.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_console.1e5f8deb.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_console.1e5f8deb.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_cross_cluster_replication.58460936.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_cross_cluster_replication.58460936.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_dashboard.512d9586.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_dashboard.512d9586.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_devtools.c6d3ed0e.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_devtools.c6d3ed0e.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_discover.ced50348.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_discover.ced50348.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_ems.0eefe8e9.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_ems.0eefe8e9.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_filebeat.c9dcc5da.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_filebeat.c9dcc5da.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_fleet.e1e24753.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_fleet.e1e24753.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_gis.36c531a9.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_gis.36c531a9.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_graph.72cb7727.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_graph.72cb7727.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_grok.9425093f.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_grok.9425093f.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_heartbeat.73135522.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_heartbeat.73135522.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_index_management.d5f2766a.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_index_management.d5f2766a.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_index_pattern.511122bb.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_index_pattern.511122bb.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_index_rollup.a89a5615.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_index_rollup.a89a5615.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_lens.fa51a295.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_lens.fa51a295.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_logs.17f0d84a.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_logs.17f0d84a.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_management.0a72b8d0.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_management.0a72b8d0.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_metricbeat.a3cf45ca.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_metricbeat.a3cf45ca.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_metrics.9fc2926a.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_metrics.9fc2926a.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_ml.45f1796a.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_ml.45f1796a.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_monitoring.539c0cbd.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_monitoring.539c0cbd.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_notebook.04b40a3c.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_notebook.04b40a3c.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_packetbeat.bb7c7c19.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_packetbeat.bb7c7c19.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_pipeline.b1502b09.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_pipeline.b1502b09.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_recently_viewed.f1129567.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_recently_viewed.f1129567.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_reporting.554a2a2d.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_reporting.554a2a2d.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_saved_objects.17462a80.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_saved_objects.17462a80.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_search_profiler.207c54d0.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_search_profiler.207c54d0.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_security.fc9e4212.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_security.fc9e4212.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_security_analytics.872578e7.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_security_analytics.872578e7.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_spaces.8b34d39a.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_spaces.8b34d39a.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_sql.74f153c7.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_sql.74f153c7.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_timelion.187be25b.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_timelion.187be25b.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_upgrade_assistant.a64b434b.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_upgrade_assistant.a64b434b.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_uptime.74fcd358.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_uptime.74fcd358.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_users_roles.17436948.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_users_roles.17436948.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_visualize.948f4d0f.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_visualize.948f4d0f.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_vulnerability_management.3691447a.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_vulnerability_management.3691447a.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_watches.b3af8e38.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_watches.b3af8e38.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.app_workplace_search.1da5abab.chunk.js +2 -0
- feast/ui/build/static/js/icon.app_workplace_search.1da5abab.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.apps.a8ed76b1.chunk.js +2 -0
- feast/ui/build/static/js/icon.apps.a8ed76b1.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.arrowEnd.f2d8d0be.chunk.js +2 -0
- feast/ui/build/static/js/icon.arrowEnd.f2d8d0be.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.arrowStart.62c5a8a5.chunk.js +2 -0
- feast/ui/build/static/js/icon.arrowStart.62c5a8a5.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.arrow_down.50a8ddfa.chunk.js +2 -0
- feast/ui/build/static/js/icon.arrow_down.50a8ddfa.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.arrow_left.b7459559.chunk.js +2 -0
- feast/ui/build/static/js/icon.arrow_left.b7459559.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.arrow_right.50527893.chunk.js +2 -0
- feast/ui/build/static/js/icon.arrow_right.50527893.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.arrow_up.c7168b37.chunk.js +2 -0
- feast/ui/build/static/js/icon.arrow_up.c7168b37.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.article.9161a48f.chunk.js +2 -0
- feast/ui/build/static/js/icon.article.9161a48f.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.asterisk.0467a4ea.chunk.js +2 -0
- feast/ui/build/static/js/icon.asterisk.0467a4ea.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.at.754e0815.chunk.js +2 -0
- feast/ui/build/static/js/icon.at.754e0815.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.beaker.095b77ab.chunk.js +2 -0
- feast/ui/build/static/js/icon.beaker.095b77ab.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.bell.f6d86a3c.chunk.js +2 -0
- feast/ui/build/static/js/icon.bell.f6d86a3c.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.bellSlash.3b791313.chunk.js +2 -0
- feast/ui/build/static/js/icon.bellSlash.3b791313.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.beta.61ac7e99.chunk.js +2 -0
- feast/ui/build/static/js/icon.beta.61ac7e99.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.bolt.caa06741.chunk.js +2 -0
- feast/ui/build/static/js/icon.bolt.caa06741.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.boxes_horizontal.ee50cd82.chunk.js +2 -0
- feast/ui/build/static/js/icon.boxes_horizontal.ee50cd82.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.boxes_vertical.9d043c37.chunk.js +2 -0
- feast/ui/build/static/js/icon.boxes_vertical.9d043c37.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.branch.c761b9f7.chunk.js +2 -0
- feast/ui/build/static/js/icon.branch.c761b9f7.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.branchUser.456d2686.chunk.js +2 -0
- feast/ui/build/static/js/icon.branchUser.456d2686.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.broom.4a54cd6a.chunk.js +2 -0
- feast/ui/build/static/js/icon.broom.4a54cd6a.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.brush.007c4735.chunk.js +2 -0
- feast/ui/build/static/js/icon.brush.007c4735.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.bug.6fc8512b.chunk.js +2 -0
- feast/ui/build/static/js/icon.bug.6fc8512b.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.bullseye.193b420f.chunk.js +2 -0
- feast/ui/build/static/js/icon.bullseye.193b420f.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.calendar.f54b5d3d.chunk.js +2 -0
- feast/ui/build/static/js/icon.calendar.f54b5d3d.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.change_point_detection.da1d64dd.chunk.js +2 -0
- feast/ui/build/static/js/icon.change_point_detection.da1d64dd.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.check.b921ee22.chunk.js +2 -0
- feast/ui/build/static/js/icon.check.b921ee22.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.checkInCircleFilled.fd1da5d4.chunk.js +2 -0
- feast/ui/build/static/js/icon.checkInCircleFilled.fd1da5d4.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.cheer.6dfd7ece.chunk.js +2 -0
- feast/ui/build/static/js/icon.cheer.6dfd7ece.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.clickLeft.9610e26a.chunk.js +2 -0
- feast/ui/build/static/js/icon.clickLeft.9610e26a.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.clickRight.c3cd2e3c.chunk.js +2 -0
- feast/ui/build/static/js/icon.clickRight.c3cd2e3c.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.clock.23554007.chunk.js +2 -0
- feast/ui/build/static/js/icon.clock.23554007.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.clockCounter.1abc49eb.chunk.js +2 -0
- feast/ui/build/static/js/icon.clockCounter.1abc49eb.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.cloudDrizzle.fc79f057.chunk.js +2 -0
- feast/ui/build/static/js/icon.cloudDrizzle.fc79f057.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.cloudStormy.22bc67b9.chunk.js +2 -0
- feast/ui/build/static/js/icon.cloudStormy.22bc67b9.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.cloudSunny.4b69a889.chunk.js +2 -0
- feast/ui/build/static/js/icon.cloudSunny.4b69a889.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.cluster.8b49b7f9.chunk.js +2 -0
- feast/ui/build/static/js/icon.cluster.8b49b7f9.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.color.8bceea47.chunk.js +2 -0
- feast/ui/build/static/js/icon.color.8bceea47.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.compute.9b959f63.chunk.js +2 -0
- feast/ui/build/static/js/icon.compute.9b959f63.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.console.d0edb577.chunk.js +2 -0
- feast/ui/build/static/js/icon.console.d0edb577.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.container.63756e89.chunk.js +2 -0
- feast/ui/build/static/js/icon.container.63756e89.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.continuityAbove.68021180.chunk.js +2 -0
- feast/ui/build/static/js/icon.continuityAbove.68021180.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.continuityAboveBelow.cc7c64cf.chunk.js +2 -0
- feast/ui/build/static/js/icon.continuityAboveBelow.cc7c64cf.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.continuityBelow.e3a3de3b.chunk.js +2 -0
- feast/ui/build/static/js/icon.continuityBelow.e3a3de3b.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.continuityWithin.588f6348.chunk.js +2 -0
- feast/ui/build/static/js/icon.continuityWithin.588f6348.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.controls_horizontal.23e13bae.chunk.js +2 -0
- feast/ui/build/static/js/icon.controls_horizontal.23e13bae.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.controls_vertical.bb2f3c4d.chunk.js +2 -0
- feast/ui/build/static/js/icon.controls_vertical.bb2f3c4d.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.copy.eb0570fd.chunk.js +2 -0
- feast/ui/build/static/js/icon.copy.eb0570fd.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.copy_clipboard.6906cf96.chunk.js +2 -0
- feast/ui/build/static/js/icon.copy_clipboard.6906cf96.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.cross.0301755e.chunk.js +2 -0
- feast/ui/build/static/js/icon.cross.0301755e.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.crossInCircle.de57685a.chunk.js +2 -0
- feast/ui/build/static/js/icon.crossInCircle.de57685a.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.cross_in_circle.1262d486.chunk.js +2 -0
- feast/ui/build/static/js/icon.cross_in_circle.1262d486.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.crosshairs.8b5f25b3.chunk.js +2 -0
- feast/ui/build/static/js/icon.crosshairs.8b5f25b3.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.currency.8e52d339.chunk.js +2 -0
- feast/ui/build/static/js/icon.currency.8e52d339.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.cut.3f8bf368.chunk.js +2 -0
- feast/ui/build/static/js/icon.cut.3f8bf368.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.database.cdd45416.chunk.js +2 -0
- feast/ui/build/static/js/icon.database.cdd45416.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.desktop.4728299d.chunk.js +2 -0
- feast/ui/build/static/js/icon.desktop.4728299d.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.diff.6d1894fc.chunk.js +2 -0
- feast/ui/build/static/js/icon.diff.6d1894fc.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.discuss.4e0e796d.chunk.js +2 -0
- feast/ui/build/static/js/icon.discuss.4e0e796d.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.document.9ec9ae06.chunk.js +2 -0
- feast/ui/build/static/js/icon.document.9ec9ae06.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.documentEdit.8c4e6fd4.chunk.js +2 -0
- feast/ui/build/static/js/icon.documentEdit.8c4e6fd4.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.documentation.29d29514.chunk.js +2 -0
- feast/ui/build/static/js/icon.documentation.29d29514.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.documents.7aa1582f.chunk.js +2 -0
- feast/ui/build/static/js/icon.documents.7aa1582f.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.dot.a0097d3a.chunk.js +2 -0
- feast/ui/build/static/js/icon.dot.a0097d3a.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.dotInCircle.48a7c142.chunk.js +2 -0
- feast/ui/build/static/js/icon.dotInCircle.48a7c142.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.doubleArrowLeft.4a6d5430.chunk.js +2 -0
- feast/ui/build/static/js/icon.doubleArrowLeft.4a6d5430.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.doubleArrowRight.28e17ef7.chunk.js +2 -0
- feast/ui/build/static/js/icon.doubleArrowRight.28e17ef7.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.download.c581bf2d.chunk.js +2 -0
- feast/ui/build/static/js/icon.download.c581bf2d.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editorDistributeHorizontal.9e330f89.chunk.js +2 -0
- feast/ui/build/static/js/icon.editorDistributeHorizontal.9e330f89.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editorDistributeVertical.fde4067e.chunk.js +2 -0
- feast/ui/build/static/js/icon.editorDistributeVertical.fde4067e.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editorItemAlignBottom.a33e5269.chunk.js +2 -0
- feast/ui/build/static/js/icon.editorItemAlignBottom.a33e5269.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editorItemAlignCenter.c71dc9ca.chunk.js +2 -0
- feast/ui/build/static/js/icon.editorItemAlignCenter.c71dc9ca.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editorItemAlignLeft.a42c7014.chunk.js +2 -0
- feast/ui/build/static/js/icon.editorItemAlignLeft.a42c7014.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editorItemAlignMiddle.342f527e.chunk.js +2 -0
- feast/ui/build/static/js/icon.editorItemAlignMiddle.342f527e.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editorItemAlignRight.5efb739b.chunk.js +2 -0
- feast/ui/build/static/js/icon.editorItemAlignRight.5efb739b.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editorItemAlignTop.cc590eca.chunk.js +2 -0
- feast/ui/build/static/js/icon.editorItemAlignTop.cc590eca.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editorPositionBottomLeft.304a04fc.chunk.js +2 -0
- feast/ui/build/static/js/icon.editorPositionBottomLeft.304a04fc.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editorPositionBottomRight.264258f5.chunk.js +2 -0
- feast/ui/build/static/js/icon.editorPositionBottomRight.264258f5.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editorPositionTopLeft.f8ee5320.chunk.js +2 -0
- feast/ui/build/static/js/icon.editorPositionTopLeft.f8ee5320.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editorPositionTopRight.bc9995ec.chunk.js +2 -0
- feast/ui/build/static/js/icon.editorPositionTopRight.bc9995ec.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editor_align_center.8bef7901.chunk.js +2 -0
- feast/ui/build/static/js/icon.editor_align_center.8bef7901.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editor_align_left.dea80635.chunk.js +2 -0
- feast/ui/build/static/js/icon.editor_align_left.dea80635.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editor_align_right.a0847c47.chunk.js +2 -0
- feast/ui/build/static/js/icon.editor_align_right.a0847c47.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editor_bold.130b1e20.chunk.js +2 -0
- feast/ui/build/static/js/icon.editor_bold.130b1e20.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editor_checklist.8db3a236.chunk.js +2 -0
- feast/ui/build/static/js/icon.editor_checklist.8db3a236.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editor_code_block.78fbf146.chunk.js +2 -0
- feast/ui/build/static/js/icon.editor_code_block.78fbf146.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editor_comment.f845d5cd.chunk.js +2 -0
- feast/ui/build/static/js/icon.editor_comment.f845d5cd.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editor_heading.33a773d6.chunk.js +2 -0
- feast/ui/build/static/js/icon.editor_heading.33a773d6.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editor_italic.38ad0328.chunk.js +2 -0
- feast/ui/build/static/js/icon.editor_italic.38ad0328.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editor_link.67963831.chunk.js +2 -0
- feast/ui/build/static/js/icon.editor_link.67963831.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editor_ordered_list.b1a6d0c3.chunk.js +2 -0
- feast/ui/build/static/js/icon.editor_ordered_list.b1a6d0c3.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editor_redo.2b23ed60.chunk.js +2 -0
- feast/ui/build/static/js/icon.editor_redo.2b23ed60.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editor_strike.89aaac3f.chunk.js +2 -0
- feast/ui/build/static/js/icon.editor_strike.89aaac3f.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editor_table.ff0360bd.chunk.js +2 -0
- feast/ui/build/static/js/icon.editor_table.ff0360bd.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editor_underline.a5d0d87f.chunk.js +2 -0
- feast/ui/build/static/js/icon.editor_underline.a5d0d87f.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editor_undo.9a9f3c2e.chunk.js +2 -0
- feast/ui/build/static/js/icon.editor_undo.9a9f3c2e.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.editor_unordered_list.478631fc.chunk.js +2 -0
- feast/ui/build/static/js/icon.editor_unordered_list.478631fc.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.email.526f5590.chunk.js +2 -0
- feast/ui/build/static/js/icon.email.526f5590.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.endpoint.5e0a3035.chunk.js +2 -0
- feast/ui/build/static/js/icon.endpoint.5e0a3035.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.eql.648bf108.chunk.js +2 -0
- feast/ui/build/static/js/icon.eql.648bf108.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.eraser.69c5b38d.chunk.js +2 -0
- feast/ui/build/static/js/icon.eraser.69c5b38d.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.error.0a5d8dd9.chunk.js +2 -0
- feast/ui/build/static/js/icon.error.0a5d8dd9.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.errorFilled.b02d7f1b.chunk.js +2 -0
- feast/ui/build/static/js/icon.errorFilled.b02d7f1b.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.esqlVis.8fb5121d.chunk.js +2 -0
- feast/ui/build/static/js/icon.esqlVis.8fb5121d.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.exit.334ba07f.chunk.js +2 -0
- feast/ui/build/static/js/icon.exit.334ba07f.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.expand.4d851e64.chunk.js +2 -0
- feast/ui/build/static/js/icon.expand.4d851e64.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.expandMini.96bd2222.chunk.js +2 -0
- feast/ui/build/static/js/icon.expandMini.96bd2222.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.export.1c0e7978.chunk.js +2 -0
- feast/ui/build/static/js/icon.export.1c0e7978.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.eye.508400d7.chunk.js +2 -0
- feast/ui/build/static/js/icon.eye.508400d7.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.eye_closed.9d922639.chunk.js +2 -0
- feast/ui/build/static/js/icon.eye_closed.9d922639.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.face_happy.7a55ee24.chunk.js +2 -0
- feast/ui/build/static/js/icon.face_happy.7a55ee24.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.face_neutral.1e7ac69f.chunk.js +2 -0
- feast/ui/build/static/js/icon.face_neutral.1e7ac69f.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.face_sad.17c186ca.chunk.js +2 -0
- feast/ui/build/static/js/icon.face_sad.17c186ca.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.field_statistics.1a45593a.chunk.js +2 -0
- feast/ui/build/static/js/icon.field_statistics.1a45593a.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.filter.827c24ce.chunk.js +2 -0
- feast/ui/build/static/js/icon.filter.827c24ce.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.filterExclude.013c953a.chunk.js +2 -0
- feast/ui/build/static/js/icon.filterExclude.013c953a.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.filterIgnore.9c41dd70.chunk.js +2 -0
- feast/ui/build/static/js/icon.filterIgnore.9c41dd70.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.filterInCircle.fc0767fa.chunk.js +2 -0
- feast/ui/build/static/js/icon.filterInCircle.fc0767fa.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.filterInclude.98818d7c.chunk.js +2 -0
- feast/ui/build/static/js/icon.filterInclude.98818d7c.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.flag.cf3a9b5d.chunk.js +2 -0
- feast/ui/build/static/js/icon.flag.cf3a9b5d.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.fold.c78762b3.chunk.js +2 -0
- feast/ui/build/static/js/icon.fold.c78762b3.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.folder_check.fe702bd4.chunk.js +2 -0
- feast/ui/build/static/js/icon.folder_check.fe702bd4.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.folder_closed.f2b2cdc8.chunk.js +2 -0
- feast/ui/build/static/js/icon.folder_closed.f2b2cdc8.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.folder_exclamation.1627d02d.chunk.js +2 -0
- feast/ui/build/static/js/icon.folder_exclamation.1627d02d.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.folder_open.5f2de871.chunk.js +2 -0
- feast/ui/build/static/js/icon.folder_open.5f2de871.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.frameNext.1f9983b7.chunk.js +2 -0
- feast/ui/build/static/js/icon.frameNext.1f9983b7.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.framePrevious.edefa865.chunk.js +2 -0
- feast/ui/build/static/js/icon.framePrevious.edefa865.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.fullScreenExit.89543ce1.chunk.js +2 -0
- feast/ui/build/static/js/icon.fullScreenExit.89543ce1.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.full_screen.42093df1.chunk.js +2 -0
- feast/ui/build/static/js/icon.full_screen.42093df1.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.function.f7e33e24.chunk.js +2 -0
- feast/ui/build/static/js/icon.function.f7e33e24.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.gear.257025bc.chunk.js +2 -0
- feast/ui/build/static/js/icon.gear.257025bc.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.glasses.0123a6c2.chunk.js +2 -0
- feast/ui/build/static/js/icon.glasses.0123a6c2.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.globe.458ecb77.chunk.js +2 -0
- feast/ui/build/static/js/icon.globe.458ecb77.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.grab.d7411522.chunk.js +2 -0
- feast/ui/build/static/js/icon.grab.d7411522.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.grabOmnidirectional.006bd560.chunk.js +2 -0
- feast/ui/build/static/js/icon.grabOmnidirectional.006bd560.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.grab_horizontal.a993fc2c.chunk.js +2 -0
- feast/ui/build/static/js/icon.grab_horizontal.a993fc2c.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.gradient.6409e7e2.chunk.js +2 -0
- feast/ui/build/static/js/icon.gradient.6409e7e2.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.grid.982e8626.chunk.js +2 -0
- feast/ui/build/static/js/icon.grid.982e8626.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.heart.2c4acd4b.chunk.js +2 -0
- feast/ui/build/static/js/icon.heart.2c4acd4b.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.heatmap.4c7eff0b.chunk.js +2 -0
- feast/ui/build/static/js/icon.heatmap.4c7eff0b.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.help.62effc1f.chunk.js +2 -0
- feast/ui/build/static/js/icon.help.62effc1f.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.home.195a7c88.chunk.js +2 -0
- feast/ui/build/static/js/icon.home.195a7c88.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.iInCircle.9643eaba.chunk.js +2 -0
- feast/ui/build/static/js/icon.iInCircle.9643eaba.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.image.f045acad.chunk.js +2 -0
- feast/ui/build/static/js/icon.image.f045acad.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.import.d6db0911.chunk.js +2 -0
- feast/ui/build/static/js/icon.import.d6db0911.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.indexTemporary.23f46f85.chunk.js +2 -0
- feast/ui/build/static/js/icon.indexTemporary.23f46f85.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.index_close.c789d1d6.chunk.js +2 -0
- feast/ui/build/static/js/icon.index_close.c789d1d6.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.index_edit.226b4879.chunk.js +2 -0
- feast/ui/build/static/js/icon.index_edit.226b4879.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.index_flush.ed7d7270.chunk.js +2 -0
- feast/ui/build/static/js/icon.index_flush.ed7d7270.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.index_mapping.c5cfd016.chunk.js +2 -0
- feast/ui/build/static/js/icon.index_mapping.c5cfd016.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.index_open.929631a0.chunk.js +2 -0
- feast/ui/build/static/js/icon.index_open.929631a0.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.index_runtime.67ffb110.chunk.js +2 -0
- feast/ui/build/static/js/icon.index_runtime.67ffb110.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.index_settings.9f8d90a0.chunk.js +2 -0
- feast/ui/build/static/js/icon.index_settings.9f8d90a0.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.infinity.8cf50139.chunk.js +2 -0
- feast/ui/build/static/js/icon.infinity.8cf50139.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.inputOutput.28ed931d.chunk.js +2 -0
- feast/ui/build/static/js/icon.inputOutput.28ed931d.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.inspect.f61ae039.chunk.js +2 -0
- feast/ui/build/static/js/icon.inspect.f61ae039.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.invert.e54df244.chunk.js +2 -0
- feast/ui/build/static/js/icon.invert.e54df244.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.ip.7008fca7.chunk.js +2 -0
- feast/ui/build/static/js/icon.ip.7008fca7.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.issue.06c9d0e5.chunk.js +2 -0
- feast/ui/build/static/js/icon.issue.06c9d0e5.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.key.dc3d90bd.chunk.js +2 -0
- feast/ui/build/static/js/icon.key.dc3d90bd.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.keyboard.8a09b24d.chunk.js +2 -0
- feast/ui/build/static/js/icon.keyboard.8a09b24d.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.kql_field.41160b3a.chunk.js +2 -0
- feast/ui/build/static/js/icon.kql_field.41160b3a.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.kql_function.e40bb25e.chunk.js +2 -0
- feast/ui/build/static/js/icon.kql_function.e40bb25e.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.kql_operand.c42a2d08.chunk.js +2 -0
- feast/ui/build/static/js/icon.kql_operand.c42a2d08.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.kql_selector.1e3ca39b.chunk.js +2 -0
- feast/ui/build/static/js/icon.kql_selector.1e3ca39b.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.kql_value.8dd5b219.chunk.js +2 -0
- feast/ui/build/static/js/icon.kql_value.8dd5b219.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.kubernetesNode.98e86d53.chunk.js +2 -0
- feast/ui/build/static/js/icon.kubernetesNode.98e86d53.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.kubernetesPod.f2ec4a06.chunk.js +2 -0
- feast/ui/build/static/js/icon.kubernetesPod.f2ec4a06.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.launch.8583fa4b.chunk.js +2 -0
- feast/ui/build/static/js/icon.launch.8583fa4b.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.layers.c5c75b34.chunk.js +2 -0
- feast/ui/build/static/js/icon.layers.c5c75b34.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.lettering.65f88bf6.chunk.js +2 -0
- feast/ui/build/static/js/icon.lettering.65f88bf6.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.lineDashed.3130bf49.chunk.js +2 -0
- feast/ui/build/static/js/icon.lineDashed.3130bf49.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.lineDotted.b1904440.chunk.js +2 -0
- feast/ui/build/static/js/icon.lineDotted.b1904440.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.lineSolid.df3193e9.chunk.js +2 -0
- feast/ui/build/static/js/icon.lineSolid.df3193e9.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.link.f3df649f.chunk.js +2 -0
- feast/ui/build/static/js/icon.link.f3df649f.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.list.07044958.chunk.js +2 -0
- feast/ui/build/static/js/icon.list.07044958.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.list_add.c0bed9cc.chunk.js +2 -0
- feast/ui/build/static/js/icon.list_add.c0bed9cc.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.lock.658d99ea.chunk.js +2 -0
- feast/ui/build/static/js/icon.lock.658d99ea.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.lockOpen.2d4f3da9.chunk.js +2 -0
- feast/ui/build/static/js/icon.lockOpen.2d4f3da9.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.log_pattern_analysis.38d8f12e.chunk.js +2 -0
- feast/ui/build/static/js/icon.log_pattern_analysis.38d8f12e.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.log_rate_analysis.9f13f2fb.chunk.js +2 -0
- feast/ui/build/static/js/icon.log_rate_analysis.9f13f2fb.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_aerospike.a09cc17e.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_aerospike.a09cc17e.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_apache.264b27fc.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_apache.264b27fc.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_app_search.8d98ced6.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_app_search.8d98ced6.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_aws.11ce8654.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_aws.11ce8654.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_aws_mono.e8a02044.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_aws_mono.e8a02044.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_azure.ba8603ea.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_azure.ba8603ea.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_azure_mono.ef9c3313.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_azure_mono.ef9c3313.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_beats.ab06d0b5.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_beats.ab06d0b5.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_business_analytics.f4c36905.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_business_analytics.f4c36905.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_ceph.2849be47.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_ceph.2849be47.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_cloud.a5eb0274.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_cloud.a5eb0274.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_cloud_ece.d376ae54.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_cloud_ece.d376ae54.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_code.c9430d63.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_code.c9430d63.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_codesandbox.29a07167.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_codesandbox.29a07167.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_couchbase.66e78722.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_couchbase.66e78722.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_docker.0a49b9f5.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_docker.0a49b9f5.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_dropwizard.aed47c3c.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_dropwizard.aed47c3c.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_elastic.e3ee5df3.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_elastic.e3ee5df3.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_elastic_stack.cb367d7f.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_elastic_stack.cb367d7f.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_elasticsearch.3a82ba08.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_elasticsearch.3a82ba08.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_enterprise_search.8ed25c99.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_enterprise_search.8ed25c99.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_etcd.cead1e12.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_etcd.cead1e12.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_gcp.b23c9096.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_gcp.b23c9096.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_gcp_mono.b0ea40f5.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_gcp_mono.b0ea40f5.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_github.7e4f152c.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_github.7e4f152c.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_gmail.95e0309e.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_gmail.95e0309e.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_golang.9a20e76e.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_golang.9a20e76e.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_google_g.ce601728.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_google_g.ce601728.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_haproxy.229cfc71.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_haproxy.229cfc71.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_ibm.3b69ddda.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_ibm.3b69ddda.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_ibm_mono.2c06c59a.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_ibm_mono.2c06c59a.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_kafka.231a812e.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_kafka.231a812e.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_kibana.cbcfc0d4.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_kibana.cbcfc0d4.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_kubernetes.cca2c510.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_kubernetes.cca2c510.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_logging.ce3dc643.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_logging.ce3dc643.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_logstash.84806897.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_logstash.84806897.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_maps.8864a338.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_maps.8864a338.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_memcached.0bca770d.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_memcached.0bca770d.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_metrics.f5fc19fc.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_metrics.f5fc19fc.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_mongodb.9136ebd2.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_mongodb.9136ebd2.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_mysql.0d3b7cd7.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_mysql.0d3b7cd7.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_nginx.a40f3231.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_nginx.a40f3231.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_observability.cef6ae03.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_observability.cef6ae03.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_osquery.453aed39.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_osquery.453aed39.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_php.8de8f44b.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_php.8de8f44b.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_postgres.a550917d.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_postgres.a550917d.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_prometheus.d5d2a0b2.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_prometheus.d5d2a0b2.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_rabbitmq.4fa74fdc.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_rabbitmq.4fa74fdc.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_redis.1405d0d6.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_redis.1405d0d6.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_security.3efcbc52.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_security.3efcbc52.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_site_search.e5b2d3d4.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_site_search.e5b2d3d4.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_sketch.454d4690.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_sketch.454d4690.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_slack.cc9fff5b.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_slack.cc9fff5b.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_uptime.28f5a475.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_uptime.28f5a475.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_vulnerability_management.d1e02609.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_vulnerability_management.d1e02609.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_webhook.75e18290.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_webhook.75e18290.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_windows.2c27241c.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_windows.2c27241c.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logo_workplace_search.a93863da.chunk.js +2 -0
- feast/ui/build/static/js/icon.logo_workplace_search.a93863da.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logstash_filter.6c810188.chunk.js +2 -0
- feast/ui/build/static/js/icon.logstash_filter.6c810188.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logstash_if.73ecb3e9.chunk.js +2 -0
- feast/ui/build/static/js/icon.logstash_if.73ecb3e9.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logstash_input.4cee8f4b.chunk.js +2 -0
- feast/ui/build/static/js/icon.logstash_input.4cee8f4b.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logstash_output.87d25f95.chunk.js +2 -0
- feast/ui/build/static/js/icon.logstash_output.87d25f95.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.logstash_queue.991aafa4.chunk.js +2 -0
- feast/ui/build/static/js/icon.logstash_queue.991aafa4.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.magnet.4a7e559f.chunk.js +2 -0
- feast/ui/build/static/js/icon.magnet.4a7e559f.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.magnifyWithExclamation.5cd975cd.chunk.js +2 -0
- feast/ui/build/static/js/icon.magnifyWithExclamation.5cd975cd.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.magnifyWithMinus.bf0184ff.chunk.js +2 -0
- feast/ui/build/static/js/icon.magnifyWithMinus.bf0184ff.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.magnifyWithPlus.8b29a00d.chunk.js +2 -0
- feast/ui/build/static/js/icon.magnifyWithPlus.8b29a00d.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.map_marker.c1d37218.chunk.js +2 -0
- feast/ui/build/static/js/icon.map_marker.c1d37218.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.memory.fb1802f2.chunk.js +2 -0
- feast/ui/build/static/js/icon.memory.fb1802f2.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.menu.b7de7bbb.chunk.js +2 -0
- feast/ui/build/static/js/icon.menu.b7de7bbb.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.menuDown.3a3f0a62.chunk.js +2 -0
- feast/ui/build/static/js/icon.menuDown.3a3f0a62.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.menuLeft.29d3ebc1.chunk.js +2 -0
- feast/ui/build/static/js/icon.menuLeft.29d3ebc1.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.menuRight.7807c36f.chunk.js +2 -0
- feast/ui/build/static/js/icon.menuRight.7807c36f.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.menuUp.2b49602b.chunk.js +2 -0
- feast/ui/build/static/js/icon.menuUp.2b49602b.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.merge.26d19011.chunk.js +2 -0
- feast/ui/build/static/js/icon.merge.26d19011.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.minimize.25f484f3.chunk.js +2 -0
- feast/ui/build/static/js/icon.minimize.25f484f3.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.minus.6c05682f.chunk.js +2 -0
- feast/ui/build/static/js/icon.minus.6c05682f.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.minus_in_circle.6d80ecb0.chunk.js +2 -0
- feast/ui/build/static/js/icon.minus_in_circle.6d80ecb0.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.minus_in_circle_filled.d565cbf0.chunk.js +2 -0
- feast/ui/build/static/js/icon.minus_in_circle_filled.d565cbf0.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.minus_in_square.975b444e.chunk.js +2 -0
- feast/ui/build/static/js/icon.minus_in_square.975b444e.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.ml_classification_job.fc719529.chunk.js +2 -0
- feast/ui/build/static/js/icon.ml_classification_job.fc719529.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.ml_create_advanced_job.aea3cc0d.chunk.js +2 -0
- feast/ui/build/static/js/icon.ml_create_advanced_job.aea3cc0d.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.ml_create_multi_metric_job.05ca8615.chunk.js +2 -0
- feast/ui/build/static/js/icon.ml_create_multi_metric_job.05ca8615.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.ml_create_population_job.0a7edddb.chunk.js +2 -0
- feast/ui/build/static/js/icon.ml_create_population_job.0a7edddb.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.ml_create_single_metric_job.f8b55527.chunk.js +2 -0
- feast/ui/build/static/js/icon.ml_create_single_metric_job.f8b55527.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.ml_data_visualizer.8544c62e.chunk.js +2 -0
- feast/ui/build/static/js/icon.ml_data_visualizer.8544c62e.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.ml_outlier_detection_job.edec391f.chunk.js +2 -0
- feast/ui/build/static/js/icon.ml_outlier_detection_job.edec391f.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.ml_regression_job.fba433e9.chunk.js +2 -0
- feast/ui/build/static/js/icon.ml_regression_job.fba433e9.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.mobile.ea3d3187.chunk.js +2 -0
- feast/ui/build/static/js/icon.mobile.ea3d3187.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.moon.94558c42.chunk.js +2 -0
- feast/ui/build/static/js/icon.moon.94558c42.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.move.db8b7486.chunk.js +2 -0
- feast/ui/build/static/js/icon.move.db8b7486.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.namespace.6c03044b.chunk.js +2 -0
- feast/ui/build/static/js/icon.namespace.6c03044b.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.nested.77c3d5da.chunk.js +2 -0
- feast/ui/build/static/js/icon.nested.77c3d5da.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.new_chat.34616d22.chunk.js +2 -0
- feast/ui/build/static/js/icon.new_chat.34616d22.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.node.4ff69ed6.chunk.js +2 -0
- feast/ui/build/static/js/icon.node.4ff69ed6.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.number.702e9f09.chunk.js +2 -0
- feast/ui/build/static/js/icon.number.702e9f09.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.offline.1af78ac4.chunk.js +2 -0
- feast/ui/build/static/js/icon.offline.1af78ac4.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.online.215cb672.chunk.js +2 -0
- feast/ui/build/static/js/icon.online.215cb672.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.package.01c69acb.chunk.js +2 -0
- feast/ui/build/static/js/icon.package.01c69acb.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.pageSelect.da71abf9.chunk.js +2 -0
- feast/ui/build/static/js/icon.pageSelect.da71abf9.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.pagesSelect.af52b0e8.chunk.js +2 -0
- feast/ui/build/static/js/icon.pagesSelect.af52b0e8.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.paint.3d67012e.chunk.js +2 -0
- feast/ui/build/static/js/icon.paint.3d67012e.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.palette.9de9d2a1.chunk.js +2 -0
- feast/ui/build/static/js/icon.palette.9de9d2a1.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.paper_clip.e740bfe5.chunk.js +2 -0
- feast/ui/build/static/js/icon.paper_clip.e740bfe5.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.partial.50d74fbb.chunk.js +2 -0
- feast/ui/build/static/js/icon.partial.50d74fbb.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.pause.e9514b1f.chunk.js +2 -0
- feast/ui/build/static/js/icon.pause.e9514b1f.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.payment.b67de02e.chunk.js +2 -0
- feast/ui/build/static/js/icon.payment.b67de02e.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.pencil.c8f1838d.chunk.js +2 -0
- feast/ui/build/static/js/icon.pencil.c8f1838d.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.percent.6380b7c6.chunk.js +2 -0
- feast/ui/build/static/js/icon.percent.6380b7c6.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.pin.3fec6cd0.chunk.js +2 -0
- feast/ui/build/static/js/icon.pin.3fec6cd0.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.pin_filled.66bd923b.chunk.js +2 -0
- feast/ui/build/static/js/icon.pin_filled.66bd923b.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.pipeBreaks.88e3bd74.chunk.js +2 -0
- feast/ui/build/static/js/icon.pipeBreaks.88e3bd74.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.pipeNoBreaks.656b5b65.chunk.js +2 -0
- feast/ui/build/static/js/icon.pipeNoBreaks.656b5b65.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.pivot.21818c25.chunk.js +2 -0
- feast/ui/build/static/js/icon.pivot.21818c25.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.play.177ef681.chunk.js +2 -0
- feast/ui/build/static/js/icon.play.177ef681.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.playFilled.7ed07649.chunk.js +2 -0
- feast/ui/build/static/js/icon.playFilled.7ed07649.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.plus.3a4c2ecb.chunk.js +2 -0
- feast/ui/build/static/js/icon.plus.3a4c2ecb.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.plus_in_circle.1ab48f33.chunk.js +2 -0
- feast/ui/build/static/js/icon.plus_in_circle.1ab48f33.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.plus_in_circle_filled.70031773.chunk.js +2 -0
- feast/ui/build/static/js/icon.plus_in_circle_filled.70031773.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.plus_in_square.2396e921.chunk.js +2 -0
- feast/ui/build/static/js/icon.plus_in_square.2396e921.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.popout.6cb4dc69.chunk.js +2 -0
- feast/ui/build/static/js/icon.popout.6cb4dc69.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.push.19862dfa.chunk.js +2 -0
- feast/ui/build/static/js/icon.push.19862dfa.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.question_in_circle.7b61fe1d.chunk.js +2 -0
- feast/ui/build/static/js/icon.question_in_circle.7b61fe1d.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.quote.d6cccf6c.chunk.js +2 -0
- feast/ui/build/static/js/icon.quote.d6cccf6c.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.refresh.7fcfa0cb.chunk.js +2 -0
- feast/ui/build/static/js/icon.refresh.7fcfa0cb.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.reporter.dddf7aec.chunk.js +2 -0
- feast/ui/build/static/js/icon.reporter.dddf7aec.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.return_key.b8cbffbe.chunk.js +2 -0
- feast/ui/build/static/js/icon.return_key.b8cbffbe.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.save.b0ed2e9c.chunk.js +2 -0
- feast/ui/build/static/js/icon.save.b0ed2e9c.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.scale.f7183248.chunk.js +2 -0
- feast/ui/build/static/js/icon.scale.f7183248.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.search.78d35d76.chunk.js +2 -0
- feast/ui/build/static/js/icon.search.78d35d76.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.securitySignal.b86f31ea.chunk.js +2 -0
- feast/ui/build/static/js/icon.securitySignal.b86f31ea.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.securitySignalDetected.1e5c65cc.chunk.js +2 -0
- feast/ui/build/static/js/icon.securitySignalDetected.1e5c65cc.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.securitySignalResolved.6afc63b1.chunk.js +2 -0
- feast/ui/build/static/js/icon.securitySignalResolved.6afc63b1.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.sessionViewer.b5d0dcd3.chunk.js +2 -0
- feast/ui/build/static/js/icon.sessionViewer.b5d0dcd3.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.shard.2c08ec40.chunk.js +2 -0
- feast/ui/build/static/js/icon.shard.2c08ec40.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.share.980bc750.chunk.js +2 -0
- feast/ui/build/static/js/icon.share.980bc750.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.single_metric_viewer.9bad664c.chunk.js +2 -0
- feast/ui/build/static/js/icon.single_metric_viewer.9bad664c.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.snowflake.37f198e1.chunk.js +2 -0
- feast/ui/build/static/js/icon.snowflake.37f198e1.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.sortAscending.c08f27f0.chunk.js +2 -0
- feast/ui/build/static/js/icon.sortAscending.c08f27f0.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.sortDescending.d844a86c.chunk.js +2 -0
- feast/ui/build/static/js/icon.sortDescending.d844a86c.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.sortLeft.e640e586.chunk.js +2 -0
- feast/ui/build/static/js/icon.sortLeft.e640e586.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.sortRight.c2c9f149.chunk.js +2 -0
- feast/ui/build/static/js/icon.sortRight.c2c9f149.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.sort_down.da9b90d0.chunk.js +2 -0
- feast/ui/build/static/js/icon.sort_down.da9b90d0.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.sort_up.48c04115.chunk.js +2 -0
- feast/ui/build/static/js/icon.sort_up.48c04115.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.sortable.478f6ba8.chunk.js +2 -0
- feast/ui/build/static/js/icon.sortable.478f6ba8.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.spaces.59fc3f28.chunk.js +2 -0
- feast/ui/build/static/js/icon.spaces.59fc3f28.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.sparkles.ea59f22f.chunk.js +2 -0
- feast/ui/build/static/js/icon.sparkles.ea59f22f.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.starPlusEmpty.7ee10306.chunk.js +2 -0
- feast/ui/build/static/js/icon.starPlusEmpty.7ee10306.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.starPlusFilled.e06993ed.chunk.js +2 -0
- feast/ui/build/static/js/icon.starPlusFilled.e06993ed.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.star_empty.5feeedb1.chunk.js +2 -0
- feast/ui/build/static/js/icon.star_empty.5feeedb1.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.star_empty_space.d7ac740d.chunk.js +2 -0
- feast/ui/build/static/js/icon.star_empty_space.d7ac740d.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.star_filled.e08e684e.chunk.js +2 -0
- feast/ui/build/static/js/icon.star_filled.e08e684e.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.star_filled_space.61d250e5.chunk.js +2 -0
- feast/ui/build/static/js/icon.star_filled_space.61d250e5.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.star_minus_empty.c038a7fc.chunk.js +2 -0
- feast/ui/build/static/js/icon.star_minus_empty.c038a7fc.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.star_minus_filled.2d7cae39.chunk.js +2 -0
- feast/ui/build/static/js/icon.star_minus_filled.2d7cae39.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.stats.de1cb6f5.chunk.js +2 -0
- feast/ui/build/static/js/icon.stats.de1cb6f5.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.stop.29754374.chunk.js +2 -0
- feast/ui/build/static/js/icon.stop.29754374.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.stop_filled.c9f2bada.chunk.js +2 -0
- feast/ui/build/static/js/icon.stop_filled.c9f2bada.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.stop_slash.95c508d0.chunk.js +2 -0
- feast/ui/build/static/js/icon.stop_slash.95c508d0.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.storage.b8dd9df4.chunk.js +2 -0
- feast/ui/build/static/js/icon.storage.b8dd9df4.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.string.9b110d8e.chunk.js +2 -0
- feast/ui/build/static/js/icon.string.9b110d8e.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.submodule.0de0e2cd.chunk.js +2 -0
- feast/ui/build/static/js/icon.submodule.0de0e2cd.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.sun.e878e965.chunk.js +2 -0
- feast/ui/build/static/js/icon.sun.e878e965.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.swatch_input.79d9b582.chunk.js +2 -0
- feast/ui/build/static/js/icon.swatch_input.79d9b582.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.symlink.0a16bdd7.chunk.js +2 -0
- feast/ui/build/static/js/icon.symlink.0a16bdd7.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tableOfContents.ec46033d.chunk.js +2 -0
- feast/ui/build/static/js/icon.tableOfContents.ec46033d.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.table_density_compact.d4f76c12.chunk.js +2 -0
- feast/ui/build/static/js/icon.table_density_compact.d4f76c12.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.table_density_expanded.33a1c148.chunk.js +2 -0
- feast/ui/build/static/js/icon.table_density_expanded.33a1c148.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.table_density_normal.1b22dc63.chunk.js +2 -0
- feast/ui/build/static/js/icon.table_density_normal.1b22dc63.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tag.2ecfe5bb.chunk.js +2 -0
- feast/ui/build/static/js/icon.tag.2ecfe5bb.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tear.ad6b169a.chunk.js +2 -0
- feast/ui/build/static/js/icon.tear.ad6b169a.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.temperature.3457ec39.chunk.js +2 -0
- feast/ui/build/static/js/icon.temperature.3457ec39.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.timeRefresh.b0eb9a09.chunk.js +2 -0
- feast/ui/build/static/js/icon.timeRefresh.b0eb9a09.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.timeline.e8161ffb.chunk.js +2 -0
- feast/ui/build/static/js/icon.timeline.e8161ffb.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.timelineWithArrow.12fbe752.chunk.js +2 -0
- feast/ui/build/static/js/icon.timelineWithArrow.12fbe752.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.timeslider.5096f6dc.chunk.js +2 -0
- feast/ui/build/static/js/icon.timeslider.5096f6dc.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenAlias.b004927b.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenAlias.b004927b.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenAnnotation.5334afe3.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenAnnotation.5334afe3.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenArray.ce0dc686.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenArray.ce0dc686.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenBinary.5ca30803.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenBinary.5ca30803.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenBoolean.2cc7aa20.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenBoolean.2cc7aa20.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenClass.9f6a1041.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenClass.9f6a1041.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenCompletionSuggester.b0ed1ca2.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenCompletionSuggester.b0ed1ca2.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenConstant.279fed27.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenConstant.279fed27.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenDate.037387bd.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenDate.037387bd.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenDimension.b8233e90.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenDimension.b8233e90.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenElement.ebe1552e.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenElement.ebe1552e.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenEnum.2fcb85cb.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenEnum.2fcb85cb.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenEnumMember.e2405f39.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenEnumMember.e2405f39.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenEvent.5e61b7cb.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenEvent.5e61b7cb.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenException.95d88ab1.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenException.95d88ab1.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenField.af520559.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenField.af520559.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenFile.701d7f5e.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenFile.701d7f5e.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenFlattened.6b2b414d.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenFlattened.6b2b414d.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenFunction.f9cca68b.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenFunction.f9cca68b.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenGeo.f1893411.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenGeo.f1893411.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenHistogram.6e03090e.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenHistogram.6e03090e.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenIP.5eaedcb5.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenIP.5eaedcb5.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenInterface.c94fbeeb.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenInterface.c94fbeeb.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenJoin.a4ee52d0.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenJoin.a4ee52d0.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenKey.b1decfe3.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenKey.b1decfe3.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenKeyword.8000201e.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenKeyword.8000201e.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenMethod.9249f526.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenMethod.9249f526.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenMetricCounter.de157ac4.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenMetricCounter.de157ac4.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenMetricGauge.4e4032be.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenMetricGauge.4e4032be.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenModule.edcd8980.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenModule.edcd8980.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenNamespace.070737aa.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenNamespace.070737aa.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenNested.87068d28.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenNested.87068d28.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenNull.3ad590e4.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenNull.3ad590e4.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenNumber.bdb4c068.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenNumber.bdb4c068.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenObject.2e2fa95e.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenObject.2e2fa95e.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenOperator.9f1e8bf4.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenOperator.9f1e8bf4.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenPackage.ff9e5d52.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenPackage.ff9e5d52.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenParameter.17899899.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenParameter.17899899.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenPercolator.dc41b490.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenPercolator.dc41b490.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenProperty.d89119f3.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenProperty.d89119f3.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenRange.d4e867a2.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenRange.d4e867a2.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenRankFeature.f8034b99.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenRankFeature.f8034b99.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenRankFeatures.e5130db0.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenRankFeatures.e5130db0.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenRepo.a6af4051.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenRepo.a6af4051.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenSearchType.a2d80f26.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenSearchType.a2d80f26.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenSemanticText.23d4019a.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenSemanticText.23d4019a.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenShape.147fe5df.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenShape.147fe5df.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenString.1b4501a9.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenString.1b4501a9.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenStruct.385ba881.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenStruct.385ba881.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenSymbol.433406e3.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenSymbol.433406e3.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenTag.521f491a.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenTag.521f491a.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenText.5cc1edd0.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenText.5cc1edd0.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenTokenCount.bd7f3485.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenTokenCount.bd7f3485.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenVariable.34e0e247.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenVariable.34e0e247.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenVectorDense.6e8dbc4b.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenVectorDense.6e8dbc4b.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.tokenVectorSparse.022d7602.chunk.js +2 -0
- feast/ui/build/static/js/icon.tokenVectorSparse.022d7602.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.training.300ca447.chunk.js +2 -0
- feast/ui/build/static/js/icon.training.300ca447.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.transitionLeftIn.9fbd3c22.chunk.js +2 -0
- feast/ui/build/static/js/icon.transitionLeftIn.9fbd3c22.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.transitionLeftOut.1b40b543.chunk.js +2 -0
- feast/ui/build/static/js/icon.transitionLeftOut.1b40b543.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.transitionTopIn.babe5dec.chunk.js +2 -0
- feast/ui/build/static/js/icon.transitionTopIn.babe5dec.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.transitionTopOut.a4e084b0.chunk.js +2 -0
- feast/ui/build/static/js/icon.transitionTopOut.a4e084b0.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.trash.5a9abcf9.chunk.js +2 -0
- feast/ui/build/static/js/icon.trash.5a9abcf9.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.unfold.b17ec283.chunk.js +2 -0
- feast/ui/build/static/js/icon.unfold.b17ec283.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.unlink.b217a423.chunk.js +2 -0
- feast/ui/build/static/js/icon.unlink.b217a423.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.user.f2bfcad7.chunk.js +2 -0
- feast/ui/build/static/js/icon.user.f2bfcad7.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.userAvatar.b626fe37.chunk.js +2 -0
- feast/ui/build/static/js/icon.userAvatar.b626fe37.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.users.0cb9178b.chunk.js +2 -0
- feast/ui/build/static/js/icon.users.0cb9178b.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.vector.2e2fa8e2.chunk.js +2 -0
- feast/ui/build/static/js/icon.vector.2e2fa8e2.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.videoPlayer.c21f20ac.chunk.js +2 -0
- feast/ui/build/static/js/icon.videoPlayer.c21f20ac.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.vis_area.84e96cd4.chunk.js +2 -0
- feast/ui/build/static/js/icon.vis_area.84e96cd4.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.vis_area_stacked.9c0fd63a.chunk.js +2 -0
- feast/ui/build/static/js/icon.vis_area_stacked.9c0fd63a.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.vis_bar_horizontal.52d1389c.chunk.js +2 -0
- feast/ui/build/static/js/icon.vis_bar_horizontal.52d1389c.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.vis_bar_horizontal_stacked.b104aac5.chunk.js +2 -0
- feast/ui/build/static/js/icon.vis_bar_horizontal_stacked.b104aac5.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.vis_bar_vertical.a0401cb1.chunk.js +2 -0
- feast/ui/build/static/js/icon.vis_bar_vertical.a0401cb1.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.vis_bar_vertical_stacked.b0b04e60.chunk.js +2 -0
- feast/ui/build/static/js/icon.vis_bar_vertical_stacked.b0b04e60.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.vis_gauge.3f23a421.chunk.js +2 -0
- feast/ui/build/static/js/icon.vis_gauge.3f23a421.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.vis_goal.141027b6.chunk.js +2 -0
- feast/ui/build/static/js/icon.vis_goal.141027b6.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.vis_line.d82e7370.chunk.js +2 -0
- feast/ui/build/static/js/icon.vis_line.d82e7370.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.vis_map_coordinate.7c6ec8ce.chunk.js +2 -0
- feast/ui/build/static/js/icon.vis_map_coordinate.7c6ec8ce.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.vis_map_region.ba667e6b.chunk.js +2 -0
- feast/ui/build/static/js/icon.vis_map_region.ba667e6b.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.vis_metric.1f6e55db.chunk.js +2 -0
- feast/ui/build/static/js/icon.vis_metric.1f6e55db.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.vis_pie.d4848284.chunk.js +2 -0
- feast/ui/build/static/js/icon.vis_pie.d4848284.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.vis_table.4e86cae3.chunk.js +2 -0
- feast/ui/build/static/js/icon.vis_table.4e86cae3.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.vis_tag_cloud.0309b6fd.chunk.js +2 -0
- feast/ui/build/static/js/icon.vis_tag_cloud.0309b6fd.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.vis_text.937fad72.chunk.js +2 -0
- feast/ui/build/static/js/icon.vis_text.937fad72.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.vis_timelion.19045219.chunk.js +2 -0
- feast/ui/build/static/js/icon.vis_timelion.19045219.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.vis_vega.b20b823b.chunk.js +2 -0
- feast/ui/build/static/js/icon.vis_vega.b20b823b.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.vis_visual_builder.590d0087.chunk.js +2 -0
- feast/ui/build/static/js/icon.vis_visual_builder.590d0087.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.warning.c555a5de.chunk.js +2 -0
- feast/ui/build/static/js/icon.warning.c555a5de.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.warningFilled.9e2e84db.chunk.js +2 -0
- feast/ui/build/static/js/icon.warningFilled.9e2e84db.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.wordWrap.72a071da.chunk.js +2 -0
- feast/ui/build/static/js/icon.wordWrap.72a071da.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.wordWrapDisabled.25c0cc82.chunk.js +2 -0
- feast/ui/build/static/js/icon.wordWrapDisabled.25c0cc82.chunk.js.map +1 -0
- feast/ui/build/static/js/icon.wrench.029ca7db.chunk.js +2 -0
- feast/ui/build/static/js/icon.wrench.029ca7db.chunk.js.map +1 -0
- feast/ui/build/static/js/main.03ac5c90.js +3 -0
- feast/ui/build/static/js/main.03ac5c90.js.LICENSE.txt +174 -0
- feast/ui/build/static/js/main.03ac5c90.js.map +1 -0
- feast/ui/build/static/media/feast-icon-grey.e5aa0a305d8efd775c4b.svg +1 -0
- feast/ui_server.py +1132 -0
- feast/utils.py +1781 -0
- feast/value_type.py +106 -0
- feast/vector_store.py +87 -0
- feast/version.py +10 -0
- feast/version_utils.py +51 -0
- feast/wait.py +55 -0
- feast_custom-0.64.0.dist-info/METADATA +536 -0
- feast_custom-0.64.0.dist-info/RECORD +1661 -0
- feast_custom-0.64.0.dist-info/WHEEL +5 -0
- feast_custom-0.64.0.dist-info/entry_points.txt +2 -0
- feast_custom-0.64.0.dist-info/licenses/LICENSE +202 -0
- 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
|
+
]
|