compressedfhir 1.0.4__py3-none-any.whl → 1.0.6__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.

Potentially problematic release.


This version of compressedfhir might be problematic. Click here for more details.

@@ -61,14 +61,10 @@ class FhirResource(CompressedDict[str, Any]):
61
61
  else None
62
62
  )
63
63
 
64
- def json(self) -> str:
65
- """Convert the resource to a JSON string."""
66
- return json.dumps(obj=self.dict(), cls=FhirJSONEncoder)
67
-
68
64
  def __deepcopy__(self, memo: Dict[int, Any]) -> "FhirResource":
69
65
  """Create a copy of the resource."""
70
66
  return FhirResource(
71
- initial_dict=super().dict(),
67
+ initial_dict=super().raw_dict(),
72
68
  storage_mode=self._storage_mode,
73
69
  )
74
70
 
@@ -84,29 +80,6 @@ class FhirResource(CompressedDict[str, Any]):
84
80
  """
85
81
  return copy.deepcopy(self)
86
82
 
87
- @override
88
- def dict(self, *, remove_nulls: bool = True) -> OrderedDict[str, Any]:
89
- """
90
- Converts the FhirResource object to a dictionary.
91
-
92
- :param remove_nulls: If True, removes None values from the dictionary.
93
- :return: A dictionary representation of the FhirResource object.
94
- """
95
- ordered_dict = super().dict()
96
- result: OrderedDict[str, Any] = copy.deepcopy(ordered_dict)
97
- if remove_nulls:
98
- result = FhirClientJsonHelpers.remove_empty_elements_from_ordered_dict(
99
- result
100
- )
101
-
102
- return result
103
-
104
- def remove_nulls(self) -> None:
105
- """
106
- Removes None values from the resource dictionary.
107
- """
108
- self.replace(value=self.dict(remove_nulls=True))
109
-
110
83
  @property
111
84
  def id(self) -> Optional[str]:
112
85
  """Get the ID from the resource dictionary."""
@@ -171,3 +144,23 @@ class FhirResource(CompressedDict[str, Any]):
171
144
  properties_to_cache=properties_to_cache,
172
145
  ),
173
146
  )
147
+
148
+ @override
149
+ def json(self) -> str:
150
+ """Convert the resource to a JSON string."""
151
+
152
+ # working_dict preserves the python types so create a fhir friendly version
153
+ raw_dict: OrderedDict[str, Any] = self.raw_dict()
154
+
155
+ raw_dict = FhirClientJsonHelpers.remove_empty_elements_from_ordered_dict(
156
+ raw_dict
157
+ )
158
+ return json.dumps(obj=raw_dict, cls=FhirJSONEncoder)
159
+
160
+ def to_fhir_dict(self) -> Dict[str, Any]:
161
+ """
162
+ Convert the resource to a FHIR-compliant dictionary.
163
+
164
+ :return: A dictionary representation of the resource.
165
+ """
166
+ return cast(Dict[str, Any], json.loads(self.json()))
@@ -43,7 +43,7 @@ class FhirResourceMap:
43
43
  """
44
44
  result: OrderedDict[str, Any] = OrderedDict[str, Any]()
45
45
  for key, value in self._resource_map.items():
46
- result[key] = [resource.dict(remove_nulls=True) for resource in value]
46
+ result[key] = [resource.dict() for resource in value]
47
47
  return result
48
48
 
49
49
  def get(self, *, resource_type: str) -> Optional[FhirResourceList]:
@@ -102,124 +102,3 @@ class TestFhirResource:
102
102
  assert parsed_json == initial_data
103
103
  assert "resourceType" in parsed_json
104
104
  assert "id" in parsed_json
