oldaplib 0.3.8__tar.gz → 0.3.9__tar.gz

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.
Files changed (163) hide show
  1. {oldaplib-0.3.8 → oldaplib-0.3.9}/PKG-INFO +1 -1
  2. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/helpers/observable_set.py +28 -18
  3. oldaplib-0.3.9/oldaplib/src/version.py +1 -0
  4. {oldaplib-0.3.8 → oldaplib-0.3.9}/pyproject.toml +1 -1
  5. oldaplib-0.3.8/oldaplib/src/version.py +0 -1
  6. {oldaplib-0.3.8 → oldaplib-0.3.9}/README.md +0 -0
  7. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/__init__.py +0 -0
  8. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/apps/load_list.py +0 -0
  9. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/ontologies/admin-testing.trig +0 -0
  10. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/ontologies/admin.trig +0 -0
  11. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/ontologies/example.trig +0 -0
  12. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/ontologies/oldap.trig +0 -0
  13. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/ontologies/oldap.ttl +0 -0
  14. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/ontologies/shared.trig +0 -0
  15. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/ontologies/standard/.gitsave +0 -0
  16. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/__init__.py +0 -0
  17. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/cachesingleton.py +0 -0
  18. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/connection.py +0 -0
  19. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/datamodel.py +0 -0
  20. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/dtypes/__init__.py +0 -0
  21. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/dtypes/bnode.py +0 -0
  22. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/dtypes/languagein.py +0 -0
  23. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/dtypes/namespaceiri.py +0 -0
  24. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/dtypes/rdfset.py +0 -0
  25. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/dtypes/xsdset.py +0 -0
  26. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/enums/__init__.py +0 -0
  27. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/enums/action.py +0 -0
  28. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/enums/adminpermissions.py +0 -0
  29. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/enums/attributeclass.py +0 -0
  30. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/enums/datapermissions.py +0 -0
  31. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/enums/externalontologyattr.py +0 -0
  32. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/enums/haspropertyattr.py +0 -0
  33. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/enums/language.py +0 -0
  34. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/enums/oldaplistattr.py +0 -0
  35. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/enums/oldaplistnodeattr.py +0 -0
  36. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/enums/owlpropertytype.py +0 -0
  37. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/enums/permissionsetattr.py +0 -0
  38. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/enums/projectattr.py +0 -0
  39. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/enums/propertyclassattr.py +0 -0
  40. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/enums/resourceclassattr.py +0 -0
  41. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/enums/sparql_result_format.py +0 -0
  42. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/enums/userattr.py +0 -0
  43. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/enums/xsd_datatypes.py +0 -0
  44. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/externalontology.py +0 -0
  45. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/globalconfig.py +0 -0
  46. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/hasproperty.py +0 -0
  47. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/helpers/Notify.py +0 -0
  48. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/helpers/__init__.py +0 -0
  49. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/helpers/attributechange.py +0 -0
  50. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/helpers/context.py +0 -0
  51. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/helpers/convert2datatype.py +0 -0
  52. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/helpers/irincname.py +0 -0
  53. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/helpers/json_encoder.py +0 -0
  54. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/helpers/langstring.py +0 -0
  55. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/helpers/numeric.py +0 -0
  56. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/helpers/observable_dict.py +0 -0
  57. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/helpers/oldaperror.py +0 -0
  58. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/helpers/query_processor.py +0 -0
  59. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/helpers/semantic_version.py +0 -0
  60. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/helpers/serializeableset.py +0 -0
  61. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/helpers/serializer.py +0 -0
  62. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/helpers/singletonmeta.py +0 -0
  63. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/helpers/tools.py +0 -0
  64. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/iconnection.py +0 -0
  65. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/in_project.py +0 -0
  66. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/model.py +0 -0
  67. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/objectfactory.py +0 -0
  68. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/oldaplist.py +0 -0
  69. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/oldaplist_helpers.py +0 -0
  70. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/oldaplistnode.py +0 -0
  71. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/oldaplogging.py +0 -0
  72. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/permissionset.py +0 -0
  73. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/project.py +0 -0
  74. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/propertyclass.py +0 -0
  75. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/resourceclass.py +0 -0
  76. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/user.py +0 -0
  77. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/userdataclass.py +0 -0
  78. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/__init__.py +0 -0
  79. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/floatingpoint.py +0 -0
  80. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/iri.py +0 -0
  81. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd.py +0 -0
  82. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_anyuri.py +0 -0
  83. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_base64binary.py +0 -0
  84. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_boolean.py +0 -0
  85. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_byte.py +0 -0
  86. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_date.py +0 -0
  87. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_datetime.py +0 -0
  88. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_datetimestamp.py +0 -0
  89. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_decimal.py +0 -0
  90. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_double.py +0 -0
  91. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_duration.py +0 -0
  92. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_float.py +0 -0
  93. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_gday.py +0 -0
  94. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_gmonth.py +0 -0
  95. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_gmonthday.py +0 -0
  96. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_gyear.py +0 -0
  97. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_gyearmonth.py +0 -0
  98. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_hexbinary.py +0 -0
  99. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_id.py +0 -0
  100. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_idref.py +0 -0
  101. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_int.py +0 -0
  102. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_integer.py +0 -0
  103. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_language.py +0 -0
  104. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_long.py +0 -0
  105. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_name.py +0 -0
  106. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_ncname.py +0 -0
  107. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_negativeinteger.py +0 -0
  108. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_nmtoken.py +0 -0
  109. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_nonnegativeinteger.py +0 -0
  110. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_nonpositiveinteger.py +0 -0
  111. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_normalizedstring.py +0 -0
  112. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_positiveinteger.py +0 -0
  113. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_qname.py +0 -0
  114. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_short.py +0 -0
  115. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_string.py +0 -0
  116. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_time.py +0 -0
  117. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_token.py +0 -0
  118. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_unsignedbyte.py +0 -0
  119. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_unsignedint.py +0 -0
  120. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_unsignedlong.py +0 -0
  121. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/src/xsd/xsd_unsignedshort.py +0 -0
  122. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/test/__init__.py +0 -0
  123. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/test/test_cache.py +0 -0
  124. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/test/test_connection.py +0 -0
  125. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/test/test_context.py +0 -0
  126. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/test/test_datamodel.py +0 -0
  127. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/test/test_dtypes.py +0 -0
  128. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/test/test_externalontologies.py +0 -0
  129. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/test/test_hasproperty.py +0 -0
  130. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/test/test_in_project.py +0 -0
  131. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/test/test_langstring.py +0 -0
  132. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/test/test_language_in.py +0 -0
  133. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/test/test_objectfactory.py +0 -0
  134. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/test/test_observable_dict.py +0 -0
  135. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/test/test_observable_set.py +0 -0
  136. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/test/test_oldaplist.py +0 -0
  137. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/test/test_oldaplist_helpers.py +0 -0
  138. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/test/test_oldaplistnode.py +0 -0
  139. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/test/test_permissionset.py +0 -0
  140. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/test/test_project.py +0 -0
  141. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/test/test_propertyclass.py +0 -0
  142. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/test/test_resourceclass.py +0 -0
  143. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/test/test_semantic_version.py +0 -0
  144. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/test/test_user.py +0 -0
  145. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/test/test_xsd_datatypes.py +0 -0
  146. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/testdata/Gender.yaml +0 -0
  147. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/testdata/collections_type.yaml +0 -0
  148. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/testdata/connection_test.trig +0 -0
  149. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/testdata/datamodel_test.trig +0 -0
  150. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/testdata/event_type.yaml +0 -0
  151. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/testdata/hlist_schema.yaml +0 -0
  152. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/testdata/institution_or_building_type.yaml +0 -0
  153. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/testdata/language.yaml +0 -0
  154. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/testdata/location_type.yaml +0 -0
  155. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/testdata/means_of_transportation.yaml +0 -0
  156. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/testdata/objectfactory_test.trig +0 -0
  157. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/testdata/playground_list.yaml +0 -0
  158. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/testdata/role.yaml +0 -0
  159. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/testdata/source_type-1.yaml +0 -0
  160. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/testdata/source_type.yaml +0 -0
  161. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/testdata/test_move_left_of_toL.yaml +0 -0
  162. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/testdata/testlist.yaml +0 -0
  163. {oldaplib-0.3.8 → oldaplib-0.3.9}/oldaplib/testit.http +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: oldaplib
