fabricatio 0.2.13.dev3__cp312-cp312-win_amd64.whl → 0.3.14.dev0__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.
Files changed (42) hide show
  1. fabricatio/__init__.py +5 -10
  2. fabricatio/actions/article.py +32 -34
  3. fabricatio/actions/article_rag.py +58 -58
  4. fabricatio/actions/output.py +22 -21
  5. fabricatio/actions/rag.py +4 -3
  6. fabricatio/capabilities/check.py +29 -30
  7. fabricatio/capabilities/correct.py +23 -23
  8. fabricatio/capabilities/extract.py +36 -32
  9. fabricatio/capabilities/rag.py +34 -35
  10. fabricatio/capabilities/rating.py +77 -72
  11. fabricatio/capabilities/review.py +12 -11
  12. fabricatio/capabilities/task.py +4 -5
  13. fabricatio/core.py +22 -24
  14. fabricatio/decorators.py +10 -10
  15. fabricatio/fs/__init__.py +1 -2
  16. fabricatio/journal.py +2 -9
  17. fabricatio/models/action.py +8 -22
  18. fabricatio/models/extra/aricle_rag.py +10 -9
  19. fabricatio/models/extra/article_base.py +5 -6
  20. fabricatio/models/extra/article_main.py +11 -10
  21. fabricatio/models/generic.py +33 -60
  22. fabricatio/models/kwargs_types.py +1 -46
  23. fabricatio/models/role.py +45 -25
  24. fabricatio/models/task.py +9 -9
  25. fabricatio/models/tool.py +5 -4
  26. fabricatio/models/usages.py +170 -161
  27. fabricatio/parser.py +2 -2
  28. fabricatio/rust.cp312-win_amd64.pyd +0 -0
  29. fabricatio/rust.pyi +435 -17
  30. fabricatio/utils.py +38 -4
  31. fabricatio-0.3.14.dev0.data/scripts/tdown.exe +0 -0
  32. {fabricatio-0.2.13.dev3.data → fabricatio-0.3.14.dev0.data}/scripts/ttm.exe +0 -0
  33. {fabricatio-0.2.13.dev3.dist-info → fabricatio-0.3.14.dev0.dist-info}/METADATA +1 -3
  34. fabricatio-0.3.14.dev0.dist-info/RECORD +63 -0
  35. fabricatio/config.py +0 -430
  36. fabricatio/constants.py +0 -20
  37. fabricatio/models/events.py +0 -120
  38. fabricatio/rust_instances.py +0 -10
  39. fabricatio-0.2.13.dev3.data/scripts/tdown.exe +0 -0
  40. fabricatio-0.2.13.dev3.dist-info/RECORD +0 -67
  41. {fabricatio-0.2.13.dev3.dist-info → fabricatio-0.3.14.dev0.dist-info}/WHEEL +0 -0
  42. {fabricatio-0.2.13.dev3.dist-info → fabricatio-0.3.14.dev0.dist-info}/licenses/LICENSE +0 -0
fabricatio/rust.pyi CHANGED
@@ -10,9 +10,8 @@ Key Features:
10
10
  - Cryptographic utilities: BLAKE3 hashing.
11
11
  - Text utilities: Word boundary splitting and word counting.
12
12
  """
13
-
14
- from pathlib import Path
15
- from typing import Any, Dict, List, Optional, Tuple, overload
13
+ from enum import StrEnum
14
+ from typing import Any, Dict, List, Optional, Self, Tuple, overload, Union
16
15
 
17
16
  from pydantic import JsonValue
18
17
 
@@ -26,17 +25,6 @@ class TemplateManager:
26
25
  See: https://crates.io/crates/handlebars
27
26
  """
28
27
 
29
- def __init__(
30
- self, template_dirs: List[Path], suffix: Optional[str] = None, active_loading: Optional[bool] = None
31
- ) -> None:
32
- """Initialize the template manager.
33
-
34
- Args:
35
- template_dirs: List of directories containing template files
36
- suffix: File extension for templates (defaults to 'hbs')
37
- active_loading: Whether to enable dev mode for reloading templates on change
38
- """
39
-
40
28
  @property
41
29
  def template_count(self) -> int:
42
30
  """Returns the number of currently loaded templates."""