105
-
106
-
107
- class TestFhirResourceRemoveNulls:
108
- def test_remove_nulls_simple_dict(self) -> None:
109
- """
110
- Test removing None values from a simple dictionary
111
- """
112
- initial_dict: Dict[str, Any] = {
113
- "name": "John Doe",
114
- "age": None,
115
- "active": True,
116
- "email": None,
117
- }
118
- resource = FhirResource(initial_dict=initial_dict)
119
- resource.remove_nulls()
120
-
121
- with resource.transaction():
122
- # Check that None values are removed
123
- assert "age" not in resource
124
- assert "email" not in resource
125
- assert resource.get("name") == "John Doe"
126
- assert resource.get("active") is True
127
-
128
- def test_remove_nulls_nested_dict(self) -> None:
129
- """
130
- Test removing None values from a nested dictionary
131
- """
132
- initial_dict: Dict[str, Any] = {
133
- "patient": {
134
- "name": "Jane Smith",
135
- "contact": None,
136
- "address": {"street": None, "city": "New York"},
137
- },
138
- "status": None,
139
- }
140
- resource = FhirResource(initial_dict=initial_dict)
141
- resource.remove_nulls()
142
-
143
- with resource.transaction():
144
- assert "status" not in resource
145
- assert "contact" not in resource.get("patient", {})
146
- assert resource.get("patient", {}).get("address", {}).get("street") is None
147
- assert (
148
- resource.get("patient", {}).get("address", {}).get("city") == "New York"
149
- )
150
-
151
- def test_remove_nulls_list_of_dicts(self) -> None:
152
- """
153
- Test removing None values from a list of dictionaries
154
- """
155
- initial_dict: Dict[str, Any] = {
156
- "patients": [
157
- {"name": "Alice", "age": None},
158
- {"name": "Bob", "age": 30},
159
- {"name": None, "active": False},
160
- ]
161
- }
162
- resource = FhirResource(initial_dict=initial_dict)
163
- resource.remove_nulls()
164
-
165
- with resource.transaction():
166
- assert len(resource.get("patients", [])) == 3
167
- assert resource.get("patients", [])[0].get("name") == "Alice"
168
- assert resource.get("patients", [])[1].get("name") == "Bob"
169
- assert resource.get("patients", [])[1].get("age") == 30
170
-
171
- def test_remove_nulls_empty_dict(self) -> None:
172
- """
173
- Test removing None values from an empty dictionary
174
- """
175
- resource = FhirResource(initial_dict={})
176
- resource.remove_nulls()
177
-
178
- assert len(resource) == 0
179
-
180
- def test_remove_nulls_no_changes(self) -> None:
181
- """
182
- Test removing None values when no None values exist
183
- """
184
- initial_dict: Dict[str, Any] = {
185
- "name": "Test User",
186
- "active": True,
187
- "score": 100,
188
- }
189
- resource = FhirResource(initial_dict=initial_dict)
190
- original_dict = resource.copy()
191
- resource.remove_nulls()
192
-
193
- assert resource == original_dict
194
-
195
- def test_remove_nulls_with_custom_storage_mode(self) -> None:
196
- """
197
- Test removing None values with a custom storage mode
198
- """
199
- initial_dict: Dict[str, Any] = {
200
- "name": "Custom Mode User",
201
- "email": None,
202
- "active": True,
203
- }
204
- resource = FhirResource(
205
- initial_dict=initial_dict, storage_mode=CompressedDictStorageMode.default()
206
- )
207
- resource.remove_nulls()
208
-
209
- with resource.transaction():
210
- assert "email" not in resource
211
- assert resource.get("name") == "Custom Mode User"
212
- assert resource.get("active") is True
213
-
214
- def test_remove_nulls_preserves_false_and_zero_values(self) -> None:
215
- """
216
- Test that False and 0 values are not removed
217
- """
218
- initial_dict: Dict[str, Any] = {"active": False, "score": 0, "name": None}
219
- resource = FhirResource(initial_dict=initial_dict)
220
- resource.remove_nulls()
221
-
222
- with resource.transaction():
223
- assert resource.get("active") is False
224
- assert resource.get("score") == 0
225
- assert "name" not in resource
@@ -1,4 +1,5 @@
1
1
  import copy
2
+ import json
2
3
  from collections.abc import KeysView, ValuesView, ItemsView, MutableMapping
3
4
  from contextlib import contextmanager
4
5
  from typing import Dict, Optional, Iterator, cast, List, Any, overload, OrderedDict
@@ -13,6 +14,7 @@ from compressedfhir.utilities.compressed_dict.v1.compressed_dict_storage_mode im
13
14
  CompressedDictStorageMode,
