From eb13e34e6677e2d098462041bd94722ba28a6c14 Mon Sep 17 00:00:00 2001 From: KevinMidboe Date: Tue, 18 Feb 2020 23:44:16 +0100 Subject: [PATCH] Restructured project to better run as a package. This should have been setup correctly, but now try to better follow structure for python modules, which this is supposed to be. - Renamed folder from src -> seasonedParser - Moved test/ into seasonedParser/ - test has __init__.py script which sets location to the project folder (seasonedParser/). - Removed cli.py and moved contents to __main__.py - Updated drone to run pytest without test folder parameter --- .drone.yml | 8 +++---- seasonedParser/__init__.py | 7 +++++++ src/cli.py => seasonedParser/__main__.py | 22 +++++++++++++++++++- seasonedParser/__version__.py | 6 ++++++ {src => seasonedParser}/core.py | 18 ++-------------- {src => seasonedParser}/env_variables.py | 0 {src => seasonedParser}/exceptions.py | 0 seasonedParser/logger.py | 17 +++++++++++++++ {src => seasonedParser}/pirateSearch.py | 0 {src => seasonedParser}/scandir.py | 0 {src => seasonedParser}/seasonGuesser.py | 0 {src => seasonedParser}/seasonMover.py | 0 {src => seasonedParser}/subtitle.py | 0 seasonedParser/test/__init__.py | 2 ++ {test => seasonedParser/test}/test_import.py | 1 - {test => seasonedParser/test}/test_square.py | 0 {src => seasonedParser}/tvdb.py | 0 {src => seasonedParser}/utils.py | 0 {src => seasonedParser}/video.py | 0 {src => seasonedParser}/walk.py | 0 {src => seasonedParser}/watcher.py | 0 src/__init__.py | 0 test/__init__.py | 0 23 files changed, 58 insertions(+), 23 deletions(-) create mode 100644 seasonedParser/__init__.py rename src/cli.py => seasonedParser/__main__.py (77%) mode change 100755 => 100644 create mode 100644 seasonedParser/__version__.py rename {src => seasonedParser}/core.py (96%) rename {src => seasonedParser}/env_variables.py (100%) rename {src => seasonedParser}/exceptions.py (100%) create mode 100644 seasonedParser/logger.py rename {src => seasonedParser}/pirateSearch.py (100%) rename {src => seasonedParser}/scandir.py (100%) rename {src => seasonedParser}/seasonGuesser.py (100%) rename {src => seasonedParser}/seasonMover.py (100%) rename {src => seasonedParser}/subtitle.py (100%) create mode 100644 seasonedParser/test/__init__.py rename {test => seasonedParser/test}/test_import.py (63%) rename {test => seasonedParser/test}/test_square.py (100%) rename {src => seasonedParser}/tvdb.py (100%) rename {src => seasonedParser}/utils.py (100%) rename {src => seasonedParser}/video.py (100%) rename {src => seasonedParser}/walk.py (100%) rename {src => seasonedParser}/watcher.py (100%) delete mode 100644 src/__init__.py delete mode 100644 test/__init__.py diff --git a/.drone.yml b/.drone.yml index e61bedf..124efc7 100644 --- a/.drone.yml +++ b/.drone.yml @@ -13,14 +13,14 @@ steps: commands: - python --version - pip install -r requirements.txt - - py.test test + - py.test - name: test-python3.8 image: python:3.8-alpine commands: - python --version - pip install -r requirements.txt - - py.test test + - py.test - name: codecov image: python:3.6-alpine @@ -29,9 +29,7 @@ steps: from_secret: CODECOV_TOKEN commands: - pip install -r requirements.txt - - py.test --cov-report=xml --cov=src test - - apk add curl - - apk add bash + - py.test --cov-report=xml --cov=seasonedParserseasonedParserseasonedParserseasonedParserseasonedParserseasonedParserseasonedParserseasonedParser - apk add git - bash -c "$(curl -s https://codecov.io/bash)" trigger: diff --git a/seasonedParser/__init__.py b/seasonedParser/__init__.py new file mode 100644 index 0000000..a08b226 --- /dev/null +++ b/seasonedParser/__init__.py @@ -0,0 +1,7 @@ +print('hello from init') +import sys,os +# sys.path.append(os.path.join(os.path.dirname(__file__),os.pardir)) + +# from + +from .__version__ import __version__ diff --git a/src/cli.py b/seasonedParser/__main__.py old mode 100755 new mode 100644 similarity index 77% rename from src/cli.py rename to seasonedParser/__main__.py index fd921cc..c29c2c4 --- a/src/cli.py +++ b/seasonedParser/__main__.py @@ -1,4 +1,9 @@ -#!usr/bin/env python3.6 +#!/usr/bin/env python3.6 +# -*- coding: utf-8 -*- +""" +Entry point module +""" + import click from guessit import guessit import logging @@ -7,7 +12,22 @@ from core import scan_folder from video import Video from exceptions import InsufficientNameError +import env_variables as env + +logging.basicConfig(filename=env.logfile, level=logging.INFO) logger = logging.getLogger('seasonedParser') +fh = logging.FileHandler(env.logfile) +fh.setLevel(logging.INFO) +sh = logging.StreamHandler() +sh.setLevel(logging.WARNING) + +fh_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') +sh_formatter = logging.Formatter('%(levelname)s: %(message)s') +fh.setFormatter(fh_formatter) +sh.setFormatter(sh_formatter) + +logger.addHandler(fh) +logger.addHandler(sh) def tweet(video): pass diff --git a/seasonedParser/__version__.py b/seasonedParser/__version__.py new file mode 100644 index 0000000..d19b4e5 --- /dev/null +++ b/seasonedParser/__version__.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +Version module +""" +__version__ = '0.2.0' diff --git a/src/core.py b/seasonedParser/core.py similarity index 96% rename from src/core.py rename to seasonedParser/core.py index 8d68eff..a18a4b2 100755 --- a/src/core.py +++ b/seasonedParser/core.py @@ -10,7 +10,6 @@ from babelfish import Language, LanguageReverseError import hashlib import os, errno import shutil -import logging import re import tvdb_api import click @@ -20,26 +19,13 @@ import langdetect import env_variables as env from exceptions import InsufficientNameError +import logging +logger = logging.getLogger('seasonedParser') from video import VIDEO_EXTENSIONS, Episode, Movie, Video from subtitle import SUBTITLE_EXTENSIONS, Subtitle, get_subtitle_path from utils import sanitize, refine -logging.basicConfig(filename=env.logfile, level=logging.INFO) -logger = logging.getLogger('seasonedParser') -fh = logging.FileHandler(env.logfile) -fh.setLevel(logging.INFO) -sh = logging.StreamHandler() -sh.setLevel(logging.WARNING) - -fh_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') -sh_formatter = logging.Formatter('%(levelname)s: %(message)s') -fh.setFormatter(fh_formatter) -sh.setFormatter(sh_formatter) - -logger.addHandler(fh) -logger.addHandler(sh) - def search_external_subtitles(path, directory=None): dirpath, filename = os.path.split(path) dirpath = dirpath or '.' diff --git a/src/env_variables.py b/seasonedParser/env_variables.py similarity index 100% rename from src/env_variables.py rename to seasonedParser/env_variables.py diff --git a/src/exceptions.py b/seasonedParser/exceptions.py similarity index 100% rename from src/exceptions.py rename to seasonedParser/exceptions.py diff --git a/seasonedParser/logger.py b/seasonedParser/logger.py new file mode 100644 index 0000000..aaa42d3 --- /dev/null +++ b/seasonedParser/logger.py @@ -0,0 +1,17 @@ +import logging +import env_variables as env + +logging.basicConfig(filename=env.logfile, level=logging.INFO) +logger = logging.getLogger('seasonedParser') +fh = logging.FileHandler(env.logfile) +fh.setLevel(logging.INFO) +sh = logging.StreamHandler() +sh.setLevel(logging.WARNING) + +fh_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') +sh_formatter = logging.Formatter('%(levelname)s: %(message)s') +fh.setFormatter(fh_formatter) +sh.setFormatter(sh_formatter) + +logger.addHandler(fh) +logger.addHandler(sh) \ No newline at end of file diff --git a/src/pirateSearch.py b/seasonedParser/pirateSearch.py similarity index 100% rename from src/pirateSearch.py rename to seasonedParser/pirateSearch.py diff --git a/src/scandir.py b/seasonedParser/scandir.py similarity index 100% rename from src/scandir.py rename to seasonedParser/scandir.py diff --git a/src/seasonGuesser.py b/seasonedParser/seasonGuesser.py similarity index 100% rename from src/seasonGuesser.py rename to seasonedParser/seasonGuesser.py diff --git a/src/seasonMover.py b/seasonedParser/seasonMover.py similarity index 100% rename from src/seasonMover.py rename to seasonedParser/seasonMover.py diff --git a/src/subtitle.py b/seasonedParser/subtitle.py similarity index 100% rename from src/subtitle.py rename to seasonedParser/subtitle.py diff --git a/seasonedParser/test/__init__.py b/seasonedParser/test/__init__.py new file mode 100644 index 0000000..736a215 --- /dev/null +++ b/seasonedParser/test/__init__.py @@ -0,0 +1,2 @@ +import sys, os +sys.path.append(os.path.realpath(os.path.dirname(__file__)+"/..")) diff --git a/test/test_import.py b/seasonedParser/test/test_import.py similarity index 63% rename from test/test_import.py rename to seasonedParser/test/test_import.py index dedea7c..476b95a 100644 --- a/test/test_import.py +++ b/seasonedParser/test/test_import.py @@ -1,5 +1,4 @@ import sys, os -sys.path.append(os.path.realpath(os.path.dirname(__file__)+"/../src")) def test_import_env_variables(): import env_variables as env diff --git a/test/test_square.py b/seasonedParser/test/test_square.py similarity index 100% rename from test/test_square.py rename to seasonedParser/test/test_square.py diff --git a/src/tvdb.py b/seasonedParser/tvdb.py similarity index 100% rename from src/tvdb.py rename to seasonedParser/tvdb.py diff --git a/src/utils.py b/seasonedParser/utils.py similarity index 100% rename from src/utils.py rename to seasonedParser/utils.py diff --git a/src/video.py b/seasonedParser/video.py similarity index 100% rename from src/video.py rename to seasonedParser/video.py diff --git a/src/walk.py b/seasonedParser/walk.py similarity index 100% rename from src/walk.py rename to seasonedParser/walk.py diff --git a/src/watcher.py b/seasonedParser/watcher.py similarity index 100% rename from src/watcher.py rename to seasonedParser/watcher.py diff --git a/src/__init__.py b/src/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/test/__init__.py b/test/__init__.py deleted file mode 100644 index e69de29..0000000