diff --git a/Pipfile b/Pipfile index aacf1565..7bab10c3 100644 --- a/Pipfile +++ b/Pipfile @@ -4,7 +4,8 @@ verify_ssl = true name = "pypi" [packages] -aw-core = {ref = "master",git = "https://github.com/ActivityWatch/aw-core.git"} +aw_core = {editable = true, path = "../aw-core"} +aw-server = {editable = true, path = "."} flask-restplus = ">=0.9.2" appdirs = ">=1.4.0" python-json-logger = ">=0.1.5" diff --git a/Pipfile.lock b/Pipfile.lock index c7f7190e..9380dfaf 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "2246cc112673307248f500063fc08e751a6e3f57b45f95e48db2ee5f1acaf335" + "sha256": "5a4084a707538fbdb04385deaf24888ffbee18113c236185a212a4cdc822df14" }, "pipfile-spec": 6, "requires": {}, @@ -37,8 +37,12 @@ "version": "==19.1.0" }, "aw-core": { - "git": "https://github.com/ActivityWatch/aw-core.git", - "ref": "fe1a64d531d9a9ce8134d917b2ccdbc4cb02fb52" + "editable": true, + "path": "../aw-core" + }, + "aw-server": { + "editable": true, + "path": "." }, "click": { "hashes": [ @@ -71,6 +75,14 @@ "index": "pypi", "version": "==0.12.1" }, + "iso8601": { + "hashes": [ + "sha256:210e0134677cc0d02f6028087fee1df1e1d76d372ee1db0bf30bf66c5c1c89a3", + "sha256:49c4b20e1f38aa5cf109ddcd39647ac419f928512c869dc01d5c7098eddede82", + "sha256:bbbae5fb4a7abfe71d4688fd64bff70b91bbd74ef6a99d964bab18f7fdf286dd" + ], + "version": "==0.1.12" + }, "itsdangerous": { "hashes": [ "sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19", @@ -87,8 +99,8 @@ }, "jsonschema": { "hashes": [ - "sha256:0c0a81564f181de3212efa2d17de1910f8732fa1b71c42266d983cd74304e20d", - "sha256:a5f6559964a3851f59040d3b961de5e68e70971afb88ba519d27e6a039efff1a" + "sha256:000e68abd33c972a5248544925a0cae7d1125f9bf6c58280d37546b946769a08", + "sha256:6ff5f3180870836cae40f06fa10419f557208175f13ad7bc26caa77beb1f6e02" ], "version": "==2.6.0" }, @@ -125,6 +137,12 @@ ], "version": "==1.1.1" }, + "peewee": { + "hashes": [ + "sha256:603337153536b85c3c5b5e84df4ae0f9cbaff09163a3739451d167e0ad3fe1f7" + ], + "version": "==3.9.3" + }, "pyrsistent": { "hashes": [ "sha256:3ca82748918eb65e2d89f222b702277099aca77e34843c5eb9d52451173970e2" @@ -160,6 +178,26 @@ ], "version": "==1.12.0" }, + "strict-rfc3339": { + "hashes": [ + "sha256:5cad17bedfc3af57b399db0fed32771f18fc54bbd917e85546088607ac5e1277" + ], + "version": "==0.7" + }, + "takethetime": { + "hashes": [ + "sha256:914c78149420aacfdf6b5427dc20c1e7f6cf69755a00a88b810e5ea942945a37" + ], + "version": "==0.3" + }, + "typing": { + "hashes": [ + "sha256:4027c5f6127a6267a435201981ba156de91ad0d1d98e9ddc2aa173453453492d", + "sha256:57dcf675a99b74d64dacf6fba08fb17cf7e3d5fdff53d4a30ea2a5e7e52543d4", + "sha256:a4c8473ce11a65999c8f59cb093e70686b6c84c98df58c1dae9b3b196089858a" + ], + "version": "==3.6.6" + }, "werkzeug": { "hashes": [ "sha256:c3fd7a7d41976d9f44db327260e263132466836cef6f91512889ed60ad26557c", @@ -267,11 +305,11 @@ }, "more-itertools": { "hashes": [ - "sha256:0125e8f60e9e031347105eb1682cef932f5e97d7b9a1a28d9bf00c22a5daef40", - "sha256:590044e3942351a1bdb1de960b739ff4ce277960f2425ad4509446dbace8d9d1" + "sha256:2112d2ca570bb7c3e53ea1a35cd5df42bb0fd10c45f0fb97178679c3c03d64c7", + "sha256:c3e4748ba1aad8dba30a4886b0b1a2004f9a863837b8654e7059eebf727afa5a" ], "markers": "python_version > '2.7'", - "version": "==6.0.0" + "version": "==7.0.0" }, "mypy": { "hashes": [ @@ -310,9 +348,9 @@ }, "py-cpuinfo": { "hashes": [ - "sha256:6615d4527118d4ea1db4d86dac4340725b3906aa04bf36b7902f7af4425fb25f" + "sha256:2cf6426f776625b21d1db8397d3297ef7acfa59018f02a8779123f3190f18500" ], - "version": "==4.0.0" + "version": "==5.0.0" }, "pyinstaller": { "hashes": [ @@ -323,11 +361,11 @@ }, "pytest": { "hashes": [ - "sha256:067a1d4bf827ffdd56ad21bd46674703fce77c5957f6c1eef731f6146bfcef1c", - "sha256:9687049d53695ad45cf5fdc7bbd51f0c49f1ea3ecfc4b7f3fde7501b541f17f4" + "sha256:13c5e9fb5ec5179995e9357111ab089af350d788cbc944c628f3cde72285809b", + "sha256:f21d2f1fb8200830dcbb5d8ec466a9c9120e20d8b53c7585d180125cce1d297a" ], "index": "pypi", - "version": "==4.3.0" + "version": "==4.4.0" }, "pytest-benchmark": { "hashes": [ diff --git a/aw_server/__init__.py b/aw_server/__init__.py index daaff631..b18e2741 100644 --- a/aw_server/__init__.py +++ b/aw_server/__init__.py @@ -8,6 +8,6 @@ from .server import create_app from . import api -from . import rest +from . import resources from .main import main diff --git a/aw_server/main.py b/aw_server/main.py index a68e9aea..e12ed80f 100644 --- a/aw_server/main.py +++ b/aw_server/main.py @@ -6,8 +6,6 @@ from .server import _start from .config import config -logger = logging.getLogger(__name__) - def main(): """Called from the executable and __main__.py""" @@ -23,6 +21,7 @@ def main(): setup_logging("aw-server", testing=settings.testing, verbose=settings.verbose, log_stderr=True, log_file=True, log_file_json=False) + logger = logging.getLogger(__name__) logger.info("Using storage method: {}".format(settings.storage)) if settings.testing: diff --git a/aw_server/resources/__init__.py b/aw_server/resources/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/aw_server/rest.py b/aw_server/resources/rest.py similarity index 98% rename from aw_server/rest.py rename to aw_server/resources/rest.py index 73ddc915..91394546 100644 --- a/aw_server/rest.py +++ b/aw_server/resources/rest.py @@ -1,6 +1,7 @@ from typing import Dict import traceback import json +import logging from flask import request, Blueprint, jsonify, current_app, make_response from flask_restplus import Api, Resource, fields @@ -10,11 +11,11 @@ from aw_core import schema from aw_core.models import Event -from . import logger -from .api import ServerAPI -from .exceptions import BadRequest, Unauthorized +from aw_server.api import ServerAPI +from aw_server.exceptions import BadRequest, Unauthorized from aw_analysis.query2_error import QueryException +logger = logging.getLogger(__name__) # SECURITY # As we work our way through features, disable (while this is False, we should only accept connections from localhost) diff --git a/aw_server/server.py b/aw_server/server.py index 8f187fd9..024f8e1a 100644 --- a/aw_server/server.py +++ b/aw_server/server.py @@ -8,9 +8,9 @@ import aw_datastore from aw_datastore import Datastore -from .log import FlaskLogHandler -from .api import ServerAPI -from . import rest +from aw_server.log import FlaskLogHandler +from aw_server.api import ServerAPI +from aw_server.resources import rest logger = logging.getLogger(__name__) diff --git a/setup.py b/setup.py index b675eb02..3ba1c41d 100755 --- a/setup.py +++ b/setup.py @@ -9,7 +9,7 @@ except ImportError: # for pip <= 9.0.3 from pip.req import parse_requirements -from setuptools import setup +from setuptools import setup, find_packages here = os.path.abspath(os.path.dirname(__file__)) @@ -22,6 +22,10 @@ requirements = parse_requirements("./requirements.txt", session=False) +packages = find_packages() +if packages != ["aw_server", "aw_server.resources"]: + print(f"Found extra packages: {packages}") + setup(name='aw-server', version=about["__version__"], description='ActivityWatch server', @@ -29,7 +33,7 @@ author='Erik Bjäreholt', author_email='erik@bjareho.lt', url='https://github.com/ActivityWatch/aw-server', - packages=['aw_server'], + packages=packages, include_package_data=True, install_requires=[str(requirement.req) for requirement in requirements], entry_points={