winipedia-utils 0.1.50__py3-none-any.whl → 0.1.51__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
winipedia_utils/consts.py CHANGED
@@ -18,5 +18,6 @@ _DEV_DEPENDENCIES = [
18
18
  "types-defusedxml",
19
19
  "types-pyyaml",
20
20
  "pytest-mock",
21
+ "pytest-qt",
21
22
  "django-stubs",
22
23
  ]
@@ -67,10 +67,13 @@ def get_all_cls_from_module(module: ModuleType | str) -> list[type]:
67
67
 
68
68
  if isinstance(module, str):
69
69
  module = import_module(module)
70
+
71
+ # necessary for bindings packages like AESGCM from cryptography._rust backend
72
+ default = ModuleType("default")
70
73
  classes = [
71
74
  obj
72
75
  for _, obj in inspect.getmembers(module, inspect.isclass)
73
- if get_module_of_obj(obj).__name__ == module.__name__
76
+ if get_module_of_obj(obj, default).__name__ == module.__name__
74
77
  ]
75
78
  # sort by definition order
76
79
  return sorted(classes, key=get_def_line)
@@ -335,11 +335,12 @@ def get_def_line(obj: Any) -> int:
335
335
  return inspect.getsourcelines(unwrapped)[1]
336
336
 
337
337
 
338
- def get_module_of_obj(obj: Any) -> ModuleType:
338
+ def get_module_of_obj(obj: Any, default: ModuleType | None = None) -> ModuleType:
339
339
  """Return the module name where a method-like object is defined.
340
340
 
341
341
  Args:
342
342
  obj: Method-like object (funcs, method, property, staticmethod, classmethod...)
343
+ default: Default module to return if the module cannot be determined
343
344
 
344
345
  Returns:
345
346
  The module name as a string, or None if module cannot be determined.
@@ -349,6 +350,8 @@ def get_module_of_obj(obj: Any) -> ModuleType:
349
350
  module = inspect.getmodule(unwrapped)
350
351
  if not module:
351
352
  msg = f"Could not determine module of {obj}"
353
+ if default:
354
+ return default
352
355
  raise ValueError(msg)
353
356
  return module
354
357
 
@@ -29,7 +29,8 @@ class Notification(Toast): # type: ignore[misc]
29
29
  title: The title of the notification.
30
30
  text: The text of the notification.
31
31
  icon: The icon of the notification. Defaults to INFORMATION.
32
- duration: The duration of the notification in milliseconds. Defaults to 10000.
32
+ duration: The duration of the notification in milliseconds.
33
+ Defaults to 10000.
33
34
  """
34
35
  super().__init__(QApplication.activeWindow())
35
36
  self.setDuration(duration)
@@ -281,6 +281,6 @@ def _test_no_unitest_package_usage() -> None:
281
281
  if path == to_path(__name__, is_package=False):
282
282
  continue
283
283
  assert_with_msg(
284
- "unittest" not in path.read_text(),
284
+ "unittest" not in path.read_text(encoding="utf-8"),
285
285
  f"Found unittest usage in {path}. Use pytest instead.",
286
286
  )
@@ -59,9 +59,9 @@ def find_xml_namespaces(xml: str | StringIO) -> dict[str, str]:
59
59
  # Extract the namespaces from the root tag
60
60
  namespaces_: dict[str, str] = {}
61
61
  iter_ns = DefusedElementTree.iterparse(xml, events=["start-ns"])
62
- for _, elem in iter_ns:
63
- prefix, uri = elem
64
- namespaces_[prefix] = uri
62
+ for _, namespace_data in iter_ns:
63
+ prefix, uri = namespace_data
64
+ namespaces_[str(prefix)] = str(uri)
65
65
 
66
66
  namespaces_.pop("", None)
67
67
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: winipedia-utils
3
- Version: 0.1.50
3
+ Version: 0.1.51
4
4
  Summary: A package with many utility functions
5
5
  License: MIT
6
6
  Author: Winipedia
@@ -3,7 +3,7 @@ winipedia_utils/concurrent/__init__.py,sha256=Tu0ig4gVCk_f1n74G35hDwH-WS3P3STVQG
3
3
  winipedia_utils/concurrent/concurrent.py,sha256=hzcODH-EIruKXKDqGSqtWV0UZb5n8HOVdkrT3FctOro,8645
