Skip to content

Commit aaa4442

Browse files
committed
Refactor import error handling in models and update dependencies in documentation
1 parent 292bc51 commit aaa4442

File tree

6 files changed

+60
-41
lines changed

6 files changed

+60
-41
lines changed

.github/workflows/deploy_pages.yml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,11 @@ jobs:
3737
- uses: actions/setup-python@v3
3838
with:
3939
python-version: "3.10"
40-
- name: Install dependencies
40+
- name: Install uv
41+
uses: astral-sh/setup-uv@v5
42+
- name: Build docs
4143
run: |
42-
pip install -r docs/requirements.txt -r requirements.txt -r requirements-optional.txt
43-
- name: Sphinx build
44-
run: |
45-
python ./utils/args.py && sphinx-build -j auto docs _build
44+
cd docs && uv run make html
4645
- name: Setup Pages
4746
uses: actions/configure-pages@v5
4847
- name: Upload artifact

datasets/seq_eurosat_rgb.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
try:
1717
from google_drive_downloader import GoogleDriveDownloader as gdd
1818
except ImportError:
19-
raise ImportError("Please install the google_drive_downloader package by running: `pip install googledrivedownloader`")
19+
raise ImportError("Please install the google_drive_downloader package by running: `pip install googledrivedownloader==0.4`")
2020

2121
from datasets.utils import set_default_from_args
2222
from utils.conf import base_path

docs/pyproject.toml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,24 @@ name = "docs"
33
version = "0.1.0"
44
requires-python = ">=3.10"
55
dependencies = [
6+
"clip",
7+
"ftfy>=6.3.1",
68
"furo==2023.9.10",
9+
"googledrivedownloader==0.4",
10+
"kmeans-pytorch>=0.3",
11+
"kornia>=0.8.1",
12+
"numpy>=2.2.5",
13+
"pandas>=2.2.3",
14+
"qpsolvers>=4.7.0",
15+
"regex>=2024.11.6",
16+
"scikit-learn>=1.6.1",
717
"sphinx==7.2.6",
818
"sphinx-toolbox==3.5.0",
19+
"timm==0.9.8",
20+
"torch>=2.7.0",
21+
"transformers>=4.51.3",
22+
"xitorch>=0.5.1",
923
]
24+
25+
[tool.uv.sources]
26+
clip = { git = "https://github.com/openai/CLIP.git" }

docs/utils/args.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,19 @@ Arguments
99
*Help*: Which dataset to perform experiments on.
1010

1111
- *Default*: ``None``
12-
- *Choices*: ``seq-tinyimg, seq-mit67, seq-cars196, seq-cifar100-224-rs, seq-cifar100-224, seq-chestx, seq-celeba, seq-cifar10-224-rs, mnist-360, seq-cropdisease, seq-eurosat-rgb, seq-imagenet-r, seq-cifar100, seq-cifar10-224, perm-mnist, seq-cub200, seq-cifar10, rot-mnist, seq-resisc45, seq-mnist, seq-cub200-rs, seq-isic, seq-tinyimg-r``
12+
- *Choices*: ``mnist-360, perm-mnist, rot-mnist, seq-cars196, seq-celeba, seq-chestx, seq-cifar10, seq-cifar100, seq-cifar100-224, seq-cifar100-224-rs, seq-cifar10-224, seq-cifar10-224-rs, seq-cropdisease, seq-cub200, seq-cub200-rs, seq-eurosat-rgb, seq-imagenet-r, seq-isic, seq-mit67, seq-mnist, seq-resisc45, seq-tinyimg, seq-tinyimg-r``
1313

1414
**\-\-model** : str (with underscores replaced by dashes)
1515
*Help*: Model name.
1616

1717
- *Default*: ``None``
18-
- *Choices*: ``joint-gcl, second-stage-starprompt, lwf-mc, puridiver, xder-rpc-cscct, gdumb-lider, zscl, joint, cnll, ewc-on, xder, ranpac, hal, idefics, derpp-casper, er-ace-tricks, xder-rpc-star, sgd, si, moe-adapters, first-stage-starprompt, er-ace-aer-abs, icarl, lucir, fdr, icarl-lider, derpp, der, derpp-lider, gem, bic, llava, er-ace-casper, attriclip, second-order, starprompt, er-star, lws, coda-prompt, er-tricks, clip, pnn, er-ace, xder-ce, icarl-cscct, derpp-star, dualprompt, twf, mer, er-ace-lider, gdumb, derpp-cscct, dap, l2p, ccic, slca, agem-r, rpc, er-ace-cscct, icarl-casper, xder-rpc, gss, er-ace-star, spr, xder-rpc-casper, lwf, cgil, er, agem``
18+
- *Choices*: ``agem, agem-r, attriclip, bic, ccic, cgil, clip, cnll, coda-prompt, dap, der, derpp, derpp-casper, derpp-cscct, derpp-lider, derpp-star, dualprompt, er, er-ace, er-ace-aer-abs, er-ace-casper, er-ace-cscct, er-ace-lider, er-ace-star, er-ace-tricks, er-star, er-tricks, ewc-on, fdr, first-stage-starprompt, gdumb, gdumb-lider, gem, gss, hal, icarl, icarl-casper, icarl-cscct, icarl-lider, idefics, joint, joint-gcl, l2p, llava, lucir, lwf, lwf-mc, lws, mer, moe-adapters, pnn, puridiver, ranpac, rpc, second-order, second-stage-starprompt, sgd, si, slca, spr, starprompt, twf, xder, xder-ce, xder-rpc, xder-rpc-casper, xder-rpc-cscct, xder-rpc-star, zscl``
1919

