当前位置: 首页>>代码示例>>Python>>正文


Python api.CachedRequest类代码示例

本文整理汇总了Python中pywikibot.data.api.CachedRequest的典型用法代码示例。如果您正苦于以下问题:Python CachedRequest类的具体用法?Python CachedRequest怎么用?Python CachedRequest使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了CachedRequest类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: refresh

def refresh(site, sysop=False):
    """Fetch the watchlist."""
    if not site.logged_in(sysop=sysop):
        site.login(sysop=sysop)

    params = {
        'action': 'query',
        'list': 'watchlistraw',
        'wrlimit': config.special_page_limit,
    }

    pywikibot.output(u'Retrieving watchlist for %s via API.' % str(site))
    # pywikibot.put_throttle() # It actually is a get, but a heavy one.
    watchlist = []
    while True:
        req = CachedRequest(config.API_config_expiry, site=site, **params)
        data = req.submit()
        if 'error' in data:
            raise RuntimeError('ERROR: %s' % data)
        watchlist.extend([w['title'] for w in data['watchlistraw']])

        if 'query-continue' in data:
            params.update(data['query-continue']['watchlistraw'])
        else:
            break
    return watchlist
开发者ID:donkaban,项目名称:pywiki-bot,代码行数:26,代码来源:watchlist.py

示例2: setUp

 def setUp(self):
     super(DryCachedRequestTests, self).setUp()
     self.parms = {"site": self.basesite, "action": "query", "meta": "userinfo"}
     self.req = CachedRequest(expiry=1, **self.parms)
     self.expreq = CachedRequest(expiry=0, **self.parms)
     self.diffreq = CachedRequest(expiry=1, site=self.basesite, action="query", meta="siteinfo")
     self.diffsite = CachedRequest(expiry=1, site=self.altsite, action="query", meta="userinfo")
开发者ID:emijrp,项目名称:pywikibot-core,代码行数:7,代码来源:dry_api_tests.py

示例3: setUp

 def setUp(self):
     self.parms = {'site': pywikibot.Site('en'),
                   'action': 'query',
                   'meta': 'userinfo'}
     self.req = CachedRequest(expiry=1, **self.parms)
     self.expreq = CachedRequest(expiry=0, **self.parms)
     self.diffreq = CachedRequest(expiry=1, site=pywikibot.Site('en'), action='query', meta='siteinfo')
     self.diffsite = CachedRequest(expiry=1, site=pywikibot.Site('de'), action='query', meta='userinfo')
开发者ID:Aaron1011,项目名称:pywikibot-core,代码行数:8,代码来源:dry_api_tests.py

示例4: setUp

 def setUp(self):
     super(DryCachedRequestTests, self).setUp()
     self.parms = {'site': self.basesite,
                   'action': 'query',
                   'meta': 'userinfo'}
     self.req = CachedRequest(expiry=1, **self.parms)
     self.expreq = CachedRequest(expiry=0, **self.parms)
     self.diffreq = CachedRequest(expiry=1, site=self.basesite, action='query', meta='siteinfo')
     self.diffsite = CachedRequest(expiry=1, site=self.altsite, action='query', meta='userinfo')
开发者ID:valhallasw,项目名称:pywikibot-core,代码行数:9,代码来源:dry_api_tests.py

示例5: test_unicode

    def test_unicode(self):
        """Test caching with Unicode content."""
        self.mocksite._userinfo = {'name': u'محمد الفلسطيني'}
        self.mocksite._loginstatus = 0

        req = CachedRequest(expiry=1, site=self.mocksite,
                            parameters={'action': 'query', 'meta': 'siteinfo'})
        en_user_path = req._cachefile_path()

        self.mocksite._namespaces = {2: [u'مستخدم']}

        req = CachedRequest(expiry=1, site=self.mocksite,
                            parameters={'action': 'query', 'meta': 'siteinfo'})

        expect = (u'MockSite()User(User:محمد الفلسطيني)' +
                  "[('action', 'query'), ('meta', 'siteinfo')]")

        self.assertEqual(repr(req._uniquedescriptionstr()), repr(expect))

        self.assertEqual(req._uniquedescriptionstr().encode('utf-8'),
                         expect.encode('utf-8'))

        ar_user_path = req._cachefile_path()

        self.assertEqual(en_user_path, ar_user_path)
开发者ID:AbdealiJK,项目名称:pywikibot-core,代码行数:25,代码来源:dry_api_tests.py

示例6: refresh_all

def refresh_all(sysop=False):
    """Reload watchlists for all wikis where a watchlist is already present."""
    cache_path = CachedRequest._get_cache_dir()
    files = os.listdir(cache_path)
    seen = []
    for filename in files:
        entry = CacheEntry(cache_path, filename)
        entry._load_cache()
        entry.parse_key()
        entry._rebuild()
        if entry.site not in seen:
            if entry._data.get('watchlistraw'):
                refresh(entry.site, sysop)
                seen.append(entry.site)
开发者ID:runt18,项目名称:pywikibot-core,代码行数:14,代码来源:watchlist.py

