wordlift-sdk 2.10.3__tar.gz → 2.11.0__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 (168) hide show
  1. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/PKG-INFO +5 -2
  2. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/README.md +4 -1
  3. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/pyproject.toml +1 -1
  4. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/generator.py +49 -3
  5. wordlift_sdk-2.11.0/wordlift_sdk/validation/shacls/google-carousel.ttl +40 -0
  6. wordlift_sdk-2.10.3/wordlift_sdk/validation/shacls/google-carousel.ttl +0 -37
  7. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/__init__.py +0 -0
  8. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/client/__init__.py +0 -0
  9. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/client/client_configuration_factory.py +0 -0
  10. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/configuration/__init__.py +0 -0
  11. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/configuration/configuration_provider.py +0 -0
  12. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/configuration/get_config_value.py +0 -0
  13. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/container/__init__.py +0 -0
  14. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/container/application_container.py +0 -0
  15. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/deprecated/__init__.py +0 -0
  16. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/deprecated/create_entities_with_top_query_dataframe.py +0 -0
  17. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/entity/__init__.py +0 -0
  18. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/entity/enrich.py +0 -0
  19. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/entity/patch.py +0 -0
  20. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/google_search_console/__init__.py +0 -0
  21. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/google_search_console/create_google_search_console_data_import.py +0 -0
  22. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/google_search_console/raise_error_if_account_analytics_not_configured.py +0 -0
  23. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/google_sheets/__init__.py +0 -0
  24. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/google_sheets/google_sheets_lookup.py +0 -0
  25. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/graph/graph_bag.py +0 -0
  26. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/graph/ttl_liquid/__init__.py +0 -0
  27. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/graph/ttl_liquid/ttl_liquid_graph_factory.py +0 -0
  28. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/graphql/__init__.py +0 -0
  29. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/graphql/client/__init__.py +0 -0
  30. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/graphql/client/client.py +0 -0
  31. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/graphql/client/factory.py +0 -0
  32. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/graphql/client/gql_client_provider.py +0 -0
  33. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/graphql/data/entities_by_type.graphql +0 -0
  34. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/graphql/data/entities_embedding_value.graphql +0 -0
  35. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/graphql/data/entities_top_query.graphql +0 -0
  36. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/graphql/data/entities_url_id.graphql +0 -0
  37. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/graphql/data/entities_url_iri.graphql +0 -0
  38. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/graphql/data/entities_url_iri_with_source_equal_to_web_page_import.graphql +0 -0
  39. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/graphql/query.py +0 -0
  40. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/graphql/utils/__init__.py +0 -0
  41. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/graphql/utils/query/__init__.py +0 -0
  42. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/graphql/utils/query/entity_top_query.py +0 -0
  43. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/graphql/utils/query/entity_with_top_query.py +0 -0
  44. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/id_generator/__init__.py +0 -0
  45. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/id_generator/id_generator.py +0 -0
  46. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/id_generator/id_generator_interface.py +0 -0
  47. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/internal_link/__init__.py +0 -0
  48. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/internal_link/utils.py +0 -0
  49. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/kg/__init__.py +0 -0
  50. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/kg/entity.py +0 -0
  51. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/kg/entity_store.py +0 -0
  52. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/kg/entity_store_factory.py +0 -0
  53. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/kg/relation/__init__.py +0 -0
  54. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/kg/relation/relation_service.py +0 -0
  55. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/main.py +0 -0
  56. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/namespace/SDO.py +0 -0
  57. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/namespace/__init__.py +0 -0
  58. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/notebook/__init__.py +0 -0
  59. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/notebook/install_if_missing.py +0 -0
  60. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/protocol/__init__.py +0 -0
  61. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/protocol/context.py +0 -0
  62. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/protocol/entity_patch/__init__.py +0 -0
  63. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/protocol/entity_patch/entity_patch.py +0 -0
  64. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/protocol/entity_patch/entity_patch_queue.py +0 -0
  65. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/protocol/graph/__init__.py +0 -0
  66. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/protocol/graph/graph_queue.py +0 -0
  67. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/protocol/load_override_class.py +0 -0
  68. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/protocol/web_page_import_protocol.py +0 -0
  69. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/render/__init__.py +0 -0
  70. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/render/browser.py +0 -0
  71. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/render/cleanup_options.py +0 -0
  72. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/render/html_renderer.py +0 -0
  73. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/render/render_options.py +0 -0
  74. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/render/rendered_page.py +0 -0
  75. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/render/xhtml_cleaner.py +0 -0
  76. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/structured_data/__init__.py +0 -0
  77. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/structured_data/agent.py +0 -0
  78. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/structured_data/agent_generator.py +0 -0
  79. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/structured_data/batch.py +0 -0
  80. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/structured_data/constants.py +0 -0
  81. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/structured_data/dataset_resolver.py +0 -0
  82. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/structured_data/debug.py +0 -0
  83. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/structured_data/engine.py +0 -0
  84. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/structured_data/inputs.py +0 -0
  85. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/structured_data/io.py +0 -0
  86. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/structured_data/materialization.py +0 -0
  87. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/structured_data/models.py +0 -0
  88. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/structured_data/orchestrator.py +0 -0
  89. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/structured_data/rendering.py +0 -0
  90. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/structured_data/schema_guide.py +0 -0
  91. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/structured_data/structured_data_engine.py +0 -0
  92. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/structured_data/validation.py +0 -0
  93. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/structured_data/yarrrml_pipeline.py +0 -0
  94. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/url_source/__init__.py +0 -0
  95. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/url_source/google_sheets_url_source.py +0 -0
  96. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/url_source/list_url_source.py +0 -0
  97. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/url_source/new_or_changed_url_source.py +0 -0
  98. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/url_source/sitemap_url_source.py +0 -0
  99. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/url_source/url_source.py +0 -0
  100. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/url_source/url_source_input.py +0 -0
  101. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/utils/__init__.py +0 -0
  102. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/utils/create_dataframe_from_google_sheets.py +0 -0
  103. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/utils/create_dataframe_of_entities_by_types.py +0 -0
  104. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/utils/create_dataframe_of_entities_with_embedding_vectors.py +0 -0
  105. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/utils/create_dataframe_of_url_iri.py +0 -0
  106. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/utils/create_entity_patch_request.py +0 -0
  107. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/utils/delayed.py +0 -0
  108. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/utils/get_me.py +0 -0
  109. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/utils/html_converter.py +0 -0
  110. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/utils/import_url.py +0 -0
  111. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/__init__.py +0 -0
  112. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacl.py +0 -0
  113. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/__init__.py +0 -0
  114. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-article.ttl +0 -0
  115. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-book.ttl +0 -0
  116. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-breadcrumb.ttl +0 -0
  117. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-carousels-beta.ttl +0 -0
  118. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-course.ttl +0 -0
  119. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-dataset.ttl +0 -0
  120. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-discussion-forum.ttl +0 -0
  121. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-education-qa.ttl +0 -0
  122. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-employer-rating.ttl +0 -0
  123. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-event.ttl +0 -0
  124. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-factcheck.ttl +0 -0
  125. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-faqpage.ttl +0 -0
  126. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-image-license-metadata.ttl +0 -0
  127. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-job-posting.ttl +0 -0
  128. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-local-business.ttl +0 -0
  129. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-loyalty-program.ttl +0 -0
  130. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-math-solvers.ttl +0 -0
  131. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-merchant-listing.ttl +0 -0
  132. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-movie.ttl +0 -0
  133. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-organization.ttl +0 -0
  134. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-paywalled-content.ttl +0 -0
  135. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-product-snippet.ttl +0 -0
  136. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-product-variants.ttl +0 -0
  137. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-profile-page.ttl +0 -0
  138. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-qapage.ttl +0 -0
  139. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-recipe.ttl +0 -0
  140. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-return-policy.ttl +0 -0
  141. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-review-snippet.ttl +0 -0
  142. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-shipping-policy.ttl +0 -0
  143. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-software-app.ttl +0 -0
  144. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-speakable.ttl +0 -0
  145. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-vacation-rental.ttl +0 -0
  146. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/google-video.ttl +0 -0
  147. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/validation/shacls/schemaorg-grammar.ttl +0 -0
  148. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/wordlift/__init__.py +0 -0
  149. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/wordlift/entity_gaps/__init__.py +0 -0
  150. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/wordlift/entity_gaps/create_entity_gaps_factory.py +0 -0
  151. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/wordlift/entity_gaps/entity_gaps_callback.py +0 -0
  152. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/wordlift/sitemap_import/__init__.py +0 -0
  153. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/wordlift/sitemap_import/protocol/__init__.py +0 -0
  154. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/wordlift/sitemap_import/protocol/default/__init__.py +0 -0
  155. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/wordlift/sitemap_import/protocol/default/default_import_url_protocol.py +0 -0
  156. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/wordlift/sitemap_import/protocol/default/default_parse_html_protocol.py +0 -0
  157. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/wordlift/sitemap_import/protocol/import_url_protocol_interface.py +0 -0
  158. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/wordlift/sitemap_import/protocol/parse_html_protocol_interface.py +0 -0
  159. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/wordlift/sitemap_import/protocol/protocol_context.py +0 -0
  160. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/workflow/__init__.py +0 -0
  161. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/workflow/create_or_update_entities_factory.py +0 -0
  162. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/workflow/kg_import_workflow.py +0 -0
  163. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/workflow/patch_entities_factory.py +0 -0
  164. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/workflow/url_handler/__init__.py +0 -0
  165. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/workflow/url_handler/default_url_handler.py +0 -0
  166. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/workflow/url_handler/search_console_url_handler.py +0 -0
  167. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/workflow/url_handler/url_handler.py +0 -0
  168. {wordlift_sdk-2.10.3 → wordlift_sdk-2.11.0}/wordlift_sdk/workflow/url_handler/web_page_import_url_handler.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wordlift-sdk
