fabricatio 0.2.9.dev4__cp312-cp312-win_amd64.whl → 0.2.10.dev1__cp312-cp312-win_amd64.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.
@@ -6,12 +6,11 @@ from pathlib import Path
6
6
  from typing import Any, Callable, Dict, Iterable, List, Optional, Self, Type, Union, final, overload
7
7
 
8
8
  import orjson
9
- import rtoml
10
9
  from fabricatio.config import configs
11
10
  from fabricatio.fs.readers import MAGIKA, safe_text_read
12
11
  from fabricatio.journal import logger
13
12
  from fabricatio.parser import JsonCapture
14
- from fabricatio.rust import blake3_hash
13
+ from fabricatio.rust import blake3_hash, detect_language
15
14
  from fabricatio.rust_instances import TEMPLATE_MANAGER
16
15
  from fabricatio.utils import ok
17
16
  from litellm.utils import token_counter
@@ -53,7 +52,7 @@ class Display(Base):
53
52
  Returns:
54
53
  str: JSON string with 1-level indentation for readability
55
54
  """
56
- return self.model_dump_json(indent=1)
55
+ return self.model_dump_json(indent=1, by_alias=True)
57
56
 
58
57
  def compact(self) -> str:
59
58
  """Generate compact JSON representation.
@@ -61,7 +60,7 @@ class Display(Base):
61
60
  Returns:
62
61
  str: Minified JSON string without whitespace
63
62
  """
64
- return self.model_dump_json()
63
+ return self.model_dump_json(by_alias=True)
65
64
 
66
65
  @staticmethod
67
66
  def seq_display(seq: Iterable["Display"], compact: bool = False) -> str:
@@ -225,7 +224,7 @@ class PersistentAble(Base):
225
224
  - Hash generated from JSON content ensures uniqueness
226
225
  """
227
226
  p = Path(path)
228
- out = self.model_dump_json(indent=1)
227
+ out = self.model_dump_json(indent=1, by_alias=True)
229
228
 
230
229
  # Generate a timestamp in the format YYYYMMDD_HHMMSS
231
230
  timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
@@ -298,8 +297,17 @@ class PersistentAble(Base):
298
297
  class Language(Base):
299
298
  """Class that provides a language attribute."""
300
299
 
301
- language: str
302
- """The fullname of the written language of this object."""
300
+ @property
301
+ def language(self) -> str:
302
+ """Get the language of the object."""
303
+ if isinstance(self, Described):
304
+ return detect_language(self.description)
305
+ if isinstance(self, Titled):
306
+ return detect_language(self.title)
307
+ if isinstance(self, Named):
308
+ return detect_language(self.name)
309
+
310
+ return detect_language(self.model_dump_json(by_alias=True))
303
311
 
304
312
 
305
313
  class ModelHash(Base):
@@ -543,7 +551,7 @@ class FinalizedDumpAble(Base):
543
551
  Returns:
544
552
  str: The finalized dump of the object.
545
553
  """
546
- return self.model_dump_json()
554
+ return self.model_dump_json(indent=1, by_alias=True)
547
555
 
548
556
  def finalized_dump_to(self, path: str | Path) -> Self:
549
557
  """Finalize the dump of the object to a file.
@@ -655,8 +663,9 @@ class Vectorizable(Base):
655
663
  This class includes methods to prepare the model for vectorization, ensuring it fits within a specified token length.
