Skip to content

Conversation

@danielgafni
Copy link
Collaborator

No description provided.

Copy link
Collaborator Author

danielgafni commented Nov 25, 2025

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@github-actions
Copy link
Contributor

github-actions bot commented Nov 25, 2025

Coverage

Coverage Report (Python 3.11)
FileStmtsMissCoverMissing
__init__.py20385%108, 112–113
_packaging.py28871%17–18, 40, 43–44, 46, 48, 96
_utils.py19289%26, 32
config.py2052388%50, 56, 61, 74–75, 223–226, 270, 395, 436, 464, 472–473, 475–476, 478, 534, 552, 585, 603, 611
entrypoints.py661084%156, 171, 215–216, 218–219, 221–222, 225–226
_testing
   metaxy_project.py2623088%93, 129, 136, 199, 306, 308–314, 353, 418, 439, 474, 488, 520, 533, 658, 791, 804, 806–812, 818
   models.py22195%40
   runbook.py2383784%70–74, 82–85, 153, 188, 225, 319, 327–329, 353, 355, 357–358, 446, 455, 467, 469, 471, 478, 499, 531, 550, 562, 597, 620–621, 628, 646, 657, 731
_testing/parametric
   metadata.py1253175%122–123, 128, 131, 133–134, 136, 139, 145–147, 149, 153–154, 156–157, 162–163, 166–167, 169, 172, 174, 323, 357, 597–599, 604, 613, 641
cli
   context.py502746%44–45, 49–50, 52–54, 66–68, 72, 80–82, 86, 99, 111, 113, 121–122, 124, 128, 156–157, 159, 164, 167
ext/dagster
   io_manager.py55198%94
   metaxify.py1691491%433–435, 439, 492, 531–532, 561, 575, 577, 579, 585, 587, 590
   selection.py10640%63, 65, 67–69, 73
   table_metadata.py101694%45, 83–84, 89, 100, 224
   utils.py88594%85, 108–110, 153
ext/sqlalchemy
   plugin.py68592%122, 268–269, 273, 277
ext/sqlmodel
   plugin.py1283076%116–118, 190–191, 195, 197, 199–201, 203, 205, 208, 211, 213–214, 217–218, 221–223, 226, 230, 451, 469, 474, 480, 490, 492–493
graph
   describe.py1361304%46–47, 53, 56, 61–62, 64–65, 67, 69–71, 73–75, 77–80, 82, 85–88, 91, 96–98, 100–111, 114–117, 120, 130–132, 134, 159–161, 164–167, 169, 173, 175, 180–181, 183–184, 186–187, 189, 191–193, 195–197, 199–201, 206, 208, 214–215, 218, 220–225, 227–228, 230, 256–263, 265, 269, 271, 276–277, 279–280, 282–283, 285, 288–294, 299–300, 302–303, 309–310, 313, 315–320, 322–323, 325
   status.py1071070%7, 9–10, 12–13, 15, 27, 30–39, 42, 45, 52, 60, 70–77, 82–83, 85–91, 93, 95–98, 101–102, 104, 111, 118–119, 121–122, 124, 126, 133–134, 136–137, 139, 150, 157, 163–164, 166, 180, 199–200, 202–203, 206–207, 211, 213–214, 217–218, 222, 224, 227, 236, 239, 260–261, 264, 267–270, 272, 275–276, 279–280, 282–283, 288–292, 295–296, 306, 309, 315–316, 318, 327
   utils.py11190%17
graph/diff
   diff_models.py1431688%70, 82, 154, 171, 182, 200, 214, 228, 242, 299, 319, 333, 357, 378, 399, 420
   differ.py3033090%41, 73, 126–127, 132, 151, 172–173, 178, 191, 193–195, 197, 453, 572, 606, 670, 677–682, 684, 687, 695, 700, 710, 823
   models.py1648647%110, 121, 152, 182, 186, 209, 227, 274, 276–277, 280–282, 285, 288–290, 292–293, 295, 301, 304–306, 309, 312, 320, 323–324, 326, 342, 344–345, 348, 350, 353–361, 363, 366–367, 370–373, 376–377, 379–380, 382, 385–398, 400–402, 405–407, 409, 415, 418, 424, 432, 435–438, 440
   traversal.py968511%24, 41–42, 44–45, 47–50, 52, 55, 59–61, 63, 66–67, 69, 83–85, 87–89, 91–92, 94–95, 97–98, 100–102, 105–108, 110, 133–135, 138, 141–144, 147–150, 153, 157, 164, 183, 185–187, 189, 191–194, 196–197, 199–200, 215–221, 223, 225–227, 229–231, 233–234, 236–237, 245
graph/diff/rendering
   base.py935639%99–100, 103–104, 106, 111, 123, 135, 172–173, 176–177, 180–181, 183–185, 196–198, 209–216, 218, 232–234, 250, 261, 269, 272–274, 276–277, 280–281, 285–286, 289–295, 298, 306–307, 309, 315
   cards.py89827%23–25, 27, 30, 33, 35–36, 38–40, 43–46, 50, 53–61, 66–68, 71, 78–80, 91–92, 94, 97–98, 101, 104–106, 108, 111–112, 114–116, 118–120, 122–124, 127–131, 133, 144, 147–148, 153–155, 157–158, 160–161, 164–166, 168, 179–186, 188
   formatter.py2945182%62, 64, 66, 82–87, 89, 104, 125–127, 130, 134, 137, 139, 144, 149, 155, 160–163, 165–166, 171, 174–175, 180, 183–184, 189, 194, 198, 210, 222–223, 438–439, 444–445, 454, 461, 465, 555–556, 597–598, 730
   graphviz.py1141048%24, 27, 30–32, 35–36, 38–43, 46, 48–51, 54–55, 57, 61, 64–69, 71, 74–76, 78–79, 81–83, 86, 88, 94, 98, 100, 112–113, 116–119, 121, 132–139, 141, 152–159, 161, 172, 175–177, 179–180, 182–184, 186–187, 189–190, 192, 203, 206–208, 210–211, 216–218, 220–221, 223–224, 226, 237–244, 246
   mermaid.py13712310%25, 28, 31, 33–35, 37–38, 41, 44, 46–48, 51–59, 62, 64, 71, 74, 77–79, 82–84, 87, 92–94, 96, 99–100, 102, 113, 125–128, 130, 141, 155, 158, 160, 163–165, 167, 169, 171, 174, 176, 179, 181, 184, 186, 191–192, 194, 205, 208–209, 212–213, 218–220, 223–224, 226–227, 229–231, 233–234, 236–237, 239, 242, 244–247, 250–251, 262, 265–267, 269–270, 272–273, 278–280, 282–283, 285–286, 288, 290, 301–306, 308, 319–324, 326
   rich.py72659%23–24, 26, 29, 32–34, 38, 41, 43–45, 48–50, 60, 63, 68–69, 72–73, 75, 78, 81–82, 84–85, 88–90, 92–93, 96–99, 102–106, 118, 120, 125–126, 131, 134, 137–138, 140–141, 144–146, 148–149, 160–167, 169
   theme.py16193%48