3
- Version: 0.3.8
3
+ Version: 0.3.9
4
4
  Summary: Open Media Access Server Library (Linked Open Data middleware/RESTApi)
5
5
  License: GNU Affero General Public License version 3
6
6
  Author: Lukas Rosenthaler
@@ -80,7 +80,7 @@ class ObservableSet(Notify):
80
80
  def __str__(self) -> str:
81
81
  return str(self._setdata)
82
82
 
83
- def __eq__(self, other: Iterable) -> bool:
83
+ def __eq__(self, other: Iterable[Any]) -> bool:
84
84
  if isinstance(other, ObservableSet):
85
85
  return self._setdata == other._setdata
86
86
  elif isinstance(other, set):
@@ -90,7 +90,7 @@ class ObservableSet(Notify):
90
90
  else:
91
91
  raise OldapErrorNotImplemented(f'Set.__eq__() not implemented for {type(other).__name__}')
92
92
 
93
- def __or__(self, other: Iterable) -> Self:
93
+ def __or__(self, other: Iterable[Any]) -> Self:
94
94
  if isinstance(other, ObservableSet):
95
95
  return ObservableSet(self._setdata.__or__(other._setdata), self._notifier, self._notify_data)
96
96
  elif isinstance(other, set):
@@ -100,25 +100,24 @@ class ObservableSet(Notify):
100
100
  else:
