oldaplib 0.3.9__tar.gz → 0.3.10__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.9 → oldaplib-0.3.10}/PKG-INFO +1 -1
  2. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/objectfactory.py +50 -44
  3. oldaplib-0.3.10/oldaplib/src/version.py +1 -0
  4. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/test/test_objectfactory.py +3 -1
  5. {oldaplib-0.3.9 → oldaplib-0.3.10}/pyproject.toml +1 -1
  6. oldaplib-0.3.9/oldaplib/src/version.py +0 -1
  7. {oldaplib-0.3.9 → oldaplib-0.3.10}/README.md +0 -0
  8. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/__init__.py +0 -0
  9. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/apps/load_list.py +0 -0
  10. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/ontologies/admin-testing.trig +0 -0
  11. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/ontologies/admin.trig +0 -0
  12. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/ontologies/example.trig +0 -0
  13. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/ontologies/oldap.trig +0 -0
  14. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/ontologies/oldap.ttl +0 -0
  15. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/ontologies/shared.trig +0 -0
  16. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/ontologies/standard/.gitsave +0 -0
  17. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/__init__.py +0 -0
  18. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/cachesingleton.py +0 -0
  19. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/connection.py +0 -0
  20. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/datamodel.py +0 -0
  21. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/dtypes/__init__.py +0 -0
  22. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/dtypes/bnode.py +0 -0
  23. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/dtypes/languagein.py +0 -0
  24. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/dtypes/namespaceiri.py +0 -0
  25. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/dtypes/rdfset.py +0 -0
  26. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/dtypes/xsdset.py +0 -0
  27. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/enums/__init__.py +0 -0
  28. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/enums/action.py +0 -0
  29. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/enums/adminpermissions.py +0 -0
  30. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/enums/attributeclass.py +0 -0
  31. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/enums/datapermissions.py +0 -0
  32. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/enums/externalontologyattr.py +0 -0
  33. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/enums/haspropertyattr.py +0 -0
  34. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/enums/language.py +0 -0
  35. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/enums/oldaplistattr.py +0 -0
  36. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/enums/oldaplistnodeattr.py +0 -0
  37. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/enums/owlpropertytype.py +0 -0
  38. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/enums/permissionsetattr.py +0 -0
  39. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/enums/projectattr.py +0 -0
  40. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/enums/propertyclassattr.py +0 -0
  41. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/enums/resourceclassattr.py +0 -0
  42. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/enums/sparql_result_format.py +0 -0
  43. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/enums/userattr.py +0 -0
  44. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/enums/xsd_datatypes.py +0 -0
  45. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/externalontology.py +0 -0
  46. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/globalconfig.py +0 -0
  47. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/hasproperty.py +0 -0
  48. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/helpers/Notify.py +0 -0
  49. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/helpers/__init__.py +0 -0
  50. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/helpers/attributechange.py +0 -0
  51. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/helpers/context.py +0 -0
  52. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/helpers/convert2datatype.py +0 -0
  53. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/helpers/irincname.py +0 -0
  54. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/helpers/json_encoder.py +0 -0
  55. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/helpers/langstring.py +0 -0
  56. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/helpers/numeric.py +0 -0
  57. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/helpers/observable_dict.py +0 -0
  58. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/helpers/observable_set.py +0 -0
  59. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/helpers/oldaperror.py +0 -0
  60. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/helpers/query_processor.py +0 -0
  61. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/helpers/semantic_version.py +0 -0
  62. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/helpers/serializeableset.py +0 -0
  63. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/helpers/serializer.py +0 -0
  64. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/helpers/singletonmeta.py +0 -0
  65. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/helpers/tools.py +0 -0
  66. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/iconnection.py +0 -0
  67. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/in_project.py +0 -0
  68. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/model.py +0 -0
  69. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/oldaplist.py +0 -0
  70. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/oldaplist_helpers.py +0 -0
  71. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/oldaplistnode.py +0 -0
  72. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/oldaplogging.py +0 -0
  73. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/permissionset.py +0 -0
  74. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/project.py +0 -0
  75. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/propertyclass.py +0 -0
  76. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/resourceclass.py +0 -0
  77. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/user.py +0 -0
  78. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/userdataclass.py +0 -0
  79. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/__init__.py +0 -0
  80. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/floatingpoint.py +0 -0
  81. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/iri.py +0 -0
  82. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd.py +0 -0
  83. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_anyuri.py +0 -0
  84. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_base64binary.py +0 -0
  85. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_boolean.py +0 -0
  86. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_byte.py +0 -0
  87. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_date.py +0 -0
  88. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_datetime.py +0 -0
  89. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_datetimestamp.py +0 -0
  90. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_decimal.py +0 -0
  91. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_double.py +0 -0
  92. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_duration.py +0 -0
  93. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_float.py +0 -0
  94. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_gday.py +0 -0
  95. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_gmonth.py +0 -0
  96. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_gmonthday.py +0 -0
  97. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_gyear.py +0 -0
  98. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_gyearmonth.py +0 -0
  99. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_hexbinary.py +0 -0
  100. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_id.py +0 -0
  101. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_idref.py +0 -0
  102. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_int.py +0 -0
  103. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_integer.py +0 -0
  104. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_language.py +0 -0
  105. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_long.py +0 -0
  106. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_name.py +0 -0
  107. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_ncname.py +0 -0
  108. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_negativeinteger.py +0 -0
  109. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_nmtoken.py +0 -0
  110. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_nonnegativeinteger.py +0 -0
  111. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_nonpositiveinteger.py +0 -0
  112. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_normalizedstring.py +0 -0
  113. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_positiveinteger.py +0 -0
  114. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_qname.py +0 -0
  115. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_short.py +0 -0
  116. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_string.py +0 -0
  117. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_time.py +0 -0
  118. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_token.py +0 -0
  119. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_unsignedbyte.py +0 -0
  120. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_unsignedint.py +0 -0
  121. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_unsignedlong.py +0 -0
  122. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/src/xsd/xsd_unsignedshort.py +0 -0
  123. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/test/__init__.py +0 -0
  124. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/test/test_cache.py +0 -0
  125. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/test/test_connection.py +0 -0
  126. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/test/test_context.py +0 -0
  127. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/test/test_datamodel.py +0 -0
  128. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/test/test_dtypes.py +0 -0
  129. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/test/test_externalontologies.py +0 -0
  130. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/test/test_hasproperty.py +0 -0
  131. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/test/test_in_project.py +0 -0
  132. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/test/test_langstring.py +0 -0
  133. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/test/test_language_in.py +0 -0
  134. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/test/test_observable_dict.py +0 -0
  135. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/test/test_observable_set.py +0 -0
  136. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/test/test_oldaplist.py +0 -0
  137. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/test/test_oldaplist_helpers.py +0 -0
  138. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/test/test_oldaplistnode.py +0 -0
  139. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/test/test_permissionset.py +0 -0
  140. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/test/test_project.py +0 -0
  141. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/test/test_propertyclass.py +0 -0
  142. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/test/test_resourceclass.py +0 -0
  143. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/test/test_semantic_version.py +0 -0
  144. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/test/test_user.py +0 -0
  145. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/test/test_xsd_datatypes.py +0 -0
  146. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/testdata/Gender.yaml +0 -0
  147. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/testdata/collections_type.yaml +0 -0
  148. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/testdata/connection_test.trig +0 -0
  149. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/testdata/datamodel_test.trig +0 -0
  150. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/testdata/event_type.yaml +0 -0
  151. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/testdata/hlist_schema.yaml +0 -0
  152. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/testdata/institution_or_building_type.yaml +0 -0
  153. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/testdata/language.yaml +0 -0
  154. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/testdata/location_type.yaml +0 -0
  155. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/testdata/means_of_transportation.yaml +0 -0
  156. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/testdata/objectfactory_test.trig +0 -0
  157. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/testdata/playground_list.yaml +0 -0
  158. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/testdata/role.yaml +0 -0
  159. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/testdata/source_type-1.yaml +0 -0
  160. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/testdata/source_type.yaml +0 -0
  161. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/testdata/test_move_left_of_toL.yaml +0 -0
  162. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/testdata/testlist.yaml +0 -0
  163. {oldaplib-0.3.9 → oldaplib-0.3.10}/oldaplib/testit.http +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: oldaplib