metadata_store
   _ducklake_support.py2253484%41, 43, 46, 55, 62, 75, 81, 89, 96–97, 110–111, 129, 132, 140, 150, 178–180, 182, 207, 261, 269, 271, 279, 285, 288, 377, 405–408, 411, 414
   base.py4333791%445, 505, 528, 652, 683–684, 727, 729, 944, 961, 966, 1175, 1286, 1364, 1371, 1379, 1385, 1485, 1515, 1686, 1706–1707, 1711, 1716, 1723, 1728–1729, 1734, 1741, 1743, 1752, 1754, 1757, 1760, 1782–1783, 1786
   bigquery.py761185%236, 262–263, 301, 306, 311, 316, 321, 327, 332, 337
   clickhouse.py46980%97, 132, 137, 142, 147, 155, 160, 165, 170
   delta.py1201389%113, 127, 130, 164–165, 227, 271, 297, 300–301, 304, 312, 352
   duckdb.py1582981%84–90, 92, 203–204, 208, 276, 286–288, 290, 298–299, 320, 325, 330, 344–345, 356, 361, 419, 426, 432, 437
   ibis.py1341191%204, 223, 374–375, 377, 402, 416, 434, 490, 517, 530
   lancedb.py1201190%159–161, 164, 314–315, 328–330, 371, 391
   memory.py921385%95, 98, 100–101, 104, 138, 140, 148, 150, 174, 177–178, 219
   utils.py33293%100, 102
   warnings.py22195%29
metadata_store/system
   models.py44393%92–93, 108
   storage.py1714971%143, 189, 379, 381–383, 385–386, 389–390, 392–396, 401, 403, 406, 422, 425, 429–430, 436, 438, 445, 465–466, 468, 471, 473–474, 477, 479–480, 483, 486, 497, 505, 518, 730, 816, 827, 832, 888, 891, 897–898, 904, 916
migrations
   detector.py57984%69, 79, 94–95, 100, 102, 117, 123, 129
   executor.py1512583%54, 59–60, 62, 111–112, 117, 178–180, 194–195, 250–251, 260–261, 293–295, 406, 409–410, 413–414, 422
   generator.py1151150%3–4, 6, 8–13, 20, 33, 35–36, 39–41, 44–46, 48, 51, 106, 108, 110, 112–113, 117, 120–122, 124, 128–129, 134, 137, 140–145, 149, 156, 161, 166–167, 170, 173–175, 177–178, 181, 184, 192–194, 197–200, 202, 204–206, 209–211, 214–217, 220–221, 224, 226–227, 231–233, 236–237, 244–245, 247–249, 251–252, 255–256, 258–259, 261–262, 265–266, 268, 273, 275, 278, 280, 286, 288–290, 292, 295–297, 299, 304, 308, 310, 319
   loader.py927815%26, 28, 30–31, 33–34, 37–40, 42, 58–59, 61–62, 68–73, 75, 78–84, 86, 101–102, 104–105, 107–108, 126, 129, 134–135, 141, 144, 146, 148, 153–154, 161, 178, 180–181, 183–184, 187–190, 192–193, 196–198, 201–202, 204–207, 209–210, 215–218, 221, 224–226, 231
   models.py106892%129, 238, 288, 321–322, 324–326
   ops.py1004159%54–58, 210–211, 223–224, 236, 246, 252–253, 257–258, 261–262, 268, 270, 273–274, 276, 278–279, 282, 292, 296, 299, 304–306, 309, 312–313, 315, 319–320, 325–327, 329
models
   feature.py4086683%123, 126–127, 132, 135–136, 138–139, 145–146, 149, 151, 171, 176, 221, 230, 309, 318, 348, 394, 405, 408–410, 412, 543, 656, 767–768, 771–774, 786, 790, 805, 807–808, 811–815, 818, 820, 825, 828, 830–831, 836, 838–839, 843, 898, 1005–1006, 1010, 1013, 1039–1041, 1319, 1326–1327, 1329, 1335
   feature_spec.py94297%133, 158
   field.py53688%41, 43, 56–57, 59, 163
   fields_mapping.py881088%55, 100–101, 194, 267–270, 273, 275
   filter_expression.py1624075%45, 75, 79–81, 84, 99, 117, 172, 180–184, 187–189, 210, 220–225, 233, 242, 251–255, 270–274, 282–283, 285, 289
   lineage.py44197%74
   plan.py981782%37, 41, 45, 75, 77–78, 80, 84, 86–88, 90, 135, 168, 188, 222–223
   types.py1411490%89–93, 103–104, 106, 131, 167, 181, 187, 193, 199
utils
   exceptions.py6183%10
   hashing.py55689%45, 139, 185, 191, 197, 207
versioning
   engine.py1831094%45, 66, 69, 83, 295, 521, 524, 614, 619, 656
   ibis.py581475%72, 160–161, 164, 167, 170, 173, 178–179, 183–184, 189, 192, 227
   polars.py43295%58, 177
   types.py22195%41
TOTAL7624186575% 

Tests Skipped Failures Errors Time
1340 21 💤 3 ❌ 0 🔥 4m 45s ⏱️

@github-actions
Copy link
Contributor

github-actions bot commented Nov 25, 2025

Coverage

