Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Relative imports and dependency addition #462

Open
wants to merge 6 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,8 @@ Here is a list of the banks and their formats that we already support. Note that
1. SG OCBC Bank
1. SG OCBC Bank Credit Card
1. SG POSB savings
1. SG UOB Savings Account
1. SG UOB Credit Card
1. SK Tatra Banka
1. SK VUB
1. UK Co-operative Bank
Expand Down
18 changes: 12 additions & 6 deletions bank2ynab/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
import logging
from typing import Any

from bank_handler import BankHandler
from config_handler import ConfigHandler
from ynab_api import YNAB_API
from .bank_handler import BankHandler
from .config_handler import ConfigHandler
from .ynab_api import YNAB_API

# configure our logger
logging.basicConfig(format="%(levelname): %(message)", level=logging.INFO)
Expand All @@ -15,7 +15,9 @@ def build_bank(bank_config: dict[str, Any]) -> BankHandler:
for a given configuration."""
plugin_module_name = bank_config.get("plugin", None)
if plugin_module_name:
module = importlib.import_module(f"plugins.{plugin_module_name}")
module = importlib.import_module(
f".plugins.{plugin_module_name}", package="bank2ynab"
)
if not hasattr(module, "build_bank"):
s = (
f"The specified plugin {plugin_module_name}.py "
Expand All @@ -28,8 +30,7 @@ def build_bank(bank_config: dict[str, Any]) -> BankHandler:
return BankHandler(config_dict=bank_config)


# Let's run this thing!
if __name__ == "__main__":
def main():
try:
config_handler = ConfigHandler()
except FileNotFoundError:
Expand Down Expand Up @@ -62,3 +63,8 @@ def build_bank(bank_config: dict[str, Any]) -> BankHandler:
if bank_transaction_dict:
api = YNAB_API(config_handler)
api.run(bank_transaction_dict)


# Let's run this thing!
if __name__ == "__main__":
main()
2 changes: 1 addition & 1 deletion bank2ynab/api_interface.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import logging

import requests
from ynab_api_response import YNABError
from .ynab_api_response import YNABError


class APIInterface:
Expand Down
6 changes: 3 additions & 3 deletions bank2ynab/bank_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
from os import path
from typing import Any

import dataframe_handler
import transactionfile_reader
from dataframe_handler import DataframeHandler
from . import dataframe_handler
from . import transactionfile_reader
from .dataframe_handler import DataframeHandler


class BankHandler:
Expand Down
2 changes: 1 addition & 1 deletion bank2ynab/plugins/OCBC_Bank_SG.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Plugin for handling OCBC Bank [SG] files

from bank_handler import BankHandler
from ..bank_handler import BankHandler


class OCBC_Bank_SG(BankHandler):
Expand Down
2 changes: 1 addition & 1 deletion bank2ynab/plugins/fix_line_breaks.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from bank_handler import BankHandler
from ..bank_handler import BankHandler


class FixLineBreaksPlugin(BankHandler):
Expand Down
2 changes: 1 addition & 1 deletion bank2ynab/plugins/handelsbanken.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import re
import typing

from bank_handler import BankHandler
from ..bank_handler import BankHandler


class Handelsbanken(BankHandler):
Expand Down
2 changes: 1 addition & 1 deletion bank2ynab/plugins/null.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
# At that point, you can reference the plugin in conf files like this:
# Plugin = mymodule

from bank_handler import BankHandler
from ..bank_handler import BankHandler


class NullBank(BankHandler):
Expand Down
6 changes: 3 additions & 3 deletions bank2ynab/plugins/parse_from_memo.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
import re
from datetime import datetime

from bank_handler import BankHandler, get_output_path
from dataframe_handler import read_csv
from transactionfile_reader import detect_encoding
from ..bank_handler import BankHandler, get_output_path
from ..dataframe_handler import read_csv
from ..transactionfile_reader import detect_encoding

logging.basicConfig(format="%(levelname)s: %(message)s", level=logging.DEBUG)

Expand Down
4 changes: 2 additions & 2 deletions bank2ynab/plugins/pdf_converter.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import logging

import bank_handler
from .. import bank_handler
import pandas as pd
import pdfplumber
from bank_handler import BankHandler
from ..bank_handler import BankHandler


class PDF_Converter(BankHandler):
Expand Down
2 changes: 1 addition & 1 deletion bank2ynab/plugins/plugin-template.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Step 2: Copy this template into a new file.
# Step 3: Replace "YourActualBank" below with a descriptive bank name

from bank_handler import BankHandler
from ..bank_handler import BankHandler


class YourActualBankPlugin(BankHandler):
Expand Down
4 changes: 2 additions & 2 deletions bank2ynab/plugins/xls_converter.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import logging

import bank_handler
from .. import bank_handler
from pandas import read_excel
from bank_handler import BankHandler
from ..bank_handler import BankHandler


class XLS_Converter(BankHandler):
Expand Down
8 changes: 4 additions & 4 deletions bank2ynab/ynab_api.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import logging
from configparser import DuplicateSectionError, NoSectionError

import api_interface
import user_input
from api_interface import APIInterface
from config_handler import ConfigHandler
from . import api_interface
from . import user_input
from .api_interface import APIInterface
from .config_handler import ConfigHandler

# configure our logger
logging.basicConfig(format="%(levelname)s: %(message)s", level=logging.INFO)
Expand Down
2 changes: 2 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
description="Easily convert and import your bank's statements into YNAB.",
long_description=long_description,
long_description_content_type="text/markdown",
entry_points={"console_scripts": ["bank2ynab = bank2ynab.__main__:main"]},
url="https://github.com/bank2ynab/bank2ynab",
packages=setuptools.find_packages(),
classifiers=[
Expand All @@ -21,5 +22,6 @@
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3 :: Only",
],
install_requires=["chardet", "pandas", "requests", "pdfplumber", "xlrd"],
python_requires=">=3.9",
)
Loading