656
664
  """
657
665
 
666
+ @abstractmethod
658
667
  def _prepare_vectorization_inner(self) -> str:
659
- return rtoml.dumps(self.model_dump())
668
+ """Prepare the model for vectorization."""
660
669
 
661
670
  @final
662
671
  def prepare_vectorization(self, max_length: Optional[int] = None) -> str:
@@ -674,8 +683,7 @@ class Vectorizable(Base):
674
683
  max_length = max_length or configs.embedding.max_sequence_length
675
684
  chunk = self._prepare_vectorization_inner()
676
685
  if max_length and (length := token_counter(text=chunk)) > max_length:
677
- logger.error(err := f"Chunk exceeds maximum sequence length {max_length}, got {length}, see {chunk}")
678
- raise ValueError(err)
686
+ raise ValueError(f"Chunk exceeds maximum sequence length {max_length}, got {length}, see \n{chunk}")
679
687
 
680
688
  return chunk
681
689
 
@@ -1,47 +1,16 @@
1
1
  """This module contains the types for the keyword arguments of the methods in the models module."""
2
2
 
3
- from importlib.util import find_spec
4
- from typing import Any, Dict, List, Optional, Required, TypedDict
3
+ from typing import Any, Dict, List, NotRequired, Optional, Required, TypedDict
5
4
 
6
5
  from litellm.caching.caching import CacheMode
7
6
  from litellm.types.caching import CachingSupportedCallTypes
8
7
 
9
- if find_spec("pymilvus"):
10
- from pymilvus import CollectionSchema
11
- from pymilvus.milvus_client import IndexParams
12
8
 
13
- class CollectionConfigKwargs(TypedDict, total=False):
14
- """Configuration parameters for a vector collection.
9
+ class ChunkKwargs(TypedDict):
10
+ """Configuration parameters for chunking operations."""
15
11
 
16
- These arguments are typically used when configuring connections to vector databases.
17
- """
18
-
19
- dimension: int | None
20
- primary_field_name: str
21
- id_type: str
22
- vector_field_name: str
23
- metric_type: str
24
- timeout: float | None
25
- schema: CollectionSchema | None
26
- index_params: IndexParams | None
27
-
28
-
29
- class FetchKwargs(TypedDict, total=False):
30
- """Arguments for fetching data from vector collections.
31
-
32
- Controls how data is retrieved from vector databases, including filtering
33
- and result limiting parameters.
34
- """
35
-
36
- collection_name: str | None
37
- similarity_threshold: float
38
- result_per_query: int
39
-
40
-
41
- class RetrievalKwargs(FetchKwargs, total=False):
42
- """Arguments for retrieval operations."""
43
-
44
- final_limit: int
12
+ max_chunk_size: int
13
+ max_overlapping_rate: NotRequired[float]
45
14
 
46
15
 
47
16
  class EmbeddingKwargs(TypedDict, total=False):
@@ -139,6 +108,7 @@ class ReviewKwargs[T](ReviewInnerKwargs[T], total=False):
139
108
 
140
109
  class ReferencedKwargs[T](ValidateKwargs[T], total=False):
141
110
  """Arguments for content review operations."""
111
+
142
112
  reference: str
143
113
 
144
114
 
fabricatio/models/task.py CHANGED
@@ -7,11 +7,11 @@ from asyncio import Queue
7
7
  from typing import Any, List, Optional, Self
8
8
 
9
9
  from fabricatio.config import configs
10
+ from fabricatio.constants import TaskStatus
10
11
  from fabricatio.core import env
11
12
  from fabricatio.journal import logger
12
13
  from fabricatio.models.events import Event, EventLike
13
14
  from fabricatio.models.generic import ProposedAble, WithBriefing, WithDependency
14
- from fabricatio.models.utils import TaskStatus
15
15
  from fabricatio.rust_instances import TEMPLATE_MANAGER
16
16
  from pydantic import Field, PrivateAttr
17
17
 
@@ -112,12 +112,12 @@ class Task[T](WithBriefing, ProposedAble, WithDependency):
112
112
  """Return a formatted status label for the task.
113
113
 
114
114
  Args:
115
- status (TaskStatus): The status of the task.
115
+ status (fabricatio.constants.TaskStatus): The status of the task.
116
116
 
117
117
  Returns:
118
118
  str: The formatted status label.
