dslighting 1.7.11__py3-none-any.whl → 1.7.16__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.
- dslighting/__init__.py +1 -1
- dslighting/core/agent.py +102 -4
- {dslighting-1.7.11.dist-info → dslighting-1.7.16.dist-info}/METADATA +1 -1
- {dslighting-1.7.11.dist-info → dslighting-1.7.16.dist-info}/RECORD +7 -7
- {dslighting-1.7.11.dist-info → dslighting-1.7.16.dist-info}/WHEEL +0 -0
- {dslighting-1.7.11.dist-info → dslighting-1.7.16.dist-info}/entry_points.txt +0 -0
- {dslighting-1.7.11.dist-info → dslighting-1.7.16.dist-info}/top_level.txt +0 -0
dslighting/__init__.py
CHANGED
dslighting/core/agent.py
CHANGED
|
@@ -393,17 +393,113 @@ class Agent:
|
|
|
393
393
|
|
|
394
394
|
# Create simple wrapper class
|
|
395
395
|
class SimpleMLEBenchmark:
|
|
396
|
-
def __init__(self, registry_instance):
|
|
396
|
+
def __init__(self, registry_instance, logger, registry_dir, data_dir, task_id):
|
|
397
397
|
self.registry = registry_instance
|
|
398
398
|
self.problems = [{"competition_id": task_id}]
|
|
399
|
+
self.logger = logger
|
|
400
|
+
self.registry_dir = registry_dir
|
|
401
|
+
self.data_dir = data_dir
|
|
402
|
+
self.task_id = task_id
|
|
399
403
|
|
|
400
404
|
async def grade(self, submission_path):
|
|
401
405
|
"""Grade submission using custom registry."""
|
|
402
406
|
try:
|
|
403
|
-
|
|
407
|
+
# Read config directly from registry
|
|
408
|
+
import yaml
|
|
409
|
+
config_path = self.registry_dir / self.task_id / "config.yaml"
|
|
410
|
+
|
|
411
|
+
if not config_path.exists():
|
|
412
|
+
self.logger.warning(f" Config not found: {config_path}")
|
|
413
|
+
return 0.0
|
|
414
|
+
|
|
415
|
+
with open(config_path) as f:
|
|
416
|
+
config = yaml.safe_load(f)
|
|
417
|
+
|
|
418
|
+
# Resolve paths relative to data_dir (from config.yaml)
|
|
419
|
+
# self.data_dir is the parent directory (e.g., /path/to/competitions)
|
|
420
|
+
# config["dataset"]["answers"] is relative path like "bike-sharing-demand/prepared/private/test_answer.csv"
|
|
421
|
+
answers_rel_path = config.get("dataset", {}).get("answers", "")
|
|
422
|
+
answers_path = self.data_dir / answers_rel_path
|
|
423
|
+
|
|
424
|
+
if not answers_path.exists():
|
|
425
|
+
self.logger.warning(f" Answers file not found: {answers_path}")
|
|
426
|
+
self.logger.warning(f" Looking for: {answers_path}")
|
|
427
|
+
return 0.0
|
|
428
|
+
|
|
429
|
+
self.logger.info(f" Found answers file: {answers_path}")
|
|
430
|
+
|
|
431
|
+
# Import the actual Competition class from mlebench
|
|
432
|
+
from mlebench.registry import Competition
|
|
433
|
+
from mlebench.grade_helpers import Grader
|
|
434
|
+
|
|
435
|
+
# Load grader
|
|
436
|
+
grader_config = config.get("grader", {})
|
|
437
|
+
grader_name = grader_config.get("name", "rmsle")
|
|
438
|
+
|
|
439
|
+
# Import grade function if specified
|
|
440
|
+
grade_fn = None
|
|
441
|
+
if "grade_fn" in grader_config:
|
|
442
|
+
# Parse grade_fn format: mlebench.competitions.bike_sharing_demand.grade:grade
|
|
443
|
+
fn_str = grader_config["grade_fn"]
|
|
444
|
+
if ":" in fn_str:
|
|
445
|
+
module_path, fn_name = fn_str.rsplit(":", 1)
|
|
446
|
+
# Convert to file import if needed
|
|
447
|
+
if not module_path.startswith("file:"):
|
|
448
|
+
fn_file = self.registry_dir / self.task_id / "grade.py"
|
|
449
|
+
if fn_file.exists():
|
|
450
|
+
fn_str = f"file:{fn_file}:{fn_name}"
|
|
451
|
+
else:
|
|
452
|
+
# Try to import from mlebench
|
|
453
|
+
try:
|
|
454
|
+
import importlib
|
|
455
|
+
importlib.import_module(module_path)
|
|
456
|
+
except:
|
|
457
|
+
pass
|
|
458
|
+
|
|
459
|
+
# Create a simple grader
|
|
460
|
+
if grade_fn or fn_str:
|
|
461
|
+
grader = Grader(
|
|
462
|
+
name=grader_name,
|
|
463
|
+
grade_fn=fn_str if fn_str else grade_fn,
|
|
464
|
+
)
|
|
465
|
+
else:
|
|
466
|
+
# Default RMSLE grader
|
|
467
|
+
grader = Grader(name="rmsle", grade_fn=None)
|
|
468
|
+
|
|
469
|
+
# Resolve paths
|
|
470
|
+
competition_dir = self.data_dir / self.task_id
|
|
471
|
+
private_dir = competition_dir / "prepared" / "private"
|
|
472
|
+
public_dir = competition_dir / "prepared" / "public"
|
|
473
|
+
raw_dir = competition_dir / "raw"
|
|
474
|
+
checksums = competition_dir / "checksums.txt"
|
|
475
|
+
leaderboard = competition_dir / "leaderboard.csv"
|
|
476
|
+
|
|
477
|
+
# Create placeholder prepare_fn
|
|
478
|
+
def dummy_prepare_fn(a, b, c):
|
|
479
|
+
return private_dir
|
|
480
|
+
|
|
481
|
+
# Create actual Competition object with all required fields
|
|
482
|
+
simple_comp = Competition(
|
|
483
|
+
id=config["id"],
|
|
484
|
+
name=config["name"],
|
|
485
|
+
description=config.get("description", ""),
|
|
486
|
+
grader=grader,
|
|
487
|
+
answers=answers_path,
|
|
488
|
+
gold_submission=answers_path, # Use same as answers for grading
|
|
489
|
+
sample_submission=public_dir / "sampleSubmission.csv",
|
|
490
|
+
competition_type=config.get("competition_type", "standard"),
|
|
491
|
+
prepare_fn=dummy_prepare_fn,
|
|
492
|
+
raw_dir=raw_dir,
|
|
493
|
+
private_dir=private_dir,
|
|
494
|
+
public_dir=public_dir,
|
|
495
|
+
checksums=checksums,
|
|
496
|
+
leaderboard=leaderboard,
|
|
497
|
+
)
|
|
498
|
+
|
|
499
|
+
# Grade using mlebench's grade_csv
|
|
404
500
|
report = grade_csv(
|
|
405
501
|
submission_path,
|
|
406
|
-
|
|
502
|
+
simple_comp,
|
|
407
503
|
)
|
|
408
504
|
# Return the score (float), not the entire report
|
|
409
505
|
score = report.score if report.score is not None else 0.0
|
|
@@ -411,9 +507,11 @@ class Agent:
|
|
|
411
507
|
return score
|
|
412
508
|
except Exception as e:
|
|
413
509
|
self.logger.warning(f" Grading failed: {e}")
|
|
510
|
+
import traceback
|
|
511
|
+
self.logger.warning(f" Traceback: {traceback.format_exc()}")
|
|
414
512
|
return 0.0
|
|
415
513
|
|
|
416
|
-
benchmark = SimpleMLEBenchmark(custom_registry)
|
|
514
|
+
benchmark = SimpleMLEBenchmark(custom_registry, self.logger, registry_dir_path, data_dir_path, task_id)
|
|
417
515
|
runner = self.get_runner()
|
|
418
516
|
runner.benchmark = benchmark
|
|
419
517
|
print(f"[DEBUG 13] ✓ Benchmark set successfully for task: {task_id}")
|
|
@@ -66,9 +66,9 @@ dsat/workflows/search/aide_workflow.py,sha256=mxIGXcueZGXpv1RXsQJ0YPWtvzICaFQeJo
|
|
|
66
66
|
dsat/workflows/search/automind_workflow.py,sha256=b2JzqUDnDOt_SQdtAvC0fBCJzgTadLylbpgmpaS63Ls,12573
|
|
67
67
|
dsat/workflows/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
68
68
|
dsat/workflows/templates/basic_kaggle_loop.py,sha256=e6YLEpCArgWfKViwoti7SdygHsHp43sqP6VyMqnOJaA,3128
|
|
69
|
-
dslighting/__init__.py,sha256=
|
|
69
|
+
dslighting/__init__.py,sha256=EB2LmdQzrd-rZB6fEyW7QRG2q58I2X9QonTsMihkii4,5153
|
|
70
70
|
dslighting/core/__init__.py,sha256=T4yYs0RQoz6DBarjOk12PeZq9YoPYrfl3Os0CPlzcB0,252
|
|
71
|
-
dslighting/core/agent.py,sha256=
|
|
71
|
+
dslighting/core/agent.py,sha256=qiAqJwrhry3T_HBfEndkghtRCy02uGUiHod4hpLkm9w,38211
|
|
72
72
|
dslighting/core/config_builder.py,sha256=JMDW0JFj6PRCeP70D1Td8FYXC1bIupe4H6m8J1caO7Y,10294
|
|
73
73
|
dslighting/core/data_loader.py,sha256=HdcDN-10FYfViu8Z0RSYjA2ne6VXVbfKEOZO7EpxLIc,25003
|
|
74
74
|
dslighting/core/task_detector.py,sha256=xOYAV9yiboC8lDeDIEtxvucaGi6fENfeycrowWs-kP0,16300
|
|
@@ -2446,8 +2446,8 @@ mlebench/competitions/vinbigdata-chest-xray-abnormalities-detection/prepare_val.
|
|
|
2446
2446
|
mlebench/competitions/whale-categorization-playground/grade.py,sha256=Wl1fNvpapAmc_Cdy2Cp68nEqeHB2XKnN91U9t-YLlXQ,1562
|
|
2447
2447
|
mlebench/competitions/whale-categorization-playground/prepare.py,sha256=huo8fDBcGR413JF8m8Js8l8gkFCZpWL1st7Yd57Rjg8,4199
|
|
2448
2448
|
mlebench/competitions/whale-categorization-playground/prepare_val.py,sha256=XvdnOvEJyTxovXQsoKLMKA_J6EMdxkpOe_SIgEdoOx8,7486
|
|
2449
|
-
dslighting-1.7.
|
|
2450
|
-
dslighting-1.7.
|
|
2451
|
-
dslighting-1.7.
|
|
2452
|
-
dslighting-1.7.
|
|
2453
|
-
dslighting-1.7.
|
|
2449
|
+
dslighting-1.7.16.dist-info/METADATA,sha256=CqHn1grvJF-lyY06Q3GB9-0VKnwpyQSK98MsZBEvPEk,18326
|
|
2450
|
+
dslighting-1.7.16.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
2451
|
+
dslighting-1.7.16.dist-info/entry_points.txt,sha256=1xqIWL9-EG9t7nkERVeNRtMoRyIQe-6CJZJN-rdCYFQ,91
|
|
2452
|
+
dslighting-1.7.16.dist-info/top_level.txt,sha256=cmZU3ri0tz1IjiTKrz85Ih9614QlCrYqSqzlPMgaSM0,25
|
|
2453
|
+
dslighting-1.7.16.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|