101
101
  raise OldapErrorNotImplemented(f'Set.__or__() not implemented for {type(other).__name__}')
102
102
 
103
- def __ror__(self, other: Self) -> Self:
104
- pass
103
+ def __ror__(self, other: Iterable[Any]) -> Self:
104
+ return ObservableSet(set(other).__or__(self._setdata), self._notifier, self._notify_data)
105
+
106
+ def __rsub__(self, other: Iterable[Any]) -> Self:
107
+ return ObservableSet(set(other).__sub__(self._setdata), self._notifier, self._notify_data)
105
108
 
106
- def __ior__(self, other: Iterable) -> Self:
109
+ def __ior__(self, other: Iterable[Any]) -> Self:
107
110
  tmp_copy = deepcopy(self)
108
111
  if isinstance(other, ObservableSet):
109
112
  self._setdata.__ior__(other._setdata)
110
- elif isinstance(other, set):
111
- self._setdata.__ior__(other)
112
- elif isinstance(other, Iterable):
113
- return ObservableSet(self._setdata.__ior__(set(other)), self._notifier, self._notify_data)
114
113
  else:
115
- raise OldapErrorNotImplemented(f'Set.i__or__() not implemented for {type(other).__name__}')
114
+ self._setdata.__ior__(set(other))
116
115
  if not self._old_value:
117
116
  self._old_value = tmp_copy
118
117
  self.notify()
119
118
  return self
120
119
 
121
- def __and__(self, other: Iterable) -> Self:
120
+ def __and__(self, other: Iterable[Any]) -> Self:
122
121
  if isinstance(other, ObservableSet):
123
122
  return ObservableSet(self._setdata.__and__(other._setdata), self._notifier, self._notify_data)
124
123
  elif isinstance(other, set):
@@ -128,7 +127,7 @@ class ObservableSet(Notify):
128
127
  else:
129
128
  raise OldapErrorNotImplemented(f'Set.__and__() not implemented for {type(other).__name__}')
130
129
 
