py2ls 0.1.4.4__tar.gz → 0.1.4.6__tar.gz

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.
Files changed (119) hide show
  1. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/PKG-INFO +139 -2
  2. py2ls-0.1.4.6/py2ls/.DS_Store +0 -0
  3. py2ls-0.1.4.6/py2ls/.git/COMMIT_EDITMSG +1 -0
  4. py2ls-0.1.4.6/py2ls/.git/FETCH_HEAD +1 -0
  5. py2ls-0.1.4.6/py2ls/.git/index +0 -0
  6. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/logs/HEAD +5 -0
  7. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/logs/refs/heads/main +5 -0
  8. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/logs/refs/remotes/origin/HEAD +12 -0
  9. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/logs/refs/remotes/origin/main +4 -0
  10. py2ls-0.1.4.6/py2ls/.git/objects/1a/b4585881a6a42889f01aa0cfe25fd5acfaf46f +0 -0
  11. py2ls-0.1.4.6/py2ls/.git/objects/50/08ddfcf53c02e82d7eee2e57c38e5672ef89f6 +0 -0
  12. py2ls-0.1.4.6/py2ls/.git/objects/53/e0deb1cb4c2c606bced6e7f9a66b0fda60980d +0 -0
  13. py2ls-0.1.4.6/py2ls/.git/objects/56/e4e8b2d5545e0256090f45aa8fc42c5fe067d0 +0 -0
  14. py2ls-0.1.4.6/py2ls/.git/objects/62/7c81b23b4e56e87b042b650b0103653cc9e34a +0 -0
  15. py2ls-0.1.4.6/py2ls/.git/objects/62/d90ccf8cbefdc2e4fd475e7c6f4f76e9fdf801 +3 -0
  16. py2ls-0.1.4.6/py2ls/.git/objects/6a/52e747a2b349b128d1490d9e896d2323818eb7 +0 -0
  17. py2ls-0.1.4.6/py2ls/.git/objects/6c/cebb29b7f3f5b0c889f6dadbf9ff066554587d +0 -0
  18. py2ls-0.1.4.6/py2ls/.git/objects/71/36b2074a2754be8b58127d82250e5b37e3c373 +0 -0
  19. py2ls-0.1.4.6/py2ls/.git/objects/81/8f26b7bf042269729020cf944fc362d66ba27e +0 -0
  20. py2ls-0.1.4.6/py2ls/.git/objects/84/59071b722a255b774a80b27746033f8141ab39 +0 -0
  21. py2ls-0.1.4.6/py2ls/.git/objects/8b/84f56978e1de8f2ae82abce5f8b3e182d365cd +0 -0
  22. py2ls-0.1.4.6/py2ls/.git/objects/b5/61831c7dce8ea51e7ee6b6fa35745f14d8242d +0 -0
  23. py2ls-0.1.4.6/py2ls/.git/objects/c1/20fc812b9ad311c34a3608512d6a9d976bb48e +0 -0
  24. py2ls-0.1.4.6/py2ls/.git/objects/d6/9ab1c4aadf279936dd778e8346ba60f74705b6 +0 -0
  25. py2ls-0.1.4.6/py2ls/.git/objects/d9/dfa5aee51e92a541b707e8e7baea6f06deff98 +0 -0
  26. py2ls-0.1.4.6/py2ls/.git/objects/db/141dbaa93594df2a8156182f361ee4db829359 +0 -0
  27. py2ls-0.1.4.6/py2ls/.git/objects/e3/1356f90ea6dd0577b5e0b40b206319adcbf085 +0 -0
  28. py2ls-0.1.4.6/py2ls/.git/objects/fa/147e6bb78a2e8db241d231295fd7f1ed061af8 +0 -0
  29. py2ls-0.1.4.6/py2ls/.git/refs/heads/main +1 -0
  30. py2ls-0.1.4.6/py2ls/.git/refs/remotes/origin/main +1 -0
  31. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/__init__.py +1 -2
  32. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/ips.py +90 -6
  33. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/netfinder.py +18 -10
  34. py2ls-0.1.4.6/py2ls/setuptools-70.1.0-py3-none-any.whl +0 -0
  35. py2ls-0.1.4.6/pyproject.toml +149 -0
  36. py2ls-0.1.4.4/py2ls/.git/COMMIT_EDITMSG +0 -4
  37. py2ls-0.1.4.4/py2ls/.git/FETCH_HEAD +0 -1
  38. py2ls-0.1.4.4/py2ls/.git/index +0 -0
  39. py2ls-0.1.4.4/py2ls/.git/refs/heads/main +0 -1
  40. py2ls-0.1.4.4/py2ls/.git/refs/remotes/origin/main +0 -1
  41. py2ls-0.1.4.4/py2ls/internet_finder.py +0 -405
  42. py2ls-0.1.4.4/py2ls/version.py +0 -1
  43. py2ls-0.1.4.4/pyproject.toml +0 -14
  44. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/README.md +0 -0
  45. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/HEAD +0 -0
  46. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/config +0 -0
  47. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/description +0 -0
  48. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/hooks/applypatch-msg.sample +0 -0
  49. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/hooks/commit-msg.sample +0 -0
  50. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/hooks/fsmonitor-watchman.sample +0 -0
  51. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/hooks/post-update.sample +0 -0
  52. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/hooks/pre-applypatch.sample +0 -0
  53. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/hooks/pre-commit.sample +0 -0
  54. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/hooks/pre-merge-commit.sample +0 -0
  55. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/hooks/pre-push.sample +0 -0
  56. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/hooks/pre-rebase.sample +0 -0
  57. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/hooks/pre-receive.sample +0 -0
  58. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/hooks/prepare-commit-msg.sample +0 -0
  59. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/hooks/push-to-checkout.sample +0 -0
  60. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/hooks/update.sample +0 -0
  61. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/info/exclude +0 -0
  62. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/0b/409e1bc918277010f5679b402d1d1dda53e15c +0 -0
  63. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/14/449a0e6ba4ea2f1a73acf63ef91c9c6193f9ed +0 -0
  64. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/15/a8e468aacfcb440e090020f36d0b985d45da23 +0 -0
  65. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/1d/fe9d9633b24ea560354f4f93d39c6e5f163ea0 +0 -0
  66. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/24/6b368b986f758630c46dc02b7fa512b53422f7 +0 -0
  67. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/25/b796accd261b9135fd32a2c00785f68edf6c46 +0 -0
  68. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/30/a2f8da47ee947811dc8d993f5a06a45de374f4 +0 -0
  69. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/36/b4a1b7403abc6c360f8fe2cb656ab945254971 +0 -0
  70. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/36/e56a361f526eafa59c5235a5c990bf288b5f9c +0 -0
  71. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/36/ef43e50009e59db11812c258846d9e38718173 +0 -0
  72. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/3b/bd972aa7ad680858f8dfbd0f7fcd97756f0d6f +0 -0
  73. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/3c/bbe5f4173d165127b9ad96119f1ec24c306ffc +0 -0
  74. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/3f/d6561300938afbb3d11976cf9c8f29549280d9 +0 -0
  75. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/43/dbd49b2ee367c5434dd545e3b5795434f2ef0b +0 -0
  76. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/48/a88fc5806305d0bb0755ee6801161b79696972 +0 -0
  77. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/58/20a729045d4dc7e37ccaf8aa8eec126850afe2 +0 -0
  78. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/60/f273eb1c412d916fa3f11318a7da7a9911b52a +0 -0
  79. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/61/570cec8c061abe74121f27f5face6c69b98f99 +0 -0
  80. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/64/27a4edff08f93d98f511418423f09f2ab90bcd +0 -0
  81. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/69/13c452ca319f7cbf6a0836dc10a5bb033c84e4 +0 -0
  82. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/6b/7fde264d93a7a0986d394c46c7650d0ce2ab92 +0 -0
  83. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/78/3d4167bc95c9d2175e0df03ef1c1c880ba75ab +0 -0
  84. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/79/7ae089b2212a937840e215276005ce76881307 +0 -0
  85. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/7e/5956c806b5edc344d46dab599dec337891ba1f +0 -0
  86. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/87/ef1fc3f7f1ddc4d0ab9b3e65381ce9f3388621 +0 -0
  87. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/8e/55a7d2b96184030211f20c9b9af201eefcac82 +0 -0
  88. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/91/c69ad88fe0ba94aa7859fb5f7edac5e6f1a3f7 +0 -0
  89. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/9d/0df52899fe95279059286d9c0ec42287edc168 +0 -0
  90. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/a5/ec8f74642fbba27f7ea78c53b372ae0c7dedce +0 -0
  91. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/a7/3e13eafee65c5b8d73ad2d3ea46d0eee82f0d3 +0 -0
  92. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/b0/56be4be89ba6b76949dd641df45bb7036050c8 +0 -0
  93. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/b0/9cd7856d58590578ee1a4f3ad45d1310a97f87 +0 -0
  94. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/b2/18e6a0f0f1c4df8cdefa9852058348abc713b7 +0 -0
  95. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/bb/934eb33bc1a8b85630bf680caffd99560c1b8f +0 -0
  96. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/c4/cba65f1163661999ee4b8ed23342b63bc1300c +0 -0
  97. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/c6/7f17e5707313600efcb85e9a3fedea35dba591 +0 -0
  98. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/cf/0c0d9c6fb09473aaeb7f7e2edbd770c3f2ef3d +0 -0
  99. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/d9/005f2cc7fc4e65f14ed5518276007c08cf2fd0 +0 -0
  100. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/d9/c2403fd166ce791b4e9d0c6792ed8342c71fcd +0 -0
  101. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/db/ffa8ea7bda721d0cee7b9e4ce5b2ef927733ff +0 -0
  102. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/df/e0770424b2a19faf507a501ebfc23be8f54e7b +0 -0
  103. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/e3/5a4dafc50850cacac7bf76c56db2715cbda2c4 +0 -0
  104. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/e9/391ffe371f1cc43b42ef09b705d9c767c2e14f +0 -0
  105. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/f4/b64d3107b39e3ad6f540c6607004ea34e6c024 +0 -0
  106. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/f7/c98ba5c2f903e603b1f5e63d49fbc8a43815cc +0 -0
  107. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/fc/292e793ecfd42240ac43be407023bd731fa9e7 +0 -0
  108. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/refs/remotes/origin/HEAD +0 -0
  109. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.gitattributes +0 -0
  110. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.gitignore +0 -0
  111. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/LICENSE +0 -0
  112. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/README.md +0 -0
  113. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/brain_atlas.py +0 -0
  114. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/correlators.py +0 -0
  115. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/dbhandler.py +0 -0
  116. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/freqanalysis.py +0 -0
  117. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/sleep_events_detectors.py +0 -0
  118. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/translator.py +0 -0
  119. {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/wb_detector.py +0 -0
@@ -1,12 +1,149 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: py2ls
3
- Version: 0.1.4.4
3
+ Version: 0.1.4.6
4
4
  Summary: py(thon)2(too)ls
5
5
  Author: Jianfeng
6
6
  Author-email: Jianfeng.Liu0413@gmail.com
7
- Requires-Python: >=3.12,<4.0
7
+ Requires-Python: >=3.10,<4.0
8
8
  Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Python :: 3.10
10
+ Classifier: Programming Language :: Python :: 3.11
9
11
  Classifier: Programming Language :: Python :: 3.12
12
+ Requires-Dist: Deprecated (>=1.2.14,<2.0.0)
13
+ Requires-Dist: Jinja2 (>=3.1.4,<4.0.0)
14
+ Requires-Dist: MarkupSafe (>=2.1.5,<3.0.0)
15
+ Requires-Dist: PyMatting (>=1.1.12,<2.0.0)
16
+ Requires-Dist: PyPDF2 (>=3.0.1,<4.0.0)
17
+ Requires-Dist: PySocks (>=1.7.1,<2.0.0)
18
+ Requires-Dist: PyYAML (>=6.0.1,<7.0.0)
19
+ Requires-Dist: Pygments (>=2.18.0,<3.0.0)
20
+ Requires-Dist: SciencePlots (>=2.1.1,<3.0.0)
21
+ Requires-Dist: appnope (>=0.1.4,<0.2.0)
22
+ Requires-Dist: appscript (>=1.2.5,<2.0.0)
23
+ Requires-Dist: asttokens (>=2.4.1,<3.0.0)
24
+ Requires-Dist: attrs (>=23.2.0,<24.0.0)
25
+ Requires-Dist: beautifulsoup4 (>=4.12.3,<5.0.0)
26
+ Requires-Dist: certifi (>=2024.6.2,<2025.0.0)
27
+ Requires-Dist: chardet (>=3.0.4,<4.0.0)
28
+ Requires-Dist: charset-normalizer (>=3.3.2,<4.0.0)
29
+ Requires-Dist: click (>=8.1.7,<9.0.0)
30
+ Requires-Dist: colorcet (>=3.1.0,<4.0.0)
31
+ Requires-Dist: coloredlogs (>=15.0.1,<16.0.0)
32
+ Requires-Dist: comm (>=0.2.2,<0.3.0)
33
+ Requires-Dist: contourpy (>=1.2.1,<2.0.0)
34
+ Requires-Dist: cycler (>=0.12.1,<0.13.0)
35
+ Requires-Dist: debugpy (>=1.8.1,<2.0.0)
36
+ Requires-Dist: decorator (>=5.1.1,<6.0.0)
37
+ Requires-Dist: defusedxml (>=0.7.1,<0.8.0)
38
+ Requires-Dist: docx (>=0.2.4,<0.3.0)
39
+ Requires-Dist: docx2pdf (>=0.1.8,<0.2.0)
40
+ Requires-Dist: executing (>=2.0.1,<3.0.0)
41
+ Requires-Dist: fake-useragent (>=1.5.1,<2.0.0)
42
+ Requires-Dist: flatbuffers (>=24.3.25,<25.0.0)
43
+ Requires-Dist: fonttools (>=4.53.0,<5.0.0)
44
+ Requires-Dist: fpdf (>=1.7.2,<2.0.0)
45
+ Requires-Dist: googletrans (>=4.0.0rc1,<5.0.0)
46
+ Requires-Dist: h11 (>=0.9.0,<0.10.0)
47
+ Requires-Dist: h2 (>=3.2.0,<4.0.0)
48
+ Requires-Dist: hpack (>=3.0.0,<4.0.0)
49
+ Requires-Dist: hstspreload (>=2024.6.1,<2025.0.0)
50
+ Requires-Dist: httpcore (>=0.9.1,<0.10.0)
51
+ Requires-Dist: httpx (>=0.13.3,<0.14.0)
52
+ Requires-Dist: humanfriendly (>=10.0,<11.0)
53
+ Requires-Dist: hyperframe (>=5.2.0,<6.0.0)
54
+ Requires-Dist: idna (>=2.10,<3.0)
55
+ Requires-Dist: imageio (>=2.34.1,<3.0.0)
56
+ Requires-Dist: img2pdf (>=0.5.1,<0.6.0)
57
+ Requires-Dist: ipykernel (>=6.29.4,<7.0.0)
58
+ Requires-Dist: ipython (>=8.25.0,<9.0.0) ; python_version >= "3.9" and python_version < "4.0"
59
+ Requires-Dist: jedi (>=0.19.1,<0.20.0)
60
+ Requires-Dist: joblib (>=1.3.2,<2.0.0)
61
+ Requires-Dist: jsonschema (>=4.22.0,<5.0.0)
62
+ Requires-Dist: jsonschema-specifications (>=2023.12.1,<2024.0.0)
63
+ Requires-Dist: jupyter_client (>=8.6.2,<9.0.0)
64
+ Requires-Dist: jupyter_core (>=5.7.2,<6.0.0)
65
+ Requires-Dist: kiwisolver (>=1.4.5,<2.0.0)
66
+ Requires-Dist: langdetect (>=1.0.9,<2.0.0)
67
+ Requires-Dist: lazy_loader (>=0.4,<0.5)
68
+ Requires-Dist: libretranslatepy (>=2.1.1,<3.0.0)
69
+ Requires-Dist: llvmlite (>=0.42.0,<0.43.0)
70
+ Requires-Dist: lxml (>=4.9.4,<5.0.0)
71
+ Requires-Dist: matplotlib (>=3.8.4,<4.0.0)
72
+ Requires-Dist: matplotlib-inline (>=0.1.7,<0.2.0)
73
+ Requires-Dist: mne (>=1.6.0,<2.0.0)
74
+ Requires-Dist: mpmath (>=1.3.0,<2.0.0)
75
+ Requires-Dist: nest-asyncio (>=1.6.0,<2.0.0)
76
+ Requires-Dist: networkx (>=3.3,<4.0) ; python_version >= "3.10" and python_version < "4.0"
77
+ Requires-Dist: nltk (>=3.8.1,<4.0.0)
78
+ Requires-Dist: numba (>=0.59.1,<0.60.0)
79
+ Requires-Dist: numerizer (>=0.2.3,<0.3.0)
80
+ Requires-Dist: numpy (>=1.26.4,<2.0.0)
81
+ Requires-Dist: onnxruntime (>=1.18.0,<2.0.0)
82
+ Requires-Dist: opencv-contrib-python (>=4.9.0.80,<5.0.0.0)
83
+ Requires-Dist: opencv-python (>=4.9.0.80,<5.0.0.0)
84
+ Requires-Dist: opencv-python-headless (>=4.9.0.80,<5.0.0.0)
85
+ Requires-Dist: outcome (>=1.3.0.post0,<2.0.0)
86
+ Requires-Dist: packaging (>=24.1,<25.0)
87
+ Requires-Dist: pandas (>=2.2.2,<3.0.0)
88
+ Requires-Dist: pandas-flavor (>=0.6.0,<0.7.0)
89
+ Requires-Dist: parso (>=0.8.4,<0.9.0)
90
+ Requires-Dist: patsy (>=0.5.6,<0.6.0)
91
+ Requires-Dist: pdf2image (>=1.17.0,<2.0.0)
92
+ Requires-Dist: pdf2img (>=0.1.2,<0.2.0)
93
+ Requires-Dist: pexpect (>=4.9.0,<5.0.0)
94
+ Requires-Dist: pikepdf (>=9.0.0,<10.0.0)
95
+ Requires-Dist: pillow (>=10.3.0,<11.0.0)
96
+ Requires-Dist: pingouin (>=0.5.4,<0.6.0)
97
+ Requires-Dist: platformdirs (>=4.2.2,<5.0.0)
98
+ Requires-Dist: pooch (>=1.8.2,<2.0.0)
99
+ Requires-Dist: prompt_toolkit (>=3.0.47,<4.0.0)
100
+ Requires-Dist: protobuf (>=5.27.1,<6.0.0)
101
+ Requires-Dist: psutil (>=5.9.8,<6.0.0)
102
+ Requires-Dist: ptyprocess (>=0.7.0,<0.8.0)
103
+ Requires-Dist: pure-eval (>=0.2.2,<0.3.0)
104
+ Requires-Dist: pyparsing (>=3.1.2,<4.0.0)
105
+ Requires-Dist: python-box (>=7.2.0,<8.0.0)
106
+ Requires-Dist: python-dateutil (>=2.9.0.post0,<3.0.0)
107
+ Requires-Dist: python-docx (>=1.1.0,<2.0.0)
108
+ Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
109
+ Requires-Dist: pytz (>=2024.1,<2025.0)
110
+ Requires-Dist: pyzmq (>=26.0.3,<27.0.0)
111
+ Requires-Dist: referencing (>=0.35.1,<0.36.0)
112
+ Requires-Dist: regex (>=2024.5.15,<2025.0.0)
113
+ Requires-Dist: rembg (>=2.0.56,<3.0.0) ; python_version >= "3.9" and python_version < "3.13"
114
+ Requires-Dist: requests (>=2.32.3,<3.0.0)
115
+ Requires-Dist: rfc3986 (>=1.5.0,<2.0.0)
116
+ Requires-Dist: rpds-py (>=0.18.1,<0.19.0)
117
+ Requires-Dist: scikit-image (>=0.23.2,<0.24.0) ; python_version >= "3.10" and python_version < "4.0"
118
+ Requires-Dist: scikit-learn (>=1.3.2,<2.0.0)
119
+ Requires-Dist: scipy (>=1.13.1,<2.0.0)
120
+ Requires-Dist: seaborn (>=0.13.2,<0.14.0)
121
+ Requires-Dist: selenium (>=4.21.0,<5.0.0)
122
+ Requires-Dist: six (>=1.16.0,<2.0.0)
123
+ Requires-Dist: sniffio (>=1.3.1,<2.0.0)
124
+ Requires-Dist: sortedcontainers (>=2.4.0,<3.0.0)
125
+ Requires-Dist: soupsieve (>=2.5,<3.0)
126
+ Requires-Dist: stack-data (>=0.6.3,<0.7.0)
127
+ Requires-Dist: statsmodels (>=0.14.1,<0.15.0)
128
+ Requires-Dist: stem (>=1.8.2,<2.0.0)
129
+ Requires-Dist: sympy (>=1.12.1,<2.0.0)
130
+ Requires-Dist: tabulate (>=0.9.0,<0.10.0)
131
+ Requires-Dist: threadpoolctl (>=3.5.0,<4.0.0)
132
+ Requires-Dist: tifffile (>=2024.5.22,<2025.0.0)
133
+ Requires-Dist: tornado (>=6.4.1,<7.0.0)
134
+ Requires-Dist: tqdm (>=4.66.4,<5.0.0)
135
+ Requires-Dist: traitlets (>=5.14.3,<6.0.0)
136
+ Requires-Dist: translate (>=3.6.1,<4.0.0)
137
+ Requires-Dist: trio (>=0.25.1,<0.26.0)
138
+ Requires-Dist: trio-websocket (>=0.11.1,<0.12.0)
139
+ Requires-Dist: typing_extensions (>=4.12.2,<5.0.0)
140
+ Requires-Dist: tzdata (>=2024.1,<2025.0)
141
+ Requires-Dist: urllib3 (>=2.2.1,<3.0.0)
142
+ Requires-Dist: wcwidth (>=0.2.13,<0.3.0)
143
+ Requires-Dist: webdriver-manager (>=4.0.1,<5.0.0)
144
+ Requires-Dist: wrapt (>=1.16.0,<2.0.0)
145
+ Requires-Dist: wsproto (>=1.2.0,<2.0.0)
146
+ Requires-Dist: xarray (>=2024.6.0,<2025.0.0)
10
147
  Description-Content-Type: text/markdown
11
148
 
12
149
  # Install
Binary file
@@ -0,0 +1 @@
1
+ update
@@ -0,0 +1 @@
1
+ c120fc812b9ad311c34a3608512d6a9d976bb48e branch 'main' of https://github.com/Jianfengliu0413/py2ls
Binary file
@@ -8,3 +8,8 @@ d9c2403fd166ce791b4e9d0c6792ed8342c71fcd 14449a0e6ba4ea2f1a73acf63ef91c9c6193f9e
8
8
  3bbd972aa7ad680858f8dfbd0f7fcd97756f0d6f 48a88fc5806305d0bb0755ee6801161b79696972 Jianfeng <Jianfeng.Liu0413@gmail.com> 1718526957 +0200 commit: Update netfinder.py
9
9
  48a88fc5806305d0bb0755ee6801161b79696972 cf0c0d9c6fb09473aaeb7f7e2edbd770c3f2ef3d Jianfeng <Jianfeng.Liu0413@gmail.com> 1718553462 +0200 commit: new feature: display_thumbnail_figure
10
10
  cf0c0d9c6fb09473aaeb7f7e2edbd770c3f2ef3d 6427a4edff08f93d98f511418423f09f2ab90bcd Jianfeng <Jianfeng.Liu0413@gmail.com> 1718555179 +0200 commit: listdir type
11
+ 6427a4edff08f93d98f511418423f09f2ab90bcd d9dfa5aee51e92a541b707e8e7baea6f06deff98 Jianfeng <Jianfeng.Liu0413@gmail.com> 1718570098 +0200 commit: imgsets update
12
+ d9dfa5aee51e92a541b707e8e7baea6f06deff98 e31356f90ea6dd0577b5e0b40b206319adcbf085 Jianfeng <Jianfeng.Liu0413@gmail.com> 1718618413 +0200 commit: add thumbnail
13
+ e31356f90ea6dd0577b5e0b40b206319adcbf085 1ab4585881a6a42889f01aa0cfe25fd5acfaf46f Jianfeng <Jianfeng.Liu0413@gmail.com> 1718619568 +0200 commit: Update ips.py
14
+ 1ab4585881a6a42889f01aa0cfe25fd5acfaf46f 627c81b23b4e56e87b042b650b0103653cc9e34a Jianfeng <Jianfeng.Liu0413@gmail.com> 1718698925 +0200 commit: update xample_imgsets
15
+ 627c81b23b4e56e87b042b650b0103653cc9e34a c120fc812b9ad311c34a3608512d6a9d976bb48e Jianfeng <Jianfeng.Liu0413@gmail.com> 1718893141 +0200 commit: update
@@ -8,3 +8,8 @@ d9c2403fd166ce791b4e9d0c6792ed8342c71fcd 14449a0e6ba4ea2f1a73acf63ef91c9c6193f9e
8
8
  3bbd972aa7ad680858f8dfbd0f7fcd97756f0d6f 48a88fc5806305d0bb0755ee6801161b79696972 Jianfeng <Jianfeng.Liu0413@gmail.com> 1718526957 +0200 commit: Update netfinder.py
9
9
  48a88fc5806305d0bb0755ee6801161b79696972 cf0c0d9c6fb09473aaeb7f7e2edbd770c3f2ef3d Jianfeng <Jianfeng.Liu0413@gmail.com> 1718553462 +0200 commit: new feature: display_thumbnail_figure
10
10
  cf0c0d9c6fb09473aaeb7f7e2edbd770c3f2ef3d 6427a4edff08f93d98f511418423f09f2ab90bcd Jianfeng <Jianfeng.Liu0413@gmail.com> 1718555179 +0200 commit: listdir type
11
+ 6427a4edff08f93d98f511418423f09f2ab90bcd d9dfa5aee51e92a541b707e8e7baea6f06deff98 Jianfeng <Jianfeng.Liu0413@gmail.com> 1718570098 +0200 commit: imgsets update
12
+ d9dfa5aee51e92a541b707e8e7baea6f06deff98 e31356f90ea6dd0577b5e0b40b206319adcbf085 Jianfeng <Jianfeng.Liu0413@gmail.com> 1718618413 +0200 commit: add thumbnail
13
+ e31356f90ea6dd0577b5e0b40b206319adcbf085 1ab4585881a6a42889f01aa0cfe25fd5acfaf46f Jianfeng <Jianfeng.Liu0413@gmail.com> 1718619568 +0200 commit: Update ips.py
14
+ 1ab4585881a6a42889f01aa0cfe25fd5acfaf46f 627c81b23b4e56e87b042b650b0103653cc9e34a Jianfeng <Jianfeng.Liu0413@gmail.com> 1718698925 +0200 commit: update xample_imgsets
15
+ 627c81b23b4e56e87b042b650b0103653cc9e34a c120fc812b9ad311c34a3608512d6a9d976bb48e Jianfeng <Jianfeng.Liu0413@gmail.com> 1718893141 +0200 commit: update
@@ -24,3 +24,15 @@ d9c2403fd166ce791b4e9d0c6792ed8342c71fcd d9c2403fd166ce791b4e9d0c6792ed8342c71fc
24
24
  48a88fc5806305d0bb0755ee6801161b79696972 48a88fc5806305d0bb0755ee6801161b79696972 Jianfeng Liu <macjianfeng@jflmbp.speedport.ip> 1718553371 +0200 remote set-head
25
25
  cf0c0d9c6fb09473aaeb7f7e2edbd770c3f2ef3d cf0c0d9c6fb09473aaeb7f7e2edbd770c3f2ef3d Jianfeng Liu <macjianfeng@jflmbp.speedport.ip> 1718553465 +0200 remote set-head
26
26
  6427a4edff08f93d98f511418423f09f2ab90bcd 6427a4edff08f93d98f511418423f09f2ab90bcd Jianfeng Liu <macjianfeng@jflmbp.speedport.ip> 1718555183 +0200 remote set-head
27
+ 6427a4edff08f93d98f511418423f09f2ab90bcd 6427a4edff08f93d98f511418423f09f2ab90bcd Jianfeng Liu <macjianfeng@jflmbp.speedport.ip> 1718570095 +0200 remote set-head
28
+ d9dfa5aee51e92a541b707e8e7baea6f06deff98 d9dfa5aee51e92a541b707e8e7baea6f06deff98 Jianfeng Liu <macjianfeng@jflmbp.speedport.ip> 1718570102 +0200 remote set-head
29
+ e31356f90ea6dd0577b5e0b40b206319adcbf085 e31356f90ea6dd0577b5e0b40b206319adcbf085 Jianfeng Liu <macjianfeng@JFLMBP.local> 1718618416 +0200 remote set-head
30
+ 1ab4585881a6a42889f01aa0cfe25fd5acfaf46f 1ab4585881a6a42889f01aa0cfe25fd5acfaf46f Jianfeng Liu <macjianfeng@JFLMBP.local> 1718619571 +0200 remote set-head
31
+ 1ab4585881a6a42889f01aa0cfe25fd5acfaf46f 1ab4585881a6a42889f01aa0cfe25fd5acfaf46f Jianfeng Liu <macjianfeng@JFLMBP.local> 1718698084 +0200 remote set-head
32
+ 1ab4585881a6a42889f01aa0cfe25fd5acfaf46f 1ab4585881a6a42889f01aa0cfe25fd5acfaf46f Jianfeng Liu <macjianfeng@JFLMBP.local> 1718699917 +0200 remote set-head
33
+ 1ab4585881a6a42889f01aa0cfe25fd5acfaf46f 1ab4585881a6a42889f01aa0cfe25fd5acfaf46f Jianfeng Liu <macjianfeng@JFLMBP.local> 1718701729 +0200 remote set-head
34
+ 1ab4585881a6a42889f01aa0cfe25fd5acfaf46f 1ab4585881a6a42889f01aa0cfe25fd5acfaf46f Jianfeng Liu <macjianfeng@JFLMBP.local> 1718703544 +0200 remote set-head
35
+ 1ab4585881a6a42889f01aa0cfe25fd5acfaf46f 1ab4585881a6a42889f01aa0cfe25fd5acfaf46f Jianfeng Liu <macjianfeng@JFLMBP.local> 1718705358 +0200 remote set-head
36
+ 1ab4585881a6a42889f01aa0cfe25fd5acfaf46f 1ab4585881a6a42889f01aa0cfe25fd5acfaf46f Jianfeng Liu <macjianfeng@JFLMBP.local> 1718707170 +0200 remote set-head
37
+ 1ab4585881a6a42889f01aa0cfe25fd5acfaf46f 1ab4585881a6a42889f01aa0cfe25fd5acfaf46f Jianfeng Liu <macjianfeng@JFLMBP.local> 1718708982 +0200 remote set-head
38
+ c120fc812b9ad311c34a3608512d6a9d976bb48e c120fc812b9ad311c34a3608512d6a9d976bb48e Jianfeng Liu <macjianfeng@JFLMBP.cin.medizin.uni-tuebingen.de> 1718893145 +0200 remote set-head
@@ -8,3 +8,7 @@ d9c2403fd166ce791b4e9d0c6792ed8342c71fcd 14449a0e6ba4ea2f1a73acf63ef91c9c6193f9e
8
8
  3bbd972aa7ad680858f8dfbd0f7fcd97756f0d6f 48a88fc5806305d0bb0755ee6801161b79696972 Jianfeng <Jianfeng.Liu0413@gmail.com> 1718526959 +0200 update by push
9
9
  48a88fc5806305d0bb0755ee6801161b79696972 cf0c0d9c6fb09473aaeb7f7e2edbd770c3f2ef3d Jianfeng <Jianfeng.Liu0413@gmail.com> 1718553464 +0200 update by push
10
10
  cf0c0d9c6fb09473aaeb7f7e2edbd770c3f2ef3d 6427a4edff08f93d98f511418423f09f2ab90bcd Jianfeng <Jianfeng.Liu0413@gmail.com> 1718555183 +0200 update by push
11
+ 6427a4edff08f93d98f511418423f09f2ab90bcd d9dfa5aee51e92a541b707e8e7baea6f06deff98 Jianfeng <Jianfeng.Liu0413@gmail.com> 1718570102 +0200 update by push
12
+ d9dfa5aee51e92a541b707e8e7baea6f06deff98 e31356f90ea6dd0577b5e0b40b206319adcbf085 Jianfeng <Jianfeng.Liu0413@gmail.com> 1718618415 +0200 update by push
13
+ e31356f90ea6dd0577b5e0b40b206319adcbf085 1ab4585881a6a42889f01aa0cfe25fd5acfaf46f Jianfeng <Jianfeng.Liu0413@gmail.com> 1718619570 +0200 update by push
14
+ 1ab4585881a6a42889f01aa0cfe25fd5acfaf46f c120fc812b9ad311c34a3608512d6a9d976bb48e Jianfeng <Jianfeng.Liu0413@gmail.com> 1718893144 +0200 update by push
@@ -0,0 +1,3 @@
1
+ xM��
2
+ �0 ���S�]�����tMY�Kk���s��\��w~\�n��a�Y9����DP�\a�����$�p�8�,
3
+ ���#[Ԅ��2fJ�Y��݄�I#���RcGb����~�k"*���Z�'��/Y�n]-��v�)�6{m���� ]�J�
@@ -0,0 +1 @@
1
+ c120fc812b9ad311c34a3608512d6a9d976bb48e
@@ -0,0 +1 @@
1
+ c120fc812b9ad311c34a3608512d6a9d976bb48e
@@ -7,11 +7,10 @@ from . import (
7
7
  correlators,
8
8
  dbhandler,
9
9
  freqanalysis,
10
- internet_finder,
11
10
  ips,
12
11
  netfinder,
13
12
  sleep_events_detectors,
14
13
  translator,
15
- version,
16
14
  wb_detector,
17
15
  )