3
- Version: 2.10.3
3
+ Version: 2.11.0
4
4
  Summary:
5
5
  Author: David Riccitelli
6
6
  Author-email: david@wordlift.io
@@ -118,6 +118,10 @@ Override the web page import callback by placing `web_page_import_protocol.py` w
118
118
 
119
119
  Add `.ttl.liquid` files under `data/templates`. Templates render with `account` fields available (e.g., `{{ account.dataset_uri }}`) and are uploaded before URL handling begins.
120
120
 
121
+ ## Validation
122
+
123
+ SHACL validation utilities and generated Google Search Gallery shapes are included. Carousel `ListItem` requirements are scoped under `ItemList` when both types are present to avoid enforcing carousel constraints on non-carousel lists (for example, `BreadcrumbList`).
124
+
121
125
  ## Testing
122
126
 
123
127
  ```bash
@@ -129,4 +133,3 @@ poetry run pytest
129
133
 
130
134
  - [Google Sheets Lookup](docs/google_sheets_lookup.md): Utility for O(1) lookups from Google Sheets.
131
135
 
132
-
@@ -90,6 +90,10 @@ Override the web page import callback by placing `web_page_import_protocol.py` w
90
90
 
91
91
  Add `.ttl.liquid` files under `data/templates`. Templates render with `account` fields available (e.g., `{{ account.dataset_uri }}`) and are uploaded before URL handling begins.
92
92
 
93
+ ## Validation
94
+
95
+ SHACL validation utilities and generated Google Search Gallery shapes are included. Carousel `ListItem` requirements are scoped under `ItemList` when both types are present to avoid enforcing carousel constraints on non-carousel lists (for example, `BreadcrumbList`).
96
+
93
97
  ## Testing
94
98
 
95
99
  ```bash