3
- Version: 0.3.9
3
+ Version: 0.3.10
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
@@ -443,33 +443,24 @@ class ResourceInstance:
443
443
 
444
444
  def get_data_permission(self, context: Context, permission: DataPermission) -> bool:
445
445
  permission_query = context.sparql_context
446
- # language=sparql
447
446
  permission_query += f'''
448
- SELECT (COUNT(?permset) as ?numOfPermsets)
449
- FROM oldap:onto
450
- FROM shared:onto
451
- FROM {self._graph}:onto
452
- FROM NAMED oldap:admin
453
- FROM NAMED {self._graph}:data
454
- WHERE {{
455
- BIND({self._iri.toRdf} as ?iri)
447
+ ASK {{
456
448
  GRAPH {self._graph}:data {{
457
- ?iri oldap:grantsPermission ?permset .
449
+ {self._iri.toRdf} oldap:grantsPermission ?permset .
458
450
  }}
459
- BIND({self._con.userIri.toRdf} as ?user)
460
451
  GRAPH oldap:admin {{
461
- ?user oldap:hasPermissions ?permset .
452
+ {self._con.userIri.toRdf} oldap:hasPermissions ?permset .
462
453
  ?permset oldap:givesPermission ?DataPermission .
463
454
  ?DataPermission oldap:permissionValue ?permval .
464
455
  }}
465
456
  FILTER(?permval >= {permission.numeric.toRdf})
466
457
  }}'''
