diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml new file mode 100644 index 0000000..5f3bcc7 --- /dev/null +++ b/.github/workflows/python.yml @@ -0,0 +1,27 @@ +name: Python package + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: [2.7, 3.7] + + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install + run: | + python -m pip install --upgrade pip + pip install tox + - name: Run tox + run: tox --skip-missing-interpreters \ No newline at end of file diff --git a/.gitignore b/.gitignore index dc84959..d738bfb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ -build/ - +*.egg-info +*.py[cod] +.tox +build/ \ No newline at end of file diff --git a/pushover.py b/pushover/__init__.py similarity index 97% rename from pushover.py rename to pushover/__init__.py index 97a9d5f..109126b 100644 --- a/pushover.py +++ b/pushover/__init__.py @@ -83,7 +83,7 @@ def __init__(self, payload): if payload.get("priority", 0) == 2: self.url = RECEIPT_URL + self.answer["receipt"] self.status["done"] = False - for param, when in MessageRequest.params.iteritems(): + for param, when in MessageRequest.params.items(): self.status[param] = False self.status[when] = 0 @@ -108,7 +108,7 @@ def poll(self): """ if not self.status["done"]: r = Request("get", self.url + ".json", {"token": self.payload["token"]}) - for param, when in MessageRequest.params.iteritems(): + for param, when in MessageRequest.params.items(): self.status[param] = bool(r.answer[param]) self.status[when] = int(r.answer[when]) for param in ["acknowledged_by", "acknowledged_by_device"]: @@ -201,7 +201,7 @@ def message(self, user, message, **kwargs): """ payload = {"message": message, "user": user, "token": self.token} - for key, value in kwargs.iteritems(): + for key, value in kwargs.items(): if key not in Pushover.message_keywords: raise ValueError("{0}: invalid message parameter".format(key)) elif key == "timestamp" and value is True: @@ -225,7 +225,7 @@ def glance(self, user, **kwargs): """ payload = {"user": user, "token": self.token} - for key, value in kwargs.iteritems(): + for key, value in kwargs.items(): if key not in Pushover.glance_keywords: raise ValueError("{0}: invalid glance parameter".format(key)) else: diff --git a/cli.py b/pushover/cli.py similarity index 94% rename from cli.py rename to pushover/cli.py index 73ebfc9..cff806c 100644 --- a/cli.py +++ b/pushover/cli.py @@ -1,4 +1,8 @@ -from ConfigParser import RawConfigParser, NoSectionError, NoOptionError +try: + import configparser +except ImportError: # Python 2 + import ConfigParser as configparser + from argparse import ArgumentParser, RawDescriptionHelpFormatter import os from pushover import Pushover @@ -6,7 +10,7 @@ def read_config(config_path): config_path = os.path.expanduser(config_path) - config = RawConfigParser() + config = configparser.RawConfigParser() params = {"users": {}} files = config.read(config_path) if not files: @@ -18,7 +22,7 @@ def read_config(config_path): user["user_key"] = config.get(name, "user_key") try: user["device"] = config.get(name, "device") - except NoOptionError: + except configparser.NoOptionError: user["device"] = None params["users"][name] = user return params diff --git a/setup.py b/setup.py index 639b9a5..24bc707 100644 --- a/setup.py +++ b/setup.py @@ -2,22 +2,18 @@ from setuptools import setup +long_description = "\n".join([open(f).read() for f in ("README.rst", "AUTHORS.rst", "CHANGES.rst")]) setup( name="python-pushover", version="1.0", description="Comprehensive bindings and command line utility for the " "Pushover notification service", - long_description=open("README.rst").read() - + "\n" - + open("AUTHORS.rst").read() - + "\n" - + open("CHANGES.rst").read(), + long_description=long_description, url="https://github.com/Thibauth/python-pushover", author="Thibaut Horel", author_email="thibaut.horel+pushover@gmail.com", - py_modules=["pushover", "cli"], - entry_points={"console_scripts": ["pushover = cli:main"]}, + packages=["pushover"], + entry_points={"console_scripts": ["pushover = pushover.cli:main"]}, install_requires=["requests>=1.0"], - use_2to3=True, license="GNU GPLv3", ) diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..feef3ab --- /dev/null +++ b/tox.ini @@ -0,0 +1,4 @@ +[testenv] +deps = flake8 +commands = + flake8 pushover setup.py --ignore=E501 --count --max-complexity=10 --statistics