{"library":"pymatgen-io-validation","title":"Pymatgen I/O Validation","description":"Pymatgen-io-validation is a Python library, currently at version 0.1.2, that extends the pymatgen framework to provide comprehensive I/O validation for electronic structure calculations. It primarily focuses on ensuring VASP calculations are compliant with the stringent standards required for integration with the Materials Project database. The library helps identify discrepancies between a calculation and a provided input set, flags known bugs related to parameter combinations, and performs other critical checks. Its release cadence typically involves minor updates to address dependencies and improve validation logic.","language":"python","status":"active","last_verified":"Mon May 18","install":{"commands":["pip install pymatgen-io-validation"],"cli":null},"imports":["from pymatgen.io.validation import VaspValidator"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nfrom pymatgen.io.validation import VaspValidator\n\n# Assuming 'path_to_vasp_calculation_directory' contains VASP input/output files (e.g., INCAR, KPOINTS, POSCAR, OUTCAR)\n# For a runnable example, we'll create a dummy directory and files.\n# In a real scenario, this path would point to your actual VASP calculation directory.\n\ndummy_vasp_dir = \"./dummy_vasp_calc\"\nos.makedirs(dummy_vasp_dir, exist_ok=True)\n\nwith open(os.path.join(dummy_vasp_dir, \"INCAR\"), \"w\") as f:\n    f.write(\"ENCUT = 520\\nISIF = 2\\nISYM = 2\\nPREC = Accurate\\nALGO = Fast\\n\")\nwith open(os.path.join(dummy_vasp_dir, \"POSCAR\"), \"w\") as f:\n    f.write(\"Dummy structure\\n1.0\\n1.0 0.0 0.0\\n0.0 1.0 0.0\\n0.0 0.0 1.0\\nFe\\n1\\nDirect\\n0.0 0.0 0.0\\n\")\n# Add other necessary dummy files (KPOINTS, POTCAR) for a full run if needed, \n# but the example focuses on VaspValidator usage structure.\n\n# Validate a VASP calculation from its directory\nvalidation_doc = VaspValidator.from_directory(dummy_vasp_dir)\n\nprint(f\"Calculation is valid: {validation_doc.valid}\")\nif not validation_doc.valid:\n    print(\"Reasons for invalidation:\")\n    for reason in validation_doc.reasons:\n        print(f\"- {reason}\")\nif validation_doc.warnings:\n    print(\"Warnings:\")\n    for warning in validation_doc.warnings:\n        print(f\"- {warning}\")\n\n# Clean up dummy files\nos.remove(os.path.join(dummy_vasp_dir, \"INCAR\"))\nos.remove(os.path.join(dummy_vasp_dir, \"POSCAR\"))\nos.rmdir(dummy_vasp_dir)\n","lang":"python","description":"This quickstart demonstrates how to instantiate `VaspValidator` from a VASP calculation directory and check its validity, reasons for invalidation, and any warnings. The `from_directory` class method automatically parses the necessary VASP input and output files to perform the checks. The `valid`, `reasons`, and `warnings` attributes of the returned `validation_doc` object provide a comprehensive report.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-18","installed_version":"0.1.2","pypi_latest":"0.1.2","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":50,"avg_install_s":29.9,"avg_import_s":6.23,"wheel_type":"sdist"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pymatgen-io-validation","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pymatgen-io-validation","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":28.9,"import_time_s":4.74,"mem_mb":154.1,"disk_size":"578M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pymatgen-io-validation","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pymatgen-io-validation","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":28.4,"import_time_s":6.61,"mem_mb":89.2,"disk_size":"658M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pymatgen-io-validation","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pymatgen-io-validation","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":29.1,"import_time_s":7,"mem_mb":86.8,"disk_size":"626M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pymatgen-io-validation","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pymatgen-io-validation","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":29.7,"import_time_s":6.57,"mem_mb":88.6,"disk_size":"622M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pymatgen-io-validation","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pymatgen-io-validation","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":33.2,"import_time_s":null,"mem_mb":null,"disk_size":"587M"}]}}