resqpy 4.15.0__py3-none-any.whl → 4.15.1__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 CHANGED
@@ -28,6 +28,6 @@
28
28
 
29
29
  import logging
30
30
 
31
- __version__ = "4.15.0" # Set at build time
31
+ __version__ = "4.15.1" # Set at build time
32
32
  log = logging.getLogger(__name__)
33
33
  log.info(f"Imported resqpy version {__version__}")
@@ -8,7 +8,7 @@ __all__ = [
8
8
  'reformat_column_edges_from_resqml_format', 'same_property_kind', 'selective_version_of_collection',
9
9
  'supported_local_property_kind_list', 'supported_property_kind_list', 'supported_facet_type_list',
10
10
  'expected_facet_type_dict', 'create_transmisibility_multiplier_property_kind',
11
- 'property_kind_and_facet_from_keyword', 'guess_uom', 'property_parts', 'property_part'
11
+ 'property_kind_and_facet_from_keyword', 'guess_uom', 'property_parts', 'property_part', 'make_aps_key'
12
12
  ]
13
13
 
14
14
  from .property_common import property_collection_for_keyword, \
@@ -30,7 +30,7 @@ from .property_common import property_collection_for_keyword, \
30
30
  from .property_kind import PropertyKind, create_transmisibility_multiplier_property_kind
31
31
  from .string_lookup import StringLookup
32
32
  from .property_collection import PropertyCollection
33
- from .attribute_property_set import AttributePropertySet, ApsProperty
33
+ from .attribute_property_set import AttributePropertySet, ApsProperty, make_aps_key
34
34
  from .grid_property_collection import GridPropertyCollection
35
35
  from ._property import Property
36
36
  from .well_interval_property import WellIntervalProperty
@@ -236,21 +236,12 @@ class AttributePropertySet(rqp.PropertyCollection):
236
236
 
237
237
  def _key(self, part):
238
238
  """Returns the key (attribute name) for a given part."""
239
- if self.key_mode == 'pk':
240
- key = self.property_kind_for_part(part)
241
- facet = self.facet_for_part(part)
242
- if facet is not None:
243
- key += f'_{facet}'
244
- else:
245
- key = self.citation_title_for_part(part)
246
- key = key.replace(' ', '_')
247
- ti = self.time_index_for_part(part)
248
- if ti is not None:
249
- key += f'_t{ti}'
250
- r = self.realization_for_part(part)
251
- if r is not None:
252
- key += f'_r{r}'
253
- return key
239
+ return make_aps_key(self.key_mode,
240
+ property_kind = self.property_kind_for_part(part),
241
+ title = self.citation_title_for_part(part),
242
+ facet = self.facet_for_part(part),
243
+ time_index = self.time_index_for_part(part),
244
+ realization = self.realization_for_part(part))
254
245
 
255
246
  def _make_attributes(self):
256
247
  """Setup individual properties with attribute style read access to metadata."""
@@ -262,3 +253,21 @@ class AttributePropertySet(rqp.PropertyCollection):
262
253
  def __len__(self):
263
254
  """Returns the number of properties in the set."""
264
255
  return self.number_of_parts()
256
+
257
+
258
+ def make_aps_key(key_mode, property_kind = None, title = None, facet = None, time_index = None, realization = None):
259
+ """Contructs the key (attribute name) for a property based on metadata items."""
260
+ if key_mode == 'pk':
261
+ assert property_kind is not None
262
+ key = property_kind
263
+ if facet is not None:
264
+ key += f'_{facet}'
265
+ else:
266
+ assert title is not None
267
+ key = title
268
+ key = key.replace(' ', '_')
269
+ if time_index is not None:
270
+ key += f'_t{time_index}'
271
+ if realization is not None:
272
+ key += f'_r{realization}'
273
+ return key
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: resqpy
3
- Version: 4.15.0
3
+ Version: 4.15.1
4
4
  Summary: Python API for working with RESQML models
5
5
  Home-page: https://github.com/bp/resqpy
6
6
  License: MIT
@@ -1,4 +1,4 @@
1
- resqpy/__init__.py,sha256=4_STgTMszfNG-6HxXu8dDn-thh_E2N4ws5-VjSnDWEA,556
1
+ resqpy/__init__.py,sha256=3zUImwY1meqG4Lanh-KoHsjCskJxdS0ohH8wjE0jtEU,556
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
@@ -127,13 +127,13 @@ resqpy/organize/structural_organization_interpretation.py,sha256=xEpm1KKiP9dKktW
127
127
  resqpy/organize/tectonic_boundary_feature.py,sha256=mMSsIW8YJ6qpeOe-6gRFaQbK39-WIiGunxPSnwxFyqY,2675
