resqpy 4.18.11__py3-none-any.whl → 5.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- resqpy/__init__.py +1 -1
 - resqpy/grid/__init__.py +2 -3
 - resqpy/grid/_grid.py +1 -7
 - resqpy/grid_surface/_find_faces.py +98 -29
 - resqpy/lines/_polyline.py +24 -33
 - resqpy/model/_model.py +9 -9
 - resqpy/multi_processing/wrappers/grid_surface_mp.py +91 -44
 - resqpy/olio/triangulation.py +19 -17
 - resqpy/olio/volume.py +0 -20
 - resqpy/property/__init__.py +3 -2
 - resqpy/property/_collection_get_attributes.py +2 -0
 - resqpy/rq_import/_grid_from_cp.py +2 -2
 - resqpy/surface/_surface.py +377 -53
 - resqpy/surface/_tri_mesh.py +3 -1
 - resqpy/time_series/_any_time_series.py +5 -4
 - resqpy/well/_blocked_well.py +1916 -1910
 - resqpy/well/_md_datum.py +11 -21
 - resqpy/well/_wellbore_frame.py +10 -2
 - resqpy/well/well_utils.py +33 -0
 - {resqpy-4.18.11.dist-info → resqpy-5.1.0.dist-info}/METADATA +8 -8
 - {resqpy-4.18.11.dist-info → resqpy-5.1.0.dist-info}/RECORD +23 -24
 - {resqpy-4.18.11.dist-info → resqpy-5.1.0.dist-info}/WHEEL +1 -1
 - resqpy/grid/_moved_functions.py +0 -15
 - {resqpy-4.18.11.dist-info → resqpy-5.1.0.dist-info}/LICENSE +0 -0
 
    
        resqpy/well/_md_datum.py
    CHANGED
    
    | 
         @@ -80,19 +80,6 @@ class MdDatum(BaseResqpy): 
     | 
|
| 
       80 
80 
     | 
    
         
             
                        assert md_reference in valid_md_reference_list
         
     | 
| 
       81 
81 
     | 
    
         
             
                        assert len(location) == 3
         
     | 
| 
       82 
82 
     | 
    
         | 
| 
       83 
     | 
    
         
            -
                def _load_from_xml(self):
         
     | 
| 
       84 
     | 
    
         
            -
                    md_datum_root = self.root
         
     | 
| 
       85 
     | 
    
         
            -
                    assert md_datum_root is not None
         
     | 
| 
       86 
     | 
    
         
            -
                    location_node = rqet.find_tag(md_datum_root, 'Location')
         
     | 
| 
       87 
     | 
    
         
            -
                    self.location = (rqet.find_tag_float(location_node,
         
     | 
| 
       88 
     | 
    
         
            -
                                                         'Coordinate1'), rqet.find_tag_float(location_node, 'Coordinate2'),
         
     | 
| 
       89 
     | 
    
         
            -
                                     rqet.find_tag_float(location_node, 'Coordinate3'))
         
     | 
| 
       90 
     | 
    
         
            -
                    self.md_reference = rqet.node_text(rqet.find_tag(md_datum_root, 'MdReference')).strip().lower()
         
     | 
| 
       91 
     | 
    
         
            -
                    assert self.md_reference in valid_md_reference_list
         
     | 
| 
       92 
     | 
    
         
            -
                    self.crs_uuid = self.extract_crs_uuid()
         
     | 
| 
       93 
     | 
    
         
            -
             
     | 
| 
       94 
     | 
    
         
            -
                # todo: the following function is almost identical to one in the grid module: it should be made common and put in model.py
         
     | 
| 
       95 
     | 
    
         
            -
             
     | 
| 
       96 
83 
     | 
    
         
             
                def extract_crs_uuid(self):
         
     | 
| 
       97 
84 
     | 
    
         
             
                    """Returns uuid for coordinate reference system, as stored in reference node of this md datum's xml tree."""
         
     | 
| 
       98 
85 
     | 
    
         | 
| 
         @@ -103,14 +90,6 @@ class MdDatum(BaseResqpy): 
     | 
|
| 
       103 
90 
     | 
    
         
             
                    self.crs_uuid = bu.uuid_from_string(uuid_str)
         
     | 
| 
       104 
91 
     | 
    
         
             
                    return self.crs_uuid
         
     | 
| 
       105 
92 
     | 
    
         | 
| 
       106 
     | 
    
         
            -
                def create_part(self):
         
     | 
| 
       107 
     | 
    
         
            -
                    """Creates xml for this md datum object and adds to parent model as a part; returns root node for part."""
         
     | 
| 
       108 
     | 
    
         
            -
             
     | 
| 
       109 
     | 
    
         
            -
                    # note: deprecated, call create_xml() directly
         
     | 
| 
       110 
     | 
    
         
            -
                    assert self.root is None
         
     | 
| 
       111 
     | 
    
         
            -
                    assert self.location is not None
         
     | 
| 
       112 
     | 
    
         
            -
                    self.create_xml(add_as_part = True)
         
     | 
| 
       113 
     | 
    
         
            -
             
     | 
| 
       114 
93 
     | 
    
         
             
                def create_xml(self, add_as_part = True, add_relationships = True, title = None, originator = None):
         
     | 
| 
       115 