Coverage Report (Python 3.12)
FileStmtsMissCoverMissing
__init__.py20385%108, 112–113
_packaging.py28871%17–18, 40, 43–44, 46, 48, 96
_utils.py19289%26, 32
config.py2052388%50, 56, 61, 74–75, 223–226, 270, 395, 436, 464, 472–473, 475–476, 478, 534, 552, 585, 603, 611
entrypoints.py661084%156, 171, 215–216, 218–219, 221–222, 225–226
_testing
   metaxy_project.py2623088%93, 129, 136, 199, 306, 308–314, 353, 418, 439, 474, 488, 520, 533, 658, 791, 804, 806–812, 818
   models.py22195%40
   runbook.py2383784%70–74, 82–85, 153, 188, 225, 319, 327–329, 353, 355, 357–358, 446, 455, 467, 469, 471, 478, 499, 531, 550, 562, 597, 620–621, 628, 646, 657, 731
_testing/parametric
   metadata.py1253175%122–123, 128, 131, 133–134, 136, 139, 145–147, 149, 153–154, 156–157, 162–163, 166–167, 169, 172, 174, 323, 357, 597–599, 604, 613, 641
cli
   context.py502746%44–45, 49–50, 52–54, 66–68, 72, 80–82, 86, 99, 111, 113, 121–122, 124, 128, 156–157, 159, 164, 167
ext/dagster
   io_manager.py55198%94
   metaxify.py1691491%433–435, 439, 492, 531–532, 561, 575, 577, 579, 585, 587, 590
   selection.py10640%63, 65, 67–69, 73
   table_metadata.py101694%45, 83–84, 89, 100, 224
   utils.py88594%85, 108–110, 153
ext/sqlalchemy
   plugin.py68592%122, 268–269, 273, 277
ext/sqlmodel
   plugin.py1283076%116–118, 190–191, 195, 197, 199–201, 203, 205, 208, 211, 213–214, 217–218, 221–223, 226, 230, 451, 469, 474, 480, 490, 492–493
graph
   describe.py1361304%46–47, 53, 56, 61–62, 64–65, 67, 69–71, 73–75, 77–80, 82, 85–88, 91, 96–98, 100–111, 114–117, 120, 130–132, 134, 159–161, 164–167, 169, 173, 175, 180–181, 183–184, 186–187, 189, 191–193, 195–197, 199–201, 206, 208, 214–215, 218, 220–225, 227–228, 230, 256–263, 265, 269, 271, 276–277, 279–280, 282–283, 285, 288–294, 299–300, 302–303, 309–310, 313, 315–320, 322–323, 325
   status.py1071070%7, 9–10, 12–13, 15, 27, 30–39, 42, 45, 52, 60, 70–77, 82–83, 85–91, 93, 95–98, 101–102, 104, 111, 118–119, 121–122, 124, 126, 133–134, 136–137, 139, 150, 157, 163–164, 166, 180, 199–200, 202–203, 206–207, 211, 213–214, 217–218, 222, 224, 227, 236, 239, 260–261, 264, 267–270, 272, 275–276, 279–280, 282–283, 288–292, 295–296, 306, 309, 315–316, 318, 327
   utils.py11190%17
graph/diff
   diff_models.py1431688%70, 82, 154, 171, 182, 200, 214, 228, 242, 299, 319, 333, 357, 378, 399, 420
   differ.py3033090%41, 73, 126–127, 132, 151, 172–173, 178, 191, 193–195, 197, 453, 572, 606, 670, 677–682, 684, 687, 695, 700, 710, 823
   models.py1648647%110, 121, 152, 182, 186, 209, 227, 274, 276–277, 280–282, 285, 288–290, 292–293, 295, 301, 304–306, 309, 312, 320, 323–324, 326, 342, 344–345, 348, 350, 353–361, 363, 366–367, 370–373, 376–377, 379–380, 382, 385–398, 400–402, 405–407, 409, 415, 418, 424, 432, 435–438, 440
   traversal.py968511%24, 41–42, 44–45, 47–50, 52, 55, 59–61, 63, 66–67, 69, 83–85, 87–89, 91–92, 94–95, 97–98, 100–102, 105–108, 110, 133–135, 138, 141–144, 147–150, 153, 157, 164, 183, 185–187, 189, 191–194, 196–197, 199–200, 215–221, 223, 225–227, 229–231, 233–234, 236–237, 245
graph/diff/rendering
   base.py935639%99–100, 103–104, 106, 111, 123, 135, 172–173, 176–177, 180–181, 183–185, 196–198, 209–216, 218, 232–234, 250, 261, 269, 272–274, 276–277, 280–281, 285–286, 289–295, 298, 306–307, 309, 315
   cards.py89827%23–25, 27, 30, 33, 35–36, 38–40, 43–46, 50, 53–61, 66–68, 71, 78–80, 91–92, 94, 97–98, 101, 104–106, 108, 111–112, 114–116, 118–120, 122–124, 127–131, 133, 144, 147–148, 153–155, 157–158, 160–161, 164–166, 168, 179–186, 188
   formatter.py2945182%62, 64, 66, 82–87, 89, 104, 125–127, 130, 134, 137, 139, 144, 149, 155, 160–163, 165–166, 171, 174–175, 180, 183–184, 189, 194, 198, 210, 222–223, 438–439, 444–445, 454, 461, 465, 555–556, 597–598, 730
   graphviz.py1141048%24, 27, 30–32, 35–36, 38–43, 46, 48–51, 54–55, 57, 61, 64–69, 71, 74–76, 78–79, 81–83, 86, 88, 94, 98, 100, 112–113, 116–119, 121, 132–139, 141, 152–159, 161, 172, 175–177, 179–180, 182–184, 186–187, 189–190, 192, 203, 206–208, 210–211, 216–218, 220–221, 223–224, 226, 237–244, 246
   mermaid.py13712310%25, 28, 31, 33–35, 37–38, 41, 44, 46–48, 51–59, 62, 64, 71, 74, 77–79, 82–84, 87, 92–94, 96, 99–100, 102, 113, 125–128, 130, 141, 155, 158, 160, 163–165, 167, 169, 171, 174, 176, 179, 181, 184, 186, 191–192, 194, 205, 208–209, 212–213, 218–220, 223–224, 226–227, 229–231, 233–234, 236–237, 239, 242, 244–247, 250–251, 262, 265–267, 269–270, 272–273, 278–280, 282–283, 285–286, 288, 290, 301–306, 308, 319–324, 326
   rich.py72659%23–24, 26, 29, 32–34, 38, 41, 43–45, 48–50, 60, 63, 68–69, 72–73, 75, 78, 81–82, 84–85, 88–90, 92–93, 96–99, 102–106, 118, 120, 125–126, 131, 134, 137–138, 140–141, 144–146, 148–149, 160–167, 169
   theme.py16193%48
metadata_store
   _ducklake_support.py2253484%41, 43, 46, 55, 62, 75, 81, 89, 96–97, 110–111, 129, 132, 140, 150, 178–180, 182, 207, 261, 269, 271, 279, 285, 288, 377, 405–408, 411, 414
   base.py4333791%445, 505, 528, 652, 683–684, 727, 729, 944, 961, 966, 1175, 1286, 1364, 1371, 1379, 1385, 1485, 1515, 1686, 1706–1707, 1711, 1716, 1723, 1728–1729, 1734, 1741, 1743, 1752, 1754, 1757, 1760, 1782–1783, 1786
   bigquery.py761185%236, 262–263, 301, 306, 311, 316, 321, 327, 332, 337
   clickhouse.py46980%97, 132, 137, 142, 147, 155, 160, 165, 170
   delta.py1201389%113, 127, 130, 164–165, 227, 271, 297, 300–301, 304, 312, 352
   duckdb.py1582981%84–90, 92, 203–204, 208, 276, 286–288, 290, 298–299, 320, 325, 330, 344–345, 356, 361, 419, 426, 432, 437
   ibis.py1341191%204, 223, 374–375, 377, 402, 416, 434, 490, 517, 530
   lancedb.py1201190%159–161, 164, 314–315, 328–330, 371, 391
   memory.py921385%95, 98, 100–101, 104, 138, 140, 148, 150, 174, 177–178, 219
   utils.py33293%100, 102
   warnings.py22195%29
metadata_store/system
   models.py44393%92–93, 108
   storage.py1714971%143, 189, 379, 381–383, 385–386, 389–390, 392–396, 401, 403, 406, 422, 425, 429–430, 436, 438, 445, 465–466, 468, 471, 473–474, 477, 479–480, 483, 486, 497, 505, 518, 730, 816, 827, 832, 888, 891, 897–898, 904, 916
migrations
   detector.py57984%69, 79, 94–95, 100, 102, 117, 123, 129
   executor.py1512583%54, 59–60, 62, 111–112, 117, 178–180, 194–195, 250–251, 260–261, 293–295, 406, 409–410, 413–414, 422
   generator.py1151150%3–4, 6, 8–13, 20, 33, 35–36, 39–41, 44–46, 48, 51, 106, 108, 110, 112–113, 117, 120–122, 124, 128–129, 134, 137, 140–145, 149, 156, 161, 166–167, 170, 173–175, 177–178, 181, 184, 192–194, 197–200, 202, 204–206, 209–211, 214–217, 220–221, 224, 226–227, 231–233, 236–237, 244–245, 247–249, 251–252, 255–256, 258–259, 261–262, 265–266, 268, 273, 275, 278, 280, 286, 288–290, 292, 295–297, 299, 304, 308, 310, 319
   loader.py927815%26, 28, 30–31, 33–34, 37–40, 42, 58–59, 61–62, 68–73, 75, 78–84, 86, 101–102, 104–105, 107–108, 126, 129, 134–135, 141, 144, 146, 148, 153–154, 161, 178, 180–181, 183–184, 187–190, 192–193, 196–198, 201–202, 204–207, 209–210, 215–218, 221, 224–226, 231
   models.py106892%129, 238, 288, 321–322, 324–326
   ops.py1004159%54–58, 210–211, 223–224, 236, 246, 252–253, 257–258, 261–262, 268, 270, 273–274, 276, 278–279, 282, 292, 296, 299, 304–306, 309, 312–313, 315, 319–320, 325–327, 329
models
   feature.py4086683%123, 126–127, 132, 135–136, 138–139, 145–146, 149, 151, 171, 176, 221, 230, 309, 318, 348, 394, 405, 408–410, 412, 543, 656, 767–768, 771–774, 786, 790, 805, 807–808, 811–815, 818, 820, 825, 828, 830–831, 836, 838–839, 843, 898, 1005–1006, 1010, 1013, 1039–1041, 1319, 1326–1327, 1329, 1335
   feature_spec.py94297%133, 158
   field.py53688%41, 43, 56–57, 59, 163
   fields_mapping.py881088%55, 100–101, 194, 267–270, 273, 275
   filter_expression.py1624075%45, 75, 79–81, 84, 99, 117, 172, 180–184, 187–189, 210, 220–225, 233, 242, 251–255, 270–274, 282–283, 285, 289
   lineage.py44197%74
   plan.py981782%37, 41, 45, 75, 77–78, 80, 84, 86–88, 90, 135, 168, 188, 222–223
   types.py1411490%89–93, 103–104, 106, 131, 167, 181, 187, 193, 199
utils
   exceptions.py6183%10
   hashing.py55689%45, 139, 185, 191, 197, 207
versioning
   engine.py1831094%45, 66, 69, 83, 295, 521, 524, 614, 619, 656
   ibis.py581475%72, 160–161, 164, 167, 170, 173, 178–179, 183–184, 189, 192, 227
   polars.py43295%58, 177
   types.py22195%41
TOTAL7624186575% 

Tests Skipped Failures Errors Time
1340 21 💤 3 ❌ 0 🔥 5m 23s ⏱️

@github-actions
Copy link
Contributor

github-actions bot commented Nov 25, 2025

Test Results (Python 3.10)

1 340 tests   1 316 ✅  5m 6s ⏱️
    1 suites     21 💤
    1 files        3 ❌

For more details on these failures, see this check.

Results for commit 029dba5.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Contributor

github-actions bot commented Nov 25, 2025

Coverage

