featrixsphere 0.2.5183__tar.gz → 0.2.5563__tar.gz
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.
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/PKG-INFO +1 -1
- featrixsphere-0.2.5563/VERSION +1 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/featrixsphere/__init__.py +1 -1
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/featrixsphere/client.py +126 -26
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/featrixsphere.egg-info/PKG-INFO +1 -1
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/featrixsphere.egg-info/SOURCES.txt +6 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/api.py +371 -105
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/celery_app.py +381 -3
- featrixsphere-0.2.5563/src/cluster_movie_renderer.py +773 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/config.py +4 -0
- featrixsphere-0.2.5563/src/lib/backing_db.py +174 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/celery_job_recovery.py +223 -72
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/es_training.py +40 -2
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/charting.py +368 -110
- featrixsphere-0.2.5563/src/lib/featrix/neural/dimension_validator.py +329 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/dynamic_relationship_extractor.py +381 -301
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/embedded_space.py +1442 -286
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/embedding_space_utils.py +34 -1
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/encoders.py +337 -27
- featrixsphere-0.2.5563/src/lib/featrix/neural/host_memory_tracker.py +256 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/io_utils.py +173 -92
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/logging_config.py +11 -6
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/lr_timeline.py +263 -91
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/model_config.py +2 -1
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/movie_frame_task.py +194 -91
- featrixsphere-0.2.5563/src/lib/featrix/neural/per_epoch_quality.py +248 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/test_extend_embedding_space.py +0 -3
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/scalar_codec.py +16 -6
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/set_codec.py +58 -5
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/simple_mlp.py +45 -2
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/single_predictor.py +1641 -138
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/single_predictor_mlp.py +15 -4
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/sphere_config.py +244 -2
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/string_analysis.py +2 -2
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/string_cache.py +0 -1
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/timestamp_codec.py +8 -3
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/training_logger.py +62 -7
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/training_timeline.py +1 -1
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/utils.py +66 -18
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/vector_codec.py +9 -3
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/job_manager.py +15 -0
- featrixsphere-0.2.5563/src/lib/model_card_repair.py +316 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/session_chains.py +101 -6
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/session_manager.py +427 -199
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/single_predictor_training.py +256 -22
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/sp_training_wrapper.py +2 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/weightwatcher_tracking.py +11 -2
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/node-install.sh +25 -16
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/start_celery_cpu_worker.sh +5 -2
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/start_celery_gpu_worker.sh +6 -2
- featrixsphere-0.2.5563/src/upgrade-taco-python312.sh +160 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/system_monitor.py +46 -20
- featrixsphere-0.2.5183/VERSION +0 -1
- featrixsphere-0.2.5183/src/lib/model_card_repair.py +0 -178
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/MANIFEST.in +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/README.md +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/featrix-update.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/featrixsphere.egg-info/dependency_links.txt +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/featrixsphere.egg-info/entry_points.txt +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/featrixsphere.egg-info/not-zip-safe +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/featrixsphere.egg-info/requires.txt +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/featrixsphere.egg-info/top_level.txt +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/nv-install.sh +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/requirements.txt +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/setup.cfg +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/setup.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/auto_upgrade_monitor.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/build_version.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/demo_existing_model.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/demo_label_updates.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/deploy.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/deploy_cache_debug.sh +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/ensure_watchdog_running.sh +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/error_tracker.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/event_log.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/example_api_usage.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/example_prediction_feedback.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/example_train_predictor.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/featrix_watchdog.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/gc_cleanup.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/api_event_retry.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/convergence_monitor.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/crash_tracker.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/distribution_shift_detector.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/embedding_space_io.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/epoch_projections.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/es_projections.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/es_training_wrapper.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/__init__.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/__init__.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/calibration_utils.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/causal_relationship_scorer.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/classification_metrics.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/config.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/customer_quality_tracker.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/data_frame_data_set.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/dataloader_utils.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/detect.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/domain_codec.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/dropout_scheduler.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/embedding_lr_scheduler.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/embedding_quality.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/embedding_utils.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/enrich.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/es_projection.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/exceptions.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/featrix_csv.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/featrix_json.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/featrix_module_dict.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/featrix_token.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/feature_effectiveness_tracker.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/feature_engineer.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/feature_suggestion_tracker.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/gpu_utils.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/graph_encoder.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/graph_encoder_training.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/guardrails.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/hubspot_free_domains_list_may_2025.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/hybrid_column_detector.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/hybrid_encoders.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/input_data_file.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/input_data_set.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/integrity.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/json_cache.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/json_codec.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/llm/__init__.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/llm/schema_analyzer.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/local_string_cache.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/mask_bias_tracker.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/mask_tracker.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/model_hash.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/multi_table_dataset.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/multi_table_embedding_space.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/network_viz.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/platform_utils.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/prng_control.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/demo_advisor_decisions.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/example_complete_workflow.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/generate_focal_report.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/model_advisor.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/show_results.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/test_adaptive_loss_benchmark.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/test_adaptive_training.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/test_checkpoint_dict_reconstruction.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/test_confusion_matrix_metadata.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/test_embedding_quality.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/test_embedding_space.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/test_feature_engineering_prediction.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/test_focal_comparison.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/test_focal_comparison_enhanced.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/test_focal_loss_single_predictor.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/test_hybrid_columns.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/test_label_smoothing.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/test_lift_measurement_validation.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/test_lr_timeline_smoothness.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/test_min_support_rank_scaling.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/test_monitor_integration.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/test_piecewise_epochs.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/test_predict_during_training.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/test_relationship_extractor_integration.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/test_relationship_extractor_mixed_types.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/test_set_encoder_strategies.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/test_timeline_quick.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/test_training_monitor.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/test_warning_tracking.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/qa/visualize_training_timeline.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/relationship_complexity.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/relationship_estimator.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/relationship_extractor.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/relationship_importance_validator.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/relationship_performance.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/relationship_preanalysis.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/relationship_search.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/schema_history.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/setlist_codec.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/simple_string_cache.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/sqlite_utils.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/stopwatch.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/string_codec.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/string_list_codec.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/training_banner.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/training_context_manager.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/training_event.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/training_exceptions.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/training_history_db.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/transformer_encoder.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/url_codec.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/url_parser.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix/neural/world_data.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/featrix_debug.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/json_encoder_cache.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/knn_training.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/meta_learning_client.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/model_repair.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/pre_analysis_wrapper.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/queue_manager.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/quick_architecture_search.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/single_predictor_cv.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/sphere_config.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/structureddata.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/system_health_monitor.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/training_monitor.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/utils.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/vector_db.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/lib/webhook_helpers.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/llm_client.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/load_and_test_model.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/manage_churro.sh +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/migrate_string_cache_naming.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/neural.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/prediction_client.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/prediction_drift_monitor.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/prediction_persistence_worker.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/prediction_server.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/query_schema_worker.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/quick_test_deployment.sh +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/recreate_session.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/redis_job_progress.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/redis_prediction_cli.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/redis_prediction_store.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/regenerate_training_movie.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/render_sphere.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/repair_checkpoint.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/repair_model.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/resubmit_es_completion.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/run_api_server.sh +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/send_email.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/slack.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/standalone_prediction.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/start_celery_movie_worker.sh +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/tail-watch.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/test_api_client.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/tree.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/utils.py +0 -0
- {featrixsphere-0.2.5183 → featrixsphere-0.2.5563}/src/version.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.2.5563
|
|
@@ -8,6 +8,7 @@ with a focus on the new single predictor functionality.
|
|
|
8
8
|
|
|
9
9
|
import json
|
|
10
10
|
import time
|
|
11
|
+
import logging
|
|
11
12
|
import requests
|
|
12
13
|
from pathlib import Path
|
|
13
14
|
from typing import Dict, Any, Optional, List, Tuple, Union
|
|
@@ -22,6 +23,8 @@ import hashlib
|
|
|
22
23
|
import numpy as np
|
|
23
24
|
from datetime import datetime
|
|
24
25
|
|
|
26
|
+
logger = logging.getLogger(__name__)
|
|
27
|
+
|
|
25
28
|
# Optional imports for plotting functionality
|
|
26
29
|
try:
|
|
27
30
|
import matplotlib.pyplot as plt
|
|
@@ -66,6 +69,7 @@ class SessionInfo:
|
|
|
66
69
|
jobs: Dict[str, Any]
|
|
67
70
|
job_queue_positions: Dict[str, Any]
|
|
68
71
|
job_plan: List[Dict[str, Any]] = field(default_factory=list)
|
|
72
|
+
compute_cluster: Optional[str] = None
|
|
69
73
|
_client: Optional['FeatrixSphereClient'] = None
|
|
70
74
|
|
|
71
75
|
def predictors(self) -> List[Dict[str, Any]]:
|
|
@@ -239,15 +243,16 @@ class PredictionBatch:
|
|
|
239
243
|
class FeatrixSphereClient:
|
|
240
244
|
"""Client for interacting with the Featrix Sphere API."""
|
|
241
245
|
|
|
242
|
-
def __init__(self, base_url: str = "https://sphere-api.featrix.com",
|
|
243
|
-
default_max_retries: int = 5,
|
|
246
|
+
def __init__(self, base_url: str = "https://sphere-api.featrix.com",
|
|
247
|
+
default_max_retries: int = 5,
|
|
244
248
|
default_timeout: int = 30,
|
|
245
249
|
retry_base_delay: float = 2.0,
|
|
246
250
|
retry_max_delay: float = 60.0,
|
|
247
|
-
compute_cluster: str = None
|
|
251
|
+
compute_cluster: str = None,
|
|
252
|
+
trace: bool = False):
|
|
248
253
|
"""
|
|
249
254
|
Initialize the API client.
|
|
250
|
-
|
|
255
|
+
|
|
251
256
|
Args:
|
|
252
257
|
base_url: Base URL of the API server
|
|
253
258
|
default_max_retries: Default number of retries for failed requests
|
|
@@ -255,6 +260,7 @@ class FeatrixSphereClient:
|
|
|
255
260
|
retry_base_delay: Base delay for exponential backoff in seconds
|
|
256
261
|
retry_max_delay: Maximum delay for exponential backoff in seconds
|
|
257
262
|
compute_cluster: Compute cluster name (e.g., "burrito", "churro") for X-Featrix-Node header
|
|
263
|
+
trace: Enable detailed debug logging of all API requests (default: False)
|
|
258
264
|
"""
|
|
259
265
|
self.base_url = base_url.rstrip('/')
|
|
260
266
|
self.session = requests.Session()
|
|
@@ -286,6 +292,17 @@ class FeatrixSphereClient:
|
|
|
286
292
|
self._prediction_cache = {} # session_id -> {record_hash: prediction_result}
|
|
287
293
|
self._cache_mode = {} # session_id -> 'populate' or 'fetch'
|
|
288
294
|
self._cache_stats = {} # session_id -> {hits: int, misses: int, populated: int}
|
|
295
|
+
|
|
296
|
+
# Trace/debug mode
|
|
297
|
+
self.trace = trace
|
|
298
|
+
if trace:
|
|
299
|
+
import logging
|
|
300
|
+
logging.basicConfig(level=logging.INFO)
|
|
301
|
+
logger.info(f"[TRACE] FeatrixSphereClient initialized")
|
|
302
|
+
logger.info(f"[TRACE] base_url: {self.base_url}")
|
|
303
|
+
logger.info(f"[TRACE] compute_cluster: {compute_cluster}")
|
|
304
|
+
logger.info(f"[TRACE] default_timeout: {default_timeout}")
|
|
305
|
+
logger.info(f"[TRACE] headers: {dict(self.session.headers)}")
|
|
289
306
|
|
|
290
307
|
def set_compute_cluster(self, cluster: str) -> None:
|
|
291
308
|
"""
|
|
@@ -349,13 +366,30 @@ class FeatrixSphereClient:
|
|
|
349
366
|
url = f"{self.base_url}{endpoint}"
|
|
350
367
|
start_time = time.time()
|
|
351
368
|
attempt = 0
|
|
352
|
-
|
|
369
|
+
|
|
370
|
+
if self.trace:
|
|
371
|
+
logger.info(f"[TRACE] {method} {url}")
|
|
372
|
+
logger.info(f"[TRACE] headers: {dict(self.session.headers)}")
|
|
373
|
+
if 'json' in kwargs:
|
|
374
|
+
json_data = kwargs['json']
|
|
375
|
+
if isinstance(json_data, dict):
|
|
376
|
+
logger.info(f"[TRACE] json keys: {list(json_data.keys())}")
|
|
377
|
+
# Log sample of data without flooding
|
|
378
|
+
if 'records' in json_data:
|
|
379
|
+
logger.info(f"[TRACE] num records: {len(json_data.get('records', []))}")
|
|
380
|
+
if 'table' in json_data:
|
|
381
|
+
logger.info(f"[TRACE] has table data")
|
|
382
|
+
|
|
353
383
|
while True:
|
|
354
384
|
attempt += 1
|
|
355
385
|
elapsed = time.time() - start_time
|
|
356
|
-
|
|
386
|
+
|
|
357
387
|
try:
|
|
358
388
|
response = self.session.request(method, url, **kwargs)
|
|
389
|
+
if self.trace:
|
|
390
|
+
logger.info(f"[TRACE] response: HTTP {response.status_code} ({elapsed:.2f}s)")
|
|
391
|
+
if response.status_code >= 400:
|
|
392
|
+
logger.info(f"[TRACE] response body: {response.text[:500]}")
|
|
359
393
|
response.raise_for_status()
|
|
360
394
|
return response
|
|
361
395
|
|
|
@@ -664,6 +698,7 @@ class FeatrixSphereClient:
|
|
|
664
698
|
jobs={},
|
|
665
699
|
job_queue_positions={},
|
|
666
700
|
job_plan=[],
|
|
701
|
+
compute_cluster=response_data.get('compute_cluster'),
|
|
667
702
|
_client=self
|
|
668
703
|
)
|
|
669
704
|
|
|
@@ -696,6 +731,7 @@ class FeatrixSphereClient:
|
|
|
696
731
|
jobs=jobs,
|
|
697
732
|
job_queue_positions=positions,
|
|
698
733
|
job_plan=job_plan,
|
|
734
|
+
compute_cluster=session.get('compute_cluster'),
|
|
699
735
|
_client=self
|
|
700
736
|
)
|
|
701
737
|
|
|
@@ -4942,11 +4978,14 @@ class FeatrixSphereClient:
|
|
|
4942
4978
|
pass
|
|
4943
4979
|
|
|
4944
4980
|
new_session_id = response_data.get('session_id')
|
|
4981
|
+
compute_cluster = response_data.get('compute_cluster')
|
|
4945
4982
|
print(f"✅ Predictor training session created: {new_session_id}")
|
|
4946
|
-
|
|
4983
|
+
if compute_cluster:
|
|
4984
|
+
print(f" Compute cluster: {compute_cluster}")
|
|
4985
|
+
|
|
4947
4986
|
except Exception as e:
|
|
4948
4987
|
raise
|
|
4949
|
-
|
|
4988
|
+
|
|
4950
4989
|
if verbose:
|
|
4951
4990
|
print(f"⏳ Waiting for training to complete...")
|
|
4952
4991
|
return self.wait_for_session_completion(
|
|
@@ -4962,6 +5001,7 @@ class FeatrixSphereClient:
|
|
|
4962
5001
|
jobs={},
|
|
4963
5002
|
job_queue_positions={},
|
|
4964
5003
|
job_plan=[],
|
|
5004
|
+
compute_cluster=compute_cluster,
|
|
4965
5005
|
_client=self
|
|
4966
5006
|
)
|
|
4967
5007
|
|
|
@@ -6396,32 +6436,53 @@ class FeatrixSphereClient:
|
|
|
6396
6436
|
# JSON Tables Batch Prediction
|
|
6397
6437
|
# =========================================================================
|
|
6398
6438
|
|
|
6399
|
-
def predict_table(self, session_id: str, table_data: Dict[str, Any],
|
|
6400
|
-
target_column: str = None, predictor_id: str = None,
|
|
6401
|
-
best_metric_preference: str = None, max_retries: int = None
|
|
6439
|
+
def predict_table(self, session_id: str, table_data: Dict[str, Any],
|
|
6440
|
+
target_column: str = None, predictor_id: str = None,
|
|
6441
|
+
best_metric_preference: str = None, max_retries: int = None,
|
|
6442
|
+
trace: bool = False) -> Dict[str, Any]:
|
|
6402
6443
|
"""
|
|
6403
6444
|
Make batch predictions using JSON Tables format.
|
|
6404
|
-
|
|
6445
|
+
|
|
6405
6446
|
Args:
|
|
6406
6447
|
session_id: ID of session with trained predictor
|
|
6407
6448
|
table_data: Data in JSON Tables format, or list of records, or dict with 'table'/'records'
|
|
6408
6449
|
target_column: Specific target column predictor to use (required if multiple predictors exist)
|
|
6409
6450
|
predictor_id: Specific predictor ID to use (recommended - more precise than target_column)
|
|
6410
6451
|
max_retries: Number of retries for errors (default: uses client default, recommend higher for batch)
|
|
6411
|
-
|
|
6452
|
+
trace: Enable detailed debug logging (default: False)
|
|
6453
|
+
|
|
6412
6454
|
Returns:
|
|
6413
6455
|
Batch prediction results in JSON Tables format
|
|
6414
|
-
|
|
6456
|
+
|
|
6415
6457
|
Raises:
|
|
6416
6458
|
ValueError: If multiple predictors exist and neither target_column nor predictor_id is specified
|
|
6417
6459
|
PredictorNotFoundError: If no single predictor has been trained for this session
|
|
6418
6460
|
"""
|
|
6461
|
+
if trace:
|
|
6462
|
+
print(f"[TRACE] predict_table called")
|
|
6463
|
+
print(f"[TRACE] session_id: {session_id}")
|
|
6464
|
+
print(f"[TRACE] target_column: {target_column}")
|
|
6465
|
+
print(f"[TRACE] predictor_id: {predictor_id}")
|
|
6466
|
+
print(f"[TRACE] table_data type: {type(table_data)}")
|
|
6467
|
+
if isinstance(table_data, dict):
|
|
6468
|
+
print(f"[TRACE] table_data keys: {list(table_data.keys())}")
|
|
6469
|
+
if 'records' in table_data:
|
|
6470
|
+
print(f"[TRACE] num records: {len(table_data.get('records', []))}")
|
|
6471
|
+
if 'table' in table_data:
|
|
6472
|
+
print(f"[TRACE] table keys: {list(table_data['table'].keys()) if isinstance(table_data['table'], dict) else 'not a dict'}")
|
|
6473
|
+
|
|
6419
6474
|
# Use higher default for batch operations if not specified
|
|
6420
6475
|
if max_retries is None:
|
|
6421
6476
|
max_retries = max(5, self.default_max_retries)
|
|
6422
|
-
|
|
6477
|
+
|
|
6478
|
+
if trace:
|
|
6479
|
+
print(f"[TRACE] max_retries: {max_retries}")
|
|
6480
|
+
|
|
6423
6481
|
# Check if multiple predictors exist and require specification
|
|
6424
6482
|
predictors = self._get_available_predictors(session_id, debug=False)
|
|
6483
|
+
if trace:
|
|
6484
|
+
print(f"[TRACE] found {len(predictors)} predictors: {list(predictors.keys())}")
|
|
6485
|
+
|
|
6425
6486
|
if len(predictors) > 1 and not target_column and not predictor_id:
|
|
6426
6487
|
available_targets = [p.get('target_column') for p in predictors.values() if p.get('target_column')]
|
|
6427
6488
|
available_ids = list(predictors.keys())
|
|
@@ -6432,7 +6493,7 @@ class FeatrixSphereClient:
|
|
|
6432
6493
|
f"Available predictor IDs: {available_ids}\n"
|
|
6433
6494
|
f"Use client.list_predictors('{session_id}') to see details."
|
|
6434
6495
|
)
|
|
6435
|
-
|
|
6496
|
+
|
|
6436
6497
|
# Add predictor specification to table_data if provided
|
|
6437
6498
|
if isinstance(table_data, dict):
|
|
6438
6499
|
if target_column:
|
|
@@ -6441,24 +6502,45 @@ class FeatrixSphereClient:
|
|
|
6441
6502
|
table_data['predictor_id'] = predictor_id
|
|
6442
6503
|
if best_metric_preference:
|
|
6443
6504
|
table_data['best_metric_preference'] = best_metric_preference
|
|
6444
|
-
|
|
6505
|
+
|
|
6506
|
+
if trace:
|
|
6507
|
+
print(f"[TRACE] POST /session/{session_id}/predict_table")
|
|
6508
|
+
# Print first record sample if available
|
|
6509
|
+
if isinstance(table_data, dict) and 'records' in table_data and table_data['records']:
|
|
6510
|
+
print(f"[TRACE] first record sample: {table_data['records'][0]}")
|
|
6511
|
+
|
|
6445
6512
|
try:
|
|
6446
6513
|
response_data = self._post_json(f"/session/{session_id}/predict_table", table_data, max_retries=max_retries)
|
|
6514
|
+
if trace:
|
|
6515
|
+
print(f"[TRACE] response keys: {list(response_data.keys()) if isinstance(response_data, dict) else 'not a dict'}")
|
|
6516
|
+
if isinstance(response_data, dict):
|
|
6517
|
+
print(f"[TRACE] predictions count: {len(response_data.get('predictions', []))}")
|
|
6518
|
+
if response_data.get('predictions'):
|
|
6519
|
+
print(f"[TRACE] first prediction: {response_data['predictions'][0]}")
|
|
6520
|
+
if response_data.get('error'):
|
|
6521
|
+
print(f"[TRACE] ERROR: {response_data.get('error')}")
|
|
6522
|
+
if response_data.get('errors'):
|
|
6523
|
+
print(f"[TRACE] ERRORS: {response_data.get('errors')}")
|
|
6447
6524
|
return response_data
|
|
6448
6525
|
except Exception as e:
|
|
6526
|
+
if trace:
|
|
6527
|
+
print(f"[TRACE] EXCEPTION: {type(e).__name__}: {e}")
|
|
6528
|
+
import traceback
|
|
6529
|
+
print(f"[TRACE] {traceback.format_exc()}")
|
|
6449
6530
|
# Enhanced error handling for common prediction issues
|
|
6450
6531
|
if "404" in str(e) and "Single predictor not found" in str(e):
|
|
6451
6532
|
self._raise_predictor_not_found_error(session_id, "predict_table")
|
|
6452
6533
|
else:
|
|
6453
6534
|
raise
|
|
6454
6535
|
|
|
6455
|
-
def predict_records(self, session_id: str, records: List[Dict[str, Any]],
|
|
6536
|
+
def predict_records(self, session_id: str, records: List[Dict[str, Any]],
|
|
6456
6537
|
target_column: str = None, predictor_id: str = None, best_metric_preference: str = None,
|
|
6457
|
-
batch_size: int = 2500, use_async: bool = False,
|
|
6458
|
-
show_progress_bar: bool = True, print_target_column_warning: bool = True
|
|
6538
|
+
batch_size: int = 2500, use_async: bool = False,
|
|
6539
|
+
show_progress_bar: bool = True, print_target_column_warning: bool = True,
|
|
6540
|
+
trace: bool = False) -> Dict[str, Any]:
|
|
6459
6541
|
"""
|
|
6460
6542
|
Make batch predictions on a list of records with automatic client-side batching.
|
|
6461
|
-
|
|
6543
|
+
|
|
6462
6544
|
Args:
|
|
6463
6545
|
session_id: ID of session with trained predictor
|
|
6464
6546
|
records: List of record dictionaries
|
|
@@ -6468,24 +6550,42 @@ class FeatrixSphereClient:
|
|
|
6468
6550
|
use_async: Force async processing for large datasets (default: False - async disabled due to pickle issues)
|
|
6469
6551
|
show_progress_bar: Whether to show progress bar for async jobs (default: True)
|
|
6470
6552
|
print_target_column_warning: Whether to print warning when removing target column (default: True)
|
|
6471
|
-
|
|
6553
|
+
trace: Enable detailed debug logging (default: False)
|
|
6554
|
+
|
|
6472
6555
|
Returns:
|
|
6473
6556
|
Batch prediction results (may include job_id for async processing)
|
|
6474
|
-
|
|
6557
|
+
|
|
6475
6558
|
Note:
|
|
6476
6559
|
predictor_id is recommended over target_column for precision. If both are provided, predictor_id takes precedence.
|
|
6477
|
-
|
|
6560
|
+
|
|
6478
6561
|
Raises:
|
|
6479
6562
|
ValueError: If target_column is invalid or multiple predictors exist without specification
|
|
6480
6563
|
"""
|
|
6564
|
+
if trace:
|
|
6565
|
+
print(f"[TRACE] predict_records called")
|
|
6566
|
+
print(f"[TRACE] session_id: {session_id}")
|
|
6567
|
+
print(f"[TRACE] num records: {len(records)}")
|
|
6568
|
+
print(f"[TRACE] target_column: {target_column}")
|
|
6569
|
+
print(f"[TRACE] predictor_id: {predictor_id}")
|
|
6570
|
+
print(f"[TRACE] batch_size: {batch_size}")
|
|
6571
|
+
if records:
|
|
6572
|
+
print(f"[TRACE] first record keys: {list(records[0].keys())}")
|
|
6573
|
+
print(f"[TRACE] first record sample: {records[0]}")
|
|
6574
|
+
|
|
6481
6575
|
# Clean NaN/Inf values before sending
|
|
6482
6576
|
cleaned_records = self._clean_numpy_values(records)
|
|
6483
6577
|
# Additional NaN cleaning for JSON encoding
|
|
6484
6578
|
cleaned_records = self.replace_nans_with_nulls(cleaned_records)
|
|
6485
|
-
|
|
6579
|
+
|
|
6486
6580
|
# Remove target column that would interfere with prediction
|
|
6487
6581
|
cleaned_records = self._remove_target_columns(session_id, cleaned_records, target_column, print_target_column_warning)
|
|
6488
|
-
|
|
6582
|
+
|
|
6583
|
+
if trace:
|
|
6584
|
+
print(f"[TRACE] after cleaning: {len(cleaned_records)} records")
|
|
6585
|
+
if cleaned_records:
|
|
6586
|
+
print(f"[TRACE] cleaned first record keys: {list(cleaned_records[0].keys())}")
|
|
6587
|
+
print(f"[TRACE] cleaned first record: {cleaned_records[0]}")
|
|
6588
|
+
|
|
6489
6589
|
# Determine if we should use async processing
|
|
6490
6590
|
ASYNC_THRESHOLD = 1000
|
|
6491
6591
|
total_records = len(cleaned_records)
|
|
@@ -19,6 +19,7 @@ src/api.py
|
|
|
19
19
|
src/auto_upgrade_monitor.py
|
|
20
20
|
src/build_version.py
|
|
21
21
|
src/celery_app.py
|
|
22
|
+
src/cluster_movie_renderer.py
|
|
22
23
|
src/config.py
|
|
23
24
|
src/demo_existing_model.py
|
|
24
25
|
src/demo_label_updates.py
|
|
@@ -63,9 +64,11 @@ src/start_celery_movie_worker.sh
|
|
|
63
64
|
src/tail-watch.py
|
|
64
65
|
src/test_api_client.py
|
|
65
66
|
src/tree.py
|
|
67
|
+
src/upgrade-taco-python312.sh
|
|
66
68
|
src/utils.py
|
|
67
69
|
src/version.py
|
|
68
70
|
src/lib/api_event_retry.py
|
|
71
|
+
src/lib/backing_db.py
|
|
69
72
|
src/lib/celery_job_recovery.py
|
|
70
73
|
src/lib/convergence_monitor.py
|
|
71
74
|
src/lib/crash_tracker.py
|
|
@@ -109,6 +112,7 @@ src/lib/featrix/neural/customer_quality_tracker.py
|
|
|
109
112
|
src/lib/featrix/neural/data_frame_data_set.py
|
|
110
113
|
src/lib/featrix/neural/dataloader_utils.py
|
|
111
114
|
src/lib/featrix/neural/detect.py
|
|
115
|
+
src/lib/featrix/neural/dimension_validator.py
|
|
112
116
|
src/lib/featrix/neural/domain_codec.py
|
|
113
117
|
src/lib/featrix/neural/dropout_scheduler.py
|
|
114
118
|
src/lib/featrix/neural/dynamic_relationship_extractor.py
|
|
@@ -132,6 +136,7 @@ src/lib/featrix/neural/gpu_utils.py
|
|
|
132
136
|
src/lib/featrix/neural/graph_encoder.py
|
|
133
137
|
src/lib/featrix/neural/graph_encoder_training.py
|
|
134
138
|
src/lib/featrix/neural/guardrails.py
|
|
139
|
+
src/lib/featrix/neural/host_memory_tracker.py
|
|
135
140
|
src/lib/featrix/neural/hubspot_free_domains_list_may_2025.py
|
|
136
141
|
src/lib/featrix/neural/hybrid_column_detector.py
|
|
137
142
|
src/lib/featrix/neural/hybrid_encoders.py
|
|
@@ -152,6 +157,7 @@ src/lib/featrix/neural/movie_frame_task.py
|
|
|
152
157
|
src/lib/featrix/neural/multi_table_dataset.py
|
|
153
158
|
src/lib/featrix/neural/multi_table_embedding_space.py
|
|
154
159
|
src/lib/featrix/neural/network_viz.py
|
|
160
|
+
src/lib/featrix/neural/per_epoch_quality.py
|
|
155
161
|
src/lib/featrix/neural/platform_utils.py
|
|
156
162
|
src/lib/featrix/neural/prng_control.py
|
|
157
163
|
src/lib/featrix/neural/relationship_complexity.py
|