This looks like a really cool project that might help us answer some really interesting questions, thanks for starting it! If we end up using a lot I will endeavour to contribute.
import tfquery
def main():
state_path = "terraform.tfstate"
result = tfquery.tfstate.run_query(state_path, "select count(*) from resources")
print(result)
if __name__ == "__main__":
main()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/ben/scratch/tfquery/venv/lib/python3.8/site-packages/tfquery/tfstate.py", line 114, in run_query
s.insert_resources(resources)
File "/home/ben/scratch/tfquery/venv/lib/python3.8/site-packages/tfquery/sql_handler.py", line 85, in insert_resources
self.insert_resource(resource)
File "/home/ben/scratch/tfquery/venv/lib/python3.8/site-packages/tfquery/sql_handler.py", line 99, in insert_resource
resource["tfstate_file"] = os.path.basename(self.tfstate_file)
File "/usr/lib/python3.8/posixpath.py", line 142, in basename
p = os.fspath(p)
TypeError: expected str, bytes or os.PathLike object, not NoneType
s = SQLHandler(in_memory=True, tfstate_file=tfstate_file)
Having made that change locally I can then run queries as expected.