Esempio n. 1
0
    def __init__(self):
        self.server = None
        log_folder = program.get_base_dir('logs')

        if not os.path.exists(log_folder):
            os.mkdir(log_folder)

        log_file = os.path.join(log_folder, 'cot_plot.log')
        LOG_CONF['handlers']['logfile']['filename'] = log_file

        logging.config.dictConfig(LOG_CONF)
        self.logger = logging.getLogger(__name__)
        self.logger.debug(
            "==============================================================")
        self.logger.debug("CoT Plot web werver started")

        self.pyramid_settings = {
            'reload_all': False,
            'debug_all': True,
            'pyramid.debug_all': True,
            'pyramid.debug_routematch': True,
            'pyramid.reload_all': False,
            'cotplot.secret': '$nif2-EERG1$£03mf£AF$&^-'
        }
        self.config = Configurator(settings=self.pyramid_settings,
                                   root_factory='src.cot_plot.resources.Root')

        self.settings = settings.Settings()
        self.updater = Updater()
Esempio n. 2
0
    def initialize(self, environment):
        self.identifier = environment.identifier
        self.updater = Updater(environment)
        self.current_step = 0
        self.num_sweeps = int(environment.static_parameters['num_sweeps'])

        #For measurement
        self.sweep_result_list = []
Esempio n. 3
0
    def updater__set_model_parameters(self, args):
        import os
        from src.bank import Bank
        from src.household import Household
        from src.firm import Firm
        from src.environment import Environment
        from src.transaction import Transaction
        from src.market import Market
        from src.updater import Updater

        text = "This test checks updater.set_model_parameters \n"
        self.print_info(text)
        #
        # INITIALIZATION
        #
        environment_directory = str(args[0])
        identifier = str(args[1])
        log_directory = str(args[2])

        # Configure logging parameters so we get output while the program runs
        logging.basicConfig(format='%(asctime)s %(message)s',
                            datefmt='%m/%d/%Y %H:%M:%S',
                            filename=log_directory + identifier + ".log",
                            level=logging.INFO)
        logging.info(
            'START logging for test updater__set_model_parameters in run: %s',
            environment_directory + identifier + ".xml")

        # Construct household filename
        environment = Environment(environment_directory, identifier)

        # generate a bank
        bank = Bank()
        bank.identifier = "test_bank"
        environment.banks.append(bank)

        # generate a firm
        firm = Firm()
        firm.identifier = "test_firm"
        environment.firms.append(firm)

        # generate a household
        household = Household()
        household.identifier = "test_household"
        environment.households.append(household)

        #
        # TESTING
        #
        model = Updater(environment)
        model.model_parameters = {"test": "model parameters"}
        print("Model's parameters:")
        print(model.get_model_parameters())
        print("Changing model's parameters:...")
        model.model_parameters = {"new": "model parameters"}
        print("Model's parameters:")
        print(model.get_model_parameters())
Esempio n. 4
0
    def updater__capitalise(self, args):
        import os
        from src.bank import Bank
        from src.household import Household
        from src.firm import Firm
        from src.environment import Environment
        from src.transaction import Transaction
        from src.market import Market
        from src.updater import Updater

        text = "This test checks updater.capitalise \n"
        self.print_info(text)
        #
        # INITIALIZATION
        #
        environment_directory = str(args[0])
        identifier = str(args[1])
        log_directory = str(args[2])

        # Configure logging parameters so we get output while the program runs
        logging.basicConfig(format='%(asctime)s %(message)s',
                            datefmt='%m/%d/%Y %H:%M:%S',
                            filename=log_directory + identifier + ".log",
                            level=logging.INFO)
        logging.info('START logging for test updater__capitalise in run: %s',
                     environment_directory + identifier + ".xml")

        # Construct household filename
        environment = Environment(environment_directory, identifier)

        #
        # TESTING
        #
        model = Updater(environment)
        model.sell_labour(environment, 0)
        model.consume_rationed(environment, 0)
        model.net_loans_deposits(environment, 0)
        print(environment.households[0])
        model.remove_perishable(environment, 0)
        print("Capitalising")
        model.capitalise(environment, 0)
        print(environment.households[0])
Esempio n. 5
0
    def test_updater(self) -> None:
        ori = parseQuery("""PREFIX  dc:  <http://purl.org/dc/elements/1.1/>
PREFIX  ns:  <http://example.org/ns#>
SELECT  ?title (?p*(1-?discount) AS ?price)
{ ?x ns:price ?p .
  ?x dc:title ?title .
  ?x ns:discount ?discount
}""")
        frame = {
            '@context': {
                'price': {
                    '@id': 'http://example.org/ns#price'
                },
                'title': {
                    '@id': 'http://purl.org/dc/elements/1.1/title'
                }
            },
            'price': {},
            'title': {}
        }
        u = Updater()
        res = u.update(ori, frame).dump().split('\n')[0].replace('\n', '')

        expect = """[[PrefixDecl_{'prefix': 'dc', 'iri': rdflib.term.URIRef('http://purl.org/dc/elements/1.1/')}, \
PrefixDecl_{'prefix': 'ns', 'iri': rdflib.term.URIRef('http://example.org/ns#')}], ConstructQuery_{'template': \
[([rdflib.term.Variable('title'), rdflib.term.URIRef('http://example.org/ns#price'), rdflib.term.Variable\
('var1')], {}), ([rdflib.term.Variable('title'), pname_{'prefix': 'dc', 'localname': 'title'}, rdflib.term.\
Variable('var2')], {})], 'where': GroupGraphPatternSub_{'part': [TriplesBlock_{'triples': [([rdflib.term.\
Variable('x'), PathAlternative_{'part': [PathSequence_{'part': [PathElt_{'part': pname_{'prefix': 'ns', \
'localname': 'price'}}]}]}, rdflib.term.Variable('p')], {}), ([rdflib.term.Variable('x'), PathAlternative_\
{'part': [PathSequence_{'part': [PathElt_{'part': pname_{'prefix': 'dc', 'localname': 'title'}}]}]}, rdflib.\
term.Variable('title')], {}), ([rdflib.term.Variable('x'), PathAlternative_{'part': [PathSequence_{'part': \
[PathElt_{'part': pname_{'prefix': 'ns', 'localname': 'discount'}}]}]}, rdflib.term.Variable('discount')], \
{})]}, OptionalGraphPattern_{'graph': TriplesBlock_{'triples': [([rdflib.term.Variable('title'), rdflib.term.\
URIRef('http://example.org/ns#price'), rdflib.term.Variable('var1')], {})]}}, OptionalGraphPattern_{'graph': \
TriplesBlock_{'triples': [([rdflib.term.Variable('title'), pname_{'prefix': 'dc', 'localname': 'title'}, \
rdflib.term.Variable('var2')], {})]}}]}}]"""

        self.assertEqual(res.strip(), expect)
Esempio n. 6
0
    def updater__accrue_interests(self, args):
        import os
        from src.bank import Bank
        from src.household import Household
        from src.firm import Firm
        from src.environment import Environment
        from src.transaction import Transaction
        from src.market import Market
        from src.updater import Updater

        text = "This test checks updater.accrue_interests \n"
        self.print_info(text)
        #
        # INITIALIZATION
        #
        environment_directory = str(args[0])
        identifier = str(args[1])
        log_directory = str(args[2])

        # Configure logging parameters so we get output while the program runs
        logging.basicConfig(format='%(asctime)s %(message)s',
                            datefmt='%m/%d/%Y %H:%M:%S',
                            filename=log_directory + identifier + ".log",
                            level=logging.INFO)
        logging.info(
            'START logging for test updater__accrue_interests in run: %s',
            environment_directory + identifier + ".xml")

        # Construct household filename
        environment = Environment(environment_directory, identifier)

        # generate a bank
        bank = Bank()
        bank.identifier = "test_bank"
        bank.interest_rate_deposits = 0.05
        environment.banks.append(bank)

        # generate a firm
        firm = Firm()
        firm.identifier = "test_firm"
        environment.firms.append(firm)

        # generate a household
        household = Household()
        household.identifier = "test_household"
        environment.households.append(household)

        #
        # TESTING
        #
        model = Updater(environment)
        model.__init__(environment)
        environment.new_transaction(
            "deposits", "",
            environment.get_agent_by_id("test_household").identifier,
            environment.get_agent_by_id("test_bank"), 10.0,
            environment.get_agent_by_id("test_bank").interest_rate_deposits, 0,
            -1)
        print(environment.get_agent_by_id("test_household"))
        print("Accruing interests\n")
        model.accrue_interests(environment, 0)
        print(environment.get_agent_by_id("test_household"))
Esempio n. 7
0
 def initialize(self,  environment):
     self.identifier = environment.identifier
     self.num_sweeps = int(environment.num_sweeps)
     self.updater = Updater(environment)
Esempio n. 8
0
 def initialize(self, environment):
     self.identifier = environment.identifier
     self.num_sweeps = int(environment.static_parameters['num_sweeps'])
     self.updater = Updater(environment)
Esempio n. 9
0
 def initialize(self, environment):
     self.environment = environment
     self.updater = Updater(self.environment)
     self.shocker = Shock()
Esempio n. 10
0
with open('./gitignored/info.txt', 'r') as file:
    token = file.readline().strip('\n')
    host = file.readline().strip('\n')
    username = file.readline().strip('\n')
    password = file.readline().strip('\n')

loop = asyncio.get_event_loop()
lock = asyncio.Lock()
bot = Bot(
    command_prefix='!',
    description='A bot that sends messages to individual people and channels'
    ' about news.')
db_context = DbContext(host, username, password)
notifier = Notifier(bot)
updater = Updater()
feed_reader = FeedReader()


@bot.event
async def on_ready():
    print('Logged in as')
    print(bot.user.name)
    print(bot.user.id)
    print('------')
    loop.create_task(updater.loop(loop, bot, feed_reader, notifier,
                                  db_context))


@bot.command(name='sub', pass_context=True)
async def subscribe(ctx):