From d77c2ce616e267db0a65f9373c6d4ec10d8d8cce Mon Sep 17 00:00:00 2001 From: ayushjariyal Date: Fri, 18 Apr 2025 10:51:00 +0530 Subject: [PATCH 1/5] Adding additional information for first and last node --- src/aiida/orm/implementation/storage_backend.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/aiida/orm/implementation/storage_backend.py b/src/aiida/orm/implementation/storage_backend.py index 6137508f51..daea9608ee 100644 --- a/src/aiida/orm/implementation/storage_backend.py +++ b/src/aiida/orm/implementation/storage_backend.py @@ -484,6 +484,16 @@ def get_orm_entities(self, detailed: bool = False) -> dict: ) data['Nodes']['process_types'] = [p for p in process_types if p] + query_first = QueryBuilder(self).append(Node, project=['ctime'], tag='node').order_by({'node': {'ctime': 'asc'}}).limit(1) + query_last = QueryBuilder(self).append(Node, project=['ctime'], tag='node').order_by({'node': {'ctime': 'desc'}}).limit(1) + + first_ctime = query_first.first() + last_ctime = query_last.first() + + data['Nodes']['first_created'] = str(first_ctime[0]) if first_ctime else None + data['Nodes']['last_created'] = str(last_ctime[0]) if last_ctime else None + + query_group = QueryBuilder(self).append(Group, project=['type_string']) data['Groups'] = {'count': query_group.count()} if detailed: From 9405cff57482519823dac4e3926a83e60fbea90f Mon Sep 17 00:00:00 2001 From: ayushjariyal Date: Fri, 18 Apr 2025 11:00:29 +0530 Subject: [PATCH 2/5] Adding additional information for first and last node --- src/aiida/orm/implementation/storage_backend.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/aiida/orm/implementation/storage_backend.py b/src/aiida/orm/implementation/storage_backend.py index daea9608ee..7ba78d6564 100644 --- a/src/aiida/orm/implementation/storage_backend.py +++ b/src/aiida/orm/implementation/storage_backend.py @@ -484,14 +484,14 @@ def get_orm_entities(self, detailed: bool = False) -> dict: ) data['Nodes']['process_types'] = [p for p in process_types if p] - query_first = QueryBuilder(self).append(Node, project=['ctime'], tag='node').order_by({'node': {'ctime': 'asc'}}).limit(1) - query_last = QueryBuilder(self).append(Node, project=['ctime'], tag='node').order_by({'node': {'ctime': 'desc'}}).limit(1) + first_time = QueryBuilder(self).append(Node, project=['ctime'], tag='node').order_by({'node': {'ctime': 'asc'}}).limit(1) + last_time = QueryBuilder(self).append(Node, project=['ctime'], tag='node').order_by({'node': {'ctime': 'desc'}}).limit(1) - first_ctime = query_first.first() - last_ctime = query_last.first() + ctime = first_time.first() + mtime = last_time.first() - data['Nodes']['first_created'] = str(first_ctime[0]) if first_ctime else None - data['Nodes']['last_created'] = str(last_ctime[0]) if last_ctime else None + data['Nodes']['first_created'] = str(ctime[0]) if ctime else None + data['Nodes']['last_created'] = str(ctime[0]) if ctime else None query_group = QueryBuilder(self).append(Group, project=['type_string']) From 778ddf28dd1d4c050dc1ee4813edaa3bc69963f7 Mon Sep 17 00:00:00 2001 From: ayushjariyal Date: Fri, 18 Apr 2025 11:16:35 +0530 Subject: [PATCH 3/5] fixing pre-commit hooks --- src/aiida/orm/implementation/storage_backend.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/aiida/orm/implementation/storage_backend.py b/src/aiida/orm/implementation/storage_backend.py index 7ba78d6564..079ec2719d 100644 --- a/src/aiida/orm/implementation/storage_backend.py +++ b/src/aiida/orm/implementation/storage_backend.py @@ -491,7 +491,7 @@ def get_orm_entities(self, detailed: bool = False) -> dict: mtime = last_time.first() data['Nodes']['first_created'] = str(ctime[0]) if ctime else None - data['Nodes']['last_created'] = str(ctime[0]) if ctime else None + data['Nodes']['last_created'] = str(mtime[0]) if mtime else None query_group = QueryBuilder(self).append(Group, project=['type_string']) From 73134fba4b390be44f8e44b5af987a2b7e8a0d52 Mon Sep 17 00:00:00 2001 From: ayushjariyal Date: Wed, 20 Aug 2025 15:00:59 +0530 Subject: [PATCH 4/5] simplifying code according to the review --- src/aiida/orm/implementation/storage_backend.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/aiida/orm/implementation/storage_backend.py b/src/aiida/orm/implementation/storage_backend.py index 079ec2719d..accaa1915f 100644 --- a/src/aiida/orm/implementation/storage_backend.py +++ b/src/aiida/orm/implementation/storage_backend.py @@ -484,14 +484,11 @@ def get_orm_entities(self, detailed: bool = False) -> dict: ) data['Nodes']['process_types'] = [p for p in process_types if p] - first_time = QueryBuilder(self).append(Node, project=['ctime'], tag='node').order_by({'node': {'ctime': 'asc'}}).limit(1) - last_time = QueryBuilder(self).append(Node, project=['ctime'], tag='node').order_by({'node': {'ctime': 'desc'}}).limit(1) + first_time = QueryBuilder(self).append(Node, project=['ctime'], tag='node').order_by({'node': {'ctime': 'asc'}}).first(flat=True) + last_time = QueryBuilder(self).append(Node, project=['ctime'], tag='node').order_by({'node': {'ctime': 'desc'}}).first(flat=True) - ctime = first_time.first() - mtime = last_time.first() - - data['Nodes']['first_created'] = str(ctime[0]) if ctime else None - data['Nodes']['last_created'] = str(mtime[0]) if mtime else None + data['Nodes']['first_created'] = str(first_time) if first_time else None + data['Nodes']['last_created'] = str(last_time) if last_time else None query_group = QueryBuilder(self).append(Group, project=['type_string']) From cf3c19bf0c41a460aa8421f563629b370bf7a5ed Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 20 Aug 2025 09:31:30 +0000 Subject: [PATCH 5/5] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/aiida/orm/implementation/storage_backend.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/aiida/orm/implementation/storage_backend.py b/src/aiida/orm/implementation/storage_backend.py index accaa1915f..51f0ce1a1e 100644 --- a/src/aiida/orm/implementation/storage_backend.py +++ b/src/aiida/orm/implementation/storage_backend.py @@ -484,13 +484,22 @@ def get_orm_entities(self, detailed: bool = False) -> dict: ) data['Nodes']['process_types'] = [p for p in process_types if p] - first_time = QueryBuilder(self).append(Node, project=['ctime'], tag='node').order_by({'node': {'ctime': 'asc'}}).first(flat=True) - last_time = QueryBuilder(self).append(Node, project=['ctime'], tag='node').order_by({'node': {'ctime': 'desc'}}).first(flat=True) + first_time = ( + QueryBuilder(self) + .append(Node, project=['ctime'], tag='node') + .order_by({'node': {'ctime': 'asc'}}) + .first(flat=True) + ) + last_time = ( + QueryBuilder(self) + .append(Node, project=['ctime'], tag='node') + .order_by({'node': {'ctime': 'desc'}}) + .first(flat=True) + ) data['Nodes']['first_created'] = str(first_time) if first_time else None data['Nodes']['last_created'] = str(last_time) if last_time else None - query_group = QueryBuilder(self).append(Group, project=['type_string']) data['Groups'] = {'count': query_group.count()} if detailed: