py2ls 0.1.10.22__py3-none-any.whl → 0.1.10.24__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.
py2ls/ips.py CHANGED
@@ -1443,10 +1443,21 @@ def fappend(fpath, content=None):
1443
1443
  file.write(content)
1444
1444
 
1445
1445
 
1446
+ def filter_kwargs(kws, valid_kwargs):
1447
+ if isinstance(valid_kwargs, dict):
1448
+ kwargs_filtered = {
1449
+ key: value for key, value in kws.items() if key in valid_kwargs.keys()
1450
+ }
1451
+ elif isinstance(valid_kwargs, list):
1452
+ kwargs_filtered = {
1453
+ key: value for key, value in kws.items() if key in valid_kwargs
1454
+ }
1455
+ return kwargs_filtered
1456
+
1457
+
1446
1458
  def fsave(
1447
1459
  fpath,
1448
1460
  content,
1449
- mode="w",
1450
1461
  how="overwrite",
1451
1462
  kind=None,
1452
1463
  font_name="Times",
@@ -1468,7 +1479,7 @@ def fsave(
1468
1479
  None
1469
1480
  """
1470
1481
 
1471
- def save_content(fpath, content, mode=mode, how="overwrite"):
1482
+ def save_content(fpath, content, mode="w", how="overwrite"):
1472
1483
  if "wri" in how.lower():
1473
1484
  with open(fpath, mode, encoding="utf-8") as file:
1474
1485
  file.write(content)
@@ -1515,13 +1526,36 @@ def fsave(
1515
1526
  pdf.output(fpath, "F")
1516
1527
 
1517
1528
  def save_csv(fpath, data, **kwargs):
1529
+ # https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_csv.html
1530
+ kwargs_csv = dict(
1531
+ path_or_buf=None,
1532
+ sep=",",
1533
+ na_rep="",
1534
+ float_format=None,
1535
+ columns=None,
1536
+ header=True,
1537
+ index=True,
1538
+ index_label=None,
1539
+ mode="w",
1540
+ encoding=None,
1541
+ compression="infer",
1542
+ quoting=None,
1543
+ quotechar='"',
1544
+ lineterminator=None,
1545
+ chunksize=None,
1546
+ date_format=None,
1547
+ doublequote=True,
1548
+ escapechar=None,
1549
+ decimal=".",
1550
+ errors="strict",
1551
+ storage_options=None,
1552
+ )
1553
+ kwargs_valid = filter_kwargs(kwargs, kwargs_csv)
1518
1554
  df = pd.DataFrame(data)
1519
- df.to_csv(fpath, **kwargs)
1555
+ df.to_csv(fpath, **kwargs_valid)
1520
1556
 
1521
1557
  def save_xlsx(fpath, data, **kwargs):
1522
- format = kwargs.get("format", None)
1523
- if format:
1524
- kwargs.pop("format", None)
1558
+ if any(kwargs):
1525
1559
  format_excel(df=data, filename=fpath, **kwargs)
1526
1560
  else:
1527
1561
  kwargs.pop("format", None)
@@ -1618,7 +1652,7 @@ def fsave(
1618
1652
  print(
1619
1653
  f"Warning:\n{kind} is not in the supported list ['docx', 'txt', 'md', 'html', 'pdf', 'csv', 'xlsx', 'json', 'xml', 'yaml']"
1620
1654
  )
1621
-
1655
+ mode = kwargs.get("mode", "w")
1622
1656
  if kind == "docx" or kind == "doc":
1623
1657
  save_docx(fpath, content, font_name, font_size, spacing)
1624
1658
  elif kind == "txt":
@@ -3186,7 +3220,13 @@ def hex2argb(hex_color):
3186
3220
  # Otherwise, assume it's in RRGGBB format and prepend FF for opaque
3187
3221
  if len(hex_color) == 6:
3188
3222
  return f"FF{hex_color}"
3189
-
3223
+ if len(hex_color) == 7:
3224
+ return f"F{hex_color}"
3225
+ else:
3226
+ if len(hex_color) > 8:
3227
+ return hex_color[-9:]
3228
+ else:
3229
+ return "F" * (9 - len(hex_color)) + hex_color
3190
3230
  raise ValueError(
3191
3231
  "Invalid hex color format. Use RRGGBB, #RRGGBB, or aARRGGBB format."
3192
3232
  )
@@ -3540,7 +3580,6 @@ def format_excel(
3540
3580
  number_format=None, # dict: e.g., {1:"0.00", 2:"#,##0",3:"0%",4:"$#,##0.00"}
3541
3581
  data_validation=None, # dict
3542
3582
  conditional_format=None, # dict
3543
- index_default=False,
3544
3583
  **kwargs,
3545
3584
  ):
3546
3585
  if not isinstance(df, pd.DataFrame):
@@ -3711,15 +3750,29 @@ format_excel(
3711
3750
  print(func_xample)
3712
3751
  return None
3713
3752
  kwargs.pop("format", None) # 更好地跟fsave结合使用
3753
+ kwargs.pop("sheet_name", None) # 更好地跟df.to_excel结合使用
3754
+ sheet_name_corr = (
3755
+ sheet_name if isinstance(sheet_name, str) else f"Sheet_{sheet_name}"
3756
+ )
3714
3757
 
3715
- # Save DataFrame to Excel file
3716
- if not index_default:
3717
- df.to_excel(filename, index=False, **kwargs)
3718
- else:
3719
- df.to_excel(filename, **kwargs)
3758
+ # 只有openpyxl才支持 append
3759
+ mode = strcmp(kwargs.get("mode", "w"), ["a", "w"])[0]
3760
+ kwargs.pop("mode", None)
3761
+ engine = strcmp(kwargs.get("engine", "openpyxl"), ["xlsxwriter", "openpyxl"])[0]
3762
+ # 通常是不需要保存index的
3763
+ index = kwargs.get("index", False)
3764
+ kwargs.pop("index", None)
3765
+ # save file
3766
+ with pd.ExcelWriter(filename, mode=mode, engine=engine) as writer:
3767
+ df.to_excel(writer, sheet_name=sheet_name_corr, index=index, **kwargs)
3720
3768
 
3721
3769
  wb = load_workbook(filename)
3722
- ws = wb.worksheets[sheet_name]
3770
+ if isinstance(sheet_name, str):
3771
+ ws = wb[sheet_name]
3772
+ elif isinstance(sheet_name, int):
3773
+ ws = wb.worksheets[sheet_name]
3774
+ else:
3775
+ ws = wb.worksheets[sheet_name] # the index of worksheets
3723
3776
 
3724
3777
  # !Apply cell formatting
3725
3778
  if cell:
@@ -3812,7 +3865,9 @@ format_excel(
3812
3865
  comment = [comment]
3813
3866
  for comment_ in comment:
3814
3867
  for (row, col), comment_str in comment_.items():
3815
- ws.cell(row=row, column=col).comment = Comment(comment_str, "Author")
3868
+ ws.cell(row=row + 1, column=col + 1).comment = Comment(
3869
+ comment_str, "Author"
3870
+ )
3816
3871
 
3817
3872
  # !Add link
3818
3873
  if link:
@@ -3820,7 +3875,7 @@ format_excel(
3820
3875
  link = [link]
3821
3876
  for link_ in link:
3822
3877
  for (row, col), link_str in link_.items():
3823
- ws.cell(row=row, column=col).hyperlink = link_str
3878
+ ws.cell(row=row + 1, column=col + 1).hyperlink = link_str
3824
3879
 
3825
3880
  # !Apply data validation
3826
3881
  if data_validation:
py2ls/netfinder.py CHANGED
@@ -582,7 +582,7 @@ def find_links(url, driver="request", booster=False):
582
582
  if all(exclusion not in link_href for exclusion in cond_ex):
583
583
  links_href.append(link_href)
584
584
 
585
- unique_links = list(set(links_href)) # Remove duplicates
585
+ unique_links = ips.unique(links_href) # Remove duplicates
586
586
 
587
587
  if booster:
588
588
  for link in unique_links:
@@ -590,7 +590,7 @@ def find_links(url, driver="request", booster=False):
590
590
  sub_links = find_links(link, driver=driver, booster=False)
591
591
  if sub_links:
592
592
  links_href.extend(sub_links)
593
- links_href = list(set(links_href)) # Remove duplicates again
593
+ links_href = ips.unique(links_href) # Remove duplicates again
594
594
 
595
595
  return links_href
596
596
 
py2ls/ocr.py CHANGED
@@ -286,14 +286,16 @@ def add_text_pil(
286
286
  text,
287
287
  position,
288
288
  font_size=12,
289
- color=(255, 0, 0),
290
- bg_color=(173, 216, 230, 120),
289
+ color=(0, 0, 0),
290
+ bg_color=(133, 203, 245, 100),
291
291
  ):
292
292
  # Convert the image to PIL format
293
- pil_image = Image.fromarray(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
294
- # Create a drawing context
295
- draw = ImageDraw.Draw(pil_image)
293
+ pil_image = Image.fromarray(cv2.cvtColor(image, cv2.COLOR_BGR2RGB)).convert("RGBA")
296
294
  # Define the font (make sure to use a font that supports Chinese characters)
295
+ overlay = Image.new("RGBA", pil_image.size, (255, 255, 255, 0))
296
+ # Create a drawing context
297
+ draw = ImageDraw.Draw(overlay)
298
+
297
299
  try:
298
300
  font = ImageFont.truetype(
299
301
  "/System/Library/Fonts/Supplemental/Songti.ttc", font_size
@@ -328,8 +330,14 @@ def add_text_pil(
328
330
  draw.rectangle(background_rect, fill=bg_color)
329
331
  # Add text to the image
330
332
  draw.text(adjusted_position, text, font=font, fill=color)
333
+ # Ensure both images are in RGBA mode for alpha compositing
334
+ if pil_image.mode != "RGBA":
335
+ pil_image = pil_image.convert("RGBA")
336
+ if overlay.mode != "RGBA":
337
+ overlay = overlay.convert("RGBA")
338
+ combined = Image.alpha_composite(pil_image, overlay)
331
339
  # Convert the image back to OpenCV format
332
- image = cv2.cvtColor(np.array(pil_image), cv2.COLOR_RGBA2BGR)
340
+ image = cv2.cvtColor(np.array(combined), cv2.COLOR_RGBA2BGR)
333
341
  return image
334
342
 
335
343
 
@@ -382,12 +390,15 @@ def preprocess_img(
382
390
  image = cv2.imread(image)
383
391
  if not isinstance(image, np.ndarray):
384
392
  image = np.array(image)
385
- if image.shape[1] == 4: # Check if it has an alpha channel
386
- # Drop the alpha channel (if needed), or handle it as required
387
- image = cv2.cvtColor(image, cv2.COLOR_RGBA2RGB)
388
- else:
389
- # Convert RGB to BGR for OpenCV compatibility
390
- image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
393
+ try:
394
+ if image.shape[1] == 4: # Check if it has an alpha channel
395
+ # Drop the alpha channel (if needed), or handle it as required
396
+ image = cv2.cvtColor(image, cv2.COLOR_RGBA2RGB)
397
+ else:
398
+ # Convert RGB to BGR for OpenCV compatibility
399
+ image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
400
+ except:
401
+ pass
391
402
 
392
403
  # Rotate image
393
404
  if rotate == "auto":
@@ -532,7 +543,7 @@ def get_text(
532
543
  thr=0.1,
533
544
  gpu=True,
534
545
  decoder="wordbeamsearch", #'greedy', 'beamsearch' and 'wordbeamsearch'(hightly accurate)
535
- output="all",
546
+ output="txt",
536
547
  preprocess=None,
537
548
  postprocess="not ready",
538
549
  show=True,
@@ -541,9 +552,9 @@ def get_text(
541
552
  font=cv2.FONT_HERSHEY_SIMPLEX,
542
553
  font_scale=0.8,
543
554
  thickness_text=2, # Line thickness of 2 px
544
- color_box=(0, 255, 0), # draw_box
545
- color_text=(203, 44, 57), # draw_box
546
- bg_color=(173, 216, 230, 128),
555
+ box_color=(0, 255, 0), # draw_box
556
+ font_color=(0, 0, 0),
557
+ bg_color=(133, 203, 245, 100),
547
558
  usage=False,
548
559
  **kwargs,
549
560
  ):
@@ -559,8 +570,8 @@ def get_text(
559
570
  show: 是否显示结果图像。
560
571
  ax: 用于显示图像的 Matplotlib 子图。
561
572
  cmap: 用于显示图像的颜色映射。
562
- color_box: 边界框的颜色。
563
- color_text: 文本的颜色。
573
+ box_color: 边界框的颜色。
574
+ font_color: 文本的颜色。
564
575
  kwargs: 传递给 EasyOCR readtext 函数的其他参数。
565
576
 
566
577
  # Uage
@@ -632,19 +643,19 @@ def get_text(
632
643
  if score > thr:
633
644
  top_left = tuple(map(int, bbox[0]))
634
645
  bottom_right = tuple(map(int, bbox[2]))
635
- image = cv2.rectangle(image, top_left, bottom_right, color_box, 2)
646
+ image = cv2.rectangle(image, top_left, bottom_right, box_color, 2)
636
647
  # image = cv2.putText(
637
- # image, text, top_left, font, font_scale, color_text, thickness_text
648
+ # image, text, top_left, font, font_scale, font_color, thickness_text
638
649
  # )
639
650
  image = add_text_pil(
640
651
  image,
641
652
  text,
642
653
  top_left,
643
654
  font_size=font_scale * 32,
644
- color=color_text,
655
+ color=font_color,
645
656
  )
646
- img_cmp = cv2.cvtColor(image, cmap)
647
- ax.imshow(img_cmp)
657
+ # img_cmp = cv2.cvtColor(image, cmap)
658
+ ax.imshow(image)
648
659
  ax.axis("off")
649
660
  # plt.show()
650
661
  # 根据输出类型返回相应的结果
@@ -720,20 +731,20 @@ def get_text(
720
731
  map(int, bbox[1])
721
732
  ) # Bottom-left for more accurate placement
722
733
  bottom_right = tuple(map(int, bbox[2]))
723
- image = cv2.rectangle(image, top_left, bottom_right, color_box, 2)
734
+ image = cv2.rectangle(image, top_left, bottom_right, box_color, 2)
724
735
  # image = cv2.putText(
725
- # image, text, top_left, font, font_scale, color_text, thickness_text
736
+ # image, text, top_left, font, font_scale, font_color, thickness_text
726
737
  # )
727
738
  image = add_text_pil(
728
739
  image,
729
740
  text,
730
741
  top_left,
731
742
  font_size=font_scale * 32,
732
- color=color_text,
743
+ color=font_color,
733
744
  bg_color=bg_color,
734
745
  )
735
746
  img_cmp = cv2.cvtColor(image, cmap)
736
- ax.imshow(img_cmp)
747
+ ax.imshow(image)
737
748
  ax.axis("off")
738
749
  # plt.show()
739
750
  # 根据输出类型返回相应的结果
@@ -797,13 +808,13 @@ def get_text(
797
808
  bottom_right = (right, h - bottom)
798
809
 
799
810
  # Draw the bounding box
800
- image = cv2.rectangle(image, top_left, bottom_right, color_box, 2)
811
+ image = cv2.rectangle(image, top_left, bottom_right, box_color, 2)
801
812
  image = add_text_pil(
802
813
  image,
803
814
  char,
804
815
  left,
805
816
  font_size=font_scale * 32,
806
- color=color_text,
817
+ color=font_color,
807
818
  )
808
819
  img_cmp = cv2.cvtColor(image, cmap)
809
820
  ax.imshow(img_cmp)
@@ -838,8 +849,8 @@ def draw_box(
838
849
  detections=None,
839
850
  thr=0.25,
840
851
  cmap=cv2.COLOR_BGR2RGB,
841
- color_box=(0, 255, 0), # draw_box
842
- color_text=(0, 0, 255), # draw_box
852
+ box_color=(0, 255, 0), # draw_box
853
+ font_color=(0, 0, 255), # draw_box
843
854
  font_scale=0.8,
844
855
  show=True,
845
856
  ax=None,
@@ -857,12 +868,12 @@ def draw_box(
857
868
  if score > thr:
858
869
  top_left = tuple(map(int, bbox[0]))
859
870
  bottom_right = tuple(map(int, bbox[2]))
860
- image = cv2.rectangle(image, top_left, bottom_right, color_box, 2)
871
+ image = cv2.rectangle(image, top_left, bottom_right, box_color, 2)
861
872
  # image = cv2.putText(
862
- # image, text, top_left, font, font_scale, color_text, thickness_text
873
+ # image, text, top_left, font, font_scale, font_color, thickness_text
863
874
  # )
864
875
  image = add_text_pil(
865
- image, text, top_left, font_size=font_scale * 32, color=color_text
876
+ image, text, top_left, font_size=font_scale * 32, color=font_color
866
877
  )
867
878
 
868
879
  img_cmp = cv2.cvtColor(image, cmap)
py2ls/plot.py CHANGED
@@ -2391,3 +2391,49 @@ def style_examples(
2391
2391
  dir_save,
2392
2392
  f"{f.name[i]}.pdf",
2393
2393
  )
2394
+
2395
+
2396
+ import matplotlib.pyplot as plt
2397
+ from PIL import Image
2398
+
2399
+
2400
+ def thumbnail(dir_img_list: list, figsize=(10, 10), dpi=100, show=False, usage=False):
2401
+ """
2402
+ Display a thumbnail figure of all images in the specified directory.
2403
+
2404
+ Args:
2405
+ dir_img_list (list): List of image file paths to display.
2406
+ figsize (tuple): Size of the figure (width, height) in inches.
2407
+ dpi (int): Dots per inch for the figure.
2408
+ """
2409
+ if usage:
2410
+ print(
2411
+ 'thumbnail(listdir("./img-innere-medizin-ii", ["jpeg", "jpg", "png"]).fpath.tolist(),figsize=[5,5],dpi=200)'
2412
+ )
2413
+ num_images = len(dir_img_list)
2414
+ if num_images == 0:
2415
+ print("No images found to display.")
2416
+ return None
2417
+
2418
+ # Calculate the number of rows and columns for the grid
2419
+ cols = int(num_images**0.5)
2420
+ rows = (num_images // cols) + (num_images % cols > 0)
2421
+
2422
+ fig, axs = plt.subplots(rows, cols, figsize=figsize, dpi=dpi)
2423
+ axs = axs.flatten() # Flatten the grid for easy iteration
2424
+
2425
+ for ax, image_file in zip(axs, dir_img_list):
2426
+ try:
2427
+ img = Image.open(image_file)
2428
+ ax.imshow(img)
2429
+ ax.axis("off") # Hide axes
2430
+ except (IOError, FileNotFoundError) as e:
2431
+ ax.axis("off") # Still hide axes if image can't be loaded
2432
+
2433
+ # Hide any remaining unused axes
2434
+ for ax in axs[len(dir_img_list) :]:
2435
+ ax.axis("off")
2436
+
2437
+ plt.tight_layout()
2438
+ if show:
2439
+ plt.show()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: py2ls
3
- Version: 0.1.10.22
3
+ Version: 0.1.10.24
4
4
  Summary: py(thon)2(too)ls
5
5
  Author: Jianfeng
6
6
  Author-email: Jianfeng.Liu0413@gmail.com
@@ -10,151 +10,72 @@ Classifier: Programming Language :: Python :: 3.10
10
10
  Classifier: Programming Language :: Python :: 3.11
11
11
  Classifier: Programming Language :: Python :: 3.12
12
12
  Provides-Extra: extr
13
- Requires-Dist: Babel (>=2.15.0)
14
13
  Requires-Dist: CacheControl (>=0.13.1)
15
- Requires-Dist: CairoSVG (>=2.7.1)
16
14
  Requires-Dist: Cython (>=3.0.10)
17
15
  Requires-Dist: Deprecated (>=1.2.14)
18
- Requires-Dist: EbookLib (>=0.18)
19
- Requires-Dist: Flask (>=3.0.3)
20
- Requires-Dist: GitPython (>=3.1.43)
21
16
  Requires-Dist: Jinja2 (>=3.1.4)
22
- Requires-Dist: Levenshtein (>=0.25.1)
23
17
  Requires-Dist: Markdown (>=3.6)
24
18
  Requires-Dist: MarkupSafe (>=2.1.5)
25
- Requires-Dist: MechanicalSoup (>=1.3.0)
26
- Requires-Dist: MouseInfo (>=0.1.3)
27
- Requires-Dist: PyAutoGUI (>=0.9.54)
28
- Requires-Dist: PyGetWindow (>=0.0.9)
29
19
  Requires-Dist: PyMatting (>=1.1.12)
30
- Requires-Dist: PyMsgBox (>=1.0.9)
31
- Requires-Dist: PyNaCl (>=1.5.0)
32
- Requires-Dist: PyOpenGL (>=3.1.7)
20
+ Requires-Dist: PyOpenGL (>=3.1.6)
33
21
  Requires-Dist: PyPDF2 (>=3.0.1)
34
22
  Requires-Dist: PyQt5 (>=5.15.11)
35
23
  Requires-Dist: PyQt5-Qt5 (>=5.15.14)
36
24
  Requires-Dist: PyQt5_sip (>=12.15.0)
37
25
  Requires-Dist: PyQtWebEngine (>=5.15.7)
38
26
  Requires-Dist: PyQtWebEngine-Qt5 (>=5.15.14)
39
- Requires-Dist: PyRect (>=0.2.0)
40
- Requires-Dist: PyScreeze (>=1.0.1)
41
27
  Requires-Dist: PySocks (>=1.7.1)
42
28
  Requires-Dist: PyYAML (>=6.0.1)
43
29
  Requires-Dist: Pygments (>=2.18.0)
44
30
  Requires-Dist: QtPy (>=2.4.1)
45
31
  Requires-Dist: SciencePlots (>=2.1.1)
46
- Requires-Dist: Send2Trash (>=1.8.3)
47
- Requires-Dist: Wand (>=0.6.13)
48
- Requires-Dist: Werkzeug (>=3.0.3)
49
32
  Requires-Dist: XlsxWriter (>=3.2.0)
50
- Requires-Dist: absl-py (>=2.1.0)
51
- Requires-Dist: ae-ffmpeg (>=1.2.0)
52
- Requires-Dist: affine (>=2.4.0)
53
- Requires-Dist: altgraph (>=0.17.4)
54
- Requires-Dist: annotated-types (>=0.7.0)
55
- Requires-Dist: anyio (>=4.4.0)
56
- Requires-Dist: appnope (>=0.1.4)
57
- Requires-Dist: argon2-cffi (>=23.1.0)
58
- Requires-Dist: argon2-cffi-bindings (>=21.2.0)
59
- Requires-Dist: arrow (>=1.3.0)
60
33
  Requires-Dist: asciitree (>=0.3.3)
61
- Requires-Dist: astor (>=0.8.1)
62
34
  Requires-Dist: asttokens (>=2.4.1)
63
- Requires-Dist: astunparse (>=1.6.3)
64
- Requires-Dist: async-lru (>=2.0.4)
65
35
  Requires-Dist: attrs (>=23.2.0)
66
- Requires-Dist: auto-editor (>=24.24.1)
67
- Requires-Dist: bcrypt (>=4.2.0)
68
36
  Requires-Dist: beautifulsoup4 (>=4.12.3)
69
- Requires-Dist: binaryornot (>=0.4.4)
70
- Requires-Dist: black (>=21.12b0)
71
- Requires-Dist: blackcellmagic (>=0.0.3)
72
37
  Requires-Dist: bleach (>=6.1.0)
73
- Requires-Dist: blinker (>=1.8.2)
74
- Requires-Dist: blis (>=0.7.11)
75
- Requires-Dist: bokeh (>=3.4.3)
76
- Requires-Dist: branca (>=0.7.2)
77
- Requires-Dist: briefcase (>=0.3.19)
78
- Requires-Dist: bs4 (>=0.0.2)
79
- Requires-Dist: build (>=1.2.1)
80
- Requires-Dist: cairocffi (>=1.7.0)
81
- Requires-Dist: catalogue (>=2.0.10)
38
+ Requires-Dist: build (>=0.10.0)
82
39
  Requires-Dist: certifi (>=2024.6.2)
83
40
  Requires-Dist: cffi (>=1.16.0)
84
41
  Requires-Dist: chardet (>=3.0.4)
85
42
  Requires-Dist: charset-normalizer (>=3.3.2)
86
43
  Requires-Dist: cleo (>=2.1.0)
87
44
  Requires-Dist: click (>=8.1.7)
88
- Requires-Dist: click-plugins (>=1.1.1)
89
- Requires-Dist: cligj (>=0.7.2)
90
- Requires-Dist: cloudpathlib (>=0.18.1)
91
45
  Requires-Dist: cloudpickle (>=3.0.0)
92
46
  Requires-Dist: colorcet (>=3.1.0)
93
47
  Requires-Dist: coloredlogs (>=15.0.1)
94
48
  Requires-Dist: comm (>=0.2.2)
95
- Requires-Dist: confection (>=0.1.5)
96
- Requires-Dist: contextily (>=1.6.1)
97
49
  Requires-Dist: contourpy (>=1.2.1)
98
- Requires-Dist: cookiecutter (>=2.6.0)
99
50
  Requires-Dist: coverage (>=7.6.0)
100
51
  Requires-Dist: coveralls (>=4.0.1)
101
52
  Requires-Dist: crashtest (>=0.4.1)
102
- Requires-Dist: cryptography (>=43.0.0)
103
- Requires-Dist: cssselect2 (>=0.7.0)
104
53
  Requires-Dist: cycler (>=0.12.1)
105
- Requires-Dist: cymem (>=2.0.8)
106
- Requires-Dist: czifile (>=2019.7.2)
107
- Requires-Dist: dash (>=2.17.1)
108
- Requires-Dist: dash-core-components (>=2.0.0)
109
- Requires-Dist: dash-html-components (>=2.0.0)
110
- Requires-Dist: dash-table (>=5.0.0)
111
- Requires-Dist: dash-vtk (>=0.0.9)
112
- Requires-Dist: dash_daq (>=0.5.0)
113
54
  Requires-Dist: dask (>=2024.7.1)
114
- Requires-Dist: db2ls (>=0.1.3)
115
55
  Requires-Dist: debugpy (>=1.8.2)
116
56
  Requires-Dist: decorator (>=5.1.1)
117
57
  Requires-Dist: defusedxml (>=0.7.1)
118
58
  Requires-Dist: distlib (>=0.3.8)
119
- Requires-Dist: dmgbuild (>=1.6.2)
120
59
  Requires-Dist: docopt (>=0.6.2)
121
60
  Requires-Dist: docx (>=0.2.4)
122
- Requires-Dist: docx2pdf (>=0.1.8)
123
- Requires-Dist: ds-store (>=1.3.1)
124
- Requires-Dist: duckdb (>=1.0.0)
125
- Requires-Dist: duckduckgo_search (>=6.1.12)
126
61
  Requires-Dist: dulwich (>=0.21.7)
127
- Requires-Dist: emoji (>=2.12.1)
128
- Requires-Dist: et-xmlfile (>=1.1.0)
129
62
  Requires-Dist: executing (>=2.0.1)
130
63
  Requires-Dist: faiss-cpu (>=1.8.0.post1)
131
64
  Requires-Dist: fake-useragent (>=1.5.1)
132
65
  Requires-Dist: fasteners (>=0.19)
133
66
  Requires-Dist: fastjsonschema (>=2.20.0)
134
- Requires-Dist: feedparser (>=6.0.11)
135
67
  Requires-Dist: filelock (>=3.15.4)
136
- Requires-Dist: fire (>=0.6.0)
137
68
  Requires-Dist: flake8 (>=7.1.0)
138
69
  Requires-Dist: flatbuffers (>=24.3.25)
139
- Requires-Dist: folium (>=0.17.0)
140
70
  Requires-Dist: fonttools (>=4.53.1)
141
71
  Requires-Dist: fpdf (>=1.7.2)
142
- Requires-Dist: fqdn (>=1.5.1)
143
72
  Requires-Dist: fsspec (>=2024.6.1)
144
73
  Requires-Dist: fuzzywuzzy (>=0.18.0)
145
- Requires-Dist: gast (>=0.6.0)
146
- Requires-Dist: geographiclib (>=2.0)
147
- Requires-Dist: geopandas (>=1.0.1)
148
- Requires-Dist: geopy (>=2.4.1)
149
74
  Requires-Dist: ghp-import (>=2.1.0)
150
- Requires-Dist: gitdb (>=4.0.11)
151
- Requires-Dist: google-pasta (>=0.2.0)
152
75
  Requires-Dist: googletrans (>=4.0.0rc1)
153
- Requires-Dist: grpcio (>=1.66.0)
154
76
  Requires-Dist: h11 (>=0.9.0)
155
77
  Requires-Dist: h2 (>=3.2.0)
156
78
  Requires-Dist: h5py (>=3.11.0)
157
- Requires-Dist: holoviews (>=1.19.1)
158
79
  Requires-Dist: hpack (>=3.0.0)
159
80
  Requires-Dist: hstspreload (>=2024.7.1)
160
81
  Requires-Dist: httpcore (>=0.9.1)
@@ -164,85 +85,45 @@ Requires-Dist: hyperframe (>=5.2.0)
164
85
  Requires-Dist: idna (>=2.10)
165
86
  Requires-Dist: imageio (>=2.34.2)
166
87
  Requires-Dist: img2pdf (>=0.5.1)
167
- Requires-Dist: imgaug (>=0.4.0)
168
- Requires-Dist: importlib_metadata (>=8.2.0)
169
- Requires-Dist: inexactsearch (>=1.0.2)
170
88
  Requires-Dist: iniconfig (>=2.0.0)
171
89
  Requires-Dist: installer (>=0.7.0)
172
90
  Requires-Dist: ipykernel (>=6.29.5)
173
91
  Requires-Dist: ipython (>=8.26.0)
174
- Requires-Dist: ipywidgets (>=8.1.3)
175
- Requires-Dist: isoduration (>=20.11.0)
176
- Requires-Dist: itsdangerous (>=2.2.0)
177
92
  Requires-Dist: jedi (>=0.19.1)
178
93
  Requires-Dist: joblib (>=1.4.2)
179
- Requires-Dist: joypy (>=0.2.6)
180
- Requires-Dist: json5 (>=0.9.25)
181
- Requires-Dist: jsonpointer (>=3.0.0)
182
- Requires-Dist: jsonschema (>=4.22.0)
94
+ Requires-Dist: jsonschema (>=4.17.3)
183
95
  Requires-Dist: jsonschema-specifications (>=2023.12.1)
184
- Requires-Dist: jupyter (>=1.0.0)
185
- Requires-Dist: jupyter-console (>=6.6.3)
186
- Requires-Dist: jupyter-events (>=0.10.0)
187
- Requires-Dist: jupyter-lsp (>=2.2.5)
188
96
  Requires-Dist: jupyter_client (>=8.6.2)
189
97
  Requires-Dist: jupyter_core (>=5.7.2)
190
- Requires-Dist: jupyter_server (>=2.14.2)
191
- Requires-Dist: jupyter_server_terminals (>=0.5.3)
192
- Requires-Dist: jupyterlab (>=4.2.4)
193
98
  Requires-Dist: jupyterlab_pygments (>=0.3.0)
194
- Requires-Dist: jupyterlab_server (>=2.27.3)
195
- Requires-Dist: jupyterlab_widgets (>=3.0.11)
196
- Requires-Dist: keras (>=3.5.0)
99
+ Requires-Dist: keyring (>=24.3.1)
197
100
  Requires-Dist: kiwisolver (>=1.4.5)
198
- Requires-Dist: langcodes (>=3.4.0)
199
101
  Requires-Dist: langdetect (>=1.0.9)
200
- Requires-Dist: language_data (>=1.2.0)
201
102
  Requires-Dist: lazy_loader (>=0.4)
202
- Requires-Dist: libclang (>=18.1.1)
203
103
  Requires-Dist: libretranslatepy (>=2.1.1)
204
- Requires-Dist: linkify-it-py (>=2.0.3)
205
104
  Requires-Dist: llvmlite (>=0.42.0)
206
- Requires-Dist: lmdb (>=1.5.1)
207
105
  Requires-Dist: locket (>=1.0.0)
208
106
  Requires-Dist: lxml (>=4.9.4)
209
- Requires-Dist: mac-alias (>=2.2.2)
210
- Requires-Dist: macholib (>=1.16.3)
211
- Requires-Dist: marisa-trie (>=1.2.0)
212
- Requires-Dist: markdown-it-py (>=3.0.0)
213
107
  Requires-Dist: matplotlib (>=3.9.1)
214
108
  Requires-Dist: matplotlib-inline (>=0.1.7)
215
109
  Requires-Dist: mccabe (>=0.7.0)
216
- Requires-Dist: mdit-py-plugins (>=0.4.1)
217
- Requires-Dist: mdurl (>=0.1.2)
218
110
  Requires-Dist: memory-profiler (>=0.61.0)
219
- Requires-Dist: mercantile (>=1.2.1)
220
111
  Requires-Dist: mergedeep (>=1.3.4)
221
112
  Requires-Dist: mistune (>=3.0.2)
222
113
  Requires-Dist: mkdocs (>=1.6.0)
223
114
  Requires-Dist: mkdocs-get-deps (>=0.2.0)
224
- Requires-Dist: ml-dtypes (>=0.4.0)
225
115
  Requires-Dist: mne (>=1.7.1)
226
- Requires-Dist: modulegraph (>=0.19.6)
227
116
  Requires-Dist: more-itertools (>=10.3.0)
228
117
  Requires-Dist: mpmath (>=1.3.0)
229
118
  Requires-Dist: msgpack (>=1.0.8)
230
119
  Requires-Dist: mtscomp (>=1.0.2)
231
- Requires-Dist: multipledispatch (>=1.0.0)
232
- Requires-Dist: murmurhash (>=1.0.10)
233
- Requires-Dist: mypy-extensions (>=1.0.0)
234
- Requires-Dist: namex (>=0.0.8)
235
- Requires-Dist: natsort (>=8.4.0)
236
120
  Requires-Dist: nbclient (>=0.10.0)
237
121
  Requires-Dist: nbconvert (>=7.16.4)
238
122
  Requires-Dist: nbformat (>=5.10.4)
239
123
  Requires-Dist: neo (>=0.13.1)
240
124
  Requires-Dist: nest-asyncio (>=1.6.0)
241
125
  Requires-Dist: networkx (>=3.3)
242
- Requires-Dist: ninja (>=1.11.1.1)
243
126
  Requires-Dist: nltk (>=3.8.1)
244
- Requires-Dist: notebook (>=7.2.1)
245
- Requires-Dist: notebook_shim (>=0.2.4)
246
127
  Requires-Dist: numba (>=0.59.1)
247
128
  Requires-Dist: numcodecs (>=0.13.0)
248
129
  Requires-Dist: numerizer (>=0.2.3)
@@ -251,204 +132,104 @@ Requires-Dist: onnxruntime (>=1.18.1)
251
132
  Requires-Dist: opencv-contrib-python (>=4.10.0.84)
252
133
  Requires-Dist: opencv-python (>=4.10.0.84)
253
134
  Requires-Dist: opencv-python-headless (>=4.10.0.84)
254
- Requires-Dist: openpyxl (>=3.1.5)
255
- Requires-Dist: opt-einsum (>=3.3.0)
256
- Requires-Dist: optree (>=0.12.1)
257
- Requires-Dist: orjson (>=3.10.6)
258
135
  Requires-Dist: outcome (>=1.3.0.post0)
259
- Requires-Dist: overrides (>=7.7.0)
260
136
  Requires-Dist: packaging (>=24.1)
261
- Requires-Dist: paddleocr (>=2.8.1)
262
- Requires-Dist: paddlepaddle (>=2.6.2)
263
137
  Requires-Dist: pandas (>=2.2.2)
264
138
  Requires-Dist: pandas-flavor (>=0.6.0)
265
139
  Requires-Dist: pandocfilters (>=1.5.1)
266
- Requires-Dist: panel (>=1.4.5)
267
- Requires-Dist: param (>=2.1.1)
268
- Requires-Dist: paramiko (>=3.4.1)
269
140
  Requires-Dist: parso (>=0.8.4)
270
141
  Requires-Dist: partd (>=1.4.2)
271
142
  Requires-Dist: pathspec (>=0.12.1)
272
143
  Requires-Dist: patsy (>=0.5.6)
273
144
  Requires-Dist: pdf2image (>=1.17.0)
274
145
  Requires-Dist: pdf2img (>=0.1.2)
275
- Requires-Dist: pdfminer (>=20191125)
276
146
  Requires-Dist: pexpect (>=4.9.0)
277
147
  Requires-Dist: phylib (>=2.6.0)
278
148
  Requires-Dist: pikepdf (>=9.1.0)
279
149
  Requires-Dist: pillow (>=10.4.0)
280
150
  Requires-Dist: pingouin (>=0.5.4)
281
151
  Requires-Dist: pkginfo (>=1.11.1)
282
- Requires-Dist: pkuseg (>=0.0.25)
283
152
  Requires-Dist: platformdirs (>=3.11.0)
284
153
  Requires-Dist: plotly (>=5.23.0)
285
154
  Requires-Dist: pluggy (>=1.5.0)
286
- Requires-Dist: poetry (>=1.7.0)
287
- Requires-Dist: poetry-core (>=1.8.1)
288
- Requires-Dist: poetry-plugin-export (>=1.6.0)
289
- Requires-Dist: polars (>=0.20.31)
290
155
  Requires-Dist: pooch (>=1.8.2)
291
- Requires-Dist: preshed (>=3.0.9)
292
156
  Requires-Dist: probeinterface (>=0.2.23)
293
- Requires-Dist: prometheus_client (>=0.20.0)
294
157
  Requires-Dist: prompt_toolkit (>=3.0.47)
295
- Requires-Dist: protobuf (>=5.27.3)
158
+ Requires-Dist: protobuf (>=5.27.2)
296
159
  Requires-Dist: psutil (>=5.9.8)
297
160
  Requires-Dist: ptyprocess (>=0.7.0)
298
161
  Requires-Dist: pure_eval (>=0.2.3)
299
- Requires-Dist: py2app (>=0.28.8)
300
- Requires-Dist: py4j (>=0.10.9.7)
301
- Requires-Dist: pyarrow (>=16.1.0)
302
- Requires-Dist: pyav (>=12.1.0)
303
- Requires-Dist: pycairo (>=1.26.0)
304
- Requires-Dist: pyclipper (>=1.3.0.post5)
305
162
  Requires-Dist: pycodestyle (>=2.12.0)
306
163
  Requires-Dist: pycparser (>=2.22)
307
- Requires-Dist: pycryptodome (>=3.20.0)
308
- Requires-Dist: pydantic (>=2.8.2)
309
- Requires-Dist: pydantic_core (>=2.20.1)
310
164
  Requires-Dist: pyflakes (>=3.2.0)
311
- Requires-Dist: pyjanitor (>=0.27.0)
312
- Requires-Dist: pynput (>=1.7.7)
313
- Requires-Dist: pyobjc-core (>=10.3.1)
314
- Requires-Dist: pyobjc-framework-Cocoa (>=10.3.1)
315
- Requires-Dist: pyobjc-framework-CoreText (>=10.3.1)
316
- Requires-Dist: pyobjc-framework-Quartz (>=10.3.1)
317
- Requires-Dist: pyocr (>=0.8.5)
318
- Requires-Dist: pyogrio (>=0.9.0)
319
- Requires-Dist: pypandoc (>=1.13)
320
165
  Requires-Dist: pyparsing (>=3.1.2)
321
- Requires-Dist: pyperclip (>=1.9.0)
322
- Requires-Dist: pyproj (>=3.6.1)
323
166
  Requires-Dist: pyproject_hooks (>=1.1.0)
324
- Requires-Dist: pyreqwest_impersonate (>=0.4.9)
325
167
  Requires-Dist: pyrsistent (>=0.20.0)
326
- Requires-Dist: pyspellchecker (>=0.8.1)
327
- Requires-Dist: pytesseract (>=0.3.13)
328
- Requires-Dist: pytest (>=8.3.3)
168
+ Requires-Dist: pytest (>=8.3.1)
329
169
  Requires-Dist: pytest-cov (>=5.0.0)
330
170
  Requires-Dist: pytest-qt (>=4.4.0)
331
- Requires-Dist: python-Levenshtein (>=0.25.1)
332
- Requires-Dist: python-bidi (>=0.5.1)
333
171
  Requires-Dist: python-box (>=7.2.0)
334
172
  Requires-Dist: python-dateutil (>=2.9.0.post0)
335
173
  Requires-Dist: python-docx (>=1.1.2)
336
174
  Requires-Dist: python-dotenv (>=1.0.1)
337
- Requires-Dist: python-json-logger (>=2.0.7)
338
175
  Requires-Dist: python-pptx (>=0.6.23)
339
- Requires-Dist: python-slugify (>=8.0.4)
340
- Requires-Dist: pytweening (>=1.2.0)
341
176
  Requires-Dist: pytz (>=2024.1)
342
- Requires-Dist: pyviz_comms (>=3.0.3)
343
177
  Requires-Dist: pyyaml_env_tag (>=0.1)
344
178
  Requires-Dist: pyzmq (>=26.0.3)
345
179
  Requires-Dist: qtconsole (>=5.5.2)
346
180
  Requires-Dist: quantities (>=0.15.0)
347
181
  Requires-Dist: rapidfuzz (>=3.9.5)
348
- Requires-Dist: rasterio (>=1.3.10)
349
182
  Requires-Dist: referencing (>=0.35.1)
350
183
  Requires-Dist: regex (>=2024.5.15)
351
184
  Requires-Dist: rembg (>=2.0.57)
352
- Requires-Dist: reportlab (>=4.2.0)
353
185
  Requires-Dist: requests (>=2.32.3)
354
186
  Requires-Dist: requests-toolbelt (>=1.0.0)
355
187
  Requires-Dist: responses (>=0.25.3)
356
- Requires-Dist: retrying (>=1.3.4)
357
- Requires-Dist: rfc3339-validator (>=0.1.4)
358
188
  Requires-Dist: rfc3986 (>=1.5.0)
359
- Requires-Dist: rfc3986-validator (>=0.1.1)
360
- Requires-Dist: rich (>=13.7.1)
361
- Requires-Dist: ridgeplot (>=0.1.25)
362
189
  Requires-Dist: rpds-py (>=0.18.1)
363
- Requires-Dist: rubicon-objc (>=0.4.9)
364
- Requires-Dist: schedule (>=1.2.2)
365
- Requires-Dist: scikit-image (>=0.24.0)
190
+ Requires-Dist: scikit-image (>=0.23.2)
366
191
  Requires-Dist: scikit-learn (>=1.5.1)
192
+ Requires-Dist: scipy (>=1.14.0)
367
193
  Requires-Dist: seaborn (>=0.13.2)
368
- Requires-Dist: selenium (>=4.24.0)
369
- Requires-Dist: setuptools (>=72.1.0)
370
- Requires-Dist: sgmllib3k (>=1.0.0)
371
- Requires-Dist: shapely (>=2.0.5)
194
+ Requires-Dist: selenium (>=4.23.1)
195
+ Requires-Dist: setuptools (>=70.3.0)
372
196
  Requires-Dist: shellingham (>=1.5.4)
373
- Requires-Dist: silpa_common (>=0.3)
374
197
  Requires-Dist: six (>=1.16.0)
375
- Requires-Dist: skimpy (>=0.0.15)
376
- Requires-Dist: smart-open (>=7.0.4)
377
- Requires-Dist: smmap (>=5.0.1)
378
198
  Requires-Dist: sniffio (>=1.3.1)
379
- Requires-Dist: snuggs (>=1.4.7)
380
199
  Requires-Dist: sortedcontainers (>=2.4.0)
381
- Requires-Dist: soundex (>=1.1.3)
382
200
  Requires-Dist: soupsieve (>=2.5)
383
- Requires-Dist: spacy (>=3.7.5)
384
- Requires-Dist: spacy-legacy (>=3.0.12)
385
- Requires-Dist: spacy-loggers (>=1.0.5)
386
- Requires-Dist: spellchecker (>=0.4)
387
- Requires-Dist: spikeinterface (>=0.100.7)
388
- Requires-Dist: srsly (>=2.4.8)
389
201
  Requires-Dist: stack-data (>=0.6.3)
390
- Requires-Dist: stanza (>=1.8.2)
391
202
  Requires-Dist: statsmodels (>=0.14.2)
392
- Requires-Dist: std-nslog (>=1.0.3)
393
203
  Requires-Dist: stem (>=1.8.2)
394
- Requires-Dist: svglib (>=1.5.1)
395
204
  Requires-Dist: sympy (>=1.13.1)
396
205
  Requires-Dist: tabulate (>=0.9.0)
397
206
  Requires-Dist: tenacity (>=8.5.0)
398
- Requires-Dist: tensorboard (>=2.17.1)
399
- Requires-Dist: tensorboard-data-server (>=0.7.2)
400
- Requires-Dist: tensorflow (>=2.17.0)
401
- Requires-Dist: termcolor (>=2.4.0)
402
- Requires-Dist: terminado (>=0.18.1)
403
- Requires-Dist: text-unidecode (>=1.3)
404
- Requires-Dist: thinc (>=8.2.5)
405
207
  Requires-Dist: threadpoolctl (>=3.5.0)
406
208
  Requires-Dist: tifffile (>=2024.7.24)
407
209
  Requires-Dist: tinycss2 (>=1.3.0)
408
- Requires-Dist: toga-cocoa (>=0.4.6)
409
- Requires-Dist: toga-core (>=0.4.6)
410
- Requires-Dist: toml (>=0.10.2)
411
- Requires-Dist: tomli (>=1.2.3)
412
- Requires-Dist: tomli_w (>=1.0.0)
413
210
  Requires-Dist: tomlkit (>=0.13.0)
414
211
  Requires-Dist: toolz (>=0.12.1)
415
212
  Requires-Dist: torch (>=2.4.0)
416
- Requires-Dist: torchvision (>=0.19.0)
417
213
  Requires-Dist: tornado (>=6.4.1)
418
214
  Requires-Dist: tqdm (>=4.66.4)
419
215
  Requires-Dist: traitlets (>=5.14.3)
420
216
  Requires-Dist: translate (>=3.6.1)
421
- Requires-Dist: travertino (>=0.3.0)
422
217
  Requires-Dist: trio (>=0.25.1)
423
218
  Requires-Dist: trio-websocket (>=0.11.1)
424
219
  Requires-Dist: trove-classifiers (>=2024.7.2)
425
- Requires-Dist: typeguard (>=4.2.1)
426
- Requires-Dist: typer (>=0.12.3)
427
- Requires-Dist: types-python-dateutil (>=2.9.0.20240316)
428
220
  Requires-Dist: typing_extensions (>=4.12.2)
429
221
  Requires-Dist: tzdata (>=2024.1)
430
- Requires-Dist: uc-micro-py (>=1.0.3)
431
- Requires-Dist: uri-template (>=1.3.0)
432
222
  Requires-Dist: urllib3 (>=2.2.2)
433
223
  Requires-Dist: virtualenv (>=20.26.3)
434
- Requires-Dist: vtk (>=9.3.1)
435
- Requires-Dist: wasabi (>=1.1.3)
436
224
  Requires-Dist: watchdog (>=4.0.1)
437
225
  Requires-Dist: wcwidth (>=0.2.13)
438
- Requires-Dist: weasel (>=0.4.1)
439
- Requires-Dist: webcolors (>=24.6.0)
440
- Requires-Dist: webdriver-manager (>=4.0.2)
226
+ Requires-Dist: webdriver-manager (>=4.0.1)
441
227
  Requires-Dist: webencodings (>=0.5.1)
442
228
  Requires-Dist: websocket-client (>=1.8.0)
443
- Requires-Dist: wheel (>=0.44.0)
444
- Requires-Dist: widgetsnbextension (>=4.0.11)
445
229
  Requires-Dist: wrapt (>=1.16.0)
446
230
  Requires-Dist: wsproto (>=1.2.0)
447
231
  Requires-Dist: xarray (>=2024.6.0)
448
- Requires-Dist: xlrd (>=2.0.1)
449
- Requires-Dist: xyzservices (>=2024.6.0)
450
232
  Requires-Dist: zarr (>=2.17.2)
451
- Requires-Dist: zipp (>=3.19.2)
452
233
  Description-Content-Type: text/markdown
453
234
 
454
235
  # Install
@@ -206,15 +206,15 @@ py2ls/doc.py,sha256=xN3g1OWfoaGUhikbJ0NqbN5eKy1VZVvWwRlhHMgyVEc,4243
206
206
  py2ls/export_requirements.py,sha256=x2WgUF0jYKz9GfA1MVKN-MdsM-oQ8yUeC6Ua8oCymio,2325
207
207
  py2ls/freqanalysis.py,sha256=F4218VSPbgL5tnngh6xNCYuNnfR-F_QjECUUxrPYZss,32594
208
208
  py2ls/ich2ls.py,sha256=3E9R8oVpyYZXH5PiIQgT3CN5NxLe4Dwtm2LwaeacE6I,21381
209
- py2ls/ips.py,sha256=c152TEz1X3huntbr_QySp0rqEZVf3TkFZeOHUr1m7H0,141806
210
- py2ls/netfinder.py,sha256=_stenzqRZsB4m5FDE7YsSkC2jvkmrUOsq48BRQB2mPM,55369
211
- py2ls/ocr.py,sha256=T1C589yPF07lJ6EFpGgKq5Dw0vLIZ_-ffH_WZZVIz5o,31026
212
- py2ls/plot.py,sha256=J8hRKLpQXHQRG_xE_nmT0mQvc1IxCMJ21tJmKsUKFl4,96155
209
+ py2ls/ips.py,sha256=rbQPUX0Hh_PZET7uBPzZtq93w35zqI5lp_HHLBWT6QI,143812
210
+ py2ls/netfinder.py,sha256=vgOOMhzwbjRuLWMAPyf_kh3HoOhsJ9dlA-tCkMf7kNU,55371
211
+ py2ls/ocr.py,sha256=5lhUbJufIKRSOL6wAWVLEo8TqMYSjoI_Q-IO-_4u3DE,31419
212
+ py2ls/plot.py,sha256=yj-AfnYNr1ha_Y5EimTsUVSooFc36nE0KCQ8cP9_Trs,97601
213
213
  py2ls/setuptools-70.1.0-py3-none-any.whl,sha256=2bi3cUVal8ip86s0SOvgspteEF8SKLukECi-EWmFomc,882588
214
214
  py2ls/sleep_events_detectors.py,sha256=bQA3HJqv5qnYKJJEIhCyhlDtkXQfIzqksnD0YRXso68,52145
215
215
  py2ls/stats.py,sha256=fJmXQ9Lq460StOn-kfEljE97cySq7876HUPTnpB5hLs,38123
216
216
  py2ls/translator.py,sha256=zBeq4pYZeroqw3DT-5g7uHfVqKd-EQptT6LJ-Adi8JY,34244
217
217
  py2ls/wb_detector.py,sha256=7y6TmBUj9exCZeIgBAJ_9hwuhkDh1x_-yg4dvNY1_GQ,6284
218
- py2ls-0.1.10.22.dist-info/METADATA,sha256=pmw03EFUMjPhtuwea4zK-xIbdoE3WPnWhLX8YT-jc_w,27667
219
- py2ls-0.1.10.22.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
220
- py2ls-0.1.10.22.dist-info/RECORD,,
218
+ py2ls-0.1.10.24.dist-info/METADATA,sha256=dbf8zXh56f8wJo2XZxxPbN37Y9FdRMlTbRuBjqR8zPE,19791
219
+ py2ls-0.1.10.24.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
220
+ py2ls-0.1.10.24.dist-info/RECORD,,