94 
     | 
    
         
             
                    """Creates xml for a measured depth datum element; crs node must already exist; optionally adds as part.
         
     | 
| 
       116 
95 
     | 
    
         | 
| 
         @@ -164,3 +143,14 @@ class MdDatum(BaseResqpy): 
     | 
|
| 
       164 
143 
     | 
    
         
             
                    if self.md_reference != other.md_reference or not np.allclose(self.location, other.location):
         
     | 
| 
       165 
144 
     | 
    
         
             
                        return False
         
     | 
| 
       166 
145 
     | 
    
         
             
                    return bu.matching_uuids(self.crs_uuid, other.crs_uuid)
         
     | 
| 
      
 146 
     | 
    
         
            +
             
     | 
| 
      
 147 
     | 
    
         
            +
                def _load_from_xml(self):
         
     | 
| 
      
 148 
     | 
    
         
            +
                    md_datum_root = self.root
         
     | 
| 
      
 149 
     | 
    
         
            +
                    assert md_datum_root is not None
         
     | 
| 
      
 150 
     | 
    
         
            +
                    location_node = rqet.find_tag(md_datum_root, 'Location')
         
     | 
| 
      
 151 
     | 
    
         
            +
                    self.location = (rqet.find_tag_float(location_node,
         
     | 
| 
      
 152 
     | 
    
         
            +
                                                         'Coordinate1'), rqet.find_tag_float(location_node, 'Coordinate2'),
         
     | 
| 
      
 153 
     | 
    
         
            +
                                     rqet.find_tag_float(location_node, 'Coordinate3'))
         
     | 
| 
      
 154 
     | 
    
         
            +
                    self.md_reference = rqet.node_text(rqet.find_tag(md_datum_root, 'MdReference')).strip().lower()
         
     | 
| 
      
 155 
     | 
    
         
            +
                    assert self.md_reference in valid_md_reference_list
         
     | 
| 
      
 156 
     | 
    
         
            +
                    self.crs_uuid = self.extract_crs_uuid()
         
     | 
    
        resqpy/well/_wellbore_frame.py
    CHANGED
    
    | 
         @@ -106,7 +106,11 @@ class WellboreFrame(BaseResqpy): 
     | 
|
| 
       106 
106 
     | 
    
         
             
                        assert self.node_mds is not None and self.node_mds.ndim == 1
         
     | 
| 
       107 
107 
     | 
    
         | 
| 
       108 
108 
     | 
    
         
             
                def _load_from_xml(self):
         
     | 
| 
       109 
     | 
    
         
            -
                    """Loads the wellbore frame object from an xml node 
     | 
| 
      
 109 
     | 
    
         
            +
                    """Loads the wellbore frame object from an xml node.
         
     | 
| 
      
 110 
     | 
    
         
            +
             
     | 
| 
      
 111 
     | 
    
         
            +
                    Also loads the associated data either from an hdf5 file or generated from a
         
     | 
| 
      
 112 
     | 
    
         
            +
                    lattice array definition.
         
     | 
| 
      
 113 
     | 
    
         
            +
                    """
         
     | 
| 
       110 
114 
     | 
    
         | 
| 
       111 
115 
     | 
    
         
             
                    # NB: node is the root level xml node, not a node in the md list!
         
     | 
| 
       112 
116 
     | 
    
         | 
| 
         @@ -126,7 +130,11 @@ class WellboreFrame(BaseResqpy): 
     | 
|
| 
       126 
130 
     | 
    
         | 
| 
       127 
131 
     | 
    
         
             
                    mds_node = rqet.find_tag(node, 'NodeMd')
         
     | 
| 
       128 
132 
     | 
    
         
             
                    assert mds_node is not None, 'wellbore frame measured depths hdf5 reference not found in xml'
         
     | 
| 
       129 
     | 
    
         
            -
                     
     | 
| 
      
 133 
     | 
    
         
            +
                    if rqet.node_type(mds_node) == "DoubleLatticeArray":
         
     | 
| 
      
 134 
     | 
    
         
            +
                        rqwu.load_lattice_array(self, mds_node, "node_mds", self.trajectory)
         
     | 
| 
      
 135 
     | 
    
         
            +
                        self.node_count = self.node_mds.size
         
     | 
| 
      
 136 
     | 
    
         
            +
                    else:
         
     | 
| 
      
 137 
     | 
    
         
            +
                        rqwu.load_hdf5_array(self, mds_node, "node_mds")
         
     | 
| 
       130 
138 
     | 
    
         | 
| 
       131 
139 
     | 
    
         
             
                    assert self.node_mds is not None and self.node_mds.ndim == 1 and self.node_mds.size == self.node_count
         
     | 
| 
       132 
140 
     | 
    
         | 
    
        resqpy/well/well_utils.py
    CHANGED
    
    | 
         @@ -35,6 +35,39 @@ def load_hdf5_array(object, node, array_attribute, tag = 'Values', dtype = 'floa 
     | 
|
| 
       35 
35 
     | 
    
         
             
                                              array_attribute = array_attribute)
         
     | 
| 
       36 
36 
     | 
    
         | 
| 
       37 
37 
     | 
    
         | 
| 
      
 38 
     | 
    
         
            +
            def load_lattice_array(object, node, array_attribute, trajectory):
         
     | 
| 
      
 39 
     | 
    
         
            +
                """Loads the property array data as an attribute of object, from the lattice array referenced in xml node.
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                This loader expects the XML node to be in the form of a lattice array, which is a
         
     | 
| 
      
 42 
     | 
    
         
            +
                variant of NodeMd data defined as a series of regularly spaced measured depth values
         
     | 
| 
      
 43 
     | 
    
         
            +
                computed from the metadata in the XML (start_value, offset, step_value, step_count).
         
     | 
| 
      
 44 
     | 
    
         
            +
                Checks that the computed NodeMds are valid on the trajectory, and only loads those.
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                :param: object: The object to load the data into (typically a WellboreFrame)
         
     | 
| 
      
 47 
     | 
    
         
            +
                :param: node: The XML node to load the metadata from
         
     | 
| 
      
 48 
     | 
    
         
            +
                :param: array_attribute: The name of the attribute on 'object' to load the data into
         
     | 
| 
      
 49 
     | 
    
         
            +
                :param: trajectory: The trajectory object to use to check the validity of the data
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                :meta private:
         
     | 
| 
      
 52 
     | 
    
         
            +
                """
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                def check_md(md: float, trajectory) -> bool:
         
     | 
