kiln-ai 0.17.0__py3-none-any.whl → 0.19.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.

Potentially problematic release.


This version of kiln-ai might be problematic. Click here for more details.

Files changed (58) hide show
  1. kiln_ai/adapters/adapter_registry.py +28 -0
  2. kiln_ai/adapters/chat/chat_formatter.py +0 -1
  3. kiln_ai/adapters/data_gen/data_gen_prompts.py +121 -36
  4. kiln_ai/adapters/data_gen/data_gen_task.py +51 -38
  5. kiln_ai/adapters/data_gen/test_data_gen_task.py +318 -37
  6. kiln_ai/adapters/eval/base_eval.py +6 -7
  7. kiln_ai/adapters/eval/eval_runner.py +5 -1
  8. kiln_ai/adapters/eval/g_eval.py +17 -12
  9. kiln_ai/adapters/eval/test_base_eval.py +8 -2
  10. kiln_ai/adapters/eval/test_eval_runner.py +6 -12
  11. kiln_ai/adapters/eval/test_g_eval.py +115 -5
  12. kiln_ai/adapters/eval/test_g_eval_data.py +1 -1
  13. kiln_ai/adapters/fine_tune/base_finetune.py +2 -6
  14. kiln_ai/adapters/fine_tune/dataset_formatter.py +1 -5
  15. kiln_ai/adapters/fine_tune/fireworks_finetune.py +32 -20
  16. kiln_ai/adapters/fine_tune/test_dataset_formatter.py +1 -1
  17. kiln_ai/adapters/fine_tune/test_fireworks_tinetune.py +30 -21
  18. kiln_ai/adapters/fine_tune/test_vertex_finetune.py +2 -7
  19. kiln_ai/adapters/fine_tune/together_finetune.py +1 -1
  20. kiln_ai/adapters/ml_model_list.py +926 -125
  21. kiln_ai/adapters/model_adapters/base_adapter.py +11 -7
  22. kiln_ai/adapters/model_adapters/litellm_adapter.py +23 -1
  23. kiln_ai/adapters/model_adapters/test_base_adapter.py +1 -2
  24. kiln_ai/adapters/model_adapters/test_litellm_adapter.py +70 -3
  25. kiln_ai/adapters/model_adapters/test_structured_output.py +13 -13
  26. kiln_ai/adapters/parsers/parser_registry.py +0 -2
  27. kiln_ai/adapters/parsers/r1_parser.py +0 -1
  28. kiln_ai/adapters/parsers/test_r1_parser.py +1 -1
  29. kiln_ai/adapters/provider_tools.py +20 -19
  30. kiln_ai/adapters/remote_config.py +113 -0
  31. kiln_ai/adapters/repair/repair_task.py +2 -7
  32. kiln_ai/adapters/test_adapter_registry.py +30 -2
  33. kiln_ai/adapters/test_ml_model_list.py +30 -0
  34. kiln_ai/adapters/test_prompt_adaptors.py +0 -4
  35. kiln_ai/adapters/test_provider_tools.py +18 -12
  36. kiln_ai/adapters/test_remote_config.py +456 -0
  37. kiln_ai/datamodel/basemodel.py +54 -28
  38. kiln_ai/datamodel/datamodel_enums.py +2 -0
  39. kiln_ai/datamodel/dataset_split.py +5 -3
  40. kiln_ai/datamodel/eval.py +35 -3
  41. kiln_ai/datamodel/finetune.py +2 -3
  42. kiln_ai/datamodel/project.py +3 -3
  43. kiln_ai/datamodel/prompt.py +2 -2
  44. kiln_ai/datamodel/prompt_id.py +4 -4
  45. kiln_ai/datamodel/task.py +6 -6
  46. kiln_ai/datamodel/task_output.py +1 -3
  47. kiln_ai/datamodel/task_run.py +0 -2
  48. kiln_ai/datamodel/test_basemodel.py +210 -18
  49. kiln_ai/datamodel/test_eval_model.py +152 -10
  50. kiln_ai/datamodel/test_model_perf.py +1 -1
  51. kiln_ai/datamodel/test_prompt_id.py +5 -1
  52. kiln_ai/datamodel/test_task.py +5 -0
  53. kiln_ai/utils/config.py +10 -0
  54. kiln_ai/utils/logging.py +4 -3
  55. {kiln_ai-0.17.0.dist-info → kiln_ai-0.19.0.dist-info}/METADATA +33 -3
  56. {kiln_ai-0.17.0.dist-info → kiln_ai-0.19.0.dist-info}/RECORD +58 -56
  57. {kiln_ai-0.17.0.dist-info → kiln_ai-0.19.0.dist-info}/WHEEL +0 -0
  58. {kiln_ai-0.17.0.dist-info → kiln_ai-0.19.0.dist-info}/licenses/LICENSE.txt +0 -0
@@ -1,7 +1,6 @@
1
1
  import pytest
2
2
  from pydantic import ValidationError
3
3
 
4
- from kiln_ai.datamodel import BasePrompt
5
4
  from kiln_ai.datamodel.basemodel import KilnParentModel
