langfun 0.1.2.dev202505130804__py3-none-any.whl → 0.1.2.dev202505140804__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.
- langfun/core/agentic/action.py +172 -87
- langfun/core/agentic/action_eval.py +4 -6
- langfun/core/coding/python/correction.py +4 -0
- langfun/core/console.py +6 -3
- langfun/core/language_model.py +4 -2
- langfun/core/logging.py +3 -4
- langfun/core/structured/mapping.py +6 -0
- langfun/core/structured/querying.py +324 -91
- langfun/core/structured/querying_test.py +242 -2
- langfun/core/structured/schema.py +8 -0
- langfun/core/structured/schema_generation.py +1 -0
- langfun/core/structured/schema_test.py +6 -3
- {langfun-0.1.2.dev202505130804.dist-info → langfun-0.1.2.dev202505140804.dist-info}/METADATA +1 -1
- {langfun-0.1.2.dev202505130804.dist-info → langfun-0.1.2.dev202505140804.dist-info}/RECORD +17 -17
- {langfun-0.1.2.dev202505130804.dist-info → langfun-0.1.2.dev202505140804.dist-info}/WHEEL +0 -0
- {langfun-0.1.2.dev202505130804.dist-info → langfun-0.1.2.dev202505140804.dist-info}/licenses/LICENSE +0 -0
- {langfun-0.1.2.dev202505130804.dist-info → langfun-0.1.2.dev202505140804.dist-info}/top_level.txt +0 -0
@@ -15,6 +15,7 @@
|
|
15
15
|
|
16
16
|
import inspect
|
17
17
|
import math
|
18
|
+
import time
|
18
19
|
from typing import Any
|
19
20
|
import unittest
|
20
21
|
|
@@ -984,6 +985,19 @@ class LfQueryPythonV2Test(unittest.TestCase):
|
|
984
985
|
):
|
985
986
|
querying.query('Compute 1 + 2', int)
|
986
987
|
|
988
|
+
def test_not_allowed_code(self):
|
989
|
+
lm = fake.StaticResponse(
|
990
|
+
"""
|
991
|
+
class Foo:
|
992
|
+
pass
|
993
|
+
"""
|
994
|
+
)
|
995
|
+
with self.assertRaisesRegex(
|
996
|
+
mapping.MappingError,
|
997
|
+
'Class definition is not allowed',
|
998
|
+
):
|
999
|
+
querying.query('Compute 1 + 2', int, lm=lm)
|
1000
|
+
|
987
1001
|
def test_autofix(self):
|
988
1002
|
lm = fake.StaticSequence([
|
989
1003
|
'=1',
|
@@ -1319,7 +1333,9 @@ class QueryInvocationTest(unittest.TestCase):
|
|
1319
1333
|
|
1320
1334
|
self.assertEqual(queries[0].id, '123')
|
1321
1335
|
self.assertTrue(queries[0].has_error)
|
1322
|
-
self.assertIsInstance(queries[0].
|
1336
|
+
self.assertIsInstance(queries[0].error, pg.utils.ErrorInfo)
|
1337
|
+
self.assertIn('MappingError', queries[0].error.tag)
|
1338
|
+
self.assertIsNone(queries[0].output)
|
1323
1339
|
|
1324
1340
|
def test_kwargs(self):
|
1325
1341
|
lm = fake.StaticSequence([
|
@@ -1374,11 +1390,147 @@ class QueryInvocationTest(unittest.TestCase):
|
|
1374
1390
|
mapping_example = queries[0].as_mapping_example()
|
1375
1391
|
self.assertTrue(pg.eq(mapping_example.input, lf.Template('foo {{x}}', x=1)))
|
1376
1392
|
self.assertEqual(mapping_example.schema.spec.cls, Activity)
|
1377
|
-
self.
|
1393
|
+
self.assertEqual(mapping_example.output, 'Activity(description="hi"')
|
1378
1394
|
|
1379
1395
|
|
1380
1396
|
class TrackQueriesTest(unittest.TestCase):
|
1381
1397
|
|
1398
|
+
def test_query_without_schema(self):
|
1399
|
+
lm = fake.StaticSequence([
|
1400
|
+
'bar',
|
1401
|
+
])
|
1402
|
+
with querying.track_queries() as queries:
|
1403
|
+
querying.query('foo', lm=lm)
|
1404
|
+
self.assertEqual(len(queries), 1)
|
1405
|
+
self.assertEqual(queries[0].lm_response, 'bar')
|
1406
|
+
self.assertTrue(pg.eq(queries[0].input, lf.Template('foo')))
|
1407
|
+
self.assertEqual(queries[0].lm_request, 'foo')
|
1408
|
+
self.assertIsNone(queries[0].schema)
|
1409
|
+
self.assertEqual(queries[0].protocol, 'python')
|
1410
|
+
self.assertEqual(queries[0].default, lf.RAISE_IF_HAS_ERROR)
|
1411
|
+
|
1412
|
+
self.assertEqual(queries[0].output, 'bar')
|
1413
|
+
self.assertFalse(queries[0].has_error)
|
1414
|
+
self.assertIsNone(queries[0].error)
|
1415
|
+
self.assertIsNotNone(queries[0].end_time)
|
1416
|
+
self.assertIsNotNone(queries[0].usage_summary)
|
1417
|
+
|
1418
|
+
def test_query_with_schema(self):
|
1419
|
+
lm = fake.StaticSequence([
|
1420
|
+
'Activity(description="hi")',
|
1421
|
+
])
|
1422
|
+
with querying.track_queries() as queries:
|
1423
|
+
querying.query('foo', Activity, lm=lm)
|
1424
|
+
self.assertEqual(len(queries), 1)
|
1425
|
+
self.assertTrue(pg.eq(queries[0].input, lf.Template('foo')))
|
1426
|
+
self.assertIn('foo', queries[0].lm_request.text)
|
1427
|
+
self.assertIn('Please respond to ', queries[0].lm_request.text)
|
1428
|
+
self.assertEqual(queries[0].schema.spec.cls, Activity)
|
1429
|
+
self.assertEqual(queries[0].default, lf.RAISE_IF_HAS_ERROR)
|
1430
|
+
self.assertTrue(queries[0].protocol.startswith('python:'))
|
1431
|
+
|
1432
|
+
self.assertTrue(pg.eq(queries[0].output, Activity(description='hi')))
|
1433
|
+
self.assertFalse(queries[0].has_error)
|
1434
|
+
self.assertIsNone(queries[0].error)
|
1435
|
+
self.assertIsNotNone(queries[0].end_time)
|
1436
|
+
self.assertIsNotNone(queries[0].usage_summary)
|
1437
|
+
|
1438
|
+
def test_query_with_schema_and_default(self):
|
1439
|
+
lm = fake.StaticSequence([
|
1440
|
+
'Activity(description="hi")',
|
1441
|
+
])
|
1442
|
+
with querying.track_queries() as queries:
|
1443
|
+
querying.query('foo', Activity, default=None, lm=lm)
|
1444
|
+
self.assertEqual(len(queries), 1)
|
1445
|
+
self.assertTrue(pg.eq(queries[0].input, lf.Template('foo')))
|
1446
|
+
self.assertIn('foo', queries[0].lm_request.text)
|
1447
|
+
self.assertIn('Please respond to ', queries[0].lm_request.text)
|
1448
|
+
self.assertEqual(queries[0].schema.spec.cls, Activity)
|
1449
|
+
self.assertIsNone(queries[0].default)
|
1450
|
+
self.assertTrue(queries[0].protocol.startswith('python:'))
|
1451
|
+
|
1452
|
+
self.assertTrue(pg.eq(queries[0].output, Activity(description='hi')))
|
1453
|
+
self.assertFalse(queries[0].has_error)
|
1454
|
+
self.assertIsNone(queries[0].error)
|
1455
|
+
self.assertIsNotNone(queries[0].end_time)
|
1456
|
+
self.assertIsNotNone(queries[0].usage_summary)
|
1457
|
+
|
1458
|
+
def test_oop_error_for_query_with_schema(self):
|
1459
|
+
lm = fake.StaticSequence([
|
1460
|
+
'Activity(description="hi"',
|
1461
|
+
])
|
1462
|
+
with (
|
1463
|
+
self.assertRaises(mapping.MappingError),
|
1464
|
+
querying.track_queries() as queries
|
1465
|
+
):
|
1466
|
+
querying.query('foo', Activity, lm=lm)
|
1467
|
+
self.assertEqual(len(queries), 1)
|
1468
|
+
self.assertTrue(pg.eq(queries[0].input, lf.Template('foo')))
|
1469
|
+
self.assertIn('foo', queries[0].lm_request.text)
|
1470
|
+
self.assertIn('Please respond to ', queries[0].lm_request.text)
|
1471
|
+
self.assertEqual(queries[0].schema.spec.cls, Activity)
|
1472
|
+
self.assertEqual(queries[0].default, lf.RAISE_IF_HAS_ERROR)
|
1473
|
+
self.assertTrue(queries[0].protocol.startswith('python:'))
|
1474
|
+
|
1475
|
+
self.assertIsNone(queries[0].output)
|
1476
|
+
self.assertTrue(queries[0].has_error)
|
1477
|
+
self.assertTrue(queries[0].has_oop_error)
|
1478
|
+
self.assertIsNotNone(queries[0].error)
|
1479
|
+
self.assertIn('MappingError', queries[0].error.tag)
|
1480
|
+
self.assertIsNotNone(queries[0].end_time)
|
1481
|
+
self.assertIsNotNone(queries[0].usage_summary)
|
1482
|
+
|
1483
|
+
def test_oop_error_for_query_with_schema_and_default(self):
|
1484
|
+
lm = fake.StaticSequence([
|
1485
|
+
'Activity(description="hi"',
|
1486
|
+
])
|
1487
|
+
with querying.track_queries() as queries:
|
1488
|
+
querying.query('foo', Activity, default=1, lm=lm)
|
1489
|
+
|
1490
|
+
self.assertEqual(len(queries), 1)
|
1491
|
+
self.assertTrue(pg.eq(queries[0].input, lf.Template('foo')))
|
1492
|
+
self.assertIn('foo', queries[0].lm_request.text)
|
1493
|
+
self.assertIn('Please respond to ', queries[0].lm_request.text)
|
1494
|
+
self.assertEqual(queries[0].schema.spec.cls, Activity)
|
1495
|
+
self.assertEqual(queries[0].default, 1)
|
1496
|
+
self.assertTrue(queries[0].protocol.startswith('python:'))
|
1497
|
+
|
1498
|
+
self.assertEqual(queries[0].output, 1)
|
1499
|
+
self.assertTrue(queries[0].has_error)
|
1500
|
+
self.assertTrue(queries[0].has_oop_error)
|
1501
|
+
self.assertIsNotNone(queries[0].error)
|
1502
|
+
self.assertIn('MappingError', queries[0].error.tag)
|
1503
|
+
self.assertIsNotNone(queries[0].end_time)
|
1504
|
+
self.assertIsNotNone(queries[0].usage_summary)
|
1505
|
+
|
1506
|
+
def test_lm_error_for_query_with_schema(self):
|
1507
|
+
class BadLLM(fake.StaticResponse):
|
1508
|
+
response = 'bad call'
|
1509
|
+
|
1510
|
+
def _sample(self, *args, **kwargs):
|
1511
|
+
raise ValueError('bad LLM')
|
1512
|
+
|
1513
|
+
with (
|
1514
|
+
self.assertRaises(ValueError),
|
1515
|
+
querying.track_queries() as queries
|
1516
|
+
):
|
1517
|
+
querying.query('foo', Activity, default=1, lm=BadLLM())
|
1518
|
+
|
1519
|
+
self.assertEqual(len(queries), 1)
|
1520
|
+
self.assertTrue(pg.eq(queries[0].input, lf.Template('foo')))
|
1521
|
+
self.assertIn('foo', queries[0].lm_request.text)
|
1522
|
+
self.assertIn('Please respond to ', queries[0].lm_request.text)
|
1523
|
+
self.assertEqual(queries[0].schema.spec.cls, Activity)
|
1524
|
+
self.assertEqual(queries[0].default, 1)
|
1525
|
+
self.assertTrue(queries[0].protocol.startswith('python:'))
|
1526
|
+
|
1527
|
+
self.assertIsNone(queries[0].output)
|
1528
|
+
self.assertTrue(queries[0].has_error)
|
1529
|
+
self.assertIsNotNone(queries[0].error)
|
1530
|
+
self.assertIn('ValueError', queries[0].error.tag)
|
1531
|
+
self.assertIsNotNone(queries[0].end_time)
|
1532
|
+
self.assertIsNotNone(queries[0].usage_summary)
|
1533
|
+
|
1382
1534
|
def test_include_child_scopes(self):
|
1383
1535
|
lm = fake.StaticSequence([
|
1384
1536
|
'bar',
|
@@ -1413,6 +1565,94 @@ class TrackQueriesTest(unittest.TestCase):
|
|
1413
1565
|
self.assertEqual(len(child_queries), 1)
|
1414
1566
|
self.assertIs(child_queries[0], queries[1])
|
1415
1567
|
|
1568
|
+
def test_callbacks(self):
|
1569
|
+
lm = fake.StaticSequence([
|
1570
|
+
'bar',
|
1571
|
+
])
|
1572
|
+
state = {}
|
1573
|
+
def start_callabck(query):
|
1574
|
+
self.assertFalse(query.is_completed)
|
1575
|
+
self.assertIsNone(query.end_time)
|
1576
|
+
elapse1 = query.elapse
|
1577
|
+
self.assertGreater(elapse1, 0)
|
1578
|
+
time.sleep(0.1)
|
1579
|
+
self.assertGreater(query.elapse, elapse1)
|
1580
|
+
self.assertIsNotNone(query.usage_summary)
|
1581
|
+
self.assertEqual(query.usage_summary.total.num_requests, 0)
|
1582
|
+
self.assertIsNone(query.lm_response)
|
1583
|
+
self.assertIsNone(query.output)
|
1584
|
+
self.assertIsNone(query.error)
|
1585
|
+
state['start'] = query
|
1586
|
+
|
1587
|
+
def end_callback(query):
|
1588
|
+
self.assertTrue(query.is_completed)
|
1589
|
+
self.assertIsNotNone(query.end_time)
|
1590
|
+
self.assertIsNotNone(query.usage_summary)
|
1591
|
+
self.assertEqual(query.usage_summary.total.num_requests, 1)
|
1592
|
+
self.assertIsNotNone(query.lm_response)
|
1593
|
+
self.assertIsNotNone(query.output)
|
1594
|
+
self.assertIsNone(query.error)
|
1595
|
+
state['end'] = query
|
1596
|
+
|
1597
|
+
with querying.track_queries(
|
1598
|
+
start_callabck=start_callabck, end_callabck=end_callback
|
1599
|
+
) as queries:
|
1600
|
+
querying.query('foo', lm=lm)
|
1601
|
+
self.assertIs(state['start'], queries[0])
|
1602
|
+
self.assertIs(state['end'], queries[0])
|
1603
|
+
|
1604
|
+
def test_callbacks_with_error(self):
|
1605
|
+
lm = fake.StaticSequence([
|
1606
|
+
'bar',
|
1607
|
+
])
|
1608
|
+
state = {}
|
1609
|
+
def start_callabck(query):
|
1610
|
+
self.assertFalse(query.is_completed)
|
1611
|
+
self.assertIsNone(query.end_time)
|
1612
|
+
self.assertIsNotNone(query.usage_summary)
|
1613
|
+
self.assertEqual(query.usage_summary.total.num_requests, 0)
|
1614
|
+
self.assertIsNone(query.lm_response)
|
1615
|
+
self.assertIsNone(query.output)
|
1616
|
+
self.assertIsNone(query.error)
|
1617
|
+
state['start'] = query
|
1618
|
+
|
1619
|
+
def end_callback(query):
|
1620
|
+
self.assertTrue(query.is_completed)
|
1621
|
+
self.assertIsNotNone(query.end_time)
|
1622
|
+
self.assertIsNotNone(query.usage_summary)
|
1623
|
+
self.assertEqual(query.usage_summary.total.num_requests, 1)
|
1624
|
+
self.assertIsNotNone(query.lm_response)
|
1625
|
+
self.assertIsNone(query.output)
|
1626
|
+
self.assertIsNotNone(query.error)
|
1627
|
+
state['end'] = query
|
1628
|
+
|
1629
|
+
with self.assertRaises(mapping.MappingError):
|
1630
|
+
with querying.track_queries(
|
1631
|
+
start_callabck=start_callabck, end_callabck=end_callback
|
1632
|
+
) as queries:
|
1633
|
+
querying.query('foo', int, lm=lm)
|
1634
|
+
self.assertIs(state['start'], queries[0])
|
1635
|
+
self.assertIs(state['end'], queries[0])
|
1636
|
+
|
1637
|
+
def test_track_with_autofix(self):
|
1638
|
+
lm = fake.StaticSequence([
|
1639
|
+
'=1',
|
1640
|
+
inspect.cleandoc("""
|
1641
|
+
CorrectedCode(
|
1642
|
+
corrected_code='1',
|
1643
|
+
)
|
1644
|
+
"""),
|
1645
|
+
])
|
1646
|
+
with querying.track_queries() as queries:
|
1647
|
+
querying.query('foo', int, lm=lm, autofix=1)
|
1648
|
+
self.assertEqual(len(queries), 2)
|
1649
|
+
self.assertTrue(queries[0].has_error)
|
1650
|
+
self.assertTrue(queries[0].has_oop_error)
|
1651
|
+
self.assertIsNone(queries[0].output)
|
1652
|
+
self.assertFalse(queries[1].has_error)
|
1653
|
+
self.assertEqual(queries[1].output.__class__.__name__, 'CorrectedCode')
|
1654
|
+
self.assertEqual(queries[1].output.corrected_code, '1')
|
1655
|
+
|
1416
1656
|
def test_exclude_child_scopes(self):
|
1417
1657
|
lm = fake.StaticSequence([
|
1418
1658
|
'bar',
|
@@ -722,6 +722,9 @@ class ValuePythonRepr(ValueRepr):
|
|
722
722
|
schema: Schema | None = None,
|
723
723
|
*,
|
724
724
|
additional_context: dict[str, Type[Any]] | None = None,
|
725
|
+
permission: pg.coding.CodePermission = (
|
726
|
+
pg.coding.CodePermission.ASSIGN | pg.coding.CodePermission.CALL
|
727
|
+
),
|
725
728
|
autofix=0,
|
726
729
|
autofix_lm: lf.LanguageModel = lf.contextual(),
|
727
730
|
**kwargs,
|
@@ -737,6 +740,7 @@ class ValuePythonRepr(ValueRepr):
|
|
737
740
|
global_vars=global_vars,
|
738
741
|
autofix=autofix,
|
739
742
|
autofix_lm=autofix_lm,
|
743
|
+
permission=permission,
|
740
744
|
)
|
741
745
|
|
742
746
|
|
@@ -744,6 +748,9 @@ def structure_from_python(
|
|
744
748
|
code: str,
|
745
749
|
*,
|
746
750
|
global_vars: dict[str, Any] | None = None,
|
751
|
+
permission: pg.coding.CodePermission = (
|
752
|
+
pg.coding.CodePermission.ASSIGN | pg.coding.CodePermission.CALL
|
753
|
+
),
|
747
754
|
autofix=0,
|
748
755
|
autofix_lm: lf.LanguageModel = lf.contextual(),
|
749
756
|
) -> Any:
|
@@ -769,6 +776,7 @@ def structure_from_python(
|
|
769
776
|
sandbox=False,
|
770
777
|
max_attempts=autofix,
|
771
778
|
lm=autofix_lm,
|
779
|
+
permission=permission,
|
772
780
|
)
|
773
781
|
|
774
782
|
|
@@ -27,6 +27,7 @@ class GenerateClass(mapping.Mapping):
|
|
27
27
|
input_title = 'GENERATION_CONTEXT'
|
28
28
|
context_title = 'CLASS_NAME'
|
29
29
|
output_title = 'OUTPUT_CLASS'
|
30
|
+
permission = pg.coding.CodePermission.ALL
|
30
31
|
|
31
32
|
preamble: lf.Template = lf.Template("""
|
32
33
|
Help generate a class based on the last {{ context_title }} and {{ input_title }}.
|
@@ -149,7 +149,8 @@ class SchemaTest(unittest.TestCase):
|
|
149
149
|
class C(B):
|
150
150
|
pass
|
151
151
|
""",
|
152
|
-
global_vars=dict(B=B)
|
152
|
+
global_vars=dict(B=B),
|
153
|
+
permission=pg.coding.CodePermission.ALL,
|
153
154
|
)
|
154
155
|
self.assertEqual(v.__module__, 'builtins')
|
155
156
|
self.assertEqual(schema.class_dependencies(), [Foo, A, Bar, X, B])
|
@@ -175,7 +176,8 @@ class SchemaTest(unittest.TestCase):
|
|
175
176
|
class CC(BB):
|
176
177
|
pass
|
177
178
|
""",
|
178
|
-
global_vars=dict(BB=BB)
|
179
|
+
global_vars=dict(BB=BB),
|
180
|
+
permission=pg.coding.CodePermission.ALL,
|
179
181
|
)
|
180
182
|
self.assertEqual(v.__module__, 'builtins')
|
181
183
|
schema = schema_lib.Schema([AA])
|
@@ -818,7 +820,8 @@ class ValuePythonReprTest(unittest.TestCase):
|
|
818
820
|
x: Dict[str, Any]
|
819
821
|
y: Optional[Sequence[str]]
|
820
822
|
z: Union[int, List[int], Tuple[int]]
|
821
|
-
"""
|
823
|
+
""",
|
824
|
+
permission=pg.coding.CodePermission.ALL,
|
822
825
|
)
|
823
826
|
)
|
824
827
|
)
|
@@ -4,13 +4,13 @@ langfun/core/component.py,sha256=g1kQM0bryYYYWVDrSMnHfc74wIBbpfe5_B3s-UIP5GE,302
|
|
4
4
|
langfun/core/component_test.py,sha256=0CxTgjAud3aj8wBauFhG2FHDqrxCTl4OI4gzQTad-40,9254
|
5
5
|
langfun/core/concurrent.py,sha256=zY-pXqlGqss_GI20tM1gXvyW8QepVPUuFNmutcIdhbI,32760
|
6
6
|
langfun/core/concurrent_test.py,sha256=roMFze0EKuyPbmG6DZzz8K8VGsZwWzc0F1uJZTFROC4,17572
|
7
|
-
langfun/core/console.py,sha256=
|
7
|
+
langfun/core/console.py,sha256=cLQEf84aDxItA9fStJV22xJch0TqFLNf9hLqwJ0RHmU,2652
|
8
8
|
langfun/core/console_test.py,sha256=pBOcuNMJdVELywvroptfcRtJMsegMm3wSlHAL2TdxVk,1679
|
9
9
|
langfun/core/langfunc.py,sha256=G50YgoVZ0y1GFw2ev41MlOqr6qa8YakbvNC0h_E0PiA,11140
|
10
10
|
langfun/core/langfunc_test.py,sha256=CDn-gJCa5EnjN7cotAVCfSCbuzddq2o-HzEt7kV8HbY,8882
|
11
|
-
langfun/core/language_model.py,sha256=
|
11
|
+
langfun/core/language_model.py,sha256=GCvbu749TviZyLQSNunO0rKeDAb7E_6G4rzqQJerN_E,47913
|
12
12
|
langfun/core/language_model_test.py,sha256=iA5uo7rIj2jAtCYzMzhyNg1fWqE2Onn60bOO58q72C0,36454
|
13
|
-
langfun/core/logging.py,sha256=
|
13
|
+
langfun/core/logging.py,sha256=jwPamwFYozrs3Tsds8xXG23PhfqODTZ2Au7poTH3yxE,9121
|
14
14
|
langfun/core/logging_test.py,sha256=vbVGOQxwMmVSiFfbt2897gUt-8nqDpV64jCAeUG_q5U,6924
|
15
15
|
langfun/core/memory.py,sha256=vyXVvfvSdLLJAzdIupnbn3k26OgclCx-OJ7gddS5e1Y,2070
|
16
16
|
langfun/core/message.py,sha256=qUJZ9NfrlYG3aU_K2ud236gdTnvZ7Qw2T4pv4hI9ivg,32817
|
@@ -26,13 +26,13 @@ langfun/core/subscription_test.py,sha256=Y4ZdbZEwm83YNZBxHff0QR4QUa4rdaNXA3_jfIc
|
|
26
26
|
langfun/core/template.py,sha256=jNhYSrbLIn9kZOa03w5QZbyjgfnzJzE_ZrrMvvWY4t4,24929
|
27
27
|
langfun/core/template_test.py,sha256=AQv_m9qE93WxhEhSlm1xaBgB4hu0UVtA53dljngkUW0,17090
|
28
28
|
langfun/core/agentic/__init__.py,sha256=qR3jlfUO4rhIoYdRDLz-d22YZf3FvU4FW88vsjiGDQQ,1224
|
29
|
-
langfun/core/agentic/action.py,sha256=
|
30
|
-
langfun/core/agentic/action_eval.py,sha256=
|
29
|
+
langfun/core/agentic/action.py,sha256=G2HwLr8SZe0fpqGBu5obuzMz3EDMl-xFJab5myQOBv4,49571
|
30
|
+
langfun/core/agentic/action_eval.py,sha256=YTilyUEkJl_8FVMgdfO17PurWWaEJ6oA15CuefJJRLk,4887
|
31
31
|
langfun/core/agentic/action_eval_test.py,sha256=7AkOwNbUX-ZgR1R0a7bvUZ5abNTUV7blf_8Mnrwb-II,2811
|
32
32
|
langfun/core/agentic/action_test.py,sha256=wrx7_JUyL6EXhJeUqmPkPyIwOAh_KwTOWhSRgv2wYWo,15613
|
33
33
|
langfun/core/coding/__init__.py,sha256=5utju_fwEsImaiftx4oXKl9FAM8p281k8-Esdh_-m1w,835
|
34
34
|
langfun/core/coding/python/__init__.py,sha256=4ByknuoNU-mOIHwHKnTtmo6oD64oMFtlqPlYWmA5Wic,1736
|
35
|
-
langfun/core/coding/python/correction.py,sha256=
|
35
|
+
langfun/core/coding/python/correction.py,sha256=4PD76Xfv36Xrm8Ji3-GgGDNImtcDqWfMw3z6ircJMlM,7285
|
36
36
|
langfun/core/coding/python/correction_test.py,sha256=sie88lAbsV15bvkRcYC88pgToybZYXI32Xmg_ym5V1A,4175
|
37
37
|
langfun/core/coding/python/execution.py,sha256=tsXnJ-11RqNDro0C-6LwbHkqPuNVJ_cLxAq8-C5Wz20,4442
|
38
38
|
langfun/core/coding/python/execution_test.py,sha256=NynCGNP0gZ08fqmmQIJjJu6HmhkNOSkgWUXUCNQ0_yg,5990
|
@@ -133,16 +133,16 @@ langfun/core/structured/description.py,sha256=6BztYOiucPkF4CrTQtPLPJo1gN2dwnKmaJ
|
|
133
133
|
langfun/core/structured/description_test.py,sha256=UxaXnKKP7TnyPDPUyf3U-zPE0TvLlIP6DGr8thjcePw,7365
|
134
134
|
langfun/core/structured/function_generation.py,sha256=g7AOR_e8HxFU6n6Df750aGkgMgV1KExLZMAz0yd5Agg,8555
|
135
135
|
langfun/core/structured/function_generation_test.py,sha256=LaXYDXf9GlqUrR6v_gtmK_H4kxzonmU7SYbn7XXMgjU,12128
|
136
|
-
langfun/core/structured/mapping.py,sha256=
|
136
|
+
langfun/core/structured/mapping.py,sha256=iraHpcEeF_iuEX2eoTsLGwTHHvxqp2gNDjoMf98l0Kk,13941
|
137
137
|
langfun/core/structured/mapping_test.py,sha256=OntYvfDitAf0tAnzQty3YS90vyEn6FY1Mi93r_ViEk8,9594
|
138
138
|
langfun/core/structured/parsing.py,sha256=MGvI7ypXlwfzr5XB8_TFU9Ei0_5reYqkWkv64eAy0EA,12015
|
139
139
|
langfun/core/structured/parsing_test.py,sha256=V8Cj1tJK4Lxv_b0YQj6-2hzXZgnYNBa2JR7rOLRBKoQ,22346
|
140
|
-
langfun/core/structured/querying.py,sha256=
|
141
|
-
langfun/core/structured/querying_test.py,sha256=
|
142
|
-
langfun/core/structured/schema.py,sha256=
|
143
|
-
langfun/core/structured/schema_generation.py,sha256=
|
140
|
+
langfun/core/structured/querying.py,sha256=7QvM4TS57O5kDCty6H8leWXfZxcN5ugWV-4bmdDABC0,38006
|
141
|
+
langfun/core/structured/querying_test.py,sha256=AXIVamBeKvby10zogjZl_wqtBopbpud-NNEZlqfLyqY,49766
|
142
|
+
langfun/core/structured/schema.py,sha256=r_ewdRMsALVOdnvGSeYBcz2-VJ_3_nMxY4GtzUHCYUU,29111
|
143
|
+
langfun/core/structured/schema_generation.py,sha256=pEWeTd8tQWYnEHukas6GVl4uGerLsQ2aNybtnm4Qgxc,5352
|
144
144
|
langfun/core/structured/schema_generation_test.py,sha256=RM9s71kMNg2jTePwInkiW9fK1ACN37eyPeF8OII-0zw,2950
|
145
|
-
langfun/core/structured/schema_test.py,sha256=
|
145
|
+
langfun/core/structured/schema_test.py,sha256=H42ZZdPi8CIv7WzrnXwMwQQaPQxlmDSY31pfqQs-Xqw,26567
|
146
146
|
langfun/core/structured/scoring.py,sha256=Y7Jqs5VVjUQLF_9Z1uIY_dw5zasv2FF52Cz-cxGMsro,5857
|
147
147
|
langfun/core/structured/scoring_test.py,sha256=QvlwDAzwuamKL5tCotm1L3Sx0cs3idoNK4aIEhaO4Yk,2272
|
148
148
|
langfun/core/structured/tokenization.py,sha256=-b4_693quHeYn2AqndwucuXNmhd5NVXVTU3mmDane98,2189
|
@@ -156,8 +156,8 @@ langfun/core/templates/demonstration.py,sha256=vCrgYubdZM5Umqcgp8NUVGXgr4P_c-fik
|
|
156
156
|
langfun/core/templates/demonstration_test.py,sha256=SafcDQ0WgI7pw05EmPI2S4v1t3ABKzup8jReCljHeK4,2162
|
157
157
|
langfun/core/templates/selfplay.py,sha256=yhgrJbiYwq47TgzThmHrDQTF4nDrTI09CWGhuQPNv-s,2273
|
158
158
|
langfun/core/templates/selfplay_test.py,sha256=Ot__1P1M8oJfoTp-M9-PQ6HUXqZKyMwvZ5f7yQ3yfyM,2326
|
159
|
-
langfun-0.1.2.
|
160
|
-
langfun-0.1.2.
|
161
|
-
langfun-0.1.2.
|
162
|
-
langfun-0.1.2.
|
163
|
-
langfun-0.1.2.
|
159
|
+
langfun-0.1.2.dev202505140804.dist-info/licenses/LICENSE,sha256=WNHhf_5RCaeuKWyq_K39vmp9F28LxKsB4SpomwSZ2L0,11357
|
160
|
+
langfun-0.1.2.dev202505140804.dist-info/METADATA,sha256=sg9BNWj3ZTxdvhCni6lzMwhy9PJwBSa4tSv_saN6RQ0,8178
|
161
|
+
langfun-0.1.2.dev202505140804.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
|
162
|
+
langfun-0.1.2.dev202505140804.dist-info/top_level.txt,sha256=RhlEkHxs1qtzmmtWSwYoLVJAc1YrbPtxQ52uh8Z9VvY,8
|
163
|
+
langfun-0.1.2.dev202505140804.dist-info/RECORD,,
|
File without changes
|
{langfun-0.1.2.dev202505130804.dist-info → langfun-0.1.2.dev202505140804.dist-info}/licenses/LICENSE
RENAMED
File without changes
|
{langfun-0.1.2.dev202505130804.dist-info → langfun-0.1.2.dev202505140804.dist-info}/top_level.txt
RENAMED
File without changes
|