autogluon.tabular 1.2.1b20250430__tar.gz → 1.3.0b20250501__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.
Potentially problematic release.
This version of autogluon.tabular might be problematic. Click here for more details.
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/PKG-INFO +1 -1
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/configs/config_helper.py +2 -2
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/lgb/callbacks.py +12 -2
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/lgb/lgb_model.py +12 -2
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/predictor/predictor.py +2 -2
- autogluon.tabular-1.3.0b20250501/src/autogluon/tabular/registry/__init__.py +2 -0
- autogluon.tabular-1.2.1b20250430/src/autogluon/tabular/register/_ag_model_register.py → autogluon.tabular-1.3.0b20250501/src/autogluon/tabular/registry/_ag_model_registry.py +3 -3
- autogluon.tabular-1.2.1b20250430/src/autogluon/tabular/register/_model_register.py → autogluon.tabular-1.3.0b20250501/src/autogluon/tabular/registry/_model_registry.py +6 -6
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/trainer/auto_trainer.py +2 -2
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/trainer/model_presets/presets.py +6 -6
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/version.py +1 -1
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon.tabular.egg-info/PKG-INFO +1 -1
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon.tabular.egg-info/SOURCES.txt +3 -3
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon.tabular.egg-info/requires.txt +10 -10
- autogluon.tabular-1.2.1b20250430/src/autogluon/tabular/register/__init__.py +0 -2
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/setup.cfg +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/setup.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/configs/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/configs/feature_generator_presets.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/configs/hyperparameter_configs.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/configs/presets_configs.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/configs/zeroshot/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/configs/zeroshot/zeroshot_portfolio_2023.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/experimental/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/experimental/_scikit_mixin.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/experimental/_tabular_classifier.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/experimental/_tabular_regressor.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/experimental/plot_leaderboard.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/learner/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/learner/abstract_learner.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/learner/default_learner.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/_utils/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/_utils/rapids_utils.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/_utils/torch_utils.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/automm/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/automm/automm_model.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/automm/ft_transformer.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/catboost/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/catboost/callbacks.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/catboost/catboost_model.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/catboost/catboost_softclass_utils.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/catboost/catboost_utils.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/catboost/hyperparameters/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/catboost/hyperparameters/parameters.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/catboost/hyperparameters/searchspaces.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/fastainn/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/fastainn/callbacks.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/fastainn/fastai_helpers.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/fastainn/hyperparameters/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/fastainn/hyperparameters/parameters.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/fastainn/hyperparameters/searchspaces.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/fastainn/imports_helper.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/fastainn/quantile_helpers.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/fastainn/tabular_nn_fastai.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/fasttext/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/fasttext/fasttext_model.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/fasttext/hyperparameters/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/fasttext/hyperparameters/parameters.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/image_prediction/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/image_prediction/image_predictor.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/imodels/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/imodels/imodels_models.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/knn/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/knn/_knn_loo_variants.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/knn/knn_model.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/knn/knn_rapids_model.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/knn/knn_utils.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/lgb/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/lgb/hyperparameters/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/lgb/hyperparameters/parameters.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/lgb/hyperparameters/searchspaces.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/lgb/lgb_utils.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/lr/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/lr/hyperparameters/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/lr/hyperparameters/parameters.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/lr/hyperparameters/searchspaces.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/lr/lr_model.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/lr/lr_preprocessing_utils.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/lr/lr_rapids_model.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/rf/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/rf/compilers/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/rf/compilers/native.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/rf/compilers/onnx.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/rf/rf_model.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/rf/rf_quantile.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/rf/rf_rapids_model.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfn/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfn/tabpfn_model.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfnmix/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfnmix/_internal/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfnmix/_internal/config/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfnmix/_internal/config/config_run.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfnmix/_internal/core/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfnmix/_internal/core/callbacks.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfnmix/_internal/core/collator.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfnmix/_internal/core/dataset_split.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfnmix/_internal/core/enums.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfnmix/_internal/core/get_loss.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfnmix/_internal/core/get_optimizer.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfnmix/_internal/core/get_scheduler.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfnmix/_internal/core/trainer_finetune.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfnmix/_internal/core/y_transformer.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfnmix/_internal/data/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfnmix/_internal/data/dataset_finetune.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfnmix/_internal/data/preprocessor.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfnmix/_internal/models/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfnmix/_internal/models/foundation/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfnmix/_internal/models/foundation/embedding.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfnmix/_internal/models/foundation/foundation_transformer.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfnmix/_internal/results/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfnmix/_internal/results/prediction_metrics.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfnmix/_internal/tabpfnmix_classifier.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfnmix/_internal/tabpfnmix_regressor.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabpfnmix/tabpfnmix_model.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabular_nn/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabular_nn/compilers/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabular_nn/compilers/native.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabular_nn/compilers/onnx.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabular_nn/hyperparameters/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabular_nn/hyperparameters/parameters.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabular_nn/hyperparameters/searchspaces.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabular_nn/torch/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabular_nn/torch/tabular_nn_torch.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabular_nn/torch/tabular_torch_dataset.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabular_nn/torch/torch_network_modules.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabular_nn/utils/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabular_nn/utils/categorical_encoders.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabular_nn/utils/data_preprocessor.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/tabular_nn/utils/nn_architecture_utils.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/text_prediction/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/text_prediction/text_prediction_v1_model.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/xgboost/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/xgboost/callbacks.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/xgboost/hyperparameters/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/xgboost/hyperparameters/parameters.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/xgboost/hyperparameters/searchspaces.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/xgboost/xgboost_model.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/xgboost/xgboost_utils.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/xt/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/models/xt/xt_model.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/predictor/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/predictor/interpretable_predictor.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/testing/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/testing/fit_helper.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/testing/generate_datasets.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/testing/model_fit_helper.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/trainer/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/trainer/abstract_trainer.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/trainer/model_presets/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/trainer/model_presets/presets_distill.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/tuning/__init__.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon/tabular/tuning/feature_pruner.py +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon.tabular.egg-info/dependency_links.txt +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon.tabular.egg-info/namespace_packages.txt +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon.tabular.egg-info/top_level.txt +0 -0
- {autogluon.tabular-1.2.1b20250430 → autogluon.tabular-1.3.0b20250501}/src/autogluon.tabular.egg-info/zip-safe +0 -0
|
@@ -9,7 +9,7 @@ from autogluon.core.scheduler import scheduler_factory
|
|
|
9
9
|
from autogluon.features import AutoMLPipelineFeatureGenerator
|
|
10
10
|
from autogluon.tabular.configs.hyperparameter_configs import hyperparameter_config_dict
|
|
11
11
|
from autogluon.tabular.configs.presets_configs import tabular_presets_dict
|
|
12
|
-
from autogluon.tabular.
|
|
12
|
+
from autogluon.tabular.registry import ag_model_registry
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
class FeatureGeneratorBuilder:
|
|
@@ -108,7 +108,7 @@ class ConfigBuilder:
|
|
|
108
108
|
self.config = {}
|
|
109
109
|
|
|
110
110
|
def _valid_keys(self):
|
|
111
|
-
valid_keys = [m for m in
|
|
111
|
+
valid_keys = [m for m in ag_model_registry.keys if m not in ["ENS_WEIGHTED", "SIMPLE_ENS_WEIGHTED"]]
|
|
112
112
|
return valid_keys
|
|
113
113
|
|
|
114
114
|
def presets(self, presets: Union[str, list, dict]) -> ConfigBuilder:
|
|
@@ -133,13 +133,23 @@ def early_stopping_custom(
|
|
|
133
133
|
estimated_model_size_mb = (cur_rss - init_mem_rss[0]) >> 20
|
|
134
134
|
available_mb = available >> 20
|
|
135
135
|
|
|
136
|
-
|
|
136
|
+
if available_mb != 0:
|
|
137
|
+
model_size_memory_ratio = estimated_model_size_mb / available_mb
|
|
138
|
+
else:
|
|
139
|
+
model_size_memory_ratio = 100
|
|
140
|
+
|
|
137
141
|
if verbose or (model_size_memory_ratio > 0.25):
|
|
138
142
|
logger.debug("Available Memory: " + str(available_mb) + " MB")
|
|
139
143
|
logger.debug("Estimated Model Size: " + str(estimated_model_size_mb) + " MB")
|
|
140
144
|
|
|
141
145
|
early_stop = False
|
|
142
|
-
|
|
146
|
+
# FIXME: during parallel fits, model only knows its own memory usage and the overall system memory.
|
|
147
|
+
# Because memory usage can spike during saving, OOM can occur if many models finish at the same time and spike in memory at the same time during save.
|
|
148
|
+
# To fix this, we need to provide the per-model memory limit as a constraint passed to this method,
|
|
149
|
+
# so that we can ensure a given model isn't exceeding its portion of the memory budget.
|
|
150
|
+
# Ditto for XGBoost and CatBoost (ex: "kropt" dataset with 8-fold bagging and 32 GB memory. Fits 10k iterations on all 8 folds, then goes OOM)
|
|
151
|
+
# We also need to estimate the peak memory usage given the estimated_model_size_mb if we were to save. Otherwise we will go OOM during save anyways.
|
|
152
|
+
if model_size_memory_ratio > 0.66:
|
|
143
153
|
logger.warning("Warning: Large GBM model size may cause OOM error if training continues")
|
|
144
154
|
logger.warning("Available Memory: " + str(available_mb) + " MB")
|
|
145
155
|
logger.warning("Estimated GBM model size: " + str(estimated_model_size_mb) + " MB")
|
|
@@ -91,12 +91,15 @@ class LGBModel(AbstractModel):
|
|
|
91
91
|
"""
|
|
92
92
|
Returns the expected peak memory usage in bytes of the LightGBM model during fit.
|
|
93
93
|
|
|
94
|
-
The memory usage of LightGBM is primarily made up of
|
|
94
|
+
The memory usage of LightGBM is primarily made up of three sources:
|
|
95
95
|
|
|
96
96
|
1. The size of the data
|
|
97
97
|
2. The size of the histogram cache
|
|
98
98
|
Scales roughly by 5100*num_features*num_leaves bytes
|
|
99
99
|
For 10000 features and 128 num_leaves, the histogram would be 6.5 GB.
|
|
100
|
+
3. The size of the model
|
|
101
|
+
Scales linearly with the number of estimators, number of classes, and number of leaves.
|
|
102
|
+
Memory usage peaks during model saving, with the peak consuming approximately 2-4x the size of the model in memory.
|
|
100
103
|
"""
|
|
101
104
|
if hyperparameters is None:
|
|
102
105
|
hyperparameters = {}
|
|
@@ -104,6 +107,8 @@ class LGBModel(AbstractModel):
|
|
|
104
107
|
data_mem_usage = get_approximate_df_mem_usage(X).sum()
|
|
105
108
|
data_mem_usage_bytes = data_mem_usage * 5 + data_mem_usage / 4 * num_classes # TODO: Extremely crude approximation, can be vastly improved
|
|
106
109
|
|
|
110
|
+
n_trees_per_estimator = num_classes if num_classes > 2 else 1
|
|
111
|
+
|
|
107
112
|
max_bins = hyperparameters.get("max_bins", 255)
|
|
108
113
|
num_leaves = hyperparameters.get("num_leaves", 31)
|
|
109
114
|
# Memory usage of histogram based on https://github.com/microsoft/LightGBM/issues/562#issuecomment-304524592
|
|
@@ -115,7 +120,12 @@ class LGBModel(AbstractModel):
|
|
|
115
120
|
histogram_mem_usage_bytes = histogram_mem_usage_bytes_max
|
|
116
121
|
histogram_mem_usage_bytes *= 1.2 # Add a 20% buffer
|
|
117
122
|
|
|
118
|
-
|
|
123
|
+
mem_size_per_estimator = n_trees_per_estimator * num_leaves * 100 # very rough estimate
|
|
124
|
+
n_estimators = hyperparameters.get("num_boost_round", DEFAULT_NUM_BOOST_ROUND)
|
|
125
|
+
n_estimators_min = min(n_estimators, 1000)
|
|
126
|
+
mem_size_estimators = n_estimators_min * mem_size_per_estimator # memory estimate after fitting up to 1000 estimators
|
|
127
|
+
|
|
128
|
+
approx_mem_size_req = data_mem_usage_bytes + histogram_mem_usage_bytes + mem_size_estimators
|
|
119
129
|
return approx_mem_size_req
|
|
120
130
|
|
|
121
131
|
def _fit(self, X, y, X_val=None, y_val=None, time_limit=None, num_gpus=0, num_cpus=0, sample_weight=None, sample_weight_val=None, verbosity=2, **kwargs):
|
|
@@ -55,7 +55,7 @@ from ..configs.hyperparameter_configs import get_hyperparameter_config
|
|
|
55
55
|
from ..configs.presets_configs import tabular_presets_alias, tabular_presets_dict
|
|
56
56
|
from ..learner import AbstractTabularLearner, DefaultLearner
|
|
57
57
|
from ..trainer.abstract_trainer import AbstractTabularTrainer
|
|
58
|
-
from ..
|
|
58
|
+
from ..registry import ag_model_registry
|
|
59
59
|
from ..version import __version__
|
|
60
60
|
|
|
61
61
|
logger = logging.getLogger(__name__) # return autogluon root logger
|
|
@@ -5672,7 +5672,7 @@ class TabularPredictor:
|
|
|
5672
5672
|
for key in hyperparameters:
|
|
5673
5673
|
models_in_hyperparameters.add(key)
|
|
5674
5674
|
models_in_hyperparameters_raw_text_compatible = []
|
|
5675
|
-
model_key_to_cls_map =
|
|
5675
|
+
model_key_to_cls_map = ag_model_registry.key_to_cls_map()
|
|
5676
5676
|
for m in models_in_hyperparameters:
|
|
5677
5677
|
if isinstance(m, str):
|
|
5678
5678
|
# TODO: Technically the use of MODEL_TYPES here is a hack since we should derive valid types from trainer,
|
|
@@ -4,7 +4,7 @@ from autogluon.core.models import (
|
|
|
4
4
|
SimpleWeightedEnsembleModel,
|
|
5
5
|
)
|
|
6
6
|
|
|
7
|
-
from . import
|
|
7
|
+
from . import ModelRegistry
|
|
8
8
|
from ..models import (
|
|
9
9
|
BoostedRulesModel,
|
|
10
10
|
CatBoostModel,
|
|
@@ -58,5 +58,5 @@ REGISTERED_MODEL_CLS_LST = [
|
|
|
58
58
|
DummyModel,
|
|
59
59
|
]
|
|
60
60
|
|
|
61
|
-
# TODO: Replace logic in `autogluon.tabular.trainer.model_presets.presets` with `
|
|
62
|
-
|
|
61
|
+
# TODO: Replace logic in `autogluon.tabular.trainer.model_presets.presets` with `ag_model_registry`
|
|
62
|
+
ag_model_registry = ModelRegistry(model_cls_list=REGISTERED_MODEL_CLS_LST)
|
|
@@ -11,9 +11,9 @@ from autogluon.core.models import AbstractModel
|
|
|
11
11
|
# TODO: Use this / refer to this in the custom model tutorial
|
|
12
12
|
# TODO: Add to documentation website
|
|
13
13
|
# TODO: Test register logic in AG
|
|
14
|
-
class
|
|
14
|
+
class ModelRegistry:
|
|
15
15
|
"""
|
|
16
|
-
|
|
16
|
+
ModelRegistry keeps track of all known model classes to AutoGluon.
|
|
17
17
|
It can provide information such as:
|
|
18
18
|
What model classes and keys are valid to specify in an AutoGluon predictor fit call.
|
|
19
19
|
What a model's name is.
|
|
@@ -21,7 +21,7 @@ class ModelRegister:
|
|
|
21
21
|
What a model's priority is (aka which order to fit a list of models).
|
|
22
22
|
|
|
23
23
|
Additionally, users can register custom models to AutoGluon so the key is recognized in `hyperparameters` and is treated with the proper priority and name.
|
|
24
|
-
They can register new models via `
|
|
24
|
+
They can register new models via `ModelRegistry.add(model_cls)`.
|
|
25
25
|
|
|
26
26
|
Therefore, if a user creates a custom model `MyCustomModel` that inherits from `AbstractModel`, they can set the class attributes in `MyCustomModel`:
|
|
27
27
|
ag_key: The string key that can be specified in `hyperparameters`. Example: "GBM" for LGBModel
|
|
@@ -29,7 +29,7 @@ class ModelRegister:
|
|
|
29
29
|
ag_priority: The int priority that is used to order the fitting of models. Higher values will be fit before lower values. Default 0. Example: 90 for LGBModel
|
|
30
30
|
ag_priority_to_problem_type: A dictionary of problem_type to priority that overrides `ag_priority` if specified for a given problem_type. Optional.
|
|
31
31
|
|
|
32
|
-
Then they can say `
|
|
32
|
+
Then they can say `ag_model_registry.add(MyCustomModel)`.
|
|
33
33
|
Assuming MyCustomModel.ag_key = "MY_MODEL", they can now do:
|
|
34
34
|
```
|
|
35
35
|
predictor.fit(..., hyperparameters={"MY_MODEL": ...})
|
|
@@ -49,7 +49,7 @@ class ModelRegister:
|
|
|
49
49
|
|
|
50
50
|
def add(self, model_cls: Type[AbstractModel]):
|
|
51
51
|
"""
|
|
52
|
-
Adds `model_cls` to the model
|
|
52
|
+
Adds `model_cls` to the model registry
|
|
53
53
|
"""
|
|
54
54
|
assert not self.exists(model_cls), f"Cannot add model_cls that is already registered: {model_cls}"
|
|
55
55
|
if model_cls.ag_key is None:
|
|
@@ -80,7 +80,7 @@ class ModelRegister:
|
|
|
80
80
|
|
|
81
81
|
def remove(self, model_cls: Type[AbstractModel]):
|
|
82
82
|
"""
|
|
83
|
-
Removes `model_cls` from the model
|
|
83
|
+
Removes `model_cls` from the model registry
|
|
84
84
|
"""
|
|
85
85
|
assert self.exists(model_cls), f"Cannot remove model_cls that isn't registered: {model_cls}"
|
|
86
86
|
self._model_cls_list = [m for m in self._model_cls_list if m != model_cls]
|
|
@@ -7,7 +7,7 @@ from ..models.lgb.lgb_model import LGBModel
|
|
|
7
7
|
from .abstract_trainer import AbstractTabularTrainer
|
|
8
8
|
from .model_presets.presets import get_preset_models
|
|
9
9
|
from .model_presets.presets_distill import get_preset_models_distillation
|
|
10
|
-
from ..
|
|
10
|
+
from ..registry import ag_model_registry
|
|
11
11
|
|
|
12
12
|
logger = logging.getLogger(__name__)
|
|
13
13
|
|
|
@@ -187,4 +187,4 @@ class AutoTrainer(AbstractTabularTrainer):
|
|
|
187
187
|
return super().compile(model_names=model_names, with_ancestors=with_ancestors, compiler_configs=compiler_configs)
|
|
188
188
|
|
|
189
189
|
def _get_model_types_map(self) -> dict[str, AbstractModel]:
|
|
190
|
-
return
|
|
190
|
+
return ag_model_registry.key_to_cls_map()
|
|
@@ -28,7 +28,7 @@ from autogluon.core.models import (
|
|
|
28
28
|
)
|
|
29
29
|
from autogluon.core.trainer.utils import process_hyperparameters
|
|
30
30
|
|
|
31
|
-
from ...
|
|
31
|
+
from ...registry import ag_model_registry
|
|
32
32
|
from ...version import __version__
|
|
33
33
|
|
|
34
34
|
logger = logging.getLogger(__name__)
|
|
@@ -99,9 +99,9 @@ def get_preset_models(
|
|
|
99
99
|
invalid_name_set.update(invalid_model_names)
|
|
100
100
|
|
|
101
101
|
if default_priorities is None:
|
|
102
|
-
priority_cls_map =
|
|
102
|
+
priority_cls_map = ag_model_registry.priority_map(problem_type=problem_type)
|
|
103
103
|
default_priorities = {
|
|
104
|
-
|
|
104
|
+
ag_model_registry.key(model_cls): priority for model_cls, priority in priority_cls_map.items()
|
|
105
105
|
}
|
|
106
106
|
|
|
107
107
|
level_key = level if level in hyperparameters.keys() else "default"
|
|
@@ -175,7 +175,7 @@ def clean_model_cfg(model_cfg: dict, model_type=None, ag_args=None, ag_args_ense
|
|
|
175
175
|
if model_cfg[AG_ARGS]["model_type"] is None:
|
|
176
176
|
raise AssertionError(f"model_type was not specified for model! Model: {model_cfg}")
|
|
177
177
|
model_type = model_cfg[AG_ARGS]["model_type"]
|
|
178
|
-
model_types =
|
|
178
|
+
model_types = ag_model_registry.key_to_cls_map()
|
|
179
179
|
if not inspect.isclass(model_type):
|
|
180
180
|
if model_type not in model_types:
|
|
181
181
|
raise AssertionError(f"Unknown model type specified in hyperparameters: '{model_type}'. Valid model types: {list(model_types.keys())}")
|
|
@@ -185,7 +185,7 @@ def clean_model_cfg(model_cfg: dict, model_type=None, ag_args=None, ag_args_ense
|
|
|
185
185
|
f"Warning: Custom model type {model_type} does not inherit from {AbstractModel}. This may lead to instability. Consider wrapping {model_type} with an implementation of {AbstractModel}!"
|
|
186
186
|
)
|
|
187
187
|
else:
|
|
188
|
-
if not
|
|
188
|
+
if not ag_model_registry.exists(model_type):
|
|
189
189
|
logger.log(20, f"Custom Model Type Detected: {model_type}")
|
|
190
190
|
model_cfg[AG_ARGS]["model_type"] = model_type
|
|
191
191
|
model_type_real = model_cfg[AG_ARGS]["model_type"]
|
|
@@ -280,7 +280,7 @@ def model_factory(
|
|
|
280
280
|
invalid_name_set = set()
|
|
281
281
|
model_type = model[AG_ARGS]["model_type"]
|
|
282
282
|
if not inspect.isclass(model_type):
|
|
283
|
-
model_type =
|
|
283
|
+
model_type = ag_model_registry.key_to_cls(model_type)
|
|
284
284
|
name_orig = model[AG_ARGS].get("name", None)
|
|
285
285
|
if name_orig is None:
|
|
286
286
|
ag_name = model_type.ag_name
|
|
@@ -140,9 +140,9 @@ src/autogluon/tabular/models/xt/xt_model.py
|
|
|
140
140
|
src/autogluon/tabular/predictor/__init__.py
|
|
141
141
|
src/autogluon/tabular/predictor/interpretable_predictor.py
|
|
142
142
|
src/autogluon/tabular/predictor/predictor.py
|
|
143
|
-
src/autogluon/tabular/
|
|
144
|
-
src/autogluon/tabular/
|
|
145
|
-
src/autogluon/tabular/
|
|
143
|
+
src/autogluon/tabular/registry/__init__.py
|
|
144
|
+
src/autogluon/tabular/registry/_ag_model_registry.py
|
|
145
|
+
src/autogluon/tabular/registry/_model_registry.py
|
|
146
146
|
src/autogluon/tabular/testing/__init__.py
|
|
147
147
|
src/autogluon/tabular/testing/fit_helper.py
|
|
148
148
|
src/autogluon/tabular/testing/generate_datasets.py
|
|
@@ -3,20 +3,20 @@ scipy<1.16,>=1.5.4
|
|
|
3
3
|
pandas<2.3.0,>=2.0.0
|
|
4
4
|
scikit-learn<1.7.0,>=1.4.0
|
|
5
5
|
networkx<4,>=3.0
|
|
6
|
-
autogluon.core==1.
|
|
7
|
-
autogluon.features==1.
|
|
6
|
+
autogluon.core==1.3.0b20250501
|
|
7
|
+
autogluon.features==1.3.0b20250501
|
|
8
8
|
|
|
9
9
|
[all]
|
|
10
|
-
numpy<2.3.0,>=1.25
|
|
11
|
-
fastai<2.9,>=2.3.1
|
|
12
|
-
lightgbm<4.7,>=4.0
|
|
13
|
-
torch<2.7,>=2.2
|
|
14
|
-
einops<0.9,>=0.7
|
|
15
|
-
spacy<3.9
|
|
16
10
|
huggingface_hub[torch]
|
|
17
|
-
|
|
11
|
+
einops<0.9,>=0.7
|
|
12
|
+
numpy<2.3.0,>=1.25
|
|
13
|
+
autogluon.core[all]==1.3.0b20250501
|
|
18
14
|
xgboost<3.1,>=2.0
|
|
15
|
+
spacy<3.9
|
|
16
|
+
lightgbm<4.7,>=4.0
|
|
19
17
|
catboost<1.3,>=1.2
|
|
18
|
+
fastai<2.9,>=2.3.1
|
|
19
|
+
torch<2.7,>=2.2
|
|
20
20
|
|
|
21
21
|
[catboost]
|
|
22
22
|
numpy<2.3.0,>=1.25
|
|
@@ -34,7 +34,7 @@ imodels<2.1.0,>=1.3.10
|
|
|
34
34
|
lightgbm<4.7,>=4.0
|
|
35
35
|
|
|
36
36
|
[ray]
|
|
37
|
-
autogluon.core[all]==1.
|
|
37
|
+
autogluon.core[all]==1.3.0b20250501
|
|
38
38
|
|
|
39
39
|
[skex]
|
|
40
40
|
scikit-learn-intelex<2025.5,>=2024.0
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|