119
119
  """
120
- return self._namespace.derive(self.name).push(status.value).collapse()
120
+ return self._namespace.derive(self.name).push(status).collapse()
121
121
 
122
122
  @property
123
123
  def pending_label(self) -> str:
@@ -2,7 +2,7 @@
2
2
 
3
3
  import traceback
4
4
  from asyncio import gather
5
- from typing import Callable, Dict, Iterable, List, Optional, Self, Sequence, Set, Union, Unpack, overload
5
+ from typing import Callable, Dict, Iterable, List, Literal, Optional, Self, Sequence, Set, Union, Unpack, overload
6
6
 
7
7
  import asyncstdlib
8
8
  import litellm
@@ -13,7 +13,6 @@ from fabricatio.models.generic import ScopedConfig, WithBriefing
13
13
  from fabricatio.models.kwargs_types import ChooseKwargs, EmbeddingKwargs, GenerateKwargs, LLMKwargs, ValidateKwargs
14
14
  from fabricatio.models.task import Task
15
15
  from fabricatio.models.tool import Tool, ToolBox
16
- from fabricatio.models.utils import Messages
17
16
  from fabricatio.parser import GenericCapture, JsonCapture
18
17
  from fabricatio.rust_instances import TEMPLATE_MANAGER
19
18
  from fabricatio.utils import ok
@@ -28,7 +27,7 @@ from litellm.types.utils import (
28
27
  )
29
28
  from litellm.utils import CustomStreamWrapper, token_counter # pyright: ignore [reportPrivateImportUsage]
30
29
  from more_itertools import duplicates_everseen
31
- from pydantic import Field, NonNegativeInt, PositiveInt
30
+ from pydantic import BaseModel, ConfigDict, Field, NonNegativeInt, PositiveInt
32
31
 
33
32
  if configs.cache.enabled and configs.cache.type:
34
33
  litellm.enable_cache(type=configs.cache.type, **configs.cache.params)
@@ -303,7 +302,7 @@ class LLMUsage(ScopedConfig):
303
302
  and logger.debug("Co-extraction is enabled.") is None
304
303
  and (
305
304
  validated := validator(
306
- response:=await self.aask(
305
+ response := await self.aask(
307
306
  question=(
308
307
  TEMPLATE_MANAGER.render_template(
309
308
  configs.templates.co_validation_template,
@@ -495,7 +494,7 @@ class LLMUsage(ScopedConfig):
495
494
  affirm_case: str = "",
496
495
  deny_case: str = "",
497
496
  **kwargs: Unpack[ValidateKwargs[bool]],
498
- ) -> bool:
497
+ ) -> Optional[bool]:
499
498
  """Asynchronously judges a prompt using AI validation.
500
499
 
501
500
  Args:
@@ -732,3 +731,72 @@ class ToolBoxUsage(LLMUsage):
732
731
  for other in (x for x in others if isinstance(x, ToolBoxUsage)):
733
732
  other.toolboxes.update(self.toolboxes)
734
733
  return self
734
+
735
+
736
+ class Message(BaseModel):
737
+ """A class representing a message."""
738
+
739
+ model_config = ConfigDict(use_attribute_docstrings=True)
740
+ role: Literal["user", "system", "assistant"]
741
+ """The role of the message sender."""
742
+ content: str
743
+ """The content of the message."""
744
+
745
+
746
+ class Messages(list):
747
+ """A list of messages."""
748
+
749
+ def add_message(self, role: Literal["user", "system", "assistant"], content: str) -> Self:
750
+ """Adds a message to the list with the specified role and content.
751
+
752
+ Args:
753
+ role (Literal["user", "system", "assistant"]): The role of the message sender.
754
+ content (str): The content of the message.
755
+
756
+ Returns:
757
+ Self: The current instance of Messages to allow method chaining.
758
+ """
759
+ if content:
760
+ self.append(Message(role=role, content=content))
761
+ return self
762
+
763
+ def add_user_message(self, content: str) -> Self:
764
+ """Adds a user message to the list with the specified content.
765
+
766
+ Args:
767
+ content (str): The content of the user message.
768
+
769
+ Returns:
770
+ Self: The current instance of Messages to allow method chaining.
771
+ """
772
+ return self.add_message("user", content)
773
+
774
+ def add_system_message(self, content: str) -> Self:
775
+ """Adds a system message to the list with the specified content.
776
+
777
+ Args:
778
+ content (str): The content of the system message.
779
+
780
+ Returns:
781
+ Self: The current instance of Messages to allow method chaining.
782
+ """
783
+ return self.add_message("system", content)
784
+
785
+ def add_assistant_message(self, content: str) -> Self:
786
+ """Adds an assistant message to the list with the specified content.
787
+
788
+ Args:
789
+ content (str): The content of the assistant message.
790
+
791
+ Returns:
792
+ Self: The current instance of Messages to allow method chaining.
793
+ """
794
+ return self.add_message("assistant", content)
795
+
796
+ def as_list(self) -> List[Dict[str, str]]:
797
+ """Converts the messages to a list of dictionaries.
798
+
799
+ Returns:
800
+ list[dict]: A list of dictionaries representing the messages.
801
+ """
802
+ return [message.model_dump() for message in self]
Binary file
fabricatio/rust.pyi CHANGED
@@ -12,9 +12,7 @@ Key Features:
12
12
  """
13
13
 
14
14
  from pathlib import Path
15
- from typing import List, Optional
16
-
17
- from pydantic import JsonValue
15
+ from typing import Any, Dict, List, Optional
18
16
 
19
17
  class TemplateManager:
20
18
  """Template rendering engine using Handlebars templates.