示例7: setUp

 def setUp(self):
     """Initialize the fake requests."""
     super(DryCachedRequestTests, self).setUp()
     self.parms = {"action": "query", "meta": "userinfo"}
     self.req = CachedRequest(expiry=1, site=self.basesite, parameters=self.parms)
     self.expreq = CachedRequest(expiry=0, site=self.basesite, parameters=self.parms)
     self.diffreq = CachedRequest(expiry=1, site=self.basesite, parameters={"action": "query", "meta": "siteinfo"})
     self.diffsite = CachedRequest(expiry=1, site=self.altsite, parameters={"action": "query", "meta": "userinfo"})
     # When using ** the paramters are still unicode
     self.deprecated_explicit = CachedRequest(expiry=1, site=self.basesite, action="query", meta="userinfo")
     self.deprecated_asterisks = CachedRequest(expiry=1, site=self.basesite, **self.parms)
开发者ID:TridevGuha,项目名称:pywikibot-core,代码行数:11,代码来源:dry_api_tests.py

示例8: test_cachefile_path_different_users

    def test_cachefile_path_different_users(self):
        # Mock basesite object to test this.
        class MockSite(pywikibot.site.APISite):

            _loginstatus = pywikibot.site.LoginStatus.NOT_ATTEMPTED

            _namespaces = {2: 'User'}

            def __init__(self):
                self._user = 'anon'

            def user(self):
                return self._user

            def encoding(self):
                return 'utf-8'

            def encodings(self):
                return []

            def _getsiteinfo(self):
                self._siteinfo = {'case': 'first-letter'}
                return {}

            def __repr__(self):
                return "MockSite()"

            def __getattr__(self, attr):
                raise Exception("Attribute %r not defined" % attr)

        site = MockSite()
        req = CachedRequest(expiry=1, site=site, action='query', meta='siteinfo')
        anonpath = req._cachefile_path()

        site._userinfo = {'name': u'user'}
        site._loginstatus = 0
        req = CachedRequest(expiry=1, site=site, action='query', meta='siteinfo')
        userpath = req._cachefile_path()

        self.assertNotEqual(anonpath, userpath)

        site._userinfo = {'name': u'sysop'}
        site._loginstatus = 1
        req = CachedRequest(expiry=1, site=site, action='query', meta='siteinfo')
        sysoppath = req._cachefile_path()

        self.assertNotEqual(anonpath, sysoppath)
        self.assertNotEqual(userpath, sysoppath)
开发者ID:APerson241,项目名称:pywikibot-core,代码行数:48,代码来源:dry_api_tests.py

示例9: test_cachefile_path_different_users

    def test_cachefile_path_different_users(self):
        req = CachedRequest(expiry=1, site=self.mocksite, action="query", meta="siteinfo")
        anonpath = req._cachefile_path()

        self.mocksite._userinfo = {"name": "MyUser"}
        self.mocksite._loginstatus = 0
        req = CachedRequest(expiry=1, site=self.mocksite, action="query", meta="siteinfo")
        userpath = req._cachefile_path()

        self.assertNotEqual(anonpath, userpath)

        self.mocksite._userinfo = {"name": "MySysop"}
        self.mocksite._loginstatus = 1
        req = CachedRequest(expiry=1, site=self.mocksite, action="query", meta="siteinfo")
        sysoppath = req._cachefile_path()

        self.assertNotEqual(anonpath, sysoppath)
        self.assertNotEqual(userpath, sysoppath)
开发者ID:emijrp,项目名称:pywikibot-core,代码行数:18,代码来源:dry_api_tests.py

示例10: setUp

 def setUp(self):
     """Initialize the fake requests."""
     super(DryCachedRequestTests, self).setUp()
     self.parms = {'action': 'query',
                   'meta': 'userinfo'}
     self.req = CachedRequest(expiry=1, site=self.basesite,
                              parameters=self.parms)
     self.expreq = CachedRequest(expiry=0, site=self.basesite,
                                 parameters=self.parms)
     self.diffreq = CachedRequest(
         expiry=1, site=self.basesite,
         parameters={'action': 'query', 'meta': 'siteinfo'})
     self.diffsite = CachedRequest(
         expiry=1, site=self.altsite,
         parameters={'action': 'query', 'meta': 'userinfo'})
     # When using ** the paramters are still unicode
     self.deprecated_explicit = CachedRequest(
         expiry=1, site=self.basesite, action='query', meta='userinfo')
     self.deprecated_asterisks = CachedRequest(
         expiry=1, site=self.basesite, **self.parms)
开发者ID:AbdealiJK,项目名称:pywikibot-core,代码行数:20,代码来源:dry_api_tests.py

