rust-crate-pipeline 1.4.1__py3-none-any.whl → 1.4.2__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.
@@ -468,7 +468,7 @@ def main() -> None:
468
468
  logging.info("Falling back to standard pipeline")
469
469
 
470
470
  logging.debug("Creating standard pipeline as Sigil fallback")
471
- standard_pipeline = CrateDataPipeline(config)
471
+ standard_pipeline = CrateDataPipeline(config, **pipeline_kwargs)
472
472
  logging.debug("Standard pipeline created, about to run asynchronously")
473
473
 
474
474
  # Run standard pipeline (asynchronous)
@@ -487,7 +487,7 @@ def main() -> None:
487
487
  else:
488
488
  logging.info("Standard pipeline mode")
489
489
  logging.debug("Creating standard pipeline")
490
- standard_pipeline = CrateDataPipeline(config)
490
+ standard_pipeline = CrateDataPipeline(config, **pipeline_kwargs)
491
491
  logging.info(f"Starting pipeline with {len(vars(args))} arguments")
492
492
  logging.debug("Standard pipeline created, about to run asynchronously")
493
493
 
@@ -34,10 +34,21 @@ except ImportError:
34
34
  logging.warning("Enhanced scraping not available - using basic methods")
35
35
 
36
36
 
37
+ class CustomJSONEncoder(json.JSONEncoder):
38
+ """Custom JSON encoder to handle non-serializable objects"""
39
+ def default(self, obj):
40
+ if hasattr(obj, 'to_dict'):
41
+ return obj.to_dict()
42
+ elif hasattr(obj, '__dict__'):
43
+ return obj.__dict__
44
+ else:
45
+ return str(obj)
46
+
47
+
37
48
  class CrateDataPipeline:
38
49
  """Orchestrates the entire data collection, enrichment, and analysis pipeline."""
39
50
 
40
- def __init__(self, config: PipelineConfig) -> None:
51
+ def __init__(self, config: PipelineConfig, crate_list: "List[str] | None" = None, **kwargs) -> None:
41
52
  self.config = config
42
53
  self.api_client = CrateAPIClient(config)
43
54
  self.github_client = GitHubBatchClient(config)
@@ -60,7 +71,13 @@ class CrateDataPipeline:
60
71
  # Initialize cargo analyzer
61
72
  self.cargo_analyzer = CrateAnalyzer(".")
62
73
 
63
- self.crates = self._get_crate_list()
74
+ # Use provided crate_list or load from file
75
+ if crate_list:
76
+ self.crates = crate_list
77
+ logging.info(f"Using provided crate list: {len(crate_list)} crates")
78
+ else:
79
+ self.crates = self._get_crate_list()
80
+
64
81
  self.output_dir = self._create_output_dir()
65
82
  self.enhanced_scraper: Any = (
66
83
  self._initialize_enhanced_scraper()
@@ -280,7 +297,7 @@ class CrateDataPipeline:
280
297
 
281
298
  with open(filename, "w") as f:
282
299
  for item in data:
283
- f.write(json.dumps(item.to_dict()) + "\n")
300
+ f.write(json.dumps(item.to_dict(), cls=CustomJSONEncoder) + "\n")
284
301
 
285
302
  logging.info(f"Saved checkpoint to {filename}")
286
303
  return filename
@@ -297,7 +314,7 @@ class CrateDataPipeline:
297
314
  )
298
315
  with open(final_output_path, "w") as f:
299
316
  for item in data:
300
- f.write(json.dumps(item.to_dict()) + "\n")
317
+ f.write(json.dumps(item.to_dict(), cls=CustomJSONEncoder) + "\n")
301
318
 
302
319
  # Save dependency analysis