14
15
  CompressedDictStorageType,
15
16
  )
17
+ from compressedfhir.utilities.fhir_json_encoder import FhirJSONEncoder
16
18
  from compressedfhir.utilities.json_serializers.type_preservation_serializer import (
17
19
  TypePreservationSerializer,
18
20
  )
@@ -423,19 +425,43 @@ class CompressedDict[K, V](MutableMapping[K, V]):
423
425
  """
424
426
  return self._get_dict().items()
425
427
 
426
- def dict(self, *, remove_nulls: bool = True) -> OrderedDict[K, V]:
428
+ def raw_dict(self) -> OrderedDict[K, V]:
427
429
  """
428
- Convert to a standard dictionary
430
+ Returns the raw dictionary. Deserializes if necessary.
431
+ Note that this dictionary preserves the python types so it is not FHIR friendly.
432
+ Use dict() if you want a FHIR friendly version.
429
433
 
430
434
  Returns:
431
- Standard dictionary with all values
435
+ raw dictionary
432
436
  """
433
437
  if self._working_dict:
434
438
  return self._working_dict
435
439
  else:
436
- # if the working dict is None, return it but don't store it in the self._working_dict to keep memory low
440
+ # if the working dict is not None, return it but don't store it in the self._working_dict to keep memory low
437
441
  return self.create_working_dict()
438
442
 
443
+ def dict(self) -> OrderedDict[K, V]:
444
+ """
445
+ Convert to a FHIR friendly dictionary where the python types like datetime are converted to string versions
446
+
447
+ Returns:
448
+ FHIR friendly dictionary
449
+ """
450
+ return cast(
451
+ OrderedDict[K, V],
452
+ json.loads(
453
+ self.json(),
454
+ object_pairs_hook=lambda pairs: OrderedDict(pairs),
455
+ ),
456
+ )
457
+
458
+ def json(self) -> str:
459
+ """Convert the resource to a JSON string."""
460
+
461
+ raw_dict: OrderedDict[K, V] = self.raw_dict()
462
+
463
+ return json.dumps(obj=raw_dict, cls=FhirJSONEncoder)
464
+
439
465
  def __repr__(self) -> str:
440
466
  """
441
467
  String representation of the dictionary
@@ -559,7 +585,7 @@ class CompressedDict[K, V](MutableMapping[K, V]):
559
585
  """
560
586
  # Create a new instance with the same storage mode
561
587
  new_instance = CompressedDict(
562
- initial_dict=copy.deepcopy(self.dict()),
588
+ initial_dict=copy.deepcopy(self.raw_dict()),
563
589
  storage_mode=self._storage_mode,
564
590
  properties_to_cache=self._properties_to_cache,
565
591
  )
@@ -633,7 +659,7 @@ class CompressedDict[K, V](MutableMapping[K, V]):
633
659
  Returns:
634
660
  Plain dictionary
635
661
  """
636
- return OrderedDictToDictConverter.convert(self.dict())
662
+ return OrderedDictToDictConverter.convert(self.raw_dict())
637
663
 
638
664
  @classmethod
639
665
  def from_json(cls, json_str: str) -> "CompressedDict[K, V]":
@@ -234,7 +234,7 @@ def test_transaction_basic_raw_storage() -> None:
234
234
 
235
235
  # After transaction
236
236
  assert compressed_dict._transaction_depth == 0
