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.
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/PKG-INFO +139 -2
- py2ls-0.1.4.6/py2ls/.DS_Store +0 -0
- py2ls-0.1.4.6/py2ls/.git/COMMIT_EDITMSG +1 -0
- py2ls-0.1.4.6/py2ls/.git/FETCH_HEAD +1 -0
- py2ls-0.1.4.6/py2ls/.git/index +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/logs/HEAD +5 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/logs/refs/heads/main +5 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/logs/refs/remotes/origin/HEAD +12 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/logs/refs/remotes/origin/main +4 -0
- py2ls-0.1.4.6/py2ls/.git/objects/1a/b4585881a6a42889f01aa0cfe25fd5acfaf46f +0 -0
- py2ls-0.1.4.6/py2ls/.git/objects/50/08ddfcf53c02e82d7eee2e57c38e5672ef89f6 +0 -0
- py2ls-0.1.4.6/py2ls/.git/objects/53/e0deb1cb4c2c606bced6e7f9a66b0fda60980d +0 -0
- py2ls-0.1.4.6/py2ls/.git/objects/56/e4e8b2d5545e0256090f45aa8fc42c5fe067d0 +0 -0
- py2ls-0.1.4.6/py2ls/.git/objects/62/7c81b23b4e56e87b042b650b0103653cc9e34a +0 -0
- py2ls-0.1.4.6/py2ls/.git/objects/62/d90ccf8cbefdc2e4fd475e7c6f4f76e9fdf801 +3 -0
- py2ls-0.1.4.6/py2ls/.git/objects/6a/52e747a2b349b128d1490d9e896d2323818eb7 +0 -0
- py2ls-0.1.4.6/py2ls/.git/objects/6c/cebb29b7f3f5b0c889f6dadbf9ff066554587d +0 -0
- py2ls-0.1.4.6/py2ls/.git/objects/71/36b2074a2754be8b58127d82250e5b37e3c373 +0 -0
- py2ls-0.1.4.6/py2ls/.git/objects/81/8f26b7bf042269729020cf944fc362d66ba27e +0 -0
- py2ls-0.1.4.6/py2ls/.git/objects/84/59071b722a255b774a80b27746033f8141ab39 +0 -0
- py2ls-0.1.4.6/py2ls/.git/objects/8b/84f56978e1de8f2ae82abce5f8b3e182d365cd +0 -0
- py2ls-0.1.4.6/py2ls/.git/objects/b5/61831c7dce8ea51e7ee6b6fa35745f14d8242d +0 -0
- py2ls-0.1.4.6/py2ls/.git/objects/c1/20fc812b9ad311c34a3608512d6a9d976bb48e +0 -0
- py2ls-0.1.4.6/py2ls/.git/objects/d6/9ab1c4aadf279936dd778e8346ba60f74705b6 +0 -0
- py2ls-0.1.4.6/py2ls/.git/objects/d9/dfa5aee51e92a541b707e8e7baea6f06deff98 +0 -0
- py2ls-0.1.4.6/py2ls/.git/objects/db/141dbaa93594df2a8156182f361ee4db829359 +0 -0
- py2ls-0.1.4.6/py2ls/.git/objects/e3/1356f90ea6dd0577b5e0b40b206319adcbf085 +0 -0
- py2ls-0.1.4.6/py2ls/.git/objects/fa/147e6bb78a2e8db241d231295fd7f1ed061af8 +0 -0
- py2ls-0.1.4.6/py2ls/.git/refs/heads/main +1 -0
- py2ls-0.1.4.6/py2ls/.git/refs/remotes/origin/main +1 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/__init__.py +1 -2
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/ips.py +90 -6
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/netfinder.py +18 -10
- py2ls-0.1.4.6/py2ls/setuptools-70.1.0-py3-none-any.whl +0 -0
- py2ls-0.1.4.6/pyproject.toml +149 -0
- py2ls-0.1.4.4/py2ls/.git/COMMIT_EDITMSG +0 -4
- py2ls-0.1.4.4/py2ls/.git/FETCH_HEAD +0 -1
- py2ls-0.1.4.4/py2ls/.git/index +0 -0
- py2ls-0.1.4.4/py2ls/.git/refs/heads/main +0 -1
- py2ls-0.1.4.4/py2ls/.git/refs/remotes/origin/main +0 -1
- py2ls-0.1.4.4/py2ls/internet_finder.py +0 -405
- py2ls-0.1.4.4/py2ls/version.py +0 -1
- py2ls-0.1.4.4/pyproject.toml +0 -14
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/README.md +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/HEAD +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/config +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/description +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/hooks/applypatch-msg.sample +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/hooks/commit-msg.sample +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/hooks/fsmonitor-watchman.sample +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/hooks/post-update.sample +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/hooks/pre-applypatch.sample +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/hooks/pre-commit.sample +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/hooks/pre-merge-commit.sample +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/hooks/pre-push.sample +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/hooks/pre-rebase.sample +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/hooks/pre-receive.sample +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/hooks/prepare-commit-msg.sample +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/hooks/push-to-checkout.sample +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/hooks/update.sample +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/info/exclude +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/0b/409e1bc918277010f5679b402d1d1dda53e15c +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/14/449a0e6ba4ea2f1a73acf63ef91c9c6193f9ed +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/15/a8e468aacfcb440e090020f36d0b985d45da23 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/1d/fe9d9633b24ea560354f4f93d39c6e5f163ea0 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/24/6b368b986f758630c46dc02b7fa512b53422f7 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/25/b796accd261b9135fd32a2c00785f68edf6c46 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/30/a2f8da47ee947811dc8d993f5a06a45de374f4 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/36/b4a1b7403abc6c360f8fe2cb656ab945254971 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/36/e56a361f526eafa59c5235a5c990bf288b5f9c +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/36/ef43e50009e59db11812c258846d9e38718173 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/3b/bd972aa7ad680858f8dfbd0f7fcd97756f0d6f +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/3c/bbe5f4173d165127b9ad96119f1ec24c306ffc +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/3f/d6561300938afbb3d11976cf9c8f29549280d9 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/43/dbd49b2ee367c5434dd545e3b5795434f2ef0b +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/48/a88fc5806305d0bb0755ee6801161b79696972 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/58/20a729045d4dc7e37ccaf8aa8eec126850afe2 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/60/f273eb1c412d916fa3f11318a7da7a9911b52a +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/61/570cec8c061abe74121f27f5face6c69b98f99 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/64/27a4edff08f93d98f511418423f09f2ab90bcd +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/69/13c452ca319f7cbf6a0836dc10a5bb033c84e4 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/6b/7fde264d93a7a0986d394c46c7650d0ce2ab92 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/78/3d4167bc95c9d2175e0df03ef1c1c880ba75ab +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/79/7ae089b2212a937840e215276005ce76881307 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/7e/5956c806b5edc344d46dab599dec337891ba1f +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/87/ef1fc3f7f1ddc4d0ab9b3e65381ce9f3388621 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/8e/55a7d2b96184030211f20c9b9af201eefcac82 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/91/c69ad88fe0ba94aa7859fb5f7edac5e6f1a3f7 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/9d/0df52899fe95279059286d9c0ec42287edc168 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/a5/ec8f74642fbba27f7ea78c53b372ae0c7dedce +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/a7/3e13eafee65c5b8d73ad2d3ea46d0eee82f0d3 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/b0/56be4be89ba6b76949dd641df45bb7036050c8 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/b0/9cd7856d58590578ee1a4f3ad45d1310a97f87 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/b2/18e6a0f0f1c4df8cdefa9852058348abc713b7 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/bb/934eb33bc1a8b85630bf680caffd99560c1b8f +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/c4/cba65f1163661999ee4b8ed23342b63bc1300c +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/c6/7f17e5707313600efcb85e9a3fedea35dba591 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/cf/0c0d9c6fb09473aaeb7f7e2edbd770c3f2ef3d +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/d9/005f2cc7fc4e65f14ed5518276007c08cf2fd0 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/d9/c2403fd166ce791b4e9d0c6792ed8342c71fcd +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/db/ffa8ea7bda721d0cee7b9e4ce5b2ef927733ff +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/df/e0770424b2a19faf507a501ebfc23be8f54e7b +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/e3/5a4dafc50850cacac7bf76c56db2715cbda2c4 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/e9/391ffe371f1cc43b42ef09b705d9c767c2e14f +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/f4/b64d3107b39e3ad6f540c6607004ea34e6c024 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/f7/c98ba5c2f903e603b1f5e63d49fbc8a43815cc +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/objects/fc/292e793ecfd42240ac43be407023bd731fa9e7 +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.git/refs/remotes/origin/HEAD +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.gitattributes +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/.gitignore +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/LICENSE +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/README.md +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/brain_atlas.py +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/correlators.py +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/dbhandler.py +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/freqanalysis.py +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/sleep_events_detectors.py +0 -0
- {py2ls-0.1.4.4 → py2ls-0.1.4.6}/py2ls/translator.py +0 -0
- {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.
|
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.
|
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 @@
|
|
1
|
+
c120fc812b9ad311c34a3608512d6a9d976bb48e
|
@@ -0,0 +1 @@
|
|
1
|
+
c120fc812b9ad311c34a3608512d6a9d976bb48e
|
@@ -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
|
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
|
-
|
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=
|
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
|
-
|
426
|
-
|
427
|
-
|
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()
|
431
|
-
ax.axis('off')
|
439
|
+
[ax.axis("off") for ax in axs.flatten()]
|
432
440
|
|
433
441
|
plt.tight_layout()
|
434
442
|
plt.show()
|
Binary file
|
@@ -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 +0,0 @@
|
|
1
|
-
6427a4edff08f93d98f511418423f09f2ab90bcd branch 'main' of https://github.com/Jianfengliu0413/py2ls
|
py2ls-0.1.4.4/py2ls/.git/index
DELETED
Binary file
|
@@ -1 +0,0 @@
|
|
1
|
-
6427a4edff08f93d98f511418423f09f2ab90bcd
|