@@ -100,4 +104,3 @@ poetry run pytest
100
104
  ## Documentation
101
105
 
102
106
  - [Google Sheets Lookup](docs/google_sheets_lookup.md): Utility for O(1) lookups from Google Sheets.
103
-
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "wordlift-sdk"
3
- version = "2.10.3"
3
+ version = "2.11.0"
4
4
  description = ""
5
5
  authors = ["David Riccitelli <david@wordlift.io>"]
6
6
  readme = "README.md"
@@ -6,7 +6,7 @@ import argparse
6
6
  import html as html_lib
7
7
  import re
8
8
  from dataclasses import dataclass
9
- from datetime import datetime
9
+ from datetime import datetime, timezone
10
10
  from pathlib import Path
11
11
  from typing import Iterable
12
12
 
@@ -173,6 +173,10 @@ def _write_feature(feature: FeatureData, output_path: Path, overwrite: bool) ->
173
173
  if output_path.exists() and not overwrite:
174
174
  return False
175
175
 
176
+ scoped_list_item = None
177
+ if "ItemList" in feature.types and "ListItem" in feature.types:
178
+ scoped_list_item = feature.types["ListItem"]
179
+
176
180
  lines: list[str] = []
177
181
  slug = output_path.stem
178
182
  prefix_base = f"https://wordlift.io/shacl/google/{slug}/"
@@ -181,13 +185,17 @@ def _write_feature(feature: FeatureData, output_path: Path, overwrite: bool) ->
181
185
  lines.append("@prefix schema: <http://schema.org/> .")
182
186
  lines.append("")
183
187
  lines.append(f"# Source: {feature.url}")
184
- lines.append(f"# Generated: {datetime.utcnow().isoformat(timespec='seconds')}Z")
188
+ lines.append(
189
+ f"# Generated: {datetime.now(timezone.utc).isoformat(timespec='seconds')}Z"
190
+ )
185
191
  lines.append(
186
192
  "# Notes: required properties => errors; recommended properties => warnings."
187
193
  )
188
194
  lines.append("")
189
195
 
190
196
  for type_name in sorted(feature.types.keys()):
197
+ if scoped_list_item and type_name == "ListItem":
198
+ continue
191
199
  bucket = feature.types[type_name]
192
200
  shape_name = f":google_{type_name}Shape"
193
201
  lines.append(shape_name)
@@ -195,6 +203,36 @@ def _write_feature(feature: FeatureData, output_path: Path, overwrite: bool) ->
195
203
  lines.append(f" sh:targetClass schema:{type_name} ;")
196
204
 
197
205
  for prop in sorted(bucket["required"]):
206
+ if (
207
+ scoped_list_item
208
+ and type_name == "ItemList"
209
+ and prop == "itemListElement"
210
+ ):
211
+ lines.append(" sh:property [")
212
+ lines.append(" sh:path schema:itemListElement ;")
213
+ lines.append(" sh:minCount 1 ;")
214
+ lines.append(" sh:node [")
215
+ lines.append(" a sh:NodeShape ;")
216
+ lines.append(" sh:class schema:ListItem ;")
217
+ for item_prop in sorted(scoped_list_item["required"]):
218
+ item_path = _prop_path(item_prop)
219
+ lines.append(" sh:property [")
220
+ lines.append(f" sh:path {item_path} ;")
221
+ lines.append(" sh:minCount 1 ;")
222
+ lines.append(" ] ;")
223
+ for item_prop in sorted(scoped_list_item["recommended"]):
224
+ item_path = _prop_path(item_prop)
225
+ lines.append(" sh:property [")
226
+ lines.append(f" sh:path {item_path} ;")
227
+ lines.append(" sh:minCount 1 ;")
228
+ lines.append(" sh:severity sh:Warning ;")
229
+ lines.append(
230
+ f' sh:message "Recommended by Google: {item_prop}." ;'
231
+ )
232
+ lines.append(" ] ;")
233
+ lines.append(" ] ;")
234
+ lines.append(" ] ;")
235
+ continue
198
236
  path = _prop_path(prop)
199
237
  lines.append(" sh:property [")
200
238
  lines.append(f" sh:path {path} ;")
@@ -202,6 +240,12 @@ def _write_feature(feature: FeatureData, output_path: Path, overwrite: bool) ->
202
240
  lines.append(" ] ;")
