def tests() -> None: import pytest from magic import multiverse, oracle multiverse.init() oracle.init() code = pytest.main(sys.argv[2:]) sys.exit(code)
def task(args: List[str]) -> None: module = args[1] if module == 'scraper': module = 'scrapers' if module == 'scrapers': module = 'decksite.scrapers' name = args.pop() from decksite.main import APP APP.config['SERVER_NAME'] = '127:0.0.1:5000' with APP.app_context(): from magic import oracle, multiverse multiverse.init() if name != 'reprime_cache': oracle.init() if name == 'all': m = importlib.import_module('{module}'.format(module=module)) # pylint: disable=unused-variable for importer, modname, ispkg in pkgutil.iter_modules( m.__path__): # type: ignore s = importlib.import_module('{module}.{name}'.format( name=modname, module=module)) if getattr(s, 'scrape', None) is not None: s.scrape() # type: ignore elif getattr(s, 'run', None) is not None: s.run() # type: ignore else: s = importlib.import_module('{module}.{name}'.format( name=name, module=module)) if getattr(s, 'scrape', None) is not None: s.scrape() # type: ignore elif getattr(s, 'run', None) is not None: s.run() # type: ignore # Only when called directly, not in 'all' elif getattr(s, 'ad_hoc', None) is not None: s.ad_hoc() # type: ignore
def run(): multiverse.update_cache() oracle.init() ds = deck.load_decks() for d in ds: deck.prime_cache(d) return 'Done'
def runtests(argv: List[str], m: str, mark: bool) -> None: """ Literally just prepare the DB and then invoke pytest. """ args = argv.copy() if mark: if args and not args[0].startswith('-'): to_find = args.pop(0) args.extend(find_files(to_find, 'py')) args.extend(['-x', '-m', m]) argstr = ' '.join(args) print(f'>>>> Running tests with "{argstr}"') # pylint: disable=import-outside-toplevel import pytest from magic import fetcher, multiverse, oracle multiverse.init() oracle.init() try: fetcher.sitemap() except fetcher.FetchException: print(f'Config was pointed at {fetcher.decksite_url()}, but it doesnt appear to be listening.') for k in ['decksite_hostname', 'decksite_port', 'decksite_protocol']: configuration.CONFIG[k] = configuration.DEFAULTS[k] code = pytest.main(args) if os.environ.get('TRAVIS') == 'true': upload_coverage() if code: raise TestFailedException(code)
def task(args: List[str]) -> None: module = args[1] if module == 'scraper': module = 'scrapers' if module == 'scrapers': module = 'decksite.scrapers' name = args.pop() from magic import oracle, multiverse multiverse.init() if name != 'reprime_cache': oracle.init() if name == 'all': run_all_tasks(module) else: s = importlib.import_module('{module}.{name}'.format(name=name, module=module)) if getattr(s, 'REQUIRES_APP_CONTEXT', True): from decksite.main import APP APP.config['SERVER_NAME'] = configuration.server_name() APP.app_context().__enter__( ) # Technically we should __exit__() at the end, but since we're terminating... if getattr(s, 'scrape', None) is not None: s.scrape() # type: ignore elif getattr(s, 'run', None) is not None: s.run() # type: ignore # Only when called directly, not in 'all' elif getattr(s, 'ad_hoc', None) is not None: s.ad_hoc() # type: ignore
def run() -> None: multiverse.rebuild_cache() oracle.init() archetype.preaggregate() person.preaggregate() card.preaggregate() deck.preaggregate() season.preaggregate()
async def update(self, channel: TextChannel, **_: Dict[str, Any]) -> None: """Forces an update to legal cards and bugs.""" oracle.legal_cards(force=True) multiverse.update_bugged_cards() multiverse.update_cache() multiverse.reindex() oracle.init(force=True) await channel.send('Reloaded legal cards and bugs.')
def init() -> None: client = Bot() logging.info('Initializing Cards DB') multiverse.init() asyncio.ensure_future(multiverse.update_bugged_cards_async()) oracle.init() logging.info('Connecting to Discord') client.run(configuration.get_str('token'))
async def update(ctx: MtgContext) -> None: """Forces an update to legal cards and bugs.""" await ctx.send('Begun reloading legal cards and bugs.') multiverse.set_legal_cards() oracle.legal_cards(force=True) multiverse.update_bugged_cards() multiverse.rebuild_cache() multiverse.reindex() oracle.init(force=True) await ctx.send('Reloaded legal cards and bugs.')
def run(): multiverse.update_cache() oracle.init() ds = deck.load_decks() for d in ds: redis.clear(f'decksite:deck:{d.id}') deck.prime_cache(d) archetype.preaggregate() card.preaggregate() deck.preaggregate_omw() return 'Done'
def tests(argv: List[str]) -> None: """ Literally just prepare the DB and then invoke pytest. """ import pytest from magic import multiverse, oracle multiverse.init() oracle.init() code = pytest.main(argv) if code: sys.exit(code)
def run() -> None: multiverse.update_cache() oracle.init() ds = deck.load_decks() for d in ds: redis.clear(f'decksite:deck:{d.id}') deck.prime_cache(d) redis.clear(f'decksite:deck:{d.id}') archetype.preaggregate() person.preaggregate() card.preaggregate() deck.preaggregate_omw() rule.cache_all_rules()
def run() -> None: multiverse.rebuild_cache() oracle.init() ds = deck.load_decks() for d in ds: redis.clear(f'decksite:deck:{d.id}') deck.prime_cache(d) redis.clear(f'decksite:deck:{d.id}') archetype.preaggregate() person.preaggregate() card.preaggregate() deck.preaggregate() season.preaggregate()
def task(args: List[str]) -> None: try: module = args[0] if module == 'scraper': module = 'scrapers' if module == 'scrapers': module = 'decksite.scrapers' name = args[1] from magic import multiverse, oracle multiverse.init() if name != 'reprime_cache': oracle.init() if name == 'all': run_all_tasks(module) elif name == 'hourly': run_all_tasks(module, 'HOURLY') else: s = importlib.import_module('{module}.{name}'.format( name=name, module=module)) use_app_context = getattr(s, 'REQUIRES_APP_CONTEXT', True) if use_app_context: from decksite.main import APP APP.config['SERVER_NAME'] = configuration.server_name() app_context = APP.app_context() # type: ignore app_context.__enter__() # type: ignore if getattr(s, 'scrape', None) is not None: exitcode = s.scrape(*args[2:]) # type: ignore elif getattr(s, 'run', None) is not None: exitcode = s.run() # type: ignore # Only when called directly, not in 'all' elif getattr(s, 'ad_hoc', None) is not None: exitcode = s.ad_hoc() # type: ignore if use_app_context: app_context.__exit__(None, None, None) if exitcode is not None: sys.exit(exitcode) except Exception as c: from shared import repo repo.create_issue(f'Error running task {args}', 'CLI', 'CLI', 'PennyDreadfulMTG/perf-reports', exception=c) raise
def test(argv: List[str], m: str) -> None: """ Literally just prepare the DB and then invoke pytest. """ print(f'>>>> Running tests with "{m}"') # pylint: disable=import-outside-toplevel import pytest from magic import multiverse, oracle multiverse.init() oracle.init() args = argv.copy() if args and not args[0].startswith('-'): to_find = args.pop(0) args.extend(find_files(to_find, 'py')) args.extend(['--cov-report=', '-x', '-m', m]) code = pytest.main(args) if os.environ.get('TRAVIS') == 'true': upload_coverage() if code: raise TestFailedException(code)
def run(): if len(sys.argv) == 0: print('No entry point specified.') sys.exit(1) if 'discordbot' in sys.argv: from discordbot import bot bot.init() elif 'decksite' in sys.argv: from decksite import main main.init() elif 'decksite-profiler' in sys.argv: from werkzeug.contrib.profiler import ProfilerMiddleware from decksite import main main.APP.config['PROFILE'] = True main.APP.wsgi_app = ProfilerMiddleware(main.APP.wsgi_app, restrictions=[30]) main.init() elif 'price_grabber' in sys.argv: from price_grabber import price_grabber price_grabber.run() elif 'srv_price' in sys.argv: from price_grabber import srv_prices srv_prices.init() elif sys.argv[1] in ['scraper', 'scrapers', 'maintenance']: task(sys.argv) elif 'tests' in sys.argv: import pytest from magic import multiverse, oracle multiverse.init() oracle.init() sys.argv.remove('tests') code = pytest.main() sys.exit(code) else: print("You didn't tell me what to run or I don't recognize that name") sys.exit(1) sys.exit(0)
item['current'] = item.get('endpoint', '').replace( 'seasons', '').replace('.', '') == current_template or current_template in [ entry.get('endpoint', '') for entry in item.get('submenu', []) ] item['has_submenu'] = item.get('submenu') is not None return menu def setup_links(menu: List[Dict[str, Any]]) -> None: for item in menu: if item.get('endpoint'): item['url'] = url_for(item.get('endpoint', '')) item['is_external'] = cast(str, item.get('url', '')).startswith( 'http') and '://pennydreadfulmagic.com/' not in item['url'] setup_links(item.get('submenu', [])) try: oracle.init() except DatabaseException as e: print( "Unable to initialize oracle. I'll build it now. If this is happening on user time this is bad.", e) multiverse.init() oracle.init() from decksite.controllers import admin # isort:skip # pylint: disable=wrong-import-position from .data import deck # isort:skip # pylint: disable=wrong-import-position APP.config['menu'] = build_menu
def init() -> None: multiverse.init() oracle.init() SRV.run(port=5800, host='0.0.0.0')
def run() -> None: multiverse.init() oracle.init() fetch() price.cache()
def init(self) -> None: multiverse.init() multiverse.update_bugged_cards() oracle.init() self.searcher = WhooshSearcher() self.client.run(configuration.get('token'))
def init(self) -> None: multiverse.init() multiverse.update_bugged_cards() oracle.init() discordbot.commands.setup(self) self.run(configuration.get('token'))
def init() -> None: client = Bot() multiverse.init() asyncio.ensure_future(multiverse.update_bugged_cards_async()) oracle.init() client.run(configuration.get_str('token'))
def init(self) -> None: multiverse.init() multiverse.update_bugged_cards() oracle.init() self.run(configuration.get('token'))