@@ -56,7 +54,7 @@ class TemplateManager:
56
54
  This refreshes the template cache, finding any new or modified templates.
57
55
  """
58
56
 
59
- def render_template(self, name: str, data: JsonValue) -> str:
57
+ def render_template(self, name: str, data: Dict[str, Any]) -> str:
60
58
  """Render a template with context data.
61
59
 
62
60
  Args:
@@ -70,7 +68,7 @@ class TemplateManager:
70
68
  RuntimeError: If template rendering fails
71
69
  """
72
70
 
73
- def render_template_raw(self, template: str, data: JsonValue) -> str:
71
+ def render_template_raw(self, template: str, data: Dict[str, Any]) -> str:
74
72
  """Render a template with context data.
75
73
 
76
74
  Args:
@@ -104,6 +102,28 @@ def split_word_bounds(string: str) -> List[str]:
104
102
  A list of words extracted from the string.
105
103
  """
106
104
 
105
+ def split_sentence_bounds(string: str) -> List[str]:
106
+ """Split the string into sentences based on sentence boundaries.
107
+
108
+ Args:
109
+ string: The input string to be split.
110
+
111
+ Returns:
112
+ A list of sentences extracted from the string.
113
+ """
114
+
115
+ def split_into_chunks(string: str, max_chunk_size: int, max_overlapping_rate: float = 0.3) -> List[str]:
116
+ """Split the string into chunks of a specified size.
117
+
118
+ Args:
119
+ string: The input string to be split.
120
+ max_chunk_size: The maximum size of each chunk.
121
+ max_overlapping_rate: The minimum overlapping rate between chunks.
122
+
123
+ Returns:
124
+ A list of chunks extracted from the string.
125
+ """
126
+
107
127
  def word_count(string: str) -> int:
108
128
  """Count the number of words in the string.
109
129
 
@@ -127,7 +147,7 @@ class BibManager:
127
147
  RuntimeError: If file cannot be read or parsed
128
148
  """
129
149
 
130
- def get_cite_key(self, title: str) -> Optional[str]:
150
+ def get_cite_key_by_title(self, title: str) -> Optional[str]:
131
151
  """Find citation key by exact title match.
132
152
 
133
153
  Args:
@@ -136,6 +156,15 @@ class BibManager:
136
156
  Returns:
137
157
  Citation key if exact match found, None otherwise
138
158
  """
159
+ def get_cite_key_by_title_fuzzy(self, title: str) -> Optional[str]:
160
+ """Find citation key by fuzzy title match.
161
+
162
+ Args:
163
+ title: Search term to find in bibliography entries
164
+
165
+ Returns:
166
+ Citation key of best matching entry, or None if no good match
167
+ """
139
168
 
140
169
  def get_cite_key_fuzzy(self, query: str) -> Optional[str]:
141
170
  """Find best matching citation using fuzzy text search.
fabricatio/utils.py CHANGED
@@ -25,7 +25,7 @@ async def ask_edit(
25
25
  return res
26
26
 
27
27
 
28
- def override_kwargs(kwargs: Mapping[str,Any], **overrides) -> Dict[str, Any]:
28
+ def override_kwargs(kwargs: Mapping[str, Any], **overrides) -> Dict[str, Any]:
29
29
  """Override the values in kwargs with the provided overrides."""
30
30
  new_kwargs = dict(kwargs.items())
31
31
  new_kwargs.update({k: v for k, v in overrides.items() if v is not None})
@@ -52,3 +52,16 @@ def ok[T](val: Optional[T], msg: str = "Value is None") -> T:
52
52
  if val is None:
53
53
  raise ValueError(msg)
54
54
  return val
55
+
56
+
57
+ def wrapp_in_block(string: str, title: str) -> str:
58
+ """Wraps a string in a block with a title.
59
+
60
+ Args:
61
+ string: The string to wrap.
62
+ title: The title of the block.
63
+
64
+ Returns:
65
+ str: The wrapped string.
66
+ """
67
+ return f"--- Start of {title} ---\n{string}\n--- End of {title} ---"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fabricatio
3
- Version: 0.2.9.dev4
3
+ Version: 0.2.10.dev1
4
4
  Classifier: License :: OSI Approved :: MIT License
5
5
  Classifier: Programming Language :: Rust
6
6
  Classifier: Programming Language :: Python :: 3.12
@@ -23,7 +23,6 @@ Requires-Dist: pymitter>=1.0.0
23
23
  Requires-Dist: questionary>=2.1.0
24
24
  Requires-Dist: regex>=2024.11.6
25
25
  Requires-Dist: rich>=13.9.4
26
- Requires-Dist: rtoml>=0.12.0
27
26
  Requires-Dist: pymilvus>=2.5.4 ; extra == 'rag'
28
27
  Requires-Dist: fabricatio[calc,plot,rag] ; extra == 'full'
29
28
  Requires-Dist: sympy>=1.13.3 ; extra == 'calc'
@@ -45,8 +44,6 @@ Project-URL: Issues, https://github.com/Whth/fabricatio/issues
45
44
  # Fabricatio
46
45
 
47
46
  ![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)
48
- ![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)
49
- ![Build Status](https://img.shields.io/badge/build-passing-brightgreen)
50
47
 
51
48
  ## Overview
52
49
 
@@ -1,61 +1,63 @@
1
- fabricatio-0.2.9.dev4.dist-info/METADATA,sha256=qo6WjSrz5Br7ypVenUufk1zhMg9yW_Qzt_hoLuOPFKo,5288
2
- fabricatio-0.2.9.dev4.dist-info/WHEEL,sha256=jABKVkLC9kJr8mi_er5jOqpiQUjARSLXDUIIxDqsS50,96
3
- fabricatio-0.2.9.dev4.dist-info/licenses/LICENSE,sha256=do7J7EiCGbq0QPbMAL_FqLYufXpHnCnXBOuqVPwSV8Y,1088
4
- fabricatio/actions/article.py,sha256=uwRXKCzTp5C-vwIMuCJOsTwCU_F2uJ3cVNKS74AABbo,12669
5
- fabricatio/actions/article_rag.py,sha256=itGH-VCKTVFm7hrYIOOT4FyFXP8CbL042kpYNI9a2BE,4735
1
+ fabricatio-0.2.10.dev1.dist-info/METADATA,sha256=HRPFnRmPH19wYpcE1dJoL6Kltg2vewsF432CMSqV-Yg,5118
2
+ fabricatio-0.2.10.dev1.dist-info/WHEEL,sha256=jABKVkLC9kJr8mi_er5jOqpiQUjARSLXDUIIxDqsS50,96
3
+ fabricatio-0.2.10.dev1.dist-info/licenses/LICENSE,sha256=do7J7EiCGbq0QPbMAL_FqLYufXpHnCnXBOuqVPwSV8Y,1088
4
+ fabricatio/actions/article.py,sha256=0PE-b47WvBQpa4XPwc4sMe11GY8KO71N4pui_Yrnz_I,8993
5
+ fabricatio/actions/article_rag.py,sha256=79466dKS1TaT2rw5gadM1WfZoRJy07LmtoMXvfCZ2-U,5952
6
6
  fabricatio/actions/output.py,sha256=gkC2u_VpMJ6jOnbyRAJN24UVK7iDAMzhItYukaW8Spk,6498
7
- fabricatio/actions/rag.py,sha256=5nSih3YUkdt1uU02hSAMW6sADq9mkMOR1wDv7zIrIGQ,2737
7
+ fabricatio/actions/rag.py,sha256=9fM4oR5B4AJNhKmWfUlNIeF4QkUntQscICNVo_zWPSA,3580
8
8
  fabricatio/actions/rules.py,sha256=SNvAvQx4xUare16Za_dEpYlYI_PJNnbiO-E0XDa5JT4,2857
9
9
  fabricatio/actions/__init__.py,sha256=wVENCFtpVb1rLFxoOFJt9-8smLWXuJV7IwA8P3EfFz4,48
10
10
  fabricatio/capabilities/advanced_judge.py,sha256=selB0Gwf1F4gGJlwBiRo6gI4KOUROgh3WnzO3mZFEls,706
11
11
  fabricatio/capabilities/censor.py,sha256=bBT5qy-kp7fh8g4Lz3labSwxwJ60gGd_vrkc6k1cZ1U,4719
12
- fabricatio/capabilities/check.py,sha256=q12h9mQyGGjWiJp4r7JgYWeuWzj0fT3DxtL7s4n-0pY,8520
12
+ fabricatio/capabilities/check.py,sha256=kYqzohhv2bZfl1aKSUt7a8snT8YEl2zgha_ZdAdMMfQ,8622
13
13
  fabricatio/capabilities/correct.py,sha256=W_cInqlciNEhyMK0YI53jk4EvW9uAdge90IO9OElUmA,10420
14
14
  fabricatio/capabilities/propose.py,sha256=hkBeSlmcTdfYWT-ph6nlbtHXBozi_JXqXlWcnBy3W78,2007
15
- fabricatio/capabilities/rag.py,sha256=8TTJSV2Tz0naXyOQ5c_RQ4h9ZxyOOSE7BvyWxKkQMU0,17722
15
+ fabricatio/capabilities/rag.py,sha256=kqcunWBC6oA4P1rzIG2Xu9zqSg73H3uKPF41JJQ1HVI,9595
16
16
  fabricatio/capabilities/rating.py,sha256=Wt_H5fA1H4XuZGIMI8pr0cp_6jnXJABlo8lfU_4Fp5A,17645
17
17
  fabricatio/capabilities/review.py,sha256=-EMZe0ADFPT6fPGmra16UPjJC1M3rAs6dPFdTZ88Fgg,5060
18
18
  fabricatio/capabilities/task.py,sha256=JahC61X233UIPsjovxJgc_yqj_BjWZJBCzJZq11M2Xk,4417
19
19
  fabricatio/capabilities/__init__.py,sha256=v1cHRHIJ2gxyqMLNCs6ERVcCakSasZNYzmMI4lqAcls,57
20
20
  fabricatio/config.py,sha256=gqhdKxoj4S0EmQKprAEWUARn7yJg-w5UJ7d7GPlyttw,17631
21
+ fabricatio/constants.py,sha256=thfDuF6JEtJ5CHOnAJLfqvn5834n8ep6DH2jc6XGzQM,577
21
22
  fabricatio/core.py,sha256=VQ_JKgUGIy2gZ8xsTBZCdr_IP7wC5aPg0_bsOmjQ588,6458
22
- fabricatio/decorators.py,sha256=C0Gi7wcXC-0sWITqsSv3JdBGcgVJOlRvOt0FfO0aUsA,7554
23
+ fabricatio/decorators.py,sha256=-rLj9OXRfzY2E2euLKAHNRcWXjA1teLElg4zZYdIojs,8291
23
24
  fabricatio/fs/curd.py,sha256=p8y0LGKgVDk-CWOlm37E6wg7RK6RCD6denKo-VsW28c,4763
24
25
  fabricatio/fs/readers.py,sha256=M5kojKWsJQMQpE4CBbYvas0JKmPaiaYSfWmiqJx1SP4,1884
25
26
  fabricatio/fs/__init__.py,sha256=PCf0s_9KDjVfNw7AfPoJzGt3jMq4gJOfbcT4pb0D0ZY,588
26
27
  fabricatio/journal.py,sha256=stnEP88aUBA_GmU9gfTF2EZI8FS2OyMLGaMSTgK4QgA,476
27
28
  fabricatio/models/action.py,sha256=Kfa-zojgHQ1vPoC2lQp-thTTp0oySKn7k6I4ea6iYTs,9837
28
- fabricatio/models/adv_kwargs_types.py,sha256=dcYMLn6xcnWLZTLTBdtpgUZWi-VBeub721GzHRZFT1g,860
29
- fabricatio/models/events.py,sha256=QvlnS8FEELg6KNabcJMeh2GV_y0ZBzKOPphcteKYWYU,4183
30
- fabricatio/models/extra/advanced_judge.py,sha256=x2FxicxqpN1eKD7PnL7--wYvxZsWnueAlCyHodRuFrU,1022
31
- fabricatio/models/extra/article_base.py,sha256=WWfa8LJVjrs_yJGBCI81KF5VtW62rq_IcdFvBqZ2nq0,20075
32
- fabricatio/models/extra/article_essence.py,sha256=xd6j-PDqjhrMjgUmyfk6HqkyMLu-sS9feUo0sZ3QABY,2825
33
- fabricatio/models/extra/article_main.py,sha256=main-2eh-dH1SYN_zW2kFajMOrpatAVQVgQ-_7Yvsj4,11669
29
+ fabricatio/models/adv_kwargs_types.py,sha256=kUO-SiZtFuz5cZCmMLnJJ9tjQ4-Zd_foo6R8HQMlM5A,1950
30
+ fabricatio/models/events.py,sha256=wiirk_ASg3iXDOZU_gIimci1VZVzWE1nDmxy-hQVJ9M,4150
31
+ fabricatio/models/extra/advanced_judge.py,sha256=INUl_41C8jkausDekkjnEmTwNfLCJ23TwFjq2cM23Cw,1092
32
+ fabricatio/models/extra/aricle_rag.py,sha256=I65Dcip3iibQdkACPF-EgYv7bSlpXB9oj8eq-R-Tjdc,4681
33
+ fabricatio/models/extra/article_base.py,sha256=DxBex4UsMAFmHmriwXkcvGIuU-WTSD4ZfzDEk-no9TA,11894
34
+ fabricatio/models/extra/article_essence.py,sha256=mlIkkRMR3I1RtqiiOnmIE3Vy623L4eECumkRzryE1pw,2749
35
+ fabricatio/models/extra/article_main.py,sha256=zGzcf51abcWwiaX6iyi2V7upBLa-DBovnpTJj-qYLeA,7878
34
36
  fabricatio/models/extra/article_outline.py,sha256=w7O0SHgC7exbptWVbR62FMHAueMgBpyWKVYMGGl_oj8,1427
35
37
  fabricatio/models/extra/article_proposal.py,sha256=NbyjW-7UiFPtnVD9nte75re4xL2pD4qL29PpNV4Cg_M,1870
36
38
  fabricatio/models/extra/patches.py,sha256=_WNCxtYzzsVfUxI16vu4IqsLahLYRHdbQN9er9tqhC0,997
37
- fabricatio/models/extra/problem.py,sha256=RyvHQM8XgMVqDT7BCtXU0SEgODWGvTPBQIoHOURF5Oc,6656
38
- fabricatio/models/extra/rule.py,sha256=ogJJYmV5F-CIRG2Dl95plgShskT8jzuh_0KWKHRonbA,2668
39
+ fabricatio/models/extra/problem.py,sha256=zZEnjBW2XGRVpJpUp09f1J_w5A1zU-LhxX78AVCq9ts,7113
40
+ fabricatio/models/extra/rag.py,sha256=RMi8vhEPB0I5mVmjRLRLxYHUnm9pFhvVwysaIwmW2s0,3955
41
+ fabricatio/models/extra/rule.py,sha256=KQQELVhCLUXhEZ35jU3WGYqKHuCYEAkn0p6pxAE-hOU,2625
39
42
  fabricatio/models/extra/__init__.py,sha256=XlYnS_2B9nhLhtQkjE7rvvfPmAAtXVdNi9bSDAR-Ge8,54
40
- fabricatio/models/generic.py,sha256=7M1GZpgle7iwrSpzMmTBxpPx7zxCLH13l61h75woa_E,30237
41
- fabricatio/models/kwargs_types.py,sha256=sMDA85SoC1AOJ5k6qC8qUiUv0Ne0_5ThU9FZITRNen4,5673
43
+ fabricatio/models/generic.py,sha256=M6K4uMSy4zKoTX5LyZFB8vXw8dTR9nZqec84eE-vPfw,30643
44
+ fabricatio/models/kwargs_types.py,sha256=r0fgI4ExuAc0MMsgWs8fAyaQ9Z_PRRAKTr53pPP5JYY,4747
42
45
  fabricatio/models/role.py,sha256=-CRcj5_M3_ciLPzwiNn92grBmwoSLQ-n4koVZiCNTBM,2953
43
- fabricatio/models/task.py,sha256=YXvO3upJkTqMQjPgUGfp0bIiSyZzek2f4IagHdMW5Ik,10491
46
+ fabricatio/models/task.py,sha256=SxWI-b5jlQcGmNsjQ2aKDyywXwGiUvCR1rgUhk-pli8,10503
44
47
  fabricatio/models/tool.py,sha256=jQ51g4lwTPfsMF1nbreDJtBczbxIHoXcPuLSOqHliq8,12506
45
- fabricatio/models/usages.py,sha256=PX13lUCYB9XSM5tKrpYK-ov5jKclWlF9xGmPgUoovLk,32030
46
- fabricatio/models/utils.py,sha256=Ac5g-8ic6q_w7dhNuh-iiofpL1sqOACxbjPPTljP2LY,4417
48
+ fabricatio/models/usages.py,sha256=VLBpNs7zfNPqROvI2IXlqsoqKYSW8L6usNwZ1HXZVOY,34339
47
49
  fabricatio/parser.py,sha256=qN2godNsArmb90btOMxgqlol57166DyYsV2JlU8DlHs,6532
48
50
  fabricatio/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
- fabricatio/rust.pyi,sha256=5xfla5dCACfKTkHztMc5_iCEmdDZtDH9HPG2YC92L8o,6266
51
+ fabricatio/rust.pyi,sha256=uVHcjDkG4gPcWX_7pxJXHroamY6Db46tQci96THbwJs,7280
50
52
  fabricatio/rust_instances.py,sha256=Byeo8KHW_dJiXujJq7YPGDLBX5bHNDYbBc4sY3uubVY,313
51
53
  fabricatio/toolboxes/arithmetic.py,sha256=WLqhY-Pikv11Y_0SGajwZx3WhsLNpHKf9drzAqOf_nY,1369
52
54
  fabricatio/toolboxes/fs.py,sha256=l4L1CVxJmjw9Ld2XUpIlWfV0_Fu_2Og6d3E13I-S4aE,736
53
55
  fabricatio/toolboxes/__init__.py,sha256=KBJi5OG_pExscdlM7Bnt_UF43j4I3Lv6G71kPVu4KQU,395
54
- fabricatio/utils.py,sha256=uy-W5b1d8oM1UTk2IT1lLGKIn_Pmo3XU5xbahjyDESE,1710
56
+ fabricatio/utils.py,sha256=PKb2yfAe7iRwGJklLB5uZWuWhT0Tm47iHAqPo-zl5CQ,2039
55
57
  fabricatio/workflows/articles.py,sha256=ObYTFUqLUk_CzdmmnX6S7APfxcGmPFqnFr9pdjU7Z4Y,969
56
58
  fabricatio/workflows/rag.py,sha256=-YYp2tlE9Vtfgpg6ROpu6QVO8j8yVSPa6yDzlN3qVxs,520
57
59
  fabricatio/workflows/__init__.py,sha256=5ScFSTA-bvhCesj3U9Mnmi6Law6N1fmh5UKyh58L3u8,51
58
60
  fabricatio/__init__.py,sha256=Rmvq2VgdS2u68vnOi2i5RbeWbAwrJDbk8D8D883PJWE,1022
59
- fabricatio/rust.cp312-win_amd64.pyd,sha256=5rWQDW_NkAoojnwNoStr9qIfa-JMcNlhEf1RLYSHM2o,2193920
60
- fabricatio-0.2.9.dev4.data/scripts/tdown.exe,sha256=bgxOSFt8NMWHddSQ27fn9f_AyO47PlYNcK1EuUJRYJo,3364864
61
- fabricatio-0.2.9.dev4.dist-info/RECORD,,
61
+ fabricatio/rust.cp312-win_amd64.pyd,sha256=ql93jn1qacym6Ks927dxEGJb16rUyWPiW85fm9IE8A0,2251776
62
+ fabricatio-0.2.10.dev1.data/scripts/tdown.exe,sha256=WFQ7z3utWNkccmrzZPzJTb4N0_IBWrjirdWSOKcrj_0,3365888
63
+ fabricatio-0.2.10.dev1.dist-info/RECORD,,