237
- assert compressed_dict.dict() == {
237
+ assert compressed_dict.raw_dict() == {
238
238
  "key1": "value1",
239
239
  "key2": "value2",
240
240
  "key3": "value3",
@@ -262,7 +262,7 @@ def test_transaction_nested_context() -> None:
262
262
  assert compressed_dict._transaction_depth == 1
263
263
 
264
264
  assert compressed_dict._transaction_depth == 0
265
- assert compressed_dict.dict() == {"key1": "value1", "key2": "value2"}
265
+ assert compressed_dict.raw_dict() == {"key1": "value1", "key2": "value2"}
266
266
 
267
267
 
268
268
  def test_transaction_access_error() -> None:
@@ -311,7 +311,7 @@ def test_transaction_different_storage_modes() -> None:
311
311
  with compressed_dict.transaction() as d:
312
312
  d["key2"] = "value2"
313
313
 
314
- assert compressed_dict.dict() == {"key1": "value1", "key2": "value2"}
314
+ assert compressed_dict.raw_dict() == {"key1": "value1", "key2": "value2"}
315
315
 
316
316
 
317
317
  def test_transaction_with_properties_to_cache() -> None:
@@ -330,7 +330,7 @@ def test_transaction_with_properties_to_cache() -> None:
330
330
  with compressed_dict.transaction() as d:
331
331
  d["key2"] = "value2"
332
332
 
333
- assert compressed_dict.dict() == {
333
+ assert compressed_dict.raw_dict() == {
334
334
  "key1": "value1",
335
335
  "important_prop": "cached_value",
336
336
  "key2": "value2",
@@ -1,4 +1,5 @@
1
1
  import logging
2
+ from collections import OrderedDict
2
3
  from datetime import datetime, timezone, date
3
4
  from decimal import Decimal
4
5
  from logging import Logger
@@ -68,6 +69,8 @@ def test_nested_dict() -> None:
68
69
  """
69
70
  logger: Logger = logging.getLogger(__name__)
70
71
  nested_dict = {
72
+ "resourceType": "Coverage",
73
+ "id": "3456789012345670304",
71
74
  "beneficiary": {"reference": "Patient/1234567890123456703", "type": "Patient"},
72
75
  "class": [
73
76
  {
@@ -94,7 +97,6 @@ def test_nested_dict() -> None:
94
97
  },
95
98
  }
96
99
  ],
97
- "id": "3456789012345670304",
98
100
  "identifier": [
99
101
  {
100
102
  "system": "https://sources.aetna.com/coverage/identifier/membershipid/59",
@@ -144,7 +146,6 @@ def test_nested_dict() -> None:
144
146
  }
145
147
  ]
146
148
  },
147
- "resourceType": "Coverage",
148
149
  "status": "active",
149
150
  "subscriber": {"reference": "Patient/1234567890123456703", "type": "Patient"},
150
151
  "subscriberId": "435679010300",
@@ -160,12 +161,16 @@ def test_nested_dict() -> None:
160
161
  }
161
162
 
162
163
  logger.info("-------- Serialized --------")
163
- serialized = TypePreservationSerializer.serialize(nested_dict)
164
+ serialized: str = TypePreservationSerializer.serialize(nested_dict)
164
165
  logger.info(serialized)
165
166
  logger.info("-------- Deserialized --------")
166
- deserialized = TypePreservationSerializer.deserialize(serialized)
167
+ deserialized: OrderedDict[str, Any] = TypePreservationSerializer.deserialize(
168
+ serialized
169
+ )
167
170
  logger.info(deserialized)
168
171
 
172
+ assert isinstance(deserialized, OrderedDict)
173
+
169
174
  assert isinstance(deserialized["period"]["start"], date)
170
175
  assert isinstance(deserialized["period"]["end"], date)
171
176
  assert nested_dict == deserialized
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: compressedfhir
3
- Version: 1.0.4
3
+ Version: 1.0.6
4
4
  Summary: Stores FHIR JSON resources in compressed form in memory
5
5
  Home-page: https://github.com/icanbwell/compressed-fhir
6
6
  Author: Imran Qureshi
@@ -11,16 +11,16 @@ compressedfhir/fhir/fhir_bundle_entry_search.py,sha256=uYVJxuNN3gt3Q6BZ5FhRs47x7
11
11
  compressedfhir/fhir/fhir_identifier.py,sha256=tA_nmhBaYHu5zjJdE0IWMFEF8lrIPV3_nu-yairiIKw,2711
12
12
  compressedfhir/fhir/fhir_link.py,sha256=jf2RrwmsPrKW3saP77y42xVqI0xwHFYXxm6YHQJk7gU,1922
13
13
  compressedfhir/fhir/fhir_meta.py,sha256=vNI4O6SoG4hJRHyd-bJ_QnYFTfBHyR3UA6h21ByQmWo,1669
14
- compressedfhir/fhir/fhir_resource.py,sha256=GIz0g8O-Nw9Av8M5wYRoRY4FS2kEk2Nb03RPSeDYUqo,5588
14
+ compressedfhir/fhir/fhir_resource.py,sha256=WDrS6ZAQARsTfEsKNhNIgCw8vir_U-1nBzFGt510OBw,5340
15
15
  compressedfhir/fhir/fhir_resource_list.py,sha256=qlAAwWWphtFicBxPG8iriz2eOHGcrWJk5kGThmvkbPE,4480
16
- compressedfhir/fhir/fhir_resource_map.py,sha256=6Zt_K8KVolS-lgT_Ztu_6YxNo8BXhweQfWO-QFriInA,6588
16
+ compressedfhir/fhir/fhir_resource_map.py,sha256=XFJ0o5_kLUeHYKp1q_Bxsoyp2-rLX7P4c9FwQ7YfGWM,6571
17
17
  compressedfhir/fhir/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
18
  compressedfhir/fhir/test/test_bundle_entry.py,sha256=Ki2sSu1V1WZkAM6UTCghtzjvjYYI8UcF6AXnx8FWlMI,5115
19
19
  compressedfhir/fhir/test/test_bundle_entry_list.py,sha256=KtMrbQYezdEw9FJbBzwSePdJK2R9P03mSRfo59T-6iM,6041
20
20
  compressedfhir/fhir/test/test_bundle_entry_request.py,sha256=9bN3Vt9BAXPLjH7FFt_MYSdanFJzWk9HbA0C9kZxPXY,2853
21
21
  compressedfhir/fhir/test/test_bundle_entry_response.py,sha256=jk5nUi07_q-yz-qz2YR86vU91e3DVxc2cptrS6tsCco,2539
22
22
  compressedfhir/fhir/test/test_fhir_bundle.py,sha256=Kt1IpxEnUuPOJBDWsdy4cC7kR3FR-uPOf7PB9ejJ7ZM,8700
23
- compressedfhir/fhir/test/test_fhir_resource.py,sha256=4Fl6QaqjW4CsYqkxVj2WRXITv_MeozUIrZgN4bMBGIw,8002
23
+ compressedfhir/fhir/test/test_fhir_resource.py,sha256=nsSLs-sKDaYpoTVyXuBNnKJ0-somxDNX368lpTf3HUw,3828
24
24
  compressedfhir/fhir/test/test_fhir_resource_list.py,sha256=SrSPJ1yWU4UgMUCht6JwgKh2Y5JeTS4-Wky0kWZOXH8,5664
25
25
  compressedfhir/fhir/test/test_fhir_resource_map.py,sha256=jtQ5fq_jhmFfhHGyK5mdiwIQiO-Sfp2eG9mco_Tr9Qk,10995
26
26
  compressedfhir/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -28,11 +28,11 @@ compressedfhir/utilities/fhir_json_encoder.py,sha256=hn-ZuDrTEdYZmILk_5_k4R72PQB
28
28
  compressedfhir/utilities/json_helpers.py,sha256=lEiPapLN0p-kLu6PFm-h971ieXRxwPB2M-8FCZ2Buo8,5642
29
29
  compressedfhir/utilities/compressed_dict/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
30
  compressedfhir/utilities/compressed_dict/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
- compressedfhir/utilities/compressed_dict/v1/compressed_dict.py,sha256=Ibtg9q1CYL6W7b0kW-Xqr2eUhpPVWnU1D_9Or4cxUbs,21200
31
+ compressedfhir/utilities/compressed_dict/v1/compressed_dict.py,sha256=C2mblG2P8qx0XWpDJO-7OGBqyQRTp0WelaUbwopI7qc,22049
32
32
  compressedfhir/utilities/compressed_dict/v1/compressed_dict_access_error.py,sha256=xuwED0KGZcQORIcZRfi--5CdXplHJ5vYLBUqpbDi344,132
33
33
  compressedfhir/utilities/compressed_dict/v1/compressed_dict_storage_mode.py,sha256=mEdtJjPX2I9DqP0Ly_VsZZWhEMNTI1psqQ8iJtUQ2oE,1412
34
34
  compressedfhir/utilities/compressed_dict/v1/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
- compressedfhir/utilities/compressed_dict/v1/test/test_compressed_dict.py,sha256=_jiZJCZdXeMAigHLVGz-EhSWXGhrxQFRNGLsrsDYrp0,15824
35
+ compressedfhir/utilities/compressed_dict/v1/test/test_compressed_dict.py,sha256=5yUnjkmP3A4dSPzDXY3u1YBQ8BxCANdtCF9uGF1T9i4,15840
36
36
  compressedfhir/utilities/json_serializers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
37
  compressedfhir/utilities/json_serializers/type_preservation_decoder.py,sha256=Af2ZsLZiUF9kUhRvkV7i6Ctf_OtTND_lb5PezHtolJU,4382
38
38
  compressedfhir/utilities/json_serializers/type_preservation_encoder.py,sha256=f7RL67l7QtDbijCPq1ki6axrLte1vH--bi1AsN7Y3yk,1646
@@ -40,7 +40,7 @@ compressedfhir/utilities/json_serializers/type_preservation_serializer.py,sha256
40
40
  compressedfhir/utilities/json_serializers/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
41
  compressedfhir/utilities/json_serializers/test/test_type_preservation_decoder.py,sha256=GQotwYQJe9VZQotvLWmQWMkSIBne53bolmgflBoR7DU,4752
42
42
  compressedfhir/utilities/json_serializers/test/test_type_preservation_encoder.py,sha256=O4VczBdsJF35WozZiwSdJ8638qDn01JQsai2wTXu5Vo,1737
43
- compressedfhir/utilities/json_serializers/test/test_type_preservation_serializer.py,sha256=dTYdgI1wMgWU0DJCNJlbMmsnhr-Q_2SPXeydLsn70rA,6043
43
+ compressedfhir/utilities/json_serializers/test/test_type_preservation_serializer.py,sha256=jRl0UEzvsjj1Kl2_7VYCf3kaJch9UZ2-8VHdKZC69xo,6171
44
44
  compressedfhir/utilities/ordered_dict_to_dict_converter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
45
  compressedfhir/utilities/ordered_dict_to_dict_converter/ordered_dict_to_dict_converter.py,sha256=CMerJQD7O0vMyGtUp1rKSerZA1tDZeY5GTQT3AykL4w,831
46
46
  compressedfhir/utilities/string_compressor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -51,9 +51,9 @@ compressedfhir/utilities/string_compressor/v1/test/test_string_compressor.py,sha
51
51
  compressedfhir/utilities/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
52
  compressedfhir/utilities/test/test_fhir_json_encoder.py,sha256=6pbNmZp5eBWY66bHjgjm_pZVhs5HDKP8hCGnwNFzpEw,5171
53
53
  compressedfhir/utilities/test/test_json_helpers.py,sha256=V0R9oHDQAs0m0012niEz50sHJxMSUQvA3km7kK8HgjE,3860
54
- compressedfhir-1.0.4.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
54
+ compressedfhir-1.0.6.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
55
55
  tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
- compressedfhir-1.0.4.dist-info/METADATA,sha256=Qk3xfm70nAzzDsyTiIsWuuvAsuOPuvAuVABV2-Xgrko,3456
57
- compressedfhir-1.0.4.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
58
- compressedfhir-1.0.4.dist-info/top_level.txt,sha256=YMKdvBBdiCzFbpI9fG8BUDjaRd-f4R0qAvUoVETpoWw,21
59
- compressedfhir-1.0.4.dist-info/RECORD,,
56
+ compressedfhir-1.0.6.dist-info/METADATA,sha256=v6J1S0AOuckbI1u8KvB-OlP1BU1XyIqZ4TPnldH7sAI,3456
57
+ compressedfhir-1.0.6.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
58
+ compressedfhir-1.0.6.dist-info/top_level.txt,sha256=YMKdvBBdiCzFbpI9fG8BUDjaRd-f4R0qAvUoVETpoWw,21
59
+ compressedfhir-1.0.6.dist-info/RECORD,,