16
+ from .ips import *
@@ -3,9 +3,8 @@ import numpy as np
3
3
  import pandas as pd
4
4
  import json
5
5
  import matplotlib.pyplot as plt
6
- # from functools import partial
7
6
  import seaborn as sns
8
- import scienceplots
7
+ # import scienceplots
9
8
  import matplotlib
10
9
  import sys
11
10
  import os
@@ -15,7 +14,7 @@ from scipy import stats
15
14
  import matplotlib.ticker as tck
16
15
  from cycler import cycler
17
16
  import re
18
- from PIL import ImageEnhance, ImageOps,ImageFilter
17
+ from PIL import Image,ImageEnhance, ImageOps,ImageFilter
19
18
  from rembg import remove,new_session
20
19
  from mpl_toolkits.mplot3d import Axes3D
21
20
  import docx
@@ -37,17 +36,39 @@ from box import Box, BoxList
37
36
  from numerizer import numerize
38
37
  from tqdm import tqdm
39
38
  import mimetypes
39
+ from pprint import pp
40
+ from dateutil import parser
41
+ from datetime import datetime
42
+
43
+ def str2date(date_str, fmt='%Y-%m-%d_%H:%M:%S'):
44
+ """
45
+ Convert a date string into the specified format.
46
+ Parameters:
47
+ - date_str (str): The date string to be converted.
48
+ - fmt (str): The format to convert the date to. Defaults to '%Y%m%d'.
49
+ Returns:
50
+ - str: The converted date string.
51
+ """
52
+ try:
53
+ date_obj = parser.parse(date_str)
54
+ except ValueError as e:
55
+ raise ValueError(f"Unable to parse date string: {date_str}. Error: {e}")
56
+ # Format the date object to the desired output format
57
+ formatted_date = date_obj.strftime(fmt)
58
+ return formatted_date
59
+ # str1=str2date(num2str(20240625),fmt="%a %d-%B-%Y")
60
+ # print(str1)
61
+ # str2=str2num(str2date(str1,fmt='%a %Y%m%d'))
62
+ # print(str2)
40
63
 
