mirror of
https://github.com/Cian-H/invenio-theme-iform.git
synced 2025-12-23 05:01:58 +00:00
Compare commits
11 Commits
2025.5.20.
...
2025.6.6.1
| Author | SHA1 | Date | |
|---|---|---|---|
| 56d5d223f3 | |||
| c14168c194 | |||
| 5b71404fda | |||
| 926196b30f | |||
| e74d2017fc | |||
| ef1f268298 | |||
| af61f927f1 | |||
| d5b9686302 | |||
| c5bd3d138e | |||
| d5f63f4387 | |||
| f7d0aa1bcf |
29
.github/dependabot.yml
vendored
Normal file
29
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
- package-ecosystem: "uv"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: "weekly"
|
||||||
|
day: "monday"
|
||||||
|
time: "04:00"
|
||||||
|
open-pull-requests-limit: 8
|
||||||
|
allow:
|
||||||
|
- dependency-type: "all"
|
||||||
|
reviewers:
|
||||||
|
- "Cian-H"
|
||||||
|
assignees:
|
||||||
|
- "Cian-H"
|
||||||
|
commit-message:
|
||||||
|
prefix: "uv-deps"
|
||||||
|
prefix-development: "uv-deps-dev"
|
||||||
|
include: "scope"
|
||||||
|
|
||||||
|
- package-ecosystem: "github-actions"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: "weekly"
|
||||||
|
day: "monday"
|
||||||
|
time: "04:00"
|
||||||
|
open-pull-requests-limit: 5
|
||||||
|
commit-message:
|
||||||
|
prefix: "ci"
|
||||||
@@ -8,4 +8,4 @@
|
|||||||
|
|
||||||
"""Metadata for this python module."""
|
"""Metadata for this python module."""
|
||||||
|
|
||||||
__version__ = "2025.5.20.7"
|
__version__ = "2025.6.6.1"
|
||||||
|
|||||||
@@ -106,7 +106,9 @@ DEPOSITS_HEADER_TEMPLATE = "invenio_theme_iform/header.html"
|
|||||||
# SEARCH_UI_SEARCH_TEMPLATE = "invenio_theme_iform/search.html"
|
# SEARCH_UI_SEARCH_TEMPLATE = "invenio_theme_iform/search.html"
|
||||||
# """override the default search page"""
|
# """override the default search page"""
|
||||||
|
|
||||||
IFORM_ROUTES = {
|
THEME_IFORM_ROUTES = {
|
||||||
"index": "/",
|
"index": "/",
|
||||||
"comingsoon": "/comingsoon",
|
"comingsoon": "/comingsoon",
|
||||||
|
"records-search": "/records/search",
|
||||||
|
"overview": "/me/overview",
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
"""invenio module for I-Form theme."""
|
"""invenio module for I-Form theme."""
|
||||||
|
|
||||||
|
from flask import g, has_request_context
|
||||||
from flask_login import login_required
|
from flask_login import login_required
|
||||||
from invenio_records_marc21.ui.theme import current_identity_can_view
|
from invenio_records_marc21.ui.theme import current_identity_can_view
|
||||||
|
|
||||||
@@ -34,7 +35,16 @@ class InvenioThemeIform(object):
|
|||||||
|
|
||||||
@app.context_processor
|
@app.context_processor
|
||||||
def inject_visibility():
|
def inject_visibility():
|
||||||
return {"can_view_marc21": current_identity_can_view()}
|
def can_view_marc21():
|
||||||
|
try:
|
||||||
|
# Only check if we're in a request context and identity exists
|
||||||
|
if has_request_context() and hasattr(g, "identity") and g.identity:
|
||||||
|
return current_identity_can_view()
|
||||||
|
return False
|
||||||
|
except (AttributeError, RuntimeError):
|
||||||
|
return False
|
||||||
|
|
||||||
|
return {"can_view_marc21": can_view_marc21()}
|
||||||
|
|
||||||
app.extensions["invenio-theme-iform"] = self
|
app.extensions["invenio-theme-iform"] = self
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
<title>{{ title }}</title>
|
<title>{{ title }}</title>
|
||||||
{%- endblock head_title %}
|
{%- endblock head_title %}
|
||||||
{%- block head_links %}
|
{%- block head_links %}
|
||||||
<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}" />
|
<link rel="shortcut icon" href="{{ url_for('invenio_theme_iform.static', filename='favicon.ico') }}" />
|
||||||
{%- if keywords %}<link rel="canonical" href="{{ canonical_url }}" />{% endif %}
|
{%- if keywords %}<link rel="canonical" href="{{ canonical_url }}" />{% endif %}
|
||||||
{%- block head_links_langs %}
|
{%- block head_links_langs %}
|
||||||
{%- if alternate_urls %}
|
{%- if alternate_urls %}
|
||||||
@@ -58,7 +58,7 @@
|
|||||||
<link
|
<link
|
||||||
rel="apple-touch-icon-precomposed"
|
rel="apple-touch-icon-precomposed"
|
||||||
sizes="{{ size }}x{{ size }}"
|
sizes="{{ size }}x{{ size }}"
|
||||||
href="{{ url_for('static', filename=icon_name) }}"
|
href="{{ url_for('invenio_theme_iform.static', filename=icon_name) }}"
|
||||||
/>
|
/>
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
{%- endblock head_apple_icons %}
|
{%- endblock head_apple_icons %}
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
Log in with
|
Log in with
|
||||||
{{ config.SSO_SAML_IDPS[name]['title']|default("SAML", true) }}
|
{{ config.SSO_SAML_IDPS[name]['title']|default("SAML", true) }}
|
||||||
<img
|
<img
|
||||||
src="{{ url_for('static', filename=config.INVENIO_THEME_IFORM_ICON) }}"
|
src="{{ url_for('invenio_theme_iform.static', filename=config.INVENIO_THEME_IFORM_ICON) }}"
|
||||||
height="20px"
|
height="20px"
|
||||||
/>
|
/>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@@ -42,12 +42,12 @@
|
|||||||
{%- if config.INVENIO_CONFIG_IFORM_SHIBBOLETH %}
|
{%- if config.INVENIO_CONFIG_IFORM_SHIBBOLETH %}
|
||||||
<div class="ui divider"></div>
|
<div class="ui divider"></div>
|
||||||
<a
|
<a
|
||||||
href="{{ url_for("sso_saml.sso", idp="idp") }}"
|
href="{{ url_for('sso_saml.sso', idp='idp') }}"
|
||||||
class="login-page-button ui fluid large button"
|
class="login-page-button ui fluid large button"
|
||||||
>
|
>
|
||||||
<span style="font-size: 18px;">Sign up with I-Form</span>
|
<span style="font-size: 18px;">Sign up with I-Form</span>
|
||||||
<img
|
<img
|
||||||
src="{{ url_for("static", filename=config.INVENIO_THEME_IFORM_ICON) }}"
|
src="{{ url_for('invenio_theme_iform.static', filename=config.INVENIO_THEME_IFORM_ICON) }}"
|
||||||
height="20px"
|
height="20px"
|
||||||
/>
|
/>
|
||||||
</a>
|
</a>
|
||||||
@@ -73,7 +73,7 @@
|
|||||||
<div class="content {{ accordion_active }}">
|
<div class="content {{ accordion_active }}">
|
||||||
<form
|
<form
|
||||||
class="ui large form"
|
class="ui large form"
|
||||||
action="{{ url_for_security("register") }}"
|
action="{{ url_for_security('register') }}"
|
||||||
method="POST"
|
method="POST"
|
||||||
name="register_user_form"
|
name="register_user_form"
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
{%- endblock head_title %}
|
{%- endblock head_title %}
|
||||||
|
|
||||||
{%- block head_links %}
|
{%- block head_links %}
|
||||||
<link rel="shortcut icon" href="{{ url_for("static", filename="favicon.ico") }}" />
|
<link rel="shortcut icon" href="{{ url_for('inveino_theme_iform.static', filename='favicon.ico') }}" />
|
||||||
|
|
||||||
{%- if keywords %}
|
{%- if keywords %}
|
||||||
<link rel="canonical" href="{{ canonical_url }}" />
|
<link rel="canonical" href="{{ canonical_url }}" />
|
||||||
|
|||||||
@@ -132,7 +132,7 @@
|
|||||||
title="invenioRDM"
|
title="invenioRDM"
|
||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
src="{{ url_for("static", filename="images/inveniordm-tail.svg") }}"
|
src="{{ url_for('invenio_theme_iform.static', filename='images/inveniordm-tail.svg') }}"
|
||||||
alt="InvenioRDM logo"
|
alt="InvenioRDM logo"
|
||||||
style="display: block; height: 90px; margin-top: 8px;"
|
style="display: block; height: 90px; margin-top: 8px;"
|
||||||
/>
|
/>
|
||||||
@@ -148,7 +148,7 @@
|
|||||||
title="Science Foundation Ireland"
|
title="Science Foundation Ireland"
|
||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
src="{{ url_for("static", filename="images/SFI_logo.png") }}"
|
src="{{ url_for('invenio_theme_iform.static', filename='images/SFI_logo.png') }}"
|
||||||
alt="Science Foundation Ireland"
|
alt="Science Foundation Ireland"
|
||||||
style="display: block; height: auto; margin-top: 15px; width: 230px;"
|
style="display: block; height: auto; margin-top: 15px; width: 230px;"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<a href="{{ creators.identifiers.orcid|pid_url('orcid') }}" target="_blank"
|
<a href="{{ creators.identifiers.orcid|pid_url('orcid') }}" target="_blank"
|
||||||
><img
|
><img
|
||||||
class="inline-orcid"
|
class="inline-orcid"
|
||||||
src="{{ url_for('static', filename='extra/orcid.png') }}"
|
src="{{ url_for('invenio_theme_iform.static', filename='extra/orcid.png') }}"
|
||||||
/></a>
|
/></a>
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
||||||
|
|||||||
@@ -23,11 +23,6 @@
|
|||||||
"text": "Publications",
|
"text": "Publications",
|
||||||
"value": url_for("invenio_records_marc21.search"),
|
"value": url_for("invenio_records_marc21.search"),
|
||||||
"title": "publication",
|
"title": "publication",
|
||||||
},{
|
|
||||||
"key": "lom",
|
|
||||||
"text": "Educational Resources",
|
|
||||||
"value": url_for("invenio_records_lom.search"),
|
|
||||||
"title": "oer",
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
%}
|
%}
|
||||||
@@ -64,7 +59,7 @@
|
|||||||
<div class="affiliation-text">
|
<div class="affiliation-text">
|
||||||
<a
|
<a
|
||||||
title="Home"
|
title="Home"
|
||||||
href="{{ url_for("invenio_theme_iform.index") }}"
|
href="{{ url_for('invenio_theme_iform.index') }}"
|
||||||
class="no-decoration"
|
class="no-decoration"
|
||||||
>
|
>
|
||||||
I-FORM
|
I-FORM
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
<img
|
<img
|
||||||
width="400px"
|
width="400px"
|
||||||
alt="Research Results"
|
alt="Research Results"
|
||||||
src="{{ url_for('static', filename='images/diamond.svg') }}"
|
src="{{ url_for('invenio_theme_iform.static', filename='images/diamond.svg') }}"
|
||||||
/>
|
/>
|
||||||
</a>
|
</a>
|
||||||
<div class="ui right floated text">
|
<div class="ui right floated text">
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
<img
|
<img
|
||||||
width="400px"
|
width="400px"
|
||||||
alt="Communities"
|
alt="Communities"
|
||||||
src="{{ url_for('static', filename='images/group-discussion.svg') }}"
|
src="{{ url_for('invenio_theme_iform.static', filename='images/group-discussion.svg') }}"
|
||||||
/>
|
/>
|
||||||
</a>
|
</a>
|
||||||
<div>Overview: Description of Communities</div>
|
<div>Overview: Description of Communities</div>
|
||||||
@@ -61,7 +61,7 @@
|
|||||||
<img
|
<img
|
||||||
width="400px"
|
width="400px"
|
||||||
alt="Requests"
|
alt="Requests"
|
||||||
src="{{ url_for('static', filename='images/umbrella.svg') }}"
|
src="{{ url_for('invenio_theme_iform.static', filename='images/umbrella.svg') }}"
|
||||||
/>
|
/>
|
||||||
</a>
|
</a>
|
||||||
<div>Overview: Description of Requests</div>
|
<div>Overview: Description of Requests</div>
|
||||||
@@ -112,7 +112,7 @@
|
|||||||
<img
|
<img
|
||||||
width="400px"
|
width="400px"
|
||||||
alt="Research Results"
|
alt="Research Results"
|
||||||
src="{{ url_for('static', filename='images/diamond.svg') }}"
|
src="{{ url_for('invenio_theme_iform.static', filename='images/diamond.svg') }}"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="ui right floated text">
|
<div class="ui right floated text">
|
||||||
@@ -129,7 +129,7 @@
|
|||||||
<img
|
<img
|
||||||
width="400px"
|
width="400px"
|
||||||
alt="Publications"
|
alt="Publications"
|
||||||
src="{{ url_for('static', filename='images/library-book-svgrepo-com.svg') }}"
|
src="{{ url_for('invenio_theme_iform.static', filename='images/library-book-svgrepo-com.svg') }}"
|
||||||
/>
|
/>
|
||||||
</a>
|
</a>
|
||||||
<div>Overview: Description for publications</div>
|
<div>Overview: Description for publications</div>
|
||||||
@@ -143,7 +143,7 @@
|
|||||||
<img
|
<img
|
||||||
width="400px"
|
width="400px"
|
||||||
alt="Open Educational Resources"
|
alt="Open Educational Resources"
|
||||||
src="{{ url_for('static', filename='images/play.svg') }}"
|
src="{{ url_for('invenio_theme_iform.static', filename='images/play.svg') }}"
|
||||||
/>
|
/>
|
||||||
</a>
|
</a>
|
||||||
<div>Overview: Description for open educational resources</div>
|
<div>Overview: Description for open educational resources</div>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
from functools import wraps
|
from functools import wraps
|
||||||
from typing import Dict
|
from typing import Dict
|
||||||
|
|
||||||
from flask import Blueprint, current_app, g, redirect, render_template, url_for
|
from flask import Blueprint, Flask, current_app, g, redirect, render_template, url_for
|
||||||
from flask_login import current_user, login_required
|
from flask_login import current_user, login_required
|
||||||
from invenio_rdm_records.proxies import current_rdm_records
|
from invenio_rdm_records.proxies import current_rdm_records
|
||||||
from invenio_records_global_search.resources.serializers import (
|
from invenio_records_global_search.resources.serializers import (
|
||||||
@@ -22,15 +22,30 @@ from opensearch_dsl.utils import AttrDict
|
|||||||
|
|
||||||
from .search import FrontpageRecordsSearch
|
from .search import FrontpageRecordsSearch
|
||||||
|
|
||||||
|
|
||||||
|
def create_blueprint(app: Flask) -> Blueprint:
|
||||||
|
"""Create blueprint."""
|
||||||
blueprint = Blueprint(
|
blueprint = Blueprint(
|
||||||
"invenio_theme_iform",
|
"invenio_theme_iform",
|
||||||
__name__,
|
__name__,
|
||||||
template_folder="templates",
|
template_folder="templates",
|
||||||
static_folder="static",
|
static_folder="static",
|
||||||
)
|
)
|
||||||
|
routes = app.config.get("THEME_IFORM_ROUTES")
|
||||||
|
|
||||||
|
blueprint.add_url_rule(routes["records-search"], view_func=records_search)
|
||||||
|
blueprint.add_url_rule(routes["index"], view_func=index)
|
||||||
|
blueprint.add_url_rule(routes["overview"], view_func=overview)
|
||||||
|
|
||||||
|
# base case for any otherwise unhandled exception
|
||||||
|
app.register_error_handler(Exception, default_error_handler)
|
||||||
|
|
||||||
|
blueprint.add_app_template_filter(make_dict_like)
|
||||||
|
blueprint.add_app_template_filter(cast_to_dict)
|
||||||
|
|
||||||
|
return blueprint
|
||||||
|
|
||||||
|
|
||||||
@blueprint.route("/records/search")
|
|
||||||
def records_search():
|
def records_search():
|
||||||
"""Search page ui.
|
"""Search page ui.
|
||||||
|
|
||||||
@@ -70,7 +85,6 @@ def require_iform_authenticated(view_func):
|
|||||||
return decorated_view
|
return decorated_view
|
||||||
|
|
||||||
|
|
||||||
@blueprint.route("/me/overview")
|
|
||||||
@login_required
|
@login_required
|
||||||
def overview():
|
def overview():
|
||||||
"""Overview."""
|
"""Overview."""
|
||||||
@@ -85,7 +99,6 @@ def overview():
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@blueprint.app_template_filter("make_dict_like")
|
|
||||||
def make_dict_like(value: str, key: str) -> Dict[str, str]:
|
def make_dict_like(value: str, key: str) -> Dict[str, str]:
|
||||||
"""Convert the value to a dict like structure.
|
"""Convert the value to a dict like structure.
|
||||||
|
|
||||||
@@ -94,7 +107,6 @@ def make_dict_like(value: str, key: str) -> Dict[str, str]:
|
|||||||
return {key: value}
|
return {key: value}
|
||||||
|
|
||||||
|
|
||||||
@blueprint.app_template_filter("cast_to_dict")
|
|
||||||
def cast_to_dict(attr_dict):
|
def cast_to_dict(attr_dict):
|
||||||
"""Return the dict structure of AttrDict variable."""
|
"""Return the dict structure of AttrDict variable."""
|
||||||
return AttrDict.to_dict(attr_dict)
|
return AttrDict.to_dict(attr_dict)
|
||||||
@@ -112,18 +124,6 @@ def default_error_handler(e: Exception):
|
|||||||
return render_template(current_app.config["THEME_500_TEMPLATE"]), 500
|
return render_template(current_app.config["THEME_500_TEMPLATE"]), 500
|
||||||
|
|
||||||
|
|
||||||
def ui_blueprint(app):
|
|
||||||
"""Blueprint for the routes and resources provided by invenio-theme-iform."""
|
|
||||||
routes = app.config.get("IFORM_ROUTES")
|
|
||||||
|
|
||||||
blueprint.add_url_rule(routes["index"], view_func=index)
|
|
||||||
|
|
||||||
# base case for any otherwise unhandled exception
|
|
||||||
app.register_error_handler(Exception, default_error_handler)
|
|
||||||
|
|
||||||
return blueprint
|
|
||||||
|
|
||||||
|
|
||||||
def records_serializer(records=None):
|
def records_serializer(records=None):
|
||||||
"""Serialize list of records."""
|
"""Serialize list of records."""
|
||||||
serializer = GlobalSearchJSONSerializer()
|
serializer = GlobalSearchJSONSerializer()
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ classifiers = [
|
|||||||
requires-python = ">=3.10,<3.14"
|
requires-python = ">=3.10,<3.14"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"invenio-assets>=2.0.0",
|
"invenio-assets>=2.0.0",
|
||||||
"invenio-i18n>=1.3.1",
|
|
||||||
"invenio-config-iform>=2025.5.20.1",
|
"invenio-config-iform>=2025.5.20.1",
|
||||||
"invenio_records_global_search>=0.0.1",
|
"invenio_records_global_search>=0.0.1",
|
||||||
"invenio_records_marc21>=0.21.0",
|
"invenio_records_marc21>=0.21.0",
|
||||||
@@ -43,10 +42,7 @@ test = "scripts.test:main"
|
|||||||
invenio_theme_iform = "invenio_theme_iform:InvenioThemeIform"
|
invenio_theme_iform = "invenio_theme_iform:InvenioThemeIform"
|
||||||
|
|
||||||
[project.entry-points."invenio_base.blueprints"]
|
[project.entry-points."invenio_base.blueprints"]
|
||||||
invenio_theme_iform = "invenio_theme_iform.views:ui_blueprint"
|
invenio_theme_iform = "invenio_theme_iform.views:create_blueprint"
|
||||||
|
|
||||||
[project.entry-points."invenio_i18n.translations"]
|
|
||||||
messages = "invenio_theme_iform"
|
|
||||||
|
|
||||||
[project.entry-points."invenio_assets.webpack"]
|
[project.entry-points."invenio_assets.webpack"]
|
||||||
invenio_theme_iform_theme = "invenio_theme_iform.webpack:theme"
|
invenio_theme_iform_theme = "invenio_theme_iform.webpack:theme"
|
||||||
|
|||||||
30
uv.lock
generated
30
uv.lock
generated
@@ -1728,7 +1728,8 @@ dependencies = [
|
|||||||
{ name = "flask-sqlalchemy" },
|
{ name = "flask-sqlalchemy" },
|
||||||
{ name = "invenio-base" },
|
{ name = "invenio-base" },
|
||||||
{ name = "sqlalchemy", extra = ["asyncio"] },
|
{ name = "sqlalchemy", extra = ["asyncio"] },
|
||||||
{ name = "sqlalchemy-continuum" },
|
{ name = "sqlalchemy-continuum", version = "1.3.15", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" },
|
||||||
|
{ name = "sqlalchemy-continuum", version = "1.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" },
|
||||||
{ name = "sqlalchemy-utils" },
|
{ name = "sqlalchemy-utils" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/94/1f/542c73355a6c8f51b6c431676345797b669d749e63f5387d86a1f95f87ab/invenio-db-2.0.0.tar.gz", hash = "sha256:3f2dc12d95fc2febcc2b35cb3b4ec315dd9b3ec43b272a8028b8ba76a4167be3", size = 36105, upload_time = "2024-11-20T20:51:17.761Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/94/1f/542c73355a6c8f51b6c431676345797b669d749e63f5387d86a1f95f87ab/invenio-db-2.0.0.tar.gz", hash = "sha256:3f2dc12d95fc2febcc2b35cb3b4ec315dd9b3ec43b272a8028b8ba76a4167be3", size = 36105, upload_time = "2024-11-20T20:51:17.761Z" }
|
||||||
@@ -2353,7 +2354,6 @@ source = { editable = "." }
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "invenio-assets" },
|
{ name = "invenio-assets" },
|
||||||
{ name = "invenio-config-iform" },
|
{ name = "invenio-config-iform" },
|
||||||
{ name = "invenio-i18n" },
|
|
||||||
{ name = "invenio-records-global-search", version = "0.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" },
|
{ name = "invenio-records-global-search", version = "0.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" },
|
||||||
{ name = "invenio-records-global-search", version = "0.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" },
|
{ name = "invenio-records-global-search", version = "0.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" },
|
||||||
{ name = "invenio-records-marc21", version = "0.22.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" },
|
{ name = "invenio-records-marc21", version = "0.22.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" },
|
||||||
@@ -2388,7 +2388,6 @@ tests = [
|
|||||||
requires-dist = [
|
requires-dist = [
|
||||||
{ name = "invenio-assets", specifier = ">=2.0.0" },
|
{ name = "invenio-assets", specifier = ">=2.0.0" },
|
||||||
{ name = "invenio-config-iform", specifier = ">=2025.5.20.1" },
|
{ name = "invenio-config-iform", specifier = ">=2025.5.20.1" },
|
||||||
{ name = "invenio-i18n", specifier = ">=1.3.1" },
|
|
||||||
{ name = "invenio-records-global-search", specifier = ">=0.0.1" },
|
{ name = "invenio-records-global-search", specifier = ">=0.0.1" },
|
||||||
{ name = "invenio-records-marc21", specifier = ">=0.21.0" },
|
{ name = "invenio-records-marc21", specifier = ">=0.21.0" },
|
||||||
]
|
]
|
||||||
@@ -4750,13 +4749,34 @@ asyncio = [
|
|||||||
{ name = "greenlet" },
|
{ name = "greenlet" },
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "sqlalchemy-continuum"
|
||||||
|
version = "1.3.15"
|
||||||
|
source = { registry = "https://pypi.org/simple" }
|
||||||
|
resolution-markers = [
|
||||||
|
"python_full_version == '3.11.*'",
|
||||||
|
"python_full_version < '3.11'",
|
||||||
|
]
|
||||||
|
dependencies = [
|
||||||
|
{ name = "six", marker = "python_full_version < '3.12'" },
|
||||||
|
{ name = "sqlalchemy", marker = "python_full_version < '3.12'" },
|
||||||
|
{ name = "sqlalchemy-utils", marker = "python_full_version < '3.12'" },
|
||||||
|
]
|
||||||
|
sdist = { url = "https://files.pythonhosted.org/packages/cb/cf/4b21e74aff8ec06c362e043db3bb63bdb16ff0e5b5bbe21064fd0651a78b/SQLAlchemy-Continuum-1.3.15.tar.gz", hash = "sha256:a52689d1580daabc496ca8420fa742d62b371bc43921d6c06374192e52e0c409", size = 81279, upload_time = "2023-06-07T01:30:37.9Z" }
|
||||||
|
wheels = [
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/2f/02/581778b566128ea1d6e9e5f1fc833ff47d798cc5a393c0709f74639fb9de/SQLAlchemy_Continuum-1.3.15-py3-none-any.whl", hash = "sha256:d2ecc798500f5d5195ecd2143f7d1eabb0aa46e0f213e38bfeb4331d25cc08d3", size = 45736, upload_time = "2023-06-07T01:30:35.925Z" },
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "sqlalchemy-continuum"
|
name = "sqlalchemy-continuum"
|
||||||
version = "1.4.2"
|
version = "1.4.2"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
|
resolution-markers = [
|
||||||
|
"python_full_version >= '3.12'",
|
||||||
|
]
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "sqlalchemy" },
|
{ name = "sqlalchemy", marker = "python_full_version >= '3.12'" },
|
||||||
{ name = "sqlalchemy-utils" },
|
{ name = "sqlalchemy-utils", marker = "python_full_version >= '3.12'" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/05/81/76e0b16ca8575463ba83e014afe8a89443bbc6a896dad3c48068ce571611/sqlalchemy_continuum-1.4.2.tar.gz", hash = "sha256:0fd2be79f718eda47c2206879d92ec4ebf1889364637b3caf3ee5d34bd19c8e3", size = 81713, upload_time = "2024-05-02T20:03:43.192Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/05/81/76e0b16ca8575463ba83e014afe8a89443bbc6a896dad3c48068ce571611/sqlalchemy_continuum-1.4.2.tar.gz", hash = "sha256:0fd2be79f718eda47c2206879d92ec4ebf1889364637b3caf3ee5d34bd19c8e3", size = 81713, upload_time = "2024-05-02T20:03:43.192Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
|
|||||||
Reference in New Issue
Block a user