-
Notifications
You must be signed in to change notification settings - Fork 15
Bug with TaggedValue in builder #753
Copy link
Copy link
Open
Description
When attempting to wrap Wannier90WorkChain as a graph, the following error arises when the graph is being built:
sqlalchemy.exc.ProgrammingError: (sqlite3.ProgrammingError) Error binding parameter 4: type 'TaggedValue' is not supported
[SQL: SELECT db_dbgroup_1.id, db_dbgroup_1.uuid, db_dbgroup_1.label, db_dbgroup_1.type_string, db_dbgroup_1.time, db_dbgroup_1.description, db_dbgroup_1.extras, db_dbgroup_1.user_id
FROM db_dbgroup AS db_dbgroup_1
WHERE (CAST(db_dbgroup_1.type_string AS VARCHAR) LIKE ? ESCAPE '\' OR CAST(db_dbgroup_1.type_string AS VARCHAR) LIKE ? ESCAPE '\' OR CAST(db_dbgroup_1.type_string AS VARCHAR) LIKE ? ESCAPE '\') AND db_dbgroup_1.label = ?
LIMIT ? OFFSET ?]
[parameters: ('pseudo.family.pseudo\\_dojo%', 'pseudo.family.sssp%', 'pseudo.family.cutoffs%', TaggedValue('PseudoDojo/0.4/LDA/SR/standard/upf', socket=SocketString(name='pseudo_family', value=PseudoDojo/0.4/LDA/SR/standard/upf), uuid=e784b3ff-53e4-4346-82cd-0bd9b278cf5d), 2, 0)]
(Background on this error at: https://sqlalche.me/e/20/f405)
The offending code is:
Wannier90Task = task(Wannier90WorkChain)
@task.graph
def Wannier90TaskViaBuilder(
codes: dict[str, orm.AbstractCode],
structure: orm.StructureData,
protocol: str | None = None,
overrides: dict[str, Any] | None = None,
pseudo_family: str | None = None,
electronic_type: ElectronicType = ElectronicType.INSULATOR,
spin_type: SpinType = SpinType.NONE,
projection_type: WannierProjectionType = WannierProjectionType.ATOMIC_PROJECTORS_QE,
disentanglement_type: WannierDisentanglementType = WannierDisentanglementType.NONE,
frozen_type: WannierFrozenType = WannierFrozenType.NONE,
exclude_semicore: bool = False,
plot_wannier_functions: bool = False,
retrieve_hamiltonian: bool = True,
retrieve_matrices: bool = True,
print_summary: bool = False,
) -> Wannier90Outputs:
"""Run Wannier90WorkChain using the protocol-based builder pattern."""
builder = Wannier90WorkChain.get_builder_from_protocol(
codes={k: v for k, v in codes.items()},
structure=structure,
protocol=protocol,
overrides=overrides or {},
pseudo_family=pseudo_family,
electronic_type=electronic_type,
spin_type=spin_type,
projection_type=projection_type,
disentanglement_type=disentanglement_type,
frozen_type=frozen_type,
exclude_semicore=exclude_semicore,
plot_wannier_functions=plot_wannier_functions,
retrieve_hamiltonian=retrieve_hamiltonian,
retrieve_matrices=retrieve_matrices,
print_summary=print_summary,
)
data = get_dict_from_builder(builder)
# Submit the workchain with converted inputs
output = Wannier90Task(**data)
Replacing pseudo_family with pseudo_family.__wrapped__ resolves the issue (but is not a long-term fix).
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels