From cc7c17d6a1919e7c00d76568268fea79ae85afa2 Mon Sep 17 00:00:00 2001 From: janvonrickenbach Date: Wed, 31 Jan 2024 17:38:35 +0100 Subject: [PATCH] Various improvements to streamline example code (#350) * Add self contained example that builds an ACP model from a cdb file that just contains the mesh. * Add workflow helper to simplify file transfer operations * Move to_pyvista function one level lower so that the user does not have to specify the component enums. *Add tree printer closes #343 closes #232 --- .github/workflows/ci_cd.yml | 5 + README.rst | 38 +- doc/source/api/index.rst | 1 + doc/source/api/tree_objects.rst | 2 + doc/source/api/workflow.rst | 16 + doc/source/examples/index.rst | 3 - .../others/local_pyacp_executable.rst | 289 --------- doc/source/images/class40_grpc_irf.png | Bin 233645 -> 0 bytes doc/source/images/class40_grpc_usum.png | Bin 184786 -> 0 bytes examples/001_basic_flat_plate.py | 237 +++++++ examples/002_start_from_existing_project.py | 35 ++ examples/README.rst | 4 - examples/solve_class40.py | 26 +- poetry.lock | 585 +++++++++--------- pyproject.toml | 2 +- src/ansys/acp/core/__init__.py | 14 + src/ansys/acp/core/_client.py | 53 +- src/ansys/acp/core/_model_printer.py | 127 ++++ src/ansys/acp/core/_tree_objects/__init__.py | 3 + .../acp/core/_tree_objects/_mesh_data.py | 377 ++++++++--- .../acp/core/_tree_objects/analysis_ply.py | 52 +- .../_tree_objects/boolean_selection_rule.py | 13 +- .../_tree_objects/cutoff_selection_rule.py | 13 +- .../cylindrical_selection_rule.py | 13 +- .../acp/core/_tree_objects/element_set.py | 13 +- .../geometrical_selection_rule.py | 13 +- src/ansys/acp/core/_tree_objects/model.py | 27 +- .../acp/core/_tree_objects/modeling_group.py | 13 +- .../acp/core/_tree_objects/modeling_ply.py | 51 +- .../_tree_objects/oriented_selection_set.py | 17 +- .../_tree_objects/parallel_selection_rule.py | 13 +- .../acp/core/_tree_objects/production_ply.py | 50 +- .../_tree_objects/spherical_selection_rule.py | 13 +- .../core/_tree_objects/tube_selection_rule.py | 13 +- .../variable_offset_selection_rule.py | 13 +- src/ansys/acp/core/_utils/example_helpers.py | 57 ++ src/ansys/acp/core/_workflow.py | 287 +++++++++ tests/conftest.py | 10 +- tests/unittests/test_model.py | 66 +- tests/unittests/test_modeling_ply.py | 62 +- tests/unittests/test_tree_printer.py | 122 ++++ tests/unittests/test_workflow.py | 39 ++ type_checks/plots.py | 15 + 43 files changed, 1874 insertions(+), 928 deletions(-) create mode 100644 doc/source/api/workflow.rst delete mode 100644 doc/source/examples/others/local_pyacp_executable.rst delete mode 100644 doc/source/images/class40_grpc_irf.png delete mode 100644 doc/source/images/class40_grpc_usum.png create mode 100644 examples/001_basic_flat_plate.py create mode 100644 examples/002_start_from_existing_project.py create mode 100644 src/ansys/acp/core/_model_printer.py create mode 100644 src/ansys/acp/core/_utils/example_helpers.py create mode 100644 src/ansys/acp/core/_workflow.py create mode 100644 tests/unittests/test_tree_printer.py create mode 100644 tests/unittests/test_workflow.py create mode 100644 type_checks/plots.py diff --git a/.github/workflows/ci_cd.yml b/.github/workflows/ci_cd.yml index 502e18931c..d28cf4bba6 100644 --- a/.github/workflows/ci_cd.yml +++ b/.github/workflows/ci_cd.yml @@ -270,6 +270,11 @@ jobs: - name: Build HTML run: | xvfb-run poetry run make -C doc html SPHINXOPTS="-W --keep-going -v" + env: + PYMAPDL_PORT: "50557" + PYMAPDL_START_INSTANCE: "FALSE" + PYDPF_COMPOSITES_DOCKER_CONTAINER_PORT: "50558" + - name: Stop and clean up MAPDL and DPF servers run: | diff --git a/README.rst b/README.rst index a6b51191f0..ace81475fe 100644 --- a/README.rst +++ b/README.rst @@ -153,19 +153,9 @@ You will need to follow these steps: poetry shell -.. TODO: If we add tox, add instructions on its use here. - -.. 6. Verify your development installation by running: - -.. .. code-block:: bash - -.. tox - Testing ^^^^^^^ -.. TODO: If we add tox, add instructions on its use here. - The PyACP test suite uses `pytest`_. You can run it with .. code-block:: bash @@ -210,16 +200,9 @@ need to create a commit without running the hooks, you can skip them with ``git Documentation ^^^^^^^^^^^^^ - -To build the documentation, DPF Composites and MAPDL servers need to be running: - -.. code-block:: bash - - docker-compose -f docker-compose/docker-compose-extras.yaml up -d - -In addition, the PyACP server needs to be configured via ``ansys-launcher``, see `Launching ACP `_ above. - -It can then be built using `Sphinx`_. +Before generating the documentation, configure the PyACP server via the +``ansys-launcher``, see `Launching ACP `_ above. +If Ansys is installed the examples can directly built with `Sphinx`_. On Linux & MacOS: @@ -235,6 +218,20 @@ On Windows: The generated HTML files can be viewed with the browser of your choice. +Alternatively you can build the documentation by starting a mapdl and pydpf-composites docker +container. First ensure that you have accepted the DPF Preview License Agreement by setting the +ANSYS_DPF_ACCEPT_LA environment variable to Y +(see `DPF Preview License Agreement `_ +). In addition the ANSYSLMD_LICENSE_FILE environment variable needs be set to a +valid license server (e.g 1055@mylicenseserver.com). Then start the docker containers with: + +.. code-block:: bash + + docker-compose -f docker-compose/docker-compose-extras.yaml up -d + +Then build the documentation with the `Sphinx`_ commands mentioned above. + + Distribution ^^^^^^^^^^^^ @@ -264,4 +261,3 @@ License .. _pre-commit: https://pre-commit.com/ .. _pytest: https://docs.pytest.org/en/stable/ .. _Sphinx: https://www.sphinx-doc.org/en/master/ -.. _tox: https://tox.wiki/ diff --git a/doc/source/api/index.rst b/doc/source/api/index.rst index 8207b507bc..ee70c7f812 100644 --- a/doc/source/api/index.rst +++ b/doc/source/api/index.rst @@ -15,3 +15,4 @@ and attributes. linked_object_definitions material_property_sets other_types + workflow diff --git a/doc/source/api/tree_objects.rst b/doc/source/api/tree_objects.rst index 582e8e05d6..10038b4954 100644 --- a/doc/source/api/tree_objects.rst +++ b/doc/source/api/tree_objects.rst @@ -34,3 +34,5 @@ ACP objects ProductionPly AnalysisPly Sensor + ScalarData + VectorData diff --git a/doc/source/api/workflow.rst b/doc/source/api/workflow.rst new file mode 100644 index 0000000000..ab69c6134c --- /dev/null +++ b/doc/source/api/workflow.rst @@ -0,0 +1,16 @@ +Workflow +-------- + +.. currentmodule:: ansys.acp.core + +.. autosummary:: + :toctree: _autosummary + + ACPWorkflow + get_composite_post_processing_files + get_model_tree + get_dpf_unit_system + print_model + + + diff --git a/doc/source/examples/index.rst b/doc/source/examples/index.rst index ce87ee1b2e..c2bd70a316 100644 --- a/doc/source/examples/index.rst +++ b/doc/source/examples/index.rst @@ -6,6 +6,3 @@ Examples .. include:: gallery_examples/index.rst :start-line: 2 - -:doc:`./others/local_pyacp_executable` demonstrates running the -PyACP server from a local executable instead of in a Docker container diff --git a/doc/source/examples/others/local_pyacp_executable.rst b/doc/source/examples/others/local_pyacp_executable.rst deleted file mode 100644 index 56624283ce..0000000000 --- a/doc/source/examples/others/local_pyacp_executable.rst +++ /dev/null @@ -1,289 +0,0 @@ -:orphan: - -.. _ref_example_local_executable: - -Local PyACP executable ----------------------- - -This example demonstrates running the PyACP server from a local executable instead of in a -Docker container. The gRPC server of ACP is delivered with the unified installer. -It can be beneficial to work with the local executable if the data is already stored locally -or to reduce the latency between the server and client. - -In this example, PyACP is used to add a lay-up to a MAPDL model (CDB file) -which already contains the material properties, boundary conditions and solution settings. -The MAPDL model with lay-up definition is solved with pyMAPDL. -Finally, the result is post-processed with pyDPF Composites to run a composite failure analysis. - -The first step is to specify the license server and the version of the unified installer. -These environment variables are used within the Python script and by the gRPC servers -(ACP, MAPDL, and DPF) for the license checkout. - -.. code-block:: bash - - set ANSYS_VERSION=231 - set ANSYSLMD_LICENSE_FILE=1055@my_license_server - -Ensure that the required Python modules (ansys-acp-core, ansys-dpf-core, ansys-dpf-composites -and ansys-mapdl) are installed before launching Python. - -.. code-block:: python - - import os - import pathlib - import tempfile - import numpy as np - import grpc - - ANSYS_VERSION = os.environ["ANSYS_VERSION"] - AWP_ROOT_KEY = f"AWP_ROOT{ANSYS_VERSION}" - - acp_grpc_exe = os.path.join(os.environ[AWP_ROOT_KEY], "ACP", "acp_grpcserver.exe") - - # Launch gRPC server and PyACP client - import ansys.acp.core as pyacp - - pyacp_server = pyacp.launch_acp( - binary_path=acp_grpc_exe, - port=50555, - stdout_file="pyacp.log", - stderr_file="pyacp.err", - ) - pyacp.wait_for_server(pyacp_server, timeout=30) # ensure the server is running - pyacp_client = pyacp.Client(pyacp_server) - - """ - Modelling of The Composite Lay-up with PyACP - """ - - # Import the model from MAPDL input file (CDB) - # Note: the unit system is required for the post-processing - CDB_FILENAME = "class40.cdb" - model = pyacp_client.import_model( - path=CDB_FILENAME, format="ansys:cdb", unit_system=pyacp.UnitSystemType.MPA - ) - model - - # Configure the materials. - # The ply type is required to run the failure analysis with dpf composites - mat_corecell_81kg = model.materials["1"] - mat_corecell_81kg.name = "Core Cell 81kg" - mat_corecell_81kg.ply_type = "isotropic_homogeneous_core" - - mat_corecell_103kg = model.materials["2"] - mat_corecell_103kg.name = "Core Cell 103kg" - mat_corecell_103kg.ply_type = "isotropic_homogeneous_core" - - mat_eglass_ud = model.materials["3"] - mat_eglass_ud.name = "E-Glass (uni-directional)" - mat_eglass_ud.ply_type = "regular" - - # Create Fabrics - corecell_81kg_5mm = model.create_fabric( - name="Corecell 81kg", thickness=0.005, material=mat_corecell_81kg - ) - corecell_103kg_10mm = model.create_fabric( - name="Corecell 103kg", thickness=0.01, material=mat_corecell_103kg - ) - eglass_ud_02mm = model.create_fabric( - name="eglass UD", thickness=0.0002, material=mat_eglass_ud - ) - - # Specify rosettes (coordinate systems) - ros_deck = model.create_rosette(name="ros_deck", origin=(-5.9334, -0.0481, 1.693)) - ros_hull = model.create_rosette(name="ros_hull", origin=(-5.3711, -0.0506, -0.2551)) - ros_bulkhead = model.create_rosette( - name="ros_bulkhead", - origin=(-5.622, 0.0022, 0.0847), - dir1=(0.0, 1.0, 0.0), - dir2=(0.0, 0.0, 1.0), - ) - ros_keeltower = model.create_rosette( - name="ros_keeltower", origin=(-6.0699, -0.0502, 0.623), dir1=(0.0, 0.0, 1.0) - ) - - # Add Oriented Selection Sets - oss_deck = model.create_oriented_selection_set( - name="oss_deck", - orientation_point=(-5.3806, -0.0016, 1.6449), - orientation_direction=(0.0, 0.0, -1.0), - element_sets=[model.element_sets["DECK"]], - rosettes=[ros_deck], - ) - - oss_hull = model.create_oriented_selection_set( - name="oss_hull", - orientation_point=(-5.12, 0.1949, -0.2487), - orientation_direction=(0.0, 0.0, 1.0), - element_sets=[model.element_sets["HULL_ALL"]], - rosettes=[ros_hull], - ) - - oss_bulkhead = model.create_oriented_selection_set( - name="oss_bulkhead", - orientation_point=(-5.622, -0.0465, -0.094), - orientation_direction=(1.0, 0.0, 0.0), - element_sets=[model.element_sets["BULKHEAD_ALL"]], - rosettes=[ros_bulkhead], - ) - - esets = [ - model.element_sets["KEELTOWER_AFT"], - model.element_sets["KEELTOWER_FRONT"], - model.element_sets["KEELTOWER_PORT"], - model.element_sets["KEELTOWER_STB"], - ] - - oss_keeltower = model.create_oriented_selection_set( - name="oss_keeltower", - orientation_point=(-6.1019, 0.0001, 1.162), - orientation_direction=(-1.0, 0.0, 0.0), - element_sets=esets, - rosettes=[ros_keeltower], - ) - - - # Add plies to all parts - def add_ply(mg, name, ply_material, angle, oss): - return mg.create_modeling_ply( - name=name, - ply_material=ply_material, - oriented_selection_sets=oss, - ply_angle=angle, - number_of_layers=1, - global_ply_nr=0, # add at the end - ) - - - angles = [-90.0, -60.0, -45.0 - 30.0, 0.0, 0.0, 30.0, 45.0, 60.0, 90.0] - for mg_name in ["hull", "deck", "bulkhead"]: - mg = model.create_modeling_group(name=mg_name) - oss_list = [model.oriented_selection_sets["oss_" + mg_name]] - for angle in angles: - add_ply(mg, "eglass_ud_02mm_" + str(angle), eglass_ud_02mm, angle, oss_list) - add_ply(mg, "corecell_103kg_10mm", corecell_103kg_10mm, 0.0, oss_list) - for angle in angles: - add_ply(mg, "eglass_ud_02mm_" + str(angle), eglass_ud_02mm, angle, oss_list) - - mg = model.create_modeling_group(name="keeltower") - oss_list = [model.oriented_selection_sets["oss_keeltower"]] - for angle in angles: - add_ply(mg, "eglass_ud_02mm_" + str(angle), eglass_ud_02mm, angle, oss_list) - - add_ply(mg, "corecell_81kg_5mm", corecell_81kg_5mm, 0.0, oss_list) - - for angle in angles: - add_ply(mg, "eglass_ud_02mm_" + str(angle), eglass_ud_02mm, angle, oss_list) - - # Update the lay-up model - model.update() - - # Store ACP model and generate the output for MAPDL and the post-processing with DPF - os.mkdir("tmp") - WORKDIR = os.path.join(os.path.abspath("."), "tmp") - ACPH5_FILE = os.path.join(WORKDIR, "class40.acph5") - CDB_FILENAME_OUT = os.path.join(WORKDIR, "class40_analysis_model.cdb") - COMPOSITE_DEFINITIONS_H5 = os.path.join(WORKDIR, "ACPCompositeDefinitions.h5") - MATML_FILE = os.path.join(WORKDIR, "materials.xml") - - # Store ACP DB - model.save(ACPH5_FILE, save_cache=True) - - # Input files for MAPDL and DPF - model.save_analysis_model(CDB_FILENAME_OUT) - model.export_shell_composite_definitions(COMPOSITE_DEFINITIONS_H5) - model.export_materials(MATML_FILE) - - """ - Solve Model with Composite efinitions with pyMAPDL - """ - - # Launch MAPDL - from ansys.mapdl.core import launch_mapdl - - mapdl = launch_mapdl() - # Load the CDB file with the composite lay-up - mapdl.input(CDB_FILENAME_OUT) - - # Solve and show deformations - mapdl.allsel() - mapdl.slashsolu() - mapdl.solve() - - mapdl.post1() - mapdl.set("last") - mapdl.post_processing.plot_nodal_displacement(component="NORM") - -.. figure:: ./../../images/class40_grpc_irf.png - :width: 300pt - - Total deformations (``usum``) - -.. code-block:: python - - """ - Run Failure Analysis with DPF Composites - """ - - # Import post-processing module (ansys-dpf-composites) - from ansys.dpf.composites.failure_criteria import ( - CombinedFailureCriterion, - MaxStrainCriterion, - MaxStressCriterion, - CoreFailureCriterion, - ) - from ansys.dpf.composites.result_definition import ResultDefinition - from ansys.dpf.composites.server_helpers import load_composites_plugin - import ansys.dpf.core as dpf - - # Launch local gRPC server of dpf and connect to - dpf_server = dpf.start_local_server(ansys_path=os.environ[AWP_ROOT_KEY]) - base = dpf.BaseService(server=dpf_server, load_operators=False) - base.load_library("Ans.Dpf.EngineeringData.dll", "EngineeringData") - composites_plugin_path = os.path.join( - os.environ[AWP_ROOT_KEY], - "dpf", - "plugins", - "dpf_composites", - "composite_operators.dll", - ) - base.load_library(composites_plugin_path, "Composites") - - # Configure failure criteria - max_strain = MaxStrainCriterion() - max_stress = MaxStressCriterion() - core_failure = CoreFailureCriterion() - - cfc = CombinedFailureCriterion( - name="Combined Failure Criterion", - failure_criteria=[max_strain, max_stress, core_failure], - ) - - rstfile_path = os.path.join(mapdl.directory, f"{mapdl.jobname}.rst") - - rd = ResultDefinition( - name="combined failure criteria", - rst_files=[rstfile_path], - material_files=[MATML_FILE], - composite_definitions=[COMPOSITE_DEFINITIONS_H5], - combined_failure_criterion=cfc, - ) - - # Configure and run DPF failure operator - fc_op = dpf.Operator("composite::composite_failure_operator") - elements = list([int(v) for v in np.arange(1, 3996)]) - rd.element_scope = elements - fc_op.inputs.result_definition(rd.to_json()) - output_all_elements = fc_op.outputs.fields_containerMax() - - failure_value_index = 1 - failure_mode_index = 0 - - # Plot inverse reserve factors - irf_field = output_all_elements[failure_value_index] - irf_field.plot() - -.. figure:: ./../../images/class40_grpc_irf.png - :width: 300pt - - Maximum inverse reserve factor of each element diff --git a/doc/source/images/class40_grpc_irf.png b/doc/source/images/class40_grpc_irf.png deleted file mode 100644 index 3aaf2cd49c60177f7334a37e741fddf5fd86c663..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233645 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

o(*8hFdBOi?pL2BVwCn5CIpc8 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 z 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

>EiRxahKURtR zlj2)mdUC2fnbYB5+Dgt)@J=3cKg{=|o}R{yU|yZ4iGeroT-Z$e5$}x7h3+B@_HO!<$$QT+< zPF%g4oEV7W`mx5L{)|l{MX#{=gm@by8_i{wXFbMYslkl+RZsr$6=RW9j2&_f_aM{t zSuQOuR}gQS{9(r1zb6{N2G~Po4I!Xjj8RhFJ0vz+b>;7%oYZ`fVVk_2sq|zI_Km+5 zV&{Uy7Vf3ug?cs#yY&mgbvoX(T6aH_}h*^!U(A%ACD z%@fI8y)svgtzi7Yod?4{OV6|q$*k|gGV@I87dl!bs=!PI$TGr`i-dF9T>B??Z1d%2 zIgrY3$+pJVPsKRMv1+X?Sx3nO3X9J&HnaTXgG-GrWIpm`jqsJ3FT5C~_jT^jxMmOL zECW;ZMu{s7ppy~;?#wqa1TSJP!Vf-#uZ}MoV?(MnkE7G&_>_Dn=?1%kH>AsCU$`~_ zEI)ZsVAC|t-g|vV!iAe*14Sl$9l9Lhlt>1hj&~dpqpPB%O+IN{Vr;X^NfON`=@(~^ z*EXs><_)Ux#$WQ`$qnDV%+U#pH4+&=V@b1aCscVO?;l3})u?-<;Fo{U6tXVC)R*$= z?^X?`)oGUvsYf)3Vnn1WpfT{=&>P)c_j^rPr{A)WNQX2E6Xp)gTK}Y*Ta3OQhm<(c zQPn(Wbp;YPWPXjJU!5I;74wlzr|t1%0C3N(8gJ622*ujt^c4Ga=XKFh&`1*4w9j6V zsQTsLAkVj9^RAf0K@qKc=GhoqOf{pkUbmP&4|!R%@@`lB@ti*sdWm}@WI;mx16({I z3Z}%cfy6LQzF&ARMdv8)i`PR9oMxt(0mY?}w0^5T0hG4oJN9GiuVZDj9?3sg4~Rfe zTFpt1+!eFmNd|lkfr4;Q#ewU=OMxT{+Gm@877n_aL_{HCVh>a!66y!gO-t zVpaX&777C$=1^jEBd%EX@l91vvC*O`Gr-R{>QRRco#NNG;?Jpv&WrLy#`j_yh5E9N zSX{2$uK?M91uv8L@uCBCFq=!fQNExJe6RmmS&C!U&-egD85+rx1%I$%jq6^d3pwdU zGl&jQYv`pSCrk6{b-0(y%M$*x zp2dUa71URrn=Qk{Z+OH|9krvdf(tzXDXzRq1wul{hqW)WKTnGH+%pYN4aHKG*Tjp_ zhS_PO=)KD6K=MkgUJ2o@0WvVfw%gVt*pSNyO6PoId7fAhYvk?x<>Fph zI*X}5T53Kggnfa%n1A>+yu~g+P>2H}Y5KM*VFhyNS0h^=5FQlt8J8z2A?y1MIiim} zLVOUvI`GaS^wkRD`ffmz7r_5u#e#IJ@M(+&HvUMMRu(s#c&}X+m%f>}_?i+a&RXzH zdFgCki75AqlL65K4SM&Cpi2O>96c-l2pZp??Ah2w#}s`6+QF+sg-iJCWC|+BwJHVTsm$-gng$vF7L1(vPICLKC>-TO z;#F5l;rOgK(0R1_vt=F8(Yn@gew$pVvd8DJcBStEhiQXj$woe#)TpJYOwQGcaQlKo zn*Q^ocV>jg_{qszLj(POp#e?CeMJV^@1jCl@ieK11P9noc2LQ!mC1y499-cGh5`*4 zr|%Oc=>m?8>p3%ATDZs+!qdAlLc@mg3IpW4?S4hTjial= z$vpwfMziDKHAhfLymkMogR74eStD*W`>EMu*Cj)~;&c5*E7U*B*E~8wxXfOp$fVYT zjFkJu=HIt{Ce>k>MnFa5}ttT9bI&2n@!6_G>@yza*q6AuY6Zrm30gZ z_g$uEBunBm>Se{-KG7$+e?{d0FwypIZsF%omV(s31q5Zc2L<+{0ZxZWs2@Zp0Ujxl zjs9BF;(dZLT{Nab)watuxGS%q0pYC6rZGj|>SPHhqM#1xuO(j?}%=g#$L*YXHdAQ+OVf8kkujp7! zgJSP{5)KadxK{RHv0USX#%826A7DAQkfu(7w)cq!~B zV3Ii(DH;Xq0|cdu``4xy!srUAnnm(x&Sb4<&#u2Hd_%++#!ZuX%{@N8+eq3JFWHwL zaPrIvWq2_>puepeBj40=(#xn{U-e2L$ayEH`{_qX?C^JRVa5eTN&>dnY^>k^(0NmUM+9^b_3V2= zfArhTJ*X|tcz(Ee;AIGht}C$*$mPBr+b$Ql75#joBK(LaQAYK9 z^{-YgEsX}D)H^RzOx}j}D-fX{o0)ymWxeh6mDu8tCy~_46JgW;5FNAVw=6>r=QP+y zYt);8kdbL5vo}O*XWv!(sDdXczL$7 zKczreCN{>^?{(o&_PAJYeNuZdZM-K|WsyrV4$4(RfSTAxtM&@qmk4${OI z;^z8Kn?yK3dS(xVA8XfG9Er4P;onxX5!Mk8T`hrqa_^kTvxe2njy%C6y;|_SN{Z~# z>{336Nn~Jl;$LJsnJa+bn-o4KP5$2$|G1z1cae`fxKnzH#MjB_86N?`hSz(Q`+TrPW`O)!)AUlAB0^ckftANA6$%R-UgJZn<7A-wD) zw5G<|{#+ui<23o}NKd_68wH}QWYdSKDZpvbDxUt}$*iA%vy3l5DMni|sR|k*ZbrDqBW4gFY@glJ(_W+KykveKW8#Z-oY1AdTQVG=o8SyO&aLMU-n;-G7`*>ST( zQL|tcHNJ7f3tqV*KdbYRV~kt}Nh@2@;-gz#DCYIUg+85-cuj|s35x{cYKc5Lwl+%- z$4wL$z@U+?kiVs7w4IP-R{ZRBu;lbsnel@6+5oPgl&6G<>Nk>4t;qjIuA$}J(I9)s zwxnT;yqH}>F!bODDWfM)aJ*he)F_w7I(Z<=fMXJJZ5h%FLXgH zRc3mTR@J=Zb*oA!l7i0CeQ1Bd{Rs+ZzF5OscCnPOmcG%#)0>O;R;5dv{E)}IS9^}UI)tdRly z8$E$pajUjMGh|H8BfS#+)!>qk)1S`p4jyku*i6+9yF#l|T_sGJN5AwZ?S~kWSA*la z(YWuJs#tiMNsS+tENCy3*UVU4;98W;;PMNp4y^Kq@aJU=3KJ!IOnsZMdCnDp<>obb zrMp0v%GLie-!rc0;;FK6#f7n zJ|(Qu5BoKPq_K6q)mQ+e1TB9Cv8$)JUxny~Hsg=C)-(Ov)l$#gHXJ#JK;nbSQhx_# zaaEd;eS2^Bxqp;!!Vj7PC6zr0HZlt#c9ui;{`l{bpeM)(Z{2eAu72pk62k2)l3GdK zhv*eaI@IBPcpnw1dtNxmu|w8(z?B%+hgu~9geYSB^iz_${5~z%DlFC(yWWP#-w$aYpb3%aNJ% z^Pp}cYkLpY-YZHm2~B~p2iH7Qwpj4Um#)hz z_SD@MWQI5!T!;2m>50fqUD#&5P=FaP<{vl3q4g zt}1{6ky<$qGxRNVR@~>Q|Kjsq)mik4pd7I2K5!H$m8&qG%5p`eECL7BA`W!kO;M{R zkTe_U`A7Lk@im{Zn7h+i8gC2B7y=A^=UTAOj&*4fse%#Fi~ApWy~J9!UQ}|5@Q>}d z#E@1?IpQ}$!R(7+dL+74$bcSmHaGklPX#wK2t^L*U|=wsY3KU6$%{BnO3?h92KZKs z@)nXAc|Ut+`P<5AspR0LHR0LVe2C(Xj~gEZUMo;IdDAGKI<8QmL+LU1rY51O6ebhS zeEWpXnItD4KkeAs-|ReTk9biO_Lkk7`8}(@@aexwBFl$ji2TvlejVVyDcZMdw}&-S z@7XyxT)it;^EU9GS&_ZEm7cr832K+8N8*8Y@b0*RtIMrB%^dHfO;rC0DUUJ++jlXEBRUq+{ zPES!5nTFHA%Hx@=w>%=xdg`E6|1C>Gz%cKJw!;lry7^O(aikmy^W;p6Rkd8OH81=XK^3Zv?dB1@Po9U_+$3SRq6}v0(XI%DXC~15qmupoNI6X zB5NNF!f5@`1ddCrUM2nR?B#2t(Ei8EB@wgjk>!#* z6Qv}u*gJ+$xNv}IEqu0>;lBS5>}V$7ABwOz^q^RSOnOv@cfPy31HF8kp|q}pwABoV z?LqrAYtyWAU=ba$v7DgSKik1eLg$*6?AL^&MqfiHK6Nvq`{e75_X+tQmp7+}8*euH zxG3KZc+=!R2_$ME&Q(3j*aIEg0B5$S!$(_FERAK;sx?7$&o3Q}u_?0KY=isG*sz2P zhKojM>5stBCfb1zla0&bn+NaB|K_RKiN(ghUS_vwQ6NvPWnq8WG49}>UyXZZXr4G; z{=z=13h+1XmI>vToLr4q@lU)_9I89Hf0V|db%2M) zm;91N>XoLnKqSp{AUKi(uRcm5Q<9zZs^+}4+V&^81eX(_=j45~sAtqE4Ihbp%APll z^3Soo@68}gBl75ni>u9?y*TvI71USG4H3k8CX*nHYsl7EM`ajKxbtK%(CN|?r;9+g z?;p%#U8>>DrgGjhc9pH4^h1fTU@3JJBbc<3KOt&sMS4d;F>ch=G@#KjP~q^NAP`@6 z6yWftdg1X|o?{Vsl*C%YG2wc1tU}FC{URwk0~*@JM%GV z{A(_`MaeH#kJpS;;zp^to1Rm{qm>Go+!EpGEf^8Att0~0=ZsVtK|JKw9@70Bda^9t zS>>oVp@o>e0Eg}iDKeRt;EYxH&fqc7XH|6JF?;bqMxy(_B z#s0W&Ez^-bb->R~j|kK8%guNwko3Lkh(ns*zH~f`>AKWpUAn?z0Jb*d_vAwBvT<$x z`VRvtF&26=e6wOK+U>}ctz&EKy7S0wwzV!yt>EgETuG7+o@lYa3T}*&A#$9w_>;(U zY{ERR?S_kp0_*;E|0fprnS4#bqQ>9YW{jIlCoL|~|GCH!PLd0^N4l75S@l1v_EN5a zgkCFU%{LMJYR%~%cUN=^+jq+2yq?ABh8q;!d=+s%?F()uPksO~-N%nNX0T*ds(`pM z8+O*iZHtdYnQNSiRj3d+{j zff<1-7lwEkh108_JT~#8OwgaFT91NJAcpW2r4oA--=kB=6W;&kJl1?Dp%z<8GYqJq z85aM&tlSWoc0}Z{^zK)ra{pxV3 zIaSNf#H^^FjhC#4Hu1r9VHvg$AXrF$`3%E%I;0DEU(f@J6-7x0N(BDhl=+9T?iq0x zXEEi?u0QW$rR3IdzG-0j$F2$K^hpnmGw!tE&!{#O?~#7O8zzTDps>9 z`BGU1n-Q1iNwC7e1mbmI5S8`s#{ONgzWzuLeC4Y)Z2;ZEYrFU7=B@W`{i4*@Wmirt z^GD3Mtd#kW{;(xGqocMw5uqOz9YcxsnT5S2n}n=knZC>jjLU+RXb-v?Of~%V!MY+3 zK8idrQf5b*5MA_mT8~VC4InwJni_7N(5?D+D7ImrCn()K)h>pdW%bCpavnO8RFT3& zQXI(ln;Aa2y5Lr0TV=?=v6L`i0^4M}r?pc-yePDVO2I3dt%Z?R!xSo*GCbK8-*)IF z)l9SM%C?LiU*0bG)3YzuHvaOiRz2Ol9z=0bP^pXegc1;i<4|h0l{)yS36?X-!u1RI z>y)662%XZ6iUkzkYD7E@(Wj6JLGdH`XKAZTqU)zA_WkPWaBxgnErVHCxr*?~?&Fd9 z?)(ItR&Al~WA0GNfjp0zU5hI3z2&;eOD2?mg5>+UUq7#xIc*6mJkx-ki@i$vHJ{ot z3Jj4F1SHIn&ixsjZk{mthAC-$Gbw*nq+za8;G*>Ra|B#F4yHP1kpD9AZqijn}|@XN8%I zH_KhNl;%yfg9YKn0c9Zd%%3F7KRs z8can8hwQYIcDfl>Xm8j0Iw5b3a=NWp^`oJ0nK5esKlN~g#O!nOSxcMRI#Z7IrdpMn ziPy+Kf;rruXDK7kA~+!Tn5fr$-DEimhx+w{}G9`>|^XHG2hn1Rgy@RK-svJqU|6F7RQ8Wa+ z9jR3ki256oJ0GA=*@hYfO0DGPCCmyeg+kj(O4_TB4@q_E~!97|JMge2?!``WwQWRwqJFqPe{@S8|K~V|9ZBH!L)^y=}?E z*9hRud}cVmVNOgv6BjaJ6|AVDE!ZW@^vGzschid zLcgi*{wDk|dM}egXpb5)F_+p$MnyS?=%&3;kJ&U-tdJ8{s+Ijw^};BzcES8@<>S=c z>!{%3PJQ2o@#!-*qmio`%P0l1J5jj*l`ZzWtgA~e_cMJdM#c-SzSvL&qG;~+6K$N( zzxiqB7SuCSh>NoHQxRzCdRb_7Z(9e=oZ34}e6@Rk{mzE-qK5fl8u5PZ!N5Mh;HuP7 z^+xmeDek^X+O@nh7i>V?hwIk`6qo@?tj|0@6zS24{8)fZO-vW>j%?`PR=L6&FJF`f zTR3r+)}=3UWWc+&1P%<{ekW5P^Z`0skML%qq~P?tUjssUYWY&ua|ZMv+Xo@s*VXz` zZTfkwYV`KES&FrS?-Lyc=El>72uc?%WAW!uLQrRYrp%*scai3O@=d<@%W>yOm3#Yd z2$rK_R8-Eo0xsJannXL@uWMNm(;H6U?eMDsX8|N9I`MKqa$jbB*^3tVsF>w8yg4%J z;^q%25!Mi3UHncS%BLs51F*Wy4Rp&4Z7V8i`*5YqfcI?Lv!E^ilm%Y04*vMOjeYIJ zAmUK({J{eenO`qYSi4K)UKhm{+G&b3|56uf!kc#b)f76ABB^rQ`tmT`tJ++6 zZ04MYpfgp28QKqN{)w!C9WHcY_o(6Ew$vTy1-j42%rc18-zg4mhe=?)*Ptu+>(_Dj zZl8^BbFR#pQm&udb%Rb#z}EVwx=aeBR}FXH;ayp?Q?B(3!nbmZwhk72LIPWCDV*yE z;kD)*1@L3VJkFg*I=lxS^3fQtc!aYL<%@vVB3I^ek&o=>ZA~&Lr_qO#D%xr-g||D< zT`gCY%GxUX6)9ru6E-mE>oHf$#J`!u^q-kT@PtkNJKNC1(DQeGv-y(8pPv@Bx2Rl6 zfEv%tWL)sD8shF&a4$%U4AcZa&+<+=PWv-N&tl~;r3fp45;UBHE_%$Vb^ zu(>NnkgJ=;F^}J(U-9rv&^w2jN>W*`Sk{+3^gEmKikb#cOvG_I3+UFaEZyf8kzWg`!4jhr21AGAL)GqPN~cjv2pseHMOHBy5^G{JiZ# zzJjzi5mUSigL6W0|7q(FfEsrR*^BmpjoG5nckZZ$XIKUPNY$W(^AX&rrLVQj89$@H z7<-CD85^+Fi(C>n9hZfJU!)D!x10ALa45DF+4%ZupSK!+GYstTF};#$AKB-35)*=K zEq(0n=_KN_)US!e2A%RrAQecf*1X^7yGcCWrOra4vq4)97G3 zoHgbxI+PxP_AvXBZpkSnq>n#th6z5Mf&YyUrIg?B_CKjr$hL{*$k8d#7uW^Sb4ca( zldf0;ww??6QA(GBiS%~08Y&C{?jab*SKDWox;rx=w>!a%`7?o=aM?CvCGr*d>aFGi zwI53u^i>Q4UnM!^WIK44uL$0zqWvh#Y;B=@7v`?aj34ar-x(#sCO_FWswc2~W3+61 z>%tv0RpnrTr6BK~iTwJVzpwD3)O7gy^X>hCm$HT~z-o<?p(JETeH6CIJ#-J z8t?Fgv9tMyx!<#Ze$hkN8O;&0Qqa!;r)}Ynq(GS)qf6`h!a!g)x6KWL?+s^2n!FvV zH7RaWW=hmwHgqh)9GY}MYkRx??V!XMWg0$xp*Yr^$=ov#Zk|73#Pm0veh-QU5eq$n zdiSrftli9WCwXE$N%~=#7v{IcByEwMwIbouEiD`*v_LX#=0Ef`szx!Ms3_>5bMm$h zQ%(7&f1SL;1K*L5V$Y}}2a<^U-z18Uw7Q9QC;5f*TCUnkNa@n-+-)EG&rM0S$ToFD zM>2IaJIaw_;xhaIM>tKVEMKvW9rYUYb0(P|qS$8Dci^HOLTieB&F|^v%Ql+xv3t&N zKjW-m$a(%s>VVTfuUm_)d9sebR@_(crj0b{v6sNKk)fB7g8`8 z?(sQ%=j^bdN$nS{W_6VSS5X;Q)c2&z&7W~i;tum$3Ir10MzWf^4}2$>b1>jQ4f7o& zK-y!T)P1b-49T*g7=RbY^<|pdH~F!?Kva1=sqAU?st0I5E9Dp#^IBAaRK+ zdY3fBT;-5`x!j8HnerRqtW(VTuWv6luY)XH5xdpy4?+)FO zCFn6?xlJx-YkXNb^suq z-?cfvP!Ndn4E+m^lqq`xntW#yxEI|n8`YlB7u#(suVt=&w}yOMl(}(*@Dpr=lA07R z5v+N6pF30u{rP@6&_p*3|D?ww%mB20-u;Gup&tmdS?v-0vc#c;%D05KM; zIRByw74@Bw$tvzCaY8^y{*EBIwPXWt?4 zUC~mzn5(Uq`@HR1)1adqjM`xw|M7auM44c3TP)44?=&mz86|{!!H5nktE`JG@Dn~c z=J*)1pr}EDWNrJo5l8e}a9<|*6y~l36rn@v|7vTWfQE*umcER3C$i|>r?%ED>So_| zUpb+-4>D8=*;PP(MPP;JmBPU&wy3Lyyd}LOmTXQF10H(5kO0c!j(-y43SEIspQOdS zrP_l$T_G;y4#kECGV74dp>PcriL9!*eCG7+M&$bj?VwEe7_7;uZ&9*zCeN$x0}EdU zy;qX15MGdsPVBm@*u3u!J-ETAV4D_0*aif|TwsQKs{JAzq!v`nucKDOxeg9DFJK{V z`}KVyivmt;LuqCKQo47LC(%{@#G-3h(&bE4&Hx8BwBRYC!Fb3i)PPNW4Kk9XUCZv z#We*_xANk0t?jD04SaML_&>W|pR&xetZ|erh;@nZnr6r{N)MqrLQRWE&tJ~uXd#aI zKyPTqKe)TDHt*<}@4U$cfPmqJMSi!`f`SX)+@-TE3YHFu2?Zk{PKw>>=haMEv@e_iwN+w!*s#6ooRjQp@YYH)}ob zC6pb6^R!%O><;cTEb}QJY#o}c$mhSlV#hnk^XaU9(iIJaX5@u{S&LK2o{b4`OJq^_ zwmC<>Dag{oNQS!v<5dK2AGz+tTNbte&id{=2|vGTiIqp~k<}B~f2EJ0{AcUm041K~ zr_x_Ozn1YhPmNp7`_z4th~HzLoyA6i`Z|&>D5>;_y~K;6gPv|UqC_0{Gfe+38~B)T z+BOK93CuR&I8_te(+jNx>r!r}owaj?Fp$NSea1E98*(ae$Y-CYvco{excw#XT3MlW zrRt9JNSwuS$IsrA21AdvUvJ1Iz3ifOg~~|-voYZZZ{IM9?zbAva8vIcpN`sg1I^uh zuwM^Cb?i?&d~GQdZ8| zpnARx_D2%^?!Lh31KkO>QxLEOuwcD5 zaI}ACOf(R)uHuH7oEpoQp*5(+d1I~oB+3rU3f{oj|ydrJCQ|5@H^WHL{$Uq!R;3xD_Zqtl@}qg^ky53>Cz zrbeiF;kqDD!e=cL%y0s4JqNBAfYIH?$hT0pHq=3L35v0q$&4k8SPtToUMrC69znl0 z>wY#i^ZzQ(@c!vcI$L#6#7DG=Wm6;^s(*ZMn`$V+m||HcB%nKDzt8U3@3=DKFZKiw zoLhG!he7tDUV`$@V=~`&H0p8^8rWlXtD){~oQo_ui z7L}!bDqWv5X}_l%K+F$wqfvM6;12}c6s+l7{-ieScRA^_#;f=HHy`u?zl;c= zK~Igj=JRzi4U&hfE{5>%aHBX)LTh*qMlb!pCD_>X?X9ZTxhUKCQS`dH&AnhH{-UTU z^J<_E=KYpfyo^^W6DBxWS!4GlK-(3)e}XC!Z(N1OqrKLaie)3r zwJ?gShdQHuS4O$mshM{E@!F{wrTVtl&~8?1wZJjqtSs8W2%%*2g2enXuXOk^uZVBC zLIHINHNx;H1_^RK*5ah2?P;&wtbeM!zH37X`gvpK5nF4~ww;!9$_~Z7Q%&-pO-N>d zc*7{q%Z-z2B!Ze7QIRL_Hvas%BJ6e^#Hoe@X4VV=c&iRgbG2Ons34dk+_ZkKzk`tZ z2{aM8hBRlm*o26~6!WI&^26kFh&{F2?3exWF;Ps5^ex+^%GW(ePFU;PZDEyzY3SZr z+s8VNo3mD0+Rk>r^$Rht)hK5gWdTby9^rCja6^yLJWmTc(ciNll{NOaSR4ZZig;4% z6^?PjLmhS#d7;Z`!M>Ay8~sT3b*FTjojMh@W2(rrd(@gS>uCP6&zdwX?St2X3u45P z1naM3xZlt(huXciUYewhGvP8aeioFz1Bjl}ZBi2h3*xEBgt=O|6kC)>I8Zm5pB8pk zoqfHiz%v|lIdShLusZ&is=zFHuHM_-p*529wl^nQw|FK@u-1}$-&qB$GNXRZad2j+ z$3x#?ESKM^&S?>JslF>jeh?R15lYmW%0A%?O`?7qVd_BIz@Fqivu@K_0(#Wtjd^n} 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 cCKEQ5?hL}aw+~vs*s|!7xy3o0>8=0.7.0)", "twine (>=3.8)"] -doc = ["Sphinx (>=5.0,<6.0)", "ansys-sphinx-theme (>=0,<1)", "numpydoc (>=1.3,<2.0)", "sphinx-copybutton (>=0.5,<0.6)"] -style = ["mypy (>=0.950,<0.951)", "pre-commit (>=2.19.0,<3.0.0)", "pytest (>=7.1.0)"] +doc = ["Sphinx (>=7.0,<8.0)", "ansys-sphinx-theme (>=0,<1)", "numpydoc (>=1.3,<2.0)", "sphinx-copybutton (>=0.5,<0.6)", "sphinx-design (>=0.5.0,<0.6.0)"] +style = ["mypy (>=1,<2)", "pre-commit (>=3,<4)", "pytest (>=7.1.0)"] tests = ["grpcio-health-checking (>=1.47.0,<2.0.0)", "pytest (>=7.1.0)", "pytest-cov (>=3.0.0)", "tox (>=4,<5)"] [package.source] type = "git" url = "https://github.com/ansys-internal/ansys-tools-filetransfer.git" reference = "main" -resolved_reference = "e658608add9cbf155f552ce6e053ae314210148b" +resolved_reference = "d219bbc5a6847ce37ce05bd94f8caa0758820bf3" [[package]] name = "ansys-tools-local-product-launcher" @@ -509,7 +509,7 @@ grpcio-health-checking = "^1.43" type = "git" url = "https://github.com/ansys-internal/ansys-tools-local-product-launcher.git" reference = "main" -resolved_reference = "ba6f130611e81cdaf7e69bd106367cfc03cc9aa6" +resolved_reference = "70ece6ac8f98af9a06111712afce601ed68df5bd" [[package]] name = "ansys-tools-path" @@ -730,19 +730,22 @@ testing = ["pytest", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pyte [[package]] name = "beautifulsoup4" -version = "4.12.2" +version = "4.12.3" description = "Screen-scraping library" optional = false python-versions = ">=3.6.0" files = [ - {file = "beautifulsoup4-4.12.2-py3-none-any.whl", hash = "sha256:bd2520ca0d9d7d12694a53d44ac482d181b4ec1888909b035a3dbf40d0f57d4a"}, - {file = "beautifulsoup4-4.12.2.tar.gz", hash = "sha256:492bbc69dca35d12daac71c4db1bfff0c876c00ef4a2ffacce226d4638eb72da"}, + {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, + {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, ] [package.dependencies] soupsieve = ">1.2" [package.extras] +cchardet = ["cchardet"] +chardet = ["chardet"] +charset-normalizer = ["charset-normalizer"] html5lib = ["html5lib"] lxml = ["lxml"] @@ -1571,13 +1574,13 @@ grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0.dev0)"] [[package]] name = "google-api-python-client" -version = "2.113.0" +version = "2.115.0" description = "Google API Client Library for Python" optional = false python-versions = ">=3.7" files = [ - {file = "google-api-python-client-2.113.0.tar.gz", hash = "sha256:bcffbc8ffbad631f699cf85aa91993f3dc03060b234ca9e6e2f9135028bd9b52"}, - {file = "google_api_python_client-2.113.0-py2.py3-none-any.whl", hash = "sha256:25659d488df6c8a69615b2a510af0e63b4c47ab2cb87d71c1e13b28715906e27"}, + {file = "google-api-python-client-2.115.0.tar.gz", hash = "sha256:96af11376535236ba600ebbe23588cfe003ec9b74e66dd6ddb53aa3ec87e1b52"}, + {file = "google_api_python_client-2.115.0-py2.py3-none-any.whl", hash = "sha256:26178e33684763099142e2cad201057bd27d4efefd859a495aac21ab3e6129c2"}, ] [package.dependencies] @@ -1739,13 +1742,13 @@ pyparsing = {version = ">=2.4.2,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0 [[package]] name = "hypothesis" -version = "6.92.9" +version = "6.96.4" description = "A library for property-based testing" optional = false python-versions = ">=3.8" files = [ - {file = "hypothesis-6.92.9-py3-none-any.whl", hash = "sha256:8c1ab9f3c883fe63a712bb6c8c1b5be4185cad52775cd7703c040fc0d0111572"}, - {file = "hypothesis-6.92.9.tar.gz", hash = "sha256:629f31788243559d35d3101ef8e94caf736cf8efaad3f0dd66ec7dbb31b8ef19"}, + {file = "hypothesis-6.96.4-py3-none-any.whl", hash = "sha256:2beb7a148e95a2067563bcca017d71cc286805c792e43ec5cb155ed6d0a1990d"}, + {file = "hypothesis-6.96.4.tar.gz", hash = "sha256:3b0d080bfd3b303e91388507ac7edebd7039ffcc96ac2cfcdc3c45806352c09f"}, ] [package.dependencies] @@ -1855,13 +1858,13 @@ files = [ [[package]] name = "ipykernel" -version = "6.28.0" +version = "6.29.0" description = "IPython Kernel for Jupyter" optional = false python-versions = ">=3.8" files = [ - {file = "ipykernel-6.28.0-py3-none-any.whl", hash = "sha256:c6e9a9c63a7f4095c0a22a79f765f079f9ec7be4f2430a898ddea889e8665661"}, - {file = "ipykernel-6.28.0.tar.gz", hash = "sha256:69c11403d26de69df02225916f916b37ea4b9af417da0a8c827f84328d88e5f3"}, + {file = "ipykernel-6.29.0-py3-none-any.whl", hash = "sha256:076663ca68492576f051e4af7720d33f34383e655f2be0d544c8b1c9de915b2f"}, + {file = "ipykernel-6.29.0.tar.gz", hash = "sha256:b5dd3013cab7b330df712891c96cd1ab868c27a7159e606f762015e9bf8ceb3f"}, ] [package.dependencies] @@ -1884,7 +1887,7 @@ cov = ["coverage[toml]", "curio", "matplotlib", "pytest-cov", "trio"] docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"] pyqt5 = ["pyqt5"] pyside6 = ["pyside6"] -test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio", "pytest-cov", "pytest-timeout"] +test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (==0.23.2)", "pytest-cov", "pytest-timeout"] [[package]] name = "ipython" @@ -2007,13 +2010,13 @@ files = [ [[package]] name = "jsonschema" -version = "4.20.0" +version = "4.21.1" description = "An implementation of JSON Schema validation for Python" optional = false python-versions = ">=3.8" files = [ - {file = "jsonschema-4.20.0-py3-none-any.whl", hash = "sha256:ed6231f0429ecf966f5bc8dfef245998220549cbbcf140f913b7464c52c3b6b3"}, - {file = "jsonschema-4.20.0.tar.gz", hash = "sha256:4f614fd46d8d61258610998997743ec5492a648b33cf478c1ddc23ed4598a5fa"}, + {file = "jsonschema-4.21.1-py3-none-any.whl", hash = "sha256:7996507afae316306f9e2290407761157c6f78002dcf7419acb99822143d1c6f"}, + {file = "jsonschema-4.21.1.tar.gz", hash = "sha256:85727c00279f5fa6bedbe6238d2aa6403bedd8b4864ab11207d07df3cc1b2ee5"}, ] [package.dependencies] @@ -2118,13 +2121,13 @@ test = ["click", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "p [[package]] name = "jupyter-server" -version = "2.12.4" +version = "2.12.5" description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_server-2.12.4-py3-none-any.whl", hash = "sha256:a125ae18a60de568f78f55c84dd58759901a18ef279abf0418ac220653ca1320"}, - {file = "jupyter_server-2.12.4.tar.gz", hash = "sha256:41f4a1e6b912cc24a7c6c694851b37d3d8412b180f43d72315fe422cb2b85cc2"}, + {file = "jupyter_server-2.12.5-py3-none-any.whl", hash = "sha256:184a0f82809a8522777cfb6b760ab6f4b1bb398664c5860a27cec696cb884923"}, + {file = "jupyter_server-2.12.5.tar.gz", hash = "sha256:0edb626c94baa22809be1323f9770cf1c00a952b17097592e40d03e6a3951689"}, ] [package.dependencies] @@ -2177,13 +2180,13 @@ test = ["pytest", "pytest-cov", "pytest-html"] [[package]] name = "jupyter-server-terminals" -version = "0.5.1" +version = "0.5.2" description = "A Jupyter Server Extension Providing Terminals." optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_server_terminals-0.5.1-py3-none-any.whl", hash = "sha256:5e63e947ddd97bb2832db5ef837a258d9ccd4192cd608c1270850ad947ae5dd7"}, - {file = "jupyter_server_terminals-0.5.1.tar.gz", hash = "sha256:16d3be9cf48be6a1f943f3a6c93c033be259cf4779184c66421709cf63dccfea"}, + {file = "jupyter_server_terminals-0.5.2-py3-none-any.whl", hash = "sha256:1b80c12765da979513c42c90215481bbc39bd8ae7c0350b4f85bc3eb58d0fa80"}, + {file = "jupyter_server_terminals-0.5.2.tar.gz", hash = "sha256:396b5ccc0881e550bf0ee7012c6ef1b53edbde69e67cab1d56e89711b46052e8"}, ] [package.dependencies] @@ -2342,71 +2345,71 @@ files = [ [[package]] name = "markupsafe" -version = "2.1.3" +version = "2.1.4" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.7" files = [ - {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-win32.whl", hash = "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-win32.whl", hash = "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-win_amd64.whl", hash = "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win32.whl", hash = "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win32.whl", hash = "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba"}, - {file = "MarkupSafe-2.1.3.tar.gz", hash = "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad"}, + {file = "MarkupSafe-2.1.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:de8153a7aae3835484ac168a9a9bdaa0c5eee4e0bc595503c95d53b942879c84"}, + {file = "MarkupSafe-2.1.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e888ff76ceb39601c59e219f281466c6d7e66bd375b4ec1ce83bcdc68306796b"}, + {file = "MarkupSafe-2.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0b838c37ba596fcbfca71651a104a611543077156cb0a26fe0c475e1f152ee8"}, + {file = "MarkupSafe-2.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dac1ebf6983148b45b5fa48593950f90ed6d1d26300604f321c74a9ca1609f8e"}, + {file = "MarkupSafe-2.1.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0fbad3d346df8f9d72622ac71b69565e621ada2ce6572f37c2eae8dacd60385d"}, + {file = "MarkupSafe-2.1.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d5291d98cd3ad9a562883468c690a2a238c4a6388ab3bd155b0c75dd55ece858"}, + {file = "MarkupSafe-2.1.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a7cc49ef48a3c7a0005a949f3c04f8baa5409d3f663a1b36f0eba9bfe2a0396e"}, + {file = "MarkupSafe-2.1.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b83041cda633871572f0d3c41dddd5582ad7d22f65a72eacd8d3d6d00291df26"}, + {file = "MarkupSafe-2.1.4-cp310-cp310-win32.whl", hash = "sha256:0c26f67b3fe27302d3a412b85ef696792c4a2386293c53ba683a89562f9399b0"}, + {file = "MarkupSafe-2.1.4-cp310-cp310-win_amd64.whl", hash = "sha256:a76055d5cb1c23485d7ddae533229039b850db711c554a12ea64a0fd8a0129e2"}, + {file = "MarkupSafe-2.1.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9e9e3c4020aa2dc62d5dd6743a69e399ce3de58320522948af6140ac959ab863"}, + {file = "MarkupSafe-2.1.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0042d6a9880b38e1dd9ff83146cc3c9c18a059b9360ceae207805567aacccc69"}, + {file = "MarkupSafe-2.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55d03fea4c4e9fd0ad75dc2e7e2b6757b80c152c032ea1d1de487461d8140efc"}, + {file = "MarkupSafe-2.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ab3a886a237f6e9c9f4f7d272067e712cdb4efa774bef494dccad08f39d8ae6"}, + {file = "MarkupSafe-2.1.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abf5ebbec056817057bfafc0445916bb688a255a5146f900445d081db08cbabb"}, + {file = "MarkupSafe-2.1.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e1a0d1924a5013d4f294087e00024ad25668234569289650929ab871231668e7"}, + {file = "MarkupSafe-2.1.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:e7902211afd0af05fbadcc9a312e4cf10f27b779cf1323e78d52377ae4b72bea"}, + {file = "MarkupSafe-2.1.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c669391319973e49a7c6230c218a1e3044710bc1ce4c8e6eb71f7e6d43a2c131"}, + {file = "MarkupSafe-2.1.4-cp311-cp311-win32.whl", hash = "sha256:31f57d64c336b8ccb1966d156932f3daa4fee74176b0fdc48ef580be774aae74"}, + {file = "MarkupSafe-2.1.4-cp311-cp311-win_amd64.whl", hash = "sha256:54a7e1380dfece8847c71bf7e33da5d084e9b889c75eca19100ef98027bd9f56"}, + {file = "MarkupSafe-2.1.4-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:a76cd37d229fc385738bd1ce4cba2a121cf26b53864c1772694ad0ad348e509e"}, + {file = "MarkupSafe-2.1.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:987d13fe1d23e12a66ca2073b8d2e2a75cec2ecb8eab43ff5624ba0ad42764bc"}, + {file = "MarkupSafe-2.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5244324676254697fe5c181fc762284e2c5fceeb1c4e3e7f6aca2b6f107e60dc"}, + {file = "MarkupSafe-2.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78bc995e004681246e85e28e068111a4c3f35f34e6c62da1471e844ee1446250"}, + {file = "MarkupSafe-2.1.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a4d176cfdfde84f732c4a53109b293d05883e952bbba68b857ae446fa3119b4f"}, + {file = "MarkupSafe-2.1.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:f9917691f410a2e0897d1ef99619fd3f7dd503647c8ff2475bf90c3cf222ad74"}, + {file = "MarkupSafe-2.1.4-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:f06e5a9e99b7df44640767842f414ed5d7bedaaa78cd817ce04bbd6fd86e2dd6"}, + {file = "MarkupSafe-2.1.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:396549cea79e8ca4ba65525470d534e8a41070e6b3500ce2414921099cb73e8d"}, + {file = "MarkupSafe-2.1.4-cp312-cp312-win32.whl", hash = "sha256:f6be2d708a9d0e9b0054856f07ac7070fbe1754be40ca8525d5adccdbda8f475"}, + {file = "MarkupSafe-2.1.4-cp312-cp312-win_amd64.whl", hash = "sha256:5045e892cfdaecc5b4c01822f353cf2c8feb88a6ec1c0adef2a2e705eef0f656"}, + {file = "MarkupSafe-2.1.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:7a07f40ef8f0fbc5ef1000d0c78771f4d5ca03b4953fc162749772916b298fc4"}, + {file = "MarkupSafe-2.1.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d18b66fe626ac412d96c2ab536306c736c66cf2a31c243a45025156cc190dc8a"}, + {file = "MarkupSafe-2.1.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:698e84142f3f884114ea8cf83e7a67ca8f4ace8454e78fe960646c6c91c63bfa"}, + {file = "MarkupSafe-2.1.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:49a3b78a5af63ec10d8604180380c13dcd870aba7928c1fe04e881d5c792dc4e"}, + {file = "MarkupSafe-2.1.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:15866d7f2dc60cfdde12ebb4e75e41be862348b4728300c36cdf405e258415ec"}, + {file = "MarkupSafe-2.1.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:6aa5e2e7fc9bc042ae82d8b79d795b9a62bd8f15ba1e7594e3db243f158b5565"}, + {file = "MarkupSafe-2.1.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:54635102ba3cf5da26eb6f96c4b8c53af8a9c0d97b64bdcb592596a6255d8518"}, + {file = "MarkupSafe-2.1.4-cp37-cp37m-win32.whl", hash = "sha256:3583a3a3ab7958e354dc1d25be74aee6228938312ee875a22330c4dc2e41beb0"}, + {file = "MarkupSafe-2.1.4-cp37-cp37m-win_amd64.whl", hash = "sha256:d6e427c7378c7f1b2bef6a344c925b8b63623d3321c09a237b7cc0e77dd98ceb"}, + {file = "MarkupSafe-2.1.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:bf1196dcc239e608605b716e7b166eb5faf4bc192f8a44b81e85251e62584bd2"}, + {file = "MarkupSafe-2.1.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4df98d4a9cd6a88d6a585852f56f2155c9cdb6aec78361a19f938810aa020954"}, + {file = "MarkupSafe-2.1.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b835aba863195269ea358cecc21b400276747cc977492319fd7682b8cd2c253d"}, + {file = "MarkupSafe-2.1.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23984d1bdae01bee794267424af55eef4dfc038dc5d1272860669b2aa025c9e3"}, + {file = "MarkupSafe-2.1.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c98c33ffe20e9a489145d97070a435ea0679fddaabcafe19982fe9c971987d5"}, + {file = "MarkupSafe-2.1.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9896fca4a8eb246defc8b2a7ac77ef7553b638e04fbf170bff78a40fa8a91474"}, + {file = "MarkupSafe-2.1.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:b0fe73bac2fed83839dbdbe6da84ae2a31c11cfc1c777a40dbd8ac8a6ed1560f"}, + {file = "MarkupSafe-2.1.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c7556bafeaa0a50e2fe7dc86e0382dea349ebcad8f010d5a7dc6ba568eaaa789"}, + {file = "MarkupSafe-2.1.4-cp38-cp38-win32.whl", hash = "sha256:fc1a75aa8f11b87910ffd98de62b29d6520b6d6e8a3de69a70ca34dea85d2a8a"}, + {file = "MarkupSafe-2.1.4-cp38-cp38-win_amd64.whl", hash = "sha256:3a66c36a3864df95e4f62f9167c734b3b1192cb0851b43d7cc08040c074c6279"}, + {file = "MarkupSafe-2.1.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:765f036a3d00395a326df2835d8f86b637dbaf9832f90f5d196c3b8a7a5080cb"}, + {file = "MarkupSafe-2.1.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:21e7af8091007bf4bebf4521184f4880a6acab8df0df52ef9e513d8e5db23411"}, + {file = "MarkupSafe-2.1.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5c31fe855c77cad679b302aabc42d724ed87c043b1432d457f4976add1c2c3e"}, + {file = "MarkupSafe-2.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7653fa39578957bc42e5ebc15cf4361d9e0ee4b702d7d5ec96cdac860953c5b4"}, + {file = "MarkupSafe-2.1.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:47bb5f0142b8b64ed1399b6b60f700a580335c8e1c57f2f15587bd072012decc"}, + {file = "MarkupSafe-2.1.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:fe8512ed897d5daf089e5bd010c3dc03bb1bdae00b35588c49b98268d4a01e00"}, + {file = "MarkupSafe-2.1.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:36d7626a8cca4d34216875aee5a1d3d654bb3dac201c1c003d182283e3205949"}, + {file = "MarkupSafe-2.1.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b6f14a9cd50c3cb100eb94b3273131c80d102e19bb20253ac7bd7336118a673a"}, + {file = "MarkupSafe-2.1.4-cp39-cp39-win32.whl", hash = "sha256:c8f253a84dbd2c63c19590fa86a032ef3d8cc18923b8049d91bcdeeb2581fbf6"}, + {file = "MarkupSafe-2.1.4-cp39-cp39-win_amd64.whl", hash = "sha256:8b570a1537367b52396e53325769608f2a687ec9a4363647af1cded8928af959"}, + {file = "MarkupSafe-2.1.4.tar.gz", hash = "sha256:3aae9af4cac263007fd6309c64c6ab4506dd2b79382d9d19a1994f9240b8db4f"}, ] [[package]] @@ -2659,13 +2662,13 @@ test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>= [[package]] name = "nbconvert" -version = "7.14.1" +version = "7.14.2" description = "Converting Jupyter Notebooks" optional = false python-versions = ">=3.8" files = [ - {file = "nbconvert-7.14.1-py3-none-any.whl", hash = "sha256:aa83e3dd27ea38d0c1d908e3ce9518d15fa908dd30521b6d5040bd23f33fffb0"}, - {file = "nbconvert-7.14.1.tar.gz", hash = "sha256:20cba10e0448dc76b3bebfe1adf923663e3b98338daf77b97b42511ef5a88618"}, + {file = "nbconvert-7.14.2-py3-none-any.whl", hash = "sha256:db28590cef90f7faf2ebbc71acd402cbecf13d29176df728c0a9025a49345ea1"}, + {file = "nbconvert-7.14.2.tar.gz", hash = "sha256:a7f8808fd4e082431673ac538400218dd45efd076fbeb07cc6e5aa5a3a4e949e"}, ] [package.dependencies] @@ -2718,13 +2721,13 @@ test = ["pep440", "pre-commit", "pytest", "testpath"] [[package]] name = "nest-asyncio" -version = "1.5.8" +version = "1.6.0" description = "Patch asyncio to allow nested event loops" optional = false python-versions = ">=3.5" files = [ - {file = "nest_asyncio-1.5.8-py3-none-any.whl", hash = "sha256:accda7a339a70599cb08f9dd09a67e0c2ef8d8d6f4c07f96ab203f2ae254e48d"}, - {file = "nest_asyncio-1.5.8.tar.gz", hash = "sha256:25aa2ca0d2a5b5531956b9e273b45cf664cae2b145101d73b86b199978d48fdb"}, + {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"}, + {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, ] [[package]] @@ -2810,13 +2813,13 @@ test = ["matplotlib", "pytest", "pytest-cov"] [[package]] name = "overrides" -version = "7.4.0" +version = "7.6.0" description = "A decorator to automatically detect mismatch when overriding a method." optional = false python-versions = ">=3.6" files = [ - {file = "overrides-7.4.0-py3-none-any.whl", hash = "sha256:3ad24583f86d6d7a49049695efe9933e67ba62f0c7625d53c59fa832ce4b8b7d"}, - {file = "overrides-7.4.0.tar.gz", hash = "sha256:9502a3cca51f4fac40b5feca985b6703a5c1f6ad815588a7ca9e285b9dca6757"}, + {file = "overrides-7.6.0-py3-none-any.whl", hash = "sha256:c36e6635519ea9c5b043b65c36d4b886aee8bd45b7d4681d2a6df0898df4b654"}, + {file = "overrides-7.6.0.tar.gz", hash = "sha256:01e15bbbf15b766f0675c275baa1878bd1c7dc9bc7b9ee13e677cdba93dc1bd9"}, ] [[package]] @@ -2832,13 +2835,13 @@ files = [ [[package]] name = "pandocfilters" -version = "1.5.0" +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.*" files = [ - {file = "pandocfilters-1.5.0-py2.py3-none-any.whl", hash = "sha256:33aae3f25fd1a026079f5d27bdd52496f0e0803b3469282162bafdcbdf6ef14f"}, - {file = "pandocfilters-1.5.0.tar.gz", hash = "sha256:0b679503337d233b4339a817bfc8c50064e2eff681314376a47cb582305a7a38"}, + {file = "pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc"}, + {file = "pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e"}, ] [[package]] @@ -3096,27 +3099,27 @@ files = [ [[package]] name = "psutil" -version = "5.9.7" +version = "5.9.8" description = "Cross-platform lib for process and system monitoring in Python." optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ - {file = "psutil-5.9.7-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:0bd41bf2d1463dfa535942b2a8f0e958acf6607ac0be52265ab31f7923bcd5e6"}, - {file = "psutil-5.9.7-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:5794944462509e49d4d458f4dbfb92c47539e7d8d15c796f141f474010084056"}, - {file = "psutil-5.9.7-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:fe361f743cb3389b8efda21980d93eb55c1f1e3898269bc9a2a1d0bb7b1f6508"}, - {file = "psutil-5.9.7-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:e469990e28f1ad738f65a42dcfc17adaed9d0f325d55047593cb9033a0ab63df"}, - {file = "psutil-5.9.7-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:3c4747a3e2ead1589e647e64aad601981f01b68f9398ddf94d01e3dc0d1e57c7"}, - {file = "psutil-5.9.7-cp27-none-win32.whl", hash = "sha256:1d4bc4a0148fdd7fd8f38e0498639ae128e64538faa507df25a20f8f7fb2341c"}, - {file = "psutil-5.9.7-cp27-none-win_amd64.whl", hash = "sha256:4c03362e280d06bbbfcd52f29acd79c733e0af33d707c54255d21029b8b32ba6"}, - {file = "psutil-5.9.7-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ea36cc62e69a13ec52b2f625c27527f6e4479bca2b340b7a452af55b34fcbe2e"}, - {file = "psutil-5.9.7-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1132704b876e58d277168cd729d64750633d5ff0183acf5b3c986b8466cd0284"}, - {file = "psutil-5.9.7-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe8b7f07948f1304497ce4f4684881250cd859b16d06a1dc4d7941eeb6233bfe"}, - {file = "psutil-5.9.7-cp36-cp36m-win32.whl", hash = "sha256:b27f8fdb190c8c03914f908a4555159327d7481dac2f01008d483137ef3311a9"}, - {file = "psutil-5.9.7-cp36-cp36m-win_amd64.whl", hash = "sha256:44969859757f4d8f2a9bd5b76eba8c3099a2c8cf3992ff62144061e39ba8568e"}, - {file = "psutil-5.9.7-cp37-abi3-win32.whl", hash = "sha256:c727ca5a9b2dd5193b8644b9f0c883d54f1248310023b5ad3e92036c5e2ada68"}, - {file = "psutil-5.9.7-cp37-abi3-win_amd64.whl", hash = "sha256:f37f87e4d73b79e6c5e749440c3113b81d1ee7d26f21c19c47371ddea834f414"}, - {file = "psutil-5.9.7-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:032f4f2c909818c86cea4fe2cc407f1c0f0cde8e6c6d702b28b8ce0c0d143340"}, - {file = "psutil-5.9.7.tar.gz", hash = "sha256:3f02134e82cfb5d089fddf20bb2e03fd5cd52395321d1c8458a9e58500ff417c"}, + {file = "psutil-5.9.8-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8"}, + {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73"}, + {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:611052c4bc70432ec770d5d54f64206aa7203a101ec273a0cd82418c86503bb7"}, + {file = "psutil-5.9.8-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:50187900d73c1381ba1454cf40308c2bf6f34268518b3f36a9b663ca87e65e36"}, + {file = "psutil-5.9.8-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:02615ed8c5ea222323408ceba16c60e99c3f91639b07da6373fb7e6539abc56d"}, + {file = "psutil-5.9.8-cp27-none-win32.whl", hash = "sha256:36f435891adb138ed3c9e58c6af3e2e6ca9ac2f365efe1f9cfef2794e6c93b4e"}, + {file = "psutil-5.9.8-cp27-none-win_amd64.whl", hash = "sha256:bd1184ceb3f87651a67b2708d4c3338e9b10c5df903f2e3776b62303b26cb631"}, + {file = "psutil-5.9.8-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81"}, + {file = "psutil-5.9.8-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421"}, + {file = "psutil-5.9.8-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4"}, + {file = "psutil-5.9.8-cp36-cp36m-win32.whl", hash = "sha256:7d79560ad97af658a0f6adfef8b834b53f64746d45b403f225b85c5c2c140eee"}, + {file = "psutil-5.9.8-cp36-cp36m-win_amd64.whl", hash = "sha256:27cc40c3493bb10de1be4b3f07cae4c010ce715290a5be22b98493509c6299e2"}, + {file = "psutil-5.9.8-cp37-abi3-win32.whl", hash = "sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0"}, + {file = "psutil-5.9.8-cp37-abi3-win_amd64.whl", hash = "sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf"}, + {file = "psutil-5.9.8-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8"}, + {file = "psutil-5.9.8.tar.gz", hash = "sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c"}, ] [package.extras] @@ -3399,13 +3402,13 @@ files = [ [[package]] name = "pyvista" -version = "0.43.1" +version = "0.43.2" description = "Easier Pythonic interface to VTK" optional = false python-versions = ">=3.8" files = [ - {file = "pyvista-0.43.1-py3-none-any.whl", hash = "sha256:e7e7597c3938ad7e695a1de724ba4d5fcb05cdfa4ac81bb9bee7e75659c25f8a"}, - {file = "pyvista-0.43.1.tar.gz", hash = "sha256:dd2c484d85da2c677a4fd01e801cd8f49a311be602088b0e43cfe9746db0c552"}, + {file = "pyvista-0.43.2-py3-none-any.whl", hash = "sha256:798a62eddb307e09d18e86ee75141fd8bc90d497bb5da9695fdc52f69ebac204"}, + {file = "pyvista-0.43.2.tar.gz", hash = "sha256:8e39040c356669fcd814ca10df775d0dbf17910c116cc6ec5f43431274201f77"}, ] [package.dependencies] @@ -3480,7 +3483,6 @@ files = [ {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, - {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, @@ -3488,15 +3490,8 @@ files = [ {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, - {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, - {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, - {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, - {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, @@ -3513,7 +3508,6 @@ files = [ {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, - {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, @@ -3521,7 +3515,6 @@ files = [ {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, - {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, @@ -3695,110 +3688,110 @@ files = [ [[package]] name = "rpds-py" -version = "0.16.2" +version = "0.17.1" description = "Python bindings to Rust's persistent data structures (rpds)" optional = false python-versions = ">=3.8" files = [ - {file = "rpds_py-0.16.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:509b617ac787cd1149600e731db9274ebbef094503ca25158e6f23edaba1ca8f"}, - {file = "rpds_py-0.16.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:413b9c17388bbd0d87a329d8e30c1a4c6e44e2bb25457f43725a8e6fe4161e9e"}, - {file = "rpds_py-0.16.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2946b120718eba9af2b4dd103affc1164a87b9e9ebff8c3e4c05d7b7a7e274e2"}, - {file = "rpds_py-0.16.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:35ae5ece284cf36464eb160880018cf6088a9ac5ddc72292a6092b6ef3f4da53"}, - {file = "rpds_py-0.16.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3dc6a7620ba7639a3db6213da61312cb4aa9ac0ca6e00dc1cbbdc21c2aa6eb57"}, - {file = "rpds_py-0.16.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8cb6fe8ecdfffa0e711a75c931fb39f4ba382b4b3ccedeca43f18693864fe850"}, - {file = "rpds_py-0.16.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6dace7b26a13353e24613417ce2239491b40a6ad44e5776a18eaff7733488b44"}, - {file = "rpds_py-0.16.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1bdbc5fcb04a7309074de6b67fa9bc4b418ab3fc435fec1f2779a0eced688d04"}, - {file = "rpds_py-0.16.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f42e25c016927e2a6b1ce748112c3ab134261fc2ddc867e92d02006103e1b1b7"}, - {file = "rpds_py-0.16.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:eab36eae3f3e8e24b05748ec9acc66286662f5d25c52ad70cadab544e034536b"}, - {file = "rpds_py-0.16.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0474df4ade9a3b4af96c3d36eb81856cb9462e4c6657d4caecfd840d2a13f3c9"}, - {file = "rpds_py-0.16.2-cp310-none-win32.whl", hash = "sha256:84c5a4d1f9dd7e2d2c44097fb09fffe728629bad31eb56caf97719e55575aa82"}, - {file = "rpds_py-0.16.2-cp310-none-win_amd64.whl", hash = "sha256:2bd82db36cd70b3628c0c57d81d2438e8dd4b7b32a6a9f25f24ab0e657cb6c4e"}, - {file = "rpds_py-0.16.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:adc0c3d6fc6ae35fee3e4917628983f6ce630d513cbaad575b4517d47e81b4bb"}, - {file = "rpds_py-0.16.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ec23fcad480e77ede06cf4127a25fc440f7489922e17fc058f426b5256ee0edb"}, - {file = "rpds_py-0.16.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07aab64e2808c3ebac2a44f67e9dc0543812b715126dfd6fe4264df527556cb6"}, - {file = "rpds_py-0.16.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a4ebb8b20bd09c5ce7884c8f0388801100f5e75e7f733b1b6613c713371feefc"}, - {file = "rpds_py-0.16.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a3d7e2ea25d3517c6d7e5a1cc3702cffa6bd18d9ef8d08d9af6717fc1c700eed"}, - {file = "rpds_py-0.16.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f28ac0e8e7242d140f99402a903a2c596ab71550272ae9247ad78f9a932b5698"}, - {file = "rpds_py-0.16.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19f00f57fdd38db4bb5ad09f9ead1b535332dbf624200e9029a45f1f35527ebb"}, - {file = "rpds_py-0.16.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3da5a4c56953bdbf6d04447c3410309616c54433146ccdb4a277b9cb499bc10e"}, - {file = "rpds_py-0.16.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ec2e1cf025b2c0f48ec17ff3e642661da7ee332d326f2e6619366ce8e221f018"}, - {file = "rpds_py-0.16.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e0441fb4fdd39a230477b2ca9be90868af64425bfe7b122b57e61e45737a653b"}, - {file = "rpds_py-0.16.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9f0350ef2fba5f34eb0c9000ea328e51b9572b403d2f7f3b19f24085f6f598e8"}, - {file = "rpds_py-0.16.2-cp311-none-win32.whl", hash = "sha256:5a80e2f83391ad0808b4646732af2a7b67550b98f0cae056cb3b40622a83dbb3"}, - {file = "rpds_py-0.16.2-cp311-none-win_amd64.whl", hash = "sha256:e04e56b4ca7a770593633556e8e9e46579d66ec2ada846b401252a2bdcf70a6d"}, - {file = "rpds_py-0.16.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:5e6caa3809e50690bd92fa490f5c38caa86082c8c3315aa438bce43786d5e90d"}, - {file = "rpds_py-0.16.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2e53b9b25cac9065328901713a7e9e3b12e4f57ef4280b370fbbf6fef2052eef"}, - {file = "rpds_py-0.16.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:af27423662f32d7501a00c5e7342f7dbd1e4a718aea7a239781357d15d437133"}, - {file = "rpds_py-0.16.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:43d4dd5fb16eb3825742bad8339d454054261ab59fed2fbac84e1d84d5aae7ba"}, - {file = "rpds_py-0.16.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e061de3b745fe611e23cd7318aec2c8b0e4153939c25c9202a5811ca911fd733"}, - {file = "rpds_py-0.16.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b811d182ad17ea294f2ec63c0621e7be92a1141e1012383461872cead87468f"}, - {file = "rpds_py-0.16.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5552f328eaef1a75ff129d4d0c437bf44e43f9436d3996e8eab623ea0f5fcf73"}, - {file = "rpds_py-0.16.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:dcbe1f8dd179e4d69b70b1f1d9bb6fd1e7e1bdc9c9aad345cdeb332e29d40748"}, - {file = "rpds_py-0.16.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8aad80645a011abae487d356e0ceb359f4938dfb6f7bcc410027ed7ae4f7bb8b"}, - {file = "rpds_py-0.16.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b6f5549d6ed1da9bfe3631ca9483ae906f21410be2445b73443fa9f017601c6f"}, - {file = "rpds_py-0.16.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d452817e0d9c749c431a1121d56a777bd7099b720b3d1c820f1725cb40928f58"}, - {file = "rpds_py-0.16.2-cp312-none-win32.whl", hash = "sha256:888a97002e986eca10d8546e3c8b97da1d47ad8b69726dcfeb3e56348ebb28a3"}, - {file = "rpds_py-0.16.2-cp312-none-win_amd64.whl", hash = "sha256:d8dda2a806dfa4a9b795950c4f5cc56d6d6159f7d68080aedaff3bdc9b5032f5"}, - {file = "rpds_py-0.16.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:071980663c273bf3d388fe5c794c547e6f35ba3335477072c713a3176bf14a60"}, - {file = "rpds_py-0.16.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:726ac36e8a3bb8daef2fd482534cabc5e17334052447008405daca7ca04a3108"}, - {file = "rpds_py-0.16.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9e557db6a177470316c82f023e5d571811c9a4422b5ea084c85da9aa3c035fc"}, - {file = "rpds_py-0.16.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:90123853fc8b1747f80b0d354be3d122b4365a93e50fc3aacc9fb4c2488845d6"}, - {file = "rpds_py-0.16.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a61f659665a39a4d17d699ab3593d7116d66e1e2e3f03ef3fb8f484e91908808"}, - {file = "rpds_py-0.16.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cc97f0640e91d7776530f06e6836c546c1c752a52de158720c4224c9e8053cad"}, - {file = "rpds_py-0.16.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44a54e99a2b9693a37ebf245937fd6e9228b4cbd64b9cc961e1f3391ec6c7391"}, - {file = "rpds_py-0.16.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bd4b677d929cf1f6bac07ad76e0f2d5de367e6373351c01a9c0a39f6b21b4a8b"}, - {file = "rpds_py-0.16.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:5ef00873303d678aaf8b0627e111fd434925ca01c657dbb2641410f1cdaef261"}, - {file = "rpds_py-0.16.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:349cb40897fd529ca15317c22c0eab67f5ac5178b5bd2c6adc86172045210acc"}, - {file = "rpds_py-0.16.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:2ddef620e70eaffebed5932ce754d539c0930f676aae6212f8e16cd9743dd365"}, - {file = "rpds_py-0.16.2-cp38-none-win32.whl", hash = "sha256:882ce6e25e585949c3d9f9abd29202367175e0aab3aba0c58c9abbb37d4982ff"}, - {file = "rpds_py-0.16.2-cp38-none-win_amd64.whl", hash = "sha256:f4bd4578e44f26997e9e56c96dedc5f1af43cc9d16c4daa29c771a00b2a26851"}, - {file = "rpds_py-0.16.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:69ac7ea9897ec201ce68b48582f3eb34a3f9924488a5432a93f177bf76a82a7e"}, - {file = "rpds_py-0.16.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a9880b4656efe36ccad41edc66789e191e5ee19a1ea8811e0aed6f69851a82f4"}, - {file = "rpds_py-0.16.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee94cb58c0ba2c62ee108c2b7c9131b2c66a29e82746e8fa3aa1a1effbd3dcf1"}, - {file = "rpds_py-0.16.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:24f7a2eb3866a9e91f4599851e0c8d39878a470044875c49bd528d2b9b88361c"}, - {file = "rpds_py-0.16.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ca57468da2d9a660bcf8961637c85f2fbb2aa64d9bc3f9484e30c3f9f67b1dd7"}, - {file = "rpds_py-0.16.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ccd4e400309e1f34a5095bf9249d371f0fd60f8a3a5c4a791cad7b99ce1fd38d"}, - {file = "rpds_py-0.16.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80443fe2f7b3ea3934c5d75fb0e04a5dbb4a8e943e5ff2de0dec059202b70a8b"}, - {file = "rpds_py-0.16.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4d6a9f052e72d493efd92a77f861e45bab2f6be63e37fa8ecf0c6fd1a58fedb0"}, - {file = "rpds_py-0.16.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:35953f4f2b3216421af86fd236b7c0c65935936a94ea83ddbd4904ba60757773"}, - {file = "rpds_py-0.16.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:981d135c7cdaf6cd8eadae1c950de43b976de8f09d8e800feed307140d3d6d00"}, - {file = "rpds_py-0.16.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:d0dd7ed2f16df2e129496e7fbe59a34bc2d7fc8db443a606644d069eb69cbd45"}, - {file = "rpds_py-0.16.2-cp39-none-win32.whl", hash = "sha256:703d95c75a72e902544fda08e965885525e297578317989fd15a6ce58414b41d"}, - {file = "rpds_py-0.16.2-cp39-none-win_amd64.whl", hash = "sha256:e93ec1b300acf89730cf27975ef574396bc04edecc358e9bd116fb387a123239"}, - {file = "rpds_py-0.16.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:44627b6ca7308680a70766454db5249105fa6344853af6762eaad4158a2feebe"}, - {file = "rpds_py-0.16.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:3f91df8e6dbb7360e176d1affd5fb0246d2b88d16aa5ebc7db94fd66b68b61da"}, - {file = "rpds_py-0.16.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d904c5693e08bad240f16d79305edba78276be87061c872a4a15e2c301fa2c0"}, - {file = "rpds_py-0.16.2-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:290a81cfbe4673285cdf140ec5cd1658ffbf63ab359f2b352ebe172e7cfa5bf0"}, - {file = "rpds_py-0.16.2-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b634c5ec0103c5cbebc24ebac4872b045cccb9456fc59efdcf6fe39775365bd2"}, - {file = "rpds_py-0.16.2-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a297a4d08cc67c7466c873c78039d87840fb50d05473db0ec1b7b03d179bf322"}, - {file = "rpds_py-0.16.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2e75e17bd0bb66ee34a707da677e47c14ee51ccef78ed6a263a4cc965a072a1"}, - {file = "rpds_py-0.16.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f1b9d9260e06ea017feb7172976ab261e011c1dc2f8883c7c274f6b2aabfe01a"}, - {file = "rpds_py-0.16.2-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:162d7cd9cd311c1b0ff1c55a024b8f38bd8aad1876b648821da08adc40e95734"}, - {file = "rpds_py-0.16.2-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:9b32f742ce5b57201305f19c2ef7a184b52f6f9ba6871cc042c2a61f0d6b49b8"}, - {file = "rpds_py-0.16.2-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ac08472f41ea77cd6a5dae36ae7d4ed3951d6602833af87532b556c1b4601d63"}, - {file = "rpds_py-0.16.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:495a14b72bbe217f2695dcd9b5ab14d4f8066a00f5d209ed94f0aca307f85f6e"}, - {file = "rpds_py-0.16.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:8d6b6937ae9eac6d6c0ca3c42774d89fa311f55adff3970fb364b34abde6ed3d"}, - {file = "rpds_py-0.16.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a61226465bda9283686db8f17d02569a98e4b13c637be5a26d44aa1f1e361c2"}, - {file = "rpds_py-0.16.2-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5cf6af100ffb5c195beec11ffaa8cf8523057f123afa2944e6571d54da84cdc9"}, - {file = "rpds_py-0.16.2-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6df15846ee3fb2e6397fe25d7ca6624af9f89587f3f259d177b556fed6bebe2c"}, - {file = "rpds_py-0.16.2-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1be2f033df1b8be8c3167ba3c29d5dca425592ee31e35eac52050623afba5772"}, - {file = "rpds_py-0.16.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96f957d6ab25a78b9e7fc9749d754b98eac825a112b4e666525ce89afcbd9ed5"}, - {file = "rpds_py-0.16.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:088396c7c70e59872f67462fcac3ecbded5233385797021976a09ebd55961dfe"}, - {file = "rpds_py-0.16.2-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4c46ad6356e1561f2a54f08367d1d2e70a0a1bb2db2282d2c1972c1d38eafc3b"}, - {file = "rpds_py-0.16.2-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:47713dc4fce213f5c74ca8a1f6a59b622fc1b90868deb8e8e4d993e421b4b39d"}, - {file = "rpds_py-0.16.2-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:f811771019f063bbd0aa7bb72c8a934bc13ebacb4672d712fc1639cfd314cccc"}, - {file = "rpds_py-0.16.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f19afcfc0dd0dca35694df441e9b0f95bc231b512f51bded3c3d8ca32153ec19"}, - {file = "rpds_py-0.16.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a4b682c5775d6a3d21e314c10124599976809455ee67020e8e72df1769b87bc3"}, - {file = "rpds_py-0.16.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c647ca87fc0ebe808a41de912e9a1bfef9acb85257e5d63691364ac16b81c1f0"}, - {file = "rpds_py-0.16.2-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:302bd4983bbd47063e452c38be66153760112f6d3635c7eeefc094299fa400a9"}, - {file = "rpds_py-0.16.2-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bf721ede3eb7b829e4a9b8142bd55db0bdc82902720548a703f7e601ee13bdc3"}, - {file = "rpds_py-0.16.2-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:358dafc89ce3894c7f486c615ba914609f38277ef67f566abc4c854d23b997fa"}, - {file = "rpds_py-0.16.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cad0f59ee3dc35526039f4bc23642d52d5f6616b5f687d846bfc6d0d6d486db0"}, - {file = "rpds_py-0.16.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cffa76b385dfe1e38527662a302b19ffb0e7f5cf7dd5e89186d2c94a22dd9d0c"}, - {file = "rpds_py-0.16.2-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:83640a5d7cd3bff694747d50436b8b541b5b9b9782b0c8c1688931d6ee1a1f2d"}, - {file = "rpds_py-0.16.2-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:ed99b4f7179d2111702020fd7d156e88acd533f5a7d3971353e568b6051d5c97"}, - {file = "rpds_py-0.16.2-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:4022b9dc620e14f30201a8a73898a873c8e910cb642bcd2f3411123bc527f6ac"}, - {file = "rpds_py-0.16.2.tar.gz", hash = "sha256:781ef8bfc091b19960fc0142a23aedadafa826bc32b433fdfe6fd7f964d7ef44"}, + {file = "rpds_py-0.17.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:4128980a14ed805e1b91a7ed551250282a8ddf8201a4e9f8f5b7e6225f54170d"}, + {file = "rpds_py-0.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ff1dcb8e8bc2261a088821b2595ef031c91d499a0c1b031c152d43fe0a6ecec8"}, + {file = "rpds_py-0.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d65e6b4f1443048eb7e833c2accb4fa7ee67cc7d54f31b4f0555b474758bee55"}, + {file = "rpds_py-0.17.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a71169d505af63bb4d20d23a8fbd4c6ce272e7bce6cc31f617152aa784436f29"}, + {file = "rpds_py-0.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:436474f17733c7dca0fbf096d36ae65277e8645039df12a0fa52445ca494729d"}, + {file = "rpds_py-0.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:10162fe3f5f47c37ebf6d8ff5a2368508fe22007e3077bf25b9c7d803454d921"}, + {file = "rpds_py-0.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:720215373a280f78a1814becb1312d4e4d1077b1202a56d2b0815e95ccb99ce9"}, + {file = "rpds_py-0.17.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:70fcc6c2906cfa5c6a552ba7ae2ce64b6c32f437d8f3f8eea49925b278a61453"}, + {file = "rpds_py-0.17.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:91e5a8200e65aaac342a791272c564dffcf1281abd635d304d6c4e6b495f29dc"}, + {file = "rpds_py-0.17.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:99f567dae93e10be2daaa896e07513dd4bf9c2ecf0576e0533ac36ba3b1d5394"}, + {file = "rpds_py-0.17.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:24e4900a6643f87058a27320f81336d527ccfe503984528edde4bb660c8c8d59"}, + {file = "rpds_py-0.17.1-cp310-none-win32.whl", hash = "sha256:0bfb09bf41fe7c51413f563373e5f537eaa653d7adc4830399d4e9bdc199959d"}, + {file = "rpds_py-0.17.1-cp310-none-win_amd64.whl", hash = "sha256:20de7b7179e2031a04042e85dc463a93a82bc177eeba5ddd13ff746325558aa6"}, + {file = "rpds_py-0.17.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:65dcf105c1943cba45d19207ef51b8bc46d232a381e94dd38719d52d3980015b"}, + {file = "rpds_py-0.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:01f58a7306b64e0a4fe042047dd2b7d411ee82e54240284bab63e325762c1147"}, + {file = "rpds_py-0.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:071bc28c589b86bc6351a339114fb7a029f5cddbaca34103aa573eba7b482382"}, + {file = "rpds_py-0.17.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ae35e8e6801c5ab071b992cb2da958eee76340e6926ec693b5ff7d6381441745"}, + {file = "rpds_py-0.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:149c5cd24f729e3567b56e1795f74577aa3126c14c11e457bec1b1c90d212e38"}, + {file = "rpds_py-0.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e796051f2070f47230c745d0a77a91088fbee2cc0502e9b796b9c6471983718c"}, + {file = "rpds_py-0.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60e820ee1004327609b28db8307acc27f5f2e9a0b185b2064c5f23e815f248f8"}, + {file = "rpds_py-0.17.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1957a2ab607f9added64478a6982742eb29f109d89d065fa44e01691a20fc20a"}, + {file = "rpds_py-0.17.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8587fd64c2a91c33cdc39d0cebdaf30e79491cc029a37fcd458ba863f8815383"}, + {file = "rpds_py-0.17.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4dc889a9d8a34758d0fcc9ac86adb97bab3fb7f0c4d29794357eb147536483fd"}, + {file = "rpds_py-0.17.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2953937f83820376b5979318840f3ee47477d94c17b940fe31d9458d79ae7eea"}, + {file = "rpds_py-0.17.1-cp311-none-win32.whl", hash = "sha256:1bfcad3109c1e5ba3cbe2f421614e70439f72897515a96c462ea657261b96518"}, + {file = "rpds_py-0.17.1-cp311-none-win_amd64.whl", hash = "sha256:99da0a4686ada4ed0f778120a0ea8d066de1a0a92ab0d13ae68492a437db78bf"}, + {file = "rpds_py-0.17.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:1dc29db3900cb1bb40353772417800f29c3d078dbc8024fd64655a04ee3c4bdf"}, + {file = "rpds_py-0.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:82ada4a8ed9e82e443fcef87e22a3eed3654dd3adf6e3b3a0deb70f03e86142a"}, + {file = "rpds_py-0.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d36b2b59e8cc6e576f8f7b671e32f2ff43153f0ad6d0201250a7c07f25d570e"}, + {file = "rpds_py-0.17.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3677fcca7fb728c86a78660c7fb1b07b69b281964673f486ae72860e13f512ad"}, + {file = "rpds_py-0.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:516fb8c77805159e97a689e2f1c80655c7658f5af601c34ffdb916605598cda2"}, + {file = "rpds_py-0.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:df3b6f45ba4515632c5064e35ca7f31d51d13d1479673185ba8f9fefbbed58b9"}, + {file = "rpds_py-0.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a967dd6afda7715d911c25a6ba1517975acd8d1092b2f326718725461a3d33f9"}, + {file = "rpds_py-0.17.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:dbbb95e6fc91ea3102505d111b327004d1c4ce98d56a4a02e82cd451f9f57140"}, + {file = "rpds_py-0.17.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:02866e060219514940342a1f84303a1ef7a1dad0ac311792fbbe19b521b489d2"}, + {file = "rpds_py-0.17.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:2528ff96d09f12e638695f3a2e0c609c7b84c6df7c5ae9bfeb9252b6fa686253"}, + {file = "rpds_py-0.17.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bd345a13ce06e94c753dab52f8e71e5252aec1e4f8022d24d56decd31e1b9b23"}, + {file = "rpds_py-0.17.1-cp312-none-win32.whl", hash = "sha256:2a792b2e1d3038daa83fa474d559acfd6dc1e3650ee93b2662ddc17dbff20ad1"}, + {file = "rpds_py-0.17.1-cp312-none-win_amd64.whl", hash = "sha256:292f7344a3301802e7c25c53792fae7d1593cb0e50964e7bcdcc5cf533d634e3"}, + {file = "rpds_py-0.17.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:8ffe53e1d8ef2520ebcf0c9fec15bb721da59e8ef283b6ff3079613b1e30513d"}, + {file = "rpds_py-0.17.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4341bd7579611cf50e7b20bb8c2e23512a3dc79de987a1f411cb458ab670eb90"}, + {file = "rpds_py-0.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f4eb548daf4836e3b2c662033bfbfc551db58d30fd8fe660314f86bf8510b93"}, + {file = "rpds_py-0.17.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b686f25377f9c006acbac63f61614416a6317133ab7fafe5de5f7dc8a06d42eb"}, + {file = "rpds_py-0.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4e21b76075c01d65d0f0f34302b5a7457d95721d5e0667aea65e5bb3ab415c25"}, + {file = "rpds_py-0.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b86b21b348f7e5485fae740d845c65a880f5d1eda1e063bc59bef92d1f7d0c55"}, + {file = "rpds_py-0.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f175e95a197f6a4059b50757a3dca33b32b61691bdbd22c29e8a8d21d3914cae"}, + {file = "rpds_py-0.17.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1701fc54460ae2e5efc1dd6350eafd7a760f516df8dbe51d4a1c79d69472fbd4"}, + {file = "rpds_py-0.17.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:9051e3d2af8f55b42061603e29e744724cb5f65b128a491446cc029b3e2ea896"}, + {file = "rpds_py-0.17.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:7450dbd659fed6dd41d1a7d47ed767e893ba402af8ae664c157c255ec6067fde"}, + {file = "rpds_py-0.17.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:5a024fa96d541fd7edaa0e9d904601c6445e95a729a2900c5aec6555fe921ed6"}, + {file = "rpds_py-0.17.1-cp38-none-win32.whl", hash = "sha256:da1ead63368c04a9bded7904757dfcae01eba0e0f9bc41d3d7f57ebf1c04015a"}, + {file = "rpds_py-0.17.1-cp38-none-win_amd64.whl", hash = "sha256:841320e1841bb53fada91c9725e766bb25009cfd4144e92298db296fb6c894fb"}, + {file = "rpds_py-0.17.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:f6c43b6f97209e370124baf2bf40bb1e8edc25311a158867eb1c3a5d449ebc7a"}, + {file = "rpds_py-0.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7d63ec01fe7c76c2dbb7e972fece45acbb8836e72682bde138e7e039906e2c"}, + {file = "rpds_py-0.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81038ff87a4e04c22e1d81f947c6ac46f122e0c80460b9006e6517c4d842a6ec"}, + {file = "rpds_py-0.17.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:810685321f4a304b2b55577c915bece4c4a06dfe38f6e62d9cc1d6ca8ee86b99"}, + {file = "rpds_py-0.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:25f071737dae674ca8937a73d0f43f5a52e92c2d178330b4c0bb6ab05586ffa6"}, + {file = "rpds_py-0.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aa5bfb13f1e89151ade0eb812f7b0d7a4d643406caaad65ce1cbabe0a66d695f"}, + {file = "rpds_py-0.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfe07308b311a8293a0d5ef4e61411c5c20f682db6b5e73de6c7c8824272c256"}, + {file = "rpds_py-0.17.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a000133a90eea274a6f28adc3084643263b1e7c1a5a66eb0a0a7a36aa757ed74"}, + {file = "rpds_py-0.17.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5d0e8a6434a3fbf77d11448c9c25b2f25244226cfbec1a5159947cac5b8c5fa4"}, + {file = "rpds_py-0.17.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:efa767c220d94aa4ac3a6dd3aeb986e9f229eaf5bce92d8b1b3018d06bed3772"}, + {file = "rpds_py-0.17.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:dbc56680ecf585a384fbd93cd42bc82668b77cb525343170a2d86dafaed2a84b"}, + {file = "rpds_py-0.17.1-cp39-none-win32.whl", hash = "sha256:270987bc22e7e5a962b1094953ae901395e8c1e1e83ad016c5cfcfff75a15a3f"}, + {file = "rpds_py-0.17.1-cp39-none-win_amd64.whl", hash = "sha256:2a7b2f2f56a16a6d62e55354dd329d929560442bd92e87397b7a9586a32e3e76"}, + {file = "rpds_py-0.17.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a3264e3e858de4fc601741498215835ff324ff2482fd4e4af61b46512dd7fc83"}, + {file = "rpds_py-0.17.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:f2f3b28b40fddcb6c1f1f6c88c6f3769cd933fa493ceb79da45968a21dccc920"}, + {file = "rpds_py-0.17.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9584f8f52010295a4a417221861df9bea4c72d9632562b6e59b3c7b87a1522b7"}, + {file = "rpds_py-0.17.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c64602e8be701c6cfe42064b71c84ce62ce66ddc6422c15463fd8127db3d8066"}, + {file = "rpds_py-0.17.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:060f412230d5f19fc8c8b75f315931b408d8ebf56aec33ef4168d1b9e54200b1"}, + {file = "rpds_py-0.17.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9412abdf0ba70faa6e2ee6c0cc62a8defb772e78860cef419865917d86c7342"}, + {file = "rpds_py-0.17.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9737bdaa0ad33d34c0efc718741abaafce62fadae72c8b251df9b0c823c63b22"}, + {file = "rpds_py-0.17.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9f0e4dc0f17dcea4ab9d13ac5c666b6b5337042b4d8f27e01b70fae41dd65c57"}, + {file = "rpds_py-0.17.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1db228102ab9d1ff4c64148c96320d0be7044fa28bd865a9ce628ce98da5973d"}, + {file = "rpds_py-0.17.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:d8bbd8e56f3ba25a7d0cf980fc42b34028848a53a0e36c9918550e0280b9d0b6"}, + {file = "rpds_py-0.17.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:be22ae34d68544df293152b7e50895ba70d2a833ad9566932d750d3625918b82"}, + {file = "rpds_py-0.17.1-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bf046179d011e6114daf12a534d874958b039342b347348a78b7cdf0dd9d6041"}, + {file = "rpds_py-0.17.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:1a746a6d49665058a5896000e8d9d2f1a6acba8a03b389c1e4c06e11e0b7f40d"}, + {file = "rpds_py-0.17.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0b8bf5b8db49d8fd40f54772a1dcf262e8be0ad2ab0206b5a2ec109c176c0a4"}, + {file = "rpds_py-0.17.1-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f7f4cb1f173385e8a39c29510dd11a78bf44e360fb75610594973f5ea141028b"}, + {file = "rpds_py-0.17.1-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7fbd70cb8b54fe745301921b0816c08b6d917593429dfc437fd024b5ba713c58"}, + {file = "rpds_py-0.17.1-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9bdf1303df671179eaf2cb41e8515a07fc78d9d00f111eadbe3e14262f59c3d0"}, + {file = "rpds_py-0.17.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fad059a4bd14c45776600d223ec194e77db6c20255578bb5bcdd7c18fd169361"}, + {file = "rpds_py-0.17.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3664d126d3388a887db44c2e293f87d500c4184ec43d5d14d2d2babdb4c64cad"}, + {file = "rpds_py-0.17.1-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:698ea95a60c8b16b58be9d854c9f993c639f5c214cf9ba782eca53a8789d6b19"}, + {file = "rpds_py-0.17.1-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:c3d2010656999b63e628a3c694f23020322b4178c450dc478558a2b6ef3cb9bb"}, + {file = "rpds_py-0.17.1-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:938eab7323a736533f015e6069a7d53ef2dcc841e4e533b782c2bfb9fb12d84b"}, + {file = "rpds_py-0.17.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:1e626b365293a2142a62b9a614e1f8e331b28f3ca57b9f05ebbf4cf2a0f0bdc5"}, + {file = "rpds_py-0.17.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:380e0df2e9d5d5d339803cfc6d183a5442ad7ab3c63c2a0982e8c824566c5ccc"}, + {file = "rpds_py-0.17.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b760a56e080a826c2e5af09002c1a037382ed21d03134eb6294812dda268c811"}, + {file = "rpds_py-0.17.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5576ee2f3a309d2bb403ec292d5958ce03953b0e57a11d224c1f134feaf8c40f"}, + {file = "rpds_py-0.17.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f3c3461ebb4c4f1bbc70b15d20b565759f97a5aaf13af811fcefc892e9197ba"}, + {file = "rpds_py-0.17.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:637b802f3f069a64436d432117a7e58fab414b4e27a7e81049817ae94de45d8d"}, + {file = "rpds_py-0.17.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffee088ea9b593cc6160518ba9bd319b5475e5f3e578e4552d63818773c6f56a"}, + {file = "rpds_py-0.17.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3ac732390d529d8469b831949c78085b034bff67f584559340008d0f6041a049"}, + {file = "rpds_py-0.17.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:93432e747fb07fa567ad9cc7aaadd6e29710e515aabf939dfbed8046041346c6"}, + {file = "rpds_py-0.17.1-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:7b7d9ca34542099b4e185b3c2a2b2eda2e318a7dbde0b0d83357a6d4421b5296"}, + {file = "rpds_py-0.17.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:0387ce69ba06e43df54e43968090f3626e231e4bc9150e4c3246947567695f68"}, + {file = "rpds_py-0.17.1.tar.gz", hash = "sha256:0210b2668f24c078307260bf88bdac9d6f1093635df5123789bfee4d8d7fc8e7"}, ] [[package]] @@ -3817,45 +3810,45 @@ pyasn1 = ">=0.1.3" [[package]] name = "scipy" -version = "1.11.4" +version = "1.12.0" description = "Fundamental algorithms for scientific computing in Python" optional = false python-versions = ">=3.9" files = [ - {file = "scipy-1.11.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bc9a714581f561af0848e6b69947fda0614915f072dfd14142ed1bfe1b806710"}, - {file = "scipy-1.11.4-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:cf00bd2b1b0211888d4dc75656c0412213a8b25e80d73898083f402b50f47e41"}, - {file = "scipy-1.11.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9999c008ccf00e8fbcce1236f85ade5c569d13144f77a1946bef8863e8f6eb4"}, - {file = "scipy-1.11.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:933baf588daa8dc9a92c20a0be32f56d43faf3d1a60ab11b3f08c356430f6e56"}, - {file = "scipy-1.11.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8fce70f39076a5aa62e92e69a7f62349f9574d8405c0a5de6ed3ef72de07f446"}, - {file = "scipy-1.11.4-cp310-cp310-win_amd64.whl", hash = "sha256:6550466fbeec7453d7465e74d4f4b19f905642c89a7525571ee91dd7adabb5a3"}, - {file = "scipy-1.11.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f313b39a7e94f296025e3cffc2c567618174c0b1dde173960cf23808f9fae4be"}, - {file = "scipy-1.11.4-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:1b7c3dca977f30a739e0409fb001056484661cb2541a01aba0bb0029f7b68db8"}, - {file = "scipy-1.11.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:00150c5eae7b610c32589dda259eacc7c4f1665aedf25d921907f4d08a951b1c"}, - {file = "scipy-1.11.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:530f9ad26440e85766509dbf78edcfe13ffd0ab7fec2560ee5c36ff74d6269ff"}, - {file = "scipy-1.11.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5e347b14fe01003d3b78e196e84bd3f48ffe4c8a7b8a1afbcb8f5505cb710993"}, - {file = "scipy-1.11.4-cp311-cp311-win_amd64.whl", hash = "sha256:acf8ed278cc03f5aff035e69cb511741e0418681d25fbbb86ca65429c4f4d9cd"}, - {file = "scipy-1.11.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:028eccd22e654b3ea01ee63705681ee79933652b2d8f873e7949898dda6d11b6"}, - {file = "scipy-1.11.4-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:2c6ff6ef9cc27f9b3db93a6f8b38f97387e6e0591600369a297a50a8e96e835d"}, - {file = "scipy-1.11.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b030c6674b9230d37c5c60ab456e2cf12f6784596d15ce8da9365e70896effc4"}, - {file = "scipy-1.11.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad669df80528aeca5f557712102538f4f37e503f0c5b9541655016dd0932ca79"}, - {file = "scipy-1.11.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ce7fff2e23ab2cc81ff452a9444c215c28e6305f396b2ba88343a567feec9660"}, - {file = "scipy-1.11.4-cp312-cp312-win_amd64.whl", hash = "sha256:36750b7733d960d7994888f0d148d31ea3017ac15eef664194b4ef68d36a4a97"}, - {file = "scipy-1.11.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6e619aba2df228a9b34718efb023966da781e89dd3d21637b27f2e54db0410d7"}, - {file = "scipy-1.11.4-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:f3cd9e7b3c2c1ec26364856f9fbe78695fe631150f94cd1c22228456404cf1ec"}, - {file = "scipy-1.11.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d10e45a6c50211fe256da61a11c34927c68f277e03138777bdebedd933712fea"}, - {file = "scipy-1.11.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91af76a68eeae0064887a48e25c4e616fa519fa0d38602eda7e0f97d65d57937"}, - {file = "scipy-1.11.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6df1468153a31cf55ed5ed39647279beb9cfb5d3f84369453b49e4b8502394fd"}, - {file = "scipy-1.11.4-cp39-cp39-win_amd64.whl", hash = "sha256:ee410e6de8f88fd5cf6eadd73c135020bfbbbdfcd0f6162c36a7638a1ea8cc65"}, - {file = "scipy-1.11.4.tar.gz", hash = "sha256:90a2b78e7f5733b9de748f589f09225013685f9b218275257f8a8168ededaeaa"}, + {file = "scipy-1.12.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:78e4402e140879387187f7f25d91cc592b3501a2e51dfb320f48dfb73565f10b"}, + {file = "scipy-1.12.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:f5f00ebaf8de24d14b8449981a2842d404152774c1a1d880c901bf454cb8e2a1"}, + {file = "scipy-1.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e53958531a7c695ff66c2e7bb7b79560ffdc562e2051644c5576c39ff8efb563"}, + {file = "scipy-1.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e32847e08da8d895ce09d108a494d9eb78974cf6de23063f93306a3e419960c"}, + {file = "scipy-1.12.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4c1020cad92772bf44b8e4cdabc1df5d87376cb219742549ef69fc9fd86282dd"}, + {file = "scipy-1.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:75ea2a144096b5e39402e2ff53a36fecfd3b960d786b7efd3c180e29c39e53f2"}, + {file = "scipy-1.12.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:408c68423f9de16cb9e602528be4ce0d6312b05001f3de61fe9ec8b1263cad08"}, + {file = "scipy-1.12.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:5adfad5dbf0163397beb4aca679187d24aec085343755fcdbdeb32b3679f254c"}, + {file = "scipy-1.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3003652496f6e7c387b1cf63f4bb720951cfa18907e998ea551e6de51a04467"}, + {file = "scipy-1.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b8066bce124ee5531d12a74b617d9ac0ea59245246410e19bca549656d9a40a"}, + {file = "scipy-1.12.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8bee4993817e204d761dba10dbab0774ba5a8612e57e81319ea04d84945375ba"}, + {file = "scipy-1.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:a24024d45ce9a675c1fb8494e8e5244efea1c7a09c60beb1eeb80373d0fecc70"}, + {file = "scipy-1.12.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e7e76cc48638228212c747ada851ef355c2bb5e7f939e10952bc504c11f4e372"}, + {file = "scipy-1.12.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:f7ce148dffcd64ade37b2df9315541f9adad6efcaa86866ee7dd5db0c8f041c3"}, + {file = "scipy-1.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c39f92041f490422924dfdb782527a4abddf4707616e07b021de33467f917bc"}, + {file = "scipy-1.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7ebda398f86e56178c2fa94cad15bf457a218a54a35c2a7b4490b9f9cb2676c"}, + {file = "scipy-1.12.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:95e5c750d55cf518c398a8240571b0e0782c2d5a703250872f36eaf737751338"}, + {file = "scipy-1.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:e646d8571804a304e1da01040d21577685ce8e2db08ac58e543eaca063453e1c"}, + {file = "scipy-1.12.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:913d6e7956c3a671de3b05ccb66b11bc293f56bfdef040583a7221d9e22a2e35"}, + {file = "scipy-1.12.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:bba1b0c7256ad75401c73e4b3cf09d1f176e9bd4248f0d3112170fb2ec4db067"}, + {file = "scipy-1.12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:730badef9b827b368f351eacae2e82da414e13cf8bd5051b4bdfd720271a5371"}, + {file = "scipy-1.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6546dc2c11a9df6926afcbdd8a3edec28566e4e785b915e849348c6dd9f3f490"}, + {file = "scipy-1.12.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:196ebad3a4882081f62a5bf4aeb7326aa34b110e533aab23e4374fcccb0890dc"}, + {file = "scipy-1.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:b360f1b6b2f742781299514e99ff560d1fe9bd1bff2712894b52abe528d1fd1e"}, + {file = "scipy-1.12.0.tar.gz", hash = "sha256:4bf5abab8a36d20193c698b0f1fc282c1d083c94723902c447e5d2f1780936a3"}, ] [package.dependencies] -numpy = ">=1.21.6,<1.28.0" +numpy = ">=1.22.4,<1.29.0" [package.extras] dev = ["click", "cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"] doc = ["jupytext", "matplotlib (>2)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (==0.9.0)", "sphinx (!=4.1.0)", "sphinx-design (>=0.2.0)"] -test = ["asv", "gmpy2", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] +test = ["asv", "gmpy2", "hypothesis", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] [[package]] name = "scooby" @@ -4083,56 +4076,50 @@ sphinx = ">=4" [[package]] name = "sphinxcontrib-applehelp" -version = "1.0.7" +version = "1.0.8" description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" optional = false python-versions = ">=3.9" files = [ - {file = "sphinxcontrib_applehelp-1.0.7-py3-none-any.whl", hash = "sha256:094c4d56209d1734e7d252f6e0b3ccc090bd52ee56807a5d9315b19c122ab15d"}, - {file = "sphinxcontrib_applehelp-1.0.7.tar.gz", hash = "sha256:39fdc8d762d33b01a7d8f026a3b7d71563ea3b72787d5f00ad8465bd9d6dfbfa"}, + {file = "sphinxcontrib_applehelp-1.0.8-py3-none-any.whl", hash = "sha256:cb61eb0ec1b61f349e5cc36b2028e9e7ca765be05e49641c97241274753067b4"}, + {file = "sphinxcontrib_applehelp-1.0.8.tar.gz", hash = "sha256:c40a4f96f3776c4393d933412053962fac2b84f4c99a7982ba42e09576a70619"}, ] -[package.dependencies] -Sphinx = ">=5" - [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "sphinxcontrib-devhelp" -version = "1.0.5" +version = "1.0.6" description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" optional = false python-versions = ">=3.9" files = [ - {file = "sphinxcontrib_devhelp-1.0.5-py3-none-any.whl", hash = "sha256:fe8009aed765188f08fcaadbb3ea0d90ce8ae2d76710b7e29ea7d047177dae2f"}, - {file = "sphinxcontrib_devhelp-1.0.5.tar.gz", hash = "sha256:63b41e0d38207ca40ebbeabcf4d8e51f76c03e78cd61abe118cf4435c73d4212"}, + {file = "sphinxcontrib_devhelp-1.0.6-py3-none-any.whl", hash = "sha256:6485d09629944511c893fa11355bda18b742b83a2b181f9a009f7e500595c90f"}, + {file = "sphinxcontrib_devhelp-1.0.6.tar.gz", hash = "sha256:9893fd3f90506bc4b97bdb977ceb8fbd823989f4316b28c3841ec128544372d3"}, ] -[package.dependencies] -Sphinx = ">=5" - [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "sphinxcontrib-htmlhelp" -version = "2.0.4" +version = "2.0.5" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" optional = false python-versions = ">=3.9" files = [ - {file = "sphinxcontrib_htmlhelp-2.0.4-py3-none-any.whl", hash = "sha256:8001661c077a73c29beaf4a79968d0726103c5605e27db92b9ebed8bab1359e9"}, - {file = "sphinxcontrib_htmlhelp-2.0.4.tar.gz", hash = "sha256:6c26a118a05b76000738429b724a0568dbde5b72391a688577da08f11891092a"}, + {file = "sphinxcontrib_htmlhelp-2.0.5-py3-none-any.whl", hash = "sha256:393f04f112b4d2f53d93448d4bce35842f62b307ccdc549ec1585e950bc35e04"}, + {file = "sphinxcontrib_htmlhelp-2.0.5.tar.gz", hash = "sha256:0dc87637d5de53dd5eec3a6a01753b1ccf99494bd756aafecd74b4fa9e729015"}, ] -[package.dependencies] -Sphinx = ">=5" - [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] test = ["html5lib", "pytest"] [[package]] @@ -4151,38 +4138,34 @@ test = ["flake8", "mypy", "pytest"] [[package]] name = "sphinxcontrib-qthelp" -version = "1.0.6" +version = "1.0.7" description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" optional = false python-versions = ">=3.9" files = [ - {file = "sphinxcontrib_qthelp-1.0.6-py3-none-any.whl", hash = "sha256:bf76886ee7470b934e363da7a954ea2825650013d367728588732c7350f49ea4"}, - {file = "sphinxcontrib_qthelp-1.0.6.tar.gz", hash = "sha256:62b9d1a186ab7f5ee3356d906f648cacb7a6bdb94d201ee7adf26db55092982d"}, + {file = "sphinxcontrib_qthelp-1.0.7-py3-none-any.whl", hash = "sha256:e2ae3b5c492d58fcbd73281fbd27e34b8393ec34a073c792642cd8e529288182"}, + {file = "sphinxcontrib_qthelp-1.0.7.tar.gz", hash = "sha256:053dedc38823a80a7209a80860b16b722e9e0209e32fea98c90e4e6624588ed6"}, ] -[package.dependencies] -Sphinx = ">=5" - [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "sphinxcontrib-serializinghtml" -version = "1.1.9" +version = "1.1.10" description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" optional = false python-versions = ">=3.9" files = [ - {file = "sphinxcontrib_serializinghtml-1.1.9-py3-none-any.whl", hash = "sha256:9b36e503703ff04f20e9675771df105e58aa029cfcbc23b8ed716019b7416ae1"}, - {file = "sphinxcontrib_serializinghtml-1.1.9.tar.gz", hash = "sha256:0c64ff898339e1fac29abd2bf5f11078f3ec413cfe9c046d3120d7ca65530b54"}, + {file = "sphinxcontrib_serializinghtml-1.1.10-py3-none-any.whl", hash = "sha256:326369b8df80a7d2d8d7f99aa5ac577f51ea51556ed974e7716cfd4fca3f6cb7"}, + {file = "sphinxcontrib_serializinghtml-1.1.10.tar.gz", hash = "sha256:93f3f5dc458b91b192fe10c397e324f262cf163d79f3282c158e8436a2c4511f"}, ] -[package.dependencies] -Sphinx = ">=5" - [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] @@ -4340,13 +4323,13 @@ trame-server = ">=2.13.1" [[package]] name = "trame-client" -version = "2.14.2" +version = "2.15.0" description = "Internal client of trame" optional = false python-versions = "*" files = [ - {file = "trame-client-2.14.2.tar.gz", hash = "sha256:81c35c26a98e4dca8873b84a7dcfe53d39594f827e12f9d217db040ef9c74f35"}, - {file = "trame_client-2.14.2-py3-none-any.whl", hash = "sha256:050116b584ebb9e5e599ce8c9bcdc3c1028fe436e969ef38c50206e329572e7f"}, + {file = "trame-client-2.15.0.tar.gz", hash = "sha256:eb2cd18f2a29c0c45b982404de092fb4c989d1eff3489a4204ccf097fa2afeed"}, + {file = "trame_client-2.15.0-py3-none-any.whl", hash = "sha256:fa58046e241df35779327209a4ec17fc29b7d8d557e8814e954ea78dffa49de4"}, ] [package.extras] @@ -4369,13 +4352,13 @@ wslink = ">=1.12.2" [[package]] name = "trame-vtk" -version = "2.6.3" +version = "2.7.0" description = "VTK widgets for trame" optional = false python-versions = "*" files = [ - {file = "trame-vtk-2.6.3.tar.gz", hash = "sha256:3314f6a9a5ed844ef23f0296bb221fe05d9fc3ec9bf7a853b6b433da41000d52"}, - {file = "trame_vtk-2.6.3-py3-none-any.whl", hash = "sha256:6bc90437695eceedc52f2845554b218e2460db650ce3e6d5f9cf07759796d4f7"}, + {file = "trame-vtk-2.7.0.tar.gz", hash = "sha256:f6476e4ffc3bf7171523153450d4762f3e31b9654133f941c92700573780b6b2"}, + {file = "trame_vtk-2.7.0-py3-none-any.whl", hash = "sha256:a517f410741800ed030d49ef425c823b52b26bc92b328525dabbc093c4daddd3"}, ] [package.dependencies] @@ -4383,13 +4366,13 @@ trame-client = "*" [[package]] name = "trame-vuetify" -version = "2.3.1" +version = "2.4.2" description = "Vuetify widgets for trame" optional = false python-versions = "*" files = [ - {file = "trame-vuetify-2.3.1.tar.gz", hash = "sha256:9775c4833ec87ba400c8cdb4eef1dce24396fd841968369563bb34bb0b60ee4a"}, - {file = "trame_vuetify-2.3.1-py3-none-any.whl", hash = "sha256:455b179143f44e71719f9b8feeb36ec9aabf1d25e79c637a425c8cb153405335"}, + {file = "trame-vuetify-2.4.2.tar.gz", hash = "sha256:85989236e9fb743448e807fe7ee341b8d65c0970cf95669cc5924c42053df9f6"}, + {file = "trame_vuetify-2.4.2-py3-none-any.whl", hash = "sha256:7723a620a604aed5c2d9c4d577a76d8dfc8b41ba8f1b49b8b2ba02ce45961a22"}, ] [package.dependencies] diff --git a/pyproject.toml b/pyproject.toml index 991fdd524b..4f1d533a14 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -126,7 +126,7 @@ src_paths = ["doc", "src", "tests"] convention = "numpy" [tool.codespell] -skip = '*.cdb' +skip = '*.cdb,*.dat' ignore-words-list = 'ans,uptodate,notuptodate,eyt' quiet-level = 3 diff --git a/src/ansys/acp/core/__init__.py b/src/ansys/acp/core/__init__.py index 0de10d4ce8..5aa3f3ac7e 100644 --- a/src/ansys/acp/core/__init__.py +++ b/src/ansys/acp/core/__init__.py @@ -1,6 +1,7 @@ import importlib.metadata from ._client import Client +from ._model_printer import get_model_tree, print_model from ._server import DirectLaunchConfig, DockerComposeLaunchConfig, LaunchMode, launch_acp from ._tree_objects import ( AnalysisPly, @@ -31,6 +32,7 @@ ParallelSelectionRule, ProductionPly, Rosette, + ScalarData, Sensor, SphericalSelectionRule, Stackup, @@ -39,8 +41,11 @@ TubeSelectionRule, UnitSystemType, VariableOffsetSelectionRule, + VectorData, VirtualGeometry, ) +from ._utils.example_helpers import ExampleKeys, get_example_file +from ._workflow import ACPWorkflow, get_composite_post_processing_files, get_dpf_unit_system __version__ = importlib.metadata.version(__name__.replace(".", "-")) @@ -90,4 +95,13 @@ "Sensor", "ElementalDataType", "NodalDataType", + "ExampleKeys", + "get_example_file", + "ACPWorkflow", + "get_composite_post_processing_files", + "get_model_tree", + "print_model", + "ScalarData", + "VectorData", + "get_dpf_unit_system", ] diff --git a/src/ansys/acp/core/_client.py b/src/ansys/acp/core/_client.py index 6ffa866796..4375ad8cb7 100644 --- a/src/ansys/acp/core/_client.py +++ b/src/ansys/acp/core/_client.py @@ -2,10 +2,7 @@ import os import pathlib -import shutil -import tempfile from typing import Any, cast -import uuid from ansys.api.acp.v0 import control_pb2_grpc, model_pb2_grpc from ansys.api.acp.v0.base_pb2 import CollectionPath, DeleteRequest, Empty, ListRequest @@ -28,30 +25,35 @@ class Client: The ACP gRPC server to which the ``Client`` connects. """ - def __init__(self, server: ServerProtocol): + def __init__(self, server: ServerProtocol) -> None: self._channel = server.channels[ServerKey.MAIN] if ServerKey.FILE_TRANSFER in server.channels: self._ft_client: FileTransferClient | None = FileTransferClient( server.channels[ServerKey.FILE_TRANSFER] ) - self._tmp_dir = None else: self._ft_client = None - self._tmp_dir = tempfile.TemporaryDirectory() + + @property + def is_remote(self) -> bool: + """Whether the client is connected to a remote server.""" + return self._ft_client is not None def upload_file(self, local_path: _PATH) -> pathlib.PurePath: - if self._ft_client is None: - assert self._tmp_dir is not None - # TODO: The '_tmp_dir', and file tracking / up-/download in general - # should probably be handled by the local server itself. - # For now, we just do it client-side. - dest_dir = pathlib.Path(self._tmp_dir.name) / uuid.uuid4().hex - dest_dir.mkdir(parents=True) - filename = os.path.basename(local_path) - res_path = dest_dir / filename - shutil.copyfile(local_path, res_path) - return pathlib.Path(res_path) + """Upload local file. + + If the server is remote, uploads the file to the server and returns the path + on the server. + If the server is local, does nothing and returns the input path. + + Parameters + ---------- + local_path : + Path of the file to be uploaded. + """ + if self._ft_client is None: + return pathlib.Path(local_path) else: remote_filename = os.path.basename(local_path) self._ft_client.upload_file( @@ -61,9 +63,20 @@ def upload_file(self, local_path: _PATH) -> pathlib.PurePath: return pathlib.PurePosixPath(remote_filename) def download_file(self, remote_filename: _PATH, local_path: _PATH) -> None: - if self._ft_client is None: - shutil.copyfile(remote_filename, local_path) - else: + """ + Download a file from the server. + + If the server is remote, download the file to the local path. + If the server is local, do nothing. + + Parameters + ---------- + remote_filename : + Path of the file to be downloaded. + local_path : + Path of the local file to be created. + """ + if self._ft_client is not None: self._ft_client.download_file( remote_filename=str(remote_filename), local_filename=str(local_path) ) diff --git a/src/ansys/acp/core/_model_printer.py b/src/ansys/acp/core/_model_printer.py new file mode 100644 index 0000000000..6b58ac8fbf --- /dev/null +++ b/src/ansys/acp/core/_model_printer.py @@ -0,0 +1,127 @@ +import os +from typing import Optional + +from ._tree_objects.model import Model + + +class Node: + """A node in a tree representation of the model. + + Parameters + ---------- + label: + Label of the node. + children: + Children of the node. + """ + + def __init__(self, label: str, children: Optional[list["Node"]] = None): + self.label = label + self.children: list["Node"] = children if children else [] + + def __str__(self, level: Optional[int] = 0) -> str: + assert level is not None + four_spaces = " " + ret = four_spaces * level + self.label + os.linesep + for child in self.children: + ret += child.__str__(level + 1) + return ret + + +def _replace_underscores_and_capitalize(input_string: str) -> str: + return " ".join(part.capitalize() for part in input_string.split("_")) + + +def _add_tree_part( + tree: Node, + container_name: str, + model: Model, +) -> None: + items = list(getattr(model, container_name).items()) + if len(items) == 0: + return + container = Node(_replace_underscores_and_capitalize(container_name)) + tree.children.append(container) + for entity_name, entity in items: + group_node = Node(entity_name) + container.children.append(group_node) + + +def print_model(model: Model) -> None: + """Print a tree representation of the model. + + + Parameters + ---------- + model: + pyACP model + + """ + return print(get_model_tree(model)) + + +def get_model_tree(model: Model) -> Node: + """Get a tree representation of the model. + + Returns the root node. + + Parameters + ---------- + model: + pyACP model. + """ + model_node = Node("Model") + + material_data = Node("Material Data") + model_node.children.append(material_data) + _add_tree_part(material_data, "materials", model) + _add_tree_part(material_data, "fabrics", model) + _add_tree_part(material_data, "stackups", model) + _add_tree_part(material_data, "sublaminates", model) + + _add_tree_part(model_node, "element_sets", model) + _add_tree_part(model_node, "edge_sets", model) + + geometry = Node("Geometry") + model_node.children.append(geometry) + _add_tree_part(geometry, "cad_geometries", model) + _add_tree_part(geometry, "virtual_geometries", model) + + _add_tree_part(model_node, "rosettes", model) + + lookup_table = Node("Lookup Table") + model_node.children.append(lookup_table) + _add_tree_part(lookup_table, "lookup_tables_1d", model) + _add_tree_part(lookup_table, "lookup_tables_3d", model) + + selection_rules = Node("Selection Rules") + model_node.children.append(selection_rules) + _add_tree_part(selection_rules, "parallel_selection_rules", model) + _add_tree_part(selection_rules, "cylindrical_selection_rules", model) + _add_tree_part(selection_rules, "spherical_selection_rules", model) + _add_tree_part(selection_rules, "tube_selection_rules", model) + _add_tree_part(selection_rules, "cutoff_selection_rules", model) + _add_tree_part(selection_rules, "geometrical_selection_rules", model) + _add_tree_part(selection_rules, "variable_offset_selection_rules", model) + _add_tree_part(selection_rules, "boolean_selection_rules", model) + + _add_tree_part(model_node, "oriented_selection_sets", model) + + modeling_groups = Node("Modeling Groups") + model_node.children.append(modeling_groups) + for modeling_group_name, modeling_group in model.modeling_groups.items(): + group_node = Node(modeling_group_name) + modeling_groups.children.append(group_node) + for modeling_ply_name, modeling_ply in modeling_group.modeling_plies.items(): + modeling_ply_node = Node(modeling_ply_name) + group_node.children.append(modeling_ply_node) + for production_ply_name, production_ply in modeling_ply.production_plies.items(): + production_ply_node = Node(production_ply_name) + modeling_ply_node.children.append(production_ply_node) + for analysis_ply_name, analysis_ply in production_ply.analysis_plies.items(): + analysis_ply_node = Node(analysis_ply_name) + production_ply_node.children.append(analysis_ply_node) + + _add_tree_part(model_node, "sensors", model) + + return model_node diff --git a/src/ansys/acp/core/_tree_objects/__init__.py b/src/ansys/acp/core/_tree_objects/__init__.py index 3442883f83..8b4ace9ee2 100644 --- a/src/ansys/acp/core/_tree_objects/__init__.py +++ b/src/ansys/acp/core/_tree_objects/__init__.py @@ -1,3 +1,4 @@ +from ._mesh_data import ScalarData, VectorData from .analysis_ply import AnalysisPly from .boolean_selection_rule import BooleanSelectionRule from .cad_component import CADComponent @@ -69,4 +70,6 @@ "EdgeSetType", "ElementalDataType", "NodalDataType", + "ScalarData", + "VectorData", ] diff --git a/src/ansys/acp/core/_tree_objects/_mesh_data.py b/src/ansys/acp/core/_tree_objects/_mesh_data.py index 1e7675eadc..9991d90f24 100644 --- a/src/ansys/acp/core/_tree_objects/_mesh_data.py +++ b/src/ansys/acp/core/_tree_objects/_mesh_data.py @@ -12,6 +12,7 @@ from ansys.acp.core._utils.array_conversions import dataarray_to_numpy, to_numpy from ansys.api.acp.v0 import mesh_query_pb2, mesh_query_pb2_grpc +from .._utils.property_protocols import ReadOnlyProperty from .base import TreeObject from .enums import ( elemental_data_type_from_pb, @@ -28,9 +29,240 @@ "NodalData", "elemental_data_property", "nodal_data_property", + "ScalarData", + "VectorData", ] +@dataclasses.dataclass +class _Labels: + mesh_labels: npt.NDArray[np.int32] + data_labels: npt.NDArray[np.int32] + mesh_label_to_index_map: dict[int, int] + + +def _get_labels( + *, + field_names: _LabelAndPyvistaFieldNames, + labels: npt.NDArray[np.int32], + mesh: MeshData, +) -> _Labels: + mesh_labels = getattr(mesh, field_names.LABEL_FIELD_NAME) + mesh_label_to_index_map = {label: idx for idx, label in enumerate(mesh_labels)} + return _Labels( + mesh_labels=mesh_labels, data_labels=labels, mesh_label_to_index_map=mesh_label_to_index_map + ) + + +def _expand_array( + *, + array: npt.NDArray[ScalarDataT], + labels: _Labels, + culling_factor: int = 1, +) -> npt.NDArray[np.float64]: + """Expand the array to the size of the mesh.""" + target_shape = tuple([labels.mesh_labels.size] + list(array.shape[1:])) + target_array = np.ones(target_shape, dtype=np.float64) * np.nan + for idx, (label, value) in enumerate(zip(labels.data_labels, array)): + if idx % culling_factor == 0: + target_array[labels.mesh_label_to_index_map[label]] = value + return target_array + + +def _get_pyvista_mesh_with_all_data( + *, + mesh_data_base: MeshDataBase, + mesh: MeshData, +) -> UnstructuredGrid: + pv_mesh = mesh.to_pyvista() + + mesh_data_field = getattr( + pv_mesh, mesh_data_base._LABEL_AND_PYVISTA_FIELD_NAMES.PYVISTA_FIELD_NAME + ) + field_labels = getattr( + mesh_data_base, mesh_data_base._LABEL_AND_PYVISTA_FIELD_NAMES.LABEL_FIELD_NAME + ).values + labels = _get_labels( + field_names=mesh_data_base._LABEL_AND_PYVISTA_FIELD_NAMES, mesh=mesh, labels=field_labels + ) + + for name in mesh_data_base._field_names(): + values = getattr(mesh_data_base, name).values + target_array = _expand_array(array=values, labels=labels) + mesh_data_field[name] = target_array + return pv_mesh + + +def _get_mesh_with_scalar_pyvista_data( + *, + labels: npt.NDArray[np.int32], + field_names: _LabelAndPyvistaFieldNames, + mesh: MeshData, + values: npt.NDArray[ScalarDataT], + component_name: str, +) -> UnstructuredGrid: + all_labels = _get_labels(field_names=field_names, labels=labels, mesh=mesh) + + pv_mesh = mesh.to_pyvista() + mesh_data_field = getattr(pv_mesh, field_names.PYVISTA_FIELD_NAME) + + target_array = _expand_array(array=values, labels=all_labels) + component_label = component_name + mesh_data_field[component_label] = target_array + return pv_mesh + + +def _get_pyvista_glyphs( + *, + labels: npt.NDArray[np.int32], + field_names: _LabelAndPyvistaFieldNames, + mesh: MeshData, + values: npt.NDArray[np.float64], + component_name: str, + culling_factor: int = 1, + **kwargs: Any, +) -> PolyData: + all_labels = _get_labels(field_names=field_names, labels=labels, mesh=mesh) + + pv_mesh = mesh.to_pyvista() + mesh_data_field = getattr(pv_mesh, field_names.PYVISTA_FIELD_NAME) + + target_array = _expand_array(array=values, labels=all_labels, culling_factor=culling_factor) + component_label = component_name + mesh_data_field[component_label] = target_array + + magnitude_name = f"{component_label}_magnitude" + mesh_data_field[magnitude_name] = np.linalg.norm(target_array, axis=-1) + return pv_mesh.glyph(orient=component_label, scale=magnitude_name, **kwargs) # type: ignore + + +ScalarDataT = typing.TypeVar("ScalarDataT", np.float64, np.int32) + + +class ScalarData(typing.Generic[ScalarDataT]): + """Class that encapsulates scalar data.""" + + def __init__( + self, + field_names: _LabelAndPyvistaFieldNames, + labels: npt.NDArray[np.int32], + values: npt.NDArray[ScalarDataT], + component_name: str, + ): + self._field_names = field_names + self._labels = labels + self._values: npt.NDArray[ScalarDataT] = values + self._component_name = component_name + + @property + def values(self) -> npt.NDArray[ScalarDataT]: + """The values as a numpy array.""" + return self._values + + @property + def component_name(self) -> str: + """The name of the component.""" + return self._component_name + + def get_pyvista_mesh( + self, + mesh: MeshData, + ) -> UnstructuredGrid: + """Convert the mesh data to a PyVista object. + + Parameters + ---------- + mesh : + The mesh to which the data is associated. + """ + return _get_mesh_with_scalar_pyvista_data( + labels=self._labels, + field_names=self._field_names, + mesh=mesh, + values=self._values, + component_name=self._component_name, + ) + + +class VectorData: + """Class that encapsulates vector data.""" + + def __init__( + self, + field_names: _LabelAndPyvistaFieldNames, + labels: npt.NDArray[np.int32], + values: npt.NDArray[np.float64], + component_name: str, + ): + self._field_names = field_names + self._labels = labels + self._values = values + self._component_name = component_name + + @property + def values(self) -> npt.NDArray[np.float64]: + """The values as a numpy array.""" + return self._values + + @property + def component_name(self) -> str: + """The name of the component.""" + return self._component_name + + def get_pyvista_glyphs( + self, + *, + mesh: MeshData, + culling_factor: int = 1, + **kwargs: Any, + ) -> PolyData: + """Get a pyvista glyph object from the vector data. + + Parameters + ---------- + mesh : + The mesh to which the data is associated. + culling_factor : + If set to a value other than ``1``, add only every n-th data + point to the PyVista object. This is useful especially for + vector data, where the arrows can be too dense. + kwargs : + Keyword arguments passed to the PyVista object constructor. + """ + return _get_pyvista_glyphs( + labels=self._labels, + field_names=self._field_names, + mesh=mesh, + values=self._values, + component_name=self._component_name, + culling_factor=culling_factor, + **kwargs, + ) + + +def _check_field_type(klass: Any, field_name: str, actual_field_type: str) -> None: + """Checks that the type declared in the dataclass (klass) matches the actual type.""" + declared_field_types: typing.Sequence[str] = cast( + typing.Sequence[str], + [field.type for field in dataclasses.fields(klass) if field.name == field_name], + ) + if len(declared_field_types) != 1: + raise RuntimeError("Failed to find field in dataclass.") + declared_field_type = declared_field_types[0] + if declared_field_type != actual_field_type: + raise RuntimeError( + f"Declared type does not match actual data type. " + f"Declared type: {declared_field_type}, actual type: {actual_field_type}. " + f"Field name: {field_name}" + ) + + +@dataclasses.dataclass +class _LabelAndPyvistaFieldNames: + LABEL_FIELD_NAME: str + PYVISTA_FIELD_NAME: str + + @dataclasses.dataclass class MeshDataBase: """ @@ -38,120 +270,92 @@ class MeshDataBase: from a protobuf response and the conversion to a PyVista object. """ - _LABEL_FIELD_NAME: ClassVar[str] - _PYVISTA_FIELD_NAME: ClassVar[str] + _LABEL_AND_PYVISTA_FIELD_NAMES: ClassVar[_LabelAndPyvistaFieldNames] _FIELD_NAME_FROM_PB_VALUE: ClassVar[typing.Callable[[int], str]] _PB_VALUE_FROM_FIELD_NAME: ClassVar[typing.Callable[[str], int]] @classmethod def _field_names(cls) -> list[str]: return [ - field.name for field in dataclasses.fields(cls) if field.name != cls._LABEL_FIELD_NAME + field.name + for field in dataclasses.fields(cls) + if field.name != cls._LABEL_AND_PYVISTA_FIELD_NAMES.LABEL_FIELD_NAME ] @classmethod def _from_pb(cls, response: mesh_query_pb2.ElementalData | mesh_query_pb2.NodalData) -> Self: """Construct a mesh data object from a protobuf response.""" + labels = to_numpy(response.labels) kwargs: dict[str, Any] = { - cls._LABEL_FIELD_NAME: to_numpy(response.labels), + cls._LABEL_AND_PYVISTA_FIELD_NAMES.LABEL_FIELD_NAME: ScalarData( + field_names=cls._LABEL_AND_PYVISTA_FIELD_NAMES, + labels=labels, + values=labels, + component_name=cls._LABEL_AND_PYVISTA_FIELD_NAMES.LABEL_FIELD_NAME, + ) } for data_type, array in zip(response.data_types, response.data_arrays): field_name = cls._FIELD_NAME_FROM_PB_VALUE(data_type) - kwargs[field_name] = cast( + values = cast( npt.NDArray[np.float64], dataarray_to_numpy(array, dtype=np.float64) ) # todo: handle other dtypes - return cls(**kwargs) + kwargs[field_name] = values + data_wrapper: VectorData | ScalarData[np.float64] + if len(values.shape) == 2 and values.shape[1] == 3: + data_wrapper = VectorData( + field_names=cls._LABEL_AND_PYVISTA_FIELD_NAMES, + labels=labels, + values=values, + component_name=field_name, + ) + _check_field_type(klass=cls, field_name=field_name, actual_field_type="VectorData") + + else: + data_wrapper = ScalarData( + field_names=cls._LABEL_AND_PYVISTA_FIELD_NAMES, + labels=labels, + values=values, + component_name=field_name, + ) + _check_field_type( + klass=cls, field_name=field_name, actual_field_type="ScalarData[np.float64]" + ) + kwargs[field_name] = data_wrapper + + instance = cls(**kwargs) + return instance - def to_pyvista( + def get_pyvista_mesh( self, - *, mesh: MeshData, - component: str | None = None, - culling_factor: int = 1, - **kwargs: Any, - ) -> PolyData | UnstructuredGrid: - """Convert the mesh data to a PyVista object. + ) -> UnstructuredGrid: + """Get a pyvista mesh with all data. Parameters ---------- mesh : The mesh to which the data is associated. - component : - The name of the data attribute to add to the PyVista object. - If `None`, all data attributes are added. If the data attribute - contains vector data, the PyVista object will be converted to - arrows. - culling_factor : - If set to a value other than ``1``, add only every n-th data - point to the PyVista object. This is useful especially for - vector data, where the arrows can be too dense. - kwargs : - Keyword arguments passed to the PyVista object constructor. """ - current_labels = getattr(self, self._LABEL_FIELD_NAME) - mesh_labels = getattr(mesh, self._LABEL_FIELD_NAME) - idx_map = {label: idx for idx, label in enumerate(mesh_labels)} - pv_mesh = mesh.to_pyvista() - - mesh_data_field = getattr(pv_mesh, self._PYVISTA_FIELD_NAME) - - if component is None: - for name in self._field_names(): - values = getattr(self, name) - target_array = self._expand_array( - index_map=idx_map, - array=values, - labels=current_labels, - mesh_labels=mesh_labels, - culling_factor=culling_factor, - ) - mesh_data_field[name] = target_array - else: - values = getattr(self, component) - target_array = self._expand_array( - index_map=idx_map, - array=values, - labels=current_labels, - mesh_labels=mesh_labels, - culling_factor=culling_factor, - ) - mesh_data_field[component] = target_array - if len(target_array.shape) == 2 and target_array.shape[1] == 3: - # handle vector data - magnitude_name = f"{component}_magnitude" - mesh_data_field[magnitude_name] = np.linalg.norm(target_array, axis=-1) - return pv_mesh.glyph(orient=component, scale=magnitude_name, **kwargs) # type: ignore - if kwargs: - raise TypeError( - "The following keyword arguments were not used: " + ", ".join(kwargs.keys()) - ) - return pv_mesh + return _get_pyvista_mesh_with_all_data(mesh_data_base=self, mesh=mesh) - @staticmethod - def _expand_array( - *, - index_map: dict[int, int], - array: npt.NDArray[np.float64], - labels: npt.NDArray[np.int32], - mesh_labels: npt.NDArray[np.int32], - culling_factor: int, - ) -> npt.NDArray[np.float64]: - """Expand the array to the size of the mesh.""" - target_shape = tuple([mesh_labels.size] + list(array.shape[1:])) - target_array = np.ones(target_shape, dtype=np.float64) * np.nan - for idx, (label, value) in enumerate(zip(labels, array)): - if idx % culling_factor == 0: - target_array[index_map[label]] = value - return target_array + +_NODE_FIELD_NAMES = _LabelAndPyvistaFieldNames( + LABEL_FIELD_NAME="node_labels", + PYVISTA_FIELD_NAME="point_data", +) + +_ELEMENT_FIELD_NAMES = _LabelAndPyvistaFieldNames( + LABEL_FIELD_NAME="element_labels", + PYVISTA_FIELD_NAME="cell_data", +) @dataclasses.dataclass class NodalData(MeshDataBase): """Base class for nodal data.""" - node_labels: npt.NDArray[np.int32] - _LABEL_FIELD_NAME: ClassVar[str] = "node_labels" - _PYVISTA_FIELD_NAME: ClassVar[str] = "point_data" + node_labels: ScalarData[np.int32] + _LABEL_AND_PYVISTA_FIELD_NAMES = _NODE_FIELD_NAMES _PB_VALUE_FROM_FIELD_NAME = nodal_data_type_to_pb _FIELD_NAME_FROM_PB_VALUE = nodal_data_type_from_pb @@ -160,9 +364,8 @@ class NodalData(MeshDataBase): class ElementalData(MeshDataBase): """Base class for elemental data.""" - element_labels: npt.NDArray[np.int32] - _LABEL_FIELD_NAME: ClassVar[str] = "element_labels" - _PYVISTA_FIELD_NAME: ClassVar[str] = "cell_data" + element_labels: ScalarData[np.int32] + _LABEL_AND_PYVISTA_FIELD_NAMES = _ELEMENT_FIELD_NAMES _PB_VALUE_FROM_FIELD_NAME = elemental_data_type_to_pb _FIELD_NAME_FROM_PB_VALUE = elemental_data_type_from_pb @@ -175,7 +378,7 @@ class ElementalData(MeshDataBase): def elemental_data_property( wrapped_cls: type[ElementalDataT], -) -> property: +) -> ReadOnlyProperty[ElementalDataT]: """Create a property to get elemental data from a tree object.""" return _mesh_data_property_impl( wrapped_cls=wrapped_cls, @@ -189,7 +392,7 @@ def elemental_data_property( def nodal_data_property( wrapped_cls: type[NodalDataT], -) -> property: +) -> ReadOnlyProperty[NodalDataT]: """Create a property to get nodal data from a tree object.""" return _mesh_data_property_impl( wrapped_cls=wrapped_cls, @@ -206,7 +409,7 @@ def _mesh_data_property_impl( request_name: Literal["GetNodalData", "GetElementalData"], request_type: type[mesh_query_pb2.GetNodalDataRequest] | type[mesh_query_pb2.GetElementalDataRequest], -) -> property: +) -> ReadOnlyProperty[MeshDataT]: """Implementation of the mesh data property helpers.""" def getter(self: TreeObject) -> MeshDataT: diff --git a/src/ansys/acp/core/_tree_objects/analysis_ply.py b/src/ansys/acp/core/_tree_objects/analysis_ply.py index 38667f29c7..f872c52401 100644 --- a/src/ansys/acp/core/_tree_objects/analysis_ply.py +++ b/src/ansys/acp/core/_tree_objects/analysis_ply.py @@ -4,7 +4,6 @@ import dataclasses import numpy as np -import numpy.typing as npt from ansys.api.acp.v0 import analysis_ply_pb2, analysis_ply_pb2_grpc @@ -14,7 +13,14 @@ grpc_link_property_read_only, mark_grpc_properties, ) -from ._mesh_data import ElementalData, NodalData, elemental_data_property, nodal_data_property +from ._mesh_data import ( + ElementalData, + NodalData, + ScalarData, + VectorData, + elemental_data_property, + nodal_data_property, +) from .base import IdTreeObject, ReadOnlyTreeObject from .enums import status_type_from_pb from .object_registry import register @@ -26,33 +32,33 @@ class AnalysisPlyElementalData(ElementalData): """Represents elemental data for a Analysis Ply.""" - normal: npt.NDArray[np.float64] - orientation: npt.NDArray[np.float64] - reference_direction: npt.NDArray[np.float64] - fiber_direction: npt.NDArray[np.float64] - draped_fiber_direction: npt.NDArray[np.float64] - transverse_direction: npt.NDArray[np.float64] - draped_transverse_direction: npt.NDArray[np.float64] - thickness: npt.NDArray[np.float64] - relative_thickness_correction: npt.NDArray[np.float64] - design_angle: npt.NDArray[np.float64] - shear_angle: npt.NDArray[np.float64] - draped_fiber_angle: npt.NDArray[np.float64] - draped_transverse_angle: npt.NDArray[np.float64] - area: npt.NDArray[np.float64] - price: npt.NDArray[np.float64] - volume: npt.NDArray[np.float64] - mass: npt.NDArray[np.float64] - offset: npt.NDArray[np.float64] - material_1_direction: npt.NDArray[np.float64] - cog: npt.NDArray[np.float64] + normal: VectorData + orientation: VectorData + reference_direction: VectorData + fiber_direction: VectorData + draped_fiber_direction: VectorData + transverse_direction: VectorData + draped_transverse_direction: VectorData + thickness: ScalarData[np.float64] + relative_thickness_correction: ScalarData[np.float64] + design_angle: ScalarData[np.float64] + shear_angle: ScalarData[np.float64] + draped_fiber_angle: ScalarData[np.float64] + draped_transverse_angle: ScalarData[np.float64] + area: ScalarData[np.float64] + price: ScalarData[np.float64] + volume: ScalarData[np.float64] + mass: ScalarData[np.float64] + offset: ScalarData[np.float64] + material_1_direction: VectorData + cog: VectorData @dataclasses.dataclass class AnalysisPlyNodalData(NodalData): """Represents nodal data for a Analysis Ply.""" - ply_offset: npt.NDArray[np.float64] + ply_offset: VectorData @mark_grpc_properties diff --git a/src/ansys/acp/core/_tree_objects/boolean_selection_rule.py b/src/ansys/acp/core/_tree_objects/boolean_selection_rule.py index e56f5e3f32..63c04644ab 100644 --- a/src/ansys/acp/core/_tree_objects/boolean_selection_rule.py +++ b/src/ansys/acp/core/_tree_objects/boolean_selection_rule.py @@ -3,9 +3,6 @@ from collections.abc import Iterable import dataclasses -import numpy as np -import numpy.typing as npt - from ansys.api.acp.v0 import boolean_selection_rule_pb2, boolean_selection_rule_pb2_grpc from .._utils.property_protocols import ReadWriteProperty @@ -15,7 +12,13 @@ grpc_data_property_read_only, mark_grpc_properties, ) -from ._mesh_data import ElementalData, NodalData, elemental_data_property, nodal_data_property +from ._mesh_data import ( + ElementalData, + NodalData, + VectorData, + elemental_data_property, + nodal_data_property, +) from .base import CreatableTreeObject, IdTreeObject from .enums import status_type_from_pb from .linked_selection_rule import LinkedSelectionRule @@ -32,7 +35,7 @@ class BooleanSelectionRuleElementalData(ElementalData): """Represents elemental data for a Boolean Selection Rule.""" - normal: npt.NDArray[np.float64] + normal: VectorData @dataclasses.dataclass diff --git a/src/ansys/acp/core/_tree_objects/cutoff_selection_rule.py b/src/ansys/acp/core/_tree_objects/cutoff_selection_rule.py index 14b632f53d..bbfeb4e97d 100644 --- a/src/ansys/acp/core/_tree_objects/cutoff_selection_rule.py +++ b/src/ansys/acp/core/_tree_objects/cutoff_selection_rule.py @@ -3,9 +3,6 @@ from collections.abc import Iterable import dataclasses -import numpy as np -import numpy.typing as npt - from ansys.api.acp.v0 import cutoff_selection_rule_pb2, cutoff_selection_rule_pb2_grpc from .._utils.property_protocols import ReadWriteProperty @@ -15,7 +12,13 @@ grpc_link_property, mark_grpc_properties, ) -from ._mesh_data import ElementalData, NodalData, elemental_data_property, nodal_data_property +from ._mesh_data import ( + ElementalData, + NodalData, + VectorData, + elemental_data_property, + nodal_data_property, +) from .base import CreatableTreeObject, IdTreeObject from .edge_set import EdgeSet from .enums import ( @@ -41,7 +44,7 @@ class CutoffSelectionRuleElementalData(ElementalData): """Represents elemental data for a Cutoff Selection Rule.""" - normal: npt.NDArray[np.float64] + normal: VectorData @dataclasses.dataclass diff --git a/src/ansys/acp/core/_tree_objects/cylindrical_selection_rule.py b/src/ansys/acp/core/_tree_objects/cylindrical_selection_rule.py index 1eac58d7ed..e1e13ee357 100644 --- a/src/ansys/acp/core/_tree_objects/cylindrical_selection_rule.py +++ b/src/ansys/acp/core/_tree_objects/cylindrical_selection_rule.py @@ -3,9 +3,6 @@ from collections.abc import Collection, Iterable import dataclasses -import numpy as np -import numpy.typing as npt - from ansys.api.acp.v0 import cylindrical_selection_rule_pb2, cylindrical_selection_rule_pb2_grpc from .._utils.array_conversions import to_1D_double_array, to_tuple_from_1D_array @@ -16,7 +13,13 @@ grpc_link_property, mark_grpc_properties, ) -from ._mesh_data import ElementalData, NodalData, elemental_data_property, nodal_data_property +from ._mesh_data import ( + ElementalData, + NodalData, + VectorData, + elemental_data_property, + nodal_data_property, +) from .base import CreatableTreeObject, IdTreeObject from .enums import status_type_from_pb from .object_registry import register @@ -33,7 +36,7 @@ class CylindricalSelectionRuleElementalData(ElementalData): """Represents elemental data for a Cylindrical Selection Rule.""" - normal: npt.NDArray[np.float64] + normal: VectorData @dataclasses.dataclass diff --git a/src/ansys/acp/core/_tree_objects/element_set.py b/src/ansys/acp/core/_tree_objects/element_set.py index ac0e7e7d18..8588dbeaa6 100644 --- a/src/ansys/acp/core/_tree_objects/element_set.py +++ b/src/ansys/acp/core/_tree_objects/element_set.py @@ -3,9 +3,6 @@ from collections.abc import Collection, Iterable import dataclasses -import numpy as np -import numpy.typing as npt - from ansys.api.acp.v0 import element_set_pb2, element_set_pb2_grpc from .._utils.array_conversions import to_1D_int_array, to_tuple_from_1D_array @@ -15,7 +12,13 @@ grpc_data_property_read_only, mark_grpc_properties, ) -from ._mesh_data import ElementalData, NodalData, elemental_data_property, nodal_data_property +from ._mesh_data import ( + ElementalData, + NodalData, + VectorData, + elemental_data_property, + nodal_data_property, +) from .base import CreatableTreeObject, IdTreeObject from .enums import status_type_from_pb from .object_registry import register @@ -31,7 +34,7 @@ class ElementSetElementalData(ElementalData): """Represents elemental data for an Element Set.""" - normal: npt.NDArray[np.float64] + normal: VectorData @dataclasses.dataclass diff --git a/src/ansys/acp/core/_tree_objects/geometrical_selection_rule.py b/src/ansys/acp/core/_tree_objects/geometrical_selection_rule.py index f5382c3878..0d08ae02fb 100644 --- a/src/ansys/acp/core/_tree_objects/geometrical_selection_rule.py +++ b/src/ansys/acp/core/_tree_objects/geometrical_selection_rule.py @@ -3,9 +3,6 @@ from collections.abc import Iterable import dataclasses -import numpy as np -import numpy.typing as npt - from ansys.api.acp.v0 import geometrical_selection_rule_pb2, geometrical_selection_rule_pb2_grpc from .._utils.property_protocols import ReadWriteProperty @@ -16,7 +13,13 @@ grpc_link_property, mark_grpc_properties, ) -from ._mesh_data import ElementalData, NodalData, elemental_data_property, nodal_data_property +from ._mesh_data import ( + ElementalData, + NodalData, + VectorData, + elemental_data_property, + nodal_data_property, +) from .base import CreatableTreeObject, IdTreeObject from .element_set import ElementSet from .enums import ( @@ -39,7 +42,7 @@ class GeometricalSelectionRuleElementalData(ElementalData): """Represents elemental data for a Geometrical Selection Rule.""" - normal: npt.NDArray[np.float64] + normal: VectorData @dataclasses.dataclass diff --git a/src/ansys/acp/core/_tree_objects/model.py b/src/ansys/acp/core/_tree_objects/model.py index 96302b9508..37494161a0 100644 --- a/src/ansys/acp/core/_tree_objects/model.py +++ b/src/ansys/acp/core/_tree_objects/model.py @@ -54,7 +54,14 @@ grpc_data_property_read_only, mark_grpc_properties, ) -from ._mesh_data import ElementalData, NodalData, elemental_data_property, nodal_data_property +from ._mesh_data import ( + ElementalData, + NodalData, + ScalarData, + VectorData, + elemental_data_property, + nodal_data_property, +) from .base import TreeObject from .boolean_selection_rule import BooleanSelectionRule from .cad_geometry import CADGeometry @@ -120,15 +127,15 @@ def to_pyvista(self) -> UnstructuredGrid: class ModelElementalData(ElementalData): """Represents elemental data for a Model.""" - normal: npt.NDArray[np.float64] - thickness: npt.NDArray[np.float64] - relative_thickness_correction: npt.NDArray[np.float64] - area: npt.NDArray[np.float64] - price: npt.NDArray[np.float64] - volume: npt.NDArray[np.float64] - mass: npt.NDArray[np.float64] - offset: npt.NDArray[np.float64] - cog: npt.NDArray[np.float64] + normal: VectorData + thickness: ScalarData[np.float64] + relative_thickness_correction: ScalarData[np.float64] + area: ScalarData[np.float64] + price: ScalarData[np.float64] + volume: ScalarData[np.float64] + mass: ScalarData[np.float64] + offset: ScalarData[np.float64] + cog: VectorData @dataclasses.dataclass diff --git a/src/ansys/acp/core/_tree_objects/modeling_group.py b/src/ansys/acp/core/_tree_objects/modeling_group.py index 7d1c8180cd..c6c224b072 100644 --- a/src/ansys/acp/core/_tree_objects/modeling_group.py +++ b/src/ansys/acp/core/_tree_objects/modeling_group.py @@ -4,14 +4,17 @@ import dataclasses from typing import Any -import numpy as np -import numpy.typing as npt - from ansys.api.acp.v0 import modeling_group_pb2, modeling_group_pb2_grpc, modeling_ply_pb2_grpc from ._grpc_helpers.mapping import define_create_method, define_mutable_mapping from ._grpc_helpers.property_helper import mark_grpc_properties -from ._mesh_data import ElementalData, NodalData, elemental_data_property, nodal_data_property +from ._mesh_data import ( + ElementalData, + NodalData, + VectorData, + elemental_data_property, + nodal_data_property, +) from .base import CreatableTreeObject, IdTreeObject from .modeling_ply import ModelingPly from .object_registry import register @@ -23,7 +26,7 @@ class ModelingGroupElementalData(ElementalData): """Represents elemental data for an Modeling Group.""" - normal: npt.NDArray[np.float64] + normal: VectorData @dataclasses.dataclass diff --git a/src/ansys/acp/core/_tree_objects/modeling_ply.py b/src/ansys/acp/core/_tree_objects/modeling_ply.py index b1c408a845..16a464c905 100644 --- a/src/ansys/acp/core/_tree_objects/modeling_ply.py +++ b/src/ansys/acp/core/_tree_objects/modeling_ply.py @@ -5,10 +5,8 @@ from typing import Any, Callable import numpy as np -import numpy.typing as npt from typing_extensions import Self -from ansys.acp.core._tree_objects.base import CreatableTreeObject from ansys.api.acp.v0 import modeling_ply_pb2, modeling_ply_pb2_grpc, production_ply_pb2_grpc from .._utils.array_conversions import to_1D_double_array, to_tuple_from_1D_array @@ -22,7 +20,14 @@ grpc_link_property, mark_grpc_properties, ) -from ._mesh_data import ElementalData, NodalData, elemental_data_property, nodal_data_property +from ._mesh_data import ( + ElementalData, + NodalData, + ScalarData, + VectorData, + elemental_data_property, + nodal_data_property, +) from .base import CreatableTreeObject, IdTreeObject from .edge_set import EdgeSet from .enums import ( @@ -53,32 +58,32 @@ class ModelingPlyElementalData(ElementalData): """Represents elemental data for a Modeling Ply.""" - normal: npt.NDArray[np.float64] - orientation: npt.NDArray[np.float64] - reference_direction: npt.NDArray[np.float64] - fiber_direction: npt.NDArray[np.float64] - draped_fiber_direction: npt.NDArray[np.float64] - transverse_direction: npt.NDArray[np.float64] - draped_transverse_direction: npt.NDArray[np.float64] - thickness: npt.NDArray[np.float64] - relative_thickness_correction: npt.NDArray[np.float64] - design_angle: npt.NDArray[np.float64] - shear_angle: npt.NDArray[np.float64] - draped_fiber_angle: npt.NDArray[np.float64] - draped_transverse_angle: npt.NDArray[np.float64] - area: npt.NDArray[np.float64] - price: npt.NDArray[np.float64] - volume: npt.NDArray[np.float64] - mass: npt.NDArray[np.float64] - offset: npt.NDArray[np.float64] - cog: npt.NDArray[np.float64] + normal: VectorData + orientation: VectorData + reference_direction: VectorData + fiber_direction: VectorData + draped_fiber_direction: VectorData + transverse_direction: VectorData + draped_transverse_direction: VectorData + thickness: ScalarData[np.float64] + relative_thickness_correction: ScalarData[np.float64] + design_angle: ScalarData[np.float64] + shear_angle: ScalarData[np.float64] + draped_fiber_angle: ScalarData[np.float64] + draped_transverse_angle: ScalarData[np.float64] + area: ScalarData[np.float64] + price: ScalarData[np.float64] + volume: ScalarData[np.float64] + mass: ScalarData[np.float64] + offset: ScalarData[np.float64] + cog: VectorData @dataclasses.dataclass class ModelingPlyNodalData(NodalData): """Represents nodal data for a Modeling Ply.""" - ply_offset: npt.NDArray[np.float64] + ply_offset: VectorData class TaperEdge(GenericEdgePropertyType): diff --git a/src/ansys/acp/core/_tree_objects/oriented_selection_set.py b/src/ansys/acp/core/_tree_objects/oriented_selection_set.py index fc88e311d7..83037b81b4 100644 --- a/src/ansys/acp/core/_tree_objects/oriented_selection_set.py +++ b/src/ansys/acp/core/_tree_objects/oriented_selection_set.py @@ -3,9 +3,6 @@ from collections.abc import Iterable, Sequence import dataclasses -import numpy as np -import numpy.typing as npt - from ansys.api.acp.v0 import oriented_selection_set_pb2, oriented_selection_set_pb2_grpc from .._utils.array_conversions import to_1D_double_array, to_tuple_from_1D_array @@ -19,7 +16,13 @@ grpc_data_property_read_only, mark_grpc_properties, ) -from ._mesh_data import ElementalData, NodalData, elemental_data_property, nodal_data_property +from ._mesh_data import ( + ElementalData, + NodalData, + VectorData, + elemental_data_property, + nodal_data_property, +) from .base import CreatableTreeObject, IdTreeObject from .boolean_selection_rule import BooleanSelectionRule from .cylindrical_selection_rule import CylindricalSelectionRule @@ -51,9 +54,9 @@ class OrientedSelectionSetElementalData(ElementalData): """Represents elemental data for an Oriented Selection Set.""" - normal: npt.NDArray[np.float64] - orientation: npt.NDArray[np.float64] - reference_direction: npt.NDArray[np.float64] + normal: VectorData + orientation: VectorData + reference_direction: VectorData @dataclasses.dataclass diff --git a/src/ansys/acp/core/_tree_objects/parallel_selection_rule.py b/src/ansys/acp/core/_tree_objects/parallel_selection_rule.py index f2594b6ef1..1808aff7a6 100644 --- a/src/ansys/acp/core/_tree_objects/parallel_selection_rule.py +++ b/src/ansys/acp/core/_tree_objects/parallel_selection_rule.py @@ -3,9 +3,6 @@ from collections.abc import Iterable import dataclasses -import numpy as np -import numpy.typing as npt - from ansys.api.acp.v0 import parallel_selection_rule_pb2, parallel_selection_rule_pb2_grpc from .._utils.array_conversions import to_1D_double_array, to_tuple_from_1D_array @@ -16,7 +13,13 @@ grpc_link_property, mark_grpc_properties, ) -from ._mesh_data import ElementalData, NodalData, elemental_data_property, nodal_data_property +from ._mesh_data import ( + ElementalData, + NodalData, + VectorData, + elemental_data_property, + nodal_data_property, +) from .base import CreatableTreeObject, IdTreeObject from .enums import status_type_from_pb from .object_registry import register @@ -33,7 +36,7 @@ class ParallelSelectionRuleElementalData(ElementalData): """Represents elemental data for a Parallel Selection Rule.""" - normal: npt.NDArray[np.float64] + normal: VectorData @dataclasses.dataclass diff --git a/src/ansys/acp/core/_tree_objects/production_ply.py b/src/ansys/acp/core/_tree_objects/production_ply.py index 283dc34616..4c3bdcab8b 100644 --- a/src/ansys/acp/core/_tree_objects/production_ply.py +++ b/src/ansys/acp/core/_tree_objects/production_ply.py @@ -4,7 +4,6 @@ import dataclasses import numpy as np -import numpy.typing as npt from ansys.api.acp.v0 import analysis_ply_pb2_grpc, production_ply_pb2, production_ply_pb2_grpc @@ -15,7 +14,14 @@ grpc_link_property_read_only, mark_grpc_properties, ) -from ._mesh_data import ElementalData, NodalData, elemental_data_property, nodal_data_property +from ._mesh_data import ( + ElementalData, + NodalData, + ScalarData, + VectorData, + elemental_data_property, + nodal_data_property, +) from .analysis_ply import AnalysisPly from .base import IdTreeObject, ReadOnlyTreeObject from .enums import status_type_from_pb @@ -28,32 +34,32 @@ class ProductionPlyElementalData(ElementalData): """Represents elemental data for a Production Ply.""" - normal: npt.NDArray[np.float64] - orientation: npt.NDArray[np.float64] - reference_direction: npt.NDArray[np.float64] - fiber_direction: npt.NDArray[np.float64] - draped_fiber_direction: npt.NDArray[np.float64] - transverse_direction: npt.NDArray[np.float64] - draped_transverse_direction: npt.NDArray[np.float64] - thickness: npt.NDArray[np.float64] - relative_thickness_correction: npt.NDArray[np.float64] - design_angle: npt.NDArray[np.float64] - shear_angle: npt.NDArray[np.float64] - draped_fiber_angle: npt.NDArray[np.float64] - draped_transverse_angle: npt.NDArray[np.float64] - area: npt.NDArray[np.float64] - price: npt.NDArray[np.float64] - volume: npt.NDArray[np.float64] - mass: npt.NDArray[np.float64] - offset: npt.NDArray[np.float64] - cog: npt.NDArray[np.float64] + normal: VectorData + orientation: VectorData + reference_direction: VectorData + fiber_direction: VectorData + draped_fiber_direction: VectorData + transverse_direction: VectorData + draped_transverse_direction: VectorData + thickness: ScalarData[np.float64] + relative_thickness_correction: ScalarData[np.float64] + design_angle: ScalarData[np.float64] + shear_angle: ScalarData[np.float64] + draped_fiber_angle: ScalarData[np.float64] + draped_transverse_angle: ScalarData[np.float64] + area: ScalarData[np.float64] + price: ScalarData[np.float64] + volume: ScalarData[np.float64] + mass: ScalarData[np.float64] + offset: ScalarData[np.float64] + cog: VectorData @dataclasses.dataclass class ProductionPlyNodalData(NodalData): """Represents nodal data for a Production Ply.""" - ply_offset: npt.NDArray[np.float64] + ply_offset: VectorData @mark_grpc_properties diff --git a/src/ansys/acp/core/_tree_objects/spherical_selection_rule.py b/src/ansys/acp/core/_tree_objects/spherical_selection_rule.py index de867356d7..f96b6b8e3b 100644 --- a/src/ansys/acp/core/_tree_objects/spherical_selection_rule.py +++ b/src/ansys/acp/core/_tree_objects/spherical_selection_rule.py @@ -3,9 +3,6 @@ from collections.abc import Iterable import dataclasses -import numpy as np -import numpy.typing as npt - from ansys.api.acp.v0 import spherical_selection_rule_pb2, spherical_selection_rule_pb2_grpc from .._utils.array_conversions import to_1D_double_array, to_tuple_from_1D_array @@ -16,7 +13,13 @@ grpc_link_property, mark_grpc_properties, ) -from ._mesh_data import ElementalData, NodalData, elemental_data_property, nodal_data_property +from ._mesh_data import ( + ElementalData, + NodalData, + VectorData, + elemental_data_property, + nodal_data_property, +) from .base import CreatableTreeObject, IdTreeObject from .enums import status_type_from_pb from .object_registry import register @@ -33,7 +36,7 @@ class SphericalSelectionRuleElementalData(ElementalData): """Represents elemental data for a Spherical Selection Rule.""" - normal: npt.NDArray[np.float64] + normal: VectorData @dataclasses.dataclass diff --git a/src/ansys/acp/core/_tree_objects/tube_selection_rule.py b/src/ansys/acp/core/_tree_objects/tube_selection_rule.py index aa537aef69..167a1a7c6a 100644 --- a/src/ansys/acp/core/_tree_objects/tube_selection_rule.py +++ b/src/ansys/acp/core/_tree_objects/tube_selection_rule.py @@ -3,9 +3,6 @@ from collections.abc import Iterable import dataclasses -import numpy as np -import numpy.typing as npt - from ansys.api.acp.v0 import tube_selection_rule_pb2, tube_selection_rule_pb2_grpc from .._utils.array_conversions import to_1D_double_array, to_tuple_from_1D_array @@ -16,7 +13,13 @@ grpc_link_property, mark_grpc_properties, ) -from ._mesh_data import ElementalData, NodalData, elemental_data_property, nodal_data_property +from ._mesh_data import ( + ElementalData, + NodalData, + VectorData, + elemental_data_property, + nodal_data_property, +) from .base import CreatableTreeObject, IdTreeObject from .edge_set import EdgeSet from .enums import status_type_from_pb @@ -33,7 +36,7 @@ class TubeSelectionRuleElementalData(ElementalData): """Represents elemental data for a Tube Selection Rule.""" - normal: npt.NDArray[np.float64] + normal: VectorData @dataclasses.dataclass diff --git a/src/ansys/acp/core/_tree_objects/variable_offset_selection_rule.py b/src/ansys/acp/core/_tree_objects/variable_offset_selection_rule.py index c1afc8956b..eca949dc28 100644 --- a/src/ansys/acp/core/_tree_objects/variable_offset_selection_rule.py +++ b/src/ansys/acp/core/_tree_objects/variable_offset_selection_rule.py @@ -3,9 +3,6 @@ from collections.abc import Iterable import dataclasses -import numpy as np -import numpy.typing as npt - from ansys.api.acp.v0 import ( variable_offset_selection_rule_pb2, variable_offset_selection_rule_pb2_grpc, @@ -19,7 +16,13 @@ grpc_link_property, mark_grpc_properties, ) -from ._mesh_data import ElementalData, NodalData, elemental_data_property, nodal_data_property +from ._mesh_data import ( + ElementalData, + NodalData, + VectorData, + elemental_data_property, + nodal_data_property, +) from .base import CreatableTreeObject, IdTreeObject from .edge_set import EdgeSet from .element_set import ElementSet @@ -38,7 +41,7 @@ class VariableOffsetSelectionRuleElementalData(ElementalData): """Represents elemental data for a VariableOffset Selection Rule.""" - normal: npt.NDArray[np.float64] + normal: VectorData @dataclasses.dataclass diff --git a/src/ansys/acp/core/_utils/example_helpers.py b/src/ansys/acp/core/_utils/example_helpers.py new file mode 100644 index 0000000000..1bf8cf6232 --- /dev/null +++ b/src/ansys/acp/core/_utils/example_helpers.py @@ -0,0 +1,57 @@ +import dataclasses +from enum import Enum, auto +import pathlib +import urllib.request + +__all__ = ["ExampleKeys", "get_example_file"] + +_EXAMPLE_REPO = "https://github.com/ansys/example-data/raw/master/pyacp/" + + +@dataclasses.dataclass +class _ExampleLocation: + directory: str + filename: str + + +class ExampleKeys(Enum): + """ + Keys for the example files. + """ + + BASIC_FLAT_PLATE_CDB = auto() + BASIC_FLAT_PLATE_ACPH5 = auto() + + +EXAMPLE_FILES: dict[ExampleKeys, _ExampleLocation] = { + ExampleKeys.BASIC_FLAT_PLATE_CDB: _ExampleLocation( + directory="basic_flat_plate_example", filename="flat_plate_input.dat" + ), + ExampleKeys.BASIC_FLAT_PLATE_ACPH5: _ExampleLocation( + directory="basic_flat_plate_example", filename="flat_plate.acph5" + ), +} + + +def get_example_file(example_key: ExampleKeys, working_directory: pathlib.Path) -> pathlib.Path: + """Downloads an example file from the example-data repo to the working directory. + + Parameters + ---------- + example_key + Key for the example file. + working_directory + Working directory to download the example file to. + """ + example_location = EXAMPLE_FILES[example_key] + _download_file(example_location, working_directory / example_location.filename) + return working_directory / example_location.filename + + +def _get_file_url(example_location: _ExampleLocation) -> str: + return _EXAMPLE_REPO + "/".join([example_location.directory, example_location.filename]) + + +def _download_file(example_location: _ExampleLocation, local_path: pathlib.Path) -> None: + file_url = _get_file_url(example_location) + urllib.request.urlretrieve(file_url, local_path) diff --git a/src/ansys/acp/core/_workflow.py b/src/ansys/acp/core/_workflow.py new file mode 100644 index 0000000000..baa8edcb36 --- /dev/null +++ b/src/ansys/acp/core/_workflow.py @@ -0,0 +1,287 @@ +import pathlib +import shutil +import tempfile +import typing +from typing import Callable, Optional, Protocol + +from . import UnitSystemType +from ._client import Client +from ._tree_objects import Model +from ._typing_helper import PATH + +# Avoid dependencies on pydpf-composites and dpf-core if it is not used +if typing.TYPE_CHECKING: + from ansys.dpf.composites.data_sources import ContinuousFiberCompositesFiles + from ansys.dpf.core import UnitSystem + +__all__ = ["ACPWorkflow", "get_composite_post_processing_files", "get_dpf_unit_system"] + + +class _LocalWorkingDir: + def __init__(self, path: Optional[pathlib.Path] = None): + self._user_defined_working_dir = None + self._temp_working_dir = None + if path is None: + self._temp_working_dir = tempfile.TemporaryDirectory() + else: + self._user_defined_working_dir = path + + @property + def path(self) -> pathlib.Path: + if self._user_defined_working_dir is not None: + return self._user_defined_working_dir + else: + # Make typechecker happy + assert self._temp_working_dir is not None + return pathlib.Path(self._temp_working_dir.name) + + +class _FileStrategy(Protocol): + def get_file( + self, get_file_callable: Callable[[pathlib.Path], None], filename: str + ) -> pathlib.Path: + ... + + def copy_input_file_to_local_workdir(self, path: pathlib.Path) -> pathlib.Path: + ... + + def upload_input_file_to_server(self, path: pathlib.Path) -> pathlib.PurePath: + ... + + +def _copy_file_workdir(path: pathlib.Path, working_directory: pathlib.Path) -> pathlib.Path: + try: + shutil.copy(path, working_directory) + except shutil.SameFileError: + pass + return working_directory / path.name + + +class _LocalFileTransferStrategy: + """File transfer strategy for local workflows. + + Save output files to the local working directory and do nothing for input files. + """ + + def __init__(self, local_working_directory: _LocalWorkingDir): + self._local_working_directory = local_working_directory + + def get_file( + self, get_file_callable: Callable[[pathlib.Path], None], filename: str + ) -> pathlib.Path: + local_path = self._local_working_directory.path / filename + get_file_callable(self._local_working_directory.path / filename) + return local_path + + def copy_input_file_to_local_workdir(self, path: pathlib.Path) -> pathlib.Path: + return _copy_file_workdir(path=path, working_directory=self._local_working_directory.path) + + def upload_input_file_to_server(self, path: pathlib.Path) -> pathlib.PurePath: + return path + + +class _RemoteFileTransferStrategy: + """File transfer strategy for remote workflows. + + Download output files from the server to the local working directory and upload + input files to the server. + """ + + def __init__(self, local_working_directory: _LocalWorkingDir, acp_client: Client): + self._local_working_directory = local_working_directory + self._acp_client = acp_client + + def get_file( + self, get_file_callable: Callable[[pathlib.Path], None], filename: str + ) -> pathlib.Path: + get_file_callable(pathlib.Path(filename)) + local_path = self._local_working_directory.path / filename + self._acp_client.download_file(remote_filename=filename, local_path=str(local_path)) + return local_path + + def copy_input_file_to_local_workdir(self, path: pathlib.Path) -> pathlib.Path: + return _copy_file_workdir(path=path, working_directory=self._local_working_directory.path) + + def upload_input_file_to_server(self, path: pathlib.Path) -> pathlib.PurePath: + return self._acp_client.upload_file(local_path=path) + + +def _get_file_transfer_strategy( + acp_client: Client, local_working_dir: _LocalWorkingDir +) -> _FileStrategy: + if acp_client.is_remote: + return _RemoteFileTransferStrategy( + local_working_directory=local_working_dir, + acp_client=acp_client, + ) + else: + return _LocalFileTransferStrategy( + local_working_directory=local_working_dir, + ) + + +# Todo: Add automated tests for local and remote workflow +# Todo: update logic when cdb is part of the acph5 +class ACPWorkflow: + r"""Instantiate an ACP Workflow. + + Supports starting from a \*.cbd or \*.acph5 file + + Parameters + ---------- + acp_client + The ACP Client + local_working_directory: + The local working directory. If None, a temporary directory will be created. + cdb_file_path: + The path to the cdb file. + h5_file_path: + The path to the h5 file. + """ + + def __init__( + self, + *, + acp_client: Client, + local_working_directory: Optional[pathlib.Path] = None, + cdb_file_path: Optional[PATH] = None, + acph5_file_path: Optional[PATH] = None, + ): + self._acp_client = acp_client + self._local_working_dir = _LocalWorkingDir(local_working_directory) + self._file_transfer_strategy = _get_file_transfer_strategy( + acp_client=self._acp_client, + local_working_dir=self._local_working_dir, + ) + + if cdb_file_path is not None: + uploaded_file = self._add_input_file(path=pathlib.Path(cdb_file_path)) + if acph5_file_path is None: + self._model = self._acp_client.import_model(path=uploaded_file, format="ansys:cdb") + + if acph5_file_path is not None: + uploaded_file = self._add_input_file(path=pathlib.Path(acph5_file_path)) + self._model = self._acp_client.import_model(path=uploaded_file) + + @property + def model(self) -> Model: + """Get the ACP Model.""" + return self._model + + @property + def working_directory(self) -> _LocalWorkingDir: + """Get the working directory.""" + return self._local_working_dir + + def get_local_cdb_file(self) -> pathlib.Path: + """Get the cdb file on the local machine. + + Write the analysis model including the layup definition in cdb format, + copy it to the local working directory and return its path.""" + return self._file_transfer_strategy.get_file( + self._model.save_analysis_model, self._model.name + ".cdb" + ) + + def get_local_materials_file(self) -> pathlib.Path: + """Get the materials.xml file on the local machine. + + Write the materials.xml file, copy it to the local working directory and return its path.""" + return self._file_transfer_strategy.get_file(self._model.export_materials, "materials.xml") + + def get_local_composite_definitions_file(self) -> pathlib.Path: + """Get the composite definitions file on the local machine. + + Write the composite definitions file, copy it + to the local working directory and return its path.""" + return self._file_transfer_strategy.get_file( + self._model.export_shell_composite_definitions, "ACPCompositeDefinitions.h5" + ) + + def get_local_acp_h5_file(self) -> pathlib.Path: + """Get the ACP Project file (in acph5 format) on the local machine. + + Save the acp model to an acph5 file, copy it + to the local working directory and return its path.""" + return self._file_transfer_strategy.get_file(self._model.save, self._model.name + ".acph5") + + def _add_input_file(self, path: pathlib.Path) -> pathlib.PurePath: + self._file_transfer_strategy.copy_input_file_to_local_workdir(path=path) + return self._file_transfer_strategy.upload_input_file_to_server(path=path) + + +def get_composite_post_processing_files( + acp_workflow: ACPWorkflow, local_rst_file_path: PATH +) -> "ContinuousFiberCompositesFiles": + """Get the files object needed for pydpf-composites from the workflow and the rst path. + + Only supports the shell workflow. + + Parameters + ---------- + acp_workflow: + The ACPWorkflow object. + local_rst_file_path: + Local path to the rst file. + """ + + # Only import here to avoid dependency on ansys.dpf.composites if it is not used + try: + from ansys.dpf.composites.data_sources import ( + CompositeDefinitionFiles, + ContinuousFiberCompositesFiles, + ) + except ImportError as e: + raise ImportError( + "The composite post processing files can only be retrieved if the " + "ansys-dpf-composites package is installed." + ) from e + + composite_files = ContinuousFiberCompositesFiles( + rst=local_rst_file_path, + composite={ + "shell": CompositeDefinitionFiles( + definition=acp_workflow.get_local_composite_definitions_file() + ), + }, + engineering_data=acp_workflow.get_local_materials_file(), + ) + return composite_files + + +def get_dpf_unit_system(unit_system: UnitSystemType) -> "UnitSystem": + """Convert pyACP unit system to DPF unit system. + + Parameters + ---------- + unit_system + The pyACP unit system. + """ + try: + from ansys.dpf.core import unit_systems + except ImportError as e: + raise ImportError( + "The pyACP unit system can only be converted to a DPF unit system if the " + "ansys-dpf-core package is installed." + ) from e + + unit_systems_map = { + UnitSystemType.UNDEFINED: unit_systems.undefined, + # looks like the only difference from MKS to SI is + # that temperature is defined as Kelvin in SI and °C in MKS. + # We should still force the user to use MKS in this case. + UnitSystemType.SI: None, + UnitSystemType.MKS: unit_systems.solver_mks, + UnitSystemType.uMKS: unit_systems.solver_umks, + UnitSystemType.CGS: unit_systems.solver_cgs, + # MPA is equivalent to nmm + UnitSystemType.MPA: unit_systems.solver_nmm, + UnitSystemType.BFT: unit_systems.solver_bft, + UnitSystemType.BIN: unit_systems.solver_bin, + } + + if unit_systems_map[unit_system] is None: + raise ValueError(f"Unit system {unit_system} not supported. Use MKS instead of SI.") + if unit_system not in unit_systems_map: + raise ValueError(f"Unit system {unit_system} not supported.") + + return unit_systems_map[unit_system] diff --git a/tests/conftest.py b/tests/conftest.py index 16b755cfad..48ae0e099b 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -4,6 +4,7 @@ import logging import os import pathlib +import shutil import tempfile from typing import cast @@ -198,7 +199,14 @@ def inner(relative_file_path="minimal_complete_model.acph5", format="acp:h5"): with tempfile.TemporaryDirectory() as tmp_dir: source_path = model_data_dir / relative_file_path client = Client(server=grpc_server) - file_path = client.upload_file(source_path) + + if client.is_remote: + file_path = client.upload_file(source_path) + else: + # Copy the file to a temporary directory, so the original file is never + # modified. This can happen for example when a geometry reload happens. + file_path = shutil.copy(source_path, tmp_dir) + yield client.import_model(path=file_path, format=format) return inner diff --git a/tests/unittests/test_model.py b/tests/unittests/test_model.py index 7d9ffc227a..f9b7060672 100644 --- a/tests/unittests/test_model.py +++ b/tests/unittests/test_model.py @@ -8,6 +8,7 @@ import pyvista from ansys.acp.core import Client, ElementalDataType +from ansys.acp.core._tree_objects._mesh_data import VectorData from .helpers import check_property @@ -56,12 +57,17 @@ def test_unittest(grpc_server, model_data_dir): os.makedirs(working_dir) # model.solver.working_dir = str(working_dir) - save_path = os.path.join(os.path.dirname(remote_path), "test_model_serialization.acph5") - model.save(save_path, save_cache=True) - - client.clear() - - model = client.import_model(path=save_path) + if client.is_remote: + save_path = os.path.join(os.path.dirname(remote_path), "test_model_serialization.acph5") + model.save(save_path, save_cache=True) + client.clear() + model = client.import_model(path=save_path) + else: + with tempfile.TemporaryDirectory() as local_working_dir: + save_path = pathlib.Path(local_working_dir) / "test_model_serialization.acph5" + model.save(save_path, save_cache=True) + client.clear() + model = client.import_model(path=save_path) # TODO: re-activate these tests when the respective features are implemented # assert model.unit_system.type == "mks" @@ -106,12 +112,18 @@ def test_save_analysis_model(grpc_server, model_data_dir): name="minimal_model", path=remote_file_path, format="ansys:cdb", unit_system="mpa" ) - out_file_path = remote_workdir / "out_file.cdb" - model.save_analysis_model(out_file_path) - with tempfile.TemporaryDirectory() as tmp_dir: - local_file_path = pathlib.Path(tmp_dir, "out_file.cdb") - client.download_file(out_file_path, local_file_path) - assert local_file_path.exists() + if client.is_remote: + out_file_path = remote_workdir / "out_file.cdb" + model.save_analysis_model(out_file_path) + with tempfile.TemporaryDirectory() as tmp_dir: + local_file_path = pathlib.Path(tmp_dir, "out_file.cdb") + client.download_file(out_file_path, local_file_path) + assert local_file_path.exists() + else: + with tempfile.TemporaryDirectory() as tmp_dir: + local_file_path = pathlib.Path(tmp_dir) / "out_file.cdb" + model.save_analysis_model(local_file_path) + assert local_file_path.exists() def test_string_representation(grpc_server, model_data_dir): @@ -156,21 +168,21 @@ def test_mesh_data(minimal_complete_model): def test_elemental_data(minimal_complete_model): data = minimal_complete_model.elemental_data - numpy.testing.assert_allclose(data.element_labels, np.array([1])) - numpy.testing.assert_allclose(data.normal, np.array([[0.0, 0.0, 1.0]])) - numpy.testing.assert_allclose(data.thickness, np.array([1e-4])) - numpy.testing.assert_allclose(data.relative_thickness_correction, np.array([1.0])) - numpy.testing.assert_allclose(data.area, np.array([9e4])) - numpy.testing.assert_allclose(data.price, np.array([0.0])) - numpy.testing.assert_allclose(data.volume, np.array([9.0])) - numpy.testing.assert_allclose(data.mass, np.array([7.065e-08])) - numpy.testing.assert_allclose(data.offset, np.array([5e-5])) - numpy.testing.assert_allclose(data.cog, np.array([[0.0, 0.0, 5e-5]])) + numpy.testing.assert_allclose(data.element_labels.values, np.array([1])) + numpy.testing.assert_allclose(data.normal.values, np.array([[0.0, 0.0, 1.0]])) + numpy.testing.assert_allclose(data.thickness.values, np.array([1e-4])) + numpy.testing.assert_allclose(data.relative_thickness_correction.values, np.array([1.0])) + numpy.testing.assert_allclose(data.area.values, np.array([9e4])) + numpy.testing.assert_allclose(data.price.values, np.array([0.0])) + numpy.testing.assert_allclose(data.volume.values, np.array([9.0])) + numpy.testing.assert_allclose(data.mass.values, np.array([7.065e-08])) + numpy.testing.assert_allclose(data.offset.values, np.array([5e-5])) + numpy.testing.assert_allclose(data.cog.values, np.array([[0.0, 0.0, 5e-5]])) def test_nodal_data(minimal_complete_model): data = minimal_complete_model.nodal_data - numpy.testing.assert_allclose(data.node_labels, np.array([1, 2, 3, 4])) + numpy.testing.assert_allclose(data.node_labels.values, np.array([1, 2, 3, 4])) def test_mesh_data_to_pyvista(minimal_complete_model): @@ -182,7 +194,7 @@ def test_mesh_data_to_pyvista(minimal_complete_model): def test_elemental_data_to_pyvista(minimal_complete_model): data = minimal_complete_model.elemental_data - pv_mesh = data.to_pyvista(mesh=minimal_complete_model.mesh) + pv_mesh = data.get_pyvista_mesh(mesh=minimal_complete_model.mesh) assert isinstance(pv_mesh, pyvista.core.pointset.UnstructuredGrid) assert pv_mesh.n_points == 4 assert pv_mesh.n_cells == 1 @@ -193,7 +205,11 @@ def test_elemental_data_to_pyvista_with_component(minimal_complete_model, compon data = minimal_complete_model.elemental_data if not hasattr(data, component): pytest.skip(f"Model elemental data does not contain component '{component}'") - pv_mesh = data.to_pyvista(mesh=minimal_complete_model.mesh, component=component) + component_data = getattr(data, component) + if isinstance(component_data, VectorData): + pv_mesh = component_data.get_pyvista_glyphs(mesh=minimal_complete_model.mesh) + else: + pv_mesh = component_data.get_pyvista_mesh(mesh=minimal_complete_model.mesh) if component in ["normal", "cog"]: assert isinstance(pv_mesh, pyvista.core.pointset.PolyData) else: diff --git a/tests/unittests/test_modeling_ply.py b/tests/unittests/test_modeling_ply.py index 9d4663bd46..e2eae5e2c4 100644 --- a/tests/unittests/test_modeling_ply.py +++ b/tests/unittests/test_modeling_ply.py @@ -12,6 +12,7 @@ SubLaminate, TaperEdge, ) +from ansys.acp.core._tree_objects._mesh_data import VectorData from ansys.acp.core._tree_objects.enums import ( BooleanOperationType, DrapingType, @@ -200,68 +201,68 @@ def simple_modeling_ply(minimal_complete_model): def test_elemental_data(simple_modeling_ply): data = simple_modeling_ply.elemental_data - numpy.testing.assert_allclose(data.element_labels, np.array([1])) - numpy.testing.assert_allclose(data.normal, np.array([[0.0, 0.0, 1.0]])) + numpy.testing.assert_allclose(data.element_labels.values, np.array([1])) + numpy.testing.assert_allclose(data.normal.values, np.array([[0.0, 0.0, 1.0]])) numpy.testing.assert_allclose( - data.orientation, + data.orientation.values, np.array([[0.0, 0.0, 1.0]]), atol=1e-12, ) numpy.testing.assert_allclose( - data.reference_direction, + data.reference_direction.values, np.array([[1.0, 0.0, 0.0]]), atol=1e-12, ) numpy.testing.assert_allclose( - data.fiber_direction, + data.fiber_direction.values, np.array([[1.0, 0.0, 0.0]]), atol=1e-12, ) numpy.testing.assert_allclose( - data.draped_fiber_direction, + data.draped_fiber_direction.values, np.array([[1.0, 0.0, 0.0]]), atol=1e-12, ) numpy.testing.assert_allclose( - data.transverse_direction, + data.transverse_direction.values, np.array([[0.0, 1.0, 0.0]]), atol=1e-12, ) numpy.testing.assert_allclose( - data.draped_transverse_direction, + data.draped_transverse_direction.values, np.array([[0.0, 1.0, 0.0]]), atol=1e-12, ) - numpy.testing.assert_allclose(data.thickness, np.array([1e-4])) - numpy.testing.assert_allclose(data.relative_thickness_correction, np.array([1.0])) + numpy.testing.assert_allclose(data.thickness.values, np.array([1e-4])) + numpy.testing.assert_allclose(data.relative_thickness_correction.values, np.array([1.0])) - numpy.testing.assert_allclose(data.design_angle, np.array([0.0])) - numpy.testing.assert_allclose(data.shear_angle, np.array([0.0])) - numpy.testing.assert_allclose(data.draped_fiber_angle, np.array([0.0])) - numpy.testing.assert_allclose(data.draped_transverse_angle, np.array([90.0])) + numpy.testing.assert_allclose(data.design_angle.values, np.array([0.0])) + numpy.testing.assert_allclose(data.shear_angle.values, np.array([0.0])) + numpy.testing.assert_allclose(data.draped_fiber_angle.values, np.array([0.0])) + numpy.testing.assert_allclose(data.draped_transverse_angle.values, np.array([90.0])) - numpy.testing.assert_allclose(data.area, np.array([9e4])) - numpy.testing.assert_allclose(data.price, np.array([0.0])) - numpy.testing.assert_allclose(data.volume, np.array([9.0])) - numpy.testing.assert_allclose(data.mass, np.array([7.065e-08])) - numpy.testing.assert_allclose(data.offset, np.array([5e-5])) - numpy.testing.assert_allclose(data.cog, np.array([[0.0, 0.0, 5e-5]])) + numpy.testing.assert_allclose(data.area.values, np.array([9e4])) + numpy.testing.assert_allclose(data.price.values, np.array([0.0])) + numpy.testing.assert_allclose(data.volume.values, np.array([9.0])) + numpy.testing.assert_allclose(data.mass.values, np.array([7.065e-08])) + numpy.testing.assert_allclose(data.offset.values, np.array([5e-5])) + numpy.testing.assert_allclose(data.cog.values, np.array([[0.0, 0.0, 5e-5]])) def test_nodal_data(simple_modeling_ply): data = simple_modeling_ply.nodal_data - numpy.testing.assert_allclose(data.node_labels, np.array([1, 2, 3, 4])) + numpy.testing.assert_allclose(data.node_labels.values, np.array([1, 2, 3, 4])) numpy.testing.assert_allclose( - data.ply_offset, + data.ply_offset.values, np.array([[0.0, 0.0, 5e-5], [0.0, 0.0, 5e-5], [0.0, 0.0, 5e-5], [0.0, 0.0, 5e-5]]), ) def test_elemental_data_to_pyvista(minimal_complete_model, simple_modeling_ply): elemental_data = simple_modeling_ply.elemental_data - pv_mesh = elemental_data.to_pyvista(mesh=minimal_complete_model.mesh) + pv_mesh = elemental_data.get_pyvista_mesh(mesh=minimal_complete_model.mesh) assert isinstance(pv_mesh, pyvista.core.pointset.UnstructuredGrid) assert pv_mesh.n_points == 4 assert pv_mesh.n_cells == 1 @@ -274,7 +275,11 @@ def test_elemental_data_to_pyvista_with_component( data = simple_modeling_ply.elemental_data if not hasattr(data, component): pytest.skip(f"Modeling Ply elemental data does not contain component '{component}'") - pv_mesh = data.to_pyvista(mesh=minimal_complete_model.mesh, component=component) + component_data = getattr(data, component) + if isinstance(component_data, VectorData): + pv_mesh = component_data.get_pyvista_glyphs(mesh=minimal_complete_model.mesh, factor=0.01) + else: + pv_mesh = component_data.get_pyvista_mesh(mesh=minimal_complete_model.mesh) if component in [ "normal", "orientation", @@ -298,7 +303,7 @@ def test_elemental_data_to_pyvista_with_component( def test_nodal_data_to_pyvista(minimal_complete_model, simple_modeling_ply): data = simple_modeling_ply.nodal_data - pv_mesh = data.to_pyvista(mesh=minimal_complete_model.mesh) + pv_mesh = data.get_pyvista_mesh(mesh=minimal_complete_model.mesh) assert isinstance(pv_mesh, pyvista.core.pointset.UnstructuredGrid) assert pv_mesh.n_points == 4 assert pv_mesh.n_cells == 1 @@ -311,7 +316,12 @@ def test_nodal_data_to_pyvista_with_component( data = simple_modeling_ply.nodal_data if not hasattr(data, component): pytest.skip(f"Modeling Ply nodal data does not contain component '{component}'") - pv_mesh = data.to_pyvista(mesh=minimal_complete_model.mesh, component=component) + + component_data = getattr(data, component) + if isinstance(component_data, VectorData): + pv_mesh = component_data.get_pyvista_glyphs(mesh=minimal_complete_model.mesh, factor=0.01) + else: + pv_mesh = component_data.get_pyvista_mesh(mesh=minimal_complete_model.mesh) if component in ["ply_offset"]: assert isinstance( pv_mesh, pyvista.core.pointset.PolyData diff --git a/tests/unittests/test_tree_printer.py b/tests/unittests/test_tree_printer.py new file mode 100644 index 0000000000..d957b9e3ae --- /dev/null +++ b/tests/unittests/test_tree_printer.py @@ -0,0 +1,122 @@ +import os + +from ansys.acp.core import Client, get_model_tree + + +def test_printed_model(grpc_server, model_data_dir): + """ + Test that model tree looks correct. + """ + client = Client(server=grpc_server) + + input_file_path = model_data_dir / "minimal_complete_model.acph5" + remote_path = client.upload_file(input_file_path) + + model = client.import_model(name="minimal_complete", path=remote_path) + + model.update() + tree = get_model_tree(model) + + assert ( + os.linesep + str(tree) + == """ +Model + Material Data + Materials + Structural Steel + Fabrics + Fabric.1 + Element Sets + All_Elements + Edge Sets + ns_edge + Geometry + Rosettes + Global Coordinate System + Lookup Table + Selection Rules + Oriented Selection Sets + OrientedSelectionSet.1 + Modeling Groups + ModelingGroup.1 + ModelingPly.1 + ProductionPly + P1L1__ModelingPly.1 +""".replace( + "\n", os.linesep + ) + ) + + model.create_edge_set() + model.create_stackup() + model.create_sublaminate() + model.create_virtual_geometry() + model.create_cad_geometry() + model.create_parallel_selection_rule() + model.create_cylindrical_selection_rule() + model.create_tube_selection_rule() + model.create_cutoff_selection_rule() + model.create_geometrical_selection_rule() + model.create_boolean_selection_rule() + model.create_lookup_table_1d() + model.create_lookup_table_3d() + model.create_sensor() + + tree = get_model_tree(model) + + assert ( + os.linesep + str(tree) + == """ +Model + Material Data + Materials + Structural Steel + Fabrics + Fabric.1 + Stackups + Stackup + Sublaminates + SubLaminate + Element Sets + All_Elements + Edge Sets + ns_edge + EdgeSet + Geometry + Cad Geometries + CADGeometry + Virtual Geometries + VirtualGeometry + Rosettes + Global Coordinate System + Lookup Table + Lookup Tables 1d + LookUpTable1D + Lookup Tables 3d + LookUpTable3D + Selection Rules + Parallel Selection Rules + ParallelSelectionrule + Cylindrical Selection Rules + CylindricalSelectionrule + Tube Selection Rules + TubeSelectionrule + Cutoff Selection Rules + CutoffSelectionrule + Geometrical Selection Rules + GeometricalSelectionrule + Boolean Selection Rules + BooleanSelectionrule + Oriented Selection Sets + OrientedSelectionSet.1 + Modeling Groups + ModelingGroup.1 + ModelingPly.1 + ProductionPly + P1L1__ModelingPly.1 + Sensors + Sensor +""".replace( + "\n", os.linesep + ) + ) diff --git a/tests/unittests/test_workflow.py b/tests/unittests/test_workflow.py new file mode 100644 index 0000000000..fe3040f3bd --- /dev/null +++ b/tests/unittests/test_workflow.py @@ -0,0 +1,39 @@ +import pathlib +import tempfile + +import pytest + +from ansys.acp.core import ACPWorkflow, Client + + +@pytest.mark.parametrize("explict_temp_dir", [None, tempfile.TemporaryDirectory()]) +def test_workflow(grpc_server, model_data_dir, explict_temp_dir): + """Test that workflow can be initialized and files can be retrieved.""" + client = Client(server=grpc_server) + input_file_path = model_data_dir / "minimal_model_2.cdb" + + if explict_temp_dir is not None: + working_dir = pathlib.Path(explict_temp_dir.name) + else: + working_dir = None + + workflow = ACPWorkflow( + acp_client=client, cdb_file_path=input_file_path, local_working_directory=working_dir + ) + workflow.model.update() + + cbd_path = workflow.get_local_cdb_file() + assert cbd_path == workflow.working_directory.path / f"{workflow.model.name}.cdb" + assert cbd_path.is_file() + + acph5_path = workflow.get_local_acp_h5_file() + assert acph5_path == workflow.working_directory.path / f"{workflow.model.name}.acph5" + assert acph5_path.is_file() + + materials_path = workflow.get_local_materials_file() + assert materials_path == workflow.working_directory.path / "materials.xml" + assert materials_path.is_file() + + composite_definitions = workflow.get_local_composite_definitions_file() + assert composite_definitions == workflow.working_directory.path / "ACPCompositeDefinitions.h5" + assert composite_definitions.is_file() diff --git a/type_checks/plots.py b/type_checks/plots.py new file mode 100644 index 0000000000..27e61142dc --- /dev/null +++ b/type_checks/plots.py @@ -0,0 +1,15 @@ +import numpy as np +from typing_extensions import assert_type + +from ansys.acp.core import Model, ScalarData, VectorData +from ansys.acp.core._tree_objects.modeling_ply import ModelingPlyElementalData + +model = Model() # type: ignore + +modeling_ply = model.modeling_groups["key"].modeling_plies["key"] +assert_type(modeling_ply.elemental_data, ModelingPlyElementalData) +assert_type(modeling_ply.elemental_data.normal, VectorData) +assert_type(modeling_ply.elemental_data.thickness, ScalarData[np.float64]) +assert_type(modeling_ply.elemental_data.element_labels, ScalarData[np.int32]) +assert_type(modeling_ply.nodal_data.node_labels, ScalarData[np.int32]) +assert_type(modeling_ply.nodal_data.ply_offset, VectorData)

VZIyI5GU+E83~P>JOO#y45mcn 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�L^tdqE)5`gU42 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%0DhbyraypF|8T{e-?IMY;gj3C^%pvsOXdB= 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 z ztfF#(z`DkDf#{@D2IE{}tM^$97Rc8f%V$6C$l+A4CYe!iMo7PB@un~7rt*A47lMwz z_4ezzz5?L;BhX_GlK~>fmVYnH*K25 zM(#cYz*}_HtBkg^A$+@vHAZIPf88exiz*)=9$kU0{T6Pl0{BVbjIZ=F^;RK(#Pej7=T1_mI5K`D5BhFV(QkU zQ7vuB;gZ%#M8&vTip=^8YfuP*l8A_?_H)M)nOZu?5+lJ3j(To?X-~vk?C98gyzg56 zuwK;Ub>RBV93mpkK+itn+JN2k)9MhOOFiTZ(Tx_7brR!1`rwdQk8$e_YGLn#4-9a0 zIP%{Lg}ZED;1fGJLS^~3J+8Nd{Y+9B(m7F|m!(0yqwW1}lY>R>qzOr|sHP-01*Ff2 zz90Eu+r`~Tg~#^W33LQG4Di|VXO>g-icN~VHt+Sai#vCp4s*iG<%}xHdZPlr6QeVB zzb-fWwWNnUq$vlWIWR6cdNPp8-_HoAwIrAX&9t7OVAJ)18@I@KvYNk!mffIoj zlh0e^!PB=Ei;cMl0ZZ?PcXyimIFa!TMsMg6h}1l`&Q$A zrZrGS###z%`Hav_F^yKp4M|%4-6F?Q4yB z$|67ZPXC#N+z$$D0Wht-uy4vGa=DDkYC&0XOH1>zoFejYtyW~H@d^jkZ+{@t__))> zr;ZZKPYher#iyCE>5uov193VIW*l+SNhh)N9UWIFqMZ#}wum$W0)!BMvrlHVIZBqc zG4>M22hl7PwZq#!cY|T+kG_3)+uM*tgvgA)>p-NO8zGXX zO__;hL^Sn5JVO-aEkXn7L*@`s*JwEk!3beOEIHZAS|)XvsU=1@uR7wW3wO_@W>T4t z^W+R@3EwG)2rjdWlLU{}?~z+#fNOTG8O=g)<2b4#_ep)JH)K^E+9W=gN{KQeUb#o^ z1rbsGi6r4%5R)tgAu_68BwAfNULKqr!X^>VdE8fUE!u@Pne7Cj{?1`(>2|}(C;v>O zlh@LZNBZgb{PS_2zbVr7B3*4It=_Lm4m8JrQ#lrmFb~urK~q~zbEK&I_#9=D-fXEQ{ za@u}K#^h4im;VjN4y^S}NrK9BqLy{$I42Ex;4qpZZGTaVn&e~t0% zt;PekU8IsI91}e_g!%jQb3{n|pw{hZ50P)6S-a4^E7 z`-pSmdi61@=)zM+jV-r4b7h5ohZ-oY5nnI<8c#MnEAL$P~u{fiWA)Y2;Lz z(IOTw@Ek>C!QUKs-y;NGkq-owgORgqh!lqs=}7^}IS?l)BrOMBS;G;y$~}jr2Y=hJwDhWYzq%Z2^;(HPxdG@HVO37f zbqYb5)Ls6KAab-tP%wgN2xt8pAs2GaVRF7q(E7XeUi~7m1iV?2`;{ONaJKTAQv90b zH3bZ9OFe2^rHJR75`^?^{sp_uoeha%h_xJgnSJm~pt8U$R z&hMUcZ=RReD9LSa9_7jKG3$OI0l8(1x_2P9Y%%-lIz@JfB0LQ*3Q-T&YUdo@FV;}X zP=jS)F>SkFnF(GNyaaf22+2|wvxo;?dFo|)F*&*h2m$SsD09boy|b)s!>eE!k_Can zfaGbmj8S5?od+UMvt^*XgmKD~MIjyfLLOaD%S&Mh zJO_!r=+2KqDb=am6k=ZJOBnV;*UoCg0{!xj7m2*|S>M$MWrjSGXVQ(B;O#Weh7!g_ zW9p)zf`F)yR-{)KK`{%6HvLU|r?pw&ZHJWZDlcRzPihi<$#s9VX|DOp(M*1#Y2Fvl zyUJyn=GPYp&wS-GqpK}E1fTP#P4f%4YML8%gufx3694()D9Y#qf1|at;CZ1}ydnCM zuL!f#K6pa*k>mO=<37S#8F%$R2rTsgfmQYi#%p6B(uMwF?C+{u+7C}iI>M~+Nm_U@ znHU^0UdRvM*LRmhl}Q9%=55m17~p+OD$D``osL$L`E(9ChCaVdEYW*1e}o+y6AmW5 zEAdp(h1I{Ro=@{&lC>5K7WQvG7~xu7hX#F0zPX zoA>oR$`%F3? z66y2&S;q4aWEkhNUM~q=Uh+cvmIcz4m!0~xED#Rr5pvmjLTT)%%Sd18ruYlv6#j#h zwE(wgo0Vn|n2F~Nq8^#4SHF^M90F}dp972>{mQ}Q;&5o2$TVxs9Bix%2hxB?-aO$> zU69A}NgG`h`aXT;GHKy;i1=?W)~$?rJu%pa5M=sX?YD%!ILmMvya&=@%EHl8p-$@K z7bRYmsqre;f}0oGf_GO>t^K4g^FD|ub%lqC?+7n^WeBer<0gY%`CDsFdz%OPNZyVI zuTwW1$_9aHLZNNs4*~BM?_Gw~4uSkeP?wW9^2z(WCWeJ*pFi_!O>?WLdsmBb>zK(J zfqSA)_|p5Lx(i9up67r?#h-G&3%#FS_p-SE@5H@ZglS1US(N-={&u{!)G>w5@U=+m ztN$j30%4UV-Hhkb)CGNxy5L=ni^ew#j?-V%S^c4F`cnNtyN~1Hi<~u17=OFUiJoCX z#{J}raka0X)vv0L-e*YYqBe}2rLVL-&gc$EBI85mV}76BpdCzueBt$^-Ijf_dzcJt zdopTYd5!)-AEmP#+{aw|+KbfZic34bbgSz5G!L#lTF0*9P(~%6D!%U+6Ht^IiVOvZ zg27N=j8Gbo4U_=hP)I2XG2@&O>^H*gcuP@ukWV~lk`$tJyO(2pW)!VdC@AGf zFxQY+xmdOTdoF?m!9`g?YB5qNgbex|WDpMw6i4J!NrWV%_w3M@ZWp(?Z1diaUZ#2P zyI$LDdBP2v_r901?B3GK$dV4vp+Hii84~h?SA_H<&=5k>z^G#!QkwjR5+@HRX7bTF zk!LC1u@vu~@O#ho{_gF6`MvTUd0*l;3GX2v5LkZicRtH!X-d+IGN@d-lsM_8_{o3o z)Q3_5R`%);1sOb-0ZxJSY{p-D1PD(sd&+qGTC-)#FCRcMT}U(?bAXJ?;vYlq9pc`L zt^v~r$}$C5Sj1X@!6kp&O7- zpGBd6SFcO*N!ttKdgRT);2i?}dplptGMonEfPQu8v)VAu`2C{fmHtK=cv=jFF%2G(WWxL)O)!$+o<)j*fBcq?a_! z4Ws`(VotK|_!tMj8)Negf4OPSh%x3}(U;w+KlIn-HEN|3h<0O4bxU&59n=aB^ z{Y$SX&+Cz;Iy* zo*s!2$OD4Hi+rLWQg)C}NDqdY?;sZ_r<4VXmf3a6hTr*2QDNjzzT79_H%Z(i5EAZb zrj@alvx5})G&rQm{U{=yMPZYk1S1$(;`_o4yiZ%13q#>Vy9gDy;6IxuKH}=llb+P( zem%!MC{L91X<}xueNB4OEuDeleyK#|dHXZuIU?ZJA@Us%Qo4xjCi1-f85}*IH&`xy z%7AN)JO>Howfu~LqEu5jlU&MU`@DqwAZ9#ySWv=|6&sr;KJgC^nwUZ~4a2iTD6+Z3 z6eWJqP@pcThr*@SYR5Z9DkE>vg_cVQpF$$sWAte_)IIH{6eOT9lX(^dPVj=#E*~1A zeF#NTN0xz5Ifi=I4pH+!*xl1Z^i7KbS;Hgf(W6fXLtRf#v1zcInH}az18ZI|O!alk zgaH0ah`uuy$5tPuO+Sff918tONpjBv-Zv%%7G1=h_XYB(V@v%(FlHfG|189KWPC`` zN0y&cw6%o(33=fCjR(YepZ5jAM}Lhh@Z3d1=j;GyE9^NI-#!RJKZR{B;(eLnb4cbP zKv0?_GH&qx3S8^vJw|&-8@*?Qp4^JbyV`H;s=TYcfm7* zOOd3QQ*bCsJc}qn6bA|>Wzy^&1u2bB3J2pRy&(vN$c$EopSUljgu+9SNeC6Ad@yW% zAE`ijbFXsN-b^3^8cEe&NYg!d3Q;yao6=W8+9EwCnzb&l^Ha?eAG*GI(iRGxcXEFU zrVyT4@IH(?g8ZV48vGb12%M4-N`YCQDXYl197r8gpzFN+jG*D_k38%X`QLS2ep46` zR>DbAflTqcY3E~X*-|RoV+<#n+TcmT2(^P)0OA8{zNa7qw7+>58JFL@o*o&J#u(43(ui0D$R0EG%X+fe zN$e>hi`Fqfj$7*n3AqfUgXhJ(Axk9~d-}3jYjRBkk2YkA9S*^}fxMar>Jk!p5g=oD zG4NPi1Uyc8BzBQF$Rq@v`tR6xjx;nr@je0lvk4Nyn9cK2(!f^dTWbRKf)Q=ud+%zJ z1sN)|aS?;r1cZqklMsu-q>5b(%L$;NP;SQhu3i0da)Kn`6yx<#k=`SsZ#X^rg?mK4 zZJN_->(gO8p8tiW`TaifcLrV*>FRkOISTr6ZDPpysqOMy_73W?2@QR$@x9NpGuL7~SO*xlL-)+d z4?2c-Dbt%?$OneXR^q8*8Y=lTA1e7&QOT!@A2`MYl#ZJcLuq1wQ;;aYlzfT=rOPa| zBcqm4Lb*>Oi1KZgl|t%XeoI+FXeAirl>1UKN$)4*5@C!|c92or-pkN51~qRi3X8NR z5Mva^RP?%(uSnmCLbqDjdrtGj2YqvtVmqacXEu>xh_D2uFo`DOy*!@+$e1a`ofr>` zE|Lq381Fq~X0mI*m8Z(o0;TCeH7_Ws2(=E&sh|d=Qo8&`?9bAvHE1|aLRjFoOh)@MA(z5+ zw68@ye!v<;`e*IrwIK*h^)Zd-p56JLz2)X;I&>;{{=XNdXufJ7y zvR|TewEGqwUPzYmJ&l*@V@|~AQ%v5K>qhyVP(Jr7i6`GfJkdR}4)uW-DsNHWM+Oe< z&y6M8l}W==e`>?TAJPe=)n{W0&p&m6WLRCY7g#KX8oKfTCaHDah)Q?gNXMG!wFGk_K`A{-X@f0#tcFv2MR_3Mb`{1#lvhp#m0Tz9|4u1lv1`l zhe49c8>53#B^{pEqr4u~VdSnmym{Y8uh6{rz3*wZJpP(-bbsD9-T?u|gNp&={+>hO z@{Zi*85XI4d3L^&yyJ~krXAdS$N=g6%XO35aF3KO_>KId#0@b5@ZT9q$GGwCh%{s% zB5SN5@@TsG&5xbP38Ukap7f!}vvncIg>sC&v0nP^s-S0HkgQDAmh2$g!RPD;DB)mGG%sdv-PwA+&Wod(9g z&^Vq+2O0z8cHA}`x}Z+=89E3N^=uh0A+Tc6gDW`8()LRII zrohm!m@eqMWi^MpMeGt=A)J(tAcBI(hNj*fBp@^kj1N5r`Om1sLxi2Gg6 zxHkuQGkxf7(al8OeB?b%^YwU#^P}Exj&!sa9)I0Gj6?4JJ)X0pFKpO)D8?{)j=I`K zAo57%ZA2#kbzGY-%ZEOt91-mL6yqtvMPHq|i#m?n(q52A?KP&l;5pigG8-EDYz)zs zwU-OMln;dRM^GV%q(fUXsizGpPwOwzbxb~bHeJv=c{h1w!b+%UzFQmat4+8^dd9b* z57B2_I7U_CsbUts^b2*(r+MVsAE;|S9qOo_PZbv%tgiCbKwMCuC@PeC3OG`T!jXi8 z|52zY3I1<()o&=EYFbGo$uJ*U zj>Z$j&Z6Om(yh)f8cK-ZM|3f4p!jyNeSI2A6ZxC&LOA#2e=y}F0dI18s5As&u>ibBl z(rYT={p9DkzpBJj#SpAMx_Um%gO#UN&!#Gsq17JS`9lj0iKi zyfGNU6fQH>lqTd9r3hg}d2x^YOi^M)r>BHjaI=5qV1d-}90r4XnssB~P>d;NB`7Zx zCBHA%v@rYV9(|!^ao-b#9!AR-hfp%;R zm?jL`JTF6@J>O))&~=mA(Dx&t7hSkp|M#4bMad_`(lnyhc=OL8LQ>n_g#Ne8qT@DM zK*B8Q707E;zim87k|~dY!=tTiivE4`L^ehGH%|Kb-O(1ldB5l;T5BYB;p`~i&pkPY z^S^7FBjQ=7e<-@TH#E)do;vx$9QfA%M7RE;rg;?a*=U3NVm$0JD0f8td~ftm?~e3c z|CeKkxb4_8s|#QI+=WEcDawRLk3NSO-`dEKJAGeYzhrX)6FR>dLRaa!PXbAA{8m5c zR)}_==|#N55mC}o0+CyiO>~{qH$2;T!MhT1H7i6<`j9!s%A5d9(C?5=+PivIrbFE| zP9ULuXV#cuw@~*ZT^@TN?fMgwmwk)rBSGcuSm&$cQ^gRhKBAIO^I+u}m3%tXQOT!@ ziybc91&@+MG2zXG&_VhzijYX+`zcP0jdY<#PEnXB4>`L>DKUdh@nIDCEd|)UONEhQ zoZe8BCC_!wF7GGg1oFYN(_l~Vm_e#g2q|nOLg_hiV3h0mFKxCw>W0mhEyA%%B84(W zAxy>4k+Mi}F9|6k9n%aL`C1xlZSbJ6z^G85B<|Xvm?qiO1?421$PD}m@jhi5>44cvJlgbukm%VUYbWW63c+w~ET!le3)jG;g*sCPpa_@4&l zW;eiDhS)S9mF+Iab4j~h6o^;ein*@IBGBfwX=}yg+DDE<&(+%m!m`WLXqG%HL|?~C zWYMmqv?QsW;&Y6Xhh2M2E+xU_xUoGhcHpZqUi_l9!e-!8kBp%%`ja2J?fCPy=tn>C z;HWkOh^sEV^!J+PL4O`qu1&~H@V+-h*Yh9I6~=r0agf!?Tc5^5w5Wc$>8sAunM(^<87btX(ZLjFJB1dB}hDO8urIxvuT1 z>#0*{!|qR)NPPl$0jiIw3;2v6>odBI{k)CT&vN2|PKHo2CLx`=2u?(uzS-~T7}IuM zG)ZQC$%OZ%&mp49%_O|H$wd=#eUnqhVfk>qN<38z#_B_ba98qaC|3Tql23;^D*04# zvBZVD;4zLFLKF$>2T`VgQk0%L$fgX%1D;V72g(ch%($a8G0YKJJV8pu-n}T%Y3y68 zBcDwnX?s6Wjwn>tGDsy3q?2+9{x1!s;`Py{IT3L&0NdZ)YB|Vco(%c;;EYZ&E8sr>^=)$4f6#q@9VsX=|6!|N8of^oBx4 z(Fye{rFVB5%7m`?6P0|b7>r6j&4)@pRaEk+;$n*ncfn)KnBilXQu-(-t|5>Zs7NA) z1|O_n@fpgkr##-cN`s-cJ-SN*rS^ z2Ol$R3?ONxJW=d?4?*?yxQ*Sr24GJpLT5ZQ^u(2B%b$$bAlR~nBGrZ_T#`@3?4lV| ziXVlNGUxf$5uu3sO-lK>?|+GW#{-XBwjAswH1=qcpM=sX&kWKG!)12kn+C*@aD+t{ zOSW5>-!c|vfs)$inZrA7UT+5>cfT8=-nPL&Cz7938dAMoQ6R(Md!T3eaEwezk{(|=u z(z9S@cbKEr`izyg-9K;HclJHoh}a?Mm=&!SX^IS0iG%P{zdu# zd8Zy|8%Z!Z#`v>7?zukFg=iX)O=Lna?29^gevDa%-#x0`TVmKmzU5dk2fiD9;m=xc zuLoOW9R1`Yn&zkeB8HY$xa()05WoGkrn%+13C>HrnLVr{ee4b~@YGpf97lw7zoy^y7AzrGL<8jO9f8b&rya(oVIJHYo_@m`(DW z7a09TU!Wc%RrLiW*)(meQs4TBb;MRXPmn>v$SsIYztXQGog9;N>YE6mQtSr-)R~%|seNZKz=E2I}Rr2XjMhLPyh|#Rq@1Nh;QNX%F2*X9ZVt5l+7ebiK5FppO7KB|CJbozVl%90|o;{mDF@mDfVb zw2x&&%0MWfXO&xaF9P>b|NF{@*N*lygqR$%81pPJ;uv?!5}^$2-wZ*}4TWKs5tyVn zc}WP;Es3NgmGW2`Sn?6^kb*RFRDXr2v`MAx(`Lal5H=e4qMl1Y8J{;_c~@BXjJJ$( zK>)aiHn9kVEKA3<@Y!iV2qG4ROHB(co(5#NzD~b9FOU-IMCo~@9}sRQw6aCI90dIn z(rDvZ;Wj*j;+7)g#=TQP3xu*Y1??MMZRs0_OSi0qdDu37ck0BeQwiS|G|?F z9r)Z+qFP_AX|C2Wj#z;F@|&YME)W*IHS+gW_iLJa|JgXa?$po$csl)@35^bv#M3vv zIQDk>y73?BR1z3{hx z$%NE3=x5ez^gj9?q?2n&I!)_`5UTpWB*N%x$fsL}bdkU1_&be!l6TVNJ_-4lx|2!F zB%-8uPqVVpN48Z|9E?gn&4)@pRaEk+;u3+?Ro+C%ATw!<0>Y?bkPCBT9E4&#Qk*F{ zsx=pLMl*#gKT~3S7KY?^NFxdeVhhPsdOrbgD+&{31xZyJ5fq-Bsk5cA|7WO{XQk37 zT?r)AF->z~xwcOSw!LL6S7eZP3~Jjx(rkG!!fA{xTNrMXHt&vKuRqB}^dx!U!bmgIZs)RTZuuoFsyy#{GF?!&chIw|LvS2IYg(uarK$NO0tx%M?VRt$0wTm=Dmhn)Wwi8qd23wCoI2hhb z`&`Du2du5*oifan5#J`3+Mme;8>7G45OsEkJ_M=ICX~w07q{eBvuJ`LXK_8|xNqvP?T z%cxGMBhL#d$tNLK+RzXp*jQ*m^1e+B5LqSJ6h`>^$orA}SkvtMt7sl`tev#$znW(I zKSWiXc=nzbZTaf|62nW933K4g=*NGeYnRKw_o9A&_f1XnGd*MDDesJQd?>1pwlD|w zgii6*4>rx`-x|#|@`I<7#l)vAB#eAIH}VbX^gqU6q*HtM%r0VtXBlrNd4oWq*GwZ& zcoWeb=sC#c9J~9DgvSz39_=vlW27@7$cGTAJWHo}9F@>-neaj8SYuNEzVos{b%_+q?I+Fx;*!gQaszTKkUmpVWM{VlMZ8Q7kDWrxp#WAva;+XOU0pv)%#cS zX&$V+pps9AIx6{8af!j|D#eB?I)#HVW`>brZsv+|!|0=IFkUDzlnIJ8!i7@iGXtJ? z0QYwHK@wTZhVl&*6!*>}PP8jk z5B7x8b>>5x=CXeh$(`Z;y)P7}Z69v7JmkXJ=q+39u*8FlQdJ(uO?}H2Yt#(GmMz@p zlK}BP%R(OUtU&Ty6rjZN6#2c;r{R!i2p)#wP%v&7$crc)j0q$h!ij>dj_{Hb9&q0f z^>rBthj6cf+lEht@>2JgU0|IdjJ$0t_lP8frrqAmmJfk6wT--aVLcYlo5#aP|DtU( z+{ebsxDU`zB&npW1vXwSit&V|*>IWhasA|2e$KkHFYbF9FAkm~CBZ!}5DkpeWfmNl zx87meqQ|qqupYXWmb^sZ@zN_prG%{UNa$PlXcm%udHCqlV$i;=8KtZif$-N1y_y$1 zKP*_D_ZZA5n4IAf@Y&tjUVAK^vQxZ<4N6e1TI z7&<3jBtpFm@@*QaWTJ0|-f;jJ-qvU-qUDBwAUo`tr`?pgJv|`@WO-TC=h;bmFO^;zF$6 zyOK}yVC6-Xd^*%o$)}1-6joQw$WcZpI*fH>2IGXgwAp20c$BT&9fe^}0m^kld=A5J zq=5SlMGa}?9%kxXr_}g<&e-~n`%_|&Q>AgJ`A}+*ResBm%Ef*un9}5#l&e$%{pP=$ z=0sjP9Rt=mVK8huF7!hr#2nbWbxcJ4aY=L?j4fL-Z@NG+wlK8N7o^^_?=AwNWW2s? z-G5O4>B8f|*7rlfs56tw^J!iM0@)ypVF=WN^l(zw)CqN%@W4S-N(W?x6(gEP{v@hDm5keFvIR61nbHxWo+dyi~ zi3>j2G(Xx=hrjfkNZN+T&MAG--l)4Dx^vUq^&ex%_3j-w?f)W6|7%P*ZHzL!&P_sY z97B7n5Bgq=C13v7n20(P5p~n1x$e(}L_R(@-t`OJXHjm--|>DjE8QBfw!bTq_1bZ`-8%PK z06RjNJI#!_S?hTQL^HT%ArVjVmx14#p)9wQ!a_RD8a>)YABcf??T&Eu?aCX$^!^6Ni ze97JSPDQ>XS+FR0HEOfVkWUCueVxU=7X|Mru<{^O?k#lm~(^ba-7SK=AM?KaH_2m7Cg zHO(*IEr#$Szs@@)e$T_{zvBGl3kj#I7Ubr>DFnrch>G!LL`3D}fwqQRD~Y5M?q~de zO9&kR=~RZ{C)&?7j?r6q?3CndANfSD@f+kg52@&#C9znjBX+b#4D}9f9 zC8<1XEv~wyvK%F1^XH%>2{ob&QuKs1 z@oHi?WLO>IiP6im$zYKSmb(v7n#@x3SaMIZa!4w(m6R;!)(0p-+44W|TZXI<2TGGP zcorqi8dHf#)2Vi>DY)OgVFaK5@}@cd_akZZ5>JIvx&v8&+?Z!DHXk)8CEIfJ6B>-9bLYb_uj z7~g9F_tIvTg?CN^fbqf;YSEnu^FCd5T$ri$XNI3w8v_=pBma3=JtdOz#-`aAeZ!HP zBHP1&Jnr_0_s6Hgu|$V0nk^%7x6qq|%UaT7H`Bk#`p^N6?SYR^q8*IT)s@ z43~;S9+iBmxI|*?9*rEL)KPjEOb8915m07{DU-+}|3gBhVn~rs@(M|XIO5W7Mliu8 zouSEa@LdXCDvoA7+sJ!U_z+OiKxs>lDAzoz{4LU|0OINJp9_1V&y!{v3ZiI4KFu@J zZc$sxnvfleY2u>j9^?-t+1gzf1(ew=r8hxAMo=uX;4~$ivCqgrZt%FW3lC$Df%3Qz zo)hZYESNo4XV!wuNRn?E!#9!lS{5ZSf_PH@(+g@|xQ{j|Y|pGcFE8G7$Wx&|PmLz= z?y#AnE*us{^x-#anj^#bJUZ&SMU;lS@i@3suqqRgSp z<3*v}uf;v4L1+*o+xkUagdQM|W`!9|!^MGo(%`BL0d2QCA>)YO!i#L(t0Q|q z9QFH@c*P?liP6_@dRCl2B(D9x_}@>)cQWkBkrBTDhLBH)r}aM)ui3Hw+B)PDGGzg* zk1=9HK^%PjpJQB%{^AM)7lTGVo$>XidD-1!Sbta3T;~Q&^GAQ*G{5z*rn&CVN7`ET zvrRmm6XW@ZUe`1)iT?a`FKe1F$_pWoxqcY0Xggd!HbiJ9eS^ofbKZ6c97or9b|P&0 zkR%a3LqCRGQ{F8Ct`oey5nxCeUV=mVA#FmJgt@})(S&<@`{R!CB_64Pm^5KTlh?pJ%}U<2xW|dgp^{erZMAt zls*boDqsktQc0q`_zuOBq3oW#m?&QD8C{-IX6wMS+~4daMG_grh_P5G#Vwyvct7p< zKq&I>8+$!1g?PUa`7|_KPUs)92JvLaoe~#?=MzvW=kZRO2T2~xnqKjL9x;fgMF|HB z;G5O9{s_-Gin{!?aJJpgGGucoGIV1tyr1N;?tLxtS^j88%ic?R7QDuhWG)DuG95lMP+RM9ZJHbr|pEZXG}VK^Q2s7UTh#st$*Q5M#qIV=p&&0!F2 z{HaJnY0yPmv3|_bSPSAP@3Ab2we0V~JuXV}2?1~CLw#LIcDJEy)`EOm<{tY0Wyq(J zyh@TGkpz?enpX!yod>EqF5E8a@wym4*55d?BI@|YW8-$$4~crc@d0t|*6}~#bjG(H ztm8SgpqJ?^@@e-cnr7!)n&$AH1<-ju?OBj~f{l~spY!>sGLbjDo`&F<=A+tHDaNA`HZl*H5jMt}19ziFBmN5Ao*&==0O9vni+PM^ldu6AL(zgbB1 zGmUT(dVn!ixg(ztHguG>$8>@|fQ&H_V%!))hR9bQMo1b2etTV{KG1=L03sy48?s3K zQx{FZsW0t5gg2CD2~(zXA*0;K`*kh)ZtSs!6B5dpXslJg30+G)_m0!NlH^JLACWif z`w3}8@|GTB(B;)ekMr&o6-z=DuQFUJ4tdlypDHdDSY4&OaS5k;WZ%$#6=d-HbYH;M@Bw4gcnE8w%~Ka%)0WJm$>SJg^Dd&zZPX^ zy(gp^l66rqV$?Hj=%FFng?gwQF5K$+!gIz!VBL?0gyFaDN@4qjQL^ugVaNY;RNZCP zBnnt0SqRTj%Pg!NI6K;}^`3ZFEsQ-)bEF(G`2m*zlYzY`X_ z@9N8Fo;*U3<2(YV!D8JE{&EMrdB6xoRPsKYLeNYF4?X#rn@G$HMmqw^?|M~#WxgAi)t`O$_q z|9VKz!t%TSd;I(#vTNZ2r06LzKHVVt!cRXohTj{;@Y}N!>E&XKUq2bYc5jbi>#w8h zzedws4;fToNAw-1zO`w7?B}C;z%G%qG=Gqu}cpQ_Bm$5_b& zi9Uh&$ouQZ5az%Dm)UDRUFk|!YHo9z+cZD>vp+jJ-@SWxbEiAqsoA&h z2Txht{`R+Te)U&>wYkC-uF!1UxUt#0cW-mvdFM4>{pwenXFTH>&AI1J)()Km?s>c0 z-L5(I*khaZ>(@6sckXOH|M|~1&wS=Ho3qbm$6mTn$)}1-4aNkNP#VT7C6H3cot(Fk znLX!bx)4O^A(cQRAe0y^W?bC|D1FEU$_quv|0q%xv*b0!SSaBhY3P^%r6f}H7#+Fm zk9C6FBR_}IdPFGKmtBKh&dz;xh-XbBRpbxiNghlyN_h6P^Jy)>z*ZJ^fx0Ll6arDw z=XOt-z>U3YY zLm!YDX3CMc^Flk|RjAEaSIoBL1;MlqNtg!r7~g$ssfRefaYbb%%GtqCgxeo1t6!cY!h9l^+Nt zeW_jBW`TEz`h{bg=4WT@6#L=m&wlI|n&$sL(lp=JuOpiX z5~vTQs;peon@3wg1QGRhno4c*sU)L#2_bycG18Y$^aVPM1-jKQL{&)$O#}T0@#Hy( zr!FEE31(6N5I4q7q*MF5bQkwS@JRbmAY0wvq!S_x5k>mi_IpB10-F3oiuEB$CHF+2 zDZehArAAoDK)%?uEoW}k4Mw)v>$O0x`?MD5%ZGW1Ct#4w zDl=_Q8{;{{XtxHFb+3@BPYc~F@^SqwqFP1$-+23wCx%h{ijWtDgfY1Bf$_g6m-S&3 zuD^PGza*aC9TMN&faqIer^Iw}*v+efa&G=7^^^&F0^W zB-|jb|M{eTN4;PFiy<-I%p#t^0{8nS9)OF$GxjYQb~hReJBW(ip#<-YeCP|eO9;DD zmn?WbFLuY6YSD3vj9>L`W3s7~E_~#9@yzHK`iQ5~Vr=}}zeZOb{myAW9mh8}%_&Gw z#rWAqWx^J;ngU(<~s}O@7cBc*`P*-J8db`x-~|p@_>8bP_}& zPa|P=Lx?9Nl{9*uHK!1$UBnZZ9MH$}1VRv5BB1?UA%rIM+-E59r2Wx}kaTn*{kCz* z#G9}@;e(7SeM3TfGX~PFhI&W)F0b4nlV$oKq*g`68bKFVWw`W!XVcI8%+DM^JY5_- zo#4lQ?8lm?KJ}^li6`m$_P4*?yyrddY5wcK{%hp<1RFMNXzqRQdpAGzQ|-{-ZXlMD zc;Z3zg)e-e`S6E7y#IbYt9<9Omo=VVdQi!yic1w%Rwy)x9Ue!jH`jRtlMW04M0uqA zP^>8|3>-($0dObR$SHdXAyBUSJtB!gBxH!PNl`-h2;t-5fza^$1aFvJFNzWfj5`Dr zB8c)8|3CR5aa2rq@UHj(W{o1JSfTu5XC%Y(V%$J>PGDBbXTA1;NyZy`P9|3uAxdqvJP>#L!+A zB8}R^9W7`r>Ui`m>z1AMOa*J%`z-r=aF1mbzII+)gkOC@SPTu-VW>{gR0qL5y4sw6 zTi>f+E{P>!c6KgPr+JaZII=$a{0-lYTZKZr`6t6Bzg^QD9`*Xj=QYhy{}#vi{^3uF z>(PgAzH59h#-I&hG>^y^^?Tk0zstN|mW*Cv!ExwX_i4M0G42uXS5ByOz-eEXbjVT7_T1Xc2tbXpN;6v!)OR|MRj)*V#>TBO%uloPTl@ z?>n33zn>jNd*7&nKi)K7zf(NtmQf|%5M_iwiuc>}u#gxNH>sEZ7$W4Wgz^wl$6HpN z@IFHNj0NqnwyWJB|9BDG*aOj`4~sf9>U-oNPf#JK1c5@=&{lX;@D|nA@*1*Bs_za_ z+vx$kboJY}4k?!dC}BJ?S)h*bLh1|m7Mdqt5KopMm<4GhCTGd1+$-K>da7<9!+M{C~(LD1QfVN!A49V zlgwUnC2t#7Jg_u1v*-!;p^R~3m##kLa1M;To+z{4u?*yZ{gh^slVH`?&- zzlr61q5viDgF;>bOgA%CH4zdR-^q^%9j)6ex0 zN3+17)_<$N?qQ7@?YT`XJtsuHby(By8}@IYfFK=1ax^Mk0t2K&+Mq#7KuVgC3ZqA( z^pHkHK)NS2y1S*Du@Qq2d-nPM;^Ej|{Cywy`?}BTJYQ$>kC5Wo+~CJDdHX0CzzvYr(S&M$CzcHDEiElJVt<9j+ORi zAwii1w_({ML}%x|)Qi~%$+a=M+}?ypeXD@W|FqW^l)I|X_WY2F#}Q8IN)DCa8XcD} z(~H5D&`ZmPx1`%4OuH|is@KEEj(XB`hyvdeiQ=D>=>xP@Aq(bgzi|c;aYUp>-lOxfpSF+?`)=P2LU4BN{%Y4J@vNJbk>V=+5{qEt9;l2v5lwFI@157ffY^El3%=KR%S2aJVgirwGY&DT{h}^*hRIGo^p-KHi$dGM6HD$m zX@9acxq?oosNxjsV_&g4b&U%4w%O>6*y&W=WV&hJvLwA6+Q~#d@xZ)*dz+ElguI?~ zX$Jm$y4T_ZuUJrG0IE?*cJz~GsrkFvea2@PcGxQky)$#DxcF0v7 z0*T`ohyTmehqY$ZYrogcb_)q6B~E}|Gf-L6&C&+-t{OtUAe8RGlS9=7Zc^*r?ksjS zz&(WUSbPNq*mEjCY-rQ<$+~4~64LGY^yDm)%{*!>(tLHsx^!tlY(?&equhzEzIeXb z@a2bzKv6kX2AjQYjs%@}4>=4rX*<IkGp{1cZSl1zR~V&(hoBor5+Y!iObf0pJ@JJ?y(Ok!rT-OM)+D@&4813@T6DA#L0?Ve;$niW6;A;# z-|y?W<1LR=TTxW(GaQ-N`fVfb)T#o%)U2-R2q??9c0m<6E#jjIlWK2U{>yi!Su*o< z9^-CTa8B`3AMhv*>{Mq+{q)6wz5IgNr}hU!v6k0s7H-e2JSCgwhR#!zx3fKmcYMt& zOD}GaA-D)%n$X>7T^cKQHVX5ZmM!tDUuJe?BdE{VE}nTTgHHa{gcuqTc6F>Awm27XZUN}k;lO3xiAv{m?Pw9!7MX&r9N=`Bg6dD|<&!huoq@HoIjR?J7PFwq3;S zm?}>}eFCm6C5G(QGSXt30u)aJ0(9e$-8eFm_4l3tG-E-WYlBIPHPv0w%HbE4g9pFl zIsi4i-wwzl%AScoF4~?r@15y9qPv_?Q}p`0J>fV)4mNr7V?=GP%P8P?q{PtUwfR~W z7NtX6?CPB_vfr7@6RKW_^dCVORitoQ6M-k4!d-2^aoUj=DTW(0i5q|l3`lTXV58oQ z2sc>DAuMrl*<3v54KH;S)IjX*4lh*SLP5f{ZSC)4RJh47P)K1 zPK=r)d;N^3h-!MEAeQZRO0w{^#x(ntA0{27Sk_1=f;cHui^_>6ICOq@kJp zK)irtq4dBLN%NzKW-X#7sGb7B>}dv$#Ohk%9bZp!R~m*pX+vK4R$X3KbtJJadvHHY zj=(A>C5aaQcXId7DRu_lb~#-?KD_@h^r_W$lN?dK(#tQk1=!{D23^`-aWoe-z0?Fino`Y>%n6?Kc1qpH=yuWH?N4oTqp$#Vq*do zW1!|nfrWKy`EPWIoM{>Eul3G8?58sJnx%d zk1v~5Hzp>pE^vC!HRKL?0=~79*F+b9Pd@(c<=H4|0(pHw^+{_*$~Qa4`-2zPWc42> zK)ER&V*Z5C`0Pw{4hL>RjQro31t?w%ma~FOF0=s~Ss~IE;@Iu8c|B{-mVVHFVeKEz zOEHrPX9hIivfYZ8ov(Cqph=~hHrg?gVY`z(#2MMQVLw`<=MS{kxo-VAHW7$OMeRlE(>^~NLRB>k6k4%Ow@+kQH`Y%&eaepa_?^Ed5jkZZRjQ}xmeoaE)SYFWs8XTnEK4H&nMev~f1l`w zaEZas4^WZsG4crCg2!<_b^D>GWebIad_s7;(tNHM%hs3}@dCsVk-8{-CY~ zW1Mr!777BV64qH6&6je;hpZUan^8GS!bgX+!QkLPRS?jTo!m!O?3Ug;U_=*jav(AD za1BC8m8`w&3+xMmkgs=erXtxP&~>HBkH8Nd%S2T)V|MQXqSRQH9*lLb_t}0+w6#e~ zG7CdxIwv}fw4yN|KtB)8;T zzfNBvB!a3(z4mRuAx&vM<%0gNiEjFunI=@#pPxKq^Ot+XQUn=S*HC;T^pV%OH*XP< zK2VR)(GakoteQABh0rE&M1Z&$S2yHHT?EpOdi)fE{kR{DVg@I_eqv?e%QJF~BikR; zONR$t6-!-lp-zI&1LajWUi-@e-|~*(HAdgdyd9CYnU0+qDN$?9PzV0i+f)}Jr}uS| zorkGKqtQYUYIYHY1vM442Z23AmNXi2+M>5Z-$WB3BgR#_Qlb%q4^L>SDyv-nO*wjd z?T~u0a_8lPlD>7^;RqgqBYvrYT>||;6>fep5-oIAz6HmvwWTAYN)&@}cF1bF-B08j z$wKU^ya`e)9&|2S47@ZGN7>LDhgUtymOgVSov_C?XFtaX&G+$_Spv@8D@8ZE&g^0**gdBtZA z9&L4ci@GuGk}Uyu6G*7a%3#Zr%I&+y;=^)3W}1`7{ABWWaD)C12wyO7_`BaO^x@b{ zg`k#xdP~DLD33n!*mj~M^SQp{B7I(%pP~=i)}x|sJ6U?8>AXvcI3r<0#A>XZ$J|1< zC46bY?QCB?Z9G=Xzi{9NQp#|m)lk}b8g@Flb@)ncmqR5kqnABJ1RH8xNKJI<8^UQY z!>M8jw_Vd|g3#BUG?SnSP#dzcJiw8-&2gvvB$yh;-~*DVHR0&3K3?b;TkWFObv_Dm zd*uT~C8xC%&SVikSBJegtci|ay6+_4Ubb{1pizoXX92^7?-nV&B%_3Bwq%qIDJyJm zau$*)s3;UH>O;+R!zmPA{<&+L@?is~e%F?oy)Wo)-iA~#N7=|=p}p`U5oJMzFZqxN zkKj{zW#nmB@f<_M`L5M*kYMVLrv+s$r8)Dgt{gGYMvRT~!;tGRo}aa4{{GFTzmZei zc=glHL*BCC&cr7|{DURjN_rcqzLGqP5Em#Y_kBiNax&h39pgS^y%?~}JjZL+VPn=0)(qg{oH;GWuwP zOZ()Ir|YslYike}ztSaJuY!$_zukwFC}V0Q zt7S&TeyAq~97L#C^eC@dkQ8K&2kN6HK)i!k1FD%P=t(TIA|(Y+uktD(ouN46!HG(= zP`RoV<>9du0hv-I|DMUE6lsIL15>_!s}(7)=~-fLHE^>-DV*n>)T8V!mo`vo);X)AX zCdA4xgze`%)n6tt5`NkSQ3b61~|;vv}e)Y10jt+jI#c!J6N z08oDut9{bCt!BJb<*3u(5-5+TXLes#Yv3|!m`Fgz=aPlS zifI3fS7U8g(-AS!@cj@D%Qi8&ykTuJJJcvC5^D%(TpNKR%PtDsju z3cufpu0&9+b4AlQ9?1xx<)$SJ%KH_;z??SLBaGXlKSz(120W)oINv1S2QPc`k1#OT zHR@JHKM$2B1v~dv*)IGlAnN#T90Kp#7U*?yaeQ=s?K)}LELvMBNm{lPLRU9;qx7(B z=+Cpgi=;Lgp2ji6v>F6;6_CUYZY99K-VQq?_U77xh|X2!a(xnB{E;&>W+l4+=i1D| z30%X(s(MzuF36co#-9F=f^7xtHamli{n#_$np8*sLa^V9(FV-s0};k9^{Avod(g%c zZild;&t1m&Pfkt6m`7rARaqM|>U;0ao)q=2*{fcD93d&Ta+>_3t(%aWwj2hvzgf6* z;QxN|jIevAfR!Rx(xm6(o%0+j^pIaw9ZO=IwiJ|j~IE|8l46~iS3KwD5oRbdTnE=FW_X%FG?UGH@ zi^N%Pv~LIW7N`1POMcYOla52!qC7$!q72-!izSaq6}`T`cjlafaO$_Ug!+BYBQ{uL!8oj{gD0g*BWuCk& z3TcB569X(8QhKQK4`)nag2flVr^v4kaBA5Y*Uqp?PE1LXu0Af`8IP$%-E{0}<7q(T z@8kk^*>Wj#MnY~+$k|{=0V`K5mFwoLu+u^warqNbn`PT6Z2DBL6IyRTVXrrl;3-bz6Kn-<-A86MiIML|CsHQd8@ajrm+Z z;7j2r&$wj!hv;+~=b9;M!Mc?8>BoZ!_vMwI+}@GSBcWT6;CUd&IO@3fwM?WydIZT4 zv$y!N+s)r=2b&p=b5rK-Z>TmW^cd-D~+)fh0kV7sQUwgt-+EU9aiK?zug_ zT#W``!VM?HlfCvho-81FA&>tkxe4WoqKp{x5=!#~(}hkf5Wli7p0>ySdI6=$*7%gxUtL(tAwXe0ue1C@+kCMmy*>XO&!FzT$Nz%}$@%p0WQ?KOy zOO5y1cuzI)(C~d%2Nw9r>T6NHqIuiTyE$+mp4tCMW5obm*|iFLY1t;*sFLW9?fh_}kucu3$_zDi~DD&VN-Hxf9R5U7)~S;Tw3q zbOUz^l0$~0ph9{+?2scS>$o@unA9tUMtNYDv;j0u#p;IHPSEn(-OfEqp!u@r$(k;Q zU$VLdXouhY)2W!3UH8)CPA!by#sIXqouC}Gq_b*_NI45VkpVb zE%VneB*|JcPxxa@e5KWITn+CkITiE^==7%4WsK zDGD;TDw}l#2BTZY=te^HCM6F&+Qpn>{Si)|XwK{I__#zj-9AHIF!nTSMHMC6Dzf7j z$^yVF)gC}eZ*bRz$5C^EWuR^$2NaCY8NP0bfA4mBc%@O?=f3UB!7nV}icR{%M6F7Y z?67}T&>}~1c|DNHOiVpr5hqlnof4GiCB3Hb% zFV^D}vFLGtKKoI9uCvH6yB&pXAyfU0fUna;S{A3G$X6@x={R)Ih7Oeu-TBeIsx5OM zR%>K0Oyk}N$0>>QXM5f0NBb&mC1^G2T~R;jS|u#D1$K?NdUTcE6ZYnbcH#y>wuAud zRR?){`rv)20K{*PWaQaEyj+Bz$d}1Y{XLiq;6(0SbV&?S=06Ub!0yI`c)5EVrE%)M zV2=OZkD>c4$Dcp+kR=Isekx#GD!rVLXBKohK6DESIK3+OZQj*(n+Ktj5}0yAwq;fv zk3w))3B!WB_y?d$H-U{H@5`6KutYs++3MsEM0_xsav>TuQCKQ3i;fQjo%2S7uQ9cN zG)*K$L%%37D`Q}Vi#Li!+V-1qw=$sW!=nWL>3#>B1<{UAt=62;X#-5No$4Q6(i;TR zt$p$XOqvsn-_7N*9dBt)FsDEU>^;lc5&;DY+{?bPPjb_Z#}F0yE-)&l6?c&OQ<7hVN zo(`{iCT4M+t6b(r9@GeVrcuh@Szw`+Z?)-1+}nN(mQkpY@}^=(Cjch$cJ7wCp}NWl?B><|B7WWu{ly^VBuifHuj_ z?C3jE*3LdquOWia2gE9gFV%T%{s^xSj8{Zz-B;XY2C5g9%ZU>6Y{q6+MbMD*$!ytS zbsi;I_^bSKRzvc|5pfdKU+2kqY%VFFBI+Hy%?&PVh^zbmKo)<_0D=P?1I!JC@*D z?%TQ_*AhJ}yIN#V$S}>oZ_l#uMz#aXu-&Yc>klXY2<02*n(KdA?nQR@ zfyJc!OBPmc&xgv*v2FKJlO=Msm(jTZU5ZM5+$!s>l~=IFf2sMWkIKqD0!rTO8u6O_ zy^79~FG%T7Umd``PE-W4{tkJ`XHUVAb`YV2(%zgXGXtb^gr|x`yyvC05-pLpVmtmP^tp(XI>fNb+}ALEuu4W@bSFsa=srR$Vw z!y;U8`S_J-dB^pG?vr=bA; zhvg&_4<4Q_6I!av9o}9w(5dbeKbWSSzq}edNTen0|1wLD7+DrwOD8bsE%#LuC0lou zZ|{2fhzV>xtDYjBd_F*I6-k#XNuxR$P|y<0J?_P&Iu|<2;^?;&l(|LrDv{}UY+DuE zai=9B=Qmv!Mh?GquyD!D9VLHWs^^BYmHI5q=9aY;38OT((?IA}-jG;5 z>$%Ei^KxzXat`u7O&POfEjQ=?97M0|%W4;p`rwB>xZw2t6*b4@SX#N;A+$~qd(D}l zN-(jpNYE2e>gGej*+DrHU_W7Y+y@YGWe!4DAX?)YR%|GD?)!FoLIw^mJPH#quI~%B zxyHnj&NL1Ni7oWhd2d>dn{q6nz6&gNls9NCp^deAj)W3911>8O9`pz09k#4Hck|uY z?4qtf_^hQGl>+ETfo*0Q`SEPBo1GDG{3-ISf1;{!!noTK=kC!xb_9OM;dMX7-0K00 zQB+A=oxZ=Ul$vy(U?H`v?UQ~v^-N0LF=Sj+Nx9GGNlo?`mQ=f!Zl8(iM;4nAJGpyI` ztb>aT$mG!2zk9z*8#b)%RCw<_NT@1q&jQvMHBgA!8XQF_-R&^o$oDd%k=~vbfBA`s zSW&`GZPzy#*-Z4*_6>0?*q~v4=Ki)phfL*394ckS#B|Nkp7(eG$K$ol*z@cJ))@6( zb&2d%GvAm~R8T)#W%=ejT#EDs2|cSP(oe!pj&yxY;$)yB9^ypFO-R?uRZWVgo)jCa zj#H#tk(ZfHM!ljr>J4BYDbuf`6t0WvD0bmiXy(bZ2A~2u8kT4`n>@w$kn-XD*s@Z1 z$P)>hnjB9gllBP=b*XFJ74Q~t!unVy<_qf~rpJv+Vht%iq@6n}21kvLy56=rx}IH+ zirli7%d=;CUms!_5d`?00X$XbgGhZF;FZUhlio44D*@zs7f|>&9*|f^8l@XDLlf@DJ=(>vrqt z#Z7l+ZIy+@UNKk}zntZ{NAB*eS`(d8pc5i`wC;B zAeCrC?eg^g0CK*#l956Q7h{4f?$}jV-^shH2YHr!50;D4o z6?QLc69v}#d|%zg#$kZtFZgYTjXJBzcMosBasO-OPS6@2+S5(;ONLKGl}NOha>4LX zpyG9t8R>=#V6Un|Ta z`Xz^6!_cWWUDWyezBhvJ`6xS{aY}-)OtB?=vVr1VY6Ug zjcnQ+;C%;Qz^P@z`cx+yy@{{>Kba6Z=}Ug43Rl6&riU-&p-mh}@ypRK%&bfSiih8} z6;asfqx6SP{s0h+R7cvIsff4s*i&wj0zHXUW zH+FaltgijRak)@v$gP65=Vkfv_b&}>&|1kwxZ_b}*SzBKA9w=hvC^>`z1e$49lY>W z#9NR%SnEsox4b%kpvkv>dt%wab0x0n(_~yhR&3Ql81r%4NmOy;B2{dVTY$}E+Rn3t zf7%UfiD_zbGRZ>WgUsMbZBY7o@(bUZ^+kPQSLYkA$!Y-Mc$VXaT@9NQv_Xm2f_xK_}+A$*S^_?*ms2QzbsrBZ2vl31LmRUCe{UCwKr$|Dkh4dXcuT2rwNDa`Y#iD$ z+*#e&JrwIQd$~3zJJRs@G(8yN9di;VedJ+Atp2?gLqSLXqK(}{`kc`lNza8)H^8fgvx7>;aaaQ^$ z!#4ESt7tZ$4^OVM*8W4PzG^v4%q^gY{1 zhM^vDO?yCN!QCip_2~R;0}60nAxRs07)SGC8;PfJjj~ASR64u0|~xrP9c9?DN73A zoMgHD=+jL5WP+p+YJSMVXb@re{C@0y=G+d-D~qJ%-l9FM+qRhku_Nu&@SK9h(Ap9p zvJZZ#+`4p8_yTDv)bJqU2&)FU%N%xGEad8|#w;s%bVi-Pr(XP^Z-!j?rlH$2|B_$* z9_O+_$;M9)PyL_`AG%dJeU_{AWb;B}0!2OTs-L-7X=Yg*Vp zptL5d+NDILGl5m;f(skUswJK(0Dj4h0)~uU8c}S-Xnaj}{sH07JOD2NAg7=)4UfH_nCwQqa6EWX!4%j)@wrKVkJZ&6Z(Rsd~V^Y?;g z{MX}UP;&u`>yz2YA1N(qWhM1jA&SjGA%z@hn~_M4CBfK}l>D|p(LHALY z=GK35%x`4fjW)=xCWV6oDXF^BYK)U>FTOYumW;lYK|oIAXT|K{?$@{Gz{utT+zRE* z%((+~OU7`JTA)0(xVivle%z=&A(e#SU4M*PusNc|G$;hdqpZ~cw?rkKArdh9kqqBe ztn66DVGL%O!4A%YW|PgX3qObg&3ga#3&}I=PaR9(Rct^z@M#FZ)PnY}0Ju}PmME|$ z%4c~4oqOfIZz1OE2 zsi(R;)%w^h!Mpb5((V5tun2bFGdIKo=qbwNf8(7}Bt zR$yo)Mpc@Q@8v7wR(B@m+i(0Fn3%HUSSM=L&KMB1-k)-tv>~n9 z@p4Fc!;t$~U`t5*A7S)3s`mx@Jr&t@gM0j^VK