示例11: test_unicode

    def test_unicode(self):
        self.mocksite._userinfo = {"name": "محمد الفلسطيني"}
        self.mocksite._loginstatus = 0

        req = CachedRequest(expiry=1, site=self.mocksite, action="query", meta="siteinfo")
        en_user_path = req._cachefile_path()

        self.mocksite._namespaces = {2: ["مستخدم"]}

        req = CachedRequest(expiry=1, site=self.mocksite, action="query", meta="siteinfo")

        expect = "MockSite()User(User:محمد الفلسطيني)" + "[('action', 'query'), ('meta', 'siteinfo')]"

        self.assertEqual(repr(req._uniquedescriptionstr()), repr(expect))

        self.assertEqual(req._uniquedescriptionstr().encode("utf-8"), expect.encode("utf-8"))

        ar_user_path = req._cachefile_path()

        self.assertEqual(en_user_path, ar_user_path)
开发者ID:emijrp,项目名称:pywikibot-core,代码行数:20,代码来源:dry_api_tests.py

示例12: test_cachefile_path_different_users

    def test_cachefile_path_different_users(self):
        req = CachedRequest(expiry=1, site=self.mocksite,
                            action='query', meta='siteinfo')
        anonpath = req._cachefile_path()

        self.mocksite._userinfo = {'name': u'MyUser'}
        self.mocksite._loginstatus = 0
        req = CachedRequest(expiry=1, site=self.mocksite,
                            action='query', meta='siteinfo')
        userpath = req._cachefile_path()

        self.assertNotEqual(anonpath, userpath)

        self.mocksite._userinfo = {'name': u'MySysop'}
        self.mocksite._loginstatus = 1
        req = CachedRequest(expiry=1, site=self.mocksite,
                            action='query', meta='siteinfo')
        sysoppath = req._cachefile_path()

        self.assertNotEqual(anonpath, sysoppath)
        self.assertNotEqual(userpath, sysoppath)
开发者ID:skamithi,项目名称:pywikibot-core,代码行数:21,代码来源:dry_api_tests.py

示例13: test_cachefile_path_different_users

    def test_cachefile_path_different_users(self):
        """Test and compare the file paths when different usernames are used."""
        req = CachedRequest(expiry=1, site=self.mocksite,
                            parameters={'action': 'query', 'meta': 'siteinfo'})
        anonpath = req._cachefile_path()

        self.mocksite._userinfo = {'name': u'MyUser'}
        self.mocksite._loginstatus = 0
        req = CachedRequest(expiry=1, site=self.mocksite,
                            parameters={'action': 'query', 'meta': 'siteinfo'})
        userpath = req._cachefile_path()

        self.assertNotEqual(anonpath, userpath)

        self.mocksite._userinfo = {'name': u'MySysop'}
        self.mocksite._loginstatus = 1
        req = CachedRequest(expiry=1, site=self.mocksite,
                            parameters={'action': 'query', 'meta': 'siteinfo'})
        sysoppath = req._cachefile_path()

        self.assertNotEqual(anonpath, sysoppath)
        self.assertNotEqual(userpath, sysoppath)
开发者ID:AbdealiJK,项目名称:pywikibot-core,代码行数:22,代码来源:dry_api_tests.py

示例14: test_unicode

    def test_unicode(self):
        self.mocksite._userinfo = {'name': u'محمد الفلسطيني'}
        self.mocksite._loginstatus = 0

        req = CachedRequest(expiry=1, site=self.mocksite,
                            action='query', meta='siteinfo')
        en_user_path = req._cachefile_path()

        self.mocksite._namespaces = {2: [u'مستخدم']}

        req = CachedRequest(expiry=1, site=self.mocksite,
                            action='query', meta='siteinfo')

        expect = u'MockSite()User(User:محمد الفلسطيني)' + \
                  "[('action', 'query'), ('meta', 'siteinfo')]"

        self.assertEqual(repr(req._uniquedescriptionstr()), repr(expect))

        self.assertEqual(req._uniquedescriptionstr().encode('utf-8'),
                         expect.encode('utf-8'))

        ar_user_path = req._cachefile_path()

        self.assertEqual(en_user_path, ar_user_path)
开发者ID:Exal117,项目名称:pywikibot-core,代码行数:24,代码来源:dry_api_tests.py

示例15: load_tests

            test_list.append(module_class_name)

    tests = loader.loadTestsFromNames(test_list)
    suite = unittest.TestSuite()
    suite.addTests(tests)
    return suite


def load_tests(loader=unittest.loader.defaultTestLoader,
               tests=None, pattern=None):
    """Load the default modules."""
    return collector(loader)


CachedRequest._get_cache_dir = staticmethod(
    lambda *args: CachedRequest._make_dir(_cache_dir))


# Travis-CI builds are set to retry twice, which aims to reduce the number
# of 'red' builds caused by intermittant server problems, while also avoiding
# the builds taking a long time due to retries.
# The following allows builds to retry twice, but higher default values are
# overridden here to restrict retries to only 1, so developer builds fail more
# frequently in code paths resulting from mishandled server problems.
if config.max_retries > 2:
    print('max_retries reduced from %d to 1 for tests' % config.max_retries)
    config.max_retries = 1

cache_misses = 0
cache_hits = 0
开发者ID:rubin16,项目名称:pywikibot-core,代码行数:30,代码来源:__init__.py


注:本文中的pywikibot.data.api.CachedRequest类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。