41
64
  def str2num(s, *args):
42
65
  delimiter = None
43
66
  round_digits = None
44
-
45
67
  for arg in args:
46
68
  if isinstance(arg, str):
47
69
  delimiter = arg
48
70
  elif isinstance(arg, int):
49
71
  round_digits = arg
50
-
51
72
  try:
52
73
  num = int(s)
53
74
  except ValueError:
@@ -2107,7 +2128,6 @@ def load_img(fpath):
2107
2128
  FileNotFoundError: If the specified file is not found.
2108
2129
  OSError: If the specified file cannot be opened or is not a valid image file.
2109
2130
  """
2110
- from PIL import Image
2111
2131
 
2112
2132
  try:
2113
2133
  img = Image.open(fpath)
@@ -2188,6 +2208,7 @@ def apply_filter(img, *args):
2188
2208
  raise ValueError(
2189
2209
  f"Unsupported filter: {filter_name}, should be one of: {supported_filters}"
2190
2210
  )
2211
+
2191
2212
  for arg in args:
2192
2213
  if isinstance(arg, str):
2193
2214
  filter_name = arg
@@ -2286,6 +2307,29 @@ def imgsets(
2286
2307
  Note:
2287
2308
  The "color" and "enhance" enhancements are not implemented in this function.
2288
2309
  """