458
+
467
459
  if self._con.in_transaction():
468
- jsonobj = self._con.transaction_query(permission_query)
460
+ result = self._con.transaction_query(permission_query)
469
461
  else:
470
- jsonobj = self._con.query(permission_query)
471
- res = QueryProcessor(context, jsonobj)
472
- return res[0]['numOfPermsets'] > 0
462
+ result = self._con.query(permission_query)
463
+ return result['boolean']
473
464
 
474
465
  def create(self, indent: int = 0, indent_inc: int = 4) -> str:
475
466
  result, message = self.check_for_permissions(AdminPermission.ADMIN_CREATE)
@@ -707,12 +698,13 @@ class ResourceInstance:
707
698
 
708
699
  context = Context(name=self._con.context_name)
709
700
  inuse = context.sparql_context
710
- inuse = f'''
711
- SELECT (COUNT(?res) as ?nres)
712
- WHERE {{
713
- ?res ?prop {self._iri.toRdf} .
701
+ inuse += f"""
702
+ ASK {{
703
+ GRAPH ?g {{
704
+ ?res ?prop {self._iri.toRdf} .
705
+ }}
714
706
  }}
715
- '''
707
+ """
716
708
 
717
709
  context = Context(name=self._con.context_name)
718
710
  sparql = context.sparql_context
@@ -730,9 +722,8 @@ class ResourceInstance:
730
722
  self._con.transaction_abort()
731
723
  raise OldapErrorNoPermission(f'No permission to update resource "{self._iri}"')
732
724
  try:
733
- jsonobj = self._con.transaction_query(inuse)
734
- res = QueryProcessor(context, jsonobj)
735
- if res[0]['nres'] > 0:
725
+ result = self._con.transaction_query(inuse)
726
+ if result['boolean']:
736
727
  raise OldapErrorInUse(f'Resource "{self._iri}" is in use and cannot be deleted.')
737
728
  except OldapError:
738
729
  self._con.transaction_abort()
@@ -791,9 +782,6 @@ class ResourceInstanceFactory:
791
782
 
792
783
  self._datamodel = DataModel.read(con=self._con, project=self._project, ignore_cache=True)
793
784
 
794
- #self._oldap_project = Project.read(self._con, "oldap")
795
- #self._oldap_datamodel = DataModel.read(con=self._con, project=self._oldap_project)
796
-
797
785
  def createObjectInstance(self, name: Xsd_NCName | str) -> Type: ## ToDo: Get name automatically from IRI
798
786
  classiri = Xsd_QName(self._project.projectShortName, name)
799
787
  resclass = self._datamodel.get(classiri)
@@ -849,7 +837,6 @@ class ResourceInstanceFactory:
849
837
  raise OldapErrorNotFound(f'Resource with iri <{iri}> not found.')
850
838
  return data
851
839
 
852
-
853
840
  def read(self, iri: Iri | str) -> ResourceInstance:
854
841
  if not isinstance(iri, Iri):
855
842
  iri = Iri(iri, validate=True)
@@ -901,9 +888,18 @@ class ResourceInstanceFactory:
901
888
  Instance = self.createObjectInstance(objtype)
902
889
  return Instance(iri=iri, **kwargs)
903
890
 
904
- def search_fulltext(self, s: str, count_only: bool = False, limit: int = 100, offset: int = 0) -> int | dict[Iri, dict[str, Xsd]]:
905
- graph = self._project.projectShortName
906
- context = Context(name=self._con.context_name)
891
+ @staticmethod
892
+ def search_fulltext(con: IConnection,
893
+ projectShortName: Xsd_NCName | str,
894
+ s: str,
895
+ count_only: bool = False,
896
+ limit: int = 100,
897
+ offset: int = 0) -> int | dict[Iri, dict[str, Xsd]]:
898
+ if not isinstance(projectShortName, Xsd_NCName):
899
+ graph = Xsd_NCName(projectShortName)
900
+ else:
901
+ graph = projectShortName
902
+ context = Context(name=con.context_name)
907
903
  sparql = context.sparql_context
908
904
  if (count_only):
909
905
  sparql += "SELECT (COUNT(DISTINCT ?s) as ?numResult)"
@@ -920,7 +916,7 @@ class ResourceInstanceFactory:
920
916
  (datatype(?o) = xsd:string || datatype(?o) = rdf:langString || lang(?o) != ""))
921
917
  FILTER(CONTAINS(LCASE(STR(?o)), "{s}")) # case-insensitive substring match
922
918
  GRAPH oldap:admin {{
923
- {self._con.userIri.toRdf} oldap:hasPermissions ?permset .
919
+ {con.userIri.toRdf} oldap:hasPermissions ?permset .
924
920
  ?permset oldap:givesPermission ?DataPermission .
925
921
  ?DataPermission oldap:permissionValue ?permval .
926
922
  }}
@@ -929,21 +925,31 @@ class ResourceInstanceFactory:
929
925
  '''
930
926
  if not count_only:
931
927
  sparql += f'LIMIT {limit} OFFSET {offset}'
932
- jsonres = self._con.query(sparql)
928
+ try:
929
+ jsonres = con.query(sparql)
930
+ except OldapError:
931
+ print(sparql)
932
+ raise
933
933
  res = QueryProcessor(context, jsonres)
934
934
  if count_only:
935
- if isinstance(res[0]['numResult'], Xsd_integer):
936
- tmp = cast(Xsd_integer, res[0]['numResult'])
937
- return int(tmp)
938
- else:
939
- raise OldapErrorInconsistency(f'Expected integer as value, got "{res[0]["numResult"]}"')
935
+ return res[0]['numResult']
940
936
  else:
941
- result: dict[Iri, dict[str, Xsd]] = {}
942
- for r in res:
943
- iri = cast(Iri, r['s'])
944
- resclass = cast(Iri, r['t'])
945
- result[iri] = {'resclass': resclass, 'property': r['p'], 'value': r['o']}
946
- return result
937
+ return {Iri(r['s']): {r['p']: r['o']} for r in res}
938
+ # jsonres = con.query(sparql)
939
+ # res = QueryProcessor(context, jsonres)
940
+ # if count_only:
941
+ # if isinstance(res[0]['numResult'], Xsd_integer):
942
+ # tmp = cast(Xsd_integer, res[0]['numResult'])
943
+ # return int(tmp)
944
+ # else:
945
+ # raise OldapErrorInconsistency(f'Expected integer as value, got "{res[0]["numResult"]}"')
946
+ # else:
947
+ # result: dict[Iri, dict[str, Xsd]] = {}
948
+ # for r in res:
949
+ # iri = cast(Iri, r['s'])
950
+ # resclass = cast(Iri, r['t'])
951
+ # result[iri] = {'resclass': resclass, 'property': r['p'], 'value': r['o']}
952
+ # return result
947
953
 
948
954
 
949
955
 
@@ -0,0 +1 @@
1
+ __version__ = "0.3.10"
@@ -645,7 +645,9 @@ class TestObjectFactory(unittest.TestCase):
645
645
  pubDate="1995-09-27",
646
646
  grantsPermission=Iri('oldap:GenericView'))
647
647
  b.create()
648
- res = factory.search_fulltext('tales')
648
+ res = ResourceInstanceFactory.search_fulltext(con=self._connection,
649
+ projectShortName='test',
650
+ s='tales')
649
651
 
650
652
  for x, y in res.items():
651
653
  print(x, y)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "oldaplib"
3
- version = "0.3.9"
3
+ version = "0.3.10"
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.9"
File without changes
File without changes
File without changes
File without changes