Coverage Report (Python 3.10)
FileStmtsMissCoverMissing
__init__.py20385%108, 112–113
_packaging.py28871%17–18, 40, 43–44, 46, 48, 96
_utils.py19289%26, 32
config.py2052388%50, 56, 61, 74–75, 223–226, 270, 395, 436, 464, 472–473, 475–476, 478, 534, 552, 585, 603, 611
entrypoints.py661084%156, 171, 215–216, 218–219, 221–222, 225–226
_testing
   metaxy_project.py2623088%93, 129, 136, 199, 306, 308–314, 353, 418, 439, 474, 488, 520, 533, 658, 791, 804, 806–812, 818
   models.py22195%40
   runbook.py2383784%70–74, 82–85, 153, 188, 225, 319, 327–329, 353, 355, 357–358, 446, 455, 467, 469, 471, 478, 499, 531, 550, 562, 597, 620–621, 628, 646, 657, 731
_testing/parametric
   metadata.py1253175%122–123, 128, 131, 133–134, 136, 139, 145–147, 149, 153–154, 156–157, 162–163, 166–167, 169, 172, 174, 323, 357, 597–599, 604, 613, 641
cli
   context.py502746%44–45, 49–50, 52–54, 66–68, 72, 80–82, 86, 99, 111, 113, 121–122, 124, 128, 156–157, 159, 164, 167
ext/dagster
   io_manager.py55198%94
   metaxify.py1691491%433–435, 439, 492, 531–532, 561, 575, 577, 579, 585, 587, 590
   selection.py10640%63, 65, 67–69, 73
   table_metadata.py101694%45, 83–84, 89, 100, 224
   utils.py88594%85, 108–110, 153
ext/sqlalchemy
   plugin.py68592%122, 268–269, 273, 277
ext/sqlmodel
   plugin.py1283076%116–118, 190–191, 195, 197, 199–201, 203, 205, 208, 211, 213–214, 217–218, 221–223, 226, 230, 451, 469, 474, 480, 490, 492–493
graph
   describe.py1361304%46–47, 53, 56, 61–62, 64–65, 67, 69–71, 73–75, 77–80, 82, 85–88, 91, 96–98, 100–111, 114–117, 120, 130–132, 134, 159–161, 164–167, 169, 173, 175, 180–181, 183–184, 186–187, 189, 191–193, 195–197, 199–201, 206, 208, 214–215, 218, 220–225, 227–228, 230, 256–263, 265, 269, 271, 276–277, 279–280, 282–283, 285, 288–294, 299–300, 302–303, 309–310, 313, 315–320, 322–323, 325
   status.py1071070%7, 9–10, 12–13, 15, 27, 30–39, 42, 45, 52, 60, 70–77, 82–83, 85–91, 93, 95–98, 101–102, 104, 111, 118–119, 121–122, 124, 126, 133–134, 136–137, 139, 150, 157, 163–164, 166, 180, 199–200, 202–203, 206–207, 211, 213–214, 217–218, 222, 224, 227, 236, 239, 260–261, 264, 267–270, 272, 275–276, 279–280, 282–283, 288–292, 295–296, 306, 309, 315–316, 318, 327
   utils.py11190%17
graph/diff
   diff_models.py1431688%70, 82, 154, 171, 182, 200, 214, 228, 242, 299, 319, 333, 357, 378, 399, 420
   differ.py3033090%41, 73, 126–127, 132, 151, 172–173, 178, 191, 193–195, 197, 453, 572, 606, 670, 677–682, 684, 687, 695, 700, 710, 823
   models.py1648647%110, 121, 152, 182, 186, 209, 227, 274, 276–277, 280–282, 285, 288–290, 292–293, 295, 301, 304–306, 309, 312, 320, 323–324, 326, 342, 344–345, 348, 350, 353–361, 363, 366–367, 370–373, 376–377, 379–380, 382, 385–398, 400–402, 405–407, 409, 415, 418, 424, 432, 435–438, 440
   traversal.py968511%24, 41–42, 44–45, 47–50, 52, 55, 59–61, 63, 66–67, 69, 83–85, 87–89, 91–92, 94–95, 97–98, 100–102, 105–108, 110, 133–135, 138, 141–144, 147–150, 153, 157, 164, 183, 185–187, 189, 191–194, 196–197, 199–200, 215–221, 223, 225–227, 229–231, 233–234, 236–237, 245
graph/diff/rendering
   base.py935639%99–100, 103–104, 106, 111, 123, 135, 172–173, 176–177, 180–181, 183–185, 196–198, 209–216, 218, 232–234, 250, 261, 269, 272–274, 276–277, 280–281, 285–286, 289–295, 298, 306–307, 309, 315
   cards.py89827%23–25, 27, 30, 33, 35–36, 38–40, 43–46, 50, 53–61, 66–68, 71, 78–80, 91–92, 94, 97–98, 101, 104–106, 108, 111–112, 114–116, 118–120, 122–124, 127–131, 133, 144, 147–148, 153–155, 157–158, 160–161, 164–166, 168, 179–186, 188
   formatter.py2945182%62, 64, 66, 82–87, 89, 104, 125–127, 130, 134, 137, 139, 144, 149, 155, 160–163, 165–166, 171, 174–175, 180, 183–184, 189, 194, 198, 210, 222–223, 438–439, 444–445, 454, 461, 465, 555–556, 597–598, 730
   graphviz.py1141048%24, 27, 30–32, 35–36, 38–43, 46, 48–51, 54–55, 57, 61, 64–69, 71, 74–76, 78–79, 81–83, 86, 88, 94, 98, 100, 112–113, 116–119, 121, 132–139, 141, 152–159, 161, 172, 175–177, 179–180, 182–184, 186–187, 189–190, 192, 203, 206–208, 210–211, 216–218, 220–221, 223–224, 226, 237–244, 246
   mermaid.py13712310%25, 28, 31, 33–35, 37–38, 41, 44, 46–48, 51–59, 62, 64, 71, 74, 77–79, 82–84, 87, 92–94, 96, 99–100, 102, 113, 125–128, 130, 141, 155, 158, 160, 163–165, 167, 169, 171, 174, 176, 179, 181, 184, 186, 191–192, 194, 205, 208–209, 212–213, 218–220, 223–224, 226–227, 229–231, 233–234, 236–237, 239, 242, 244–247, 250–251, 262, 265–267, 269–270, 272–273, 278–280, 282–283, 285–286, 288, 290, 301–306, 308, 319–324, 326
   rich.py72659%23–24, 26, 29, 32–34, 38, 41, 43–45, 48–50, 60, 63, 68–69, 72–73, 75, 78, 81–82, 84–85, 88–90, 92–93, 96–99, 102–106, 118, 120, 125–126, 131, 134, 137–138, 140–141, 144–146, 148–149, 160–167, 169
   theme.py16193%48
metadata_store
   _ducklake_support.py2253484%41, 43, 46, 55, 62, 75, 81, 89, 96–97, 110–111, 129, 132, 140, 150, 178–180, 182, 207, 261, 269, 271, 279, 285, 288, 377, 405–408, 411, 414
   base.py4333791%445, 505, 528, 652, 683–684, 727, 729, 944, 961, 966, 1175, 1286, 1364, 1371, 1379, 1385, 1485, 1515, 1686, 1706–1707, 1711, 1716, 1723, 1728–1729, 1734, 1741, 1743, 1752, 1754, 1757, 1760, 1782–1783, 1786
   bigquery.py761185%236, 262–263, 301, 306, 311, 316, 321, 327, 332, 337
   clickhouse.py46980%97, 132, 137, 142, 147, 155, 160, 165, 170
   delta.py1201389%113, 127, 130, 164–165, 227, 271, 297, 300–301, 304, 312, 352
   duckdb.py1582981%84–90, 92, 203–204, 208, 276, 286–288, 290, 298–299, 320, 325, 330, 344–345, 356, 361, 419, 426, 432, 437
   ibis.py1341191%204, 223, 374–375, 377, 402, 416, 434, 490, 517, 530
   lancedb.py1201190%159–161, 164, 314–315, 328–330, 371, 391
   memory.py921385%95, 98, 100–101, 104, 138, 140, 148, 150, 174, 177–178, 219
   utils.py33293%100, 102
   warnings.py22195%29
metadata_store/system
   models.py44393%92–93, 108
   storage.py1714971%143, 189, 379, 381–383, 385–386, 389–390, 392–396, 401, 403, 406, 422, 425, 429–430, 436, 438, 445, 465–466, 468, 471, 473–474, 477, 479–480, 483, 486, 497, 505, 518, 730, 816, 827, 832, 888, 891, 897–898, 904, 916
migrations
   detector.py57984%69, 79, 94–95, 100, 102, 117, 123, 129
   executor.py1512583%54, 59–60, 62, 111–112, 117, 178–180, 194–195, 250–251, 260–261, 293–295, 406, 409–410, 413–414, 422
   generator.py1151150%3–4, 6, 8–13, 20, 33, 35–36, 39–41, 44–46, 48, 51, 106, 108, 110, 112–113, 117, 120–122, 124, 128–129, 134, 137, 140–145, 149, 156, 161, 166–167, 170, 173–175, 177–178, 181, 184, 192–194, 197–200, 202, 204–206, 209–211, 214–217, 220–221, 224, 226–227, 231–233, 236–237, 244–245, 247–249, 251–252, 255–256, 258–259, 261–262, 265–266, 268, 273, 275, 278, 280, 286, 288–290, 292, 295–297, 299, 304, 308, 310, 319
   loader.py927815%26, 28, 30–31, 33–34, 37–40, 42, 58–59, 61–62, 68–73, 75, 78–84, 86, 101–102, 104–105, 107–108, 126, 129, 134–135, 141, 144, 146, 148, 153–154, 161, 178, 180–181, 183–184, 187–190, 192–193, 196–198, 201–202, 204–207, 209–210, 215–218, 221, 224–226, 231
   models.py106892%129, 238, 288, 321–322, 324–326
   ops.py1004159%54–58, 210–211, 223–224, 236, 246, 252–253, 257–258, 261–262, 268, 270, 273–274, 276, 278–279, 282, 292, 296, 299, 304–306, 309, 312–313, 315, 319–320, 325–327, 329
models
   feature.py4086683%123, 126–127, 132, 135–136, 138–139, 145–146, 149, 151, 171, 176, 221, 230, 309, 318, 348, 394, 405, 408–410, 412, 543, 656, 767–768, 771–774, 786, 790, 805, 807–808, 811–815, 818, 820, 825, 828, 830–831, 836, 838–839, 843, 898, 1005–1006, 1010, 1013, 1039–1041, 1319, 1326–1327, 1329, 1335
   feature_spec.py94297%133, 158
   field.py53688%41, 43, 56–57, 59, 163
   fields_mapping.py881088%55, 100–101, 194, 267–270, 273, 275
   filter_expression.py1624075%45, 75, 79–81, 84, 99, 117, 172, 180–184, 187–189, 210, 220–225, 233, 242, 251–255, 270–274, 282–283, 285, 289
   lineage.py44197%74
   plan.py981782%37, 41, 45, 75, 77–78, 80, 84, 86–88, 90, 135, 168, 188, 222–223
   types.py1411490%89–93, 103–104, 106, 131, 167, 181, 187, 193, 199
utils
   exceptions.py6183%10
   hashing.py55689%45, 139, 185, 191, 197, 207
versioning
   engine.py1831094%45, 66, 69, 83, 295, 521, 524, 614, 619, 656
   ibis.py581475%72, 160–161, 164, 167, 170, 173, 178–179, 183–184, 189, 192, 227
   polars.py43295%58, 177
   types.py22195%41
TOTAL7624186575% 

Tests Skipped Failures Errors Time
1340 21 💤 3 ❌ 0 🔥 5m 6s ⏱️

@github-actions
Copy link
Contributor

github-actions bot commented Nov 25, 2025

Coverage

