weightslab 1.2.6__tar.gz → 1.3.0__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.
- {weightslab-1.2.6 → weightslab-1.3.0}/.github/workflows/ci.yml +9 -28
- {weightslab-1.2.6 → weightslab-1.3.0}/.github/workflows/release.yml +68 -16
- {weightslab-1.2.6 → weightslab-1.3.0}/AGENTS.md +12 -5
- weightslab-1.3.0/CHANGELOG.md +1 -0
- weightslab-1.3.0/PKG-INFO +393 -0
- weightslab-1.3.0/README.md +334 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/docs/configuration.rst +207 -2
- {weightslab-1.2.6 → weightslab-1.3.0}/docs/weights_studio.rst +7 -1
- {weightslab-1.2.6 → weightslab-1.3.0}/pyproject.toml +3 -1
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/__init__.py +11 -1
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/_version.py +3 -3
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/art.py +13 -13
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/backend/audit_logger.py +2 -2
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/backend/cli.py +5 -5
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/backend/dataloader_interface.py +39 -39
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/backend/ledgers.py +99 -19
- weightslab-1.3.0/weightslab/backend/logger.py +1100 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/backend/model_interface.py +7 -7
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/baseline_models/pytorch/models.py +65 -65
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/components/__init__.py +9 -9
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/components/checkpoint_manager.py +98 -98
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/components/experiment_hash.py +9 -9
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/components/global_monitoring.py +17 -10
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/components/parallel_primitives.py +15 -15
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/components/tracking.py +10 -10
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/data/array_proxy.py +3 -3
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/data/data_samples_with_ops.py +20 -20
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/data/data_utils.py +40 -33
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/data/dataframe_manager.py +43 -43
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/data/h5_array_store.py +7 -7
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/data/h5_dataframe_store.py +36 -25
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/data/point_cloud_utils.py +21 -21
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/data/sample_stats.py +6 -6
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Docker_training/docker_in_docker/Dockerfile +1 -2
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Docker_training/siblings_self_contained/Dockerfile +1 -2
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Lightning/ws-classification/main.py +10 -10
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-classification/config.yaml +4 -3
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-classification/main.py +25 -16
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-clustering/face/data.py +47 -47
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-clustering/face/model.py +22 -22
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-clustering/face/signals.py +2 -2
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-clustering/face/utils.py +7 -7
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-clustering/main.py +23 -23
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-detection/main.py +16 -16
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-detection/utils/criterions.py +18 -18
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-detection/utils/data.py +15 -15
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-detection/utils/model.py +11 -11
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-generation/main.py +23 -23
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/config.yaml +2 -1
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/main.py +43 -29
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/utils/criterions.py +9 -9
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/utils/data.py +19 -8
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/utils/model.py +2 -2
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Ultralytics/ws-detection/config.yaml +3 -3
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Ultralytics/ws-detection/main.py +13 -9
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Usecases/ws-2d-lidar-detection/config.yaml +1 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Usecases/ws-2d-lidar-detection/main.py +6 -6
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Usecases/ws-2d-lidar-detection/utils/criterions.py +4 -4
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Usecases/ws-2d-lidar-detection/utils/data.py +8 -8
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Usecases/ws-2d-lidar-detection/utils/model.py +12 -12
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Usecases/ws-3d-lidar-detection/main.py +34 -34
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Usecases/ws-3d-lidar-detection/utils/criterions.py +25 -25
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Usecases/ws-3d-lidar-detection/utils/data.py +47 -47
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Usecases/ws-3d-lidar-detection/utils/kitti_download.py +5 -5
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Usecases/ws-3d-lidar-detection/utils/model.py +28 -28
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/integrations/ultralytics/__init__.py +2 -2
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/integrations/ultralytics/dataset.py +2 -2
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/integrations/ultralytics/signals.py +12 -12
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/integrations/ultralytics/trainer.py +10 -10
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/models/model_with_ops.py +4 -4
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/models/monkey_patcher.py +1 -1
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/modules/modules_with_ops.py +26 -26
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/proto/experiment_service.proto +61 -0
- weightslab-1.3.0/weightslab/proto/experiment_service_pb2.py +194 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/proto/experiment_service_pb2_grpc.py +91 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/security/cert_auth_manager.py +1 -1
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/src.py +116 -129
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/backend/test_compare_dataloaders.py +65 -65
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/backend/test_data_loader_interface.py +65 -65
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/backend/test_instance_signal_logger.py +28 -37
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/backend/test_ledgers.py +57 -3
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/backend/test_logger_core.py +80 -54
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/backend/test_ui_docker_bridge.py +15 -15
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/backend/test_write_dataframe.py +3 -3
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/backend/test_write_history.py +5 -5
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/chaos_monkeys_utests/test_grpc_chaos_monkey_robustness.py +1 -1
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/components/test_checkpoint_workflow.py +63 -63
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/components/test_global_monitoring_unit.py +21 -21
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/data/test_data_samples_with_ops.py +3 -3
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/data/test_dataframe_manager_unit.py +8 -8
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/data/test_flush_pipeline.py +7 -8
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/data/test_h5_array_store.py +1 -2
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/data/test_h5_dataframe_store.py +3 -3
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/data/test_point_cloud_utils.py +15 -15
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/gRPC/test_get_point_cloud.py +39 -1
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/gRPC/test_grpc_tag_operations.py +26 -26
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/gRPC/test_grpc_user_actions.py +53 -11
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/general/test_cli.py +86 -86
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/general/test_signals.py +10 -10
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/general/test_signals_wrapping.py +4 -4
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/integrations/test_pytorch_lightning_integration.py +112 -112
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/integrations/ultralytics/ddp/ddp_ablation.py +13 -13
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/integrations/ultralytics/ddp/ddp_test_suite.py +108 -108
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/model/test_constraint_generation.py +4 -4
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/model/test_dependency_patterns.py +6 -6
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/model/test_model_with_ops.py +1 -1
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/model/test_tracking.py +1 -1
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/modules/test_modules_with_ops.py +18 -18
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/test_secure_docker.py +1 -1
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/trainer/services/test_agent_prompt_unit.py +1 -1
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/trainer/services/test_trainer_services_server.py +1 -1
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/trainer/services/test_trainer_services_unit.py +118 -16
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/watchdog/test_lock_monitor.py +1 -1
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/watchdog/test_watchdog.py +14 -14
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/trainer/experiment_context.py +2 -2
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/trainer/services/agent/agent.py +9 -9
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/trainer/services/agent_service.py +5 -5
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/trainer/services/data_image_utils.py +3 -3
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/trainer/services/data_service.py +503 -204
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/trainer/services/experiment_service.py +246 -14
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/trainer/services/instance_merger.py +6 -6
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/trainer/services/utils/tools.py +1 -1
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/trainer/trainer_services.py +19 -12
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/trainer/trainer_tools.py +19 -19
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/ui/docker/docker-compose.yml +15 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/ui/docker/utils/build-and-deploy.sh +49 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/ui_docker_bridge.py +59 -53
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/utils/computational_graph.py +92 -92
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/utils/logs.py +1 -1
- weightslab-1.3.0/weightslab/utils/telemetry.py +152 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/utils/tools.py +18 -16
- weightslab-1.3.0/weightslab/watchdog/__init__.py +30 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/watchdog/grpc_watchdog.py +2 -2
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/watchdog/lock_monitor.py +7 -7
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/watchdog/log_level.py +1 -1
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/watchdog/watchdog.py +20 -20
- weightslab-1.3.0/weightslab.egg-info/PKG-INFO +393 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab.egg-info/SOURCES.txt +3 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab.egg-info/requires.txt +1 -1
- weightslab-1.3.0/weightslab.egg-info/scm_file_list.json +315 -0
- weightslab-1.3.0/weightslab.egg-info/scm_version.json +8 -0
- weightslab-1.2.6/CHANGELOG.md +0 -1
- weightslab-1.2.6/PKG-INFO +0 -481
- weightslab-1.2.6/README.md +0 -422
- weightslab-1.2.6/weightslab/backend/logger.py +0 -1058
- weightslab-1.2.6/weightslab/proto/experiment_service_pb2.py +0 -180
- weightslab-1.2.6/weightslab/watchdog/__init__.py +0 -30
- weightslab-1.2.6/weightslab.egg-info/PKG-INFO +0 -481
- {weightslab-1.2.6 → weightslab-1.3.0}/.gitattributes +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/.github/workflows/docs-pages.yml +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/.gitignore +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/LICENSE +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/agent_config.yaml +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/docs/_static/.gitkeep +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/docs/_static/custom.css +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/docs/_static/favicon.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/docs/_static/logo-dark.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/docs/_static/logo-light.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/docs/_static/version-switcher.js +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/docs/_static/weights_studio_architecture.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/docs/_templates/.gitkeep +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/docs/conf.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/docs/data_exploration.rst +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/docs/four_way_approach.rst +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/docs/grpc/audit_logger.rst +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/docs/grpc/grpc_functions.rst +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/docs/grpc/index.rst +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/docs/hyperparameters.rst +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/docs/index.rst +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/docs/logger.rst +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/docs/model_interaction.rst +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/docs/pytorch_lightning.rst +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/docs/quickstart.rst +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/docs/requirements.txt +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/docs/segmentation_usecase.rst +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/docs/usecases.rst +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/docs/user_functions.rst +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/setup.cfg +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/backend/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/backend/optimizer_interface.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/baseline_models/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/baseline_models/pytorch/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/components/evaluation_controller.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/data/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Docker_training/README.md +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Docker_training/docker_in_docker/README.md +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Docker_training/docker_in_docker/docker-compose.yml +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Docker_training/docker_in_docker/entrypoint.sh +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Docker_training/siblings_self_contained/README.md +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Docker_training/siblings_self_contained/docker-compose.yml +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Docker_training/siblings_self_contained/entrypoint.sh +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Docker_training/siblings_self_contained/ui-compose.yml +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Lightning/ws-classification/config.yaml +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-clustering/config.yaml +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-clustering/face/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-detection/README.md +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-detection/config.yaml +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-generation/config.yaml +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/images/train/0000f77c-6257be58.jpg +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/images/train/000f8d37-d4c09a0f.jpg +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/images/train/00a0f008-a315437f.jpg +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/images/train/00c12bd0-bb46e479.jpg +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/images/train/00c29c52-f9524f1e.jpg +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/images/train/00ce6f6d-50bbee62.jpg +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/images/train/00d1bafa-1b47b41c.jpg +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/images/train/00d7268f-fd4487be.jpg +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/images/train/00f0dd0f-5e9c9557.jpg +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/images/train/0a0d7f4c-ac5c3c8f.jpg +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/images/train/0a1f4fce-f9cac880.jpg +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/images/train/0a3bb2d8-c195d91e.jpg +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/images/val/b1cac6a7-04e33135.jpg +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/images/val/b1ceb32e-3f481b43.jpg +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/images/val/b1d10d08-5b108225.jpg +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/images/val/b1d22449-15fb948f.jpg +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/images/val/b1d7b3ac-5af8623b.jpg +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/images/val/b1dce572-c6a8cb5e.jpg +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/images/val/b1e1a7b8-0aec80e8.jpg +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/images/val/b1e8ad72-c3c79240.jpg +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/images/val/b1ee702d-0ae1fc10.jpg +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/images/val/b1f0efd9-37a14dda.jpg +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/images/val/b2a0648b-d8e126bc.jpg +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/images/val/b2b70230-bad4ff6e.jpg +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/labels/train/0000f77c-6257be58.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/labels/train/000f8d37-d4c09a0f.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/labels/train/00a0f008-a315437f.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/labels/train/00c12bd0-bb46e479.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/labels/train/00c29c52-f9524f1e.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/labels/train/00ce6f6d-50bbee62.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/labels/train/00d1bafa-1b47b41c.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/labels/train/00d7268f-fd4487be.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/labels/train/00f0dd0f-5e9c9557.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/labels/train/0a0d7f4c-ac5c3c8f.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/labels/train/0a1f4fce-f9cac880.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/labels/train/0a3bb2d8-c195d91e.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/labels/val/b1cac6a7-04e33135.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/labels/val/b1ceb32e-3f481b43.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/labels/val/b1d10d08-5b108225.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/labels/val/b1d22449-15fb948f.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/labels/val/b1d7b3ac-5af8623b.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/labels/val/b1dce572-c6a8cb5e.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/labels/val/b1e1a7b8-0aec80e8.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/labels/val/b1e8ad72-c3c79240.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/labels/val/b1ee702d-0ae1fc10.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/labels/val/b1f0efd9-37a14dda.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/labels/val/b2a0648b-d8e126bc.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/PyTorch/ws-segmentation/BDD_subset/labels/val/b2b70230-bad4ff6e.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Ultralytics/ws-detection/requirements.txt +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Usecases/ws-2d-lidar-detection/README.md +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Usecases/ws-3d-lidar-detection/README.md +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/examples/Usecases/ws-3d-lidar-detection/config.yaml +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/integrations/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/integrations/ultralytics/README.md +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/integrations/ultralytics/_utils.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/integrations/ultralytics/collate.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/models/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/modules/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/modules/neuron_ops.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/proto/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/security/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/backend/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/backend/test_audit_logger.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/backend/test_cli_additional_unit.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/backend/test_model_interface_unit.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/backend/test_optimizer_interface.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/backend/test_optimizer_interface_additional_unit.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/chaos_monkeys_utests/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/components/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/components/test_experiment_hash_and_art.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/data/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/data/test_data_service_metadata_copy.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/data/test_data_utils_unit.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/gRPC/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/general/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/general/test_auditor_mode.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/general/test_hyperparams.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/general/test_logger_snapshot_rotation.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/integrations/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/model/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/model/test_logger.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/model/test_model_with_ops_unit.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/modules/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/test_src_functions.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/trainer/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/trainer/services/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/trainer/services/test_agent_service_unit.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/trainer/test_trainer_tools.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/utils/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/utils/test_computational_graph_utils_unit.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/utils/test_logs_unit.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/utils/test_modules_dependencies_unit.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/utils/test_plot_graph_render_unit.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/utils/test_plot_graph_unit.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/utils/test_shape_prop_unit.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/utils/test_utils_tools_unit.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/tests/watchdog/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/trainer/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/trainer/services/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/trainer/services/agent/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/trainer/services/agent/agent_overview/agent.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/trainer/services/agent/agent_overview/query_example.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/trainer/services/agent/agent_overview/schema.png +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/trainer/services/agent/intent_prompt.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/trainer/services/model_service.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/trainer/services/utils/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/ui/Dockerfile +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/ui/docker/.dockerignore +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/ui/docker/.env.example +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/ui/docker/DEPLOYMENT.md +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/ui/docker/nginx-entrypoint.sh +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/ui/docker/nginx.base-path.conf copy.template +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/ui/docker/nginx.base-path.conf.template +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/ui/docker/nginx.conf +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/ui/docker/test-deployment.sh +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/ui/docker/utils/generate-certs-auth-token.ps1 +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/ui/docker/utils/generate-certs-auth-token.sh +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/ui/docker/utils/test-deployment.sh +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/ui/envoy/envoy.downstream_plaintext.yaml +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/ui/envoy/envoy.downstream_upstream_plaintext.yaml +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/ui/envoy/envoy.upstream_plaintext.yaml +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/ui/envoy/envoy.yaml +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/ui/nginx.conf +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/utils/__init__.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/utils/modules_dependencies.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/utils/plot_graph.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab/utils/shape_prop.py +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab.egg-info/dependency_links.txt +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab.egg-info/entry_points.txt +0 -0
- {weightslab-1.2.6 → weightslab-1.3.0}/weightslab.egg-info/top_level.txt +0 -0
|
@@ -9,7 +9,7 @@ on:
|
|
|
9
9
|
branches: [ '**' ]
|
|
10
10
|
tags: [ 'v*' ]
|
|
11
11
|
pull_request:
|
|
12
|
-
types: [ opened, reopened, ready_for_review ]
|
|
12
|
+
types: [ opened, reopened, ready_for_review, synchronize ]
|
|
13
13
|
workflow_dispatch:
|
|
14
14
|
|
|
15
15
|
jobs:
|
|
@@ -32,8 +32,8 @@ jobs:
|
|
|
32
32
|
run_ci=true # PRs and manual dispatch always run
|
|
33
33
|
elif [[ "${{ github.ref }}" == refs/tags/* ]]; then
|
|
34
34
|
run_ci=false # tag pushes are handled by the release workflow
|
|
35
|
-
elif [ "${{ github.ref }}" = "refs/heads/main" ] || [ "${{ github.ref }}" = "refs/heads/dev" ]; then
|
|
36
|
-
run_ci=true # default branches always run
|
|
35
|
+
elif [ "${{ github.ref }}" = "refs/heads/main" ] || [ "${{ github.ref }}" = "refs/heads/dev" ] || [[ "${{ github.ref }}" == refs/heads/v* ]]; then
|
|
36
|
+
run_ci=true # default branches and release branches (v*) always run
|
|
37
37
|
elif [ "${FORCE_CI}" = "true" ]; then
|
|
38
38
|
run_ci=true # custom branch opted in via [force ci]
|
|
39
39
|
else
|
|
@@ -57,7 +57,7 @@ jobs:
|
|
|
57
57
|
|
|
58
58
|
- name: Set up Python
|
|
59
59
|
id: setup-python
|
|
60
|
-
uses: actions/setup-python@
|
|
60
|
+
uses: actions/setup-python@v6
|
|
61
61
|
with:
|
|
62
62
|
python-version: '3.11'
|
|
63
63
|
|
|
@@ -141,7 +141,7 @@ jobs:
|
|
|
141
141
|
uses: actions/checkout@v4
|
|
142
142
|
|
|
143
143
|
- name: Set up Python 3.11
|
|
144
|
-
uses: actions/setup-python@
|
|
144
|
+
uses: actions/setup-python@v6
|
|
145
145
|
with:
|
|
146
146
|
python-version: '3.11'
|
|
147
147
|
|
|
@@ -179,7 +179,7 @@ jobs:
|
|
|
179
179
|
uses: actions/checkout@v4
|
|
180
180
|
|
|
181
181
|
- name: Set up Python ${{ matrix.python-version }}
|
|
182
|
-
uses: actions/setup-python@
|
|
182
|
+
uses: actions/setup-python@v6
|
|
183
183
|
with:
|
|
184
184
|
python-version: ${{ matrix.python-version }}
|
|
185
185
|
allow-prereleases: ${{ matrix.allow-prereleases || false }}
|
|
@@ -204,7 +204,7 @@ jobs:
|
|
|
204
204
|
uses: actions/checkout@v4
|
|
205
205
|
|
|
206
206
|
- name: Set up Python
|
|
207
|
-
uses: actions/setup-python@
|
|
207
|
+
uses: actions/setup-python@v6
|
|
208
208
|
with:
|
|
209
209
|
python-version: '3.11'
|
|
210
210
|
|
|
@@ -223,25 +223,6 @@ jobs:
|
|
|
223
223
|
# A per-test timeout guards against any regression that hangs a test.
|
|
224
224
|
python -m pytest ./weightslab/tests -v --timeout=300
|
|
225
225
|
|
|
226
|
-
# TODO (GP): WL CI do not find WS CI for now; token or visibility problem ??
|
|
227
|
-
# - name: Trigger WeightsStudio CI
|
|
228
|
-
# env:
|
|
229
|
-
# WS_TOKEN: ${{ secrets.WEIGHTS_STUDIO_API_TOKEN }}
|
|
230
|
-
# run: |
|
|
231
|
-
# if [ -z "${WS_TOKEN}" ]; then
|
|
232
|
-
# echo "WEIGHTS_STUDIO_API_TOKEN not set; skipping WeightsStudio trigger."
|
|
233
|
-
# exit 0
|
|
234
|
-
# fi
|
|
235
|
-
|
|
236
|
-
# # Trigger the ws-ci workflow in the weights_studio repository on main.
|
|
237
|
-
# curl -fSs -X POST "https://api.github.com/repos/GrayboxTech/weights_studio/actions/workflows/ws-ci.yml/dispatches" \
|
|
238
|
-
# -H "Authorization: Bearer ${WS_TOKEN}" \
|
|
239
|
-
# -H "Accept: application/vnd.github+json" \
|
|
240
|
-
# -H "Content-Type: application/json" \
|
|
241
|
-
# -d '{"ref":"main"}'
|
|
242
|
-
|
|
243
|
-
# echo "WeightsStudio workflow dispatch requested successfully."
|
|
244
|
-
|
|
245
226
|
build-and-publish-dev:
|
|
246
227
|
# Only publish to TestPyPI when pushing to main (not on PRs or dev branch pushes).
|
|
247
228
|
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
|
|
@@ -259,7 +240,7 @@ jobs:
|
|
|
259
240
|
fetch-depth: 0
|
|
260
241
|
|
|
261
242
|
- name: Set up Python
|
|
262
|
-
uses: actions/setup-python@
|
|
243
|
+
uses: actions/setup-python@v6
|
|
263
244
|
with:
|
|
264
245
|
python-version: '3.11'
|
|
265
246
|
|
|
@@ -351,7 +332,7 @@ jobs:
|
|
|
351
332
|
contents: read
|
|
352
333
|
steps:
|
|
353
334
|
- name: Set up Python ${{ matrix.python-version }}
|
|
354
|
-
uses: actions/setup-python@
|
|
335
|
+
uses: actions/setup-python@v6
|
|
355
336
|
with:
|
|
356
337
|
python-version: ${{ matrix.python-version }}
|
|
357
338
|
allow-prereleases: ${{ matrix.allow-prereleases || false }}
|
|
@@ -40,20 +40,25 @@ jobs:
|
|
|
40
40
|
steps:
|
|
41
41
|
- uses: actions/checkout@v4
|
|
42
42
|
|
|
43
|
-
- uses: actions/setup-python@
|
|
43
|
+
- uses: actions/setup-python@v6
|
|
44
44
|
with:
|
|
45
45
|
python-version: '3.11'
|
|
46
46
|
|
|
47
47
|
- name: Install dependencies
|
|
48
48
|
run: |
|
|
49
49
|
python -m pip install --upgrade pip
|
|
50
|
-
|
|
50
|
+
# Install the test extra so pytest, graphviz, torchmetrics,
|
|
51
|
+
# pytorch-lightning and tensorboard are available (several test modules
|
|
52
|
+
# import pytest / use pytest fixtures and cannot run under bare unittest).
|
|
53
|
+
python -m pip install .[utest] --extra-index-url https://download.pytorch.org/whl/cpu
|
|
54
|
+
python -m pip install pytest-timeout
|
|
51
55
|
|
|
52
56
|
- name: Run tests
|
|
53
57
|
run: |
|
|
54
58
|
export WEIGHTSLAB_LOG_LEVEL="DEBUG"
|
|
55
59
|
python -m pip install pytorch_lightning
|
|
56
|
-
python -m unittest discover -s ./weightslab/tests -p "test_*.py" -t . -v
|
|
60
|
+
# python -m unittest discover -s ./weightslab/tests -p "test_*.py" -t . -v
|
|
61
|
+
python -m pytest ./weightslab/tests -v --timeout=300
|
|
57
62
|
|
|
58
63
|
# ═══════════════════════════════════════════════════════════════════════════
|
|
59
64
|
# DEV RELEASE — tag on dev branch, not yet merged to main
|
|
@@ -74,7 +79,7 @@ jobs:
|
|
|
74
79
|
with:
|
|
75
80
|
fetch-depth: 0
|
|
76
81
|
|
|
77
|
-
- uses: actions/setup-python@
|
|
82
|
+
- uses: actions/setup-python@v6
|
|
78
83
|
with:
|
|
79
84
|
python-version: '3.11'
|
|
80
85
|
|
|
@@ -108,7 +113,7 @@ jobs:
|
|
|
108
113
|
python -m twine upload --repository-url https://test.pypi.org/legacy/ --verbose dist/*
|
|
109
114
|
|
|
110
115
|
- name: Upload build artifacts for release
|
|
111
|
-
uses: actions/upload-artifact@
|
|
116
|
+
uses: actions/upload-artifact@v6
|
|
112
117
|
with:
|
|
113
118
|
name: dev-release-dist
|
|
114
119
|
path: dist/
|
|
@@ -133,7 +138,7 @@ jobs:
|
|
|
133
138
|
permissions:
|
|
134
139
|
contents: read
|
|
135
140
|
steps:
|
|
136
|
-
- uses: actions/setup-python@
|
|
141
|
+
- uses: actions/setup-python@v6
|
|
137
142
|
with:
|
|
138
143
|
python-version: ${{ matrix.python-version }}
|
|
139
144
|
allow-prereleases: ${{ matrix.allow-prereleases || false }}
|
|
@@ -195,7 +200,7 @@ jobs:
|
|
|
195
200
|
fetch-depth: 0
|
|
196
201
|
|
|
197
202
|
- name: Download build artifacts
|
|
198
|
-
uses: actions/download-artifact@
|
|
203
|
+
uses: actions/download-artifact@v7
|
|
199
204
|
with:
|
|
200
205
|
name: dev-release-dist
|
|
201
206
|
path: dist/
|
|
@@ -226,7 +231,7 @@ jobs:
|
|
|
226
231
|
|
|
227
232
|
export PRS_JSON
|
|
228
233
|
PRS_JSON=$(gh pr list --state merged --base "dev" --limit 100 \
|
|
229
|
-
--json number,title,mergedAt,url,author,body \
|
|
234
|
+
--json number,title,mergedAt,url,author,body,commits \
|
|
230
235
|
2>/dev/null || echo "[]")
|
|
231
236
|
|
|
232
237
|
python3 << 'PYEOF'
|
|
@@ -249,6 +254,29 @@ jobs:
|
|
|
249
254
|
line += f"\n\n > {desc}"
|
|
250
255
|
return line
|
|
251
256
|
filtered = [pr for pr in prs_data if pr.get("mergedAt", "") > prev_date]
|
|
257
|
+
# "What's Changed precisely": list each merged PR's own developer commits,
|
|
258
|
+
# NOT the squashed/merge/chore commits that land on the release branch
|
|
259
|
+
# (those are redundant with the PR list above and not useful).
|
|
260
|
+
_seen_commits = set()
|
|
261
|
+
_commit_blocks = []
|
|
262
|
+
for pr in filtered:
|
|
263
|
+
_commit_lines = []
|
|
264
|
+
for c in (pr.get("commits") or []):
|
|
265
|
+
oid = (c.get("oid") or "")[:7]
|
|
266
|
+
head = (c.get("messageHeadline") or "").strip()
|
|
267
|
+
if not head or head.startswith("Merge "):
|
|
268
|
+
continue
|
|
269
|
+
key = (oid, head)
|
|
270
|
+
if key in _seen_commits:
|
|
271
|
+
continue
|
|
272
|
+
_seen_commits.add(key)
|
|
273
|
+
_commit_lines.append(f" - `{oid}` {head}")
|
|
274
|
+
if _commit_lines:
|
|
275
|
+
_commit_blocks.append(
|
|
276
|
+
f"**[#{pr['number']}]({pr['url']}) {pr['title']}**\n" + "\n".join(_commit_lines)
|
|
277
|
+
)
|
|
278
|
+
# Fall back to the raw git log only when no PR commits are available.
|
|
279
|
+
commits_section = "\n\n".join(_commit_blocks) if _commit_blocks else commits
|
|
252
280
|
if filtered:
|
|
253
281
|
prs_lines = "\n".join(_pr_entry(pr) for pr in filtered)
|
|
254
282
|
seen, clabels = set(), []
|
|
@@ -276,7 +304,7 @@ jobs:
|
|
|
276
304
|
"Happy Training!\n\n"
|
|
277
305
|
"---\n\n"
|
|
278
306
|
"### What's Changed precisely:\n\n"
|
|
279
|
-
f"{
|
|
307
|
+
f"{commits_section}\n\n"
|
|
280
308
|
"---\n\n"
|
|
281
309
|
"### Thank you!\n\n"
|
|
282
310
|
f"{contributors}\n"
|
|
@@ -303,7 +331,8 @@ jobs:
|
|
|
303
331
|
|
|
304
332
|
build-and-publish-main:
|
|
305
333
|
name: Build & Publish Main (PyPI)
|
|
306
|
-
needs: [detect-target]
|
|
334
|
+
needs: [detect-target,test]
|
|
335
|
+
# needs: [detect-target]
|
|
307
336
|
runs-on: ubuntu-latest
|
|
308
337
|
if: ${{ needs.detect-target.outputs.is_main == 'true' }}
|
|
309
338
|
permissions:
|
|
@@ -315,7 +344,7 @@ jobs:
|
|
|
315
344
|
with:
|
|
316
345
|
fetch-depth: 0
|
|
317
346
|
|
|
318
|
-
- uses: actions/setup-python@
|
|
347
|
+
- uses: actions/setup-python@v6
|
|
319
348
|
with:
|
|
320
349
|
python-version: '3.11'
|
|
321
350
|
|
|
@@ -349,7 +378,7 @@ jobs:
|
|
|
349
378
|
python -m twine upload dist/* --non-interactive --verbose
|
|
350
379
|
|
|
351
380
|
- name: Upload build artifacts for release
|
|
352
|
-
uses: actions/upload-artifact@
|
|
381
|
+
uses: actions/upload-artifact@v6
|
|
353
382
|
with:
|
|
354
383
|
name: main-release-dist
|
|
355
384
|
path: dist/
|
|
@@ -367,7 +396,7 @@ jobs:
|
|
|
367
396
|
permissions:
|
|
368
397
|
contents: read
|
|
369
398
|
steps:
|
|
370
|
-
- uses: actions/setup-python@
|
|
399
|
+
- uses: actions/setup-python@v6
|
|
371
400
|
with:
|
|
372
401
|
python-version: ${{ matrix.python-version }}
|
|
373
402
|
|
|
@@ -427,7 +456,7 @@ jobs:
|
|
|
427
456
|
fetch-depth: 0
|
|
428
457
|
|
|
429
458
|
- name: Download build artifacts
|
|
430
|
-
uses: actions/download-artifact@
|
|
459
|
+
uses: actions/download-artifact@v7
|
|
431
460
|
with:
|
|
432
461
|
name: main-release-dist
|
|
433
462
|
path: dist/
|
|
@@ -458,7 +487,7 @@ jobs:
|
|
|
458
487
|
|
|
459
488
|
export PRS_JSON
|
|
460
489
|
PRS_JSON=$(gh pr list --state merged --base "main" --limit 100 \
|
|
461
|
-
--json number,title,mergedAt,url,author,body \
|
|
490
|
+
--json number,title,mergedAt,url,author,body,commits \
|
|
462
491
|
2>/dev/null || echo "[]")
|
|
463
492
|
|
|
464
493
|
python3 << 'PYEOF'
|
|
@@ -481,6 +510,29 @@ jobs:
|
|
|
481
510
|
line += f"\n\n > {desc}"
|
|
482
511
|
return line
|
|
483
512
|
filtered = [pr for pr in prs_data if pr.get("mergedAt", "") > prev_date]
|
|
513
|
+
# "What's Changed precisely": list each merged PR's own developer commits,
|
|
514
|
+
# NOT the squashed/merge/chore commits that land on the release branch
|
|
515
|
+
# (those are redundant with the PR list above and not useful).
|
|
516
|
+
_seen_commits = set()
|
|
517
|
+
_commit_blocks = []
|
|
518
|
+
for pr in filtered:
|
|
519
|
+
_commit_lines = []
|
|
520
|
+
for c in (pr.get("commits") or []):
|
|
521
|
+
oid = (c.get("oid") or "")[:7]
|
|
522
|
+
head = (c.get("messageHeadline") or "").strip()
|
|
523
|
+
if not head or head.startswith("Merge "):
|
|
524
|
+
continue
|
|
525
|
+
key = (oid, head)
|
|
526
|
+
if key in _seen_commits:
|
|
527
|
+
continue
|
|
528
|
+
_seen_commits.add(key)
|
|
529
|
+
_commit_lines.append(f" - `{oid}` {head}")
|
|
530
|
+
if _commit_lines:
|
|
531
|
+
_commit_blocks.append(
|
|
532
|
+
f"**[#{pr['number']}]({pr['url']}) {pr['title']}**\n" + "\n".join(_commit_lines)
|
|
533
|
+
)
|
|
534
|
+
# Fall back to the raw git log only when no PR commits are available.
|
|
535
|
+
commits_section = "\n\n".join(_commit_blocks) if _commit_blocks else commits
|
|
484
536
|
if filtered:
|
|
485
537
|
prs_lines = "\n".join(_pr_entry(pr) for pr in filtered)
|
|
486
538
|
seen, clabels = set(), []
|
|
@@ -508,7 +560,7 @@ jobs:
|
|
|
508
560
|
"Happy Training!\n\n"
|
|
509
561
|
"---\n\n"
|
|
510
562
|
"### What's Changed precisely:\n\n"
|
|
511
|
-
f"{
|
|
563
|
+
f"{commits_section}\n\n"
|
|
512
564
|
"---\n\n"
|
|
513
565
|
"### Thank you!\n\n"
|
|
514
566
|
f"{contributors}\n"
|
|
@@ -155,11 +155,18 @@ ones when debugging:
|
|
|
155
155
|
| `WS_HISTOGRAM_MAX_BINS` | `512` | Cap on metadata histogram bars. |
|
|
156
156
|
| `BB_THUMB_RENDER` | `10` | Max bounding boxes drawn per **thumbnail**, per overlay (GT and PRED capped independently). |
|
|
157
157
|
| `BB_MODAL_RENDER` | `100` | Max bounding boxes drawn per **modal** image, per overlay. A `?` button in the modal shows the active limit. |
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
158
|
+
| `ENABLE_PLOTS` | `1` | `0`/`false` removes the plots board + Signals card and stops plot auto-refresh. |
|
|
159
|
+
| `ENABLE_DATA_EXPLORATION` | `1` | `0`/`false` removes the data grid + metadata/details panel and stops the data/metadata auto-refresh. |
|
|
160
|
+
| `ENABLE_HYPERPARAMETERS_OPTIMIZATION` | `1` | `0`/`false` removes the Hyperparameters section, makes HP inputs read-only, and stops the HP poll. |
|
|
161
|
+
| `ENABLE_AGENT` | `1` | `0`/`false` removes the agent chat bar + history panel and stops the agent health poll. |
|
|
162
|
+
|
|
163
|
+
> **VITE_ vs WS_/BB_/ENABLE_:** `VITE_*` variables are baked at **build time**
|
|
164
|
+
> (changing them needs a rebuild). `WS_*` / `BB_*` / `ENABLE_*` are injected at
|
|
165
|
+
> **container start** into `config.js` and read as `window.*` globals (the
|
|
166
|
+
> toggles as `window.WS_ENABLE_*`) — changing them needs only a container restart
|
|
167
|
+
> + browser reload (see the caching note in §5). Each `ENABLE_*` defaults to on;
|
|
168
|
+
> set it to `0`/`false`/`no`/`off` to disable. Full reference:
|
|
169
|
+
> `weightslab/docs/configuration.rst` (“Feature toggles”).
|
|
163
170
|
|
|
164
171
|
---
|
|
165
172
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Changelog - 2026-06-26 v1.3.0 (1)
|