janito 2.31.1__py3-none-any.whl → 2.32.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -13,4 +13,25 @@ MODEL_SPECS = {
13
13
  "family": "deepseek",
14
14
  "default": False,
15
15
  },
16
+ "deepseek-v3.1": {
17
+ "description": "DeepSeek V3.1 Model (128K context, OpenAI-compatible)",
18
+ "context_window": 131072,
19
+ "max_tokens": 4096,
20
+ "family": "deepseek",
21
+ "default": False,
22
+ },
23
+ "deepseek-v3.1-base": {
24
+ "description": "DeepSeek V3.1 Base Model (128K context, OpenAI-compatible)",
25
+ "context_window": 131072,
26
+ "max_tokens": 4096,
27
+ "family": "deepseek",
28
+ "default": False,
29
+ },
30
+ "deepseek-r1": {
31
+ "description": "DeepSeek R1 Model (128K context, OpenAI-compatible)",
32
+ "context_window": 131072,
33
+ "max_tokens": 4096,
34
+ "family": "deepseek",
35
+ "default": False,
36
+ },
16
37
  }
@@ -17,7 +17,7 @@ class DeepSeekProvider(LLMProvider):
17
17
  NAME = "deepseek"
18
18
  MAINTAINER = "João Pinto <janito@ikignosis.org>"
19
19
  MODEL_SPECS = MODEL_SPECS
20
- DEFAULT_MODEL = "deepseek-chat" # Options: deepseek-chat, deepseek-reasoner
20
+ DEFAULT_MODEL = "deepseek-chat" # Options: deepseek-chat, deepseek-reasoner, deepseek-v3.1, deepseek-v3.1-base, deepseek-r1
21
21
 