Coverage Report (Python 3.13)
FileStmtsMissCoverMissing
__init__.py20385%108, 112–113
_packaging.py28871%17–18, 40, 43–44, 46, 48, 96
_utils.py19289%26, 32
config.py2052388%50, 56, 61, 74–75, 223–226, 270, 395, 436, 464, 472–473, 475–476, 478, 534, 552, 585, 603, 611
entrypoints.py661084%156, 171, 215–216, 218–219, 221–222, 225–226
_testing
   metaxy_project.py2623088%93, 129, 136, 199, 306, 308–314, 353, 418, 439, 474, 488, 520, 533, 658, 791, 804, 806–812, 818
   models.py22195%40
   runbook.py2383784%70–74, 82–85, 153, 188, 225, 319, 327–329, 353, 355, 357–358, 446, 455, 467, 469, 471, 478, 499, 531, 550, 562, 597, 620–621, 628, 646, 657, 731
_testing/parametric
   metadata.py1253175%122–123, 128, 131, 133–134, 136, 139, 145–147, 149, 153–154, 156–157, 162–163, 166–167, 169, 172, 174, 323, 357, 597–599, 604, 613, 641
cli
   context.py502746%44–45, 49–50, 52–54, 66–68, 72, 80–82, 86, 99, 111, 113, 121–122, 124, 128, 156–157, 159, 164, 167
ext/dagster
   io_manager.py55198%94
   metaxify.py1691491%433–435, 439, 492, 531–532, 561, 575, 577, 579, 585, 587, 590
   selection.py10640%63, 65, 67–69, 73
   table_metadata.py101694%45, 83–84, 89, 100, 224
   utils.py88594%85, 108–110, 153
ext/sqlalchemy
   plugin.py68592%122, 268–269, 273, 277
ext/sqlmodel
   plugin.py1283076%116–118, 190–191, 195, 197, 199–201, 203, 205, 208, 211, 213–214, 217–218, 221–223, 226, 230, 451, 469, 474, 480, 490, 492–493
graph
   describe.py1361304%46–47, 53, 56, 61–62, 64–65, 67, 69–71, 73–75, 77–80, 82, 85–88, 91, 96–98, 100–111, 114–117, 120, 130–132, 134, 159–161, 164–167, 169, 173, 175, 180–181, 183–184, 186–187, 189, 191–193, 195–197, 199–201, 206, 208, 214–215, 218, 220–225, 227–228, 230, 256–263, 265, 269, 271, 276–277, 279–280, 282–283, 285, 288–294, 299–300, 302–303, 309–310, 313, 315–320, 322–323, 325
   status.py1071070%7, 9–10, 12–13, 15, 27, 30–39, 42, 45, 52, 60, 70–77, 82–83, 85–91, 93, 95–98, 101–102, 104, 111, 118–119, 121–122, 124, 126, 133–134, 136–137, 139, 150, 157, 163–164, 166, 180, 199–200, 202–203, 206–207, 211, 213–214, 217–218, 222, 224, 227, 236, 239, 260–261, 264, 267–270, 272, 275–276, 279–280, 282–283, 288–292, 295–296, 306, 309, 315–316, 318, 327
   utils.py11190%17
graph/diff
   diff_models.py1431688%70, 82, 154, 171, 182, 200, 214, 228, 242, 299, 319, 333, 357, 378, 399, 420
   differ.py3033090%41, 73, 126–127, 132, 151, 172–173, 178, 191, 193–195, 197, 453, 572, 606, 670, 677–682, 684, 687, 695, 700, 710, 823
   models.py1648647%110, 121, 152, 182, 186, 209, 227, 274, 276–277, 280–282, 285, 288–290, 292–293, 295, 301, 304–306, 309, 312, 320, 323–324, 326, 342, 344–345, 348, 350, 353–361, 363, 366–367, 370–373, 376–377, 379–380, 382, 385–398, 400–402, 405–407, 409, 415, 418, 424, 432, 435–438, 440
   traversal.py968511%24, 41–42, 44–45, 47–50, 52, 55, 59–61, 63, 66–67, 69, 83–85, 87–89, 91–92, 94–95, 97–98, 100–102, 105–108, 110, 133–135, 138, 141–144, 147–150, 153, 157, 164, 183, 185–187, 189, 191–194, 196–197, 199–200, 215–221, 223, 225–227, 229–231, 233–234, 236–237, 245
graph/diff/rendering
   base.py935639%99–100, 103–104, 106, 111, 123, 135, 172–173, 176–177, 180–181, 183–185, 196–198, 209–216, 218, 232–234, 250, 261, 269, 272–274, 276–277, 280–281, 285–286, 289–295, 298, 306–307, 309, 315
   cards.py89827%23–25, 27, 30, 33, 35–36, 38–40, 43–46, 50, 53–61, 66–68, 71, 78–80, 91–92, 94, 97–98, 101, 104–106, 108, 111–112, 114–116, 118–120, 122–124, 127–131, 133, 144, 147–148, 153–155, 157–158, 160–161, 164–166, 168, 179–186, 188
   formatter.py2945182%62, 64, 66, 82–87, 89, 104, 125–127, 130, 134, 137, 139, 144, 149, 155, 160–163, 165–166, 171, 174–175, 180, 183–184, 189, 194, 198, 210, 222–223, 438–439, 444–445, 454, 461, 465, 555–556, 597–598, 730
   graphviz.py1141048%24, 27, 30–32, 35–36, 38–43, 46, 48–51, 54–55, 57, 61, 64–69, 71, 74–76, 78–79, 81–83, 86, 88, 94, 98, 100, 112–113, 116–119, 121, 132–139, 141, 152–159, 161, 172, 175–177, 179–180, 182–184, 186–187, 189–190, 192, 203, 206–208, 210–211, 216–218, 220–221, 223–224, 226, 237–244, 246
   mermaid.py13712310%25, 28, 31, 33–35, 37–38, 41, 44, 46–48, 51–59, 62, 64, 71, 74, 77–79, 82–84, 87, 92–94, 96, 99–100, 102, 113, 125–128, 130, 141, 155, 158, 160, 163–165, 167, 169, 171, 174, 176, 179, 181, 184, 186, 191–192, 194, 205, 208–209, 212–213, 218–220, 223–224, 226–227, 229–231, 233–234, 236–237, 239, 242, 244–247, 250–251, 262, 265–267, 269–270, 272–273, 278–280, 282–283, 285–286, 288, 290, 301–306, 308, 319–324, 326
   rich.py72659%23–24, 26, 29, 32–34, 38, 41, 43–45, 48–50, 60, 63, 68–69, 72–73, 75, 78, 81–82, 84–85, 88–90, 92–93, 96–99, 102–106, 118, 120, 125–126, 131, 134, 137–138, 140–141, 144–146, 148–149, 160–167, 169
   theme.py16193%48
