oarepo-runtime 2.0.0.dev57__tar.gz → 2.0.0.dev59__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 (53) hide show
  1. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/PKG-INFO +2 -1
  2. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/__init__.py +1 -1
  3. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/services/config/__init__.py +2 -0
  4. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/services/config/link_conditions.py +17 -0
  5. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/pyproject.toml +1 -0
  6. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/.gitignore +0 -0
  7. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/LICENSE +0 -0
  8. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/README.md +0 -0
  9. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/api.py +0 -0
  10. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/cli/__init__.py +0 -0
  11. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/cli/search.py +0 -0
  12. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/config.py +0 -0
  13. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/ext.py +0 -0
  14. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/info/__init__.py +0 -0
  15. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/info/views.py +0 -0
  16. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/proxies.py +0 -0
  17. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/py.typed +0 -0
  18. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/records/__init__.py +0 -0
  19. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/records/drafts.py +0 -0
  20. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/records/mapping.py +0 -0
  21. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/records/pid_providers.py +0 -0
  22. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/records/systemfields/__init__.py +0 -0
  23. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/records/systemfields/base.py +0 -0
  24. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/records/systemfields/custom_fields.py +0 -0
  25. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/records/systemfields/mapping.py +0 -0
  26. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/records/systemfields/publication_status.py +0 -0
  27. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/records/systemfields/relations.py +0 -0
  28. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/records/systemfields/selectors.py +0 -0
  29. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/resources/__init__.py +0 -0
  30. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/resources/config.py +0 -0
  31. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/resources/signposting/__init__.py +0 -0
  32. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/services/__init__.py +0 -0
  33. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/services/config/components.py +0 -0
  34. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/services/config/permissions.py +0 -0
  35. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/services/facets/__init__.py +0 -0
  36. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/services/facets/base.py +0 -0
  37. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/services/facets/date.py +0 -0
  38. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/services/facets/nested_facet.py +0 -0
  39. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/services/facets/params.py +0 -0
  40. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/services/facets/utils.py +0 -0
  41. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/services/generators.py +0 -0
  42. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/services/queryparsers/__init__.py +0 -0
  43. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/services/queryparsers/transformer.py +0 -0
  44. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/services/records/__init__.py +0 -0
  45. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/services/records/custom_fields.py +0 -0
  46. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/services/records/links.py +0 -0
  47. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/services/records/mapping.py +0 -0
  48. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/services/results.py +0 -0
  49. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/services/schema/__init__.py +0 -0
  50. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/services/schema/i18n.py +0 -0
  51. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/services/schema/i18n_ui.py +0 -0
  52. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/services/schema/ui.py +0 -0
  53. {oarepo_runtime-2.0.0.dev57 → oarepo_runtime-2.0.0.dev59}/oarepo_runtime/typing.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: oarepo-runtime
3
- Version: 2.0.0.dev57
3
+ Version: 2.0.0.dev59
4
4
  Summary: A set of runtime extensions of Invenio repository
5
5
  Project-URL: Homepage, https://github.com/oarepo/oarepo-runtime
6
6
  License-Expression: MIT
@@ -9,6 +9,7 @@ Requires-Python: <3.15,>=3.13
9
9
  Requires-Dist: langcodes>=3.5.0
10
10
  Requires-Dist: oarepo-invenio-typing-stubs>=0.1.0
11
11
  Requires-Dist: oarepo[rdm,tests]<15,>=14
12
+ Requires-Dist: setuptools<82.0.0
12
13
  Requires-Dist: signposting>=0.9.9
13
14
  Provides-Extra: dev
14
15
  Requires-Dist: pytest>=7.1.2; extra == 'dev'
@@ -19,6 +19,6 @@ from .api import Model
19
19
  from .ext import OARepoRuntime
20
20
  from .proxies import current_runtime
21
21
 
22
- __version__ = "2.0.0dev57"
22
+ __version__ = "2.0.0dev59"
23
23
 
24
24
  __all__ = ("Model", "OARepoRuntime", "__version__", "current_runtime")
@@ -15,6 +15,7 @@ from .link_conditions import (
15
15
  has_draft_permission,
16
16
  has_permission,
17
17
  has_published_record,
18
+ is_draft,
18
19
  is_published_record,
19
20
  )
20
21
  from .permissions import EveryonePermissionPolicy
@@ -25,5 +26,6 @@ __all__ = (
25
26
  "has_draft_permission",
26
27
  "has_permission",
27
28
  "has_published_record",
29
+ "is_draft",
28
30
  "is_published_record",
29
31
  )
@@ -51,6 +51,14 @@ class Condition:
51
51
  {"__call__": lambda _, obj, ctx: self(obj, ctx) or other(obj, ctx)},
52
52
  )()
53
53
 
54
+ def __invert__(self):
55
+ """Negate the condition using a logical NOT."""
56
+ return type(
57
+ "Not",
58
+ (Condition,),
59
+ {"__call__": lambda _, obj, ctx: not self(obj, ctx)},
60
+ )()
61
+
54
62
 
55
63
  class has_permission(Condition): # noqa: N801
56
64
  """A condition to check if a user has the specified permission for a given record."""
@@ -121,3 +129,12 @@ class is_published_record(Condition): # noqa: N801
121
129
  """Check if the given record is draft."""
122
130
  _ = ctx
123
131
  return not getattr(obj, "is_draft", False)
132
+
133
+
134
+ class is_draft(Condition): # noqa: N801
135
+ """Shortcut for links to determine if record is a draft."""
136
+
137
+ def __call__(self, obj: RecordBase, ctx: dict):
138
+ """Check if the given record is draft."""
139
+ _ = ctx
140
+ return getattr(obj, "is_draft", False)
@@ -9,6 +9,7 @@ description = "A set of runtime extensions of Invenio repository"
9
9
  readme = "README.md"
10
10
  license = "MIT"
11
11
  dependencies = [
12
+ "setuptools<82.0.0",
12
13
  "oarepo[rdm,tests]>=14,<15",
13
14
  "langcodes>=3.5.0",
14
15
  "oarepo-invenio-typing-stubs>=0.1.0", # dependency on Descriptor for typed system fields