22
22
  def __init__(
23
23
  self, auth_manager: LLMAuthManager = None, config: LLMDriverConfig = None
@@ -36,9 +36,9 @@ class ShowImageTool(ToolBase):
36
36
 
37
37
  try:
38
38
  from rich.console import Console
39
- from rich.image import Image as RichImage
39
+ from PIL import Image as PILImage
40
40
  except Exception as e:
41
- msg = tr("⚠️ Missing dependency: rich ({error})", error=e)
41
+ msg = tr("⚠️ Missing dependency: PIL/Pillow ({error})", error=e)
42
42
  self.report_error(msg)
43
43
  return msg
44
44
 
@@ -53,7 +53,11 @@ class ShowImageTool(ToolBase):
53
53
 
54
54
  try:
55
55
  console = Console()
56
- img = RichImage.from_path(path, width=width, height=height, preserve_aspect_ratio=preserve_aspect)
56
+ from rich.console import Console
57
+ from rich.text import Text
58
+ console = Console()
59
+ img = PILImage.open(path)
60
+ console.print(Text(f"Image: {disp_path} ({img.width}x{img.height})", style="bold green"))
57
61
  console.print(img)
58
62
  self.report_success(tr("✅ Displayed"))
59
63
  details = []
@@ -40,10 +40,10 @@ class ShowImageGridTool(ToolBase):
40
40
  try:
41
41
  from rich.console import Console
42
42
  from rich.columns import Columns
43
- from rich.image import Image as RichImage
43
+ from PIL import Image as PILImage
44
44
  from rich.panel import Panel
45
45
  except Exception as e:
46
- msg = tr("⚠️ Missing dependency: rich ({error})", error=e)
46
+ msg = tr("⚠️ Missing dependency: PIL/Pillow ({error})", error=e)
47
47
  self.report_error(msg)
48
48
  return msg
49
49
 
@@ -61,8 +61,9 @@ class ShowImageGridTool(ToolBase):
61
61
  self.report_warning(tr("❗ not found: {p}", p=display_path(fp)))
62
62
  continue
63
63
  try:
64
- img = RichImage.from_path(fp, width=width, height=height, preserve_aspect_ratio=preserve_aspect)
65
- images.append(Panel.fit(img, title=display_path(fp), border_style="dim"))
64
+ img = PILImage.open(fp)
65
+ title = f"{display_path(fp)} ({img.width}x{img.height})"
66
+ images.append(Panel.fit(title, title=display_path(fp), border_style="dim"))
66
67
  shown += 1
67
68
  except Exception as e:
68
69
  self.report_warning(tr("⚠️ Skipped {p}: {e}", p=display_path(fp), e=e))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: janito
3
- Version: 2.31.1
3
+ Version: 2.32.0
4
4
  Summary: A new Python package called janito.
5
5
  Author-email: João Pinto <janito@ikignosis.org>
6
6
  Project-URL: Homepage, https://github.com/ikignosis/janito
@@ -157,8 +157,8 @@ janito/providers/cerebras/__init__.py,sha256=w7VvVDG-AmW7axvt80TSM_HvAM7MjtH_2yM
157
157
  janito/providers/cerebras/model_info.py,sha256=kfIYk9ypKyrSSBCtyXZejDGexSkerBqNhaU1_sQQPKw,2176
158
158
  janito/providers/cerebras/provider.py,sha256=2O-L5pNxOVX0MfB2muUoLgj6BO-lNfwlILm1sAV_bpk,5615
159
159
  janito/providers/deepseek/__init__.py,sha256=4sISEpq4bJO29vxFK9cfnO-SRUmKoD7oSdeCvz0hVno,36
160
- janito/providers/deepseek/model_info.py,sha256=tAlFRtWiyNF_MKZ1gy5_-VNlvqoIwAinv6bAv9dNFsc,465
161
- janito/providers/deepseek/provider.py,sha256=eU-wwVqJog_oJ8VyQyohm6OMHlvrddSszqTfT9Aoc-U,4106
160
+ janito/providers/deepseek/model_info.py,sha256=CzpdcUjDSjx43REcf9TydI5MrFM7quljXfEThZYo2C4,1176
161
+ janito/providers/deepseek/provider.py,sha256=EmNT4GfkE_zevEalwxy6HmoTb6eD1f3UgroRzYIQ85Y,4154
162
162
  janito/providers/google/__init__.py,sha256=hE3OGJvLEhvNLhIK_XmCGIdrIj8MKlyGgdOLJ4mdess,38
163
163
  janito/providers/google/model_info.py,sha256=AakTmzvWm1GPvFzGAq6-PeE_Dpq7BmAAqmh3L8N5KKo,1126
164
164
  janito/providers/google/provider.py,sha256=NQVG5kovHOc2SDgWjVIwYGMqshvMUAqRAk9iMntQ52k,3606
@@ -229,8 +229,8 @@ janito/tools/adapters/local/remove_file.py,sha256=Imra4jGkBfAd6pnUAmbUsjN0exj2vz
229
229
  janito/tools/adapters/local/replace_text_in_file.py,sha256=zJIDecviF2YRpWxbvhtka4Iaje-QYhcaqQX1PxWolzE,10966
230
230
  janito/tools/adapters/local/run_bash_command.py,sha256=7fABqAeAu7WJwzzwHmT54_m5OSwPMcgpQ74lQhPG7TA,7955
231
231
  janito/tools/adapters/local/run_powershell_command.py,sha256=uQSJVQe40wSGbesyvZxDmIKJthAbDJFaxXm1dEN3gBs,9313
232
- janito/tools/adapters/local/show_image.py,sha256=CsWUyLuIrKnTmzG7hw79If40U3ka_VP_jalC2Nu5VPw,2785
233
- janito/tools/adapters/local/show_image_grid.py,sha256=uPtPaVnyJDjbouGmMsv9AUAsD0NQ9SL4MVnDuyrUOwo,2999
232
+ janito/tools/adapters/local/show_image.py,sha256=OkdiIkaRhjqPMSF5QFcqjLK-fN1oljo_YQM9TH2ZK_A,2932
233
+ janito/tools/adapters/local/show_image_grid.py,sha256=w_U04_K0qmCcX8ac6KUcs-UsnfCb-qsXT3-kasr17dM,3000
234
234
  janito/tools/adapters/local/view_file.py,sha256=cBKcbwbfH-UMyvQ7PmYTgsshcFmorjWtyH1kaYi7oNY,7379
235
235
  janito/tools/adapters/local/get_file_outline/__init__.py,sha256=OKV_BHnoD9h-vkcVoW6AHmsuDjjauHPCKNK0nVFl4sU,37
236
236
  janito/tools/adapters/local/get_file_outline/core.py,sha256=25k6a8PaDYxAfxnEAvZvOWg2BgUcgKU_BkzJmZKUMEA,4611
@@ -255,9 +255,9 @@ janito/tools/adapters/local/validate_file_syntax/ps1_validator.py,sha256=TeIkPt0
255
255
  janito/tools/adapters/local/validate_file_syntax/python_validator.py,sha256=BfCO_K18qy92m-2ZVvHsbEU5e11OPo1pO9Vz4G4616E,130
256
256
  janito/tools/adapters/local/validate_file_syntax/xml_validator.py,sha256=AijlsP_PgNuC8ZbGsC5vOTt3Jur76otQzkd_7qR0QFY,284
257
257
  janito/tools/adapters/local/validate_file_syntax/yaml_validator.py,sha256=TgyI0HRL6ug_gBcWEm5TGJJuA4E34ZXcIzMpAbv3oJs,155
258
- janito-2.31.1.dist-info/licenses/LICENSE,sha256=dXV4fOF2ZErugtN8l_Nrj5tsRTYgtjE3cgiya0UfBio,11356
259
- janito-2.31.1.dist-info/METADATA,sha256=BycR-X5ENC7IszTvyQZnUOdwDPGeaqKx1-znJ6F__Hk,2313
260
- janito-2.31.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
261
- janito-2.31.1.dist-info/entry_points.txt,sha256=wIo5zZxbmu4fC-ZMrsKD0T0vq7IqkOOLYhrqRGypkx4,48
262
- janito-2.31.1.dist-info/top_level.txt,sha256=m0NaVCq0-ivxbazE2-ND0EA9Hmuijj_OGkmCbnBcCig,7
263
- janito-2.31.1.dist-info/RECORD,,
258
+ janito-2.32.0.dist-info/licenses/LICENSE,sha256=dXV4fOF2ZErugtN8l_Nrj5tsRTYgtjE3cgiya0UfBio,11356
259
+ janito-2.32.0.dist-info/METADATA,sha256=6pd4z_QSOVCqudBl5Ox6xD-mUtDLK6Ja9OrltqjP_dk,2313
260
+ janito-2.32.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
261
+ janito-2.32.0.dist-info/entry_points.txt,sha256=wIo5zZxbmu4fC-ZMrsKD0T0vq7IqkOOLYhrqRGypkx4,48
262
+ janito-2.32.0.dist-info/top_level.txt,sha256=m0NaVCq0-ivxbazE2-ND0EA9Hmuijj_OGkmCbnBcCig,7
263
+ janito-2.32.0.dist-info/RECORD,,