303
320
  dep_file_path = os.path.join(
@@ -1,12 +1,15 @@
1
1
  from typing import Dict, List, Tuple, Optional, Any
2
2
  """Version information for rust-crate-pipeline."""
3
3
 
4
- __version__ = "1.4.1"
4
+ __version__ = "1.4.2"
5
5
  __version_info__ = tuple(int(x) for x in __version__.split("-")[0].split("."))
6
6
  __author__ = "SigilDERG Team"
7
7
  __email__ = "sigilderg@example.com"
8
8
 
9
9
  # Version history
10
+ # 1.4.2 - Maintenance Release
11
+ # - Updated project to version 1.4.2
12
+ # - General maintenance and dependency updates
10
13
  # 1.2.5-dev.20250621 - Dev branch: experimental, not a formal
11
14
  # release. Originated from v1.2.5.
12
15
  # 1.2.5 - Last official release.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rust-crate-pipeline
3
- Version: 1.4.1
3
+ Version: 1.4.2
4
4
  Summary: A comprehensive pipeline for analyzing Rust crates with AI enrichment and enhanced scraping
5
5
  Home-page: https://github.com/SigilDERG/rust-crate-pipeline
6
6
  Author: SigilDERG Team
@@ -7,14 +7,14 @@ rust_crate_pipeline/config.py,sha256=Fw3fRKCZawKaLQi7YqsmNNku4whZi89mWzr8BVRNS5E
7
7
  rust_crate_pipeline/crate_analysis.py,sha256=GsoXemJ9VFyAbb4Sm5gY5ToTqNtOA4pI38AtngAQONk,2090
8
8
  rust_crate_pipeline/crate_list.txt,sha256=W3NxDtxvihyKp9SN85FYXX6p8Hh49IFih1M4-c-CynM,4334
9
9
  rust_crate_pipeline/github_token_checker.py,sha256=0IpTh78DSaw4znaed031cSVSZDsi92eDManPzRIIN3Y,3670
10
- rust_crate_pipeline/main.py,sha256=iGYEAYvXkoFFvaA6DIVGiUL3wLhiCzatB6Fvf-Yrj2A,18858
10
+ rust_crate_pipeline/main.py,sha256=Dh-ZNFJvnuU8qawTbfT68cPUbErWOhjMWZxWsc4AH3E,18896
11
11
  rust_crate_pipeline/network.py,sha256=mWjiRvOX31piBZ2QiJ-F75DBD4l6cqzTXcQdJvHxe90,12718
12
- rust_crate_pipeline/pipeline.py,sha256=CqPHLLRvMOpy-3ONL6hnPahV6Vh6S4M8oDsHd_lDrPc,16203
12
+ rust_crate_pipeline/pipeline.py,sha256=daiC3GimbM5FJK3BuVt4TSf5C6i-_sAkmUqYo0FMdv8,16855
13
13
  rust_crate_pipeline/production_config.py,sha256=uWylP9AIZZx7-9aT4sFmAKEEW9miJDxaiek8VE6WP-0,2372
14
14
  rust_crate_pipeline/progress_monitor.py,sha256=5K9KP-Xggi1JEINfRmq2W-wGUHtNIBTcocpDtB1t8iM,13743
15
15
  rust_crate_pipeline/unified_llm_processor.py,sha256=eo7KotNuqwc7_hgpFm18QLokFoufFslnvi8TnDsSYEg,25064
16
16
  rust_crate_pipeline/unified_pipeline.py,sha256=2yglmXVlQfSkVq0HVTPonDee6VxWaQWZw0X2l4lLBGw,23704
17
- rust_crate_pipeline/version.py,sha256=whkmTDquEVytez4svUFUBfbfK0EOvDTPA8K5TuZffbE,4481
17
+ rust_crate_pipeline/version.py,sha256=22bKSUCFGD1KWTGmUBAw6tp4jwaVet8z2BK7UhPtdqE,4611
18
18
  rust_crate_pipeline/core/__init__.py,sha256=Sq4HWdANGqoYln7JdCog7m3BsGeR3tHdseeflvNetoQ,509
19
19
  rust_crate_pipeline/core/canon_registry.py,sha256=_3cu0akJvLc7ZnomMaLeMa8adOBYn1dtjpB0yE3vGL8,4700
20
20
  rust_crate_pipeline/core/irl_engine.py,sha256=QRZUdkN24W9XutLkj8JDplEz6FmnquUrwKsl0s2zRr4,10491
@@ -23,9 +23,9 @@ rust_crate_pipeline/scraping/__init__.py,sha256=ySkTRg7nIxgcbHJQ3L1XzcrOo281NZu0
23
23
  rust_crate_pipeline/scraping/unified_scraper.py,sha256=ZE2gkc0vQ3BOLdSX_IV-kMe8QAm2Av4M7VqpkxEKyT4,9965
24
24
  rust_crate_pipeline/utils/file_utils.py,sha256=tMaCPy7ghs9x4Hxu_sviX8MXU2sBjNvohUrvt4MejoM,2853
25
25
  rust_crate_pipeline/utils/logging_utils.py,sha256=e5jG0Yd6k3exgAdbVca46kWADJ_Qz8UJ3yEJzwTqPyI,2452
26
- rust_crate_pipeline-1.4.1.dist-info/licenses/LICENSE,sha256=tpd4XNpbssrSx9-iErATOLrOh0ivNPfO2I5MAPUpats,1088
27
- rust_crate_pipeline-1.4.1.dist-info/METADATA,sha256=OY5aKfWvpdRnLr9oKJ0SyX1N6evt1IYvu4J4GuFjwy0,17605
28
- rust_crate_pipeline-1.4.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
29
- rust_crate_pipeline-1.4.1.dist-info/entry_points.txt,sha256=9Rr_IRuFRIridXxUSdEJbB3ba0NnpEfKmknZXFdYRC0,70
30
- rust_crate_pipeline-1.4.1.dist-info/top_level.txt,sha256=GUdB7RyxHLhijQxui_KTy3B8p_L2APui9C6RYa0FuaE,20
31
- rust_crate_pipeline-1.4.1.dist-info/RECORD,,
26
+ rust_crate_pipeline-1.4.2.dist-info/licenses/LICENSE,sha256=tpd4XNpbssrSx9-iErATOLrOh0ivNPfO2I5MAPUpats,1088
27
+ rust_crate_pipeline-1.4.2.dist-info/METADATA,sha256=1gnViQw0U2JkgbGieFQaV6OEK6sbNKAykivgwaZ_DAo,17605
28
+ rust_crate_pipeline-1.4.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
29
+ rust_crate_pipeline-1.4.2.dist-info/entry_points.txt,sha256=9Rr_IRuFRIridXxUSdEJbB3ba0NnpEfKmknZXFdYRC0,70
30
+ rust_crate_pipeline-1.4.2.dist-info/top_level.txt,sha256=GUdB7RyxHLhijQxui_KTy3B8p_L2APui9C6RYa0FuaE,20
31
+ rust_crate_pipeline-1.4.2.dist-info/RECORD,,