diff --git a/flake.nix b/flake.nix index d238dd9..5ad516a 100644 --- a/flake.nix +++ b/flake.nix @@ -24,7 +24,7 @@ in rec { - packages.default = pkgs.python3Packages.buildPythonPackage { + packages.default = pkgs.python3Packages.buildPythonApplication { pname = pyprojecttoml.project.name; version = pyprojecttoml.project.version; pyproject = true; @@ -43,8 +43,8 @@ ''; }; - packages.editable = pkgs.python3Packages.mkPythonEditablePackage { - inherit (packages.default) name version dependencies; + packages.editable = pkgs.python3Packages.mkPythonEditableApplication { + scripts = pyprojecttoml.project.scripts; root = "$PWD/src"; passthru = { inherit (packages.default) nativeCheckInputs; }; }; diff --git a/inflatinator/__init__.py b/inflatinator/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/inflatinator/__main__.py b/inflatinator/__main__.py old mode 100644 new mode 100755 index 075b7e2..abf011d --- a/inflatinator/__main__.py +++ b/inflatinator/__main__.py @@ -1,10 +1,13 @@ +#!/usr/bin/env python3 + import logging import os -import revbank import sys +import inflatinator.revbank as revbank -def main(product_file): + +def main_args(product_file): log_level = os.environ.get('LOG_LEVEL', 'INFO').upper() logging.basicConfig(level=log_level) logging.getLogger("requests").setLevel(logging.WARNING) @@ -19,5 +22,9 @@ def main(product_file): fd.write(new_src) +def main(): + main_args(sys.argv[1]) + + if __name__ == '__main__': - main(sys.argv[1]) + main() diff --git a/inflatinator/revbank.py b/inflatinator/revbank.py index 0e88a8a..839a27f 100644 --- a/inflatinator/revbank.py +++ b/inflatinator/revbank.py @@ -1,9 +1,10 @@ -from dataclasses import dataclass -from decimal import Decimal, ROUND_UP -from typing import Dict, Optional, List import logging -import scrapers import shlex +from dataclasses import dataclass +from decimal import ROUND_UP, Decimal +from typing import Dict, List, Optional + +import inflatinator.scrapers as scrapers def resale_price(prod: scrapers.Product) -> Decimal: diff --git a/inflatinator/revbank_test.py b/inflatinator/revbank_test.py index 9b8ddd6..b48b64a 100644 --- a/inflatinator/revbank_test.py +++ b/inflatinator/revbank_test.py @@ -1,6 +1,7 @@ -from revbank import Product from decimal import Decimal +from inflatinator.revbank import Product + def test_parse_product_lines(): assert Product.from_line('8711327538481,liuk 0.80 "Ola Liuk" #ah=wi162664 #qty=8') == \ diff --git a/inflatinator/scrapers.py b/inflatinator/scrapers.py index 435301e..9043751 100644 --- a/inflatinator/scrapers.py +++ b/inflatinator/scrapers.py @@ -1,15 +1,15 @@ +import json +import logging +import os +import re from dataclasses import dataclass from decimal import Decimal from functools import reduce -from pyquery import PyQuery as pq -import json -import re -import os -import requests -import logging -from supermarktconnector.ah import AHConnector from typing import List, Optional +import requests +from pyquery import PyQuery as pq +from supermarktconnector.ah import AHConnector vat = Decimal('1.09') diff --git a/inflatinator/scrapers_test.py b/inflatinator/scrapers_test.py index 6d72485..6ae307f 100644 --- a/inflatinator/scrapers_test.py +++ b/inflatinator/scrapers_test.py @@ -1,6 +1,13 @@ -from scrapers import ah_get_by_gtin, sligro_get_by_gtin, parse_content_description, Product, ProductNotFoundError import pytest +from inflatinator.scrapers import ( + Product, + ProductNotFoundError, + ah_get_by_gtin, + parse_content_description, + sligro_get_by_gtin, +) + def test_scrape_ah(): # Ola Liuk diff --git a/pyproject.toml b/pyproject.toml index 83a87eb..283d8a6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,6 @@ [project] name = "revbank-inflatinator" version = "0.0.1" + +[project.scripts] +inflatinator = "inflatinator.__main__:main"