| 
      
 55 
     | 
    
         
            +
                    xyz = np.array(trajectory.xyz_for_md(md))
         
     | 
| 
      
 56 
     | 
    
         
            +
                    return isinstance(xyz, np.ndarray) and xyz.shape == (3,)
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
                if array_attribute is not None and getattr(object, array_attribute, None) is not None:
         
     | 
| 
      
 59 
     | 
    
         
            +
                    return
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
                start_value = rqet.find_tag_float(node, "StartValue", must_exist = True)
         
     | 
| 
      
 62 
     | 
    
         
            +
                offset = rqet.find_tag(node, "Offset", must_exist = True)
         
     | 
| 
      
 63 
     | 
    
         
            +
                step_value = rqet.find_tag_float(offset, "Value", must_exist = True)
         
     | 
| 
      
 64 
     | 
    
         
            +
                step_count = rqet.find_tag_int(offset, "Count", must_exist = True)
         
     | 
| 
      
 65 
     | 
    
         
            +
                if step_count > 0:
         
     | 
| 
      
 66 
     | 
    
         
            +
                    step_mds = start_value + np.arange(step_count) * step_value
         
     | 
| 
      
 67 
     | 
    
         
            +
                    valid_mds = [md for md in step_mds if check_md(md, trajectory)]
         
     | 
| 
      
 68 
     | 
    
         
            +
                    object.__dict__[array_attribute] = np.array(valid_mds)
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
       38 
71 
     | 
    
         
             
            def extract_xyz(xyz_node):
         
     | 
| 
       39 
