spiderforce4ai 2.5.9__py3-none-any.whl → 2.6__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.
- spiderforce4ai/post_extraction_agent.py +18 -6
- {spiderforce4ai-2.5.9.dist-info → spiderforce4ai-2.6.dist-info}/METADATA +1 -1
- spiderforce4ai-2.6.dist-info/RECORD +7 -0
- spiderforce4ai-2.5.9.dist-info/RECORD +0 -7
- {spiderforce4ai-2.5.9.dist-info → spiderforce4ai-2.6.dist-info}/WHEEL +0 -0
- {spiderforce4ai-2.5.9.dist-info → spiderforce4ai-2.6.dist-info}/entry_points.txt +0 -0
- {spiderforce4ai-2.5.9.dist-info → spiderforce4ai-2.6.dist-info}/top_level.txt +0 -0
@@ -260,22 +260,34 @@ class PostExtractionAgent:
|
|
260
260
|
"""Save individual or combined results synchronously."""
|
261
261
|
try:
|
262
262
|
if self.config.combine_output and self.config.output_file:
|
263
|
-
#
|
263
|
+
# Convert Path to string if needed
|
264
|
+
output_file = str(self.config.output_file) if isinstance(self.config.output_file, Path) else self.config.output_file
|
265
|
+
|
266
|
+
# Load existing results if file exists
|
267
|
+
if Path(output_file).exists():
|
268
|
+
try:
|
269
|
+
with open(output_file, 'r') as f:
|
270
|
+
self.results = json.load(f)
|
271
|
+
except json.JSONDecodeError:
|
272
|
+
self.results = {}
|
273
|
+
|
274
|
+
# Update results with new data
|
264
275
|
self.results[url] = result
|
265
276
|
|
266
277
|
# Ensure output directory exists
|
267
|
-
|
278
|
+
Path(output_file).parent.mkdir(parents=True, exist_ok=True)
|
268
279
|
|
269
280
|
# Save combined results atomically
|
270
|
-
temp_file =
|
281
|
+
temp_file = f"{output_file}.tmp"
|
271
282
|
with open(temp_file, 'w') as f:
|
272
283
|
json.dump(self.results, f, indent=2)
|
273
|
-
temp_file.replace(self.config.output_file)
|
274
284
|
|
285
|
+
# Atomic replace
|
286
|
+
Path(temp_file).replace(output_file)
|
275
287
|
logger.info(f"Updated combined results file with {url}")
|
276
288
|
|
277
|
-
# Cleanup backup files
|
278
|
-
for backup_file in
|
289
|
+
# Cleanup backup files
|
290
|
+
for backup_file in Path(output_file).parent.glob(f"{Path(output_file).stem}.bak_*"):
|
279
291
|
try:
|
280
292
|
backup_file.unlink()
|
281
293
|
logger.info(f"Cleaned up backup file: {backup_file}")
|
@@ -0,0 +1,7 @@
|
|
1
|
+
spiderforce4ai/__init__.py,sha256=BlrRIrtpDUHjmDedqgXP1KbAAsAH9vwFPncUR5VGGyM,44804
|
2
|
+
spiderforce4ai/post_extraction_agent.py,sha256=AysrHIoD-IreqbvWqCDxyN7v8EPSdLOG9yxABamTZSg,17827
|
3
|
+
spiderforce4ai-2.6.dist-info/METADATA,sha256=JtIZ1-ojRvfm773-yF1a_M_x6eB5kbnb6WT5XT04KDA,9010
|
4
|
+
spiderforce4ai-2.6.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
5
|
+
spiderforce4ai-2.6.dist-info/entry_points.txt,sha256=ibARQxOlDiL1ho12zbDZt4Uq5RKSIk_qk159ZlZ46hc,59
|
6
|
+
spiderforce4ai-2.6.dist-info/top_level.txt,sha256=Kth7A21Js7DCp0j5XBBi-FE45SCLouZkeNZU__Yr9Yk,15
|
7
|
+
spiderforce4ai-2.6.dist-info/RECORD,,
|
@@ -1,7 +0,0 @@
|
|
1
|
-
spiderforce4ai/__init__.py,sha256=BlrRIrtpDUHjmDedqgXP1KbAAsAH9vwFPncUR5VGGyM,44804
|
2
|
-
spiderforce4ai/post_extraction_agent.py,sha256=K6AGqeDO_MZ4pQMlkmnfK6Y5Sa1BWkUWv9u7_LMxsuM,17314
|
3
|
-
spiderforce4ai-2.5.9.dist-info/METADATA,sha256=4qXFZ6sEYnqsjULabDNc0ez0ZTuTPa1FuUTXpGuXG0I,9012
|
4
|
-
spiderforce4ai-2.5.9.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
5
|
-
spiderforce4ai-2.5.9.dist-info/entry_points.txt,sha256=ibARQxOlDiL1ho12zbDZt4Uq5RKSIk_qk159ZlZ46hc,59
|
6
|
-
spiderforce4ai-2.5.9.dist-info/top_level.txt,sha256=Kth7A21Js7DCp0j5XBBi-FE45SCLouZkeNZU__Yr9Yk,15
|
7
|
-
spiderforce4ai-2.5.9.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|