4
4
  winipedia_utils/concurrent/multiprocessing.py,sha256=18MapAuhN3rtHQQZ3vvQ3wb_erYkO74T9UWUCjXPOzc,4386
5
5
  winipedia_utils/concurrent/multithreading.py,sha256=myrHoSSc6UW86SdCz1OksQcAcq29-2Rk7fa1wTT89BM,3177
6
- winipedia_utils/consts.py,sha256=P-VbaPvjNockqppQ9cjSIEzf8iXzeEUHcVRaMOyGCCI,518
6
+ winipedia_utils/consts.py,sha256=wJYC9e-OoqAkj8QchrF6exbbjrlNWlyqQiY_yESKF9s,536
7
7
  winipedia_utils/data/__init__.py,sha256=9RZFoceil00La5TyNM1baF-fjfAKKV22auLSxvJ_QD0,49
8
8
  winipedia_utils/data/dataframe.py,sha256=7rRy4LDv-4bJeISUPsxrQqTiFI7ENSzk4gKaVgTWD04,281
9
9
  winipedia_utils/django/__init__.py,sha256=ZnI3rINKvT4m9K3eeGg9RVBjBPH73zaBhb0Qy4hLt5g,683
@@ -24,9 +24,9 @@ winipedia_utils/logging/ansi.py,sha256=54MIYKppssv-TBFavOAi28aCo4Cg--cChTzdjGsBX
24
24
  winipedia_utils/logging/config.py,sha256=NAXCxVRkEfkf119HCg1zrdP1l37DW4cFDHvKrBEjQ0o,2959
25
25
  winipedia_utils/logging/logger.py,sha256=tCcUwAVLVr3Bec7_i-SoKvBPNCJSEmyuvBW2gbqjPMk,727
26
26
  winipedia_utils/modules/__init__.py,sha256=e3CFaC3FhK4ibknFOv1bqOZxA7XeVwmLqWX7oajUm78,51
27
- winipedia_utils/modules/class_.py,sha256=KlMQAqhthW1vyR7hAD4PQKNIcPbnN8X6lccfsEPa8H8,3565
27
+ winipedia_utils/modules/class_.py,sha256=fe0czYVM-UWGVcv6YdiP6SfMfX1asb7HeiWp1yLJVbA,3696
28
28
  winipedia_utils/modules/function.py,sha256=cHLGiD7huPdfwUDdI0IlbB_Pd4woWGgbyvrsjivHBpc,2987
29
- winipedia_utils/modules/module.py,sha256=RAxEp_yLc7KyHke05ZmTkUCfKof_l4k6mRtLP4xBgL4,12884
29
+ winipedia_utils/modules/module.py,sha256=JTJiRp9h6dNGv4O00LzD0UMsbsayNitYmZushaur2ns,13046
30
30
  winipedia_utils/modules/package.py,sha256=8l8GuGGh3JDvDrj0rAs6AgcRfKYPSj3DJRx-zdjbB3Q,13105
31
31
  winipedia_utils/oop/__init__.py,sha256=wGjsVwLbTVEQWOfDJvN9nlvC-3NmAi8Doc2xIrm6e78,47
32
32
  winipedia_utils/oop/mixins/__init__.py,sha256=PDK-cJcdRUfDUCz36qQ5pmMW07G133WtN49OpmILGNI,54
@@ -55,7 +55,7 @@ winipedia_utils/pyside/ui/widgets/__init__.py,sha256=p-maJQh7gYbXwhkqKU4wL6UNGzR
55
55
  winipedia_utils/pyside/ui/widgets/browser.py,sha256=6PaymgIM7EL7tSoiyJ5So5Mt9JnOCdZIz9iAJ0x6mr8,8414
56
56
  winipedia_utils/pyside/ui/widgets/clickable_widget.py,sha256=TIQsLYnzgo7hyVjq_mKxo7IoSdwb20qt6JgkJj59ZVE,1779
57
57
  winipedia_utils/pyside/ui/widgets/media_player.py,sha256=09PM6XamO_NivAqLW4ZhXnbFSs8vSVGtQkERqeEkwjs,15924