2310
+ supported_filters = [
2311
+ "BLUR",
2312
+ "CONTOUR",
2313
+ "DETAIL",
2314
+ "EDGE_ENHANCE",
2315
+ "EDGE_ENHANCE_MORE",
2316
+ "EMBOSS",
2317
+ "FIND_EDGES",
2318
+ "SHARPEN",
2319
+ "SMOOTH",
2320
+ "SMOOTH_MORE",
2321
+ "MIN_FILTER",
2322
+ "MAX_FILTER",
2323
+ "MODE_FILTER",
2324
+ "MULTIBAND_FILTER",
2325
+ "GAUSSIAN_BLUR",
2326
+ "BOX_BLUR",
2327
+ "MEDIAN_FILTER",
2328
+ ]
2329
+ print("sets: a dict,'sharp:1.2','color','contrast:'auto' or 1.2','bright', 'crop: x_upperleft,y_upperleft, x_lowerright, y_lowerright','rotation','resize','rem or background'")
2330
+ print(f"usage: filter_kws 'dict' below:")
2331
+ pp([str(i).lower() for i in supported_filters])
2332
+ print("\nlog:\n")
2289
2333
  def confirm_rembg_models(model_name):
2290
2334
  models_support = [
2291
2335
  "u2net",
@@ -2734,6 +2778,46 @@ def figsets(*args):
2734
2778
  plt.tight_layout()
2735
2779
  plt.gcf().align_labels()
2736
2780
 
2781
+ def thumbnail(dir_img_list,figsize=(10,10),dpi=100, dir_save=None, kind='.png'):
2782
+ """
2783
+ Display a thumbnail figure of all images in the specified directory.
2784
+ Args:
2785
+ dir_img_list (list): List of the Directory containing the images.
2786
+ """
2787
+ num_images = len(dir_img_list)
2788
+ if not kind.startswith('.'):
2789
+ kind='.'+kind
2790
+
2791
+ if num_images == 0:
2792
+ print("No images found to display.")
2793
+ return
2794
+ grid_size = int(num_images ** 0.5) + 1 # Determine grid size
2795
+ fig, axs = plt.subplots(grid_size, grid_size, figsize=figsize,dpi=dpi)
2796
+ for ax, image_file in zip(axs.flatten(), dir_img_list):
2797
+ try:
2798
+ img = Image.open(image_file)
2799
+ ax.imshow(img)
2800
+ ax.axis('off')
2801
+ except:
2802
+ continue
2803
+ # for ax in axs.flatten():
2804
+ # ax.axis('off')
2805
+ [ax.axis("off") for ax in axs.flatten()]
2806
+ plt.tight_layout()
2807
+ if dir_save is None:
2808
+ plt.show()
2809
+ else:
2810
+ if basename(dir_save):
2811
+ fname= basename(dir_save) +kind
2812
+ else:
2813
+ fname= "_thumbnail_"+basename(dirname(dir_save)[:-1])+'.png'
2814
+ if dirname(dir_img_list[0]) == dirname(dir_save):
2815
+ figsave(dirname(dir_save[:-1]),fname)
2816
+ else:
2817
+ figsave(dirname(dir_save),fname)
2818
+ # usage:
2819
+ # fpath = "/Users/macjianfeng/Dropbox/github/python/py2ls/tests/xample_netfinder/images/"
2820
+ # thumbnail(listdir(fpath,'png').fpath.to_list(),dir_save=dirname(fpath))
2737
2821
  def read_mplstyle(style_file):
2738
2822
  # Load the style file
2739
2823
  plt.style.use(style_file)
@@ -21,8 +21,11 @@ from selenium.webdriver.support.ui import WebDriverWait
21
21
  from selenium.webdriver.support import expected_conditions as EC
22
22
  from webdriver_manager.chrome import ChromeDriverManager
23
23
  from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
24
- import pprint
24
+ from pprint import pp
25
25
  import mimetypes
26
+ import io
27
+ import matplotlib.pyplot as plt
28
+ from PIL import Image
26
29
 
27
30
  # Set up logging
28
31
  logging.basicConfig(level=logging.INFO)
@@ -313,7 +316,7 @@ def pdf_detector(url, contains=None, dir_save=None,booster=False):
313
316
  pdf_links = filter_links(links=links_all, contains=["pdf"])
314
317
 
315
318
  if pdf_links:
316
- pprint.pp(f"pdf detected\n{pdf_links}")
319
+ pp(f"pdf detected{pdf_links}")
317
320
  else:
318
321
  print('no pdf file')
319
322
  if dir_save:
@@ -399,9 +402,13 @@ def find_img(url, dir_save="images", verbose=True):
399
402
  print(f"Failed to process image {image_url}: {e}")
400
403
  print(f"images were saved at\n{dir_save}")
401
404
  if verbose:
402
- display_thumbnail_figure(flist(dir_save,filter='img'),dpi=200)
405
+ display_thumbnail_figure(flist(dir_save,filter='img'),dpi=100)
403
406
  return content
404
-
407
+ def svg_to_png(svg_file):
408
+ with WandImage(filename=svg_file, resolution=300) as img:
409
+ img.format = 'png'
410
+ png_image = img.make_blob()
411
+ return Image.open(io.BytesIO(png_image))
405
412
  def display_thumbnail_figure(dir_img_list,figsize=(10,10),dpi=100):
406
413
  import matplotlib.pyplot as plt
407
414
  from PIL import Image
@@ -422,13 +429,14 @@ def display_thumbnail_figure(dir_img_list,figsize=(10,10),dpi=100):
422
429
  fig, axs = plt.subplots(grid_size, grid_size, figsize=figsize,dpi=dpi)
423
430
 
424
431
  for ax, image_file in zip(axs.flatten(), dir_img_list):
425
- img = Image.open(image_file)
426
- ax.imshow(img)
427
- ax.axis('off') # Hide axes
428
-
432
+ try:
433
+ img = Image.open(image_file)
434
+ ax.imshow(img)
435
+ ax.axis('off') # Hide axes
436
+ except:
437
+ continue
429
438
  # Hide remaining subplots
430
- for ax in axs.flatten()[num_images:]:
431
- ax.axis('off')
439
+ [ax.axis("off") for ax in axs.flatten()]
432
440
 
433
441
  plt.tight_layout()
434
442
  plt.show()
@@ -0,0 +1,149 @@
1
+ [tool.poetry]
2
+ name = "py2ls"
3
+ version = "0.1.4.6"
4
+ description = "py(thon)2(too)ls"
5
+ authors = ["Jianfeng <Jianfeng.Liu0413@gmail.com>"]
6
+ readme = "README.md"
7
+
8
+ [tool.poetry.dependencies]
9
+ python = "^3.10"
10
+
11
+ appnope = "^0.1.4"
12
+ appscript = "^1.2.5"
13
+ asttokens = "^2.4.1"
14
+ attrs = "^23.2.0"
15
+ beautifulsoup4 = "^4.12.3"
16
+ certifi = "^2024.6.2"
17
+ chardet = "^3.0.4"
18
+ charset-normalizer = "^3.3.2"
19
+ click = "^8.1.7"
20
+ colorcet = "^3.1.0"
21
+ coloredlogs = "^15.0.1"
22
+ comm = "^0.2.2"
23
+ contourpy = "^1.2.1"
24
+ cycler = "^0.12.1"
25
+ debugpy = "^1.8.1"
26
+ decorator = "^5.1.1"
27
+ defusedxml = "^0.7.1"
28
+ Deprecated = "^1.2.14"
29
+ docx = "^0.2.4"
30
+ docx2pdf = "^0.1.8"
31
+ executing = "^2.0.1"
32
+ fake-useragent = "^1.5.1"
33
+ flatbuffers = "^24.3.25"
34
+ fonttools = "^4.53.0"
35
+ fpdf = "^1.7.2"
36
+ googletrans = "^4.0.0rc1"
37
+ h11 = "^0.9.0"
38
+ h2 = "^3.2.0"
39
+ hpack = "^3.0.0"
40
+ hstspreload = "^2024.6.1"
41
+ httpcore = "^0.9.1"
42
+ httpx = "^0.13.3"
43
+ humanfriendly = "^10.0"
44
+ hyperframe = "^5.2.0"
45
+ idna = "^2.10"
46
+ imageio = "^2.34.1"
47
+ img2pdf = "^0.5.1"
48
+ ipykernel = "^6.29.4"
49
+ ipython = {version = "^8.25.0", python = ">=3.9, <4.0"}
50
+ jedi = "^0.19.1"
51
+ Jinja2 = "^3.1.4"
52
+ joblib = "^1.3.2"
53
+ jsonschema = "^4.22.0"
54
+ jsonschema-specifications = "^2023.12.1"
55
+ jupyter_client = "^8.6.2"
56
+ jupyter_core = "^5.7.2"
57
+ kiwisolver = "^1.4.5"
58
+ langdetect = "^1.0.9"
59
+ lazy_loader = "^0.4"
60
+ libretranslatepy = "^2.1.1"
61
+ llvmlite = "^0.42.0"
62
+ lxml = "^4.9.4"
63
+ MarkupSafe = "^2.1.5"
64
+ matplotlib = "^3.8.4"
65
+ matplotlib-inline = "^0.1.7"
66
+ mne = "^1.6.0"
67
+ mpmath = "^1.3.0"
68
+ nest-asyncio = "^1.6.0"
69
+ networkx = {version = "^3.3", python = ">=3.10, <4.0" }
70
+ nltk = "^3.8.1"
71
+ numba = "^0.59.1"
72
+ numerizer = "^0.2.3"
73
+ numpy = "^1.26.4"
74
+ onnxruntime = "^1.18.0"
75
+ opencv-contrib-python = "^4.9.0.80"
76
+ opencv-python = "^4.9.0.80"
77
+ opencv-python-headless = "^4.9.0.80"
78
+ outcome = "^1.3.0.post0"
79
+ packaging = "^24.1"
80
+ pandas = "^2.2.2"
81
+ pandas-flavor = "^0.6.0"
82
+ parso = "^0.8.4"
83
+ patsy = "^0.5.6"
84
+ pdf2image = "^1.17.0"
85
+ pdf2img = "^0.1.2"
86
+ pexpect = "^4.9.0"
87
+ pikepdf = "^9.0.0"
88
+ pillow = "^10.3.0"
89
+ pingouin = "^0.5.4"
90
+ platformdirs = "^4.2.2"
91
+ pooch = "^1.8.2"
92
+ prompt_toolkit = "^3.0.47"
93
+ protobuf = "^5.27.1"
94
+ psutil = "^5.9.8"
95
+ ptyprocess = "^0.7.0"
96
+ pure-eval = "^0.2.2"
97
+ Pygments = "^2.18.0"
98
+ PyMatting = "^1.1.12"
99
+ pyparsing = "^3.1.2"
100
+ PyPDF2 = "^3.0.1"
101
+ PySocks = "^1.7.1"
102
+ python-box = "^7.2.0"
103
+ python-dateutil = "^2.9.0.post0"
104
+ python-docx = "^1.1.0"
105
+ python-dotenv = "^1.0.1"
106
+ pytz = "^2024.1"
107
+ PyYAML = "^6.0.1"
108
+ pyzmq = "^26.0.3"
109
+ referencing = "^0.35.1"
110
+ regex = "^2024.5.15"
111
+ rembg = { version = "^2.0.56", python = ">=3.9, <3.13"}
112
+ requests = "^2.32.3"
113
+ rfc3986 = "^1.5.0"
114
+ rpds-py = "^0.18.1"
115
+ SciencePlots = "^2.1.1"
116
+ scikit-image = { version = "^0.23.2", python = ">=3.10,<4.0" }
117
+ scikit-learn = "^1.3.2"
118
+ scipy = "^1.13.1"
119
+ seaborn = "^0.13.2"
120
+ selenium = "^4.21.0"
121
+ six = "^1.16.0"
122
+ sniffio = "^1.3.1"
123
+ sortedcontainers = "^2.4.0"
124
+ soupsieve = "^2.5"
125
+ stack-data = "^0.6.3"
126
+ statsmodels = "^0.14.1"
127
+ stem = "^1.8.2"
128
+ sympy = "^1.12.1"
129
+ tabulate = "^0.9.0"
130
+ threadpoolctl = "^3.5.0"
131
+ tifffile = "^2024.5.22"
132
+ tornado = "^6.4.1"
133
+ tqdm = "^4.66.4"
134
+ traitlets = "^5.14.3"
135
+ translate = "^3.6.1"
136
+ trio = "^0.25.1"
137
+ trio-websocket = "^0.11.1"
138
+ typing_extensions = "^4.12.2"
139
+ tzdata = "^2024.1"
140
+ urllib3 = "^2.2.1"
141
+ wcwidth = "^0.2.13"
142
+ webdriver-manager = "^4.0.1"
143
+ wrapt = "^1.16.0"
144
+ wsproto = "^1.2.0"
145
+ xarray = "^2024.6.0"
146
+
147
+ [build-system]
148
+ requires = ["poetry-core"]
149
+ build-backend = "poetry.core.masonry.api"
@@ -1,4 +0,0 @@
1
- listdir type
2
-
3
- listdir type 大类别和精确类别,
4
- e.g., kind='img', means filtter all kinds of images, .tiff, tif, jpg, png...
@@ -1 +0,0 @@
1
- 6427a4edff08f93d98f511418423f09f2ab90bcd branch 'main' of https://github.com/Jianfengliu0413/py2ls
Binary file
@@ -1 +0,0 @@
1
- 6427a4edff08f93d98f511418423f09f2ab90bcd