rust-crate-pipeline 1.2.3__tar.gz → 1.2.4__tar.gz

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 (28) hide show
  1. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4}/CHANGELOG.md +21 -0
  2. {rust_crate_pipeline-1.2.3/rust_crate_pipeline.egg-info → rust_crate_pipeline-1.2.4}/PKG-INFO +1 -1
  3. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4}/pyproject.toml +1 -1
  4. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4}/rust_crate_pipeline/main.py +44 -7
  5. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4}/rust_crate_pipeline/production_config.py +2 -8
  6. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4}/rust_crate_pipeline/version.py +1 -1
  7. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4/rust_crate_pipeline.egg-info}/PKG-INFO +1 -1
  8. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4}/setup.py +1 -1
  9. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4}/LICENSE +0 -0
  10. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4}/MANIFEST.in +0 -0
  11. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4}/README.md +0 -0
  12. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4}/requirements.txt +0 -0
  13. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4}/rust_crate_pipeline/__init__.py +0 -0
  14. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4}/rust_crate_pipeline/__main__.py +0 -0
  15. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4}/rust_crate_pipeline/ai_processing.py +0 -0
  16. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4}/rust_crate_pipeline/analysis.py +0 -0
  17. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4}/rust_crate_pipeline/config.py +0 -0
  18. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4}/rust_crate_pipeline/github_token_checker.py +0 -0
  19. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4}/rust_crate_pipeline/network.py +0 -0
  20. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4}/rust_crate_pipeline/pipeline.py +0 -0
  21. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4}/rust_crate_pipeline/utils/file_utils.py +0 -0
  22. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4}/rust_crate_pipeline/utils/logging_utils.py +0 -0
  23. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4}/rust_crate_pipeline.egg-info/SOURCES.txt +0 -0
  24. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4}/rust_crate_pipeline.egg-info/dependency_links.txt +0 -0
  25. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4}/rust_crate_pipeline.egg-info/entry_points.txt +0 -0
  26. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4}/rust_crate_pipeline.egg-info/requires.txt +0 -0
  27. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4}/rust_crate_pipeline.egg-info/top_level.txt +0 -0
  28. {rust_crate_pipeline-1.2.3 → rust_crate_pipeline-1.2.4}/setup.cfg +0 -0
@@ -2,6 +2,27 @@
2
2
 
3
3
  All notable changes to the Rust Crate Pipeline project.
4
4
 
5
+ ## [1.2.4] - 2025-06-18
6
+
7
+ ### 🐛 Critical Logging Fix
8
+
9
+ #### ✨ Fixed
10
+ - **Critical Logging Issue**: Fixed 0-byte log file problem caused by conflicting `logging.basicConfig()` calls
11
+ - **Enhanced File Logging**: Improved logging setup with proper handler management and UTF-8 encoding
12
+ - **Better Error Tracking**: Now properly logs all processing steps, errors, and skipped crates to file
13
+ - **Console + File Output**: Maintains both console output and detailed file logging
14
+
15
+ #### 🔧 Improved
16
+ - **Logging Conflicts**: Resolved production config vs main config logging conflicts
17
+ - **File Handler**: Added proper error handling for log file creation
18
+ - **Encoding Issues**: Fixed Unicode handling in log files
19
+ - **Debug Information**: Always captures DEBUG+ level info to log files while respecting console log level
20
+
21
+ #### 📊 Monitoring
22
+ - **Better Tracking**: Now you can properly see which crates were skipped and why
23
+ - **Detailed Logs**: Each processing step is properly logged with timestamps
24
+ - **Error Analysis**: Failed crates and reasons are now captured in log files
25
+
5
26
  ## [1.2.3] - 2025-06-18
6
27
 
7
28
  ### 🚀 L4 GPU Optimization Release
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rust-crate-pipeline
3
- Version: 1.2.3
3
+ Version: 1.2.4
4
4
  Summary: A comprehensive system for gathering, enriching, and analyzing metadata for Rust crates using AI-powered insights
5
5
  Home-page: https://github.com/DaveTmire85/SigilDERG-Data_Production
6
6
  Author: SuperUser666-Sigil
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "rust-crate-pipeline"
7
- version = "1.2.3"
7
+ version = "1.2.4"
8
8
  authors = [
9
9
  {name = "SuperUser666-Sigil", email = "miragemodularframework@gmail.com"},
10
10
  ]
@@ -111,15 +111,52 @@ Examples:
111
111
  return parser.parse_args()
112
112
 
113
113
  def configure_logging(log_level: str = 'INFO'):