72 
     | 
    
         
             
                """Extracts an x,y,z coordinate from a solitary point xml node.
         
     | 
| 
       40 
73 
     | 
    
         | 
| 
         @@ -1,12 +1,12 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            Metadata-Version: 2. 
     | 
| 
      
 1 
     | 
    
         
            +
            Metadata-Version: 2.3
         
     | 
| 
       2 
2 
     | 
    
         
             
            Name: resqpy
         
     | 
| 
       3 
     | 
    
         
            -
            Version:  
     | 
| 
      
 3 
     | 
    
         
            +
            Version: 5.1.0
         
     | 
| 
       4 
4 
     | 
    
         
             
            Summary: Python API for working with RESQML models
         
     | 
| 
       5 
5 
     | 
    
         
             
            Home-page: https://github.com/bp/resqpy
         
     | 
| 
       6 
6 
     | 
    
         
             
            License: MIT
         
     | 
| 
       7 
7 
     | 
    
         
             
            Keywords: RESQML
         
     | 
| 
       8 
8 
     | 
    
         
             
            Author: BP
         
     | 
| 
       9 
     | 
    
         
            -
            Requires-Python: >=3. 
     | 
| 
      
 9 
     | 
    
         
            +
            Requires-Python: >=3.9,<3.13
         
     | 
| 
       10 
10 
     | 
    
         
             
            Classifier: Development Status :: 5 - Production/Stable
         
     | 
| 
       11 
11 
     | 
    
         
             
            Classifier: License :: OSI Approved :: MIT License
         
     | 
| 
       12 
12 
     | 
    
         
             
            Classifier: Operating System :: OS Independent
         
     | 
| 
         @@ -14,17 +14,17 @@ Classifier: Programming Language :: Python :: 3 
     | 
|
| 
       14 
14 
     | 
    
         
             
            Classifier: Programming Language :: Python :: 3.9
         
     | 
| 
       15 
15 
     | 
    
         
             
            Classifier: Programming Language :: Python :: 3.10
         
     | 
| 
       16 
16 
     | 
    
         
             
            Classifier: Programming Language :: Python :: 3.11
         
     | 
| 
       17 
     | 
    
         
            -
            Classifier: Programming Language :: Python :: 3. 
     | 
| 
      
 17 
     | 
    
         
            +
            Classifier: Programming Language :: Python :: 3.12
         
     | 
| 
       18 
18 
     | 
    
         
             
            Classifier: Topic :: Scientific/Engineering
         
     | 
| 
       19 
19 
     | 
    
         
             
            Classifier: Topic :: Scientific/Engineering :: Information Analysis
         
     | 
| 
       20 
20 
     | 
    
         
             
            Classifier: Topic :: System :: Filesystems
         
     | 
| 
       21 
21 
     | 
    
         
             
            Requires-Dist: h5py (>=3.7,<4.0)
         
     | 
| 
       22 
22 
     | 
    
         
             
            Requires-Dist: joblib (>=1.2,<2.0)
         
     | 
| 
       23 
23 
     | 
    
         
             
            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 (>= 
     | 
| 
      
 24 
     | 
    
         
            +
            Requires-Dist: lxml (>=5.1,<6.0)
         
     | 
| 
      
 25 
     | 
    
         
            +
            Requires-Dist: numba (>=0.59,<1.0)
         
     | 
| 
      
 26 
     | 
    
         
            +
            Requires-Dist: numpy (>=1.26,<2.0)
         
     | 
| 
      
 27 
     | 
    
         
            +
            Requires-Dist: pandas (>=2.2,<3.0)
         
     | 
| 
       28 
28 
     | 
    
         
             
            Requires-Dist: scipy (>=1.9,<2.0)
         
     | 
| 
       29 
29 
     | 
    
         
             
            Project-URL: Documentation, https://resqpy.readthedocs.io/en/latest/
         
     | 
| 
       30 
30 
     | 
    
         
             
            Project-URL: Repository, https://github.com/bp/resqpy
         
     | 
| 
         @@ -1,4 +1,4 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            resqpy/__init__.py,sha256= 
     | 
| 
      
 1 
     | 
    
         
            +
            resqpy/__init__.py,sha256=4MATgI0e6LlZUItvFRuABcZOLs9hI7eVtJJqHQsFlEM,555
         
     | 
| 
       2 
2 
     | 
    
         
             
            resqpy/crs.py,sha256=R7DfcTP5xGv5pu9Y8RHA2WVM9DjBCSVMoHcz4RmQ7Yw,27646
         
     | 
| 
       3 
3 
     | 
    
         
             
            resqpy/derived_model/__init__.py,sha256=NFvMSOKI3cxmH7lAbddV43JjoUj-r2G7ExEfOqinD1I,1982
         
     | 
| 
       4 
4 
     | 
    
         
             
            resqpy/derived_model/_add_edges_per_column_property_array.py,sha256=cpW3gwp6MSYIrtvFmCjoJXcyUsgGuCDbgmwlJCJebUs,6410
         
     | 
| 
         @@ -26,7 +26,7 @@ resqpy/derived_model/_zone_layer_ranges_from_array.py,sha256=4pHkp7yqvkif_pC59VE 
     | 
|
| 
       26 
26 
     | 
    
         
             
            resqpy/fault/__init__.py,sha256=IStX_EhPnppIExf_mgYrBddC4KP26VcqblcfXiBT614,996
         
     | 
| 
       27 
27 
     | 
    
         
             
            resqpy/fault/_gcs_functions.py,sha256=NRyhKkYChRaKDUIQ6pfVQiD67e4TTm3LnBvWEPtpkDU,29569
         
     | 
| 
       28 
28 
     | 
    
         
             
            resqpy/fault/_grid_connection_set.py,sha256=xStOkWHsbh9m6lql7f2PDURnoFOIM1mFmx-QG6yPaKo,126124
         
     | 
| 
       29 
     | 
    
         
            -
            resqpy/grid/__init__.py,sha256= 
     | 
| 
      
 29 
     | 
    
         
            +
            resqpy/grid/__init__.py,sha256=FTeNW9kJ8By6gA2-x-NisQQ8cY8RHCAro0lT-3ssxYQ,601
         
     | 
| 
       30 
30 
     | 
    
         
             
            resqpy/grid/_cell_properties.py,sha256=pbyAK2eV9n4teOxm2q5hyBinohEbevFPrCfMcpGiqUU,20689
         
     | 
| 
       31 
31 
     | 
    
         
             
            resqpy/grid/_connection_sets.py,sha256=-277bh9pMoeESSzy9oZehL-vc82aMGZuSLQs2KJ4Wfg,10120
         
     | 
| 
       32 
32 
     | 
    
         
             
            resqpy/grid/_create_grid_xml.py,sha256=p-jKo1BZ-DlhEYixVzadtY-QsqA8ygcXvMYS_TvQCjg,22837
         
     | 
| 
         @@ -34,10 +34,9 @@ resqpy/grid/_defined_geometry.py,sha256=QYQ3wLbPrlPobgUi9R1izTD4JD9qMGf5eyqbM68H 
     | 
|
| 
       34 
34 
     | 
    
         
             
            resqpy/grid/_extract_functions.py,sha256=pOVC2vv4dJ9G7e6p3uh2mz4QPb6W7_pKiaq8HAWeyzg,28263
         
     | 
| 
       35 
35 
     | 
    
         
             
            resqpy/grid/_face_functions.py,sha256=0I7O6DDz7nJWczi_G2bE3L2XUr4acxREwKygXWEp6F4,16516
         
     | 
| 
       36 
36 
     | 
    
         
             
            resqpy/grid/_faults.py,sha256=OmukVoLpdrndqDxwE6Rj7Ul5tj3FUQVPhE0raH2FHpg,12236
         
     | 
| 
       37 
     | 
    
         
            -
            resqpy/grid/_grid.py,sha256 
     | 
| 
      
 37 
     | 
    
         
            +
            resqpy/grid/_grid.py,sha256=-OhJpi9x8r74_7_CBrQsanqhFiZQcCiJkvbnhPRq2qQ,135758
         
     | 
| 
       38 
38 
     | 
    
         
             
            resqpy/grid/_grid_types.py,sha256=YAmRrrm-J2HKuuwCRCAkE3ppcQLiwc4EEc6dc-sy9Fc,4362
         
     | 
| 
       39 
39 
     | 
    
         
             
            resqpy/grid/_intervals_info.py,sha256=ODjDz22n8U9pSpO0Muj8mJr2hYWauFDzgcVQ0RM3csQ,338
         
     | 
| 
       40 
     | 
    
         
            -
            resqpy/grid/_moved_functions.py,sha256=XboxA0pE55j-P_x5g051WheVamxkAatQGbU5aq2GkaE,604
         
     | 
| 
       41 
40 
     | 
    
         
             
            resqpy/grid/_pillars.py,sha256=WXvLjORlNHnm0KI3qgoRtCyXdcT9vQBkJDQWL2wtJwg,7243
         
     | 
| 
       42 
41 
     | 
    
         
             
            resqpy/grid/_pixel_maps.py,sha256=Aqn9dpDKjX_v8BnWMdN__ulqjeuXfE6W2_Z7EDaUqdE,5386
         
     | 
| 
       43 
42 
     | 
    
         
             
            resqpy/grid/_points_functions.py,sha256=72dCLWHrOUM9xSwSaEuxPUA__b6WAdk5rbeWatILdaI,70585
         
     | 
| 
         @@ -48,14 +47,14 @@ resqpy/grid/_write_nexus_corp.py,sha256=yEVfiObsedEAXX6UG6ZTf56kZnQVkd3lLqE2NpL- 
     | 
|
| 
       48 
47 
     | 
    
         
             
            resqpy/grid/_xyz.py,sha256=RLQWOdM_DRoCj4JypwB5gUJ78HTdk5JnZHSeAzuU634,13087
         
     | 
| 
       49 
48 
     | 
    
         
             
            resqpy/grid_surface/__init__.py,sha256=IlPwm6G7P_Vg_w7JHqSs-d_oxk2QmFtWGTk_vvr1qm8,2911
         
     | 
| 
       50 
49 
     | 
    
         
             
            resqpy/grid_surface/_blocked_well_populate.py,sha256=Lme1AR-nLWOUlNnmHMVThk6jEg_lAZxWWtL82Yksppw,35867
         
     | 
| 
       51 
     | 
    
         
            -
            resqpy/grid_surface/_find_faces.py,sha256= 
     | 
| 
      
 50 
     | 
    
         
            +
            resqpy/grid_surface/_find_faces.py,sha256=YogiM8SIDZGtDIuA8Hyd8DOt3Po47CKHP7luE_jz93I,111556
         
     | 
| 
       52 
51 
     | 
    
         
             
            resqpy/grid_surface/_grid_skin.py,sha256=D0cjHkcuT5KCKb-8EZfXgh0GgJj3kzOBS2wVNXg4bfY,26056
         
     | 
| 
       53 
52 
     | 
    
         
             
            resqpy/grid_surface/_grid_surface.py,sha256=l2NJo7Kiucolbb_TlLPC7NGdksg_JahkihfsrJVq99w,14379
         
     | 
| 
       54 
53 
     | 
    
         
             
            resqpy/grid_surface/_trajectory_intersects.py,sha256=Och9cZYU9Y7ofovhPzsLyIblRUl2xj9_5nHH3fMZp-A,22498
         
     | 
| 
       55 
54 
     | 
    
         
             
            resqpy/grid_surface/grid_surface_cuda.py,sha256=RVhrhzuQOIl3QlUocUeHdmmv6M_HNXe5UH3sDTZRIQI,40016
         
     | 
| 
       56 
55 
     | 
    
         
             
            resqpy/lines/__init__.py,sha256=zE7j-BeqkOowj_tsZWd2X_fT-RpbuIh17zfEyj2N0oY,539
         
     | 
| 
       57 
56 
     | 
    
         
             
            resqpy/lines/_common.py,sha256=nlgVgZ8utHXuHDyzuP0IpkUJViDNmmy7EBqwLzxSI2M,11960
         
     | 
| 
       58 
     | 
    
         
            -
            resqpy/lines/_polyline.py,sha256= 
     | 
| 
      
 57 
     | 
    
         
            +
            resqpy/lines/_polyline.py,sha256=boiVQ2lBLp3c0b1bEA2T_j_a5gNsMI2orxZnitZVdSY,42227
         
     | 
| 
       59 
58 
     | 
    
         
             
            resqpy/lines/_polyline_set.py,sha256=3K3z_G9l_3mfjLdCL-YVscyj1FA6DHh1uj9rXPtWFOY,27986
         
     | 
| 
       60 
59 
     | 
    
         
             
            resqpy/model/__init__.py,sha256=hbxO-IpCOH_82TZqj6e1FjrWxO0tZu2gj2HCN9x-Svw,378
         
     | 
| 
       61 
60 
     | 
    
         
             
            resqpy/model/_catalogue.py,sha256=duvZlNlTPjAfXyqae0J9lMSEx_8-WIcrw2MYxnNEg_Q,30487
         
     | 
| 
         @@ -63,13 +62,13 @@ resqpy/model/_context.py,sha256=0tLBVMcuuIj3i87Ig8lhFMLHE5GHgEA2PEl1NjKaohc,2840 
     | 
|
| 
       63 
62 
     | 
    
         
             
            resqpy/model/_forestry.py,sha256=QYE3P9uSsh77J6ghcgp2cBQP6UKrs8edF-m05sqgboo,34518
         
     | 
| 
       64 
63 
     | 
    
         
             
            resqpy/model/_grids.py,sha256=d7hRQRmni5pJrm1CY31D2icJV1XDar7xTmUexq_eVGY,3371
         
     | 
| 
       65 
64 
     | 
    
         
             
            resqpy/model/_hdf5.py,sha256=-dq2r3HzBKf0F43kwPy--MZOOjQZlDS4RJ6nG3VOeSs,14448
         
     | 
| 
       66 
     | 
    
         
            -
            resqpy/model/_model.py,sha256= 
     | 
| 
      
 65 
     | 
    
         
            +
            resqpy/model/_model.py,sha256=ZhOkZ-n8k1cKBQODcDzASwq_JrBhmYcdIwOAVk7g9q4,106326
         
     | 
| 
       67 
66 
     | 
    
         
             
            resqpy/model/_xml.py,sha256=TiZKHZezMdcjRvHSa-HzzrYe9kyDdd8L4hacNV0bjEg,24402
         
     | 
| 
       68 
67 
     | 
    
         
             
            resqpy/multi_processing/__init__.py,sha256=ZRudHfN9aaZjxvat7t8BZr6mwMi9baiCNjczwwT0WjI,909
         
     | 
| 
       69 
68 
     | 
    
         
             
            resqpy/multi_processing/_multiprocessing.py,sha256=bnCKfSC1tWwvZmZ7BZqCyje0C93m6q7HZPxNpx8xoxA,7301
         
     | 
| 
       70 
69 
     | 
    
         
             
            resqpy/multi_processing/wrappers/__init__.py,sha256=7vjuTWdHnp3rN9Ud8ljpDnt1NbBAyhA08lv-sQ9Kf3o,72
         
     | 
| 
       71 
70 
     | 
    
         
             
            resqpy/multi_processing/wrappers/blocked_well_mp.py,sha256=_2fEsSmJVQCnbQIjTHqmnNEugfhN1KvX-o4ZbvtChdI,5952
         
     | 
| 
       72 
     | 
    
         
            -
            resqpy/multi_processing/wrappers/grid_surface_mp.py,sha256= 
     | 
| 
      
 71 
     | 
    
         
            +
            resqpy/multi_processing/wrappers/grid_surface_mp.py,sha256=GUS8adcNZ0aT8YxshKoAXdD1QrTS0swY2_RQ-whpLeg,27056
         
     | 
| 
       73 
72 
     | 
    
         
             
            resqpy/multi_processing/wrappers/mesh_mp.py,sha256=0VYoqtgBFfrlyYB6kkjbdrRQ5FKe6t5pHJO3wD9b8Fc,5793
         
     | 
| 
       74 
73 
     | 
    
         
             
            resqpy/olio/__init__.py,sha256=j2breqKYVufhw5k8qS2uZwB3tUKT7FhdZ23ninS75YA,84
         
     | 
| 
       75 
74 
     | 
    
         
             
            resqpy/olio/ab_toolbox.py,sha256=bZlAhOJVS0HvIYBW0Lg68re17N8eltoQhIUh0xuUyVc,2147
         
     | 
| 
         @@ -95,11 +94,11 @@ resqpy/olio/simple_lines.py,sha256=qaR11W5UPgRmtMeFQ-pXg0jOvkJZ_XPzSUpAXqeYtlc,1 
     | 
|
| 
       95 
94 
     | 
    
         
             
            resqpy/olio/time.py,sha256=LtoSIf1A6wunHSpDgKsSGEr0rbcSQyy35TgJvY37PrI,760
         
     | 
| 
       96 
95 
     | 
    
         
             
            resqpy/olio/trademark.py,sha256=p_EWvUUnfalOA0RC94fSWMDgdGY9-FdZuGtAjg3wNcY,822
         
     | 
| 
       97 
96 
     | 
    
         
             
            resqpy/olio/transmission.py,sha256=auz_12TKtSPy6Fv3wmKn5lXPRAEnn2tYVyTQfsj37xU,61869
         
     | 
| 
       98 
     | 
    
         
            -
            resqpy/olio/triangulation.py,sha256= 
     | 
| 
      
 97 
     | 
    
         
            +
            resqpy/olio/triangulation.py,sha256=sBNP4MhSpY2bv6BYIn7890stqetkK5dag9pYNFiUs2g,46037
         
     | 
| 
       99 
98 
     | 
    
         
             
            resqpy/olio/uuid.py,sha256=JRMi-RZNeGm8tGNloIwTATzNtdj29lBQDV9OILboPRI,7324
         
     | 
| 
       100 
99 
     | 
    
         
             
            resqpy/olio/vdb.py,sha256=lQYuK1kr1Wnucq2EoKgT6lrR7vloCemnCKZktzBcLUc,45231
         
     | 
| 
       101 
100 
     | 
    
         
             
            resqpy/olio/vector_utilities.py,sha256=B354cr9-nqqPcb3SAx1jD9Uk51sjkV95xToAiF3-WHA,61127
         
     | 
| 
       102 
     | 
    
         
            -
            resqpy/olio/volume.py,sha256= 
     | 
| 
      
 101 
     | 
    
         
            +
            resqpy/olio/volume.py,sha256=inKZzW8UiYvyetltz_r_OgO3UzVtqdOz_RMg-WqlyDo,5475
         
     | 
| 
       103 
102 
     | 
    
         
             
            resqpy/olio/wellspec_keywords.py,sha256=ad3B727golWYiko54OZOw7vG21IvpNxCMCyLv8jSkcI,26533
         
     | 
| 
       104 
103 
     | 
    
         
             
            resqpy/olio/write_data.py,sha256=bIX7ilMkXWCMz_zQh-Gqk56sNzng4W5l4BahW2EV7Kw,5142
         
     | 
| 
       105 
104 
     | 
    
         
             
            resqpy/olio/write_hdf5.py,sha256=iUIYPWlbJsSSq9UXXiXAW_S6TeK-N2M7QvlJJE43EK8,19015
         
     | 
| 
         @@ -127,10 +126,10 @@ resqpy/organize/structural_organization_interpretation.py,sha256=xEpm1KKiP9dKktW 
     | 
|
| 
       127 
126 
     | 
    
         
             
            resqpy/organize/tectonic_boundary_feature.py,sha256=mMSsIW8YJ6qpeOe-6gRFaQbK39-WIiGunxPSnwxFyqY,2675
         
     | 
| 
       128 
127 
     | 
    
         
             
            resqpy/organize/wellbore_feature.py,sha256=E2gFwgPZGr8nkhRHAIR0wTZ8uwcze7y2WBIV7AXeW2A,1843
         
     | 
| 
       129 
128 
     | 
    
         
             
            resqpy/organize/wellbore_interpretation.py,sha256=jRAHq90tR2dCQSXsZicujXhSVHOEPoGjFgh5S87SMAI,6973
         
     | 
| 
       130 
     | 
    
         
            -
            resqpy/property/__init__.py,sha256= 
     | 
| 
      
 129 
     | 
    
         
            +
            resqpy/property/__init__.py,sha256=gRnzjdn6bxCQStfHL5qMOs43okVRW168TjqU0C9oL2g,2360
         
     | 
| 
       131 
130 
     | 
    
         
             
            resqpy/property/_collection_add_part.py,sha256=uM64TWqJ0aBUwP1u1OJNTUhKLGlmOQj14fGPLG-2pRs,17156
         
     | 
| 
       132 
131 
     | 
    
         
             
            resqpy/property/_collection_create_xml.py,sha256=p9GASodhg4vQqDDvCOHScto_Qtz_nDADGtvZY92Dcu8,13001
         
     | 
| 
       133 
     | 
    
         
            -
            resqpy/property/_collection_get_attributes.py,sha256= 
     | 
| 
      
 132 
     | 
    
         
            +
            resqpy/property/_collection_get_attributes.py,sha256=9uHH9TW0Rty7BMclLqQivr6-uglKSjFZkpWdq47OgAo,32697
         
     | 
| 
       134 
133 
     | 
    
         
             
            resqpy/property/_collection_support.py,sha256=77_DG-0pzhMWdG_mNDiGfihXD7Pp-CvDSGCV8ZlDjj4,5889
         
     | 
| 
       135 
134 
     | 
    
         
             
            resqpy/property/_property.py,sha256=JcG7h6k4cJ4l3WC_VCsvoqHM3FBxrnUuxbIK2Ono1M0,24426
         
     | 
| 
       136 
135 
     | 
    
         
             
            resqpy/property/attribute_property_set.py,sha256=gATFe-vI00GrgaJNMHSKbM0xmlxIsO5DT1qRSU9snYI,12295
         
     | 
| 
         @@ -146,7 +145,7 @@ resqpy/property/well_log_collection.py,sha256=BvvRjDkXjuX2iGUwAGmnIvj6L3zIYAP0db 
     | 
|
| 
       146 
145 
     | 
    
         
             
            resqpy/rq_import/__init__.py,sha256=JV6wDE-_oJ-wY5O5Adaqxoti44NC0QLqrU2esyXvyHA,713
         
     | 
| 
       147 
146 
     | 
    
         
             
            resqpy/rq_import/_add_ab_properties.py,sha256=r9MogJr8QYTVFqKHKv8LQv_PYaDZmA_-aaYy-qeAfTE,4493
         
     | 
| 
       148 
147 
     | 
    
         
             
            resqpy/rq_import/_add_surfaces.py,sha256=wl8COboHnvfE-rPWZ0pwjNZZbCR3GBKvHQYkEOOViVk,6161
         
     | 
| 
       149 
     | 
    
         
            -
            resqpy/rq_import/_grid_from_cp.py,sha256= 
     | 
| 
      
 148 
     | 
    
         
            +
            resqpy/rq_import/_grid_from_cp.py,sha256=I_TIUjtpc1QwUBxis5URywoirAqMiYqbPWepsqgEKfs,31996
         
     | 
| 
       150 
149 
     | 
    
         
             
            resqpy/rq_import/_import_nexus.py,sha256=cOLVS6CNSOE-nuTV7tkNZTYtTzwIaclu0HaBGJFUeZw,35266
         
     | 
| 
       151 
150 
     | 
    
         
             
            resqpy/rq_import/_import_vdb_all_grids.py,sha256=m2B4o-_Mmv9YkeIyVI_oQnnB7DNytN3WGfpm3rF_q-A,6942
         
     | 
| 
       152 
151 
     | 
    
         
             
            resqpy/rq_import/_import_vdb_ensemble.py,sha256=CeoNVeJ88lbPq19gNNvpZNFQmCQE0K7iEEd2cVKjml8,21284
         
     | 
| 
         @@ -163,12 +162,12 @@ resqpy/surface/_base_surface.py,sha256=LsWrDrbuuaEVRgf2Dlbc-6ZvGQpjtrKuxF7Jjebvl 
     | 
|
| 
       163 
162 
     | 
    
         
             
            resqpy/surface/_combined_surface.py,sha256=8TnNbSywjej6tW_vRr5zoVgBbvnadCaqWk6WyHWHTYQ,3082
         
     | 
| 
       164 
163 
     | 
    
         
             
            resqpy/surface/_mesh.py,sha256=yEFldNWT2g8MCGcU4mTeWzDrLHHGLLGLIle1gAjJ_lg,42352
         
     | 
| 
       165 
164 
     | 
    
         
             
            resqpy/surface/_pointset.py,sha256=niTkBik9hAvqrY8340K1TRG7mg4FMQbbp12WZiiXPMs,27416
         
     | 
| 
       166 
     | 
    
         
            -
            resqpy/surface/_surface.py,sha256= 
     | 
| 
       167 
     | 
    
         
            -
            resqpy/surface/_tri_mesh.py,sha256= 
     | 
| 
      
 165 
     | 
    
         
            +
            resqpy/surface/_surface.py,sha256=JA_6k52DU9nWmJilW5Ai95-s7oJLYzBcerDniDNijHU,93814
         
     | 
| 
      
 166 
     | 
    
         
            +
            resqpy/surface/_tri_mesh.py,sha256=f2BiGYNj5v8CgmWJKEZ7aKp1WX9iWX4myETCjVQ5dCA,26746
         
     | 
| 
       168 
167 
     | 
    
         
             
            resqpy/surface/_tri_mesh_stencil.py,sha256=eXt_HIKvsXGsjQ7nm_NbozR6ProQxPbeO52r79j80ig,16087
         
     | 
| 
       169 
168 
     | 
    
         
             
            resqpy/surface/_triangulated_patch.py,sha256=FKn_Irzp4aLFkkN_-tx1MLMKjEAiOLE8636sOA481TQ,26802
         
     | 
| 
       170 
169 
     | 
    
         
             
            resqpy/time_series/__init__.py,sha256=jiB3HJUWe47OOJTVmRJ4Gh5vm-XdMaMXmD52kAGr2zY,1074
         
     | 
| 
       171 
     | 
    
         
            -
            resqpy/time_series/_any_time_series.py,sha256= 
     | 
| 
      
 170 
     | 
    
         
            +
            resqpy/time_series/_any_time_series.py,sha256=PabSxptRcvxsr3bY0tDGHGHm02Fn8meBuIqBAgyMNOU,8953
         
     | 
| 
       172 
171 
     | 
    
         
             
            resqpy/time_series/_from_nexus_summary.py,sha256=LWTcJNx_rDFNGP2iWk74ABip_f__iYNBE0R8lVzHOYo,6617
         
     | 
| 
       173 
172 
     | 
    
         
             
            resqpy/time_series/_functions.py,sha256=D5Wzb7RRfNmmNipQj9DSH-I3eQewP7Zqzkb2T1EGeYk,6366
         
     | 
| 
       174 
173 
     | 
    
         
             
            resqpy/time_series/_geologic_time_series.py,sha256=-4oMxE0R_ZEqyxb9qckawiHS0SJ-rVSZZ11pF6yYn3M,3349
         
     | 
| 
         @@ -184,17 +183,17 @@ resqpy/weights_and_measures/__init__.py,sha256=Kp1pPZFH4rS5_PkCERZBEzGoat6n_dSS0 
     | 
|
| 
       184 
183 
     | 
    
         
             
            resqpy/weights_and_measures/nexus_units.py,sha256=pHqcFbe-8nyqozFgN5Ce-W-UvEnXQ6yiaX3dP1ONtAQ,5434
         
     | 
| 
       185 
184 
     | 
    
         
             
            resqpy/weights_and_measures/weights_and_measures.py,sha256=1WnrmhtcyCgY2crClNddmfwtf33JdVZy9wNhqPQIvuc,16210
         
     | 
| 
       186 
185 
     | 
    
         
             
            resqpy/well/__init__.py,sha256=v5_gd7sSPRM9q2KsLiLWaw3jbnXFZkou38qeB7_HSN4,990
         
     | 
| 
       187 
     | 
    
         
            -
            resqpy/well/_blocked_well.py,sha256= 
     | 
| 
      
 186 
     | 
    
         
            +
            resqpy/well/_blocked_well.py,sha256=Greo8r4AD_TRoclboIn5jO0_7v2rLN-GXYApPQ6ScOo,192741
         
     | 
| 
       188 
187 
     | 
    
         
             
            resqpy/well/_deviation_survey.py,sha256=AsjTl56v8qa2lSxKAMn4vhEadqRTzwH98PmOObCBoe0,23086
         
     | 
| 
       189 
     | 
    
         
            -
            resqpy/well/_md_datum.py,sha256= 
     | 
| 
      
 188 
     | 
    
         
            +
            resqpy/well/_md_datum.py,sha256=O_rPuKsITUi5JD8OzJsf4a6TpWNDCEmjDk8wpQFgJGQ,6709
         
     | 
| 
       190 
189 
     | 
    
         
             
            resqpy/well/_trajectory.py,sha256=lt2_MXeRWjsXTMqZZ5n4-fAT0d41RatCG9QUoYopjOQ,52752
         
     | 
| 
       191 
     | 
    
         
            -
            resqpy/well/_wellbore_frame.py,sha256= 
     | 
| 
      
 190 
     | 
    
         
            +
            resqpy/well/_wellbore_frame.py,sha256=7pAJN-yjvyxg8rXzfRDSpHGoE31T7TaLxkyRiUcsm6o,15502
         
     | 
| 
       192 
191 
     | 
    
         
             
            resqpy/well/_wellbore_marker.py,sha256=ZqcZC5Xmta3IJOAaZXZAWAQX9iaS312WjhnJSge8yks,8403
         
     | 
| 
       193 
192 
     | 
    
         
             
            resqpy/well/_wellbore_marker_frame.py,sha256=xvYH2_2Ie3a18LReFymbUrZboOx7Rhv5DODEVO4-B-k,20933
         
     | 
| 
       194 
193 
     | 
    
         
             
            resqpy/well/blocked_well_frame.py,sha256=Rx8jwkCjchseDZaTttPkA1-f6l7W6vRGrxWtDHlEPx8,22560
         
     | 
| 
       195 
194 
     | 
    
         
             
            resqpy/well/well_object_funcs.py,sha256=1O4EVPuTn-kN3uT_V4TbSwehnMUMY0TX36XOUgasTcc,24689
         
     | 
| 
       196 
     | 
    
         
            -
            resqpy/well/well_utils.py,sha256 
     | 
| 
       197 
     | 
    
         
            -
            resqpy- 
     | 
| 
       198 
     | 
    
         
            -
            resqpy- 
     | 
| 
       199 
     | 
    
         
            -
            resqpy- 
     | 
| 
       200 
     | 
    
         
            -
            resqpy- 
     | 
| 
      
 195 
     | 
    
         
            +
            resqpy/well/well_utils.py,sha256=-g_pg2v5XD9g4SQz9sk7KK-x2xEQZHzWehCQqiEGo6M,7627
         
     | 
| 
      
 196 
     | 
    
         
            +
            resqpy-5.1.0.dist-info/LICENSE,sha256=2duHPIkKQyESMdQ4hKjL8CYEsYRHXaYxt0YQkzsUYE4,1059
         
     | 
| 
      
 197 
     | 
    
         
            +
            resqpy-5.1.0.dist-info/METADATA,sha256=kIfYF-KRbaxHj8KkkBmZFdiQS7gWAlWQ9fGDNycbipk,4026
         
     | 
| 
      
 198 
     | 
    
         
            +
            resqpy-5.1.0.dist-info/WHEEL,sha256=RaoafKOydTQ7I_I3JTrPCg6kUmTgtm4BornzOqyEfJ8,88
         
     | 
| 
      
 199 
     | 
    
         
            +
            resqpy-5.1.0.dist-info/RECORD,,
         
     | 
    
        resqpy/grid/_moved_functions.py
    DELETED
    
    | 
         @@ -1,15 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            """Submodule containing some general grid functions that have now been moved. This file will be deleted in a later release."""
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            import warnings
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
            import resqpy.grid._points_functions as pf
         
     | 
| 
       6 
     | 
    
         
            -
            import resqpy.property.property_kind as pk
         
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
            def establish_zone_property_kind(model):
         
     | 
| 
       10 
     | 
    
         
            -
                """MOVED: Returns zone local property kind object, creating the xml and adding as part if not found in model."""
         
     | 
| 
       11 
     | 
    
         
            -
                warnings.warn(
         
     | 
| 
       12 
     | 
    
         
            -
                    'This function has been moved to property/property_kind. Please update your code to the new '
         
     | 
| 
       13 
     | 
    
         
            -
                    'location.', DeprecationWarning)
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
                return pk.establish_zone_property_kind(model)
         
     | 
| 
         
            File without changes
         
     |