metadata_store
   _ducklake_support.py2253484%41, 43, 46, 55, 62, 75, 81, 89, 96–97, 110–111, 129, 132, 140, 150, 178–180, 182, 207, 261, 269, 271, 279, 285, 288, 377, 405–408, 411, 414
   base.py4333791%445, 505, 528, 652, 683–684, 727, 729, 944, 961, 966, 1175, 1286, 1364, 1371, 1379, 1385, 1485, 1515, 1686, 1706–1707, 1711, 1716, 1723, 1728–1729, 1734, 1741, 1743, 1752, 1754, 1757, 1760, 1782–1783, 1786
   bigquery.py761185%236, 262–263, 301, 306, 311, 316, 321, 327, 332, 337
   clickhouse.py46980%97, 132, 137, 142, 147, 155, 160, 165, 170
   delta.py1201389%113, 127, 130, 164–165, 227, 271, 297, 300–301, 304, 312, 352
   duckdb.py1582981%84–90, 92, 203–204, 208, 276, 286–288, 290, 298–299, 320, 325, 330, 344–345, 356, 361, 419, 426, 432, 437
   ibis.py1341191%204, 223, 374–375, 377, 402, 416, 434, 490, 517, 530
   lancedb.py1201190%159–161, 164, 314–315, 328–330, 371, 391
   memory.py921385%95, 98, 100–101, 104, 138, 140, 148, 150, 174, 177–178, 219
   utils.py33293%100, 102
   warnings.py22195%29
metadata_store/system
   models.py44393%92–93, 108
   storage.py1714971%143, 189, 379, 381–383, 385–386, 389–390, 392–396, 401, 403, 406, 422, 425, 429–430, 436, 438, 445, 465–466, 468, 471, 473–474, 477, 479–480, 483, 486, 497, 505, 518, 730, 816, 827, 832, 888, 891, 897–898, 904, 916
migrations
   detector.py57984%69, 79, 94–95, 100, 102, 117, 123, 129
   executor.py1512583%54, 59–60, 62, 111–112, 117, 178–180, 194–195, 250–251, 260–261, 293–295, 406, 409–410, 413–414, 422
   generator.py1151150%3–4, 6, 8–13, 20, 33, 35–36, 39–41, 44–46, 48, 51, 106, 108, 110, 112–113, 117, 120–122, 124, 128–129, 134, 137, 140–145, 149, 156, 161, 166–167, 170, 173–175, 177–178, 181, 184, 192–194, 197–200, 202, 204–206, 209–211, 214–217, 220–221, 224, 226–227, 231–233, 236–237, 244–245, 247–249, 251–252, 255–256, 258–259, 261–262, 265–266, 268, 273, 275, 278, 280, 286, 288–290, 292, 295–297, 299, 304, 308, 310, 319
   loader.py927815%26, 28, 30–31, 33–34, 37–40, 42, 58–59, 61–62, 68–73, 75, 78–84, 86, 101–102, 104–105, 107–108, 126, 129, 134–135, 141, 144, 146, 148, 153–154, 161, 178, 180–181, 183–184, 187–190, 192–193, 196–198, 201–202, 204–207, 209–210, 215–218, 221, 224–226, 231
   models.py106892%129, 238, 288, 321–322, 324–326
   ops.py1004159%54–58, 210–211, 223–224, 236, 246, 252–253, 257–258, 261–262, 268, 270, 273–274, 276, 278–279, 282, 292, 296, 299, 304–306, 309, 312–313, 315, 319–320, 325–327, 329
models
   feature.py4086683%123, 126–127, 132, 135–136, 138–139, 145–146, 149, 151, 171, 176, 221, 230, 309, 318, 348, 394, 405, 408–410, 412, 543, 656, 767–768, 771–774, 786, 790, 805, 807–808, 811–815, 818, 820, 825, 828, 830–831, 836, 838–839, 843, 898, 1005–1006, 1010, 1013, 1039–1041, 1319, 1326–1327, 1329, 1335
   feature_spec.py94297%133, 158
   field.py53688%41, 43, 56–57, 59, 163
   fields_mapping.py881088%55, 100–101, 194, 267–270, 273, 275
   filter_expression.py1624075%45, 75, 79–81, 84, 99, 117, 172, 180–184, 187–189, 210, 220–225, 233, 242, 251–255, 270–274, 282–283, 285, 289
   lineage.py44197%74
   plan.py981782%37, 41, 45, 75, 77–78, 80, 84, 86–88, 90, 135, 168, 188, 222–223
   types.py1411490%89–93, 103–104, 106, 131, 167, 181, 187, 193, 199
utils
   exceptions.py6183%10
   hashing.py55689%45, 139, 185, 191, 197, 207
versioning
   engine.py1831094%45, 66, 69, 83, 295, 521, 524, 614, 619, 656
   ibis.py581475%72, 160–161, 164, 167, 170, 173, 178–179, 183–184, 189, 192, 227
   polars.py43295%58, 177
   types.py22195%41
TOTAL7624186575% 

Tests Skipped Failures Errors Time
1340 21 💤 3 ❌ 0 🔥 5m 39s ⏱️

@danielgafni danielgafni force-pushed the 11-05-record_runbook_events branch from c50e066 to a5982d1 Compare November 28, 2025 16:55
@danielgafni danielgafni force-pushed the 11-05-display_graph_diff_in_docs branch 2 times, most recently from e96c2c6 to b706a73 Compare November 28, 2025 19:34
@danielgafni danielgafni force-pushed the 11-05-record_runbook_events branch from a5982d1 to 7931fa3 Compare November 28, 2025 19:34
@danielgafni danielgafni force-pushed the 11-05-display_graph_diff_in_docs branch from b706a73 to 029dba5 Compare November 28, 2025 20:14
@danielgafni danielgafni force-pushed the 11-05-record_runbook_events branch from 7931fa3 to 2958f1e Compare November 28, 2025 20:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants