resqpy 4.14.2__tar.gz → 5.1.6__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {resqpy-4.14.2 → resqpy-5.1.6}/PKG-INFO +8 -9
- {resqpy-4.14.2 → resqpy-5.1.6}/pyproject.toml +8 -8
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/__init__.py +1 -1
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/fault/_gcs_functions.py +10 -10
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/fault/_grid_connection_set.py +277 -113
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/grid/__init__.py +2 -3
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/grid/_defined_geometry.py +3 -3
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/grid/_extract_functions.py +8 -2
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/grid/_grid.py +95 -12
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/grid/_grid_types.py +22 -7
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/grid/_points_functions.py +1 -1
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/grid/_regular_grid.py +6 -2
- resqpy-5.1.6/resqpy/grid_surface/__init__.py +52 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/grid_surface/_blocked_well_populate.py +5 -5
- resqpy-5.1.6/resqpy/grid_surface/_find_faces.py +2583 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/lines/_polyline.py +24 -33
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/model/_catalogue.py +9 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/model/_forestry.py +18 -14
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/model/_hdf5.py +11 -3
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/model/_model.py +85 -10
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/model/_xml.py +38 -13
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/multi_processing/wrappers/grid_surface_mp.py +92 -37
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/read_nexus_fault.py +8 -2
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/relperm.py +1 -1
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/transmission.py +8 -8
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/triangulation.py +36 -30
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/vector_utilities.py +340 -6
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/volume.py +0 -20
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/wellspec_keywords.py +19 -13
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/write_hdf5.py +1 -1
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/xml_et.py +12 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/property/__init__.py +6 -4
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/property/_collection_add_part.py +4 -3
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/property/_collection_create_xml.py +4 -2
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/property/_collection_get_attributes.py +4 -0
- resqpy-5.1.6/resqpy/property/attribute_property_set.py +311 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/property/grid_property_collection.py +11 -11
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/property/property_collection.py +79 -31
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/property/property_common.py +3 -8
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/rq_import/_add_surfaces.py +34 -14
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/rq_import/_grid_from_cp.py +2 -2
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/rq_import/_import_nexus.py +75 -48
- resqpy-5.1.6/resqpy/rq_import/_import_vdb_all_grids.py +120 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/rq_import/_import_vdb_ensemble.py +12 -13
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/surface/_mesh.py +4 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/surface/_surface.py +593 -118
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/surface/_tri_mesh.py +13 -10
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/surface/_tri_mesh_stencil.py +4 -4
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/surface/_triangulated_patch.py +71 -51
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/time_series/_any_time_series.py +7 -4
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/time_series/_geologic_time_series.py +1 -1
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/unstructured/_hexa_grid.py +6 -2
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/unstructured/_prism_grid.py +13 -5
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/unstructured/_pyramid_grid.py +6 -2
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/unstructured/_tetra_grid.py +6 -2
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/unstructured/_unstructured_grid.py +6 -2
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/well/_blocked_well.py +1986 -1946
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/well/_deviation_survey.py +3 -3
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/well/_md_datum.py +11 -21
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/well/_trajectory.py +10 -5
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/well/_wellbore_frame.py +10 -2
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/well/blocked_well_frame.py +3 -3
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/well/well_object_funcs.py +7 -9
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/well/well_utils.py +33 -0
- resqpy-4.14.2/resqpy/grid/_moved_functions.py +0 -15
- resqpy-4.14.2/resqpy/grid_surface/__init__.py +0 -73
- resqpy-4.14.2/resqpy/grid_surface/_find_faces.py +0 -1423
- resqpy-4.14.2/resqpy/rq_import/_import_vdb_all_grids.py +0 -108
- {resqpy-4.14.2 → resqpy-5.1.6}/LICENSE +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/README.md +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/crs.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/derived_model/__init__.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/derived_model/_add_edges_per_column_property_array.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/derived_model/_add_faults.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/derived_model/_add_one_blocked_well_property.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/derived_model/_add_one_grid_property_array.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/derived_model/_add_single_cell_grid.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/derived_model/_add_wells_from_ascii_file.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/derived_model/_add_zone_by_layer_property.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/derived_model/_coarsened_grid.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/derived_model/_common.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/derived_model/_copy_grid.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/derived_model/_drape_to_surface.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/derived_model/_extract_box.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/derived_model/_extract_box_for_well.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/derived_model/_fault_throw_scaling.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/derived_model/_gather_ensemble.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/derived_model/_interpolated_grid.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/derived_model/_local_depth_adjustment.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/derived_model/_refined_grid.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/derived_model/_tilted_grid.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/derived_model/_unsplit_grid.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/derived_model/_zonal_grid.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/derived_model/_zone_layer_ranges_from_array.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/fault/__init__.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/grid/_cell_properties.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/grid/_connection_sets.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/grid/_create_grid_xml.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/grid/_face_functions.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/grid/_faults.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/grid/_intervals_info.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/grid/_pillars.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/grid/_pixel_maps.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/grid/_transmissibility.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/grid/_write_hdf5_from_caches.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/grid/_write_nexus_corp.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/grid/_xyz.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/grid_surface/_grid_skin.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/grid_surface/_grid_surface.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/grid_surface/_trajectory_intersects.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/grid_surface/grid_surface_cuda.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/lines/__init__.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/lines/_common.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/lines/_polyline_set.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/model/__init__.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/model/_context.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/model/_grids.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/multi_processing/__init__.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/multi_processing/_multiprocessing.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/multi_processing/wrappers/__init__.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/multi_processing/wrappers/blocked_well_mp.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/multi_processing/wrappers/mesh_mp.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/__init__.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/ab_toolbox.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/base.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/box_utilities.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/class_dict.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/consolidation.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/data/build.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/data/properties.json +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/dataframe.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/exceptions.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/factors.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/fine_coarse.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/grid_functions.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/intersection.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/keyword_files.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/load_data.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/point_inclusion.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/random_seed.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/simple_lines.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/time.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/trademark.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/uuid.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/vdb.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/write_data.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/xml_namespaces.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/olio/zmap_reader.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/organize/__init__.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/organize/_utils.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/organize/boundary_feature.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/organize/boundary_feature_interpretation.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/organize/earth_model_interpretation.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/organize/fault_interpretation.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/organize/fluid_boundary_feature.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/organize/frontier_feature.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/organize/generic_interpretation.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/organize/genetic_boundary_feature.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/organize/geobody_boundary_interpretation.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/organize/geobody_feature.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/organize/geobody_interpretation.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/organize/geologic_unit_feature.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/organize/horizon_interpretation.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/organize/organization_feature.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/organize/rock_fluid_unit_feature.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/organize/structural_organization_interpretation.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/organize/tectonic_boundary_feature.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/organize/wellbore_feature.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/organize/wellbore_interpretation.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/property/_collection_support.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/property/_property.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/property/property_kind.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/property/string_lookup.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/property/well_interval_property.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/property/well_interval_property_collection.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/property/well_log.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/property/well_log_collection.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/rq_import/__init__.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/rq_import/_add_ab_properties.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/strata/__init__.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/strata/_binary_contact_interpretation.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/strata/_geologic_unit_interpretation.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/strata/_strata_common.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/strata/_stratigraphic_column.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/strata/_stratigraphic_column_rank.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/strata/_stratigraphic_unit_feature.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/strata/_stratigraphic_unit_interpretation.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/surface/__init__.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/surface/_base_surface.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/surface/_combined_surface.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/surface/_pointset.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/time_series/__init__.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/time_series/_from_nexus_summary.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/time_series/_functions.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/time_series/_time_duration.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/time_series/_time_series.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/unstructured/__init__.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/weights_and_measures/__init__.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/weights_and_measures/nexus_units.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/weights_and_measures/weights_and_measures.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/well/__init__.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/well/_wellbore_marker.py +0 -0
- {resqpy-4.14.2 → resqpy-5.1.6}/resqpy/well/_wellbore_marker_frame.py +0 -0
@@ -1,12 +1,11 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.3
|
2
2
|
Name: resqpy
|
3
|
-
Version:
|
3
|
+
Version: 5.1.6
|
4
4
|
Summary: Python API for working with RESQML models
|
5
|
-
Home-page: https://github.com/bp/resqpy
|
6
5
|
License: MIT
|
7
6
|
Keywords: RESQML
|
8
7
|
Author: BP
|
9
|
-
Requires-Python: >=3.
|
8
|
+
Requires-Python: >=3.9,<3.13
|
10
9
|
Classifier: Development Status :: 5 - Production/Stable
|
11
10
|
Classifier: License :: OSI Approved :: MIT License
|
12
11
|
Classifier: Operating System :: OS Independent
|
@@ -14,17 +13,17 @@ Classifier: Programming Language :: Python :: 3
|
|
14
13
|
Classifier: Programming Language :: Python :: 3.9
|
15
14
|
Classifier: Programming Language :: Python :: 3.10
|
16
15
|
Classifier: Programming Language :: Python :: 3.11
|
17
|
-
Classifier: Programming Language :: Python :: 3.
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
18
17
|
Classifier: Topic :: Scientific/Engineering
|
19
18
|
Classifier: Topic :: Scientific/Engineering :: Information Analysis
|
20
19
|
Classifier: Topic :: System :: Filesystems
|
21
20
|
Requires-Dist: h5py (>=3.7,<4.0)
|
22
21
|
Requires-Dist: joblib (>=1.2,<2.0)
|
23
22
|
Requires-Dist: lasio (>=0.31,<0.32)
|
24
|
-
Requires-Dist: lxml (>=
|
25
|
-
Requires-Dist: numba (>=0.
|
26
|
-
Requires-Dist: numpy (>=1.
|
27
|
-
Requires-Dist: pandas (>=
|
23
|
+
Requires-Dist: lxml (>=5.1,<6.0)
|
24
|
+
Requires-Dist: numba (>=0.59,<1.0)
|
25
|
+
Requires-Dist: numpy (>=1.26,<2.0)
|
26
|
+
Requires-Dist: pandas (>=2.2,<3.0)
|
28
27
|
Requires-Dist: scipy (>=1.9,<2.0)
|
29
28
|
Project-URL: Documentation, https://resqpy.readthedocs.io/en/latest/
|
30
29
|
Project-URL: Repository, https://github.com/bp/resqpy
|
@@ -9,7 +9,7 @@ build-backend = "poetry.masonry.api"
|
|
9
9
|
|
10
10
|
[tool.poetry]
|
11
11
|
name = "resqpy"
|
12
|
-
version = "
|
12
|
+
version = "5.1.6" # Set at build time
|
13
13
|
description = "Python API for working with RESQML models"
|
14
14
|
authors = ["BP"]
|
15
15
|
license = "MIT"
|
@@ -20,10 +20,10 @@ keywords = ["RESQML"]
|
|
20
20
|
classifiers = [
|
21
21
|
"License :: OSI Approved :: MIT License",
|
22
22
|
"Operating System :: OS Independent",
|
23
|
-
"Programming Language :: Python :: 3.8",
|
24
23
|
"Programming Language :: Python :: 3.9",
|
25
24
|
"Programming Language :: Python :: 3.10",
|
26
25
|
"Programming Language :: Python :: 3.11",
|
26
|
+
"Programming Language :: Python :: 3.12",
|
27
27
|
"Development Status :: 5 - Production/Stable",
|
28
28
|
"Topic :: Scientific/Engineering",
|
29
29
|
"Topic :: System :: Filesystems",
|
@@ -40,14 +40,14 @@ include = ["data/*.json"]
|
|
40
40
|
# - https://semver.org/
|
41
41
|
# See here for "caret" style dependency specifications:
|
42
42
|
# - https://python-poetry.org/docs/dependency-specification/
|
43
|
-
python = ">= 3.
|
44
|
-
numpy = "^1.
|
45
|
-
pandas = "^
|
43
|
+
python = ">= 3.9, < 3.13"
|
44
|
+
numpy = "^1.26"
|
45
|
+
pandas = "^2.2"
|
46
46
|
h5py = "^3.7"
|
47
|
-
lxml = "^
|
47
|
+
lxml = "^5.1"
|
48
48
|
lasio = "^0.31"
|
49
49
|
scipy = "^1.9"
|
50
|
-
numba = ">=0.
|
50
|
+
numba = ">=0.59, < 1.0"
|
51
51
|
joblib = "^1.2"
|
52
52
|
|
53
53
|
[tool.poetry.group.dev.dependencies]
|
@@ -117,4 +117,4 @@ filterwarnings = [
|
|
117
117
|
"ignore:.*importing the ABCs from 'collections'.*:DeprecationWarning:.*pyreadline.*",
|
118
118
|
"ignore:.*the imp module is deprecated in favour of importlib.*:DeprecationWarning:.*pywintypes.*",
|
119
119
|
"ignore:.*distutils package is deprecated.*:DeprecationWarning:.*joblib.*",
|
120
|
-
]
|
120
|
+
]
|
@@ -423,15 +423,15 @@ def combined_tr_mult_from_gcs_mults(model,
|
|
423
423
|
|
424
424
|
if grid is None: # first gcs: grab grid and initialise combined tr mult arrays
|
425
425
|
grid = gcs.grid_list[0]
|
426
|
-
combo_trm_k = np.full((grid.nk + 1, grid.nj, grid.ni), np.
|
427
|
-
combo_trm_j = np.full((grid.nk, grid.nj + 1, grid.ni), np.
|
428
|
-
combo_trm_i = np.full((grid.nk, grid.nj, grid.ni + 1), np.
|
426
|
+
combo_trm_k = np.full((grid.nk + 1, grid.nj, grid.ni), np.nan, dtype = float)
|
427
|
+
combo_trm_j = np.full((grid.nk, grid.nj + 1, grid.ni), np.nan, dtype = float)
|
428
|
+
combo_trm_i = np.full((grid.nk, grid.nj, grid.ni + 1), np.nan, dtype = float)
|
429
429
|
else: # check same grid is referenced by this gcs
|
430
430
|
assert bu.matching_uuids(gcs.grid_list[0].uuid, grid.uuid)
|
431
431
|
|
432
432
|
# get gcs tr mult data in form of triplet of grid faces arrays
|
433
433
|
gcs_trm_k, gcs_trm_j, gcs_trm_i = gcs.grid_face_arrays(tr_mult_uuid,
|
434
|
-
default_value = np.
|
434
|
+
default_value = np.nan,
|
435
435
|
active_only = active_only,
|
436
436
|
lazy = not sided,
|
437
437
|
baffle_uuid = baffle_uuid)
|
@@ -439,29 +439,29 @@ def combined_tr_mult_from_gcs_mults(model,
|
|
439
439
|
|
440
440
|
# merge in each of the three directional face arrays for this gcs with combined arrays
|
441
441
|
for (combo_trm, gcs_trm) in [(combo_trm_k, gcs_trm_k), (combo_trm_j, gcs_trm_j), (combo_trm_i, gcs_trm_i)]:
|
442
|
-
mask = np.logical_not(np.isnan(gcs_trm)) # true where this tr mult is present
|
442
|
+
mask = np.logical_not(np.isnan(gcs_trm)).astype(bool) # true where this tr mult is present
|
443
443
|
clash_mask = np.logical_and(mask, np.logical_not(np.isnan(combo_trm))) # true where combined value clashes
|
444
444
|
if np.any(clash_mask):
|
445
445
|
if merge_mode == 'exception':
|
446
446
|
raise ValueError('gcs transmissibility multiplier conflict when merging')
|
447
447
|
if merge_mode == 'minimum':
|
448
|
-
combo_trm[
|
448
|
+
combo_trm[clash_mask] = np.minimum(combo_trm, gcs_trm)[clash_mask]
|
449
449
|
elif merge_mode == 'maximum':
|
450
|
-
combo_trm[
|
450
|
+
combo_trm[clash_mask] = np.maximum(combo_trm, gcs_trm)[clash_mask]
|
451
451
|
elif merge_mode == 'multiply':
|
452
|
-
combo_trm[
|
452
|
+
combo_trm[clash_mask] = (combo_trm * gcs_trm)[clash_mask]
|
453
453
|
else:
|
454
454
|
raise Exception(f'code failure with unrecognised merge mode {merge_mode}')
|
455
455
|
mask = np.logical_and(mask,
|
456
456
|
np.logical_not(clash_mask)) # remove clash faces from mask (already handled)
|
457
457
|
if np.any(mask):
|
458
|
-
combo_trm[
|
458
|
+
combo_trm[mask] = gcs_trm[mask] # update combined array from individual array
|
459
459
|
|
460
460
|
# for each of the 3 combined tr mult arrays, replace unused values with the default fill value
|
461
461
|
# also check that any set values are non-negative
|
462
462
|
for combo_trm in (combo_trm_k, combo_trm_j, combo_trm_i):
|
463
463
|
if fill_value is not None and not np.isnan(fill_value):
|
464
|
-
combo_trm[:]
|
464
|
+
combo_trm[:][np.isnan(combo_trm).astype(bool)] = fill_value
|
465
465
|
assert np.all(combo_trm >= 0.0)
|
466
466
|
else:
|
467
467
|
assert np.all(np.logical_or(np.isnan(combo_trm), combo_trm >= 0.0))
|