janito 2.16.0__py3-none-any.whl → 2.17.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.
@@ -167,7 +167,7 @@ def setup_agent(
167
167
  """
168
168
  Creates an agent. A system prompt is rendered from a template only when a profile is specified.
169
169
  """
170
- if no_tools_mode:
170
+ if no_tools_mode or zero_mode:
171
171
  tools_provider = None
172
172
  else:
173
173
  tools_provider = get_local_tools_adapter()
@@ -92,6 +92,7 @@ def get_driver_info():
92
92
  ("janito.drivers.openai.driver", "OpenAIModelDriver"),
93
93
  ("janito.drivers.azure_openai.driver", "AzureOpenAIModelDriver"),
94
94
  ("janito.drivers.zai.driver", "ZAIModelDriver"),
95
+ ("janito.drivers.cerebras.driver", "CerebrasModelDriver"),
95
96
  ]
96
97
 
97
98
  for module_path, class_name in driver_modules:
@@ -4,6 +4,7 @@ CLI Command: Set API key for the current or selected provider
4
4
 
5
5
  from janito.provider_config import set_api_key
6
6
  from janito.llm.auth import LLMAuthManager
7
+ from janito.providers.registry import LLMProviderRegistry
7
8
 
8
9
 
9
10
  def handle_set_api_key(args):
@@ -12,8 +13,18 @@ def handle_set_api_key(args):
12
13
  if not provider:
13
14
  print("Error: --set-api-key requires -p/--provider to be specified.")
14
15
  return
15
- set_api_key(provider, api_key)
16
- auth_manager = LLMAuthManager()
17
- print(
18
- f"API key set for provider '{provider}'. Auth file updated: {auth_manager._auth_file}"
19
- )
16
+
17
+ # Validate provider name
18
+ if provider not in LLMProviderRegistry.list_providers():
19
+ valid_providers = LLMProviderRegistry.list_providers()
20
+ print(f"Error: Unknown provider '{provider}'. Valid providers are: {', '.join(valid_providers)}")
21
+ return
22
+
23
+ try:
24
+ set_api_key(provider, api_key)
25
+ auth_manager = LLMAuthManager()
26
+ print(
27
+ f"API key set for provider '{provider}'. Auth file updated: {auth_manager._auth_file}"
28
+ )
29
+ except ValueError as e:
30
+ print(f"Error: {e}")
@@ -37,6 +37,8 @@ def setup_agent_and_prompt_handler(
37
37
  no_tools_mode = False
38
38
  if hasattr(args, 'no_tools_mode'):
39
39
  no_tools_mode = getattr(args, 'no_tools_mode', False)
40
+
41
+ zero_mode = getattr(args, 'zero', False)
40
42
  agent = create_configured_agent(
41
43
  provider_instance=provider_instance,
42
44
  llm_driver_config=llm_driver_config,
@@ -46,6 +48,7 @@ def setup_agent_and_prompt_handler(
46
48
  allowed_permissions=allowed_permissions,
47
49
  profile=profile,
48
50
  profile_system_prompt=profile_system_prompt,
51
+ zero_mode=zero_mode,
49
52
  no_tools_mode=no_tools_mode,
50
53
  )
51
54
 
@@ -0,0 +1 @@
1
+ # Cerebras driver package
@@ -7,3 +7,4 @@ import janito.providers.deepseek.provider
7
7
  import janito.providers.moonshotai.provider
8
8
  import janito.providers.alibaba.provider
9
9
  import janito.providers.zai.provider
10
+ import janito.providers.cerebras.provider
@@ -17,9 +17,7 @@ class AlibabaProvider(LLMProvider):
17
17
  NAME = "alibaba"
18
18
  MAINTAINER = "João Pinto <janito@ikignosis.org>"
19
19
  MODEL_SPECS = MODEL_SPECS
20
- DEFAULT_MODEL = (
21
- "qwen3-coder-plus" # Options: qwen-turbo, qwen-plus, qwen-max, qwen3-coder-plus
22
- )
20
+ DEFAULT_MODEL = "qwen3-coder-plus" # 128k context, coding-focused model
23
21
 
24
22
  def __init__(
25
23
  self, auth_manager: LLMAuthManager = None, config: LLMDriverConfig = None
@@ -0,0 +1 @@
1
+ # Cerebras provider package
@@ -0,0 +1,76 @@
1
+ """Model specifications for Cerebras Inference API."""
2
+
3
+ from janito.llm.model import LLMModelInfo
4
+
5
+ MODEL_SPECS = {
6
+ "qwen-3-32b": LLMModelInfo(
7
+ name="qwen-3-32b",
8
+ max_input=128000,
9
+ max_response=16384,
10
+ default_temp=0.7,
11
+ driver="CerebrasModelDriver",
12
+ other={
13
+ "description": "Qwen 3 32B model for general instruction following",
14
+ "pricing": {
15
+ "input_per_1k_tokens": 0.0002,
16
+ "output_per_1k_tokens": 0.0006
17
+ }
18
+ }
19
+ ),
20
+ "qwen-3-235b-a22b-instruct-2507": LLMModelInfo(
21
+ name="qwen-3-235b-a22b-instruct-2507",
22
+ max_input=128000,
23
+ max_response=16384,
24
+ default_temp=0.7,
25
+ driver="CerebrasModelDriver",
26
+ other={
27
+ "description": "Qwen 3 235B A22B instruction-tuned model (preview)",
28
+ "pricing": {
29
+ "input_per_1k_tokens": 0.001,
30
+ "output_per_1k_tokens": 0.003
31
+ }
32
+ }
33
+ ),
34
+ "qwen-3-235b-a22b-thinking-2507": LLMModelInfo(
35
+ name="qwen-3-235b-a22b-thinking-2507",
36
+ max_input=128000,
37
+ max_response=16384,
38
+ default_temp=0.7,
39
+ driver="CerebrasModelDriver",
40
+ other={
41
+ "description": "Qwen 3 235B A22B thinking model for reasoning tasks (preview)",
42
+ "pricing": {
43
+ "input_per_1k_tokens": 0.001,
44
+ "output_per_1k_tokens": 0.003
45
+ }
46
+ }
47
+ ),
48
+ "qwen-3-coder-480b": LLMModelInfo(
49
+ name="qwen-3-coder-480b",
50
+ max_input=128000,
51
+ max_response=16384,
52
+ default_temp=0.7,
53
+ driver="CerebrasModelDriver",
54
+ other={
55
+ "description": "Qwen 3 Coder 480B model for programming tasks (preview)",
56
+ "pricing": {
57
+ "input_per_1k_tokens": 0.002,
58
+ "output_per_1k_tokens": 0.006
59
+ }
60
+ }
61
+ ),
62
+ "gpt-oss-120b": LLMModelInfo(
63
+ name="gpt-oss-120b",
64
+ max_input=128000,
65
+ max_response=16384,
66
+ default_temp=0.7,
67
+ driver="CerebrasModelDriver",
68
+ other={
69
+ "description": "GPT-OSS 120B open-source model (preview)",
70
+ "pricing": {
71
+ "input_per_1k_tokens": 0.0008,
72
+ "output_per_1k_tokens": 0.0024
73
+ }
74
+ }
75
+ )
76
+ }
@@ -0,0 +1,145 @@
1
+ """Cerebras Inference provider implementation."""
2
+
3
+ from typing import Dict, Any
4
+ from janito.llm.provider import LLMProvider
5
+ from janito.llm.auth import LLMAuthManager
6
+ from janito.llm.driver_config import LLMDriverConfig
7
+ from janito.drivers.openai.driver import OpenAIModelDriver
8
+ from janito.tools import get_local_tools_adapter
9
+ from janito.providers.registry import LLMProviderRegistry
10
+ from .model_info import MODEL_SPECS
11
+
12
+
13
+ class CerebrasProvider(LLMProvider):
14
+ """Cerebras Inference API provider."""
15
+
16
+ name = "cerebras"
17
+ NAME = "cerebras"
18
+ DEFAULT_MODEL = "qwen-3-coder-480b"
19
+ MAINTAINER = "João Pinto <janito@ikignosis.org>"
20
+ MODEL_SPECS = MODEL_SPECS
21
+
22
+ def __init__(self, auth_manager: LLMAuthManager = None, config: LLMDriverConfig = None):
23
+ """Initialize Cerebras provider with optional configuration."""
24
+ super().__init__()
25
+ self._tools_adapter = get_local_tools_adapter()
26
+ self._driver = None
27
+ self._tools_adapter = get_local_tools_adapter()
28
+ self._driver = None
29
+ if not self.available:
30
+ return
31
+
32
+ self._initialize_config(auth_manager, config)
33
+ self._setup_model_config()
34
+ self.fill_missing_device_info(self._driver_config)
35
+
36
+ if not self.available:
37
+ return
38
+
39
+ self._initialize_config(None, None)
40
+ self._driver_config.base_url = "https://api.cerebras.ai/v1"
41
+
42
+ def _initialize_config(self, auth_manager, config):
43
+ """Initialize configuration and API key."""
44
+ self.auth_manager = auth_manager or LLMAuthManager()
45
+ self._api_key = self.auth_manager.get_credentials(type(self).NAME)
46
+ if not self._api_key:
47
+ from janito.llm.auth_utils import handle_missing_api_key
48
+
49
+ handle_missing_api_key(self.name, "CEREBRAS_API_KEY")
50
+
51
+ self._driver_config = config or LLMDriverConfig(model=None)
52
+ if not self._driver_config.model:
53
+ self._driver_config.model = self.DEFAULT_MODEL
54
+ if not self._driver_config.api_key:
55
+ self._driver_config.api_key = self._api_key
56
+
57
+ self._setup_model_config()
58
+ self.fill_missing_device_info(self._driver_config)
59
+
60
+ def _setup_model_config(self):
61
+ """Configure token limits based on model specifications."""
62
+ model_name = self._driver_config.model
63
+ model_spec = self.MODEL_SPECS.get(model_name)
64
+
65
+ # Reset token parameters
66
+ if hasattr(self._driver_config, "max_tokens"):
67
+ self._driver_config.max_tokens = None
68
+ if hasattr(self._driver_config, "max_completion_tokens"):
69
+ self._driver_config.max_completion_tokens = None
70
+
71
+ if model_spec:
72
+ # Set context length
73
+ if hasattr(model_spec, "context") and model_spec.context:
74
+ self._driver_config.context_length = model_spec.context
75
+
76
+ # Set max tokens based on model spec
77
+ if hasattr(model_spec, "max_response") and model_spec.max_response:
78
+ self._driver_config.max_tokens = model_spec.max_response
79
+
80
+ # Set max completion tokens if thinking is supported
81
+ if getattr(model_spec, "thinking_supported", False):
82
+ max_cot = getattr(model_spec, "max_cot", None)
83
+ if max_cot and max_cot != "N/A":
84
+ self._driver_config.max_completion_tokens = int(max_cot)
85
+ else:
86
+ max_response = getattr(model_spec, "max_response", None)
87
+ if max_response and max_response != "N/A":
88
+ self._driver_config.max_tokens = int(max_response)
89
+
90
+ @property
91
+ @property
92
+ def driver(self) -> OpenAIModelDriver:
93
+ if not self.available:
94
+ raise ImportError(
95
+ f"CerebrasProvider unavailable: {self.unavailable_reason}"
96
+ )
97
+ if self._driver is None:
98
+ self._driver = self.create_driver()
99
+ return self._driver
100
+
101
+ @property
102
+ def available(self):
103
+ return OpenAIModelDriver.available
104
+
105
+ @property
106
+ def unavailable_reason(self):
107
+ return OpenAIModelDriver.unavailable_reason
108
+
109
+ def create_driver(self) -> OpenAIModelDriver:
110
+ """Create and return an OpenAI-compatible Cerebras driver instance."""
111
+ driver = OpenAIModelDriver(
112
+ tools_adapter=self._tools_adapter, provider_name=self.name
113
+ )
114
+ driver.config = self._driver_config
115
+ return driver
116
+
117
+ @property
118
+ def driver_config(self):
119
+ """Return the driver configuration."""
120
+ return self._driver_config
121
+
122
+ def is_model_available(self, model_name: str) -> bool:
123
+ """Check if a model is available for this provider."""
124
+ return model_name in self.MODEL_SPECS
125
+
126
+ def get_model_info(self, model_name: str = None) -> Dict[str, Any]:
127
+ """Get model information for the specified model or all models."""
128
+ if model_name is None:
129
+ return {
130
+ name: model_info.to_dict()
131
+ for name, model_info in self.MODEL_SPECS.items()
132
+ }
133
+
134
+ if model_name in self.MODEL_SPECS:
135
+ return self.MODEL_SPECS[model_name].to_dict()
136
+
137
+ return None
138
+
139
+ def execute_tool(self, tool_name: str, event_bus, *args, **kwargs):
140
+ self._tools_adapter.event_bus = event_bus
141
+ return self._tools_adapter.execute_by_name(tool_name, *args, **kwargs)
142
+
143
+
144
+ # Register the provider
145
+ LLMProviderRegistry.register(CerebrasProvider.name, CerebrasProvider)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: janito
3
- Version: 2.16.0
3
+ Version: 2.17.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
@@ -20,7 +20,7 @@ janito/provider_registry.py,sha256=l0jJZ74KIebOSYXPiy7uqH8d48pckR_WTyAO4iQF98o,6
20
20
  janito/report_events.py,sha256=q4OR_jTZNfcqaQF_fzTjgqo6_VlUIxSGWfhpT4nJWcw,938
21
21
  janito/shell.bak.zip,sha256=hznHbmgfkAkjuQDJ3w73XPQh05yrtUZQxLmtGbanbYU,22
22
22
  janito/utils.py,sha256=eXSsMgM69YyzahgCNrJQLcEbB8ssLI1MQqaa20ONxbE,376
23
- janito/agent/setup_agent.py,sha256=ibi1oHyAFkf0FHgN6QCHXF8tz8IfM79ugAMlVKttWYw,11605
23
+ janito/agent/setup_agent.py,sha256=HQU_h1P8VXiOVURjQ4SwvO-R3rujs6xUcPvrNniRDok,11618
24
24
  janito/agent/templates/profiles/system_prompt_template_Developer_with_Python_Tools.txt.j2,sha256=28TITVITH4RTdOwPpNZFSygm6OSpFb_Jr4mHprrLBhc,2584
25
25
  janito/agent/templates/profiles/system_prompt_template_developer.txt.j2,sha256=zj0ZA17iYt-6c0usgjUw_cLKnb5qDuixpxS9et5ECyw,2272
26
26
  janito/agent/templates/profiles/system_prompt_template_model_conversation_without_tools_or_context.txt.j2,sha256=dTV9aF8ji2r9dzi-l4b9r95kHrbKmjvnRxk5cVpopN4,28
@@ -31,7 +31,7 @@ janito/cli/main.py,sha256=s5odou0txf8pzTf1ADk2yV7T5m8B6cejJ81e7iu776U,312
31
31
  janito/cli/main_cli.py,sha256=21XPZ5Kp4ye2kEzkhcBtWe60Pe7XYAtzlZOf5RHNDuU,15280
32
32
  janito/cli/prompt_core.py,sha256=F68J4Xl6jZMYFN4oBBYZFj15Jp-HTYoLub4bw2XpNRU,11648
33
33
  janito/cli/prompt_handler.py,sha256=SnPTlL64noeAMGlI08VBDD5IDD8jlVMIYA4-fS8zVLg,215
34
- janito/cli/prompt_setup.py,sha256=1s5yccFaWMgDkUjkvnTYGEWJAFPJ6hIiqwbrLfzWxMI,2038
34
+ janito/cli/prompt_setup.py,sha256=1SSvvgS568-3BO_4Sw9A-QF_iLWiIXsNHT0JVqaLwkU,2120
35
35
  janito/cli/rich_terminal_reporter.py,sha256=_-eRzrxM-lCD31KjElCroSVx1vbBcG2Lo8gDVE0v9Yc,6785
36
36
  janito/cli/utils.py,sha256=plCQiDKIf3V8mFhhX5H9-MF2W86i-xRdWf8Xi117Z0w,677
37
37
  janito/cli/verbose_output.py,sha256=wY_B4of5e8Vv7w1fRwOZzNGU2JqbMdcFnGjtEr4hLus,7686
@@ -73,7 +73,7 @@ janito/cli/chat_mode/shell/session/__init__.py,sha256=uTYE_QpZFEn7v9QE5o1LdulpCW
73
73
  janito/cli/chat_mode/shell/session/history.py,sha256=tYav6GgjAZkvWhlI_rfG6OArNqW6Wn2DTv39Hb20QYc,1262
74
74
  janito/cli/chat_mode/shell/session/manager.py,sha256=MwD9reHsRaly0CyRB-S1JJ0wPKz2g8Xdj2VvlU35Hgc,1001
75
75
  janito/cli/cli_commands/list_config.py,sha256=oiQEGaGPjwjG-PrOcakpNMbbqISTsBEs7rkGH3ceQsI,1179
76
- janito/cli/cli_commands/list_drivers.py,sha256=8WhcVL4igdkyyeaxScsYZwqvDgfM_ZSaJgZ1BokjZUk,5056
76
+ janito/cli/cli_commands/list_drivers.py,sha256=r2ENykUcvf_9XYp6LHd3RvLXGXyVUA6oe_Pr0dyv92I,5124
77
77
  janito/cli/cli_commands/list_models.py,sha256=_rqHz89GsNLcH0GGkFqPue7ah4ZbN9YHm0lEP30Aa-A,1111
78
78
  janito/cli/cli_commands/list_profiles.py,sha256=9-HV2EbtP2AdubbMoakjbu7Oq4Ss9UDyO7Eb6CC52wI,2681
79
79
  janito/cli/cli_commands/list_providers.py,sha256=v8OQ8ULnuzNuvgkeKqGXGj69eOiavAlPGhzfR0zavhg,185
@@ -81,7 +81,7 @@ janito/cli/cli_commands/list_providers_region.py,sha256=qrMj_gtgEMty8UH0P_O5SgWC
81
81
  janito/cli/cli_commands/list_tools.py,sha256=JFRdlhPeA3BzhJ2PkjIt3u137IJoNc-vYSjUuPlaOXw,3593
82
82
  janito/cli/cli_commands/model_selection.py,sha256=ANWtwC5glZkGMdaNtARDbEG3QmuBUcDLVxzzC5jeBNo,1643
83
83
  janito/cli/cli_commands/model_utils.py,sha256=U0j2FTpcIBc4eAc40MXz5tyAK3m8lkakpOS2l2bGh4A,2868
84
- janito/cli/cli_commands/set_api_key.py,sha256=iPtWPhS5VeyIlwVX43TGg7OYUwXCcGzugvwoa3KB8A8,605
84
+ janito/cli/cli_commands/set_api_key.py,sha256=ZItSuB0HO14UsbyXXCgTKAXS-EUCHfCkntzg3WAAtK0,1048
85
85
  janito/cli/cli_commands/show_config.py,sha256=eYMcuvU-d7mvvuctbQacZFERqcKHEnxaRRjasyj-_lE,2004
86
86
  janito/cli/cli_commands/show_system_prompt.py,sha256=9ZJGW7lIGJ9LX2JZiWVEm4AbaD0qEQO7LF89jPgk52I,5232
87
87
  janito/cli/core/__init__.py,sha256=YH95fhgY9yBX8RgqX9dSrEkl4exjV0T4rbmJ6xUpG-Y,196
@@ -97,6 +97,7 @@ janito/docs/GETTING_STARTED.md,sha256=EbXV7B3XxjSy1E0XQJFOVITVbTmZBVB7pjth2Mb4_r
97
97
  janito/drivers/dashscope.bak.zip,sha256=9Pv4Xyciju8jO1lEMFVgYXexoZkxmDO3Ig6vw3ODfL8,4936
98
98
  janito/drivers/openai_responses.bak.zip,sha256=E43eDCHGa2tCtdjzj_pMnWDdnsOZzj8BJTR5tJp8wcM,13352
99
99
  janito/drivers/azure_openai/driver.py,sha256=L2rQOl1d0BHaDChHLtZszAeuWNoyYIgwuYuahE1qJps,4152
100
+ janito/drivers/cerebras/__init__.py,sha256=yGkKANI4xKT_2j6x1-RBJhmaRzEGyt1DFaBSLt7EtYU,25
100
101
  janito/drivers/openai/README.md,sha256=bgPdaYX0pyotCoJ9t3cJbYM-teQ_YM1DAFEKLCMP32Q,666
101
102
  janito/drivers/openai/driver.py,sha256=ITwonFiux8pVIlCuD9jy1og3sGc-rHH2_LQFRHZvBRc,19152
102
103
  janito/drivers/zai/__init__.py,sha256=rleES3ZJEslJ8M02TdTPyxHKXxA4-e2fDJa6yjuzY8s,22
@@ -121,16 +122,19 @@ janito/llm/driver_input.py,sha256=Zq7IO4KdQPUraeIo6XoOaRy1IdQAyYY15RQw4JU30uA,38
121
122
  janito/llm/message_parts.py,sha256=QY_0kDjaxdoErDgKPRPv1dNkkYJuXIBmHWNLiOEKAH4,1365
122
123
  janito/llm/model.py,sha256=42hjcffZDTuzjAJoVhDcDqwIXm6rUmmi5UwTOYopf5w,1131
123
124
  janito/llm/provider.py,sha256=3FbhQPrWBSEoIdIi-5DWIh0DD_CM570EFf1NcuGyGko,7961
124
- janito/providers/__init__.py,sha256=P2r90SUduTqn0CumjpJ9yojx2BUKDVy136xdbA8I6VU,407
125
+ janito/providers/__init__.py,sha256=wlb8-dfnWRsZclFTT5cbwYqSWFpppChrAxZEgpdBgng,450
125
126
  janito/providers/dashscope.bak.zip,sha256=BwXxRmZreEivvRtmqbr5BR62IFVlNjAf4y6DrF2BVJo,5998
126
127
  janito/providers/registry.py,sha256=Ygwv9eVrTXOKhv0EKxSWQXO5WMHvajWE2Q_Lc3p7dKo,730
127
128
  janito/providers/alibaba/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
129
  janito/providers/alibaba/model_info.py,sha256=evAW2CZUX9qgRAzDhZTp47ZNj4G1T7W66gkV60Nfan8,1264
129
- janito/providers/alibaba/provider.py,sha256=wB8wJEro4ao7osLJyZqd6jpuiTpfbpVTeGEmgZsnWDM,4220
130
+ janito/providers/alibaba/provider.py,sha256=UVNOdUX4SJln1OS10AY-Zq1THp538yhpEKPqLKyEGKU,4178
130
131
  janito/providers/anthropic/model_info.py,sha256=m6pBh0Ia8_xC1KZ7ke_4HeHIFw7nWjnYVItnRpkCSWc,1206
131
132
  janito/providers/anthropic/provider.py,sha256=aGynBxCFc7oTyvGNDUkbutJCKurC_9J4AkReC2LTPYo,3023
132
133
  janito/providers/azure_openai/model_info.py,sha256=TMSqEpQROIIYUGAyulYJ5xGhj7CbLoaKL_JXeLbXaG0,689
133
134
  janito/providers/azure_openai/provider.py,sha256=3pUYcdHrIcK1N1Pmw96tJvFo4lVse2wfZhGS9D2N3dw,5404
135
+ janito/providers/cerebras/__init__.py,sha256=pnbDTkbIG9fyF8YNOZOqdUwOGKc5ehq9oMWt625Jnis,27
136
+ janito/providers/cerebras/model_info.py,sha256=oxgssDXZCluCqkfZ5J1-gZqCVvVqCJIXsT0SFoONik4,2408
137
+ janito/providers/cerebras/provider.py,sha256=ZyGE_wWXKyRJQCYTs_FWOvZYqVu7-xRAmV1h8YMJU5s,5661
134
138
  janito/providers/deepseek/__init__.py,sha256=4sISEpq4bJO29vxFK9cfnO-SRUmKoD7oSdeCvz0hVno,36
135
139
  janito/providers/deepseek/model_info.py,sha256=tAlFRtWiyNF_MKZ1gy5_-VNlvqoIwAinv6bAv9dNFsc,465
136
140
  janito/providers/deepseek/provider.py,sha256=eU-wwVqJog_oJ8VyQyohm6OMHlvrddSszqTfT9Aoc-U,4106
@@ -213,9 +217,9 @@ janito/tools/adapters/local/validate_file_syntax/ps1_validator.py,sha256=TeIkPt0
213
217
  janito/tools/adapters/local/validate_file_syntax/python_validator.py,sha256=BfCO_K18qy92m-2ZVvHsbEU5e11OPo1pO9Vz4G4616E,130
214
218
  janito/tools/adapters/local/validate_file_syntax/xml_validator.py,sha256=AijlsP_PgNuC8ZbGsC5vOTt3Jur76otQzkd_7qR0QFY,284
215
219
  janito/tools/adapters/local/validate_file_syntax/yaml_validator.py,sha256=TgyI0HRL6ug_gBcWEm5TGJJuA4E34ZXcIzMpAbv3oJs,155
216
- janito-2.16.0.dist-info/licenses/LICENSE,sha256=GSAKapQH5ZIGWlpQTA7v5YrfECyaxaohUb1vJX-qepw,1090
217
- janito-2.16.0.dist-info/METADATA,sha256=R3XPF2v8VmjybUFGs6ReYnItEfJk5kblKsSOjY7LvEo,16365
218
- janito-2.16.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
219
- janito-2.16.0.dist-info/entry_points.txt,sha256=wIo5zZxbmu4fC-ZMrsKD0T0vq7IqkOOLYhrqRGypkx4,48
220
- janito-2.16.0.dist-info/top_level.txt,sha256=m0NaVCq0-ivxbazE2-ND0EA9Hmuijj_OGkmCbnBcCig,7
221
- janito-2.16.0.dist-info/RECORD,,
220
+ janito-2.17.0.dist-info/licenses/LICENSE,sha256=GSAKapQH5ZIGWlpQTA7v5YrfECyaxaohUb1vJX-qepw,1090
221
+ janito-2.17.0.dist-info/METADATA,sha256=wGS9j3rhoYjuytmRjw6BMuENPJ4CuU_izGosAtiWeE0,16365
222
+ janito-2.17.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
223
+ janito-2.17.0.dist-info/entry_points.txt,sha256=wIo5zZxbmu4fC-ZMrsKD0T0vq7IqkOOLYhrqRGypkx4,48
224
+ janito-2.17.0.dist-info/top_level.txt,sha256=m0NaVCq0-ivxbazE2-ND0EA9Hmuijj_OGkmCbnBcCig,7
225
+ janito-2.17.0.dist-info/RECORD,,