From e0e803f1a7272d828c90d3f1e346ab4429a9f477 Mon Sep 17 00:00:00 2001 From: Aaron Guise Date: Fri, 27 May 2022 23:00:35 +1200 Subject: [PATCH] Added setuptools_scm to requirements --- .idea/.gitignore | 8 +++ .idea/akaunting-py.iml | 15 ++++ .../inspectionProfiles/profiles_settings.xml | 6 ++ .idea/misc.xml | 4 ++ .idea/modules.xml | 8 +++ .idea/vcs.xml | 6 ++ akauntingpy/api.py | 71 +++++++++---------- requirements.txt | 3 +- setup.py | 1 + 9 files changed, 85 insertions(+), 37 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/akaunting-py.iml create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..73f69e0 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/akaunting-py.iml b/.idea/akaunting-py.iml new file mode 100644 index 0000000..60b03b1 --- /dev/null +++ b/.idea/akaunting-py.iml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..2e094ae --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..31df754 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/akauntingpy/api.py b/akauntingpy/api.py index 7b03cef..249fc9b 100644 --- a/akauntingpy/api.py +++ b/akauntingpy/api.py @@ -1,19 +1,18 @@ -from importlib.metadata import version, PackageNotFoundError -from unittest.mock import seal import requests -import json from requests.auth import HTTPBasicAuth -from akauntingpy.helpers import * -from akauntingpy import exceptions - from setuptools_scm import get_version +from akauntingpy import exceptions +from akauntingpy.helpers import * + __version__ = get_version(root='..', relative_to=__file__) + class Client(object): """ Akaunting interface. """ + def __init__( self, url, @@ -38,18 +37,18 @@ class Client(object): self.default_params = {'company_id': company_id} self.currency_code = currency_code self.currency_rate = currency_rate - - def call(self, method="get", endpoint=None, + + def call(self, method="get", endpoint=None, **params) -> dict(): response = None - + response = requests.request(method=method, url=self.url + "/" + endpoint, headers=self.headers, auth=self.authentication, params=MergeDict(self.default_params, params) ) - + print(response) response_ = response.json() print(response_) @@ -59,23 +58,23 @@ class Client(object): elif response.status_code == 422: errors = [] for key in response_['errors']: - errors.append(RemoveFromString(["",""], - response_['errors'][key][0]) - + " (" + key + ")") + errors.append(RemoveFromString(["", ""], + response_['errors'][key][0]) + + " (" + key + ")") raise exceptions.InvalidData(response_['message'] + "\n" + "\n".join(errors)) # elif response.status_code != 200 and response.status_code != 201: # raise exceptions.Error(response_['message']) return response_ - + def ping(self): data = self.call(endpoint="ping") return data - + def get_accounts(self, **params): data = self.call(endpoint="accounts", **params) - + if params.get('search', False): # Check if there is an account returned if data['meta']['pagination'].get('count') == 0: @@ -83,33 +82,33 @@ class Client(object): raise exceptions.AccountNotFound("Sorry, account not found matching search parameters: %s".format( params.get('search') )) - + return data['data'] - + def create_transaction(self, - type='income', # Payment method type - account_id=None, # Account ID to assign - category_id=None, # Category ID to assign - contact_id=None, # Contact ID/Client to assign - description=None, # Description - paid_at=None, # Date of expense/transfer or income - reference=None, # Reference for the payment - payment_method=None, # Payment method - currency_code=None, # Currency code - currency_rate=None,# Currency rate - amount=None, # Amount received/paid - **params # Any additional parameters - ): - + type='income', # Payment method type + account_id=None, # Account ID to assign + category_id=None, # Category ID to assign + contact_id=None, # Contact ID/Client to assign + description=None, # Description + paid_at=None, # Date of expense/transfer or income + reference=None, # Reference for the payment + payment_method=None, # Payment method + currency_code=None, # Currency code + currency_rate=None, # Currency rate + amount=None, # Amount received/paid + **params # Any additional parameters + ): + if currency_code is None: # Set default value from class currency_code = self.currency_code if currency_rate is None: # Set default value from class currency_rate = self.currency_rate - - data = self.call(endpoint="transactions", - method="POST", + + data = self.call(endpoint="transactions", + method="POST", search="type:" + type, type=type, account_id=account_id, @@ -124,4 +123,4 @@ class Client(object): description=description, **params ) - return data \ No newline at end of file + return data diff --git a/requirements.txt b/requirements.txt index 5286fa0..a4516a8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,5 @@ requests ~= 2.27.0 requests-mock ~= 1.9.3 pytest ~= 7.1.2 -pytest-cov ~= 3.0.0 +pytest-cov ~= 3.0 +setuptools-scm ~= 6.4.2 diff --git a/setup.py b/setup.py index af6c343..cfd5656 100644 --- a/setup.py +++ b/setup.py @@ -20,6 +20,7 @@ setup( packages=find_packages(), install_requires=[ 'requests >= 2.21.0', + 'setuptools-scm >= 6.4.2' ], classifiers=[ 'Programming Language :: Python :: 3',