2020
**\-\-backbone** : str (with underscores replaced by dashes)
2121
*Help*: Backbone network name.
2222

2323
- *Default*: ``None``
24-
- *Choices*: ``preact-resnet18, resnet18, resnet18-7x7-pt, reduced-resnet18, resnet34, resnet18-spr, resnet50, resnet50-pt, resnet32, mnistmlp, vit``
24+
- *Choices*: ``mnistmlp, preact-resnet18, resnet18, resnet18-7x7-pt, reduced-resnet18, resnet34, resnet18-spr, resnet32, resnet50, resnet50-pt, vit``
2525

2626
**\-\-load_best_args** : unknown
2727
*Help*: (deprecated) Loads the best arguments for each method, dataset and memory buffer. NOTE: This option is deprecated and not up to date.

models/idefics.py

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,6 @@
55
import torch.nn as nn
66
from torchvision import transforms
77

8-
try:
9-
import bitsandbytes
10-
except ImportError:
11-
raise ImportError("Please install the BitsAndBytes package by running: `pip install -i https://pypi.org/simple/ bitsandbytes`")
12-
13-
try:
14-
import accelerate
15-
except ImportError:
16-
raise ImportError("Please install the accelerate package by running: `pip install accelerate`")
17-
18-
try:
19-
from transformers import BitsAndBytesConfig, IdeficsForVisionText2Text, AutoProcessor
20-
from transformers.generation import GenerationConfig
21-
except ImportError as err:
22-
raise ImportError("Please install the HuggingFace Transformers package by running: pip install transformers>=4.49.0")
23-
248
from datasets.utils.continual_dataset import ContinualDataset
259
from models.utils.continual_model import ContinualModel
2610
from utils.args import ArgumentParser
@@ -31,6 +15,24 @@ class FinalModel(nn.Module):
3115
def __init__(self, dataset: ContinualDataset, args: Namespace, denorm_transform, device):
3216
super().__init__()
3317

18+
# moved here to avoid having to install them when building docs
19+
try:
20+
import bitsandbytes
21+
except ImportError:
22+
raise ImportError("Please install the BitsAndBytes package by running: `pip install -i https://pypi.org/simple/ bitsandbytes`")
23+
24+
try:
25+
import accelerate
26+
except ImportError:
27+
raise ImportError("Please install the accelerate package by running: `pip install accelerate`")
28+
29+
try:
30+
from transformers import BitsAndBytesConfig, IdeficsForVisionText2Text, AutoProcessor
31+
from transformers.generation import GenerationConfig
32+
except ImportError as err:
33+
raise ImportError("Please install the HuggingFace Transformers package by running: pip install transformers>=4.49.0")
34+
35+
3436
self.denorm_transform = denorm_transform
3537
self.device = device
3638

models/llava.py

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,6 @@
44
import torch.nn as nn
55
from torchvision import transforms
66

7-
try:
8-
import bitsandbytes
9-
except ImportError:
10-
raise ImportError("Please install the BitsAndBytes package by running: `pip install -i https://pypi.org/simple/ bitsandbytes`")
11-
12-
try:
13-
import accelerate
14-
except ImportError:
15-
raise ImportError("Please install the accelerate package by running: `pip install accelerate`")
16-
17-
18-
try:
19-
import sentencepiece
20-
except ImportError:
21-
raise ImportError("Please install the sentencepiece package by running: `pip install sentencepiece`")
22-
237
try:
248
from transformers import AutoProcessor, LlavaForConditionalGeneration, BitsAndBytesConfig
259
except ImportError:
@@ -36,6 +20,23 @@ class FinalModel(nn.Module):
3620
def __init__(self, dataset: ContinualDataset, args: Namespace, denorm_transform, device):
3721
super().__init__()
3822

23+
# moved here to avoid having to install them when building docs
24+
try:
25+
import bitsandbytes
26+
except ImportError:
27+
raise ImportError("Please install the BitsAndBytes package by running: `pip install -i https://pypi.org/simple/ bitsandbytes`")
28+
29+
try:
30+
import accelerate
31+
except ImportError:
32+
raise ImportError("Please install the accelerate package by running: `pip install accelerate`")
33+
34+
35+
try:
36+
import sentencepiece
37+
except ImportError:
38+
raise ImportError("Please install the sentencepiece package by running: `pip install sentencepiece`")
39+
3940
self.denorm_transform = denorm_transform
4041
self.device = device
4142

0 commit comments

Comments
 (0)