Skip to content

Commit

Permalink
Fix/broken project structure (#42)
Browse files Browse the repository at this point in the history
* add proper 'blockchain' package + move existing structure

* automate package search

* use absolute import pathes for tests
  • Loading branch information
Sebastian Jäger committed Oct 30, 2019
1 parent d969910 commit 8df6e29
Show file tree
Hide file tree
Showing 29 changed files with 56 additions and 61 deletions.
12 changes: 3 additions & 9 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,9 @@ testing =
pytest-cov

[options.entry_points]
# Add here console scripts like:
# console_scripts =
# script_name = blockchain.module:function
# For example:
# console_scripts =
# fibonacci = blockchain.skeleton:run
# And any other entry points, for example:
# pyscaffold.cli =
# awesome = pyscaffoldext.awesome.extension:AwesomeExtension
console_scripts =
blockchain = blockchain.cli.cli:cli


[test]
# py.test options when running `python setup.py test`
Expand Down
9 changes: 1 addition & 8 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,4 @@

if __name__ == "__main__":

setup(use_pyscaffold=True,
packages=["blockchain", "cli", "client", "ui", "utils"],
package_dir={'blockchain': 'src/blockchain', 'cli': 'src/cli', 'client': 'src/client', 'ui': 'src/ui', 'utils': 'src/utils'},
entry_points='''
[console_scripts]
blockchain=src.cli.cli:cli
'''
)
setup(use_pyscaffold=True)
7 changes: 2 additions & 5 deletions src/blockchain/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@
from pkg_resources import get_distribution, DistributionNotFound

try:
# Change here if project is renamed and does not equal the package name
dist_name = __name__
__version__ = get_distribution(dist_name).version
__version__ = get_distribution(__name__).version
except DistributionNotFound:
__version__ = 'unknown'
finally:
del get_distribution, DistributionNotFound

11 changes: 11 additions & 0 deletions src/blockchain/blockchain/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# -*- coding: utf-8 -*-
from pkg_resources import get_distribution, DistributionNotFound

try:
# Change here if project is renamed and does not equal the package name
dist_name = __name__
__version__ = get_distribution(dist_name).version
except DistributionNotFound:
__version__ = 'unknown'
finally:
del get_distribution, DistributionNotFound
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

from time import time

from utils.utils import colorize
from blockchain.data import Data
from ..utils.utils import colorize
from ..blockchain.data import Data


logger = logging.getLogger(__name__)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
import hashlib
import jsonpickle

from blockchain.data import Data
from blockchain.block import Block
from utils.errors import ChainNotFoundError
from utils.utils import encode_file_path_properly
from utils.constants import GENESIS_BLOCK_PREV_HASH, GENESIS_BLOCK_PROOF, GENESIS_BLOCK_DATA, GENESIS_BLOCK_INDEX
from ..blockchain.data import Data
from ..blockchain.block import Block
from ..utils.errors import ChainNotFoundError
from ..utils.utils import encode_file_path_properly
from ..utils.constants import GENESIS_BLOCK_PREV_HASH, GENESIS_BLOCK_PROOF, GENESIS_BLOCK_DATA, GENESIS_BLOCK_INDEX


logger = logging.getLogger(__name__)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from uuid import uuid4

from utils.utils import colorize
from ..utils.utils import colorize


logger = logging.getLogger(__name__)
Expand Down
File renamed without changes.
8 changes: 4 additions & 4 deletions src/cli/cli.py → src/blockchain/cli/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@

from logging.handlers import RotatingFileHandler

from utils.utils import *
from utils.constants import *
from client.miner import Miner
from ..utils.utils import *
from ..utils.constants import *
from ..client.miner import Miner


logger = logging.getLogger()
Expand Down Expand Up @@ -42,7 +42,7 @@ def ui(port: int):
Starts the web based user interface.
"""

from ui import create_ui
from ..ui import create_ui

# create an ui instance
ui = create_ui()
Expand Down
File renamed without changes.
14 changes: 7 additions & 7 deletions src/client/miner.py → src/blockchain/client/miner.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@
from datetime import timedelta
from multiprocessing import Process, Queue

from utils.constants import *
from blockchain.data import Data
from blockchain.block import Block
from client.server import start_server
from utils.errors import ChainNotValidError
from blockchain.blockchain import Blockchain
from utils.utils import split_url_string, create_proper_url_string, Job, encode_file_path_properly
from ..utils.constants import *
from ..blockchain.data import Data
from ..blockchain.block import Block
from ..client.server import start_server
from ..utils.errors import ChainNotValidError
from ..blockchain.blockchain import Blockchain
from ..utils.utils import split_url_string, create_proper_url_string, Job, encode_file_path_properly


logger = logging.getLogger(__name__)
Expand Down
2 changes: 1 addition & 1 deletion src/client/server.py → src/blockchain/client/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from multiprocessing import Queue, Pipe
from flask import Flask, jsonify, request

from utils.constants import *
from ..utils.constants import *


logger = logging.getLogger(__name__)
Expand Down
File renamed without changes.
File renamed without changes.
6 changes: 3 additions & 3 deletions src/ui/routes.py → src/blockchain/ui/routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
import jsonpickle
from flask import render_template, Blueprint

from utils.utils import create_proper_url_string
from utils.constants import DEFAULT_HOST, DEFAULT_PORT, CHAIN_ENDPOINT, HTTP_OK
from ..utils.utils import create_proper_url_string
from ..utils.constants import DEFAULT_HOST, DEFAULT_PORT, CHAIN_ENDPOINT, HTTP_OK


blueprint = Blueprint('blockchain_blueprint', __name__, template_folder='templates', static_folder='static')
Expand All @@ -12,7 +12,7 @@
@blueprint.route('/')
def main():
"""
Root endpoint (`/`). Shows a representation of the current chain.
Root endpoint (``/``). Shows a representation of the current chain.
"""

try:
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Empty file.
File renamed without changes.
File renamed without changes.
4 changes: 2 additions & 2 deletions src/utils/utils.py → src/blockchain/utils/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
from datetime import timedelta
from urllib.parse import urlparse

from utils.errors import ProgramKilledError, PortValueError
from utils.constants import DEFAULT_PORT, COLOR_BOLD, COLOR_END, COLOR_GREEN, COLOR_RED
from ..utils.errors import ProgramKilledError, PortValueError
from ..utils.constants import DEFAULT_PORT, COLOR_BOLD, COLOR_END, COLOR_GREEN, COLOR_RED


logger = logging.getLogger(__name__)
Expand Down
6 changes: 3 additions & 3 deletions tests/test_block.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import pytest

from blockchain.data import Data
from blockchain.block import Block
from blockchain.blockchain import Blockchain
from blockchain.blockchain.data import Data
from blockchain.blockchain.block import Block
from blockchain.blockchain.blockchain import Blockchain


data = Data("dummy data")
Expand Down
8 changes: 4 additions & 4 deletions tests/test_blockchain.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
import shutil
import pytest

from blockchain.data import Data
from blockchain.block import Block
from blockchain.blockchain import Blockchain
from utils.utils import encode_file_path_properly
from blockchain.blockchain.data import Data
from blockchain.blockchain.block import Block
from blockchain.blockchain.blockchain import Blockchain
from blockchain.utils.utils import encode_file_path_properly


constructor_json_format = [True, False]
Expand Down
4 changes: 2 additions & 2 deletions tests/test_data.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import pytest

from blockchain.data import Data
from utils.constants import GENESIS_BLOCK_DATA
from blockchain.blockchain.data import Data
from blockchain.utils.constants import GENESIS_BLOCK_DATA


genesis_data = Data(GENESIS_BLOCK_DATA)
Expand Down
10 changes: 5 additions & 5 deletions tests/test_miner.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
import shutil
import pytest

from client.miner import Miner
from blockchain.data import Data
from blockchain.blockchain import Blockchain
from utils.utils import encode_file_path_properly
from utils.constants import DEFAULT_PORT, DEFAULT_DIFFICULTY
from blockchain.client.miner import Miner
from blockchain.blockchain.data import Data
from blockchain.blockchain.blockchain import Blockchain
from blockchain.utils.utils import encode_file_path_properly
from blockchain.utils.constants import DEFAULT_PORT, DEFAULT_DIFFICULTY


constructor_json_format = [True, False]
Expand Down

0 comments on commit 8df6e29

Please sign in to comment.