"""Qgis Project API, XML-based."""
import bs4
import gws
import gws.types as t
[docs]def from_path(path: str) -> 'Project':
return from_string(gws.read_file(path), path)
[docs]def from_string(xml: str, path: str = None) -> 'Project':
return Project(xml, path)
[docs]class Project:
def __init__(self, xml: str, path: str):
self.bs = bs4.BeautifulSoup(xml, 'lxml-xml')
self.path = path
[docs] def save(self, path=None):
path = path or self.path
if not path:
raise ValueError('no path')
gws.write_file(path, str(self.bs))