6
5
  from kiln_ai.datamodel.eval import (
7
6
  Eval,
@@ -9,11 +8,10 @@ from kiln_ai.datamodel.eval import (
9
8
  EvalConfigType,
10
9
  EvalOutputScore,
11
10
  EvalRun,
11
+ EvalTemplateId,
12
12
  )
13
13
  from kiln_ai.datamodel.task import Task
14
- from kiln_ai.datamodel.task_output import (
15
- TaskOutputRatingType,
16
- )
14
+ from kiln_ai.datamodel.task_output import TaskOutputRatingType
17
15
 
18
16
 
19
17
  @pytest.fixture
@@ -519,13 +517,13 @@ def test_eval_run_score_keys_must_match(valid_eval_config, valid_eval_run_data):
519
517
  valid_eval_config.parent = eval
520
518
 
521
519
  # Correct
522
- run = EvalRun(
520
+ EvalRun(
523
521
  parent=valid_eval_config,
524
522
  **{**valid_eval_run_data, "scores": {"accuracy": 4.5, "critical": 1.0}},
525
523
  )
526
524
 
527
525
  # Correct but wrong order still okay
528
- run = EvalRun(
526
+ EvalRun(
529
527
  parent=valid_eval_config,
530
528
  **{**valid_eval_run_data, "scores": {"critical": 1.0, "accuracy": 4.5}},
531
529
  )
@@ -535,7 +533,7 @@ def test_eval_run_score_keys_must_match(valid_eval_config, valid_eval_run_data):
535
533
  ValueError,
536
534
  match="The scores produced by the evaluator must match the scores expected by the eval",
537
535
  ):
538
- run = EvalRun(
536
+ EvalRun(
539
537
  parent=valid_eval_config,
540
538
  **{**valid_eval_run_data, "scores": {"accuracy": 4.5}},
541
539
  )
@@ -545,7 +543,7 @@ def test_eval_run_score_keys_must_match(valid_eval_config, valid_eval_run_data):
545
543
  ValueError,
546
544
  match="The scores produced by the evaluator must match the scores expected by the eval",
547
545
  ):
548
- run = EvalRun(
546
+ EvalRun(
549
547
  parent=valid_eval_config,
550
548
  **{
551
549
  **valid_eval_run_data,
@@ -558,7 +556,7 @@ def test_eval_run_score_keys_must_match(valid_eval_config, valid_eval_run_data):
558
556
  ValueError,
559
557
  match="The scores produced by the evaluator must match the scores expected by the eval",
560
558
  ):
561
- run = EvalRun(
559
+ EvalRun(
562
560
  parent=valid_eval_config,
563
561
  **{**valid_eval_run_data, "scores": {"accuracy": 4.5, "wrong": 1.0}},
564
562
  )
@@ -568,7 +566,7 @@ def test_eval_run_custom_scores_not_allowed(valid_eval_config, valid_eval_run_da
568
566
  with pytest.raises(
569
567
  ValueError, match="Custom scores are not supported in evaluators"
570
568
  ):
571
- eval = Eval(
569
+ Eval(
572
570
  name="Test Eval",
573
571
  eval_set_filter_id="tag::tag1",
574
572
  eval_configs_filter_id="tag::tag2",
@@ -633,3 +631,147 @@ def test_eval_run_eval_config_eval_validation():
633
631
  output="test output",
634
632
  scores={"score": 1.0},
635
633
  )
634
+
635
+
636
+ @pytest.mark.parametrize(
637
+ "template_properties,should_raise,expected_error",
638
+ [
639
+ # Valid cases
640
+ (
641
+ {"issue_prompt": "Test issue prompt"},
642
+ False,
643
+ None,
644
+ ),
645
+ (
646
+ {
647
+ "issue_prompt": "Test issue prompt",
648
+ "failure_example": "Test failure example",
649
+ },
650
+ False,
651
+ None,
652
+ ),
653
+ (
654
+ {
655
+ "issue_prompt": "Test issue prompt",
656
+ "failure_example": "Test failure example",
657
+ "pass_example": "Test pass example",
658
+ },
659
+ False,
660
+ None,
661
+ ),
662
+ (
663
+ {
664
+ "issue_prompt": "",
665
+ "failure_example": "",
666
+ "pass_example": "",
667
+ },
668
+ False,
669
+ None,
670
+ ),
671
+ # Invalid cases
672
+ (
673
+ {},
674
+ True,
675
+ "issue_prompt is required for issue template",
676
+ ),
677
+ (
678
+ {"failure_example": "Test failure example"},
679
+ True,
680
+ "issue_prompt is required for issue template",
681
+ ),
682
+ (
683
+ {"issue_prompt": 123},
684
+ True,
685
+ "issue_prompt is required for issue template",
686
+ ),
687
+ (
688
+ {
689
+ "issue_prompt": "Test issue prompt",
690
+ "failure_example": 456,
691
+ },
692
+ True,
693
+ "failure_example is optional for issue template, but if provided must be a string",
694
+ ),
695
+ (
696
+ {
697
+ "issue_prompt": "Test issue prompt",
698
+ "failure_example": "Test failure example",
699
+ "pass_example": 789,
700
+ },
701
+ True,
702
+ "pass_example is optional for issue template, but if provided must be a string",
703
+ ),
704
+ ],
705
+ )
706
+ def test_eval_template_properties_issue_template_validation(
707
+ template_properties, should_raise, expected_error
708
+ ):
709
+ """Test issue template validation with various property combinations"""
710
+ if should_raise:
711
+ with pytest.raises(ValueError, match=expected_error):
712
+ Eval(
713
+ name="Test Eval",
714
+ template=EvalTemplateId.issue,
715
+ eval_set_filter_id="tag::tag1",
716
+ eval_configs_filter_id="tag::tag2",
717
+ output_scores=[
718
+ EvalOutputScore(
719
+ name="score",
720
+ type=TaskOutputRatingType.pass_fail,
721
+ )
722
+ ],
723
+ template_properties=template_properties,
724
+ )
725
+ else:
726
+ eval = Eval(
727
+ name="Test Eval",
728
+ template=EvalTemplateId.issue,
729
+ eval_set_filter_id="tag::tag1",
730
+ eval_configs_filter_id="tag::tag2",
731
+ output_scores=[
732
+ EvalOutputScore(
733
+ name="score",
734
+ type=TaskOutputRatingType.pass_fail,
735
+ )
736
+ ],
737
+ template_properties=template_properties,
738
+ )
739
+ assert eval.template == EvalTemplateId.issue
740
+ for key, value in template_properties.items():
741
+ assert eval.template_properties[key] == value
742
+
743
+
744
+ @pytest.mark.parametrize(
745
+ "template,template_properties",
746
+ [
747
+ (EvalTemplateId.kiln_requirements, {"random_property": "random_value"}),
748
+ (EvalTemplateId.toxicity, {}),
749
+ (EvalTemplateId.bias, {"some_property": 123}),
750
+ (EvalTemplateId.maliciousness, {"test": True}),
751
+ (EvalTemplateId.factual_correctness, {"score": 4.5}),
752
+ (EvalTemplateId.jailbreak, {"prompt": "test"}),
753
+ (
754
+ None,
755
+ {"issue_prompt": "This should not be validated", "failure_example": 123},
756
+ ),
757
+ ],
758
+ )
759
+ def test_eval_template_properties_non_issue_templates(template, template_properties):
760
+ """Test that non-issue templates pass validation regardless of template_properties"""
761
+ eval = Eval(
762
+ name="Test Eval",
763
+ template=template,
764
+ eval_set_filter_id="tag::tag1",
765
+ eval_configs_filter_id="tag::tag2",
766
+ output_scores=[
767
+ EvalOutputScore(
768
+ name="score",
769
+ type=TaskOutputRatingType.pass_fail,
770
+ )
771
+ ],
772
+ template_properties=template_properties,
773
+ )
774
+
775
+ assert eval.template == template
776
+ for key, value in template_properties.items():
777
+ assert eval.template_properties[key] == value
@@ -121,6 +121,6 @@ def test_benchmark_load_from_file(benchmark, task_run):
121
121
 
122
122
  # I get 8k ops per second on my MBP. Lower value here for CI and parallel testing.
123
123
  # Prior to optimization was 290 ops per second.
124
- print(f"Ops per second: {ops_per_second:.6f}")
124
+ # sys.stdout.write(f"Ops per second: {ops_per_second:.6f}")
125
125
  if ops_per_second < 500:
126
126
  pytest.fail(f"Ops per second: {ops_per_second:.6f}, expected more than 1k ops")
@@ -29,7 +29,7 @@ def test_valid_saved_prompt_id():
29
29
 
30
30
  def test_valid_fine_tune_prompt_id():
31
31
  """Test that valid fine-tune prompt IDs are accepted"""
32
- valid_id = "fine_tune_prompt::ft_123456"
32
+ valid_id = "fine_tune_prompt::project_123::task_456::ft_123456"
33
33
  model = ModelTester(prompt_id=valid_id)
34
34
  assert model.prompt_id == valid_id
35
35
 
@@ -53,6 +53,10 @@ def test_invalid_saved_prompt_id_format(invalid_id):
53
53
  [
54
54
  ("fine_tune_prompt::", "Invalid fine-tune prompt ID: fine_tune_prompt::"),
55
55
  ("fine_tune_prompt", "Invalid prompt ID: fine_tune_prompt"),
56
+ (
57
+ "fine_tune_prompt::ft_123456",
58
+ "Invalid fine-tune prompt ID: fine_tune_prompt::ft_123456",
59
+ ),
56
60
  ],
57
61
  )
58
62
  def test_invalid_fine_tune_prompt_id_format(invalid_id, expected_error):
@@ -323,3 +323,8 @@ def test_run_config_upgrade_old_entries():
323
323
  assert parsed.name == "test name"
324
324
  assert parsed.created_by == "scosman"
325
325
  assert parsed.run_config_properties.structured_output_mode == "unknown"
326
+
327
+
328
+ def test_task_name_unicode_name():
329
+ task = Task(name="你好", instruction="Do something")
330
+ assert task.name == "你好"
kiln_ai/utils/config.py CHANGED
@@ -124,6 +124,11 @@ class Config:
124
124
  env_var="WANDB_API_KEY",
125
125
  sensitive=True,
126
126
  ),
127
+ "siliconflow_cn_api_key": ConfigProperty(
128
+ str,
129
+ env_var="SILICONFLOW_CN_API_KEY",
130
+ sensitive=True,
131
+ ),
127
132
  "wandb_base_url": ConfigProperty(
128
133
  str,
129
134
  env_var="WANDB_BASE_URL",
@@ -137,6 +142,11 @@ class Config:
137
142
  default_lambda=lambda: [],
138
143
  sensitive_keys=["api_key"],
139
144
  ),
145
+ "cerebras_api_key": ConfigProperty(
146
+ str,
147
+ env_var="CEREBRAS_API_KEY",
148
+ sensitive=True,
149
+ ),
140
150
  }
141
151
  self._lock = threading.Lock()
142
152
  self._settings = self.load_settings()
kiln_ai/utils/logging.py CHANGED
@@ -63,14 +63,14 @@ class CustomLiteLLMLogger(CustomLogger):
63
63
  # Print the formatted input data for the request in API format, pretty print
64
64
  try:
65
65
  self.logger.info(
66
- f"Formatted Input Data (API):\n{json.dumps(data, indent=2)}"
66
+ f"Formatted Input Data (API):\n{json.dumps(data, indent=2, ensure_ascii=False)}"
67
67
  )
68
68
  except Exception as e:
69
69
  self.logger.info(f"Formatted Input Data (API): Could not print {e}")
70
70
 
71
71
  # Print the messages for the request in LiteLLM Message list, pretty print
72
72
  try:
73
- json_messages = json.dumps(messages, indent=2)
73
+ json_messages = json.dumps(messages, indent=2, ensure_ascii=False)
74
74
  self.logger.info(f"Messages:\n{json_messages}")
75
75
  except Exception as e:
76
76
  self.logger.info(f"Messages: Could not print {e}")
@@ -115,7 +115,7 @@ class CustomLiteLLMLogger(CustomLogger):
115
115
  # JSON format logs if possible
116
116
  json_content = json.loads(content)
117
117
  self.logger.info(
118
- f"Model Response Content:\n{json.dumps(json_content, indent=2)}"
118
+ f"Model Response Content:\n{json.dumps(json_content, indent=2, ensure_ascii=False)}"
119
119
  )
120
120
  except Exception:
121
121
  self.logger.info(f"Model Response Content:\n{content}")
@@ -149,6 +149,7 @@ def setup_litellm_logging(filename: str = "model_calls.log"):
149
149
  get_log_file_path(filename),
150
150
  maxBytes=5 * 1024 * 1024, # 5MB
151
151
  backupCount=3,
152
+ encoding="utf-8",
152
153
  )
153
154
 
154
155
  # Set formatter to match the default formatting
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kiln-ai
3
- Version: 0.17.0
3
+ Version: 0.19.0
4
4
  Summary: Kiln AI
5
5
  Project-URL: Homepage, https://getkiln.ai
6
6
  Project-URL: Repository, https://github.com/Kiln-AI/kiln
@@ -19,7 +19,7 @@ Requires-Dist: boto3>=1.37.10
19
19
  Requires-Dist: coverage>=7.6.4
20
20
  Requires-Dist: google-cloud-aiplatform>=1.84.0
21
21
  Requires-Dist: jsonschema>=4.23.0
22
- Requires-Dist: litellm>=1.67.0
22
+ Requires-Dist: litellm>=1.72.6
23
23
  Requires-Dist: openai>=1.53.0
24
24
  Requires-Dist: pdoc>=15.0.0
25
25
  Requires-Dist: pydantic>=2.9.2
@@ -65,6 +65,7 @@ The library has a [comprehensive set of docs](https://kiln-ai.github.io/Kiln/kil
65
65
 
66
66
  ## Table of Contents
67
67
 
68
+ - [Connecting AI Providers](#connecting-ai-providers-openai-openrouter-ollama-etc)
68
69
  - [Using the Kiln Data Model](#using-the-kiln-data-model)
69
70
  - [Understanding the Kiln Data Model](#understanding-the-kiln-data-model)
70
71
  - [Datamodel Overview](#datamodel-overview)
@@ -73,6 +74,7 @@ The library has a [comprehensive set of docs](https://kiln-ai.github.io/Kiln/kil
73
74
  - [Using your Kiln Dataset in a Notebook or Project](#using-your-kiln-dataset-in-a-notebook-or-project)
74
75
  - [Using Kiln Dataset in Pandas](#using-kiln-dataset-in-pandas)
75
76
  - [Building and Running a Kiln Task from Code](#building-and-running-a-kiln-task-from-code)
77
+ - [Tagging Task Runs Programmatically](#tagging-task-runs-programmatically)
76
78
  - [Adding Custom Model or AI Provider from Code](#adding-custom-model-or-ai-provider-from-code)
77
79
  - [Full API Reference](#full-api-reference)
78
80
 
@@ -82,6 +84,12 @@ The library has a [comprehensive set of docs](https://kiln-ai.github.io/Kiln/kil
82
84
  pip install kiln-ai
83
85
  ```
84
86
 
87
+ ## Connecting AI Providers (OpenAI, OpenRouter, Ollama, etc)
88
+
89
+ The easiest way to connect AI providers is to use the Kiln app UI. Once connected in the UI, credentials will be stored to `~/.kiln_ai/settings.yml`, which will be available to the library.
90
+
91
+ For configuring credentials from code or connecting custom servers/model, see [Adding Custom Model or AI Provider from Code](#adding-custom-model-or-ai-provider-from-code).
92
+
85
93
  ## Using the Kiln Data Model
86
94
 
87
95
  ### Understanding the Kiln Data Model
@@ -179,7 +187,10 @@ item = kiln_ai.datamodel.TaskRun(
179
187
  type=kiln_ai.datamodel.DataSourceType.human,
180
188
  properties={"created_by": "Jane Doe"},
181
189
  ),
182
- rating=kiln_ai.datamodel.TaskOutputRating(score=5,type="five_star"),
190
+ rating=kiln_ai.datamodel.TaskOutputRating(
191
+ value=5,
192
+ type=kiln_ai.datamodel.datamodel_enums.five_star,
193
+ ),
183
194
  ),
184
195
  )
185
196
  item.save_to_file()
@@ -270,6 +281,25 @@ for run in task.runs():
270
281
 
271
282
  ```
272
283
 
284
+ ## Tagging Task Runs Programmatically
285
+
286
+ You can also tag your Kiln Task runs programmatically:
287
+
288
+ ```py
289
+ # Load your Kiln Task from disk
290
+ task_path = "/Users/youruser/Kiln Projects/test project/tasks/632780983478 - Joke Generator/task.kiln"
291
+ task = kiln_ai.datamodel.Task.load_from_file(task_path)
292
+
293
+ for run in task.runs():
294
+ # Parse the task output from JSON
295
+ output = json.loads(run.output.output)
296
+
297
+ # Add a tag if the punchline is unusually short
298
+ if len(output["punchline"]) < 100:
299
+ run.tags.append("very_short")
300
+ run.save_to_file() # Persist the updated tags
301
+ ```
302
+
273
303
  ### Adding Custom Model or AI Provider from Code
274
304
 
275
305
  You can add additional AI models and providers to Kiln.
@@ -1,113 +1,115 @@
1
1
  kiln_ai/__init__.py,sha256=Sc4z8LRVFMwJUoc_DPVUriSXTZ6PO9MaJ80PhRbKyB8,34
2
2
  kiln_ai/adapters/__init__.py,sha256=5GTN1bnEWz1NxWrlzsI6CfUio-D1jG74_-fx_PXJkY8,1027
3
- kiln_ai/adapters/adapter_registry.py,sha256=oEY6Zy6rtzs5mYLSZVhCzNWE4UJiUzIkVmmE_UYnBbE,8529
4
- kiln_ai/adapters/ml_model_list.py,sha256=kXt2eJ68HCUZ2dzfl9t-9pUv_s8149yMjRjmDi3GWuA,88641
3
+ kiln_ai/adapters/adapter_registry.py,sha256=K5GdKwtfj4Cgpx1xzI1WS1uAxi12yhfUdjOq9gT7eWA,9725
4
+ kiln_ai/adapters/ml_model_list.py,sha256=cURwa5ovOCkHxx5yCMMl5T7vclbUltaPyOBt__FIxg8,119552
5
5
  kiln_ai/adapters/ollama_tools.py,sha256=uObtLWfqKb9RXHN-TGGw2Y1FQlEMe0u8FgszI0zQn6U,3550
6
6
  kiln_ai/adapters/prompt_builders.py,sha256=R5IgZ7I2Ftx7i67xQb9UwcHE5gbPxgvgys_UAs3fc6A,15165
7
- kiln_ai/adapters/provider_tools.py,sha256=HIGsU38cAWKGONi8-Rh66WNOved3O0w9OYbj9tU_HU4,16794
7
+ kiln_ai/adapters/provider_tools.py,sha256=gLRG3s2UTZ_DCOQILXuhTAMmcVgj6e5sIIPPIKZ7dKk,17217
8
+ kiln_ai/adapters/remote_config.py,sha256=qXRjXVoF_f31XomSGdOdFyZL-_fNO66rp8JK5Wji1PE,3954
8
9
  kiln_ai/adapters/run_output.py,sha256=RAi2Qp6dmqJVNm3CxbNTdAuhitHfH5NiUGbf6ygUP-k,257
9
- kiln_ai/adapters/test_adapter_registry.py,sha256=W4KoZ5cFTZwmW3i19cCgwzmcG802tpFC0GrUnZcD8_4,8378
10
- kiln_ai/adapters/test_ml_model_list.py,sha256=L5XdRz6c2vbfSYe0rWfsNOM73lZbuGsnG1gzgVPEUA8,6726
10
+ kiln_ai/adapters/test_adapter_registry.py,sha256=QofH8Gzx7tWk3wvzf7HL476xh9GGqwabFmoWZUDE4rA,9415
11
+ kiln_ai/adapters/test_ml_model_list.py,sha256=yoJUTd7TxDU2G_mJmZqX46e0EZgE7z60c71Anm0RiCw,7940
11
12
  kiln_ai/adapters/test_ollama_tools.py,sha256=xAUzL0IVmmXadVehJu1WjqbhpKEYGAgGt3pWx7hrubc,2514
12
- kiln_ai/adapters/test_prompt_adaptors.py,sha256=nGq6H84rDMl72WUP2xqorQYW5yot0Z6sTQPXRL0mh5Y,8291
13
+ kiln_ai/adapters/test_prompt_adaptors.py,sha256=ikEeaWvBI4OQ_bVRYkUGPtjZIz37Ej2P8bAr85DGYNQ,8180
13
14
  kiln_ai/adapters/test_prompt_builders.py,sha256=SqGkluKZd7m7SPuq64NAprG0db11RDqoYai1m-1QgeQ,22585
14
- kiln_ai/adapters/test_provider_tools.py,sha256=QCknT944HN7jKLeSi9qS0cH_O5jKMMLThX7kWfAcJqg,32090
15
+ kiln_ai/adapters/test_provider_tools.py,sha256=Qts7nt8_9_WP0LPVlEJcwswcbqtVNtIa6u0IGpeQO1Y,32448
16
+ kiln_ai/adapters/test_remote_config.py,sha256=RxAJtTtzonum9LW0nT5HMcwCvhgSZLqjFs8a9gbJkEY,17095
15
17
  kiln_ai/adapters/chat/__init__.py,sha256=ELydKUGeCcTiBJogzZUT8VXqr5kDtmoB8_GoyO28qR0,192
16
- kiln_ai/adapters/chat/chat_formatter.py,sha256=aBGpMUUBx0V_-g5GXkAhmhIqIyfMwd7kphFu6E8ivTM,8343
18
+ kiln_ai/adapters/chat/chat_formatter.py,sha256=lr2zIj-jbZNStaM1VZSvoaN_e6KDKNWiNNPC6RDQ6ug,8321
17
19
  kiln_ai/adapters/chat/test_chat_formatter.py,sha256=MVEZTSIFBwLvplOmit-4TDdcmPXsaMZMQEwoXWmq1FI,4603
18
20
  kiln_ai/adapters/data_gen/__init__.py,sha256=QTZWaf7kq5BorhPvexJfwDEKmjRmIbhwW9ei8LW2SIs,276
19
- kiln_ai/adapters/data_gen/data_gen_prompts.py,sha256=kudjHnAz7L3q0k_NLyTlaIV7M0uRFrxXNcfcnjOE2uc,5810
20
- kiln_ai/adapters/data_gen/data_gen_task.py,sha256=0PuYCcj09BtpgNj23mKj_L45mKZBdV5VreUeZ-Tj_xM,6642
21
- kiln_ai/adapters/data_gen/test_data_gen_task.py,sha256=_v80CcPpTRQRBGgO9U-tj8PNg5Ixzc-7xCgSocCRai0,10706
21
+ kiln_ai/adapters/data_gen/data_gen_prompts.py,sha256=06gqU7uJDBr-G-txeGV9a4_NgKlbxDxhcylWclcVVxg,8792
22
+ kiln_ai/adapters/data_gen/data_gen_task.py,sha256=El-5Dad65JvYkgr9Q40LfdAQ7IUx9BIjxF5c_j8sEq0,7121
23
+ kiln_ai/adapters/data_gen/test_data_gen_task.py,sha256=nIuyJkYWsg9VUaLh95csrx8CnA3d8ivwmPjqTnOoz4Q,21308
22
24
  kiln_ai/adapters/eval/__init__.py,sha256=0ptbK0ZxWuraxGn_WMgmE1tcaq0k5t-g-52kVohvWCg,693
23
- kiln_ai/adapters/eval/base_eval.py,sha256=Ms-OPfOmp4_7jIgAxi9QbwEPQYHkkHA-F2ZW11S6MLg,7324
24
- kiln_ai/adapters/eval/eval_runner.py,sha256=EjgAM88RhV51aIM1tNwmtnOU8a7uyaSM95ZYu0JZ-Pc,8791
25
- kiln_ai/adapters/eval/g_eval.py,sha256=yDsyepDhvsi67F2gi85KZQO_0UoWKNJSpxc43ufvJOU,16098
25
+ kiln_ai/adapters/eval/base_eval.py,sha256=g7BWaljeuRquP-ygOBO6jwwzuWyNTYy_QhF0lxZlr-A,7476
26
+ kiln_ai/adapters/eval/eval_runner.py,sha256=W3qBVWBhKQzgxW2jp4ht_WALyjqwDJnsbX9L_85XUDc,8996
27
+ kiln_ai/adapters/eval/g_eval.py,sha256=NVq6iXgKbOG8qimivTciEh2C6lmgrKFXcbNu9yBBeSQ,16304
26
28
  kiln_ai/adapters/eval/registry.py,sha256=gZ_s0VgEx79Fswkgi1tS4yOl7lzpkvUBJZ62RldhM_w,626
27
- kiln_ai/adapters/eval/test_base_eval.py,sha256=zNoIrFqImgccOazC4yNof11ZObHkvh_DVnaaBBNw_jU,15776
28
- kiln_ai/adapters/eval/test_eval_runner.py,sha256=37cmZPjvZaNlNDzmstmOEUwQEFhpafD9jRhDD1UH6PE,18718
29
- kiln_ai/adapters/eval/test_g_eval.py,sha256=KaVjG6aHQQzGlOd4J_7S8YKR3EmA2aFpY8VOEDdrRHY,16479
30
- kiln_ai/adapters/eval/test_g_eval_data.py,sha256=8caiZfLWnXVX8alrBPrH7L7gqqSS9vO7u6PzcHurQcA,27769
29
+ kiln_ai/adapters/eval/test_base_eval.py,sha256=JRts5jsvD2XMqdegsenVl2yy_sL6ru9W7n9wPEbKD7U,15994
30
+ kiln_ai/adapters/eval/test_eval_runner.py,sha256=vSDlYo_ujB1EReCLUZlcnqNaamG2wB9QRil_X_oTEm0,18587
31
+ kiln_ai/adapters/eval/test_g_eval.py,sha256=4sn0sfZdKHgSW_Y-fbZAE88JAUERl93MhlZxKFkCMiY,21002
32
+ kiln_ai/adapters/eval/test_g_eval_data.py,sha256=9IIQE6YNmf-epogQapJloocTMSpF4dkTIeEEsgF474U,27805
31
33
  kiln_ai/adapters/fine_tune/__init__.py,sha256=DxdTR60chwgck1aEoVYWyfWi6Ed2ZkdJj0lar-SEAj4,257
32
- kiln_ai/adapters/fine_tune/base_finetune.py,sha256=CGho356kKnxQsvkHws9XfWuBYV0nmbCvEkff21D4e48,5914
33
- kiln_ai/adapters/fine_tune/dataset_formatter.py,sha256=yOVefk2qXwX29Y2nKU0XWtQgf1kNNMY5M0NhzsaatZ8,12975
34
+ kiln_ai/adapters/fine_tune/base_finetune.py,sha256=4mLrFHvERU76_e8bCuOGLTc5UAdFn4UUCuPAe_3uD0Q,5875
35
+ kiln_ai/adapters/fine_tune/dataset_formatter.py,sha256=oWYXOdkRaVZR_mIeox2gLf5_LZJ79hHV9PThk82zHtU,12928
34
36
  kiln_ai/adapters/fine_tune/finetune_registry.py,sha256=9RJLjviSoN3dQnKJE9Ss7df7dtdJgbuShB8IUcI-q9k,726
35
- kiln_ai/adapters/fine_tune/fireworks_finetune.py,sha256=ze0QxghpHAqwO9nXOTkDEC9irmqduX5bjIhZDU0DCZQ,20101
37
+ kiln_ai/adapters/fine_tune/fireworks_finetune.py,sha256=WuC2zkZQTD6msew81Dd6GMT6OV5mAl33_K9K7Os_OBY,20833
36
38
  kiln_ai/adapters/fine_tune/openai_finetune.py,sha256=Dz9E_0BWfrIkvv8ArZe-RKPwbIKPZ3v8rfbc3JELyTY,8571
37
39
  kiln_ai/adapters/fine_tune/test_base_finetune.py,sha256=atZI54SC6mVili5dEIuqwv2groLCZWYKSMzDZYjbUxQ,10705
38
- kiln_ai/adapters/fine_tune/test_dataset_formatter.py,sha256=7-axt5WPk1cEmsojr9xG6o1PHu7EvEn_YWIg1ZmqRK0,29907
39
- kiln_ai/adapters/fine_tune/test_fireworks_tinetune.py,sha256=dzOOFIzgRUGGNlfA7-L1URI4qwMVHg1fuUc8RBqrDNI,36765
40
+ kiln_ai/adapters/fine_tune/test_dataset_formatter.py,sha256=OmF3jW78FBHvDes6lusY8hWgLLHz5XBgHdDVWv2ccAI,29898
41
+ kiln_ai/adapters/fine_tune/test_fireworks_tinetune.py,sha256=Xq89amS0VyYP8zi8YteTudYHhykEK7-BZXOsIo_7uKE,37146
40
42
  kiln_ai/adapters/fine_tune/test_openai_finetune.py,sha256=NtMFo3LZjpAsNHFvIMHsFmWRrHrOKjniRvrZTx4nXhg,20001
41
43
  kiln_ai/adapters/fine_tune/test_together_finetune.py,sha256=ZwYmT4pPkhU-45Q-5fs4WL16dQ4OyvI7KXPevsrA24E,18122
42
- kiln_ai/adapters/fine_tune/test_vertex_finetune.py,sha256=W7oz6ZJktde1WludBb2lFpTXmU7VQN1FkeJpyN1dPbI,19218
43
- kiln_ai/adapters/fine_tune/together_finetune.py,sha256=rsJETfwkx21UzJH1CUd_hP-v1zQNBxK5b2uJIYSTpS4,14775
44
+ kiln_ai/adapters/fine_tune/test_vertex_finetune.py,sha256=DBQbNUgpqDEvjjk7eHwBvDXPCEkhf4yfUw8QPi5fFPE,19178
45
+ kiln_ai/adapters/fine_tune/together_finetune.py,sha256=KpJBZt0NBNUNLsVEYYC4Dzob1jnlOFQnVI8Q-4kY9d8,14766
44
46
  kiln_ai/adapters/fine_tune/vertex_finetune.py,sha256=Ik6Ov711-oruJnMHpVZTPimWJY2W_JnfdKIdR2djGrc,8545
45
47
  kiln_ai/adapters/model_adapters/__init__.py,sha256=m5GRtOHwVVvp_XDOss8c1X3NFf1wQQlC2eBgI4tXQhM,212
46
- kiln_ai/adapters/model_adapters/base_adapter.py,sha256=mGF3ozrFp14_elYXghgzZiWrEKo6EGY9lSdo3aRaJ-A,13101
47
- kiln_ai/adapters/model_adapters/litellm_adapter.py,sha256=G9SBxw-B6uB8I8LyKaZ6WDAq2OaUOCmvoVNYKbNdVu4,17074
48
+ kiln_ai/adapters/model_adapters/base_adapter.py,sha256=9z6i72nX5xIP9cvHFhz47sXl_g2Gv9DPnFjemQUiRSw,13287
49
+ kiln_ai/adapters/model_adapters/litellm_adapter.py,sha256=TGCgCKxJhMEFSgmVRDXwW5OlRnfP8omAAfv2dHMhgks,17938
48
50
  kiln_ai/adapters/model_adapters/litellm_config.py,sha256=zOQEkYKeoQ0FIbxTkyyoaGtaQiB9eYK3IuyUgqSwzLE,485
49
- kiln_ai/adapters/model_adapters/test_base_adapter.py,sha256=CWvVCr3Y_m8iQ1jU60PDG7qPpIP3gOSAXUfOUsQVAfI,16050
50
- kiln_ai/adapters/model_adapters/test_litellm_adapter.py,sha256=NZ9rXUHCDjNNuvzMjOHmmT5U02HXCm7WkuyNOXYaLNU,17301
51
+ kiln_ai/adapters/model_adapters/test_base_adapter.py,sha256=POHvlGTdZGCZf_ktrds3oBbvT06t5Gp-iGBEGFFN3sA,15958
52
+ kiln_ai/adapters/model_adapters/test_litellm_adapter.py,sha256=28xtjin8RZnf49-3RATtvon05mE4OxTxv0yd0ct1Dhc,19663
51
53
  kiln_ai/adapters/model_adapters/test_saving_adapter_results.py,sha256=xkd_b9GS-6ybst97FsS_XrvyTXMlEufYF1Q8CGpE1V8,9697
52
- kiln_ai/adapters/model_adapters/test_structured_output.py,sha256=-4NWrDTYJXC53UKoKfYzAg-uyD73I-iApqN-9FNB2qM,13463
54
+ kiln_ai/adapters/model_adapters/test_structured_output.py,sha256=1yYhQDchn3rmC44FMng55ViC-uBmNrqXUxuhwX-CWkc,13860
53
55
  kiln_ai/adapters/parsers/__init__.py,sha256=TGJS_8JhjUwg5Bnq4cDmwt5eIRo4vowmcL2A72L1Hzk,202
54
56
  kiln_ai/adapters/parsers/base_parser.py,sha256=AE8UYCttmVXbilpICotnDdFYTFhGMiBJHrxIUgPTAWM,280
55
57
  kiln_ai/adapters/parsers/json_parser.py,sha256=IszrBrhIFrrVr76UZsuejkBdqpZG27mU72264HVgVzE,1274
56
- kiln_ai/adapters/parsers/parser_registry.py,sha256=Lna-uYHBigKeq9e-mUbNQKcsZM1M7cDvxu7Gv4ECjLI,735
57
- kiln_ai/adapters/parsers/r1_parser.py,sha256=ucDRHPoFrmr1eOSNFEG0won6TPxkCKfGJQNNJng5qHA,3626
58
+ kiln_ai/adapters/parsers/parser_registry.py,sha256=BbY12zbXj-FgdJ8WqEcBLg26WXoDk2fmriLRo2LYCSk,710
59
+ kiln_ai/adapters/parsers/r1_parser.py,sha256=fbO-Ab2CVj6K756GaLGwNL6kkNqBBq7dWHtenL1oiNI,3559
58
60
  kiln_ai/adapters/parsers/request_formatters.py,sha256=NdZO8zcZy9tkea8JaD5c_OeoeVjoYYTG0GjwF812STw,1124
59
61
  kiln_ai/adapters/parsers/test_json_parser.py,sha256=9kdWe_vRC5wjP8A1Ym6Zu6enDIz4ARCNiRpcZr7_3ak,1971
60
62
  kiln_ai/adapters/parsers/test_parser_registry.py,sha256=FFJQgaKVu67yK4W7w_b26tuEYPPYGppfttJ0y5ctWUo,1041
61
- kiln_ai/adapters/parsers/test_r1_parser.py,sha256=XbB0saThkcgOvoYNq3TxDgILUu5Me38yeKoQonqaN-g,6296
63
+ kiln_ai/adapters/parsers/test_r1_parser.py,sha256=gj4N_JZmyBwZRqPDiGY0j30qQ1mrQhGrTuCRAgQv6_M,6306
62
64
  kiln_ai/adapters/parsers/test_request_formatters.py,sha256=t3FlKT_Tte2u8zXJTMl8VaE8IrSzumuBysahbGesrbU,2090
63
65
  kiln_ai/adapters/repair/__init__.py,sha256=dOO9MEpEhjiwzDVFg3MNfA2bKMPlax9iekDatpTkX8E,217
64
- kiln_ai/adapters/repair/repair_task.py,sha256=iW0bHWQq6Tir6ULTATWFS0zpwNji8Tbwhm2lZu52RsM,3342
66
+ kiln_ai/adapters/repair/repair_task.py,sha256=ziOKNo2dT0a4ggLIDk5ETfSTbuxn_xgI60w1Ajd0sww,3286
65
67
  kiln_ai/adapters/repair/test_repair_task.py,sha256=fMlad29edA2tTt4t7cv6cXVWhuWOJ9x1Mpb3wJFTD1I,8603
66
68
  kiln_ai/datamodel/__init__.py,sha256=eHDUB9ltKmnsx0TAX310o5OMLnZbSznMJLFRnNk6HlA,1927
67
- kiln_ai/datamodel/basemodel.py,sha256=Qsr3Kxq5B5rfPZxQFrfOMTGwInnfYy5srd8nK0nwOs0,22204
68
- kiln_ai/datamodel/datamodel_enums.py,sha256=7BpyiXEtNsz43el7zTAeaaozDVUZUJCFKHsoaXoTomQ,3796
69
+ kiln_ai/datamodel/basemodel.py,sha256=jyB351QSq6ll9JwzxCBaCY1aXNRp5nDF1dBdhVA6KRM,23871
70
+ kiln_ai/datamodel/datamodel_enums.py,sha256=jTICOyCIUJ3hr13T2_CXPLzxgLtSx3JlE4GJ2vPnVKI,3860
69
71
  kiln_ai/datamodel/dataset_filters.py,sha256=zXS5QeCqWa1vAxs3Pyy5FJtySx9yYJzxsCMANd23-3c,5502
70
- kiln_ai/datamodel/dataset_split.py,sha256=GDF3Pj3NLG42X8kjR606R_aN14rpqx8Ig56FG8NCn9k,5790
71
- kiln_ai/datamodel/eval.py,sha256=larT3emjpLVYOSB2ga5GHTS4O7l9mJwtIO4EqCyYF7g,14214
72
- kiln_ai/datamodel/finetune.py,sha256=mOTM0KEbRNZ5fvzgpUtLRugaGkhWQKFwdsQWggIzMls,4813
72
+ kiln_ai/datamodel/dataset_split.py,sha256=dAqwwNtWhKntEGJtauT0-YDG8aLFISelYS7o8TWG0TE,5923
73
+ kiln_ai/datamodel/eval.py,sha256=xYRSUGxINR-4pZvAUkg8GpemWFlyywtkA707oT3R6OM,15897
74
+ kiln_ai/datamodel/finetune.py,sha256=3cwg9FTbhYDH2DEWS_L8lMS5KPok9mJItWjYHC6LnH0,4835
73
75
  kiln_ai/datamodel/json_schema.py,sha256=o50wSp8frRXjT-NZjml4-Is7LNoF7DQP4g3AaaYzBfI,3379
74
76
  kiln_ai/datamodel/model_cache.py,sha256=9X4aAigbkFdytckgw8InCMh86uBna0ME_1HJSeMPEn0,4495
75
- kiln_ai/datamodel/project.py,sha256=uVH2_3TDFtsG_tpts81A-zbd9uPDFxAwMCKZt_km3IE,727
76
- kiln_ai/datamodel/prompt.py,sha256=70JPYHfgyX18cHW_DXoMzIOA28Jbaz6gyabElmpycyc,1161
77
- kiln_ai/datamodel/prompt_id.py,sha256=S4Wcrt05USN-JrO8BeDlNYGrcoTOVocR3iUxBbgoq1c,2566
77
+ kiln_ai/datamodel/project.py,sha256=xdO0S_pnF1uoTr-DfuF1Xr1tK8WrhbHvXKk6AhfrjB0,778
78
+ kiln_ai/datamodel/prompt.py,sha256=ZvqbycqP3XuEF7lXqCPTXlDHrS0OPZOUhU5T95_ns6M,1210
79
+ kiln_ai/datamodel/prompt_id.py,sha256=oBnU_j8g3Xnj8TJbgQAQfW7I4vcyna-pDxFbiLvPs74,2631
78
80
  kiln_ai/datamodel/registry.py,sha256=XwGFXJFKZtOpR1Z9ven6SftggfADdZRm8TFxCEVtfUQ,957
79
81
  kiln_ai/datamodel/strict_mode.py,sha256=sm4Xka8mnJHCShtbh6MMU5dDQv-cLj8lHgHkmFKpsl0,849
80
- kiln_ai/datamodel/task.py,sha256=ZjTfOxk4Op83CAVp1KFsuHeaeqBNAvdVS-QQCKCNIug,9253
81
- kiln_ai/datamodel/task_output.py,sha256=P7bRI-Qn2n7f8XpR7hwgSTKhx3gzvsZ1aJOQMl-YW4s,13245
82
- kiln_ai/datamodel/task_run.py,sha256=0Lwc7zQoeWzuvHYv00lUGfsNQp8gCKmCVKAq3FDrruY,8806
83
- kiln_ai/datamodel/test_basemodel.py,sha256=1__3dVyxCVMQH7jhBYYEYgaCgtc08faSIlVOLfPdMZ0,18021
82
+ kiln_ai/datamodel/task.py,sha256=rKwPN7xzph94vYvqepTuBpl9mi8E_665i6EwbLtnKDU,9412
83
+ kiln_ai/datamodel/task_output.py,sha256=404qa5jQhdDUzcYj4043v8YERhoHc61AVdaDGsDCY1w,13193
84
+ kiln_ai/datamodel/task_run.py,sha256=rTPqmN0VOiw7P8Fy0cVQXzV7h0sO2-SWqhGsYN0owLU,8759
85
+ kiln_ai/datamodel/test_basemodel.py,sha256=ssa8jZKJHeew2Xx0k9fUPKaCcw-VQKioACNbbPVJo1o,25254
84
86
  kiln_ai/datamodel/test_dataset_filters.py,sha256=TFHQZLB0rJxnxsFjD546eXVFxZNAJi0sPZ8j24wYd1w,5322
85
87
  kiln_ai/datamodel/test_dataset_split.py,sha256=mXB8udml_6U4BXR0xAGHsFINnhdcTDB1qhuZbQemk-w,11055
86
88
  kiln_ai/datamodel/test_datasource.py,sha256=H4Kc-Im9eM7WnADWZXdoiOIrOl05RtkyuhTCKiRimyU,3905
87
- kiln_ai/datamodel/test_eval_model.py,sha256=J7MqwWBgPpeXGqh3IacVUUHdZFJSZ2MgTsUNu-hNOJw,19528
89
+ kiln_ai/datamodel/test_eval_model.py,sha256=WbGWiIP4b6pu-Z117iVNsPLnrpFW2-sj89oOIQ8RLEk,23940
88
90
  kiln_ai/datamodel/test_example_models.py,sha256=dwLAAOXLvdKupE5Q1m6VNcHtfdhpi2qWtoEbC0nfJg8,26156
89
91
  kiln_ai/datamodel/test_json_schema.py,sha256=R0Cfc9WbieMslgvYsj2HFx8RHIq2fF9NcT5jH-kEqh4,4793
90
92
  kiln_ai/datamodel/test_model_cache.py,sha256=Fy-ucYNzS5JEG-8SFY4nVHA8iRbXXxai20f8_oGl97o,8184
91
- kiln_ai/datamodel/test_model_perf.py,sha256=9_76f__5XtZSHSjuaoiHRj2t-z3OWn-sSA4S9kH1jpY,3306
93
+ kiln_ai/datamodel/test_model_perf.py,sha256=JcJpedvgK49zj_VIUc5DW0QjuIXhaBQbBpccUJVy2hU,3319
92
94
  kiln_ai/datamodel/test_models.py,sha256=wENuBiZ2Y-N_puFkitNZ1T-lBpVgQWotfhGug6k4AMY,21674
93
95
  kiln_ai/datamodel/test_nested_save.py,sha256=xciCddqvPyKyoyjC5Lx_3Kh1t4LJv1xYRAPazR3SRcs,5588
94
96
  kiln_ai/datamodel/test_output_rating.py,sha256=zvPIp2shAgCs2RQBgwYoL09fRA3krHvgAqUa91RlWR0,15125
95
- kiln_ai/datamodel/test_prompt_id.py,sha256=ihyXVPQi0dSLGnBM7rTXRnVaiWXhh7HJmSy4nZZKmso,4225
97
+ kiln_ai/datamodel/test_prompt_id.py,sha256=_vcuiDvai8TENb6agk0F9ZsaTrAgoD1VkMxRIT2p9mQ,4384
96
98
  kiln_ai/datamodel/test_registry.py,sha256=PhS4anLi5Bf_023obuTlO5DALhtPB8WIc_bX12Yg6Po,2705
97
- kiln_ai/datamodel/test_task.py,sha256=X85YgGt7Y9kuv6-jE9kl5b8mPz3cgrEFqiZAZFWfpO0,11890
99
+ kiln_ai/datamodel/test_task.py,sha256=LdMb2C8emK5vvgE1ACRFRmetWHgXGFgk_dstbgRhO54,12019
98
100
  kiln_ai/utils/__init__.py,sha256=PTD0MwBCKAMIOGsTAwsFaJOusTJJoRFTfOGqRvCaU-E,142
99
101
  kiln_ai/utils/async_job_runner.py,sha256=1gjoEq5yc2MOVjDo05O1wztguEuMC6l3haDZsltlvuw,3457
100
- kiln_ai/utils/config.py,sha256=Pk9w7C985jinE9_SDJzgkG1CkPtIaitLZqia_dtjhwQ,8520
102
+ kiln_ai/utils/config.py,sha256=GRqq-52F4_ICuWiJzzaIJ-Z77ayqgLbIw3-Gq86zMUY,8852
101
103
  kiln_ai/utils/dataset_import.py,sha256=EqBBBopCEUy1JH4-EAsBETwGp4MFjzZGfUUBZ6FLfGY,9011
102
104
  kiln_ai/utils/exhaustive_error.py,sha256=TkkRixIAR3CPEKHeAJzyv0mtxp6BxUBKMvobA3vzQug,262
103
105
  kiln_ai/utils/formatting.py,sha256=VtB9oag0lOGv17dwT7OPX_3HzBfaU9GsLH-iLete0yM,97
104
- kiln_ai/utils/logging.py,sha256=LY7EnxZIsSuVxKP53JMLp-TdFomOMkxN793trN_kAws,6729
106
+ kiln_ai/utils/logging.py,sha256=ixtv2Mm6-XWB2PVUPAWVRXnPJULvoTDrsp5NTAk3yp0,6815
105
107
  kiln_ai/utils/name_generator.py,sha256=v26TgpCwQbhQFcZvzgjZvURinjrOyyFhxpsI6NQrHKc,1914
106
108
  kiln_ai/utils/test_async_job_runner.py,sha256=8AwPfOlR09qzfhVm-djpkmuoyHxJJ19QEzs0WV5KFSQ,6813
107
109
  kiln_ai/utils/test_config.py,sha256=8goGdVLOO1OiSPnuDLUHbEJWJ8hAjaAIDg0myhR2A00,9687
108
110
  kiln_ai/utils/test_dataset_import.py,sha256=BEl38D95HQYpc7_jeB1N-ocOnKM1DLutp669cNrVOuE,25765
109
111
  kiln_ai/utils/test_name_geneator.py,sha256=9-hSTBshyakqlPbFnNcggwLrL7lcPTitauBYHg9jFWI,1513
110
- kiln_ai-0.17.0.dist-info/METADATA,sha256=W9UIYyQGlhO3fcDr9IBaxUTST_lF_-DHKGm3cCUPcH0,12263
111
- kiln_ai-0.17.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
112
- kiln_ai-0.17.0.dist-info/licenses/LICENSE.txt,sha256=_NA5pnTYgRRr4qH6lE3X-TuZJ8iRcMUi5ASoGr-lEx8,1209
113
- kiln_ai-0.17.0.dist-info/RECORD,,
112
+ kiln_ai-0.19.0.dist-info/METADATA,sha256=0PTv8ksKamQEk30IKehRIuIQ7TK5LfI0fANyjg8WjKc,13507
113
+ kiln_ai-0.19.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
114
+ kiln_ai-0.19.0.dist-info/licenses/LICENSE.txt,sha256=_NA5pnTYgRRr4qH6lE3X-TuZJ8iRcMUi5ASoGr-lEx8,1209
115
+ kiln_ai-0.19.0.dist-info/RECORD,,