131
- def __iand__(self, other: Iterable) -> Self:
130
+ def __iand__(self, other: Iterable[Any]) -> Self:
132
131
  tmp_copy = deepcopy(self)
133
132
  if isinstance(other, ObservableSet):
134
133
  self._setdata.__iand__(other._setdata)
@@ -146,7 +145,7 @@ class ObservableSet(Notify):
146
145
  def __rsub__(self, other: Self) -> Self:
147
146
  pass
148
147
 
149
- def __sub__(self, other: Iterable) -> Self:
148
+ def __sub__(self, other: Iterable[Any]) -> Self:
150
149
  if isinstance(other, ObservableSet):
151
150
  return ObservableSet(self._setdata.__sub__(other._setdata), self.notify, self._notify_data)
152
151
  elif isinstance(other, set):
@@ -156,7 +155,7 @@ class ObservableSet(Notify):
156
155
  else:
157
156
  raise OldapErrorNotImplemented(f'Set.__sub__() not implemented for {type(other).__name__}')
158
157
 
159
- def __isub__(self, other: Iterable) -> Self:
158
+ def __isub__(self, other: Iterable[Any]) -> Self:
160
159
  tmp_copy = deepcopy(self)
161
160
  if isinstance(other, ObservableSet):
162
161
  self._setdata.__isub__(other._setdata)
@@ -171,34 +170,45 @@ class ObservableSet(Notify):
171
170
  self.notify()
172
171
  return self
173
172
 
174
- def update(self, items: Iterable):
173
+ @classmethod
174
+ def coerce(cls, value: Iterable[Any], *, notifier=None, notify_data=None) -> "ObservableSet":
175
+ return value if isinstance(value, cls) else cls(value, notifier=notifier, notify_data=notify_data)
176
+
177
+ def update(self, items: Iterable[Any]):
175
178
  tmp_copy = deepcopy(self)
176
179
  self._setdata.update(items)
177
180
  if not self._old_value:
178
181
  self._old_value = tmp_copy
179
182
  self.notify()
180
183
 
181
- def intersection_update(self, items: Iterable):
184
+ def intersection_update(self, items: Iterable[Any]):
182
185
  tmp_copy = deepcopy(self)
183
186
  self._setdata.intersection_update(items)
184
187
  if not self._old_value:
185
188
  self._old_value = tmp_copy
186
189
  self.notify()
187
190
 
188
- def difference_update(self, items: Iterable):
191
+ def difference_update(self, items: Iterable[Any]):
189
192
  tmp_copy = deepcopy(self)
190
193
  self._setdata.difference_update(items)
191
194
  if not self._old_value:
192
195
  self._old_value = tmp_copy
193
196
  self.notify()
194
197
 
195
- def symmetric_difference_update(self, items: Iterable):
198
+ def symmetric_difference_update(self, items: Iterable[Any]):
196
199
  tmp_copy = deepcopy(self)
197
200
  self._setdata.symmetric_difference_update(items)
198
201
  if not self._old_value:
199
202
  self._old_value = tmp_copy
200
203
  self.notify()
201
204
 
205
+ def replace(self, items: Iterable[Any]) -> None:
206
+ tmp_copy = deepcopy(self)
207
+ self._setdata = set(items)
208
+ if not self._old_value:
209
+ self._old_value = tmp_copy
210
+ self.notify()
211
+
202
212
  def add(self, item: Any) -> None:
203
213
  tmp_copy = deepcopy(self)
204
214
  self._setdata.add(item)
@@ -0,0 +1 @@
1
+ __version__ = "0.3.9"
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "oldaplib"
3
- version = "0.3.8"
3
+ version = "0.3.9"
4
4
  description = "Open Media Access Server Library (Linked Open Data middleware/RESTApi)"
5
5
  authors = ["Lukas Rosenthaler <lukas.rosenthaler@unibas.ch>"]
6
6
  license = "GNU Affero General Public License version 3"
@@ -1 +0,0 @@
1
- __version__ = "0.3.8"
File without changes
File without changes
File without changes
File without changes
File without changes