diff --git a/.github/actions/setup-poetry-env/action.yml b/.github/actions/setup-poetry-env/action.yml index 18738ae..08b6e89 100644 --- a/.github/actions/setup-poetry-env/action.yml +++ b/.github/actions/setup-poetry-env/action.yml @@ -38,5 +38,5 @@ runs: - name: Install dependencies if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' - run: poetry install --no-interaction + run: poetry install --no-interaction --extras "ipython" shell: bash diff --git a/examples/fv_solver_workflow.ipynb b/examples/fv_solver_workflow.ipynb index 949ae0e..454ae50 100644 --- a/examples/fv_solver_workflow.ipynb +++ b/examples/fv_solver_workflow.ipynb @@ -22,8 +22,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2025-02-20T01:53:43.860052Z", - "start_time": "2025-02-20T01:53:42.882744Z" + "end_time": "2025-02-24T23:37:13.730117Z", + "start_time": "2025-02-24T23:37:12.845441Z" } }, "cell_type": "code", @@ -83,8 +83,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2025-02-20T01:53:44.441106Z", - "start_time": "2025-02-20T01:53:43.863337Z" + "end_time": "2025-02-24T23:37:14.351120Z", + "start_time": "2025-02-24T23:37:13.733452Z" } }, "cell_type": "code", @@ -251,6 +251,905 @@ ], "execution_count": 2 }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2025-02-24T23:38:11.329564Z", + "start_time": "2025-02-24T23:38:11.322484Z" + } + }, + "cell_type": "code", + "source": "result.zarr_dataset.attrs.asdict()['metadata']", + "id": "ebf7147a755b32fc", + "outputs": [ + { + "data": { + "text/plain": [ + "{'axes': [{'name': 't', 'type': 'time', 'unit': 'second'},\n", + " {'name': 'c', 'type': 'channel', 'unit': None},\n", + " {'name': 'z', 'type': 'space', 'unit': 'micrometer'},\n", + " {'name': 'y', 'type': 'space', 'unit': 'micrometer'},\n", + " {'name': 'x', 'type': 'space', 'unit': 'micrometer'}],\n", + " 'channels': [{'domain_name': 'all',\n", + " 'index': 0,\n", + " 'label': 'region_mask',\n", + " 'max_value': 0.0,\n", + " 'min_value': 0.0},\n", + " {'domain_name': 'all',\n", + " 'index': 1,\n", + " 'label': 't',\n", + " 'max_value': 5.0,\n", + " 'min_value': 0.0},\n", + " {'domain_name': 'all',\n", + " 'index': 2,\n", + " 'label': 'x',\n", + " 'max_value': 10.0,\n", + " 'min_value': 0.0},\n", + " {'domain_name': 'all',\n", + " 'index': 3,\n", + " 'label': 'y',\n", + " 'max_value': 1.0,\n", + " 'min_value': 0.0},\n", + " {'domain_name': 'all',\n", + " 'index': 4,\n", + " 'label': 'z',\n", + " 'max_value': 1.0,\n", + " 'min_value': 0.0},\n", + " {'domain_name': 'subdomain0',\n", + " 'index': 5,\n", + " 'label': 's0',\n", + " 'max_values': [1000000.0,\n", + " 860708.5246360124,\n", + " 740819.2773145201,\n", + " 637629.2827339853,\n", + " 548812.9316127491,\n", + " 472368.0904034841,\n", + " 406571.45450651087,\n", + " 349939.81298965536,\n", + " 301196.45115257107,\n", + " 259242.6574680288,\n", + " 223132.68273596506,\n", + " 192052.55096306966,\n", + " 165301.6251619423,\n", + " 142276.90008935967,\n", + " 122459.33067687316,\n", + " 105402.1856464801,\n", + " 90720.96893099579,\n", + " 78084.72460158466,\n", + " 67208.59467102581,\n", + " 57847.41433373618,\n", + " 49790.1903524703,\n", + " 42855.27127819924,\n", + " 36886.33756848544,\n", + " 31748.833062745594,\n", + " 27326.93706062633,\n", + " 23520.972065736176,\n", + " 20245.151059817374,\n", + " 17425.622965488277,\n", + " 14998.834644244487,\n", + " 12910.078918978035,\n", + " 11112.267824331771,\n", + " 9564.881034230177,\n", + " 8233.031844932595,\n", + " 7086.700699681477,\n", + " 6100.04424378967,\n", + " 5250.8218429657045,\n", + " 4519.888740215109,\n", + " 3890.768569727798,\n", + " 3349.2792497615246,\n", + " 2883.2155525613225,\n", + " 2482.071044954987,\n", + " 2136.8020763317495,\n", + " 1839.6266317778427,\n", + " 1583.8456523303514,\n", + " 1363.6934077750684,\n", + " 1174.2060237272628,\n", + " 1011.112422367222,\n", + " 870.7368498443896,\n", + " 749.9144657532594,\n", + " 645.9216917774937,\n", + " 556.4142695350445],\n", + " 'mean_values': [500000.00000000006,\n", + " 430354.49464251864,\n", + " 370410.0709214147,\n", + " 318815.24570086243,\n", + " 274407.2182241792,\n", + " 236184.9250611906,\n", + " 203286.71678956892,\n", + " 174970.99041954466,\n", + " 150599.39073224773,\n", + " 129622.5637979974,\n", + " 111567.6365951872,\n", + " 96027.62248550024,\n", + " 82652.20414429814,\n", + " 71139.87995600591,\n", + " 61231.12825225584,\n", + " 52702.58413918237,\n", + " 45362.00022444572,\n", + " 39043.89909552203,\n", + " 33605.8522337663,\n", + " 28925.277645120146,\n", + " 24896.679062681855,\n", + " 21429.231064709908,\n", + " 18444.77414050456,\n", + " 15876.030433996015,\n", + " 13665.089787985999,\n", + " 11762.113620339813,\n", + " 10124.208564831202,\n", + " 8714.449205774627,\n", + " 7501.059079758395,\n", + " 6456.6846893262145,\n", + " 5557.782130200425,\n", + " 4784.091306801051,\n", + " 4118.168925329845,\n", + " 3545.0052573723037,\n", + " 3051.678668593173,\n", + " 2627.0688788549764,\n", + " 2261.6035415134174,\n", + " 1947.0445010734547,\n", + " 1676.3007402543858,\n", + " 1443.2696654784238,\n", + " 1242.6980776316473,\n", + " 1070.06416644645,\n", + " 921.4769374043233,\n", + " 793.5868721603339,\n", + " 683.511115191187,\n", + " 588.7677375544962,\n", + " 507.2212074380988,\n", + " 437.0336540243645,\n", + " 376.62266236862837,\n", + " 324.6264478371489,\n", + " 279.87288513273455],\n", + " 'min_values': [0.0,\n", + " 0.46464902525928864,\n", + " 0.8645283094836882,\n", + " 1.2086677413467835,\n", + " 1.5048356119673365,\n", + " 1.7597188998511473,\n", + " 1.9790726293721292,\n", + " 2.1678494351600985,\n", + " 2.3303119254238944,\n", + " 2.470127966880844,\n", + " 2.590454410151291,\n", + " 2.694007931394946,\n", + " 2.783126654512909,\n", + " 2.859822652607626,\n", + " 2.9258276388928546,\n", + " 2.982631884935937,\n", + " 3.0315178958838414,\n", + " 3.0735894595873883,\n", + " 3.1097965069383324,\n", + " 3.140956504205041,\n", + " 3.167772893474702,\n", + " 3.1908512206258255,\n", + " 3.210712523706638,\n", + " 3.2278052464365286,\n", + " 3.2425153456691467,\n", + " 3.2551749434363484,\n", + " 3.2660698450139596,\n", + " 3.2754460609589935,\n", + " 3.283515272280462,\n", + " 3.2904596743707386,\n", + " 3.296436069055237,\n", + " 3.3015793718980273,\n", + " 3.306005727062094,\n", + " 3.309815063098956,\n", + " 3.313093396640947,\n", + " 3.3159147442093833,\n", + " 3.318342811684955,\n", + " 3.3204324190688848,\n", + " 3.3222307472028985,\n", + " 3.3237783954804136,\n", + " 3.325110308262511,\n", + " 3.3262565611040666,\n", + " 3.327243030756797,\n", + " 3.3280919902688684,\n", + " 3.3288226072577833,\n", + " 3.329451381681153,\n", + " 3.329992508925992,\n", + " 3.3304582042897954,\n", + " 3.330858983947237,\n", + " 3.3312038967537685,\n", + " 3.331500730374292]},\n", + " {'domain_name': 'subdomain0',\n", + " 'index': 6,\n", + " 'label': 's1',\n", + " 'max_values': [10.0,\n", + " 9.535350974740707,\n", + " 9.135471690516306,\n", + " 8.79133225865321,\n", + " 8.495164388032657,\n", + " 8.240281100148845,\n", + " 8.020927370627861,\n", + " 7.832150564839894,\n", + " 7.669688074576097,\n", + " 7.529872033119147,\n", + " 7.4095455898487,\n", + " 7.305992068605045,\n", + " 7.216873345487081,\n", + " 7.140177347392363,\n", + " 7.074172361107136,\n", + " 7.017368115064053,\n", + " 6.968482104116149,\n", + " 6.926410540412602,\n", + " 6.890203493061659,\n", + " 6.859043495794951,\n", + " 6.8322271065252895,\n", + " 6.809148779374166,\n", + " 6.789287476293354,\n", + " 6.772194753563462,\n", + " 6.757484654330843,\n", + " 6.744825056563641,\n", + " 6.733930154986031,\n", + " 6.724553939040998,\n", + " 6.7164847277195285,\n", + " 6.709540325629253,\n", + " 6.703563930944755,\n", + " 6.698420628101964,\n", + " 6.693994272937896,\n", + " 6.690184936901033,\n", + " 6.6869066033590405,\n", + " 6.684085255790604,\n", + " 6.681657188315033,\n", + " 6.679567580931102,\n", + " 6.677769252797089,\n", + " 6.676221604519574,\n", + " 6.674889691737476,\n", + " 6.673743438895918,\n", + " 6.672756969243186,\n", + " 6.671908009731114,\n", + " 6.671177392742199,\n", + " 6.67054861831883,\n", + " 6.670007491073991,\n", + " 6.669541795710187,\n", + " 6.6691410160527465,\n", + " 6.6687961032462155,\n", + " 6.668499269625694],\n", + " 'mean_values': [-499990.00000000006,\n", + " -430344.49464251864,\n", + " -370400.0709214147,\n", + " -318805.24570086243,\n", + " -274397.2182241792,\n", + " -236174.9250611906,\n", + " -203276.71678956892,\n", + " -174960.99041954466,\n", + " -150589.39073224776,\n", + " -129612.56379799743,\n", + " -111557.63659518723,\n", + " -96017.62248550025,\n", + " -82642.20414429817,\n", + " -71129.87995600594,\n", + " -61221.128252255876,\n", + " -52692.5841391824,\n", + " -45352.00022444574,\n", + " -39033.89909552206,\n", + " -33595.85223376633,\n", + " -28915.277645120168,\n", + " -24886.679062681877,\n", + " -21419.231064709933,\n", + " -18434.774140504585,\n", + " -15866.030433996038,\n", + " -13655.089787986022,\n", + " -11752.113620339835,\n", + " -10114.208564831226,\n", + " -8704.44920577465,\n", + " -7491.0590797584155,\n", + " -6446.684689326237,\n", + " -5547.782130200449,\n", + " -4774.091306801075,\n", + " -4108.168925329867,\n", + " -3535.0052573723265,\n", + " -3041.678668593195,\n", + " -2617.0688788549987,\n", + " -2251.6035415134397,\n", + " -1937.0445010734777,\n", + " -1666.3007402544085,\n", + " -1433.2696654784468,\n", + " -1232.6980776316702,\n", + " -1060.0641664464729,\n", + " -911.4769374043459,\n", + " -783.5868721603567,\n", + " -673.5111151912098,\n", + " -578.7677375545189,\n", + " -497.22120743812155,\n", + " -427.0336540243874,\n", + " -366.62266236865105,\n", + " -314.62644783717167,\n", + " -269.87288513275735],\n", + " 'min_values': [-999990.0,\n", + " -860698.5246360124,\n", + " -740809.2773145201,\n", + " -637619.2827339853,\n", + " -548802.9316127491,\n", + " -472358.0904034841,\n", + " -406561.45450651087,\n", + " -349929.8129896553,\n", + " -301186.4511525712,\n", + " -259232.65746802898,\n", + " -223122.68273596527,\n", + " -192042.55096306987,\n", + " -165291.6251619425,\n", + " -142266.9000893599,\n", + " -122449.33067687339,\n", + " -105392.18564648034,\n", + " -90710.96893099602,\n", + " -78074.7246015849,\n", + " -67198.594671026,\n", + " -57837.414333736364,\n", + " -49780.19035247049,\n", + " -42845.271278199434,\n", + " -36876.337568485644,\n", + " -31738.8330627458,\n", + " -27316.937060626533,\n", + " -23510.97206573638,\n", + " -20235.151059817577,\n", + " -17415.62296548848,\n", + " -14988.834644244691,\n", + " -12900.078918978239,\n", + " -11102.267824331973,\n", + " -9554.881034230379,\n", + " -8223.031844932797,\n", + " -7076.700699681679,\n", + " -6090.044243789872,\n", + " -5240.821842965906,\n", + " -4509.8887402153105,\n", + " -3880.768569727999,\n", + " -3339.2792497617256,\n", + " -2873.2155525615235,\n", + " -2472.071044955188,\n", + " -2126.8020763319505,\n", + " -1829.6266317780437,\n", + " -1573.8456523305524,\n", + " -1353.6934077752696,\n", + " -1164.2060237274643,\n", + " -1001.112422367424,\n", + " -860.7368498445912,\n", + " -739.9144657534611,\n", + " -635.9216917776955,\n", + " -546.4142695352463]},\n", + " {'domain_name': 'subdomain0',\n", + " 'index': 6,\n", + " 'label': 'J_r0',\n", + " 'max_values': [1499995.0,\n", + " 1291057.7869540185,\n", + " 1111223.9159717802,\n", + " 956438.9241009781,\n", + " 823214.3974191237,\n", + " 708547.1356052262,\n", + " 609852.1817597663,\n", + " 524904.719484483,\n", + " 451789.67672885663,\n", + " 388858.9862020433,\n", + " 334694.0241039477,\n", + " 288073.8264446046,\n", + " 247947.43774291355,\n", + " 213410.35013403962,\n", + " 183683.99601530985,\n", + " 158098.27846972027,\n", + " 136076.4533964938,\n", + " 117122.08690237711,\n", + " 100807.89200653881,\n", + " 86766.12150060436,\n", + " 74680.28552870554,\n", + " 64277.906917298955,\n", + " 55324.50635272826,\n", + " 47618.2495941185,\n", + " 40985.4055909396,\n", + " 35276.458098604366,\n", + " 30362.72658972616,\n", + " 26133.434448232518,\n", + " 22493.25196636683,\n", + " 19360.118378467156,\n", + " 16663.40173649776,\n", + " 14342.321551345365,\n", + " 12344.547767398994,\n", + " 10625.051049522317,\n", + " 9145.066365684606,\n", + " 7871.232764448658,\n", + " 6774.833110322764,\n", + " 5831.152854591797,\n", + " 5018.918874642388,\n", + " 4319.823328842084,\n", + " 3718.106567432581,\n", + " 3200.2031144977245,\n", + " 2754.4399476668646,\n", + " 2370.7684784956277,\n", + " 2040.540111662703,\n", + " 1756.3090355909949,\n", + " 1511.668633550934,\n", + " 1301.1052747666852,\n", + " 1119.8716986299899,\n", + " 963.8825376663415,\n", + " 829.6214043026675],\n", + " 'mean_values': [749995.0,\n", + " 645526.741963778,\n", + " 555610.106382122,\n", + " 478217.8685512936,\n", + " 411605.82733626873,\n", + " 354272.3875917859,\n", + " 304925.0751843534,\n", + " 262451.485629317,\n", + " 225894.0860983716,\n", + " 194428.84569699614,\n", + " 167346.4548927808,\n", + " 144036.43372825038,\n", + " 123973.30621644724,\n", + " 106704.81993400889,\n", + " 91841.69237838378,\n", + " 79048.87620877358,\n", + " 68038.0003366686,\n", + " 58560.84864328306,\n", + " 50403.778350649474,\n", + " 43382.91646768023,\n", + " 37340.0185940228,\n", + " 32138.84659706487,\n", + " 27662.16121075685,\n", + " 23809.045650994034,\n", + " 20492.634681979012,\n", + " 17638.17043050973,\n", + " 15181.312847246816,\n", + " 13066.673808661952,\n", + " 11246.588619637601,\n", + " 9680.027033989334,\n", + " 8331.67319530065,\n", + " 7171.136960201588,\n", + " 6172.253387994778,\n", + " 5312.507886058467,\n", + " 4572.51800288977,\n", + " 3935.6033182824754,\n", + " 3387.4053122701366,\n", + " 2915.566751610194,\n", + " 2509.45111038159,\n", + " 2159.904498217647,\n", + " 1859.0471164474825,\n", + " 1600.0962496696864,\n", + " 1377.2154061064966,\n", + " 1185.3803082405125,\n", + " 1020.266672786792,\n", + " 878.1516063317556,\n", + " 755.8318111571597,\n", + " 650.5504810365582,\n", + " 559.9339935529538,\n", + " 481.93967175573476,\n", + " 414.8093276991132],\n", + " 'min_values': [-5.0,\n", + " -4.303026462111065,\n", + " -3.7032075357744647,\n", + " -3.1869983879798216,\n", + " -2.7427465820489925,\n", + " -2.3604216502232753,\n", + " -2.0313910559418016,\n", + " -1.7482258472598486,\n", + " -1.5045321118641541,\n", + " -1.2948080496787293,\n", + " -1.1143183847730591,\n", + " -0.9589881029075764,\n", + " -0.8253100182306317,\n", + " -0.7102660210885556,\n", + " -0.6112585416607135,\n", + " -0.5260521725960894,\n", + " -0.4527231561742333,\n", + " -0.38961581061891293,\n", + " -0.3353052395924969,\n", + " -0.2885652436924344,\n", + " -0.24834065978794273,\n", + " -0.21372316906125732,\n", + " -0.1839312144400389,\n", + " -0.1582921303452025,\n", + " -0.13622698149627466,\n", + " -0.11723758484547231,\n", + " -0.10089523247905596,\n", + " -0.08683090856150555,\n", + " -0.07472709157930213,\n", + " -0.06431048844388787,\n", + " -0.055345896417140494,\n", + " -0.0476309421529546,\n", + " -0.040991409406854196,\n", + " -0.03527740535156054,\n", + " -0.03035990503857322,\n", + " -0.026127883685918896,\n", + " -0.0224857824725615,\n", + " -0.019351371396666206,\n", + " -0.01665387919564587,\n", + " -0.014332406779373308,\n", + " -0.012334537606226714,\n", + " -0.010615158343892261,\n", + " -0.009135453864796084,\n", + " -0.00786201459668856,\n", + " -0.006766089113316109,\n", + " -0.005822927478261963,\n", + " -0.005011236611003778,\n", + " -0.004312693565298176,\n", + " -0.003711524079136108,\n", + " -0.003194154869339272,\n", + " -0.002748904438555133]},\n", + " {'domain_name': 'subdomain0',\n", + " 'index': 7,\n", + " 'label': 's0_init_umol_l_1',\n", + " 'max_values': [1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0,\n", + " 1000000.0],\n", + " 'mean_values': [500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006,\n", + " 500000.00000000006],\n", + " 'min_values': [0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0]},\n", + " {'domain_name': 'subdomain0',\n", + " 'index': 8,\n", + " 'label': 's1_init_umol_l_1',\n", + " 'max_values': [10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0,\n", + " 10.0],\n", + " 'mean_values': [-499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006,\n", + " -499990.00000000006],\n", + " 'min_values': [-999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0,\n", + " -999990.0]}],\n", + " 'mesh': {'extent': [10.0, 1.0, 1.0],\n", + " 'origin': [0.0, 0.0, 0.0],\n", + " 'size': [200, 1, 1],\n", + " 'volume_regions': [{'domain_name': 'subdomain0',\n", + " 'domain_type_index': 0,\n", + " 'region_index': 0,\n", + " 'volume': 10.000000000000034}]},\n", + " 'times': [0.0,\n", + " 0.1,\n", + " 0.2,\n", + " 0.3,\n", + " 0.4,\n", + " 0.5,\n", + " 0.6,\n", + " 0.7,\n", + " 0.8,\n", + " 0.9,\n", + " 1.0,\n", + " 1.1,\n", + " 1.2,\n", + " 1.3,\n", + " 1.4,\n", + " 1.5,\n", + " 1.6,\n", + " 1.7,\n", + " 1.8,\n", + " 1.9,\n", + " 2.0,\n", + " 2.1,\n", + " 2.2,\n", + " 2.3,\n", + " 2.4,\n", + " 2.5,\n", + " 2.6,\n", + " 2.7,\n", + " 2.8,\n", + " 2.9,\n", + " 3.0,\n", + " 3.1,\n", + " 3.2,\n", + " 3.3,\n", + " 3.4,\n", + " 3.5,\n", + " 3.6,\n", + " 3.7,\n", + " 3.8,\n", + " 3.9,\n", + " 4.0,\n", + " 4.1,\n", + " 4.2,\n", + " 4.3,\n", + " 4.4,\n", + " 4.5,\n", + " 4.6,\n", + " 4.7,\n", + " 4.8,\n", + " 4.9,\n", + " 5.0]}" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "execution_count": 7 + }, + { + "metadata": {}, + "cell_type": "code", + "outputs": [], + "execution_count": null, + "source": "", + "id": "a1ff54531030f066" + }, { "metadata": { "ExecuteTime": { diff --git a/poetry.lock b/poetry.lock index 999435e..9d243ae 100644 --- a/poetry.lock +++ b/poetry.lock @@ -18,7 +18,7 @@ version = "4.8.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" optional = false python-versions = ">=3.9" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "anyio-4.8.0-py3-none-any.whl", hash = "sha256:b5011f270ab5eb0abf13385f851315585cc37ef330dd88e27ec3d34d651fd47a"}, {file = "anyio-4.8.0.tar.gz", hash = "sha256:1d9fe889df5212298c0c0723fa20479d1b94883a2df44bd3897aa91083316f7a"}, @@ -41,7 +41,7 @@ version = "0.1.4" description = "Disable App Nap on macOS >= 10.9" optional = false python-versions = ">=3.6" -groups = ["dev"] +groups = ["notebook"] markers = "platform_system == \"Darwin\"" files = [ {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, @@ -54,7 +54,7 @@ version = "23.1.0" description = "Argon2 for Python" optional = false python-versions = ">=3.7" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "argon2_cffi-23.1.0-py3-none-any.whl", hash = "sha256:c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea"}, {file = "argon2_cffi-23.1.0.tar.gz", hash = "sha256:879c3e79a2729ce768ebb7d36d4609e3a78a4ca2ec3a9f12286ca057e3d0db08"}, @@ -75,7 +75,7 @@ version = "21.2.0" description = "Low-level CFFI bindings for Argon2" optional = false python-versions = ">=3.6" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3"}, {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367"}, @@ -113,7 +113,7 @@ version = "1.3.0" description = "Better dates & times for Python" optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "arrow-1.3.0-py3-none-any.whl", hash = "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80"}, {file = "arrow-1.3.0.tar.gz", hash = "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85"}, @@ -144,7 +144,7 @@ version = "3.0.0" description = "Annotate AST trees with source code positions" optional = false python-versions = ">=3.8" -groups = ["main", "dev"] +groups = ["main", "ipython", "notebook"] files = [ {file = "asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2"}, {file = "asttokens-3.0.0.tar.gz", hash = "sha256:0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7"}, @@ -160,7 +160,7 @@ version = "2.0.4" description = "Simple LRU cache for asyncio" optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "async-lru-2.0.4.tar.gz", hash = "sha256:b8a59a5df60805ff63220b2a0c5b5393da5521b113cd5465a44eb037d81a5627"}, {file = "async_lru-2.0.4-py3-none-any.whl", hash = "sha256:ff02944ce3c288c5be660c42dbcca0742b32c3b279d6dceda655190240b99224"}, @@ -175,7 +175,7 @@ version = "25.1.0" description = "Classes Without Boilerplate" optional = false python-versions = ">=3.8" -groups = ["main", "dev"] +groups = ["main", "notebook"] files = [ {file = "attrs-25.1.0-py3-none-any.whl", hash = "sha256:c75a69e28a550a7e93789579c22aa26b0f5b83b75dc4e08fe092980051e1090a"}, {file = "attrs-25.1.0.tar.gz", hash = "sha256:1c97078a80c814273a76b2a298a932eb681c87415c11dee0a6921de7f1b02c3e"}, @@ -195,7 +195,7 @@ version = "2.17.0" description = "Internationalization utilities" optional = false python-versions = ">=3.8" -groups = ["dev", "docs"] +groups = ["docs", "notebook"] files = [ {file = "babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2"}, {file = "babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d"}, @@ -210,7 +210,7 @@ version = "4.13.3" description = "Screen-scraping library" optional = false python-versions = ">=3.7.0" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "beautifulsoup4-4.13.3-py3-none-any.whl", hash = "sha256:99045d7d3f08f91f0d656bc9b7efbae189426cd913d830294a15eefa0ea4df16"}, {file = "beautifulsoup4-4.13.3.tar.gz", hash = "sha256:1bd32405dacc920b42b83ba01644747ed77456a65760e285fbc47633ceddaf8b"}, @@ -248,7 +248,7 @@ version = "6.2.0" description = "An easy safelist-based HTML-sanitizing tool." optional = false python-versions = ">=3.9" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "bleach-6.2.0-py3-none-any.whl", hash = "sha256:117d9c6097a7c3d22fd578fcd8d35ff1e125df6736f554da4e432fdd63f31e5e"}, {file = "bleach-6.2.0.tar.gz", hash = "sha256:123e894118b8a599fd80d3ec1a6d4cc7ce4e5882b1317a7e1ba69b56e95f991f"}, @@ -263,14 +263,14 @@ css = ["tinycss2 (>=1.1.0,<1.5)"] [[package]] name = "cachetools" -version = "5.5.1" +version = "5.5.2" description = "Extensible memoizing collections and decorators" optional = false python-versions = ">=3.7" groups = ["dev"] files = [ - {file = "cachetools-5.5.1-py3-none-any.whl", hash = "sha256:b76651fdc3b24ead3c648bbdeeb940c1b04d365b38b4af66788f9ec4a81d42bb"}, - {file = "cachetools-5.5.1.tar.gz", hash = "sha256:70f238fbba50383ef62e55c6aff6d9673175fe59f7c6782c7a0b9e38f4a9df95"}, + {file = "cachetools-5.5.2-py3-none-any.whl", hash = "sha256:d26a22bcc62eb95c3beabd9f1ee5e820d3d2704fe2967cbe350e20c8ffcd3f0a"}, + {file = "cachetools-5.5.2.tar.gz", hash = "sha256:1a661caa9175d26759571b2e19580f9d6393969e5dfca11fdb1f947a23e640d4"}, ] [[package]] @@ -279,7 +279,7 @@ version = "2025.1.31" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" -groups = ["main", "dev", "docs"] +groups = ["main", "docs", "notebook"] files = [ {file = "certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"}, {file = "certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651"}, @@ -291,7 +291,7 @@ version = "1.17.1" description = "Foreign Function Interface for Python calling C code." optional = false python-versions = ">=3.8" -groups = ["main", "dev"] +groups = ["main", "notebook"] files = [ {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, @@ -396,7 +396,7 @@ version = "3.4.1" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7" -groups = ["main", "dev", "docs"] +groups = ["main", "docs", "notebook"] files = [ {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, @@ -513,12 +513,12 @@ version = "0.4.6" description = "Cross-platform colored terminal text." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -groups = ["main", "dev", "docs"] +groups = ["main", "dev", "docs", "ipython", "notebook"] files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] -markers = {main = "platform_system == \"Windows\" or sys_platform == \"win32\""} +markers = {main = "platform_system == \"Windows\" or sys_platform == \"win32\"", ipython = "sys_platform == \"win32\"", notebook = "sys_platform == \"win32\""} [[package]] name = "comm" @@ -526,7 +526,7 @@ version = "0.2.2" description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3"}, {file = "comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e"}, @@ -767,7 +767,7 @@ version = "1.8.12" description = "An implementation of the Debug Adapter Protocol for Python" optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "debugpy-1.8.12-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:a2ba7ffe58efeae5b8fad1165357edfe01464f9aef25e814e891ec690e7dd82a"}, {file = "debugpy-1.8.12-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cbbd4149c4fc5e7d508ece083e78c17442ee13b0e69bfa6bd63003e486770f45"}, @@ -799,14 +799,14 @@ files = [ [[package]] name = "decorator" -version = "5.1.1" +version = "5.2.1" description = "Decorators for Humans" optional = false -python-versions = ">=3.5" -groups = ["main", "dev"] +python-versions = ">=3.8" +groups = ["main", "ipython", "notebook"] files = [ - {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, - {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, + {file = "decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a"}, + {file = "decorator-5.2.1.tar.gz", hash = "sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360"}, ] [[package]] @@ -815,7 +815,7 @@ version = "0.7.1" description = "XML bomb protection for Python stdlib modules" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, @@ -865,7 +865,7 @@ version = "1.2.2" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" -groups = ["main", "dev"] +groups = ["main", "dev", "ipython", "notebook"] markers = "python_version < \"3.11\"" files = [ {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, @@ -881,7 +881,7 @@ version = "2.2.0" description = "Get the currently executing AST node of a frame, and other information" optional = false python-versions = ">=3.8" -groups = ["main", "dev"] +groups = ["main", "ipython", "notebook"] files = [ {file = "executing-2.2.0-py2.py3-none-any.whl", hash = "sha256:11387150cad388d62750327a53d3339fad4888b39a6fe233c3afbb54ecffd3aa"}, {file = "executing-2.2.0.tar.gz", hash = "sha256:5d108c028108fe2551d1a7b2e8b713341e2cb4fc0aa7dcf966fa4327a5226755"}, @@ -909,7 +909,7 @@ version = "2.21.1" description = "Fastest Python implementation of JSON schema" optional = false python-versions = "*" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "fastjsonschema-2.21.1-py3-none-any.whl", hash = "sha256:c9e5b7e908310918cf494a434eeb31384dd84a98b57a30bcb1f535015b554667"}, {file = "fastjsonschema-2.21.1.tar.gz", hash = "sha256:794d4f0a58f848961ba16af7b9c85a3e88cd360df008c59aac6fc5ae9323b5d4"}, @@ -1015,7 +1015,7 @@ version = "1.5.1" description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" optional = false python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014"}, {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, @@ -1076,7 +1076,7 @@ version = "0.14.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" optional = false python-versions = ">=3.7" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, @@ -1127,7 +1127,7 @@ version = "1.0.7" description = "A minimal low-level HTTP client." optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"}, {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"}, @@ -1149,7 +1149,7 @@ version = "0.28.1" description = "The next generation HTTP client." optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"}, {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"}, @@ -1170,14 +1170,14 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "identify" -version = "2.6.7" +version = "2.6.8" description = "File identification library for Python" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ - {file = "identify-2.6.7-py2.py3-none-any.whl", hash = "sha256:155931cb617a401807b09ecec6635d6c692d180090a1cedca8ef7d58ba5b6aa0"}, - {file = "identify-2.6.7.tar.gz", hash = "sha256:3fa266b42eba321ee0b2bb0936a6a6b9e36a1351cbb69055b3082f4193035684"}, + {file = "identify-2.6.8-py2.py3-none-any.whl", hash = "sha256:83657f0f766a3c8d0eaea16d4ef42494b39b34629a4b3192a9d020d349b3e255"}, + {file = "identify-2.6.8.tar.gz", hash = "sha256:61491417ea2c0c5c670484fd8abbb34de34cdae1e5f39a73ee65e48e4bb663fc"}, ] [package.extras] @@ -1189,7 +1189,7 @@ version = "3.10" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.6" -groups = ["main", "dev", "docs"] +groups = ["main", "docs", "notebook"] files = [ {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, @@ -1216,7 +1216,7 @@ version = "6.29.5" description = "IPython Kernel for Jupyter" optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "ipykernel-6.29.5-py3-none-any.whl", hash = "sha256:afdb66ba5aa354b09b91379bac28ae4afebbb30e8b39510c9690afb7a10421b5"}, {file = "ipykernel-6.29.5.tar.gz", hash = "sha256:f093a22c4a40f8828f8e330a9c297cb93dcab13bd9678ded6de8e5cf81c56215"}, @@ -1250,7 +1250,7 @@ version = "8.32.0" description = "IPython: Productive Interactive Computing" optional = false python-versions = ">=3.10" -groups = ["main", "dev"] +groups = ["main", "ipython", "notebook"] files = [ {file = "ipython-8.32.0-py3-none-any.whl", hash = "sha256:cae85b0c61eff1fc48b0a8002de5958b6528fa9c8defb1894da63f42613708aa"}, {file = "ipython-8.32.0.tar.gz", hash = "sha256:be2c91895b0b9ea7ba49d33b23e2040c352b33eb6a519cca7ce6e0c743444251"}, @@ -1289,7 +1289,7 @@ version = "20.11.0" description = "Operations with ISO 8601 durations" optional = false python-versions = ">=3.7" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042"}, {file = "isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9"}, @@ -1304,7 +1304,7 @@ version = "0.19.2" description = "An autocompletion tool for Python that can be used for text editors." optional = false python-versions = ">=3.6" -groups = ["main", "dev"] +groups = ["main", "ipython", "notebook"] files = [ {file = "jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9"}, {file = "jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0"}, @@ -1324,7 +1324,7 @@ version = "3.1.5" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" -groups = ["dev", "docs"] +groups = ["docs", "notebook"] files = [ {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"}, {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"}, @@ -1342,7 +1342,7 @@ version = "0.10.0" description = "A Python implementation of the JSON5 data format." optional = false python-versions = ">=3.8.0" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "json5-0.10.0-py3-none-any.whl", hash = "sha256:19b23410220a7271e8377f81ba8aacba2fdd56947fbb137ee5977cbe1f5e8dfa"}, {file = "json5-0.10.0.tar.gz", hash = "sha256:e66941c8f0a02026943c52c2eb34ebeb2a6f819a0be05920a6f5243cd30fd559"}, @@ -1357,7 +1357,7 @@ version = "3.0.0" description = "Identify specific nodes in a JSON document (RFC 6901)" optional = false python-versions = ">=3.7" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"}, {file = "jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef"}, @@ -1369,7 +1369,7 @@ version = "4.23.0" description = "An implementation of JSON Schema validation for Python" optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "jsonschema-4.23.0-py3-none-any.whl", hash = "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566"}, {file = "jsonschema-4.23.0.tar.gz", hash = "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4"}, @@ -1399,7 +1399,7 @@ version = "2024.10.1" description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" optional = false python-versions = ">=3.9" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "jsonschema_specifications-2024.10.1-py3-none-any.whl", hash = "sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf"}, {file = "jsonschema_specifications-2024.10.1.tar.gz", hash = "sha256:0f38b83639958ce1152d02a7f062902c41c8fd20d558b0c34344292d417ae272"}, @@ -1414,7 +1414,7 @@ version = "8.6.3" description = "Jupyter protocol implementation and client libraries" optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "jupyter_client-8.6.3-py3-none-any.whl", hash = "sha256:e8a19cc986cc45905ac3362915f410f3af85424b4c0905e94fa5f2cb08e8f23f"}, {file = "jupyter_client-8.6.3.tar.gz", hash = "sha256:35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419"}, @@ -1437,7 +1437,7 @@ version = "5.7.2" description = "Jupyter core package. A base package on which Jupyter projects rely." optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "jupyter_core-5.7.2-py3-none-any.whl", hash = "sha256:4f7315d2f6b4bcf2e3e7cb6e46772eba760ae459cd1f59d29eb57b0a01bd7409"}, {file = "jupyter_core-5.7.2.tar.gz", hash = "sha256:aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9"}, @@ -1458,7 +1458,7 @@ version = "0.12.0" description = "Jupyter Event System library" optional = false python-versions = ">=3.9" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "jupyter_events-0.12.0-py3-none-any.whl", hash = "sha256:6464b2fa5ad10451c3d35fabc75eab39556ae1e2853ad0c0cc31b656731a97fb"}, {file = "jupyter_events-0.12.0.tar.gz", hash = "sha256:fc3fce98865f6784c9cd0a56a20644fc6098f21c8c33834a8d9fe383c17e554b"}, @@ -1485,7 +1485,7 @@ version = "2.2.5" description = "Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server" optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "jupyter-lsp-2.2.5.tar.gz", hash = "sha256:793147a05ad446f809fd53ef1cd19a9f5256fd0a2d6b7ce943a982cb4f545001"}, {file = "jupyter_lsp-2.2.5-py3-none-any.whl", hash = "sha256:45fbddbd505f3fbfb0b6cb2f1bc5e15e83ab7c79cd6e89416b248cb3c00c11da"}, @@ -1500,7 +1500,7 @@ version = "2.15.0" description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." optional = false python-versions = ">=3.9" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "jupyter_server-2.15.0-py3-none-any.whl", hash = "sha256:872d989becf83517012ee669f09604aa4a28097c0bd90b2f424310156c2cdae3"}, {file = "jupyter_server-2.15.0.tar.gz", hash = "sha256:9d446b8697b4f7337a1b7cdcac40778babdd93ba614b6d68ab1c0c918f1c4084"}, @@ -1537,7 +1537,7 @@ version = "0.5.3" description = "A Jupyter Server Extension Providing Terminals." optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "jupyter_server_terminals-0.5.3-py3-none-any.whl", hash = "sha256:41ee0d7dc0ebf2809c668e0fc726dfaf258fcd3e769568996ca731b6194ae9aa"}, {file = "jupyter_server_terminals-0.5.3.tar.gz", hash = "sha256:5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269"}, @@ -1557,7 +1557,7 @@ version = "4.3.5" description = "JupyterLab computational environment" optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "jupyterlab-4.3.5-py3-none-any.whl", hash = "sha256:571bbdee20e4c5321ab5195bc41cf92a75a5cff886be5e57ce78dfa37a5e9fdb"}, {file = "jupyterlab-4.3.5.tar.gz", hash = "sha256:c779bf72ced007d7d29d5bcef128e7fdda96ea69299e19b04a43635a7d641f9d"}, @@ -1592,7 +1592,7 @@ version = "0.3.0" description = "Pygments theme using JupyterLab CSS variables" optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780"}, {file = "jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d"}, @@ -1604,7 +1604,7 @@ version = "2.27.3" description = "A set of server components for JupyterLab and JupyterLab like applications." optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "jupyterlab_server-2.27.3-py3-none-any.whl", hash = "sha256:e697488f66c3db49df675158a77b3b017520d772c6e1548c7d9bcc5df7944ee4"}, {file = "jupyterlab_server-2.27.3.tar.gz", hash = "sha256:eb36caca59e74471988f0ae25c77945610b887f777255aa21f8065def9e51ed4"}, @@ -1778,7 +1778,7 @@ version = "3.0.2" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.9" -groups = ["dev", "docs"] +groups = ["docs", "notebook"] files = [ {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, @@ -1907,7 +1907,7 @@ version = "0.1.7" description = "Inline Matplotlib backend for Jupyter" optional = false python-versions = ">=3.8" -groups = ["main", "dev"] +groups = ["main", "ipython", "notebook"] files = [ {file = "matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca"}, {file = "matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90"}, @@ -1942,14 +1942,14 @@ files = [ [[package]] name = "mistune" -version = "3.1.1" +version = "3.1.2" description = "A sane and fast Markdown parser with useful plugins and renderers" optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ - {file = "mistune-3.1.1-py3-none-any.whl", hash = "sha256:02106ac2aa4f66e769debbfa028509a275069dcffce0dfa578edd7b991ee700a"}, - {file = "mistune-3.1.1.tar.gz", hash = "sha256:e0740d635f515119f7d1feb6f9b192ee60f0cc649f80a8f944f905706a21654c"}, + {file = "mistune-3.1.2-py3-none-any.whl", hash = "sha256:4b47731332315cdca99e0ded46fc0004001c1299ff773dfb48fbe1fd226de319"}, + {file = "mistune-3.1.2.tar.gz", hash = "sha256:733bf018ba007e8b5f2d3a9eb624034f6ee26c4ea769a98ec533ee111d504dff"}, ] [package.dependencies] @@ -1988,14 +1988,14 @@ min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-imp [[package]] name = "mkdocs-autorefs" -version = "1.3.1" +version = "1.4.0" description = "Automatically link across pages in MkDocs." optional = false python-versions = ">=3.9" groups = ["docs"] files = [ - {file = "mkdocs_autorefs-1.3.1-py3-none-any.whl", hash = "sha256:18c504ae4d3ee7f344369bb26cb31d4105569ee252aab7d75ec2734c2c8b0474"}, - {file = "mkdocs_autorefs-1.3.1.tar.gz", hash = "sha256:a6d30cbcccae336d622a66c2418a3c92a8196b69782774529ad441abb23c0902"}, + {file = "mkdocs_autorefs-1.4.0-py3-none-any.whl", hash = "sha256:bad19f69655878d20194acd0162e29a89c3f7e6365ffe54e72aa3fd1072f240d"}, + {file = "mkdocs_autorefs-1.4.0.tar.gz", hash = "sha256:a9c0aa9c90edbce302c09d050a3c4cb7c76f8b7b2c98f84a7a05f53d00392156"}, ] [package.dependencies] @@ -2022,14 +2022,14 @@ pyyaml = ">=5.1" [[package]] name = "mkdocs-material" -version = "9.6.4" +version = "9.6.5" description = "Documentation that simply works" optional = false python-versions = ">=3.8" groups = ["docs"] files = [ - {file = "mkdocs_material-9.6.4-py3-none-any.whl", hash = "sha256:414e8376551def6d644b8e6f77226022868532a792eb2c9accf52199009f568f"}, - {file = "mkdocs_material-9.6.4.tar.gz", hash = "sha256:4d1d35e1c1d3e15294cb7fa5d02e0abaee70d408f75027dc7be6e30fb32e6867"}, + {file = "mkdocs_material-9.6.5-py3-none-any.whl", hash = "sha256:aad3e6fb860c20870f75fb2a69ef901f1be727891e41adb60b753efcae19453b"}, + {file = "mkdocs_material-9.6.5.tar.gz", hash = "sha256:b714679a8c91b0ffe2188e11ed58c44d2523e9c2ae26a29cc652fa7478faa21f"}, ] [package.dependencies] @@ -2179,7 +2179,7 @@ version = "0.10.2" description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." optional = false python-versions = ">=3.9.0" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "nbclient-0.10.2-py3-none-any.whl", hash = "sha256:4ffee11e788b4a27fabeb7955547e4318a5298f34342a4bfd01f2e1faaeadc3d"}, {file = "nbclient-0.10.2.tar.gz", hash = "sha256:90b7fc6b810630db87a6d0c2250b1f0ab4cf4d3c27a299b0cde78a4ed3fd9193"}, @@ -2202,7 +2202,7 @@ version = "7.16.6" description = "Converting Jupyter Notebooks (.ipynb files) to other formats. Output formats include asciidoc, html, latex, markdown, pdf, py, rst, script. nbconvert can be used both as a Python library (`import nbconvert`) or as a command line tool (invoked as `jupyter nbconvert ...`)." optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "nbconvert-7.16.6-py3-none-any.whl", hash = "sha256:1375a7b67e0c2883678c48e506dc320febb57685e5ee67faa51b18a90f3a712b"}, {file = "nbconvert-7.16.6.tar.gz", hash = "sha256:576a7e37c6480da7b8465eefa66c17844243816ce1ccc372633c6b71c3c0f582"}, @@ -2239,7 +2239,7 @@ version = "5.10.4" description = "The Jupyter Notebook format" optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b"}, {file = "nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a"}, @@ -2261,7 +2261,7 @@ version = "1.6.0" description = "Patch asyncio to allow nested event loops" optional = false python-versions = ">=3.5" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"}, {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, @@ -2285,7 +2285,7 @@ version = "7.3.2" description = "Jupyter Notebook - A web-based notebook environment for interactive computing" optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "notebook-7.3.2-py3-none-any.whl", hash = "sha256:e5f85fc59b69d3618d73cf27544418193ff8e8058d5bf61d315ce4f473556288"}, {file = "notebook-7.3.2.tar.gz", hash = "sha256:705e83a1785f45b383bf3ee13cb76680b92d24f56fb0c7d2136fe1d850cd3ca8"}, @@ -2309,7 +2309,7 @@ version = "0.2.4" description = "A shim layer for notebook traits and config" optional = false python-versions = ">=3.7" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef"}, {file = "notebook_shim-0.2.4.tar.gz", hash = "sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb"}, @@ -2564,7 +2564,7 @@ version = "7.7.0" description = "A decorator to automatically detect mismatch when overriding a method." optional = false python-versions = ">=3.6" -groups = ["main", "dev"] +groups = ["main", "notebook"] files = [ {file = "overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49"}, {file = "overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a"}, @@ -2576,7 +2576,7 @@ version = "24.2" description = "Core utilities for Python packages" optional = false python-versions = ">=3.8" -groups = ["main", "dev", "docs"] +groups = ["main", "dev", "docs", "notebook"] files = [ {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, @@ -2604,7 +2604,7 @@ version = "1.5.1" description = "Utilities for writing pandoc filters in python" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc"}, {file = "pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e"}, @@ -2616,7 +2616,7 @@ version = "0.8.4" description = "A Python Parser" optional = false python-versions = ">=3.6" -groups = ["main", "dev"] +groups = ["main", "ipython", "notebook"] files = [ {file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"}, {file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"}, @@ -2644,7 +2644,7 @@ version = "4.9.0" description = "Pexpect allows easy control of interactive console applications." optional = false python-versions = "*" -groups = ["main", "dev"] +groups = ["main", "ipython", "notebook"] markers = "sys_platform != \"win32\" and sys_platform != \"emscripten\"" files = [ {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"}, @@ -2749,7 +2749,7 @@ version = "4.3.6" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.8" -groups = ["main", "dev", "docs"] +groups = ["main", "dev", "docs", "notebook"] files = [ {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, @@ -2823,7 +2823,7 @@ version = "0.21.1" description = "Python client for the Prometheus monitoring system." optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "prometheus_client-0.21.1-py3-none-any.whl", hash = "sha256:594b45c410d6f4f8888940fe80b5cc2521b305a1fafe1c58609ef715a001f301"}, {file = "prometheus_client-0.21.1.tar.gz", hash = "sha256:252505a722ac04b0456be05c05f75f45d760c2911ffc45f2a06bcaed9f3ae3fb"}, @@ -2838,7 +2838,7 @@ version = "3.0.50" description = "Library for building powerful interactive command lines in Python" optional = false python-versions = ">=3.8.0" -groups = ["main", "dev"] +groups = ["main", "ipython", "notebook"] files = [ {file = "prompt_toolkit-3.0.50-py3-none-any.whl", hash = "sha256:9b6427eb19e479d98acff65196a307c555eb567989e6d88ebbb1b509d9779198"}, {file = "prompt_toolkit-3.0.50.tar.gz", hash = "sha256:544748f3860a2623ca5cd6d2795e7a14f3d0e1c3c9728359013f79877fc89bab"}, @@ -2853,7 +2853,7 @@ version = "7.0.0" description = "Cross-platform lib for process and system monitoring in Python. NOTE: the syntax of this script MUST be kept compatible with Python 2.7." optional = false python-versions = ">=3.6" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "psutil-7.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:101d71dc322e3cffd7cea0650b09b3d08b8e7c4109dd6809fe452dfd00e58b25"}, {file = "psutil-7.0.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:39db632f6bb862eeccf56660871433e111b6ea58f2caea825571951d4b6aa3da"}, @@ -2877,12 +2877,12 @@ version = "0.7.0" description = "Run a subprocess in a pseudo terminal" optional = false python-versions = "*" -groups = ["main", "dev"] +groups = ["main", "ipython", "notebook"] files = [ {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, ] -markers = {main = "sys_platform != \"win32\" and sys_platform != \"emscripten\"", dev = "sys_platform != \"win32\" and sys_platform != \"emscripten\" or os_name != \"nt\""} +markers = {main = "sys_platform != \"win32\" and sys_platform != \"emscripten\"", ipython = "sys_platform != \"win32\" and sys_platform != \"emscripten\"", notebook = "sys_platform != \"win32\" and sys_platform != \"emscripten\" or os_name != \"nt\""} [[package]] name = "pure-eval" @@ -2890,7 +2890,7 @@ version = "0.2.3" description = "Safely evaluate AST nodes without side effects" optional = false python-versions = "*" -groups = ["main", "dev"] +groups = ["main", "ipython", "notebook"] files = [ {file = "pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0"}, {file = "pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42"}, @@ -2905,7 +2905,7 @@ version = "2.22" description = "C parser in Python" optional = false python-versions = ">=3.8" -groups = ["main", "dev"] +groups = ["main", "notebook"] files = [ {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, @@ -3052,7 +3052,7 @@ version = "2.19.1" description = "Pygments is a syntax highlighting package written in Python." optional = false python-versions = ">=3.8" -groups = ["main", "dev", "docs"] +groups = ["main", "docs", "ipython", "notebook"] files = [ {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"}, {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"}, @@ -3163,7 +3163,7 @@ version = "2.9.0.post0" description = "Extensions to the standard Python datetime module" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -groups = ["main", "dev", "docs"] +groups = ["main", "docs", "notebook"] files = [ {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, @@ -3178,7 +3178,7 @@ version = "3.2.1" description = "JSON Log Formatter for the Python Logging Package" optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "python_json_logger-3.2.1-py3-none-any.whl", hash = "sha256:cdc17047eb5374bd311e748b42f99d71223f3b0e186f4206cc5d52aefe85b090"}, {file = "python_json_logger-3.2.1.tar.gz", hash = "sha256:8eb0554ea17cb75b05d2848bc14fb02fbdbd9d6972120781b974380bfa162008"}, @@ -3315,7 +3315,7 @@ version = "308" description = "Python for Window Extensions" optional = false python-versions = "*" -groups = ["dev"] +groups = ["notebook"] markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\"" files = [ {file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"}, @@ -3344,7 +3344,7 @@ version = "2.0.15" description = "Pseudo terminal support for Windows from Python." optional = false python-versions = ">=3.9" -groups = ["dev"] +groups = ["notebook"] markers = "os_name == \"nt\"" files = [ {file = "pywinpty-2.0.15-cp310-cp310-win_amd64.whl", hash = "sha256:8e7f5de756a615a38b96cd86fa3cd65f901ce54ce147a3179c45907fa11b4c4e"}, @@ -3362,7 +3362,7 @@ version = "6.0.2" description = "YAML parser and emitter for Python" optional = false python-versions = ">=3.8" -groups = ["dev", "docs"] +groups = ["dev", "docs", "notebook"] files = [ {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, @@ -3440,7 +3440,7 @@ version = "26.2.1" description = "Python bindings for 0MQ" optional = false python-versions = ">=3.7" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "pyzmq-26.2.1-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:f39d1227e8256d19899d953e6e19ed2ccb689102e6d85e024da5acf410f301eb"}, {file = "pyzmq-26.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a23948554c692df95daed595fdd3b76b420a4939d7a8a28d6d7dea9711878641"}, @@ -3562,7 +3562,7 @@ version = "0.36.2" description = "JSON Referencing + Python" optional = false python-versions = ">=3.9" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0"}, {file = "referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa"}, @@ -3683,7 +3683,7 @@ version = "2.32.3" description = "Python HTTP for Humans." optional = false python-versions = ">=3.8" -groups = ["main", "dev", "docs"] +groups = ["main", "docs", "notebook"] files = [ {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, @@ -3724,7 +3724,7 @@ version = "0.1.4" description = "A pure python RFC3339 validator" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"}, {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"}, @@ -3739,7 +3739,7 @@ version = "0.1.1" description = "Pure python rfc3986 validator" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9"}, {file = "rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"}, @@ -3767,115 +3767,115 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"] [[package]] name = "rpds-py" -version = "0.22.3" +version = "0.23.1" description = "Python bindings to Rust's persistent data structures (rpds)" optional = false python-versions = ">=3.9" -groups = ["dev"] -files = [ - {file = "rpds_py-0.22.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:6c7b99ca52c2c1752b544e310101b98a659b720b21db00e65edca34483259967"}, - {file = "rpds_py-0.22.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:be2eb3f2495ba669d2a985f9b426c1797b7d48d6963899276d22f23e33d47e37"}, - {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70eb60b3ae9245ddea20f8a4190bd79c705a22f8028aaf8bbdebe4716c3fab24"}, - {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4041711832360a9b75cfb11b25a6a97c8fb49c07b8bd43d0d02b45d0b499a4ff"}, - {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:64607d4cbf1b7e3c3c8a14948b99345eda0e161b852e122c6bb71aab6d1d798c"}, - {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e69b0a0e2537f26d73b4e43ad7bc8c8efb39621639b4434b76a3de50c6966e"}, - {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc27863442d388870c1809a87507727b799c8460573cfbb6dc0eeaef5a11b5ec"}, - {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e79dd39f1e8c3504be0607e5fc6e86bb60fe3584bec8b782578c3b0fde8d932c"}, - {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e0fa2d4ec53dc51cf7d3bb22e0aa0143966119f42a0c3e4998293a3dd2856b09"}, - {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fda7cb070f442bf80b642cd56483b5548e43d366fe3f39b98e67cce780cded00"}, - {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cff63a0272fcd259dcc3be1657b07c929c466b067ceb1c20060e8d10af56f5bf"}, - {file = "rpds_py-0.22.3-cp310-cp310-win32.whl", hash = "sha256:9bd7228827ec7bb817089e2eb301d907c0d9827a9e558f22f762bb690b131652"}, - {file = "rpds_py-0.22.3-cp310-cp310-win_amd64.whl", hash = "sha256:9beeb01d8c190d7581a4d59522cd3d4b6887040dcfc744af99aa59fef3e041a8"}, - {file = "rpds_py-0.22.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d20cfb4e099748ea39e6f7b16c91ab057989712d31761d3300d43134e26e165f"}, - {file = "rpds_py-0.22.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:68049202f67380ff9aa52f12e92b1c30115f32e6895cd7198fa2a7961621fc5a"}, - {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb4f868f712b2dd4bcc538b0a0c1f63a2b1d584c925e69a224d759e7070a12d5"}, - {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bc51abd01f08117283c5ebf64844a35144a0843ff7b2983e0648e4d3d9f10dbb"}, - {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0f3cec041684de9a4684b1572fe28c7267410e02450f4561700ca5a3bc6695a2"}, - {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7ef9d9da710be50ff6809fed8f1963fecdfecc8b86656cadfca3bc24289414b0"}, - {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59f4a79c19232a5774aee369a0c296712ad0e77f24e62cad53160312b1c1eaa1"}, - {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a60bce91f81ddaac922a40bbb571a12c1070cb20ebd6d49c48e0b101d87300d"}, - {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e89391e6d60251560f0a8f4bd32137b077a80d9b7dbe6d5cab1cd80d2746f648"}, - {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e3fb866d9932a3d7d0c82da76d816996d1667c44891bd861a0f97ba27e84fc74"}, - {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1352ae4f7c717ae8cba93421a63373e582d19d55d2ee2cbb184344c82d2ae55a"}, - {file = "rpds_py-0.22.3-cp311-cp311-win32.whl", hash = "sha256:b0b4136a252cadfa1adb705bb81524eee47d9f6aab4f2ee4fa1e9d3cd4581f64"}, - {file = "rpds_py-0.22.3-cp311-cp311-win_amd64.whl", hash = "sha256:8bd7c8cfc0b8247c8799080fbff54e0b9619e17cdfeb0478ba7295d43f635d7c"}, - {file = "rpds_py-0.22.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:27e98004595899949bd7a7b34e91fa7c44d7a97c40fcaf1d874168bb652ec67e"}, - {file = "rpds_py-0.22.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1978d0021e943aae58b9b0b196fb4895a25cc53d3956b8e35e0b7682eefb6d56"}, - {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:655ca44a831ecb238d124e0402d98f6212ac527a0ba6c55ca26f616604e60a45"}, - {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:feea821ee2a9273771bae61194004ee2fc33f8ec7db08117ef9147d4bbcbca8e"}, - {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:22bebe05a9ffc70ebfa127efbc429bc26ec9e9b4ee4d15a740033efda515cf3d"}, - {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3af6e48651c4e0d2d166dc1b033b7042ea3f871504b6805ba5f4fe31581d8d38"}, - {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e67ba3c290821343c192f7eae1d8fd5999ca2dc99994114643e2f2d3e6138b15"}, - {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:02fbb9c288ae08bcb34fb41d516d5eeb0455ac35b5512d03181d755d80810059"}, - {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f56a6b404f74ab372da986d240e2e002769a7d7102cc73eb238a4f72eec5284e"}, - {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0a0461200769ab3b9ab7e513f6013b7a97fdeee41c29b9db343f3c5a8e2b9e61"}, - {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8633e471c6207a039eff6aa116e35f69f3156b3989ea3e2d755f7bc41754a4a7"}, - {file = "rpds_py-0.22.3-cp312-cp312-win32.whl", hash = "sha256:593eba61ba0c3baae5bc9be2f5232430453fb4432048de28399ca7376de9c627"}, - {file = "rpds_py-0.22.3-cp312-cp312-win_amd64.whl", hash = "sha256:d115bffdd417c6d806ea9069237a4ae02f513b778e3789a359bc5856e0404cc4"}, - {file = "rpds_py-0.22.3-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ea7433ce7e4bfc3a85654aeb6747babe3f66eaf9a1d0c1e7a4435bbdf27fea84"}, - {file = "rpds_py-0.22.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6dd9412824c4ce1aca56c47b0991e65bebb7ac3f4edccfd3f156150c96a7bf25"}, - {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20070c65396f7373f5df4005862fa162db5d25d56150bddd0b3e8214e8ef45b4"}, - {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0b09865a9abc0ddff4e50b5ef65467cd94176bf1e0004184eb915cbc10fc05c5"}, - {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3453e8d41fe5f17d1f8e9c383a7473cd46a63661628ec58e07777c2fff7196dc"}, - {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f5d36399a1b96e1a5fdc91e0522544580dbebeb1f77f27b2b0ab25559e103b8b"}, - {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:009de23c9c9ee54bf11303a966edf4d9087cd43a6003672e6aa7def643d06518"}, - {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1aef18820ef3e4587ebe8b3bc9ba6e55892a6d7b93bac6d29d9f631a3b4befbd"}, - {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f60bd8423be1d9d833f230fdbccf8f57af322d96bcad6599e5a771b151398eb2"}, - {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:62d9cfcf4948683a18a9aff0ab7e1474d407b7bab2ca03116109f8464698ab16"}, - {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9253fc214112405f0afa7db88739294295f0e08466987f1d70e29930262b4c8f"}, - {file = "rpds_py-0.22.3-cp313-cp313-win32.whl", hash = "sha256:fb0ba113b4983beac1a2eb16faffd76cb41e176bf58c4afe3e14b9c681f702de"}, - {file = "rpds_py-0.22.3-cp313-cp313-win_amd64.whl", hash = "sha256:c58e2339def52ef6b71b8f36d13c3688ea23fa093353f3a4fee2556e62086ec9"}, - {file = "rpds_py-0.22.3-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:f82a116a1d03628a8ace4859556fb39fd1424c933341a08ea3ed6de1edb0283b"}, - {file = "rpds_py-0.22.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3dfcbc95bd7992b16f3f7ba05af8a64ca694331bd24f9157b49dadeeb287493b"}, - {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59259dc58e57b10e7e18ce02c311804c10c5a793e6568f8af4dead03264584d1"}, - {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5725dd9cc02068996d4438d397e255dcb1df776b7ceea3b9cb972bdb11260a83"}, - {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99b37292234e61325e7a5bb9689e55e48c3f5f603af88b1642666277a81f1fbd"}, - {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:27b1d3b3915a99208fee9ab092b8184c420f2905b7d7feb4aeb5e4a9c509b8a1"}, - {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f612463ac081803f243ff13cccc648578e2279295048f2a8d5eb430af2bae6e3"}, - {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f73d3fef726b3243a811121de45193c0ca75f6407fe66f3f4e183c983573e130"}, - {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3f21f0495edea7fdbaaa87e633a8689cd285f8f4af5c869f27bc8074638ad69c"}, - {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:1e9663daaf7a63ceccbbb8e3808fe90415b0757e2abddbfc2e06c857bf8c5e2b"}, - {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a76e42402542b1fae59798fab64432b2d015ab9d0c8c47ba7addddbaf7952333"}, - {file = "rpds_py-0.22.3-cp313-cp313t-win32.whl", hash = "sha256:69803198097467ee7282750acb507fba35ca22cc3b85f16cf45fb01cb9097730"}, - {file = "rpds_py-0.22.3-cp313-cp313t-win_amd64.whl", hash = "sha256:f5cf2a0c2bdadf3791b5c205d55a37a54025c6e18a71c71f82bb536cf9a454bf"}, - {file = "rpds_py-0.22.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:378753b4a4de2a7b34063d6f95ae81bfa7b15f2c1a04a9518e8644e81807ebea"}, - {file = "rpds_py-0.22.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3445e07bf2e8ecfeef6ef67ac83de670358abf2996916039b16a218e3d95e97e"}, - {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b2513ba235829860b13faa931f3b6846548021846ac808455301c23a101689d"}, - {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eaf16ae9ae519a0e237a0f528fd9f0197b9bb70f40263ee57ae53c2b8d48aeb3"}, - {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:583f6a1993ca3369e0f80ba99d796d8e6b1a3a2a442dd4e1a79e652116413091"}, - {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4617e1915a539a0d9a9567795023de41a87106522ff83fbfaf1f6baf8e85437e"}, - {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c150c7a61ed4a4f4955a96626574e9baf1adf772c2fb61ef6a5027e52803543"}, - {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2fa4331c200c2521512595253f5bb70858b90f750d39b8cbfd67465f8d1b596d"}, - {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:214b7a953d73b5e87f0ebece4a32a5bd83c60a3ecc9d4ec8f1dca968a2d91e99"}, - {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:f47ad3d5f3258bd7058d2d506852217865afefe6153a36eb4b6928758041d831"}, - {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f276b245347e6e36526cbd4a266a417796fc531ddf391e43574cf6466c492520"}, - {file = "rpds_py-0.22.3-cp39-cp39-win32.whl", hash = "sha256:bbb232860e3d03d544bc03ac57855cd82ddf19c7a07651a7c0fdb95e9efea8b9"}, - {file = "rpds_py-0.22.3-cp39-cp39-win_amd64.whl", hash = "sha256:cfbc454a2880389dbb9b5b398e50d439e2e58669160f27b60e5eca11f68ae17c"}, - {file = "rpds_py-0.22.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:d48424e39c2611ee1b84ad0f44fb3b2b53d473e65de061e3f460fc0be5f1939d"}, - {file = "rpds_py-0.22.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:24e8abb5878e250f2eb0d7859a8e561846f98910326d06c0d51381fed59357bd"}, - {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b232061ca880db21fa14defe219840ad9b74b6158adb52ddf0e87bead9e8493"}, - {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac0a03221cdb5058ce0167ecc92a8c89e8d0decdc9e99a2ec23380793c4dcb96"}, - {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb0c341fa71df5a4595f9501df4ac5abfb5a09580081dffbd1ddd4654e6e9123"}, - {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bf9db5488121b596dbfc6718c76092fda77b703c1f7533a226a5a9f65248f8ad"}, - {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b8db6b5b2d4491ad5b6bdc2bc7c017eec108acbf4e6785f42a9eb0ba234f4c9"}, - {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b3d504047aba448d70cf6fa22e06cb09f7cbd761939fdd47604f5e007675c24e"}, - {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:e61b02c3f7a1e0b75e20c3978f7135fd13cb6cf551bf4a6d29b999a88830a338"}, - {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:e35ba67d65d49080e8e5a1dd40101fccdd9798adb9b050ff670b7d74fa41c566"}, - {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:26fd7cac7dd51011a245f29a2cc6489c4608b5a8ce8d75661bb4a1066c52dfbe"}, - {file = "rpds_py-0.22.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:177c7c0fce2855833819c98e43c262007f42ce86651ffbb84f37883308cb0e7d"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bb47271f60660803ad11f4c61b42242b8c1312a31c98c578f79ef9387bbde21c"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:70fb28128acbfd264eda9bf47015537ba3fe86e40d046eb2963d75024be4d055"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44d61b4b7d0c2c9ac019c314e52d7cbda0ae31078aabd0f22e583af3e0d79723"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f0e260eaf54380380ac3808aa4ebe2d8ca28b9087cf411649f96bad6900c728"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b25bc607423935079e05619d7de556c91fb6adeae9d5f80868dde3468657994b"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fb6116dfb8d1925cbdb52595560584db42a7f664617a1f7d7f6e32f138cdf37d"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a63cbdd98acef6570c62b92a1e43266f9e8b21e699c363c0fef13bd530799c11"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2b8f60e1b739a74bab7e01fcbe3dddd4657ec685caa04681df9d562ef15b625f"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:2e8b55d8517a2fda8d95cb45d62a5a8bbf9dd0ad39c5b25c8833efea07b880ca"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:2de29005e11637e7a2361fa151f780ff8eb2543a0da1413bb951e9f14b699ef3"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:666ecce376999bf619756a24ce15bb14c5bfaf04bf00abc7e663ce17c3f34fe7"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:5246b14ca64a8675e0a7161f7af68fe3e910e6b90542b4bfb5439ba752191df6"}, - {file = "rpds_py-0.22.3.tar.gz", hash = "sha256:e32fee8ab45d3c2db6da19a5323bc3362237c8b653c70194414b892fd06a080d"}, +groups = ["notebook"] +files = [ + {file = "rpds_py-0.23.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2a54027554ce9b129fc3d633c92fa33b30de9f08bc61b32c053dc9b537266fed"}, + {file = "rpds_py-0.23.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b5ef909a37e9738d146519657a1aab4584018746a18f71c692f2f22168ece40c"}, + {file = "rpds_py-0.23.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ee9d6f0b38efb22ad94c3b68ffebe4c47865cdf4b17f6806d6c674e1feb4246"}, + {file = "rpds_py-0.23.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f7356a6da0562190558c4fcc14f0281db191cdf4cb96e7604c06acfcee96df15"}, + {file = "rpds_py-0.23.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9441af1d25aed96901f97ad83d5c3e35e6cd21a25ca5e4916c82d7dd0490a4fa"}, + {file = "rpds_py-0.23.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d8abf7896a91fb97e7977d1aadfcc2c80415d6dc2f1d0fca5b8d0df247248f3"}, + {file = "rpds_py-0.23.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b08027489ba8fedde72ddd233a5ea411b85a6ed78175f40285bd401bde7466d"}, + {file = "rpds_py-0.23.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fee513135b5a58f3bb6d89e48326cd5aa308e4bcdf2f7d59f67c861ada482bf8"}, + {file = "rpds_py-0.23.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:35d5631ce0af26318dba0ae0ac941c534453e42f569011585cb323b7774502a5"}, + {file = "rpds_py-0.23.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:a20cb698c4a59c534c6701b1c24a968ff2768b18ea2991f886bd8985ce17a89f"}, + {file = "rpds_py-0.23.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e9c206a1abc27e0588cf8b7c8246e51f1a16a103734f7750830a1ccb63f557a"}, + {file = "rpds_py-0.23.1-cp310-cp310-win32.whl", hash = "sha256:d9f75a06ecc68f159d5d7603b734e1ff6daa9497a929150f794013aa9f6e3f12"}, + {file = "rpds_py-0.23.1-cp310-cp310-win_amd64.whl", hash = "sha256:f35eff113ad430b5272bbfc18ba111c66ff525828f24898b4e146eb479a2cdda"}, + {file = "rpds_py-0.23.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:b79f5ced71efd70414a9a80bbbfaa7160da307723166f09b69773153bf17c590"}, + {file = "rpds_py-0.23.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c9e799dac1ffbe7b10c1fd42fe4cd51371a549c6e108249bde9cd1200e8f59b4"}, + {file = "rpds_py-0.23.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:721f9c4011b443b6e84505fc00cc7aadc9d1743f1c988e4c89353e19c4a968ee"}, + {file = "rpds_py-0.23.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f88626e3f5e57432e6191cd0c5d6d6b319b635e70b40be2ffba713053e5147dd"}, + {file = "rpds_py-0.23.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:285019078537949cecd0190f3690a0b0125ff743d6a53dfeb7a4e6787af154f5"}, + {file = "rpds_py-0.23.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b92f5654157de1379c509b15acec9d12ecf6e3bc1996571b6cb82a4302060447"}, + {file = "rpds_py-0.23.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e768267cbe051dd8d1c5305ba690bb153204a09bf2e3de3ae530de955f5b5580"}, + {file = "rpds_py-0.23.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c5334a71f7dc1160382d45997e29f2637c02f8a26af41073189d79b95d3321f1"}, + {file = "rpds_py-0.23.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d6adb81564af0cd428910f83fa7da46ce9ad47c56c0b22b50872bc4515d91966"}, + {file = "rpds_py-0.23.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:cafa48f2133d4daa028473ede7d81cd1b9f9e6925e9e4003ebdf77010ee02f35"}, + {file = "rpds_py-0.23.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0fced9fd4a07a1ded1bac7e961ddd9753dd5d8b755ba8e05acba54a21f5f1522"}, + {file = "rpds_py-0.23.1-cp311-cp311-win32.whl", hash = "sha256:243241c95174b5fb7204c04595852fe3943cc41f47aa14c3828bc18cd9d3b2d6"}, + {file = "rpds_py-0.23.1-cp311-cp311-win_amd64.whl", hash = "sha256:11dd60b2ffddba85715d8a66bb39b95ddbe389ad2cfcf42c833f1bcde0878eaf"}, + {file = "rpds_py-0.23.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:3902df19540e9af4cc0c3ae75974c65d2c156b9257e91f5101a51f99136d834c"}, + {file = "rpds_py-0.23.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:66f8d2a17e5838dd6fb9be6baaba8e75ae2f5fa6b6b755d597184bfcd3cb0eba"}, + {file = "rpds_py-0.23.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:112b8774b0b4ee22368fec42749b94366bd9b536f8f74c3d4175d4395f5cbd31"}, + {file = "rpds_py-0.23.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e0df046f2266e8586cf09d00588302a32923eb6386ced0ca5c9deade6af9a149"}, + {file = "rpds_py-0.23.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0f3288930b947cbebe767f84cf618d2cbe0b13be476e749da0e6a009f986248c"}, + {file = "rpds_py-0.23.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ce473a2351c018b06dd8d30d5da8ab5a0831056cc53b2006e2a8028172c37ce5"}, + {file = "rpds_py-0.23.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d550d7e9e7d8676b183b37d65b5cd8de13676a738973d330b59dc8312df9c5dc"}, + {file = "rpds_py-0.23.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e14f86b871ea74c3fddc9a40e947d6a5d09def5adc2076ee61fb910a9014fb35"}, + {file = "rpds_py-0.23.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1bf5be5ba34e19be579ae873da515a2836a2166d8d7ee43be6ff909eda42b72b"}, + {file = "rpds_py-0.23.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:d7031d493c4465dbc8d40bd6cafefef4bd472b17db0ab94c53e7909ee781b9ef"}, + {file = "rpds_py-0.23.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:55ff4151cfd4bc635e51cfb1c59ac9f7196b256b12e3a57deb9e5742e65941ad"}, + {file = "rpds_py-0.23.1-cp312-cp312-win32.whl", hash = "sha256:a9d3b728f5a5873d84cba997b9d617c6090ca5721caaa691f3b1a78c60adc057"}, + {file = "rpds_py-0.23.1-cp312-cp312-win_amd64.whl", hash = "sha256:b03a8d50b137ee758e4c73638b10747b7c39988eb8e6cd11abb7084266455165"}, + {file = "rpds_py-0.23.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:4caafd1a22e5eaa3732acb7672a497123354bef79a9d7ceed43387d25025e935"}, + {file = "rpds_py-0.23.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:178f8a60fc24511c0eb756af741c476b87b610dba83270fce1e5a430204566a4"}, + {file = "rpds_py-0.23.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c632419c3870507ca20a37c8f8f5352317aca097639e524ad129f58c125c61c6"}, + {file = "rpds_py-0.23.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:698a79d295626ee292d1730bc2ef6e70a3ab135b1d79ada8fde3ed0047b65a10"}, + {file = "rpds_py-0.23.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:271fa2184cf28bdded86bb6217c8e08d3a169fe0bbe9be5e8d96e8476b707122"}, + {file = "rpds_py-0.23.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b91cceb5add79ee563bd1f70b30896bd63bc5f78a11c1f00a1e931729ca4f1f4"}, + {file = "rpds_py-0.23.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a6cb95074777f1ecda2ca4fa7717caa9ee6e534f42b7575a8f0d4cb0c24013"}, + {file = "rpds_py-0.23.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:50fb62f8d8364978478b12d5f03bf028c6bc2af04082479299139dc26edf4c64"}, + {file = "rpds_py-0.23.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c8f7e90b948dc9dcfff8003f1ea3af08b29c062f681c05fd798e36daa3f7e3e8"}, + {file = "rpds_py-0.23.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:5b98b6c953e5c2bda51ab4d5b4f172617d462eebc7f4bfdc7c7e6b423f6da957"}, + {file = "rpds_py-0.23.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2893d778d4671ee627bac4037a075168b2673c57186fb1a57e993465dbd79a93"}, + {file = "rpds_py-0.23.1-cp313-cp313-win32.whl", hash = "sha256:2cfa07c346a7ad07019c33fb9a63cf3acb1f5363c33bc73014e20d9fe8b01cdd"}, + {file = "rpds_py-0.23.1-cp313-cp313-win_amd64.whl", hash = "sha256:3aaf141d39f45322e44fc2c742e4b8b4098ead5317e5f884770c8df0c332da70"}, + {file = "rpds_py-0.23.1-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:759462b2d0aa5a04be5b3e37fb8183615f47014ae6b116e17036b131985cb731"}, + {file = "rpds_py-0.23.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3e9212f52074fc9d72cf242a84063787ab8e21e0950d4d6709886fb62bcb91d5"}, + {file = "rpds_py-0.23.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9e9f3a3ac919406bc0414bbbd76c6af99253c507150191ea79fab42fdb35982a"}, + {file = "rpds_py-0.23.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c04ca91dda8a61584165825907f5c967ca09e9c65fe8966ee753a3f2b019fe1e"}, + {file = "rpds_py-0.23.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4ab923167cfd945abb9b51a407407cf19f5bee35001221f2911dc85ffd35ff4f"}, + {file = "rpds_py-0.23.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ed6f011bedca8585787e5082cce081bac3d30f54520097b2411351b3574e1219"}, + {file = "rpds_py-0.23.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6959bb9928c5c999aba4a3f5a6799d571ddc2c59ff49917ecf55be2bbb4e3722"}, + {file = "rpds_py-0.23.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1ed7de3c86721b4e83ac440751329ec6a1102229aa18163f84c75b06b525ad7e"}, + {file = "rpds_py-0.23.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:5fb89edee2fa237584e532fbf78f0ddd1e49a47c7c8cfa153ab4849dc72a35e6"}, + {file = "rpds_py-0.23.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7e5413d2e2d86025e73f05510ad23dad5950ab8417b7fc6beaad99be8077138b"}, + {file = "rpds_py-0.23.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:d31ed4987d72aabdf521eddfb6a72988703c091cfc0064330b9e5f8d6a042ff5"}, + {file = "rpds_py-0.23.1-cp313-cp313t-win32.whl", hash = "sha256:f3429fb8e15b20961efca8c8b21432623d85db2228cc73fe22756c6637aa39e7"}, + {file = "rpds_py-0.23.1-cp313-cp313t-win_amd64.whl", hash = "sha256:d6f6512a90bd5cd9030a6237f5346f046c6f0e40af98657568fa45695d4de59d"}, + {file = "rpds_py-0.23.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:09cd7dbcb673eb60518231e02874df66ec1296c01a4fcd733875755c02014b19"}, + {file = "rpds_py-0.23.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c6760211eee3a76316cf328f5a8bd695b47b1626d21c8a27fb3b2473a884d597"}, + {file = "rpds_py-0.23.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:72e680c1518733b73c994361e4b06441b92e973ef7d9449feec72e8ee4f713da"}, + {file = "rpds_py-0.23.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ae28144c1daa61366205d32abd8c90372790ff79fc60c1a8ad7fd3c8553a600e"}, + {file = "rpds_py-0.23.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c698d123ce5d8f2d0cd17f73336615f6a2e3bdcedac07a1291bb4d8e7d82a05a"}, + {file = "rpds_py-0.23.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98b257ae1e83f81fb947a363a274c4eb66640212516becaff7bef09a5dceacaa"}, + {file = "rpds_py-0.23.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c9ff044eb07c8468594d12602291c635da292308c8c619244e30698e7fc455a"}, + {file = "rpds_py-0.23.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7938c7b0599a05246d704b3f5e01be91a93b411d0d6cc62275f025293b8a11ce"}, + {file = "rpds_py-0.23.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:e9cb79ecedfc156c0692257ac7ed415243b6c35dd969baa461a6888fc79f2f07"}, + {file = "rpds_py-0.23.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:7b77e07233925bd33fc0022b8537774423e4c6680b6436316c5075e79b6384f4"}, + {file = "rpds_py-0.23.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a970bfaf130c29a679b1d0a6e0f867483cea455ab1535fb427566a475078f27f"}, + {file = "rpds_py-0.23.1-cp39-cp39-win32.whl", hash = "sha256:4233df01a250b3984465faed12ad472f035b7cd5240ea3f7c76b7a7016084495"}, + {file = "rpds_py-0.23.1-cp39-cp39-win_amd64.whl", hash = "sha256:c617d7453a80e29d9973b926983b1e700a9377dbe021faa36041c78537d7b08c"}, + {file = "rpds_py-0.23.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c1f8afa346ccd59e4e5630d5abb67aba6a9812fddf764fd7eb11f382a345f8cc"}, + {file = "rpds_py-0.23.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:fad784a31869747df4ac968a351e070c06ca377549e4ace94775aaa3ab33ee06"}, + {file = "rpds_py-0.23.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5a96fcac2f18e5a0a23a75cd27ce2656c66c11c127b0318e508aab436b77428"}, + {file = "rpds_py-0.23.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3e77febf227a1dc3220159355dba68faa13f8dca9335d97504abf428469fb18b"}, + {file = "rpds_py-0.23.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:26bb3e8de93443d55e2e748e9fd87deb5f8075ca7bc0502cfc8be8687d69a2ec"}, + {file = "rpds_py-0.23.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:db7707dde9143a67b8812c7e66aeb2d843fe33cc8e374170f4d2c50bd8f2472d"}, + {file = "rpds_py-0.23.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1eedaaccc9bb66581d4ae7c50e15856e335e57ef2734dbc5fd8ba3e2a4ab3cb6"}, + {file = "rpds_py-0.23.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28358c54fffadf0ae893f6c1050e8f8853e45df22483b7fff2f6ab6152f5d8bf"}, + {file = "rpds_py-0.23.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:633462ef7e61d839171bf206551d5ab42b30b71cac8f10a64a662536e057fdef"}, + {file = "rpds_py-0.23.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:a98f510d86f689fcb486dc59e6e363af04151e5260ad1bdddb5625c10f1e95f8"}, + {file = "rpds_py-0.23.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:e0397dd0b3955c61ef9b22838144aa4bef6f0796ba5cc8edfc64d468b93798b4"}, + {file = "rpds_py-0.23.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:75307599f0d25bf6937248e5ac4e3bde5ea72ae6618623b86146ccc7845ed00b"}, + {file = "rpds_py-0.23.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3614d280bf7aab0d3721b5ce0e73434acb90a2c993121b6e81a1c15c665298ac"}, + {file = "rpds_py-0.23.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:e5963ea87f88bddf7edd59644a35a0feecf75f8985430124c253612d4f7d27ae"}, + {file = "rpds_py-0.23.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad76f44f70aac3a54ceb1813ca630c53415da3a24fd93c570b2dfb4856591017"}, + {file = "rpds_py-0.23.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2c6ae11e6e93728d86aafc51ced98b1658a0080a7dd9417d24bfb955bb09c3c2"}, + {file = "rpds_py-0.23.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc869af5cba24d45fb0399b0cfdbcefcf6910bf4dee5d74036a57cf5264b3ff4"}, + {file = "rpds_py-0.23.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c76b32eb2ab650a29e423525e84eb197c45504b1c1e6e17b6cc91fcfeb1a4b1d"}, + {file = "rpds_py-0.23.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4263320ed887ed843f85beba67f8b2d1483b5947f2dc73a8b068924558bfeace"}, + {file = "rpds_py-0.23.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7f9682a8f71acdf59fd554b82b1c12f517118ee72c0f3944eda461606dfe7eb9"}, + {file = "rpds_py-0.23.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:754fba3084b70162a6b91efceee8a3f06b19e43dac3f71841662053c0584209a"}, + {file = "rpds_py-0.23.1-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:a1c66e71ecfd2a4acf0e4bd75e7a3605afa8f9b28a3b497e4ba962719df2be57"}, + {file = "rpds_py-0.23.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:8d67beb6002441faef8251c45e24994de32c4c8686f7356a1f601ad7c466f7c3"}, + {file = "rpds_py-0.23.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a1e17d8dc8e57d8e0fd21f8f0f0a5211b3fa258b2e444c2053471ef93fe25a00"}, + {file = "rpds_py-0.23.1.tar.gz", hash = "sha256:7f3240dcfa14d198dba24b8b9cb3b108c06b68d45b7babd9eefc1038fdf7e707"}, ] [[package]] @@ -3899,7 +3899,7 @@ version = "1.8.3" description = "Send file to trash natively under Mac OS X, Windows and Linux" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "Send2Trash-1.8.3-py3-none-any.whl", hash = "sha256:0c31227e0bd08961c7665474a3d1ef7193929fedda4233843689baa056be46c9"}, {file = "Send2Trash-1.8.3.tar.gz", hash = "sha256:b18e7a3966d99871aefeb00cfbcfdced55ce4871194810fc71f4aa484b953abf"}, @@ -3912,14 +3912,14 @@ win32 = ["pywin32"] [[package]] name = "setuptools" -version = "75.8.0" +version = "75.8.1" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.9" -groups = ["dev"] +groups = ["notebook"] files = [ - {file = "setuptools-75.8.0-py3-none-any.whl", hash = "sha256:e3982f444617239225d675215d51f6ba05f845d4eec313da4418fdbb56fb27e3"}, - {file = "setuptools-75.8.0.tar.gz", hash = "sha256:c5afc8f407c626b8313a86e10311dd3f661c6cd9c09d4bf8c15c0e11f9f2b0e6"}, + {file = "setuptools-75.8.1-py3-none-any.whl", hash = "sha256:3bc32c0b84c643299ca94e77f834730f126efd621de0cc1de64119e0e17dab1f"}, + {file = "setuptools-75.8.1.tar.gz", hash = "sha256:65fb779a8f28895242923582eadca2337285f0891c2c9e160754df917c3d2530"}, ] [package.extras] @@ -3949,7 +3949,7 @@ version = "1.17.0" description = "Python 2 and 3 compatibility utilities" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -groups = ["main", "dev", "docs"] +groups = ["main", "docs", "notebook"] files = [ {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, @@ -3961,7 +3961,7 @@ version = "1.3.1" description = "Sniff out which async library your code is running under" optional = false python-versions = ">=3.7" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, @@ -3973,7 +3973,7 @@ version = "2.6" description = "A modern CSS selector implementation for Beautiful Soup." optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9"}, {file = "soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb"}, @@ -3985,7 +3985,7 @@ version = "0.6.3" description = "Extract data from python stack frames and tracebacks for informative displays" optional = false python-versions = "*" -groups = ["main", "dev"] +groups = ["main", "ipython", "notebook"] files = [ {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"}, {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"}, @@ -4005,7 +4005,7 @@ version = "0.18.1" description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0"}, {file = "terminado-0.18.1.tar.gz", hash = "sha256:de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e"}, @@ -4027,7 +4027,7 @@ version = "1.4.0" description = "A tiny CSS parser" optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "tinycss2-1.4.0-py3-none-any.whl", hash = "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289"}, {file = "tinycss2-1.4.0.tar.gz", hash = "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7"}, @@ -4046,8 +4046,7 @@ version = "2.2.1" description = "A lil' TOML parser" optional = false python-versions = ">=3.8" -groups = ["dev"] -markers = "python_full_version <= \"3.11.0a6\"" +groups = ["dev", "notebook"] files = [ {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, @@ -4082,6 +4081,7 @@ files = [ {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, ] +markers = {dev = "python_full_version <= \"3.11.0a6\"", notebook = "python_version < \"3.11\""} [[package]] name = "tornado" @@ -4089,7 +4089,7 @@ version = "6.4.2" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e828cce1123e9e44ae2a50a9de3055497ab1d0aeb440c5ac23064d9e44880da1"}, {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:072ce12ada169c5b00b7d92a99ba089447ccc993ea2143c9ede887e0937aa803"}, @@ -4138,7 +4138,7 @@ version = "5.14.3" description = "Traitlets Python configuration system" optional = false python-versions = ">=3.8" -groups = ["main", "dev"] +groups = ["main", "ipython", "notebook"] files = [ {file = "traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"}, {file = "traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7"}, @@ -4172,7 +4172,7 @@ version = "2.9.0.20241206" description = "Typing stubs for python-dateutil" optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "types_python_dateutil-2.9.0.20241206-py3-none-any.whl", hash = "sha256:e248a4bc70a486d3e3ec84d0dc30eec3a5f979d6e7ee4123ae043eedbb987f53"}, {file = "types_python_dateutil-2.9.0.20241206.tar.gz", hash = "sha256:18f493414c26ffba692a72369fea7a154c502646301ebfe3d56a04b3767284cb"}, @@ -4193,13 +4193,25 @@ files = [ [package.dependencies] urllib3 = ">=2" +[[package]] +name = "types-toml" +version = "0.10.8.20240310" +description = "Typing stubs for toml" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +files = [ + {file = "types-toml-0.10.8.20240310.tar.gz", hash = "sha256:3d41501302972436a6b8b239c850b26689657e25281b48ff0ec06345b8830331"}, + {file = "types_toml-0.10.8.20240310-py3-none-any.whl", hash = "sha256:627b47775d25fa29977d9c70dc0cbab3f314f32c8d8d0c012f2ef5de7aaec05d"}, +] + [[package]] name = "typing-extensions" version = "4.12.2" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" -groups = ["main", "dev"] +groups = ["main", "dev", "ipython", "notebook"] files = [ {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, @@ -4211,7 +4223,7 @@ version = "1.3.0" description = "RFC 6570 URI Template Processor" optional = false python-versions = ">=3.7" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7"}, {file = "uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363"}, @@ -4226,7 +4238,7 @@ version = "2.3.0" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" -groups = ["main", "dev", "docs"] +groups = ["main", "dev", "docs", "notebook"] files = [ {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, @@ -4350,7 +4362,7 @@ version = "0.2.13" description = "Measures the displayed width of unicode strings in a terminal" optional = false python-versions = "*" -groups = ["main", "dev"] +groups = ["main", "ipython", "notebook"] files = [ {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, @@ -4362,7 +4374,7 @@ version = "24.11.1" description = "A library for working with the color formats defined by HTML and CSS." optional = false python-versions = ">=3.9" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "webcolors-24.11.1-py3-none-any.whl", hash = "sha256:515291393b4cdf0eb19c155749a096f779f7d909f7cceea072791cb9095b92e9"}, {file = "webcolors-24.11.1.tar.gz", hash = "sha256:ecb3d768f32202af770477b8b65f318fa4f566c22948673a977b00d589dd80f6"}, @@ -4374,7 +4386,7 @@ version = "0.5.1" description = "Character encoding aliases for legacy web content" optional = false python-versions = "*" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, @@ -4386,7 +4398,7 @@ version = "1.8.0" description = "WebSocket client for Python with low level API options" optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["notebook"] files = [ {file = "websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526"}, {file = "websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da"}, @@ -4422,4 +4434,4 @@ jupyter = ["ipytree (>=0.2.2)", "ipywidgets (>=8.0.0)", "notebook"] [metadata] lock-version = "2.1" python-versions = ">=3.10,<4.0" -content-hash = "85cd739977f51e05bd43544fc600e79bd843de691c68a5b24cfbb2073d324cda" +content-hash = "945aad33eacc7baf59fe8e17d4dd4de2ddcd7a85b5a15285743a3b5139297627" diff --git a/pyproject.toml b/pyproject.toml index 2e5cfa3..c21cc59 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,8 +1,11 @@ [tool.poetry] name = "pyvcell" -version = "0.1.0" +version = "0.1.1" description = "This is the python wrapper for vcell modeling and simulation" -authors = ["Jim Schaff "] +authors = [ + "Jim Schaff ", + "Alexander Patrie " +] repository = "https://github.com/virtualcell/pyvcell" documentation = "https://virtualcell.github.io/pyvcell/" readme = "README.md" @@ -11,6 +14,7 @@ packages = [ {include = "tests"}, ] + [tool.poetry.dependencies] python = ">=3.10,<4.0" numexpr = "^2.10.0" @@ -31,7 +35,8 @@ python-dateutil = "^2.9.0.post0" pyvista = "^0.44.2" python-libsbml = "^5.20.4" matplotlib = "^3.10.0" -ipython = "^8.32.0" +ipython = { version = "*", optional = true } + [tool.poetry.group.dev.dependencies] pytest = "^7.2.0" @@ -41,27 +46,40 @@ mypy = "^1.5.1" pre-commit = "^3.8.0" tox = "^4.11.1" types-requests = "^2.32.0.20241016" -notebook = "^7.3.2" +types-toml = "^0.10.8.20240310" + [tool.poetry.group.docs.dependencies] mkdocs = "^1.6.1" mkdocs-material = "^9.5.50" -mkdocstrings = {extras = ["python"], version = "^0.27.0"} +mkdocstrings = { extras = ["python"], version = "^0.27.0" } griffe = "^1.5.5" + +[tool.poetry.group.ipython.dependencies] +ipython = "^8.32.0" + + +[tool.poetry.group.notebook.dependencies] +ipython = "^8.32.0" +notebook = "^7.3.2" + [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" + [tool.mypy] files = ["pyvcell"] strict = true + [[tool.mypy.overrides]] module = [ "pyvcell.api.*" ] disable_error_code = ["import-not-found", "import-untyped", "no-untyped-def", "no-untyped-call", "attr-defined", "type-arg", "union-attr", "no-any-return", "return"] + [[tool.mypy.overrides]] module = "zarr" ignore_missing_imports = true @@ -71,9 +89,11 @@ disable_error_code = [ "no-any-return", "return" ] + [tool.pytest.ini_options] testpaths = ["tests"] + [tool.ruff] target-version = "py39" line-length = 120 @@ -128,9 +148,11 @@ lint.ignore = [ [tool.ruff.format] preview = true + [tool.coverage.report] skip_empty = true + [tool.coverage.run] branch = true source = ["pyvcell"] @@ -138,3 +160,9 @@ source = ["pyvcell"] [tool.ruff.per-file-ignores] "tests/*" = ["S101"] + + +[tool.deptry.per_rule_ignores] +DEP004 = [ + "ipython" +] diff --git a/pyvcell/data_model/result.py b/pyvcell/data_model/result.py index 827235a..96f8719 100644 --- a/pyvcell/data_model/result.py +++ b/pyvcell/data_model/result.py @@ -7,7 +7,14 @@ from pyvcell.data_model.plotter import Plotter from pyvcell.data_model.var_types import NDArray2D from pyvcell.data_model.vtk_data import VtkData -from pyvcell.data_model.zarr_types import Channel +from pyvcell.data_model.zarr_types import ( + AxisMetadata, + Channel, + ChannelMetadata, + MeshMetadata, + MeshVolumeRegion, + ZarrMetadata, +) from pyvcell.simdata.mesh import CartesianMesh from pyvcell.simdata.postprocessing import PostProcessing from pyvcell.simdata.simdata_models import DataFunctions, PdeDataSet @@ -54,10 +61,6 @@ def __init__( pde_dataset=self.pde_dataset, data_functions=self.data_functions, mesh=self.mesh, zarr_dir=self.zarr_dir ) - @property - def zarr_dataset(self) -> Union[zarr.Group, zarr.Array]: - return zarr.open(str(self.zarr_dir), mode="r") - @property def post_processing(self) -> PostProcessing: post_processing = PostProcessing( @@ -71,6 +74,10 @@ def concentrations(self) -> NDArray2D: data: list[list[float]] = [c.mean_values for c in self.channels if c.index > 0 and c.mean_values is not None] return np.array(dtype=np.float64, object=data) + @property + def zarr_dataset(self) -> Union[zarr.Group, zarr.Array]: + return zarr.open(str(self.zarr_dir), mode="r") + @property def channels(self) -> list[Channel]: return [ @@ -79,6 +86,24 @@ def channels(self) -> list[Channel]: if channel["index"] > 4 ] + @property + def metadata(self) -> ZarrMetadata: + md = self.zarr_dataset.attrs.asdict()["metadata"] + axes = [AxisMetadata(**ax) for ax in md.get("axes")] + channels = [ChannelMetadata(**channel) for channel in md.get("channels") if channel["index"] > 4] + times = md.get("times") + + mesh_meta = md.get("mesh") + regions = [MeshVolumeRegion(**region) for region in mesh_meta.get("volume_regions")] + mesh = MeshMetadata( + size=mesh_meta.get("size"), + extent=mesh_meta.get("extent"), + origin=mesh_meta.get("origin"), + volume_regions=regions, + ) + + return ZarrMetadata(axes=axes, channels=channels, times=times, mesh=mesh) + @property def num_timepoints(self) -> int: shape: tuple[int] = self.zarr_dataset.shape @@ -117,7 +142,7 @@ def vtk_data(self) -> VtkData: def get_channel_ids(self) -> list[str]: ids = [] - for _i, channel in enumerate(self.channels): + for _i, channel in enumerate(self.metadata.channels): name = channel.domain_name ids.append(name) return ids @@ -137,163 +162,3 @@ def slice_dataset(self, time_index: int, channel_index: int, z_index: int) -> ND return slice_dataset( zarr_dataset=self.zarr_dataset, time_index=time_index, channel_index=channel_index, z_index=z_index ) - - -# def plot_concentrations(self) -> None: -# t = self.get_time_axis() -# -# fig, ax = plt.subplots() -# ax.plot(t, self.concentrations.T) -# ax.set(xlabel="time (s)", ylabel="concentration", title="Concentration over time") -# -# y_labels = [c.label for c in self.channels if c.index > 0] -# ax.legend(y_labels) -# ax.grid() -# -# def plot_slice_2d(self, time_index: int, channel_index: int, z_index: int) -> None: -# data_slice = self.slice_dataset(time_index, channel_index, z_index) -# -# t = self.zarr_dataset.attrs.asdict()["metadata"]["times"][time_index] -# channel_label = self.channels[channel_index].label -# channel_domain = self.channels[channel_index].domain_name -# z_coord = self.mesh.origin[2] + z_index * self.mesh.extent[2] / (self.mesh.size[2] - 1) -# title = f"{channel_label} (in {channel_domain}) at t={t}, slice z={z_coord}" -# -# # Display the slice as an image -# plt.imshow(data_slice) -# plt.title(title) -# return plt.show() -# -# def plot_slice_3d(self, time_index: int, channel_index: int) -> None: -# # Select a 3D volume for a single time point and channel, shape is (z, y, x) -# volume = self.zarr_dataset[time_index, channel_index, :, :, :] -# -# # Create a figure for 3D plotting -# fig = plt.figure() -# ax = fig.add_subplot(111, projection="3d") -# -# # Define a mask to display the volume (use 'region_mask' channel) -# mask = np.copy(self.zarr_dataset[3, 0, :, :, :]) -# z, y, x = np.where(mask == 1) -# -# # Get the intensity values for these points -# intensities = volume[z, y, x] -# -# # Create a 3D scatter plot -# scatter = ax.scatter(x, y, z, c=intensities, cmap="viridis") -# -# # Add a color bar to represent intensities -# fig.colorbar(scatter, ax=ax, label="Intensity") -# -# # Set labels for axes -# ax.set_xlabel("X") -# ax.set_ylabel("Y") -# ax.set_zlabel("Z") # type: ignore[attr-defined] -# -# # Show the plot -# return plt.show() -# -# def plot_image(self, image_index: int, time_index: int) -> None: -# # display image dataset "fluor" at time index 4 as an image -# img_metadata = self.post_processing.image_metadata[image_index] -# image_data: np.typing.NDArray[np.float64] = self.post_processing.read_image_data( -# image_metadata=img_metadata, time_index=time_index -# ) -# plt.imshow(image_data) -# plt.title(f"post processing image data '{img_metadata.name}' at time index {time_index}") -# return plt.show() -# -# def _get_mesh(self) -> CartesianMesh: -# mesh = CartesianMesh(mesh_file=self.solver_output_dir / f"SimID_{self.sim_id}_{self.job_id}_.mesh") -# mesh.read() -# return mesh -# -# def get_3d_slice_animation(self, channel_index: int, interval: int = 200) -> animation.FuncAnimation: -# """ -# Animate the 3D scatter plot over time. -# -# Parameters: -# channel_index (int): The index of the channel to visualize. -# interval (int): Time interval between frames in milliseconds. -# """ -# # Extract metadata and the number of time points -# channel_list = self.channels -# channel_domain = channel_list[channel_index - 5].domain_name -# num_timepoints = self.num_timepoints -# -# # Create a figure for 3D plotting -# fig = plt.figure() -# ax = fig.add_subplot(111, projection="3d") -# -# # Set labels for axes -# ax.set_xlabel("X") -# ax.set_ylabel("Y") -# ax.set_zlabel("Z") # type: ignore[attr-defined] -# sc = None -# -# @no_type_check -# def update(frame: int): -# """Update function for animation""" -# # Define a mask to display the volume (use 'region_mask' channel) -# mask = np.copy(self.zarr_dataset[frame, 0, :, :, :]) -# z, y, x = np.where(mask == 1) -# -# volume = self.zarr_dataset[frame, channel_index, :, :, :] -# intensities = volume[z, y, x] -# -# # Initialize the scatter plot with empty data -# scatter = ax.scatter(x, y, z, c=intensities, cmap="viridis") -# ax.set_title(f"Channel: {channel_domain}, Time Index: {frame}") -# return (scatter,) -# -# # Create the animation -# fig.colorbar(sc, ax=ax, label="Intensity") # type: ignore[arg-type] -# ani = animation.FuncAnimation(fig, update, num_timepoints, interval=interval, blit=False) -# -# return ani -# -# @no_type_check -# def render_animation(self, ani: animation.FuncAnimation) -> HTML: -# return HTML(ani.to_jshtml()) -# -# def animate_channel_3d(self, channel_index: int) -> Any: -# ani = self.get_3d_slice_animation(channel_index) -# return self.render_animation(ani) -# -# def get_image_animation(self, image_index: int, interval: int = 200) -> animation.FuncAnimation: -# """ -# Animate the fluorescence image over time. -# -# Parameters: -# image_index (int): The index of the image to visualize. -# interval (int): Time interval between frames in milliseconds. -# """ -# post_processing = self.post_processing -# -# # Create figure and axis for animation -# fig = plt.figure() -# ax = fig.add_subplot() -# -# # Set title -# title = ax.set_title("Post-processing image data 'fluor' at time index 0") -# -# @no_type_check -# def update(frame: int): -# """Update function for animation""" -# img_metadata = post_processing.image_metadata[image_index] -# image_data = post_processing.read_image_data(image_metadata=img_metadata, time_index=frame) -# img_plot = ax.imshow(image_data) -# # img_plot.set_data(image_data) # Update image -# title.set_text(f"Post-processing image data 'fluor' at time index {frame}") -# plt.show() -# return (img_plot,) -# -# # Create the animation -# ani = animation.FuncAnimation(fig, update, frames=self.num_timepoints, interval=interval, blit=False) -# -# return ani -# -# @no_type_check -# def animate_image(self, image_index: int) -> HTML: -# ani = self.get_image_animation(image_index) -# return self.render_animation(ani) diff --git a/pyvcell/data_model/simulation.py b/pyvcell/data_model/simulation.py index b1e7929..83fefa4 100644 --- a/pyvcell/data_model/simulation.py +++ b/pyvcell/data_model/simulation.py @@ -12,11 +12,11 @@ class Simulation(abc.ABC): @abc.abstractmethod - def run_simulation(self) -> None: + def run(self) -> Result: pass -class SpatialSimulation: +class SpatialSimulation(Simulation): model: SpatialModel out_dir: Path @@ -25,7 +25,7 @@ def __init__(self, model: SpatialModel, out_dir: Path | None = None): if out_dir is None: self.out_dir = Path(tempfile.mkdtemp(prefix="out_dir_")) else: - self.out_dir = out_dir + self.out_dir = Path(out_dir) if not isinstance(out_dir, Path) else out_dir def run(self) -> Result: # create an unauthenticated API client diff --git a/pyvcell/data_model/zarr_types.py b/pyvcell/data_model/zarr_types.py index 9e53d2a..fd5c8c5 100644 --- a/pyvcell/data_model/zarr_types.py +++ b/pyvcell/data_model/zarr_types.py @@ -1,4 +1,5 @@ -from dataclasses import dataclass +from dataclasses import dataclass, field +from typing import Optional @dataclass @@ -9,3 +10,46 @@ class Channel: mean_values: list[float] min_values: list[float] max_values: list[float] + + +@dataclass +class AxisMetadata: + name: str + type: str + unit: str + + +@dataclass +class ChannelMetadata: + index: int + label: str + domain_name: str + min_value: Optional[float] = field(default=None) + max_value: Optional[float] = field(default=None) + min_values: Optional[list[float]] = field(default=None) + max_values: Optional[list[float]] = field(default=None) + mean_values: Optional[list[float]] = field(default=None) + + +@dataclass +class MeshVolumeRegion: + region_index: int + domain_type_index: int + volume: float + domain_name: str + + +@dataclass +class MeshMetadata: + size: list[int] + extent: list[float] + origin: list[float] + volume_regions: list[MeshVolumeRegion] + + +@dataclass +class ZarrMetadata: + axes: list[AxisMetadata] + channels: list[ChannelMetadata] + times: list[float] + mesh: MeshMetadata