@@ -431,13 +419,12 @@ def inplace_update(string: str, wrapper: str, new_body: str) -> Optional[str]:
431
419
 
432
420
  Returns:
433
421
  A new string with the content between wrappers replaced.
434
-
422
+
435
423
  """
436
424
 
437
425
 
438
426
  def extract_body(string: str, wrapper: str) -> Optional[str]:
439
- """
440
- Extract the content between two occurrences of a wrapper string.
427
+ """Extract the content between two occurrences of a wrapper string.
441
428
 
442
429
  Args:
443
430
  string: The input string containing content wrapped by delimiter strings.
@@ -446,3 +433,434 @@ def extract_body(string: str, wrapper: str) -> Optional[str]:
446
433
  Returns:
447
434
  The content between the first two occurrences of the wrapper string if found, otherwise None.
448
435
  """
436
+
437
+
438
+ class LLMConfig:
439
+ """LLM configuration structure.
440
+
441
+ Contains parameters for configuring Language Learning Models.
442
+ """
443
+
444
+ api_endpoint: Optional[str]
445
+ """API endpoint URL for the LLM service."""
446
+
447
+ api_key: Optional[SecretStr]
448
+ """Authentication key for the LLM service."""
449
+
450
+ timeout: Optional[int]
451
+ """Maximum time in seconds to wait for a response."""
452
+
453
+ max_retries: Optional[int]
454
+ """Number of retry attempts for failed requests."""
455
+
456
+ model: Optional[str]
457
+ """Name of the LLM model to use."""
458
+
459
+ temperature: Optional[float]
460
+ """Controls randomness in response generation (0.0-2.0)."""
461
+
462
+ stop_sign: Optional[List[str]]
463
+ """Sequence(s) that signal the LLM to stop generating tokens."""
464
+
465
+ top_p: Optional[float]
466
+ """Controls diversity via nucleus sampling (0.0-1.0)."""
467
+
468
+ generation_count: Optional[int]
469
+ """Number of completions to generate for each prompt."""
470
+
471
+ stream: Optional[bool]
472
+ """When true, responses are streamed as they're generated."""
473
+
474
+ max_tokens: Optional[int]
475
+ """Maximum number of tokens to generate in the response."""
476
+
477
+ rpm: Optional[int]
478
+ """Rate limit in requests per minute."""
479
+
480
+ tpm: Optional[int]
481
+ """Rate limit in tokens per minute."""
482
+
483
+ presence_penalty: Optional[float]
484
+ """Penalizes new tokens based on their presence in text so far (-2.0-2.0)."""
485
+
486
+ frequency_penalty: Optional[float]
487
+ """Penalizes new tokens based on their frequency in text so far (-2.0-2.0)."""
488
+
489
+
490
+ class EmbeddingConfig:
491
+ """Embedding configuration structure."""
492
+
493
+ model: Optional[str]
494
+ """The embedding model name."""
495
+
496
+ dimensions: Optional[int]
497
+ """The dimensions of the embedding."""
498
+
499
+ timeout: Optional[int]
500
+ """The timeout of the embedding model in seconds."""
501
+
502
+ max_sequence_length: Optional[int]
503
+ """The maximum sequence length of the embedding model."""
504
+
505
+ caching: Optional[bool]
506
+ """Whether to cache the embedding."""
507
+
508
+ api_endpoint: Optional[str]
509
+ """The API endpoint URL."""
510
+
511
+ api_key: Optional[SecretStr]
512
+ """The API key."""
513
+
514
+
515
+ class RagConfig:
516
+ """RAG (Retrieval Augmented Generation) configuration structure."""
517
+
518
+ milvus_uri: Optional[str]
519
+ """The URI of the Milvus server."""
520
+
521
+ milvus_timeout: Optional[float]
522
+ """The timeout of the Milvus server in seconds."""
523
+
524
+ milvus_token: Optional[SecretStr]
525
+ """The token for Milvus authentication."""
526
+
527
+ milvus_dimensions: Optional[int]
528
+ """The dimensions for Milvus vectors."""
529
+
530
+
531
+ class DebugConfig:
532
+ """Debug configuration structure."""
533
+
534
+ log_level: Optional[str]
535
+ """The logging level to use."""
536
+
537
+
538
+ class TemplateManagerConfig:
539
+ """Template manager configuration structure."""
540
+
541
+ template_dir: List[str]
542
+ """The directories containing the templates."""
543
+
544
+ active_loading: Optional[bool]
545
+ """Whether to enable active loading of templates."""
546
+
547
+ template_suffix: Optional[str]
548
+ """The suffix of the templates."""
549
+
550
+
551
+ class TemplateConfig:
552
+ """Template configuration structure."""
553
+
554
+ create_json_obj_template: str
555
+ """The name of the create json object template which will be used to create a json object."""
556
+
557
+ draft_tool_usage_code_template: str
558
+ """The name of the draft tool usage code template which will be used to draft tool usage code."""
559
+
560
+ make_choice_template: str
561
+ """The name of the make choice template which will be used to make a choice."""
562
+
563
+ make_judgment_template: str
564
+ """The name of the make judgment template which will be used to make a judgment."""
565
+
566
+ dependencies_template: str
567
+ """The name of the dependencies template which will be used to manage dependencies."""
568
+
569
+ task_briefing_template: str
570
+ """The name of the task briefing template which will be used to brief a task."""
571
+
572
+ rate_fine_grind_template: str
573
+ """The name of the rate fine grind template which will be used to rate fine grind."""
574
+
575
+ draft_rating_manual_template: str
576
+ """The name of the draft rating manual template which will be used to draft rating manual."""
577
+
578
+ draft_rating_criteria_template: str
579
+ """The name of the draft rating criteria template which will be used to draft rating criteria."""
580
+
581
+ extract_reasons_from_examples_template: str
582
+ """The name of the extract reasons from examples template which will be used to extract reasons from examples."""
583
+
584
+ extract_criteria_from_reasons_template: str
585
+ """The name of the extract criteria from reasons template which will be used to extract criteria from reasons."""
586
+
587
+ draft_rating_weights_klee_template: str
588
+ """The name of the draft rating weights klee template which will be used to draft rating weights with Klee method."""
589
+
590
+ retrieved_display_template: str
591
+ """The name of the retrieved display template which will be used to display retrieved documents."""
592
+
593
+ liststr_template: str
594
+ """The name of the liststr template which will be used to display a list of strings."""
595
+
596
+ refined_query_template: str
597
+ """The name of the refined query template which will be used to refine a query."""
598
+
599
+ pathstr_template: str
600
+ """The name of the pathstr template which will be used to acquire a path of strings."""
601
+
602
+ review_string_template: str
603
+ """The name of the review string template which will be used to review a string."""
604
+
605
+ generic_string_template: str
606
+ """The name of the generic string template which will be used to review a string."""
607
+
608
+ co_validation_template: str
609
+ """The name of the co-validation template which will be used to co-validate a string."""
610
+
611
+ as_prompt_template: str
612
+ """The name of the as prompt template which will be used to convert a string to a prompt."""
613
+
614
+ check_string_template: str
615
+ """The name of the check string template which will be used to check a string."""
616
+
617
+ ruleset_requirement_breakdown_template: str
618
+ """The name of the ruleset requirement breakdown template which will be used to breakdown a ruleset requirement."""
619
+
620
+ fix_troubled_obj_template: str
621
+ """The name of the fix troubled object template which will be used to fix a troubled object."""
622
+
623
+ fix_troubled_string_template: str
624
+ """The name of the fix troubled string template which will be used to fix a troubled string."""
625
+
626
+ rule_requirement_template: str
627
+ """The name of the rule requirement template which will be used to generate a rule requirement."""
628
+
629
+ extract_template: str
630
+ """The name of the extract template which will be used to extract model from string."""
631
+
632
+ chap_summary_template: str
633
+ """The name of the chap summary template which will be used to generate a chapter summary."""
634
+
635
+
636
+ class RoutingConfig:
637
+ """Routing configuration structure for controlling request dispatching behavior."""
638
+
639
+ max_parallel_requests: Optional[int]
640
+ """The maximum number of parallel requests. None means not checked."""
641
+
642
+ allowed_fails: Optional[int]
643
+ """The number of allowed fails before the routing is considered failed."""
644
+
645
+ retry_after: int
646
+ """Minimum time to wait before retrying a failed request."""
647
+
648
+ cooldown_time: Optional[int]
649
+ """Time to cooldown a deployment after failure in seconds."""
650
+
651
+
652
+ class GeneralConfig:
653
+ """General configuration structure for application-wide settings."""
654
+
655
+ confirm_on_ops: bool
656
+ """Whether to confirm operations before executing them."""
657
+
658
+ use_json_repair: bool
659
+ """Whether to automatically repair malformed JSON."""
660
+
661
+
662
+ class ToolBoxConfig:
663
+ """Configuration for toolbox functionality."""
664
+
665
+ tool_module_name: str
666
+ """The name of the module containing the toolbox."""
667
+
668
+ data_module_name: str
669
+ """The name of the module containing the data."""
670
+
671
+
672
+ class PymitterConfig:
673
+ """Pymitter configuration structure for controlling event emission and listener behavior."""
674
+
675
+ delimiter: str
676
+ """The delimiter used to separate the event name into segments."""
677
+
678
+ new_listener_event: bool
679
+ """If set, a newListener event is emitted when a new listener is added."""
680
+
681
+ max_listeners: int
682
+ """The maximum number of listeners per event. -1 means unlimited."""
683
+
684
+
685
+ class Config:
686
+ """Configuration structure containing all system components."""
687
+
688
+ embedding: EmbeddingConfig
689
+ """Embedding configuration."""
690
+
691
+ llm: LLMConfig
692
+ """LLM configuration."""
693
+
694
+ debug: DebugConfig
695
+ """Debug configuration."""
696
+
697
+ rag: RagConfig
698
+ """RAG configuration."""
699
+
700
+ templates: TemplateConfig
701
+ """Template configuration."""
702
+
703
+ template_manager: TemplateManagerConfig
704
+ """Template manager configuration."""
705
+
706
+ routing: RoutingConfig
707
+ """Routing configuration."""
708
+
709
+ general: GeneralConfig
710
+ """General configuration."""
711
+
712
+ toolbox: ToolBoxConfig
713
+ """Toolbox configuration."""
714
+
715
+ pymitter: PymitterConfig
716
+ """Pymitter configuration."""
717
+
718
+
719
+ CONFIG: Config
720
+
721
+
722
+ class SecretStr:
723
+ """A string that should not be exposed."""
724
+
725
+ def __init__(self, source: str) -> None: ...
726
+
727
+ def expose(self) -> str:
728
+ """Expose the secret string."""
729
+
730
+
731
+ TEMPLATE_MANAGER: TemplateManager
732
+
733
+
734
+ class Event:
735
+ """Event class that represents a hierarchical event with segments.
736
+
737
+ Events can be constructed from strings, lists of strings, or other Events.
738
+ """
739
+ segments: List[str]
740
+
741
+ def __init__(self, segments: Optional[List[str]] = None) -> None:
742
+ """Initialize a new Event with optional segments.
743
+
744
+ Args:
745
+ segments: Optional list of string segments
746
+ """
747
+
748
+ @staticmethod
749
+ def instantiate_from(event: Union[str, Event, List[str]]) -> Event:
750
+ """Create an Event from a string, list of strings, or another Event.
751
+
752
+ Args:
753
+ event: The source to create the Event from
754
+
755
+ Returns:
756
+ A new Event instance
757
+
758
+ Raises:
759
+ ValueError: If list elements are not strings
760
+ TypeError: If event is an invalid type
761
+ """
762
+
763
+ @staticmethod
764
+ def quick_instantiate(event: Union[str, Event, List[str]]) -> Event:
765
+ """Create an Event and append wildcard and pending status.
766
+
767
+ Args:
768
+ event: The source to create the Event from
769
+
770
+ Returns:
771
+ A new Event instance with wildcard and pending status appended
772
+ """
773
+
774
+ def derive(self, event: Union[str, Event, List[str]]) -> Event:
775
+ """Create a new Event by extending this one with another.
776
+
777
+ Args:
778
+ event: The Event to append
779
+
780
+ Returns:
781
+ A new Event that combines this Event with the provided one
782
+ """
783
+
784
+ def collapse(self) -> str:
785
+ """Convert the Event to a delimited string.
786
+
787
+ Returns:
788
+ String representation with segments joined by delimiter
789
+ """
790
+
791
+ def fork(self) -> Event:
792
+ """Create a copy of this Event.
793
+
794
+ Returns:
795
+ A new Event with the same segments
796
+ """
797
+
798
+ def push(self, segment: str) -> Self:
799
+ """Add a segment to the Event.
800
+
801
+ Args:
802
+ segment: String segment to add
803
+
804
+ Raises:
805
+ ValueError: If segment is empty or contains the delimiter
806
+ """
807
+
808
+ def push_wildcard(self) -> Self:
809
+ """Add a wildcard segment (*) to the Event."""
810
+
811
+ def push_pending(self) -> Self:
812
+ """Add a pending status segment to the Event."""
813
+
814
+ def push_running(self) -> Self:
815
+ """Add a running status segment to the Event."""
816
+
817
+ def push_finished(self) -> Self:
818
+ """Add a finished status segment to the Event."""
819
+
820
+ def push_failed(self) -> Self:
821
+ """Add a failed status segment to the Event."""
822
+
823
+ def push_cancelled(self) -> Self:
824
+ """Add a cancelled status segment to the Event."""
825
+
826
+ def pop(self) -> Optional[str]:
827
+ """Remove and return the last segment.
828
+
829
+ Returns:
830
+ The removed segment or None if the Event is empty
831
+ """
832
+
833
+ def clear(self) -> Self:
834
+ """Remove all segments from the Event."""
835
+
836
+ def concat(self, event: Union[str, Event, List[str]]) -> Self:
837
+ """Append segments from another Event to this one.
838
+
839
+ Args:
840
+ event: The Event to append segments from
841
+ """
842
+
843
+ def __hash__(self) -> int: ...
844
+
845
+ def __eq__(self, other: object) -> bool: ...
846
+
847
+ def __ne__(self, other: object) -> bool: ...
848
+
849
+
850
+ class TaskStatus(StrEnum, str):
851
+ """Enumeration of possible task statuses."""
852
+
853
+ Pending: TaskStatus
854
+ """Task is pending execution."""
855
+
856
+ Running: TaskStatus
857
+ """Task is currently running."""
858
+
859
+ Finished: TaskStatus
860
+ """Task has finished successfully."""
861
+
862
+ Failed: TaskStatus
863
+ """Task has failed."""
864
+
865
+ Cancelled: TaskStatus
866
+ """Task has been cancelled."""
fabricatio/utils.py CHANGED
@@ -1,15 +1,46 @@
1
1
  """A collection of utility functions for the fabricatio package."""
2
2
 
3
- from typing import Any, Dict, List, Mapping, Optional, TypedDict, Unpack, overload
4
-
5
- import aiohttp
6
- import requests
3
+ from typing import Any, Dict, List, Mapping, Optional, TypedDict, Unpack, overload, Type, Tuple
7
4
 
8
5
  from fabricatio.decorators import precheck_package
9
6
  from fabricatio.journal import logger
10
7
  from fabricatio.models.kwargs_types import RerankOptions
11
8
 
12
9
 
10
+ def is_subclass_of_base(cls: Type, base_module: str, base_name: str) -> bool:
11
+ """Determines if the given class is a subclass of an unimported base class.
12
+
13
+ Args:
14
+ cls: The class to check
15
+ base_module: The module name of the base class
16
+ base_name: The class name of the base class
17
+
18
+ Returns:
19
+ bool: True if cls is a subclass of the specified base class, False otherwise
20
+ """
21
+ for ancestor in cls.__mro__:
22
+ if ancestor.__module__ == base_module and ancestor.__name__ == base_name:
23
+ return True
24
+ return False
25
+
26
+
27
+ def is_subclass_of_any_base(cls: Type, bases: List[Tuple[str, str]]) -> bool:
28
+ """Determines if the given class is a subclass of the candidate base classes.
29
+
30
+ Args:
31
+ cls: The class to check
32
+ bases: A list of tuples where each tuple contains (module_name, class_name)
33
+
34
+ Returns:
35
+ bool: True if cls is a subclass of the specified base classes, False otherwise
36
+ """
37
+ for ancestor in cls.__mro__:
38
+ for base_module, base_name in bases:
39
+ if ancestor.__module__ == base_module and ancestor.__name__ == base_name:
40
+ return True
41
+ return False
42
+
43
+
13
44
  @precheck_package(
14
45
  "questionary", "'questionary' is required to run this function. Have you installed `fabricatio[qa]`?."
15
46
  )
@@ -164,6 +195,7 @@ class RerankerAPI:
164
195
  ValueError: If input parameters are invalid or the API returns a client-side error.
165
196
  RuntimeError: If the API call fails or returns a server-side error.
166
197
  """
198
+ import requests
167
199
  # Validate inputs
168
200
  if not isinstance(query, str) or not query.strip():
169
201
  raise ValueError("Query must be a non-empty string.")
@@ -219,6 +251,8 @@ class RerankerAPI:
219
251
  ValueError: If input parameters are invalid or the API returns a client-side error.
220
252
  RuntimeError: If the API call fails or returns a server-side error.
221
253
  """
254
+ import aiohttp
255
+
222
256
  # Validate inputs
223
257
  if not isinstance(query, str) or not query.strip():
224
258
  raise ValueError("Query must be a non-empty string.")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fabricatio
3
- Version: 0.2.13.dev3
3
+ Version: 0.3.14.dev0
4
4
  Classifier: License :: OSI Approved :: MIT License
5
5
  Classifier: Programming Language :: Rust
6
6
  Classifier: Programming Language :: Python :: 3.12
@@ -8,7 +8,6 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
8
8
  Classifier: Framework :: AsyncIO
9
9
  Classifier: Framework :: Pydantic :: 2
10
10
  Classifier: Typing :: Typed
11
- Requires-Dist: appdirs>=1.4.4
12
11
  Requires-Dist: asyncio>=3.4.3
13
12
  Requires-Dist: asyncstdlib>=3.13.0
14
13
  Requires-Dist: json-repair>=0.39.1
@@ -16,7 +15,6 @@ Requires-Dist: litellm>=1.60.0
16
15
  Requires-Dist: loguru>=0.7.3
17
16
  Requires-Dist: more-itertools>=10.6.0
18
17
  Requires-Dist: pydantic>=2.10.6
19
- Requires-Dist: pydantic-settings>=2.7.1
20
18
  Requires-Dist: pymitter>=1.0.0
21
19
  Requires-Dist: rich>=13.9.4
22
20
  Requires-Dist: ujson>=5.10.0
@@ -0,0 +1,63 @@
1
+ fabricatio-0.3.14.dev0.dist-info/METADATA,sha256=wYdyUN-54xDS1x4TkCPzO8tQ8XZKmMOz5O33vlSWGSg,5246
2
+ fabricatio-0.3.14.dev0.dist-info/WHEEL,sha256=jABKVkLC9kJr8mi_er5jOqpiQUjARSLXDUIIxDqsS50,96
3
+ fabricatio-0.3.14.dev0.dist-info/licenses/LICENSE,sha256=do7J7EiCGbq0QPbMAL_FqLYufXpHnCnXBOuqVPwSV8Y,1088
4
+ fabricatio/actions/article.py,sha256=vkYbzRy4SSJL73SFdgdsMfUy3nbjNFc44mu1-uPjqBo,12627
5
+ fabricatio/actions/article_rag.py,sha256=Ahij8TSNvE5T1rHhJM5zNj57SaORldNj1YEHFTj0xm8,18631
6
+ fabricatio/actions/fs.py,sha256=gJR14U4ln35nt8Z7OWLVAZpqGaLnED-r1Yi-lX22tkI,959
7
+ fabricatio/actions/output.py,sha256=w_7xVFs7OZ8uXqFQKmuXw7Y0vWugSuN6phcVW_VnCqI,8389
8
+ fabricatio/actions/rag.py,sha256=UifqC4jPpmhTrfToXkqi6ElbNxUoc2wqSMJQEubkhNU,3589
9
+ fabricatio/actions/rules.py,sha256=dkvCgNDjt2KSO1VgPRsxT4YBmIIMeetZb5tiz-slYkU,3640
10
+ fabricatio/actions/__init__.py,sha256=wVENCFtpVb1rLFxoOFJt9-8smLWXuJV7IwA8P3EfFz4,48
11
+ fabricatio/capabilities/advanced_judge.py,sha256=selB0Gwf1F4gGJlwBiRo6gI4KOUROgh3WnzO3mZFEls,706
12
+ fabricatio/capabilities/advanced_rag.py,sha256=FaXHGOqS4VleGSLsnC5qm4S4EBcHZLZbj8TjXRieKBs,2513
13
+ fabricatio/capabilities/censor.py,sha256=bBT5qy-kp7fh8g4Lz3labSwxwJ60gGd_vrkc6k1cZ1U,4719
14
+ fabricatio/capabilities/check.py,sha256=3Y7M9DLYWJefCMDg4aSYuU7XgVdWGR4ElQVeHFVYt4U,8663
15
+ fabricatio/capabilities/correct.py,sha256=K-m8OZK25AjboGQXFltNk_A3WPBByi1sG_fuEHWDGFw,10445
16
+ fabricatio/capabilities/extract.py,sha256=005FFcLAC_A6FNmuGK679yJtTL8ai__Zg5bjG9eiSts,2619
17
+ fabricatio/capabilities/propose.py,sha256=hkBeSlmcTdfYWT-ph6nlbtHXBozi_JXqXlWcnBy3W78,2007
18
+ fabricatio/capabilities/rag.py,sha256=LHSpBW6FTEgUvsIbE5HGhlRba_bRV5-kM1s8fZUc_IM,11143
19
+ fabricatio/capabilities/rating.py,sha256=JdxNzjg7hQO6Cbe4Muf20r6f1Cb9dQnUBQq1VRS_bRU,18089
20
+ fabricatio/capabilities/review.py,sha256=qimV-r51nqLtAcKBO0SKS_J06DYLUL-FsbZNA9JxQ9k,5060
21
+ fabricatio/capabilities/task.py,sha256=mqRzrNBJEYTYbNfDPhTNy9bpDFyUpygff6FKBiNumbA,4431
22
+ fabricatio/capabilities/__init__.py,sha256=v1cHRHIJ2gxyqMLNCs6ERVcCakSasZNYzmMI4lqAcls,57
23
+ fabricatio/core.py,sha256=KN2Rx-j46xzCh9s2ckfXruz3lui6Q2JPV6LKwjHhkJQ,6485
24
+ fabricatio/decorators.py,sha256=TGUTUuIfSV2u6Thv1kmAVXAPN_8ynP5T28R8MQw8eg0,8990
25
+ fabricatio/fs/curd.py,sha256=652nHulbJ3gwt0Z3nywtPMmjhEyglDvEfc3p7ieJNNA,4777
26
+ fabricatio/fs/readers.py,sha256=UXvcJO3UCsxHu9PPkg34Yh55Zi-miv61jD_wZQJgKRs,1751
27
+ fabricatio/fs/__init__.py,sha256=USoMI_HcIr3Yc77_JQYYsXrsplYPXtFTaNB9YgFfC4s,713
28
+ fabricatio/journal.py,sha256=I02_ntN7_WyI_m1RsHB1gEv8LfWtcVGmOqppEV8XjKI,289
29
+ fabricatio/models/action.py,sha256=-XIzuE-LE38GWuj_0WdSGSQ7kVUMzXUUnfqJ-XcA20o,10084
30
+ fabricatio/models/adv_kwargs_types.py,sha256=IBV3ZcsNLvvEjO_2hBpYg_wLSpNKaMx6Ndam3qXJCw8,2097
31
+ fabricatio/models/extra/advanced_judge.py,sha256=INUl_41C8jkausDekkjnEmTwNfLCJ23TwFjq2cM23Cw,1092
32
+ fabricatio/models/extra/aricle_rag.py,sha256=2dHQOz7Br8xpf3PTtdZmrIw49kC4_YGa89evta67LYg,11707
33
+ fabricatio/models/extra/article_base.py,sha256=4veM9DNd7T54iocoLS1mP-jOPImrxACAzfsdd6A3LIU,16736
34
+ fabricatio/models/extra/article_essence.py,sha256=mlIkkRMR3I1RtqiiOnmIE3Vy623L4eECumkRzryE1pw,2749
35
+ fabricatio/models/extra/article_main.py,sha256=jOHJt6slBakOAdY8IDq4JPiPGXX0_g1n3ROm802UYqc,11221
36
+ fabricatio/models/extra/article_outline.py,sha256=mw7eOuKMJgns4bihjcjOEIpAy38i0g-x6T6Vx3J0T5A,1629
37
+ fabricatio/models/extra/article_proposal.py,sha256=NbyjW-7UiFPtnVD9nte75re4xL2pD4qL29PpNV4Cg_M,1870
38
+ fabricatio/models/extra/patches.py,sha256=_WNCxtYzzsVfUxI16vu4IqsLahLYRHdbQN9er9tqhC0,997
39
+ fabricatio/models/extra/problem.py,sha256=8tTU-3giFHOi5j7NJsvH__JJyYcaGrcfsRnkzQNm0Ew,7216
40
+ fabricatio/models/extra/rag.py,sha256=RMi8vhEPB0I5mVmjRLRLxYHUnm9pFhvVwysaIwmW2s0,3955
41
+ fabricatio/models/extra/rule.py,sha256=KQQELVhCLUXhEZ35jU3WGYqKHuCYEAkn0p6pxAE-hOU,2625
42
+ fabricatio/models/extra/__init__.py,sha256=XlYnS_2B9nhLhtQkjE7rvvfPmAAtXVdNi9bSDAR-Ge8,54
43
+ fabricatio/models/generic.py,sha256=c-_VogsBUbNaU11KZizCI4AzLgg5_FCRLbNYcQKHyks,30424
44
+ fabricatio/models/kwargs_types.py,sha256=tDeF0B_TnumYGCKU58f-llAApn6ng_Joz8CcGq5GiLk,3619
45
+ fabricatio/models/role.py,sha256=Uukgh3Nxk5N2QEnyg9CMfsngW9GSgKV_Z7nnvafUYfc,3810
46
+ fabricatio/models/task.py,sha256=vOL8mzwBRMWC8R_59zh4SDXkjWuAL6WTtsAGfcxp_eE,11032
47
+ fabricatio/models/tool.py,sha256=uNYVCNr9KUBWQ_KAtekGECdNPZREGJ9Aioyk4lrvtTE,12503
48
+ fabricatio/models/usages.py,sha256=FyWdKAce2Am10zByISBuf_Tdd4hRnhkAxcXIzyV77LU,33474
49
+ fabricatio/parser.py,sha256=QXHoJf0i9lAuaUjPBltXXvDZqyeuPwDLdQgr1uMU95w,6633
50
+ fabricatio/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
+ fabricatio/rust.pyi,sha256=fWK5q3b-TEDfSYQh9vlZq-kTpA9NBXttGszPMVEnODs,25221
52
+ fabricatio/toolboxes/arithmetic.py,sha256=WLqhY-Pikv11Y_0SGajwZx3WhsLNpHKf9drzAqOf_nY,1369
53
+ fabricatio/toolboxes/fs.py,sha256=l4L1CVxJmjw9Ld2XUpIlWfV0_Fu_2Og6d3E13I-S4aE,736
54
+ fabricatio/toolboxes/__init__.py,sha256=KBJi5OG_pExscdlM7Bnt_UF43j4I3Lv6G71kPVu4KQU,395
55
+ fabricatio/utils.py,sha256=_kNYzLzBudhjZ3RwgeIPKSxKbOVMgCwoj-BzjYPB0G8,11566
56
+ fabricatio/workflows/articles.py,sha256=ObYTFUqLUk_CzdmmnX6S7APfxcGmPFqnFr9pdjU7Z4Y,969
57
+ fabricatio/workflows/rag.py,sha256=-YYp2tlE9Vtfgpg6ROpu6QVO8j8yVSPa6yDzlN3qVxs,520
58
+ fabricatio/workflows/__init__.py,sha256=5ScFSTA-bvhCesj3U9Mnmi6Law6N1fmh5UKyh58L3u8,51
59
+ fabricatio/__init__.py,sha256=QoZ1WNvK5UVaMGed2GOE781TvF76om3LHe5eVEBSSUE,809
60
+ fabricatio/rust.cp312-win_amd64.pyd,sha256=lvRcjPuXO8XglnZ9J7QX4AJx1z7Zfj13Msia4orfs-A,6022144
61
+ fabricatio-0.3.14.dev0.data/scripts/tdown.exe,sha256=dNcSMR1zfpD8t_QYEP0xfqCfEZZ1P1EBWYOxroxTWSU,3356160
62
+ fabricatio-0.3.14.dev0.data/scripts/ttm.exe,sha256=Q4kRd27t8Fv--kYuoHqhK0NyvFt2jCY8Q11vrWDa2z0,2554880
63
+ fabricatio-0.3.14.dev0.dist-info/RECORD,,