203
241
 
204
242
  for prop in sorted(bucket["recommended"]):
243
+ if (
244
+ scoped_list_item
245
+ and type_name == "ItemList"
246
+ and prop == "itemListElement"
247
+ ):
248
+ continue
205
249
  path = _prop_path(prop)
206
250
  lines.append(" sh:property [")
207
251
  lines.append(f" sh:path {path} ;")
@@ -381,7 +425,9 @@ def generate_schema_shacls(output_file: Path, overwrite: bool) -> int:
381
425
  lines.append(f"@prefix schema: <{SCHEMA_DATA}> .")
382
426
  lines.append("")
383
427
  lines.append(f"# Source: {SCHEMA_JSONLD_URL}")
384
- lines.append(f"# Generated: {datetime.utcnow().isoformat(timespec='seconds')}Z")
428
+ lines.append(
429
+ f"# Generated: {datetime.now(timezone.utc).isoformat(timespec='seconds')}Z"
430
+ )
385
431
  lines.append(
386
432
  "# Notes: schema.org grammar checks only; all constraints are warnings."
387
433
  )
@@ -0,0 +1,40 @@
1
+ @prefix : <https://wordlift.io/shacl/google/google-carousel/> .
2
+ @prefix sh: <http://www.w3.org/ns/shacl#> .
3
+ @prefix schema: <http://schema.org/> .
4
+
5
+ # Source: https://developers.google.com/search/docs/appearance/structured-data/carousel
6
+ # Generated: 2026-02-04T18:12:24+00:00Z
7
+ # Notes: required properties => errors; recommended properties => warnings.
8
+
9
+ :google_ItemListShape
10
+ a sh:NodeShape ;
11
+ sh:targetClass schema:ItemList ;
12
+ sh:property [
13
+ sh:path schema:itemListElement ;
14
+ sh:minCount 1 ;
15
+ sh:node [
16
+ a sh:NodeShape ;
17
+ sh:class schema:ListItem ;
18
+ sh:property [
19
+ sh:path schema:item ;
20
+ sh:minCount 1 ;
21
+ ] ;
22
+ sh:property [
23
+ sh:path ( schema:item schema:name ) ;
24
+ sh:minCount 1 ;
25
+ ] ;
26
+ sh:property [
27
+ sh:path ( schema:item schema:url ) ;
28
+ sh:minCount 1 ;
29
+ ] ;
30
+ sh:property [
31
+ sh:path schema:position ;
32
+ sh:minCount 1 ;
33
+ ] ;
34
+ sh:property [
35
+ sh:path schema:url ;
36
+ sh:minCount 1 ;
37
+ ] ;
38
+ ] ;
39
+ ] ;
40
+ .
@@ -1,37 +0,0 @@
1
- @prefix : <https://wordlift.io/shacl/google/google-carousel/> .
2
- @prefix sh: <http://www.w3.org/ns/shacl#> .
3
- @prefix schema: <http://schema.org/> .
4
-
5
- # Source: https://developers.google.com/search/docs/appearance/structured-data/carousel
6
- # Generated: 2026-01-13T11:23:16Z
7
- # Notes: required properties => errors; recommended properties => warnings.
8
-
9
- :google_ItemListShape
10
- a sh:NodeShape ;
11
- sh:targetClass schema:ItemList ;
12
- sh:property [
13
- sh:path schema:itemListElement ;
14
- sh:minCount 1 ;
15
- ] ;
16
- .
17
-
18
- :google_ListItemShape
19
- a sh:NodeShape ;
20
- sh:targetClass schema:ListItem ;
21
- sh:property [
22
- sh:path schema:item ;
23
- sh:minCount 1 ;
24
- ] ;
25
- sh:property [
26
- sh:path schema:name ;
27
- sh:minCount 1 ;
28
- ] ;
29
- sh:property [
30
- sh:path schema:position ;
31
- sh:minCount 1 ;
32
- ] ;
33
- sh:property [
34
- sh:path schema:url ;
35
- sh:minCount 1 ;
36
- ] ;
37
- .