128
128
  resqpy/organize/wellbore_feature.py,sha256=E2gFwgPZGr8nkhRHAIR0wTZ8uwcze7y2WBIV7AXeW2A,1843
129
129
  resqpy/organize/wellbore_interpretation.py,sha256=jRAHq90tR2dCQSXsZicujXhSVHOEPoGjFgh5S87SMAI,6973
130
- resqpy/property/__init__.py,sha256=jrkf6Ul4iO5uBqPVuEla30ewYi9SWHE8W34UVE9-Ess,2264
130
+ resqpy/property/__init__.py,sha256=KegXDizklsMB-EnGFrzhCSszrXAHXEIoStdC5XmyifQ,2294
131
131
  resqpy/property/_collection_add_part.py,sha256=s0xXU5aLRqvZoHxbRUNY-ItiNPqmUoEMcnWqQh011jk,17076
132
132
  resqpy/property/_collection_create_xml.py,sha256=x6F7cjdC2y3JmPHi88hkpy3nf1wnWGwEexTj_Dmsf6E,12923
133
133
  resqpy/property/_collection_get_attributes.py,sha256=MlontPfGo00lxt0SpB49YG9PRsi5oXPqduDgCSOSmzs,32441
134
134
  resqpy/property/_collection_support.py,sha256=77_DG-0pzhMWdG_mNDiGfihXD7Pp-CvDSGCV8ZlDjj4,5889
135
135
  resqpy/property/_property.py,sha256=JcG7h6k4cJ4l3WC_VCsvoqHM3FBxrnUuxbIK2Ono1M0,24426
136
- resqpy/property/attribute_property_set.py,sha256=HaOK2g2tzsFlLAzxKhG4hcR9ss8f8LBjAPbMCEE4X2Q,9899
136
+ resqpy/property/attribute_property_set.py,sha256=YveiTAIeNUXZRJ8m1-SZEvtae83SOW-D0E3Wz4GNqSs,10382
137
137
  resqpy/property/grid_property_collection.py,sha256=bLWCTfhmpDsagBaXXb8XXHL46Cy78HL_NGWpPFZAgdw,66946
138
138
  resqpy/property/property_collection.py,sha256=b4J_bzigN-P5nag49Y6IG4mq3s1KbelsQC5frYg2ij8,151911
139
139
  resqpy/property/property_common.py,sha256=pItepusFU94YTNlWJyMj7LRMyRQviBQa0y7ouEs6AHo,36422
@@ -194,7 +194,7 @@ resqpy/well/_wellbore_marker_frame.py,sha256=xvYH2_2Ie3a18LReFymbUrZboOx7Rhv5DOD
194
194
  resqpy/well/blocked_well_frame.py,sha256=Lg7TgynfPv9WkklXTLt9VN6uBXWUqX1LI-Xmv_FBqYk,22555
195
195
  resqpy/well/well_object_funcs.py,sha256=LYTcC07ezlBxClfrug_B4iXXZUkXDPgsVufNzp361Wo,24703
196
196
  resqpy/well/well_utils.py,sha256=zwpYjT85nXAwWBhYB1Pygu2SgouZ-44k6hEOnpoMfBI,5969
197
- resqpy-4.15.0.dist-info/LICENSE,sha256=2duHPIkKQyESMdQ4hKjL8CYEsYRHXaYxt0YQkzsUYE4,1059
198
- resqpy-4.15.0.dist-info/METADATA,sha256=A2oz2Pd_oTElPuvZbkLDJx4aAseJOM4Q92fSWPX0hK8,4028
199
- resqpy-4.15.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
200
- resqpy-4.15.0.dist-info/RECORD,,
197
+ resqpy-4.15.1.dist-info/LICENSE,sha256=2duHPIkKQyESMdQ4hKjL8CYEsYRHXaYxt0YQkzsUYE4,1059
198
+ resqpy-4.15.1.dist-info/METADATA,sha256=_ySjZQbSpl5cy_dg9F4yUU4MaLQrMsT5dHbmVvwrhT8,4028
199
+ resqpy-4.15.1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
200
+ resqpy-4.15.1.dist-info/RECORD,,