diff --git a/.gitignore b/.gitignore index 83972fa..9aeeb48 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +#nix +result + # Byte-compiled / optimized / DLL files __pycache__/ *.py[codz] diff --git a/flake.nix b/flake.nix index d1cd212..04f3f86 100644 --- a/flake.nix +++ b/flake.nix @@ -23,6 +23,7 @@ sparqlwrapper feedgen ]; + mainProgram = "resspublica.py"; }; packages.default = self.packages.${system}.resspublica; diff --git a/pyproject.toml b/pyproject.toml index ee40b0e..4a566ae 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,11 @@ description = "RSS feeds for swiss federal and cantonal initiatives." requires-python = ">=3.10" [project.scripts] -resspublica = "resspublica:main" +resspublica = "resspublica.main:main" [tool.setuptools] -py-modules = ["resspublica"] +packages = ["resspublica"] +include-package-data = true + +[tool.setuptools.package-data] +resspublica = ["queries/*.sparql"] diff --git a/resspublica/__init__.py b/resspublica/__init__.py new file mode 100644 index 0000000..843fcaf --- /dev/null +++ b/resspublica/__init__.py @@ -0,0 +1 @@ +# resspublica/__init__.py diff --git a/resspublica.py b/resspublica/main.py similarity index 63% rename from resspublica.py rename to resspublica/main.py index 5008cc3..68512e7 100644 --- a/resspublica.py +++ b/resspublica/main.py @@ -1,9 +1,15 @@ from SPARQLWrapper import SPARQLWrapper, JSON from feedgen.feed import FeedGenerator +from importlib.resources import files def generateFederalFeed(): sparql = SPARQLWrapper("https://cached.lindas.admin.ch/sparql") - sparql.setQuery(open("./queries/popular_initiatives.sparql").read()) + + query = files("resspublica").joinpath( + "queries/federalPopularInitiatives.sparql" + ).read_text() + + sparql.setQuery(query) sparql.setReturnFormat(JSON) results = sparql.query().convert() diff --git a/queries/federalPopularInitiatives.sparql b/resspublica/queries/federalPopularInitiatives.sparql similarity index 100% rename from queries/federalPopularInitiatives.sparql rename to resspublica/queries/federalPopularInitiatives.sparql