# User Details

- User Since
- Oct 13 2014, 5:50 AM (209 w, 4 d)
- Availability
- Available
- LDAP User
- Dalba
- MediaWiki User
- Dalba [ Global Accounts ]

# Sat, Oct 13

# Tue, Oct 9

I just found b9670d9afd006969322481bf321d27e4a815d362 and I'm wondering why it's not working.

# Mon, Oct 8

# Wed, Oct 3

# Sat, Sep 29

I remember that changing the "merge if necessary" option to "rebase" caused some issue for @Xqt.

I renamed `Pywikibot-core` to Pywikibot, but I don't have access for the diffusion part.

# Fri, Sep 28

# Thu, Sep 27

# Tue, Sep 25

Here is an idea (although I don't know how much it can help):

When a commit only affects a script, there is no need to run the all tests, just the related test module for that script, the other parts have already been tested in previous commits. This should work because the `pywikibot` directory modules do not depend on `scripts`.

# Mon, Sep 24

# Sun, Sep 23

I think the continue handling is going wrong here

# Sat, Sep 22

The wiki has fixed itself!

# Fri, Sep 21

Waiting for the upstream issue[1] to be fixed. Then we might be able to revert the patch.

# Sep 13 2018

Happening again:

Waiting for the upstream issue to be resolved, then we can remove the `!=1.8.0` limitation from `docs/requirements-py3.txt:5`.

This is an upstream issue in `rstcheck` package.

# Sep 11 2018

# Sep 10 2018

# Sep 9 2018

OK, I can reproduce now.

I cannot reproduce? What is your default site? (`mylang` and `family` in user-config.py)

# Sep 8 2018

`cryptography<2.3` is now removed from Python<=2.7.6 dependencies, which means that some users of those python versions may experience difficulties connecting to internet, but thats a `requests` package issue really and it's better than having an insecure dependency installed by pywikibot.

# Sep 7 2018

# Sep 6 2018

There is no `if __name__ == '__main__':` check in makecat.py. I belive https://gerrit.wikimedia.org/r/c/pywikibot/core/+/428143 will resolve this issue.

@Dragfyre , thanks for reporting the issue.

# Sep 3 2018

That sounds like a different issue (not a pywikibot normalization). https://tg.wikipedia.org/wiki/%D0%92%D0%B8%D0%B6%D0%B0:DoubleRedirects has the following entry:

Лоиҳа:Тоҷикистон (edit) → Википедиа:Лоиҳа:Тоҷикистон → Лоиҳа:Тоҷикистон

Naturally pywikibot is looking for the redirect target of `Лоиҳа:Тоҷикистон` (which is supposed to be `Википедиа:Лоиҳа:Тоҷикистон`), but `Лоиҳа:Тоҷикистон`is not a redirect in the first place: https://tg.wikipedia.org/wiki/%D0%9B%D0%BE%D0%B8%D2%B3%D0%B0:%D0%A2%D0%BE%D2%B7%D0%B8%D0%BA%D0%B8%D1%81%D1%82%D0%BE%D0%BD

# Sep 2 2018

I ran some test builds and it turned out that if only the specific failing tests are run, then they pass OK, but when running the whole test suite they fail. When the tests are failing the extension name is `Wikibase Client`.

# Aug 24 2018

# Aug 23 2018

I managed to minimize the issue to the following input:

# Aug 21 2018

# Aug 20 2018

I think the root cause of the issue is that sometimes the general SiteInfo is loaded using a CachedRequest from a cache file, but gets a new timestamp.

There are some packages like wcwidth that can detect the display width of a line, but even them are not 100% accurate. The real display width depends on other factros like user's installed fonts and unicode version. There are also some characters that when put next to each other form a typographic ligature and the width of them changes.

# Aug 19 2018

These are surrogate characters. Perhaps related to this note in the documentation of 2.7:

I set maxDiff to None and here is the result:

====================================================================== FAIL: test_category_cf (tests.tools_chars_tests.CharsTestCase) Test that all characters in _category_cf are actually in Cf. ---------------------------------------------------------------------- Traceback (most recent call last): File "c:\projects\pywikibot-core\tests\tools_chars_tests.py", line 48, in test_category_cf self.assertCountEqual(invalid.items(), []) File "c:\projects\pywikibot-core\tests\aspects.py", line 118, in assertCountEqual return self.assertItemsEqual(*args, **kwargs) AssertionError: Element counts were not equal: First has 1, Second has 0: (u'\ud804', 'Cs') First has 1, Second has 0: (u'\ud82f', 'Cs') First has 1, Second has 0: (u'\udc20', 'Cs') First has 1, Second has 0: (u'\udca3', 'Cs') First has 1, Second has 0: (u'\udc24', 'Cs') First has 1, Second has 0: (u'\udc28', 'Cs') First has 1, Second has 0: (u'\udc2c', 'Cs') First has 1, Second has 0: (u'\udc30', 'Cs') First has 1, Second has 0: (u'\ud834', 'Cs') First has 1, Second has 0: (u'\udc38', 'Cs') First has 1, Second has 0: (u'\udc3c', 'Cs') First has 1, Second has 0: (u'\udc40', 'Cs') First has 1, Second has 0: (u'\udc44', 'Cs') First has 1, Second has 0: (u'\udc48', 'Cs') First has 1, Second has 0: (u'\udc4c', 'Cs') First has 1, Second has 0: (u'\udc50', 'Cs') First has 1, Second has 0: (u'\udc54', 'Cs') First has 1, Second has 0: (u'\udc58', 'Cs') First has 1, Second has 0: (u'\udc5c', 'Cs') First has 1, Second has 0: (u'\udc60', 'Cs') First has 1, Second has 0: (u'\udc64', 'Cs') First has 1, Second has 0: (u'\udc68', 'Cs') First has 1, Second has 0: (u'\udc6c', 'Cs') First has 1, Second has 0: (u'\udc70', 'Cs') First has 1, Second has 0: (u'\udc74', 'Cs') First has 1, Second has 0: (u'\udd76', 'Cs') First has 1, Second has 0: (u'\udc78', 'Cs') First has 1, Second has 0: (u'\udd7a', 'Cs') First has 1, Second has 0: (u'\udc7c', 'Cs') First has 1, Second has 0: (u'\udca0', 'Cs') First has 1, Second has 0: (u'\udc23', 'Cs') First has 1, Second has 0: (u'\udc27', 'Cs') First has 1, Second has 0: (u'\udc2b', 'Cs') First has 1, Second has 0: (u'\udc2f', 'Cs') First has 1, Second has 0: (u'\udc33', 'Cs') First has 1, Second has 0: (u'\udc37', 'Cs') First has 1, Second has 0: (u'\udc3b', 'Cs') First has 1, Second has 0: (u'\udc3f', 'Cs') First has 1, Second has 0: (u'\udc43', 'Cs') First has 1, Second has 0: (u'\udc47', 'Cs') First has 1, Second has 0: (u'\udc4b', 'Cs') First has 1, Second has 0: (u'\udc4f', 'Cs') First has 1, Second has 0: (u'\udc53', 'Cs') First has 1, Second has 0: (u'\udc57', 'Cs') First has 1, Second has 0: (u'\udc5b', 'Cs') First has 1, Second has 0: (u'\udc5f', 'Cs') First has 1, Second has 0: (u'\udc63', 'Cs') First has 1, Second has 0: (u'\udc7a', 'Cs') First has 1, Second has 0: (u'\udc67', 'Cs') First has 1, Second has 0: (u'\udc6b', 'Cs') First has 1, Second has 0: (u'\udc6f', 'Cs') First has 1, Second has 0: (u'\udc73', 'Cs') First has 1, Second has 0: (u'\udd75', 'Cs') First has 1, Second has 0: (u'\udc77', 'Cs') First has 1, Second has 0: (u'\udd79', 'Cs') First has 1, Second has 0: (u'\udc7b', 'Cs') First has 1, Second has 0: (u'\udc7f', 'Cs') First has 1, Second has 0: (u'\udca1', 'Cs') First has 1, Second has 0: (u'\udc22', 'Cs') First has 1, Second has 0: (u'\udc26', 'Cs') First has 1, Second has 0: (u'\udc2a', 'Cs') First has 1, Second has 0: (u'\udc2e', 'Cs') First has 1, Second has 0: (u'\udc32', 'Cs') First has 1, Second has 0: (u'\udc36', 'Cs') First has 1, Second has 0: (u'\udc3a', 'Cs') First has 1, Second has 0: (u'\udcbd', 'Cs') First has 1, Second has 0: (u'\udc34', 'Cs') First has 1, Second has 0: (u'\udb40', 'Cs') First has 1, Second has 0: (u'\udc42', 'Cs') First has 1, Second has 0: (u'\udc46', 'Cs') First has 1, Second has 0: (u'\udc4a', 'Cs') First has 1, Second has 0: (u'\udccd', 'Cs') First has 1, Second has 0: (u'\udc4e', 'Cs') First has 1, Second has 0: (u'\udc52', 'Cs') First has 1, Second has 0: (u'\udc56', 'Cs') First has 1, Second has 0: (u'\udc5a', 'Cs') First has 1, Second has 0: (u'\udc5e', 'Cs') First has 1, Second has 0: (u'\udc62', 'Cs') First has 1, Second has 0: (u'\udc66', 'Cs') First has 1, Second has 0: (u'\udc6a', 'Cs') First has 1, Second has 0: (u'\udc6e', 'Cs') First has 1, Second has 0: (u'\udc72', 'Cs') First has 1, Second has 0: (u'\udd74', 'Cs') First has 1, Second has 0: (u'\udc76', 'Cs') First has 1, Second has 0: (u'\udd78', 'Cs') First has 1, Second has 0: (u'\udc3e', 'Cs') First has 1, Second has 0: (u'\udc7e', 'Cs') First has 1, Second has 0: (u'\udc01', 'Cs') First has 1, Second has 0: (u'\udc21', 'Cs') First has 1, Second has 0: (u'\udca2', 'Cs') First has 1, Second has 0: (u'\udc25', 'Cs') First has 1, Second has 0: (u'\udc29', 'Cs') First has 1, Second has 0: (u'\udc2d', 'Cs') First has 1, Second has 0: (u'\udc31', 'Cs') First has 1, Second has 0: (u'\udc35', 'Cs') First has 1, Second has 0: (u'\udc39', 'Cs') First has 1, Second has 0: (u'\udc3d', 'Cs') First has 1, Second has 0: (u'\udc41', 'Cs') First has 1, Second has 0: (u'\udc45', 'Cs') First has 1, Second has 0: (u'\udc49', 'Cs') First has 1, Second has 0: (u'\udc4d', 'Cs') First has 1, Second has 0: (u'\udc51', 'Cs') First has 1, Second has 0: (u'\udc55', 'Cs') First has 1, Second has 0: (u'\udc59', 'Cs') First has 1, Second has 0: (u'\udc5d', 'Cs') First has 1, Second has 0: (u'\udc61', 'Cs') First has 1, Second has 0: (u'\udc65', 'Cs') First has 1, Second has 0: (u'\udc69', 'Cs') First has 1, Second has 0: (u'\udc6d', 'Cs') First has 1, Second has 0: (u'\udc71', 'Cs') First has 1, Second has 0: (u'\udd73', 'Cs') First has 1, Second has 0: (u'\udc75', 'Cs') First has 1, Second has 0: (u'\udd77', 'Cs') First has 1, Second has 0: (u'\udc79', 'Cs') First has 1, Second has 0: (u'\udc7d', 'Cs')

But I don't see these characters in `_category_cf`. What's going on?

It's only failing on Python 2.7.x and it's because of the old Unicode versions there. I don't think it's worth finding the exact characters that were not in Cf category in order to exempt them. I'd suggest skipping this test on 2.7.

# Aug 18 2018

Could you be more specific about the lines with false positive?