114
+ """Configure logging with both console and file output"""
114
115
  level = getattr(logging, log_level.upper())
115
- logging.basicConfig(
116
- level=level,
117
- format="%(asctime)s [%(levelname)s] %(message)s",
118
- handlers=[
119
- logging.StreamHandler(),
120
- logging.FileHandler(f"crate_enrichment_{time.strftime('%Y%m%d-%H%M%S')}.log")
121
- ]
116
+
117
+ # Clear any existing handlers to avoid conflicts
118
+ root_logger = logging.getLogger()
119
+ for handler in root_logger.handlers[:]:
120
+ root_logger.removeHandler(handler)
121
+
122
+ # Set root logger level
123
+ root_logger.setLevel(level)
124
+
125
+ # Create formatters
126
+ detailed_formatter = logging.Formatter(
127
+ "%(asctime)s [%(levelname)s] %(name)s: %(message)s",
128
+ datefmt='%Y-%m-%d %H:%M:%S'
122
129
  )
130
+ simple_formatter = logging.Formatter(
131
+ "%(asctime)s [%(levelname)s] %(message)s"
132
+ )
133
+
134
+ # Console handler
135
+ console_handler = logging.StreamHandler()
136
+ console_handler.setLevel(level)
137
+ console_handler.setFormatter(simple_formatter)
138
+ root_logger.addHandler(console_handler)
139
+
140
+ # File handler with unique timestamp
141
+ log_filename = f"crate_enrichment_{time.strftime('%Y%m%d-%H%M%S')}.log"
142
+ try:
143
+ file_handler = logging.FileHandler(log_filename, mode='w', encoding='utf-8')
144
+ file_handler.setLevel(logging.DEBUG) # Always capture DEBUG+ to file
145
+ file_handler.setFormatter(detailed_formatter)
146
+ root_logger.addHandler(file_handler)
147
+
148
+ # Log a test message to verify file handler works
149
+ logging.info(f"Logging initialized - file: {log_filename}")
150
+
151
+ except Exception as e:
152
+ logging.error(f"Failed to create log file {log_filename}: {e}")
153
+ print(f"Warning: Could not create log file: {e}")
154
+
155
+ # Set library loggers to less verbose levels
156
+ logging.getLogger('requests').setLevel(logging.WARNING)
157
+ logging.getLogger('urllib3').setLevel(logging.WARNING)
158
+ logging.getLogger('requests_cache').setLevel(logging.WARNING)
159
+ logging.getLogger('llama_cpp').setLevel(logging.WARNING)
123
160
 
124
161
  def check_disk_space():
125
162
  if shutil.disk_usage(".").free < 1_000_000_000: # 1GB
@@ -12,14 +12,8 @@ import os
12
12
  def configure_production_logging():
13
13
  """Configure logging for production to reduce verbose warnings"""
14
14
 
15
- # Set up logging format
16
- logging.basicConfig(
17
- level=logging.INFO, # Default to INFO level
18
- format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
19
- datefmt='%Y-%m-%d %H:%M:%S'
20
- )
21
-
22
- # Set specific loggers to less verbose levels
15
+ # Don't use basicConfig here - let main.py handle it
16
+ # Just set specific loggers to less verbose levels
23
17
  logging.getLogger('requests').setLevel(logging.WARNING)
24
18
  logging.getLogger('urllib3').setLevel(logging.WARNING)
25
19
  logging.getLogger('requests_cache').setLevel(logging.WARNING)
@@ -1,6 +1,6 @@
1
1
  """Version information for rust-crate-pipeline."""
2
2
 
3
- __version__ = "1.2.3"
3
+ __version__ = "1.2.4"
4
4
  __version_info__ = tuple(int(x) for x in __version__.split("."))
5
5
 
6
6
  # Version history
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rust-crate-pipeline
3
- Version: 1.2.3
3
+ Version: 1.2.4
4
4
  Summary: A comprehensive system for gathering, enriching, and analyzing metadata for Rust crates using AI-powered insights
5
5
  Home-page: https://github.com/DaveTmire85/SigilDERG-Data_Production
6
6
  Author: SuperUser666-Sigil
@@ -8,7 +8,7 @@ with open("requirements.txt", "r", encoding="utf-8") as fh:
8
8
 
9
9
  setup(
10
10
  name="rust-crate-pipeline",
11
- version="1.2.3",
11
+ version="1.2.4",
12
12
  author="SuperUser666-Sigil",
13
13
  author_email="miragemodularframework@gmail.com",
14
14
  description="A comprehensive system for gathering, enriching, and analyzing metadata for Rust crates using AI-powered insights",