58
- winipedia_utils/pyside/ui/widgets/notification.py,sha256=vtD3KZvQoFWYat_poDZCywsVNciScFeA8dGC1Bih2so,2532
58
+ winipedia_utils/pyside/ui/widgets/notification.py,sha256=FXNDFheLMWt57dVZhORrxU7uHhu7aMl8n8pDeqF5cU4,2557
59
59
  winipedia_utils/pyside/ui/windows/__init__.py,sha256=p-maJQh7gYbXwhkqKU4wL6UNGzRAy988JP8_qLoTZDk,24
60
60
  winipedia_utils/pyside/ui/windows/base/__init__.py,sha256=p-maJQh7gYbXwhkqKU4wL6UNGzRAy988JP8_qLoTZDk,24
61
61
  winipedia_utils/pyside/ui/windows/base/base.py,sha256=httMbYu5QiHevD_2SrUTLnFat9nsvSNAtjTL84tRUao,1496
@@ -88,13 +88,13 @@ winipedia_utils/testing/tests/base/fixtures/scopes/class_.py,sha256=XCx4HZeHbJJ-
88
88
  winipedia_utils/testing/tests/base/fixtures/scopes/function.py,sha256=5dW7-IPqJ_3Q2j1vftZL5FYKvNSKufqiHzLTTWYhja4,309
89
89
  winipedia_utils/testing/tests/base/fixtures/scopes/module.py,sha256=V0H9WFrdSV7uj__bXM_GKcCJnjResqI7fFjcxyvNaZk,1169
90
90
  winipedia_utils/testing/tests/base/fixtures/scopes/package.py,sha256=IKOfj6vfyjEQdRV5cJoPRQvALmePpGxWkGy23di00-w,309
91
- winipedia_utils/testing/tests/base/fixtures/scopes/session.py,sha256=Wdesvis8BleXjm93jK99JLX4u9Oy2dY0GIx_3ipXYXo,9624
91
+ winipedia_utils/testing/tests/base/fixtures/scopes/session.py,sha256=x584Sple-4_jTmbIvCk0YCV8gNHzkAko2PN0tH3wGuw,9640
92
92
  winipedia_utils/testing/tests/base/utils/__init__.py,sha256=mC-8dCkp8xarqkQu2QQLrPjHi6Ww9hcixWdHeQHWeRs,68
93
93
  winipedia_utils/testing/tests/base/utils/utils.py,sha256=dUPDrgAxlfREQb33zz23MfzacLLuwjy2AO-PQQp_aSI,2820
94
94
  winipedia_utils/testing/tests/conftest.py,sha256=8RounBlI8Jq1aLaLNpv84MW4ne8Qq0aavQextDOp5ng,920
95
95
  winipedia_utils/text/__init__.py,sha256=j2bwtK6kyeHI6SnoBjpRju0C1W2n2paXBDlNjNtaUxA,48
96
- winipedia_utils/text/string.py,sha256=1jbBftlgxffGgSlPnQh3aRPIr8XekEwpSenjFCW6JyM,3478
97
- winipedia_utils-0.1.50.dist-info/LICENSE,sha256=3PrKJ2CWNrnyyHaC_r0wPDSukVWgmjOxHr__eQVH7cw,1087
98
- winipedia_utils-0.1.50.dist-info/METADATA,sha256=eSdN4rUy5X_YrH5YRPpb4TwCOaY0Q3I3kJipkUkKxBw,12576
99
- winipedia_utils-0.1.50.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
100
- winipedia_utils-0.1.50.dist-info/RECORD,,
96
+ winipedia_utils/text/string.py,sha256=pK_VQXxSZa8HqHY1a6oMKfmN-OKteFE32eZaweCI22E,3508
97
+ winipedia_utils-0.1.51.dist-info/LICENSE,sha256=3PrKJ2CWNrnyyHaC_r0wPDSukVWgmjOxHr__eQVH7cw,1087
98
+ winipedia_utils-0.1.51.dist-info/METADATA,sha256=D8bNuYhq29m05i1tu4mGkZNc7ZCM4ihmqYnAprR6csE,12576
99
+ winipedia_utils-0.1.51.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
100
+ winipedia_utils-0.1.51.dist-info/RECORD,,