import sys, unittest
import logic_bank_utils.util as logic_bank_utils
from datetime import datetime
from decimal import Decimal

(did_fix_path, sys_env_info) = \
    logic_bank_utils.add_python_path(project_dir="LogicBank", my_file=__file__)

if  __name__ == '__main__':
    print("\nStarted from cmd line - launch unittest and exit\n")
    sys.argv = [sys.argv[0]]
    unittest.main(module="examples.nw.tests.test_update_employee_salary")
    exit(0)
else:
    print("Started from unittest: " + __name__)
    from examples.nw import tests

    tests.copy_gold_over_db()

    import examples.nw.db.models as models

    from examples.nw.logic import session, engine  # opens db, activates rules <--
    # activate rules:   LogicBank.activate(session=session, activator=declare_logic)

    from logic_bank.util import prt

    print("\n" + sys_env_info + "\n\n")


class Test(unittest.TestCase):
from decimal import Decimal

import logic_bank_utils.util as logic_bank_utils

(did_fix_path, sys_env_info) = \
    logic_bank_utils.add_python_path(project_dir="payment_allocation_graphene", my_file=__file__)
print("\n" + did_fix_path + "\n\n" + sys_env_info + "\n\n")


def setup_db():
    """ copy db/database-gold.sqlite3 over db/database.sqlite3"""
    import os
    from shutil import copyfile
    from logic_bank.util import prt

    print("\n" + prt("restoring database-gold\n"))

    basedir = os.path.abspath(os.path.dirname(__file__))
    basedir = os.path.dirname(basedir)

    print("\n********************************\n"
          "  IMPORTANT - create database.sqlite3 from database-gold.sqlite3 in " + basedir + "/payment_allocation/db/\n" +
          "            - from -- " + prt("") +
          "\n********************************")

    db_loc = os.path.join(basedir, "database.sqlite3")
    db_source = os.path.join(basedir, "database-gold.sqlite3")
    copyfile(src=db_source, dst=db_loc)


setup_db()
Esempio n. 3
0
"""
import sys
from typing import TypedDict

import logic_bank_utils.util as logic_bank_utils
import safrs
from logic_bank.logic_bank import LogicBank
from logic_bank.exec_row_logic.logic_row import LogicRow
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import Session

from api import expose_api_models, expose_services
from logic import logic_bank

(did_fix_path, sys_env_info) = \
    logic_bank_utils.add_python_path(project_dir="api_logic_server", my_file=__file__)

from flask import render_template, request, jsonify, Flask
from safrs import ValidationError, SAFRSBase


def setup_logging():
    # Initialize Logging
    import logging
    import sys

    logic_logger = logging.getLogger(
        'logic_logger')  # for debugging user logic
    logic_logger.setLevel(logging.DEBUG)
    handler = logging.StreamHandler(sys.stdout)
    handler.setLevel(logging.DEBUG)
Esempio n. 4
0
import logging
import os
import subprocess
import sys
from pathlib import Path
import json

import sqlalchemy

from logic_bank_utils import util as logic_bank_utils

from logic_bank.rule_bank import rule_bank_withdraw
from logic_bank.rule_type.parent_check import ParentCheck

(did_fix_path, sys_env_info) = \
    logic_bank_utils.add_python_path(project_dir="ApiLogicServer", my_file=__file__)
print("\n" + did_fix_path + "\n\n" + sys_env_info + "\n\n")


class DotDict(dict):
    """dot.notation access to dictionary attributes"""
    # thanks: https://stackoverflow.com/questions/2352181/how-to-use-a-dot-to-access-members-of-dictionary/28463329
    __getattr__ = dict.get
    __setattr__ = dict.__setitem__
    __delattr__ = dict.__delitem__


def setup_logging():
    logic_logger = logging.getLogger(
        'logic_logger')  # for debugging user logic
    logic_logger.setLevel(logging.DEBUG)
#!/usr/bin/env python3
"""
  ApiLogicServer v 1.03.01

  $ python3 api_logic_server_run.py [Listener-IP]

  This will run the example on http://Listener-Ip:5000

"""
import sys
import logic_bank_utils.util as logic_bank_utils

(did_fix_path, sys_env_info) = \
    logic_bank_utils.add_python_path(project_dir="replace_project_name", my_file=__file__)

from flask import render_template, request, jsonify
from safrs import ValidationError

import api as app  # database opened here

# address where the api will be hosted, change this if you're not running the app on localhost!
host = sys.argv[1] if sys.argv[
                      1:] else "localhost"  # 127.0.0.1 check in swagger or your lient what is used you wight need cors support
app = app.create_app(host=host)


@app.route('/hello_world')
def hello_world():  # test it with: http://localhost:5000/hello_world?user=ApiLogicServer
    """
    This is inserted to illustrate that APIs not limited to database objects, but are extensible.