sticker-convert 2.8.8__py3-none-any.whl → 2.8.10__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
sticker_convert/cli.py CHANGED
@@ -52,6 +52,12 @@ class CLI:
52
52
  action="store_true",
53
53
  help=self.help["global"]["no_confirm"],
54
54
  )
55
+ parser.add_argument(
56
+ "--no-progress",
57
+ dest="no_progress",
58
+ action="store_true",
59
+ help=self.help["global"]["no_progress"],
60
+ )
55
61
  parser.add_argument(
56
62
  "--custom-presets",
57
63
  dest="custom_presets",
@@ -182,6 +188,7 @@ class CLI:
182
188
  print(f"Error: Cannot load custom presets from {args.custom_presets}")
183
189
 
184
190
  self.cb.no_confirm = args.no_confirm
191
+ self.cb.no_progress = args.no_progress
185
192
 
186
193
  self.opt_input = self.get_opt_input(args)
187
194
  self.opt_output = self.get_opt_output(args)
@@ -33,17 +33,6 @@ MSG_FAIL_COMP = (
33
33
  "[F] Failed Compression {} -> {}, "
34
34
  "cannot get below limit {} with lowest quality under current settings (Best size: {})"
35
35
  )
36
- MSG_PYWEBP_DUPFRAME = (
37
- "[W] {} contains duplicated frame.\n"
38
- " System WebP>=0.5.0 was not found, hence Pillow cannot be used\n"
39
- " for creating animated webp. Using pywebp instead, which is known to\n"
40
- " collapse same frames into single frame, causing problem with animation timing."
41
- )
42
- MSG_WEBP_PIL_DUPFRAME = (
43
- "[W] {} contains duplicated frame.\n"
44
- " Using Pillow to create animated webp to avoid same frames collapse\n"
45
- " into single frame, but this is slower."
46
- )
47
36
 
48
37
  YUV_RGB_MATRIX = np.array(
49
38
  [
@@ -195,8 +184,6 @@ class StickerConvert:
195
184
  self.result_step: Optional[int] = None
196
185
 
197
186
  self.apngasm = None
198
- self.msg_pywebp_dupframe_displayed = False
199
- self.msg_webp_pil_dupframe_displayed = False
200
187
 
201
188
  @staticmethod
202
189
  def convert(
@@ -696,11 +683,9 @@ class StickerConvert:
696
683
  self._frames_export_apng()
697
684
  else:
698
685
  self._frames_export_png()
699
- elif self.out_f.suffix == ".webp":
700
- self._frames_export_webp()
701
686
  elif self.out_f.suffix == ".gif":
702
687
  self._frames_export_pil_anim()
703
- elif self.out_f.suffix in (".webm", ".mp4", ".mkv") or is_animated:
688
+ elif self.out_f.suffix in (".webm", ".mp4", ".mkv", ".webp") or is_animated:
704
689
  self._frames_export_pyav()
705
690
  else:
706
691
  self._frames_export_pil()
@@ -717,31 +702,6 @@ class StickerConvert:
717
702
 
718
703
  return False
719
704
 
720
- def _frames_export_webp(self) -> None:
721
- has_dup_frames = self._check_dup()
722
- if self.fps:
723
- # It was noted that pywebp would collapse all frames.
724
- # aed005b attempted to fix this by creating webp with
725
- # variable frame duration. However, the webp created would
726
- # not be accepted by WhatsApp.
727
- # Therefore, we are preferring Pillow over pywebp.
728
- if has_dup_frames:
729
- if PIL_WEBP_ANIM:
730
- # Warn that using Pillow is slower
731
- if not self.msg_webp_pil_dupframe_displayed:
732
- self.cb.put(MSG_WEBP_PIL_DUPFRAME.format(self.in_f_name))
733
- self.msg_webp_pil_dupframe_displayed = True
734
- self._frames_export_pil_anim()
735
- else:
736
- if not self.msg_pywebp_dupframe_displayed:
737
- self.cb.put(MSG_PYWEBP_DUPFRAME.format(self.in_f_name))
738
- self.msg_pywebp_dupframe_displayed = True
739
- self._frames_export_pywebp()
740
- else:
741
- self._frames_export_pywebp()
742
- else:
743
- self._frames_export_pil()
744
-
745
705
  def _frames_export_pil(self) -> None:
746
706
  with Image.fromarray(self.frames_processed[0]) as im: # type: ignore
747
707
  im.save(
@@ -754,30 +714,38 @@ class StickerConvert:
754
714
  import av
755
715
  from av.video.stream import VideoStream
756
716
 
757
- options: Dict[str, str] = {}
717
+ options_container: Dict[str, str] = {}
718
+ options_stream: Dict[str, str] = {}
758
719
 
759
720
  if isinstance(self.quality, int):
760
721
  # Seems not actually working
761
- options["quality"] = str(self.quality)
762
- options["lossless"] = "0"
722
+ options_stream["quality"] = str(self.quality)
723
+ options_stream["lossless"] = "0"
763
724
 
764
725
  if self.out_f.suffix in (".apng", ".png"):
765
726
  codec = "apng"
766
727
  pixel_format = "rgba"
767
- options["plays"] = "0"
728
+ options_container["plays"] = "0"
768
729
  elif self.out_f.suffix in (".webm", ".mkv"):
769
730
  codec = "libvpx-vp9"
770
731
  pixel_format = "yuva420p"
771
- options["loop"] = "0"
732
+ options_container["loop"] = "0"
733
+ elif self.out_f.suffix == ".webp":
734
+ codec = "webp"
735
+ pixel_format = "yuva420p"
736
+ options_container["loop"] = "0"
772
737
  else:
773
738
  codec = "libvpx-vp9"
774
739
  pixel_format = "yuv420p"
775
- options["loop"] = "0"
740
+ options_container["loop"] = "0"
776
741
 
777
742
  with av.open(
778
- self.tmp_f, "w", format=self.out_f.suffix.replace(".", "")
743
+ self.tmp_f,
744
+ "w",
745
+ format=self.out_f.suffix.replace(".", ""),
746
+ options=options_container,
779
747
  ) as output:
780
- out_stream = output.add_stream(codec, rate=self.fps, options=options)
748
+ out_stream = output.add_stream(codec, rate=self.fps, options=options_stream)
781
749
  out_stream = cast(VideoStream, out_stream)
782
750
  assert isinstance(self.res_w, int) and isinstance(self.res_h, int)
783
751
  out_stream.width = self.res_w
@@ -841,21 +809,6 @@ class StickerConvert:
841
809
  **extra_kwargs,
842
810
  )
843
811
 
844
- def _frames_export_pywebp(self) -> None:
845
- import webp # type: ignore
846
-
847
- assert self.fps
848
-
849
- config = webp.WebPConfig.new(quality=self.quality) # type: ignore
850
- enc = webp.WebPAnimEncoder.new(self.res_w, self.res_h) # type: ignore
851
- timestamp_ms = 0
852
- for frame in self.frames_processed:
853
- pic = webp.WebPPicture.from_numpy(frame) # type: ignore
854
- enc.encode_frame(pic, timestamp_ms, config=config) # type: ignore
855
- timestamp_ms += int(1000 / self.fps)
856
- anim_data = enc.assemble(timestamp_ms) # type: ignore
857
- self.tmp_f.write(anim_data.buffer()) # type: ignore
858
-
859
812
  def _frames_export_png(self) -> None:
860
813
  with Image.fromarray(self.frames_processed[0], "RGBA") as image: # type: ignore
861
814
  image_quant = self.quantize(image)
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "global": {
3
3
  "no_confirm": "Do not ask any questions.",
4
+ "no_progress": "Do not show progress bar in CLI.",
4
5
  "custom_presets": "Specify a json file containing custom compression presets.\nSee compression.json for format.\nNote that if present, 'custom_preset.json' from config directory would be auto loaded."
5
6
  },
6
7
  "input": {
@@ -61,6 +61,7 @@ class Callback(CallbackProtocol):
61
61
  ask_str: Optional[Callable[..., str]] = None,
62
62
  silent: bool = False,
63
63
  no_confirm: bool = False,
64
+ no_progress: bool = False,
64
65
  ) -> None:
65
66
  self.progress_bar: Optional[tqdm[Any]] = None
66
67
 
@@ -91,6 +92,7 @@ class Callback(CallbackProtocol):
91
92
 
92
93
  self.silent = silent
93
94
  self.no_confirm = no_confirm
95
+ self.no_progress = no_progress
94
96
 
95
97
  def cb_msg(self, *args: Any, **kwargs: Any) -> None:
96
98
  if self.silent:
@@ -113,7 +115,7 @@ class Callback(CallbackProtocol):
113
115
  steps: int = 0,
114
116
  update_bar: int = 0,
115
117
  ) -> None:
116
- if self.silent:
118
+ if self.silent or self.no_progress:
117
119
  return
118
120
 
119
121
  if self.progress_bar:
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env python3
2
2
 
3
- __version__ = "2.8.8"
3
+ __version__ = "2.8.10"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sticker-convert
3
- Version: 2.8.8
3
+ Version: 2.8.10
4
4
  Summary: Convert (animated) stickers to/from WhatsApp, Telegram, Signal, Line, Kakao, Viber, iMessage. Written in Python.
5
5
  Author-email: laggykiller <chaudominic2@gmail.com>
6
6
  Maintainer-email: laggykiller <chaudominic2@gmail.com>
@@ -365,9 +365,9 @@ Requires-Python: >=3.8
365
365
  Description-Content-Type: text/markdown
366
366
  License-File: LICENSE
367
367
  Requires-Dist: aiolimiter ~=1.1.0
368
- Requires-Dist: anyio ~=4.3.0
369
- Requires-Dist: apngasm-python ~=1.2.3
370
- Requires-Dist: av ~=12.0.0
368
+ Requires-Dist: anyio ~=4.4.0
369
+ Requires-Dist: apngasm-python ~=1.3.1
370
+ Requires-Dist: av ~=12.1.0
371
371
  Requires-Dist: beautifulsoup4 ~=4.12.3
372
372
  Requires-Dist: rookiepy ~=0.5.1
373
373
  Requires-Dist: imagequant ~=1.1.1
@@ -376,14 +376,13 @@ Requires-Dist: mergedeep ~=1.3.4
376
376
  Requires-Dist: numpy >=1.22.4
377
377
  Requires-Dist: Pillow ~=10.3.0
378
378
  Requires-Dist: pyoxipng ~=9.0.0
379
- Requires-Dist: python-telegram-bot ~=21.1
380
- Requires-Dist: requests ~=2.31.0
379
+ Requires-Dist: python-telegram-bot ~=21.2
380
+ Requires-Dist: requests ~=2.32.2
381
381
  Requires-Dist: rlottie-python ~=1.3.4
382
382
  Requires-Dist: signalstickers-client-fork-laggykiller ~=3.3.0.post1
383
383
  Requires-Dist: sqlcipher3-wheels ~=0.5.2.post1
384
384
  Requires-Dist: tqdm ~=4.66.4
385
385
  Requires-Dist: ttkbootstrap-fork-laggykiller ~=1.5.1
386
- Requires-Dist: webp ~=0.3.0
387
386
 
388
387
  # sticker-convert
389
388
  ![imgs/banner.png](imgs/banner.png)
@@ -479,18 +478,28 @@ Requires-Dist: webp ~=0.3.0
479
478
  To run in CLI mode, pass on any arguments
480
479
 
481
480
  ```
482
- usage: sticker-convert.py [-h] [--version] [--no-confirm] [--custom-presets CUSTOM_PRESETS] [--input-dir INPUT_DIR]
481
+ usage: sticker-convert.py [-h] [--version] [--no-confirm] [--no-progress] [--custom-presets CUSTOM_PRESETS]
482
+ [--input-dir INPUT_DIR]
483
483
  [--download-auto DOWNLOAD_AUTO | --download-signal DOWNLOAD_SIGNAL | --download-telegram DOWNLOAD_TELEGRAM | --download-line DOWNLOAD_LINE | --download-kakao DOWNLOAD_KAKAO | --download-viber DOWNLOAD_VIBER]
484
- [--output-dir OUTPUT_DIR] [--author AUTHOR] [--title TITLE] [--export-signal | --export-telegram | --export-telegram-emoji | --export-whatsapp | --export-imessage]
485
- [--no-compress] [--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,viber,imessage_small,imessage_medium,imessage_large,custom}] [--steps STEPS]
486
- [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX] [--fps-power FPS_POWER] [--res-min RES_MIN] [--res-max RES_MAX] [--res-w-min RES_W_MIN] [--res-w-max RES_W_MAX]
487
- [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX] [--res-power RES_POWER] [--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX] [--quality-power QUALITY_POWER]
488
- [--color-min COLOR_MIN] [--color-max COLOR_MAX] [--color-power COLOR_POWER] [--duration-min DURATION_MIN] [--duration-max DURATION_MAX] [--padding-percent PADDING_PERCENT]
489
- [--bg-color BG_COLOR] [--vid-size-max VID_SIZE_MAX] [--img-size-max IMG_SIZE_MAX] [--vid-format VID_FORMAT] [--img-format IMG_FORMAT] [--fake-vid] [--scale-filter SCALE_FILTER]
490
- [--quantize-method QUANTIZE_METHOD] [--cache-dir CACHE_DIR] [--default-emoji DEFAULT_EMOJI] [--signal-uuid SIGNAL_UUID] [--signal-password SIGNAL_PASSWORD] [--signal-get-auth]
491
- [--signal-data-dir SIGNAL_DATA_DIR] [--telegram-token TELEGRAM_TOKEN] [--telegram-userid TELEGRAM_USERID] [--kakao-auth-token KAKAO_AUTH_TOKEN] [--kakao-get-auth]
492
- [--kakao-username KAKAO_USERNAME] [--kakao-password KAKAO_PASSWORD] [--kakao-country-code KAKAO_COUNTRY_CODE] [--kakao-phone-number KAKAO_PHONE_NUMBER] [--line-get-auth]
493
- [--line-cookies LINE_COOKIES] [--save-cred SAVE_CRED]
484
+ [--output-dir OUTPUT_DIR] [--author AUTHOR] [--title TITLE]
485
+ [--export-signal | --export-telegram | --export-telegram-emoji | --export-whatsapp | --export-imessage]
486
+ [--no-compress]
487
+ [--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,viber,imessage_small,imessage_medium,imessage_large,custom}]
488
+ [--steps STEPS] [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX]
489
+ [--fps-power FPS_POWER] [--res-min RES_MIN] [--res-max RES_MAX] [--res-w-min RES_W_MIN]
490
+ [--res-w-max RES_W_MAX] [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX] [--res-power RES_POWER]
491
+ [--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX] [--quality-power QUALITY_POWER]
492
+ [--color-min COLOR_MIN] [--color-max COLOR_MAX] [--color-power COLOR_POWER]
493
+ [--duration-min DURATION_MIN] [--duration-max DURATION_MAX] [--padding-percent PADDING_PERCENT]
494
+ [--bg-color BG_COLOR] [--vid-size-max VID_SIZE_MAX] [--img-size-max IMG_SIZE_MAX]
495
+ [--vid-format VID_FORMAT] [--img-format IMG_FORMAT] [--fake-vid] [--scale-filter SCALE_FILTER]
496
+ [--quantize-method QUANTIZE_METHOD] [--cache-dir CACHE_DIR] [--default-emoji DEFAULT_EMOJI]
497
+ [--signal-uuid SIGNAL_UUID] [--signal-password SIGNAL_PASSWORD] [--signal-get-auth]
498
+ [--signal-data-dir SIGNAL_DATA_DIR] [--telegram-token TELEGRAM_TOKEN]
499
+ [--telegram-userid TELEGRAM_USERID] [--kakao-auth-token KAKAO_AUTH_TOKEN] [--kakao-get-auth]
500
+ [--kakao-username KAKAO_USERNAME] [--kakao-password KAKAO_PASSWORD]
501
+ [--kakao-country-code KAKAO_COUNTRY_CODE] [--kakao-phone-number KAKAO_PHONE_NUMBER]
502
+ [--line-get-auth] [--line-cookies LINE_COOKIES] [--save-cred SAVE_CRED]
494
503
 
495
504
  CLI for stickers-convert
496
505
 
@@ -498,6 +507,7 @@ options:
498
507
  -h, --help show this help message and exit
499
508
  --version show program's version number and exit
500
509
  --no-confirm Do not ask any questions.
510
+ --no-progress Do not show progress bar in CLI.
501
511
  --custom-presets CUSTOM_PRESETS
502
512
  Specify a json file containing custom compression presets.
503
513
  See compression.json for format.
@@ -508,7 +518,7 @@ Input options:
508
518
  Specify input directory.
509
519
  --download-auto DOWNLOAD_AUTO
510
520
  Auto detect URL type and download
511
- (Supported input sources: Signal, Telegram, Line, Kakao)
521
+ (Supported input sources: Signal, Telegram, Line, Kakao, Viber)
512
522
  --download-signal DOWNLOAD_SIGNAL
513
523
  Download signal stickers from a URL as input
514
524
  (Example: https://signal.art/addstickers/#pack_id=xxxxx&pack_key=xxxxx)
@@ -587,7 +597,7 @@ Compression options:
587
597
  --padding-percent PADDING_PERCENT
588
598
  Set percentage of space used as padding.
589
599
  --bg-color BG_COLOR Set custom background color in rrggbbaa format.
590
- Example: 00ff00 for green with alpha 0.
600
+ Example: 00ff0000 for green with alpha 0.
591
601
  If this is not set, background color would be auto set to black if image is bright, or white if image is dark.
592
602
  Note: The color should not be visible if output format supports transparency.
593
603
  --vid-size-max VID_SIZE_MAX
@@ -1,12 +1,12 @@
1
1
  sticker_convert/__init__.py,sha256=iQnv6UOOA69c3soAn7ZOnAIubTIQSUxtq1Uhh8xRWvU,102
2
2
  sticker_convert/__main__.py,sha256=6RJauR-SCSSTT3TU7FFB6B6PVwsCxO2xZXtmZ3jc2Is,463
3
- sticker_convert/cli.py,sha256=QGCpCSVt6ChVGXkX7Ngivl-CDUewqklqz2GRJKPFlsg,18621
4
- sticker_convert/converter.py,sha256=TtUPP_UcuRvdRSkf2YUR_uU-ZvLvJvZiRdNqcWb8R2I,37357
3
+ sticker_convert/cli.py,sha256=DUPaI0Vw-a63TxxC2SSskLd1PlAuQtFOklggMo04IJc,18854
4
+ sticker_convert/converter.py,sha256=hXJ1bS2e1DNShGOVbic0rvbW9WWdI9xFs2LfQY0F5ck,35142
5
5
  sticker_convert/definitions.py,sha256=ZhP2ALCEud-w9ZZD4c3TDG9eHGPZyaAL7zPUsJAbjtE,2073
6
6
  sticker_convert/gui.py,sha256=TRPGwMhSMPHnZppHmw2OWHKTJtGoeLpGWD0eRYi4_yk,30707
7
7
  sticker_convert/job.py,sha256=vKv1--y4MVmZV_IBpUhEfNEiUeEqrTR1umzlALPXKdw,25775
8
8
  sticker_convert/job_option.py,sha256=JHAFCxp7-dDwD-1PbpYLAFRF3OoJu8cj_BjOm5r8Gp8,7732
9
- sticker_convert/version.py,sha256=NgVoPL4PBh23ueR5NkJVXlVHy6AGoldBVKqY4xIiViY,46
9
+ sticker_convert/version.py,sha256=UtJ9dsXpGqw7NMojAfGIj-YUjczQKkZ2Tj8O0zGVRM4,47
10
10
  sticker_convert/downloaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  sticker_convert/downloaders/download_base.py,sha256=x18bI2mPpbXRnSmStBHEb1IvN-VPCilOHLQUs6YPUEU,4041
12
12
  sticker_convert/downloaders/download_kakao.py,sha256=UFp7EpMea62fIePY5DfhH4jThAwdeazfoC5iW1g4dAo,8516
@@ -69,7 +69,7 @@ sticker_convert/resources/appicon.ico,sha256=-ldugcl2Yq2pBRTktnhGKWInpKyWzRjCiPv
69
69
  sticker_convert/resources/appicon.png,sha256=6XBEQz7PnerqS43aRkwpWolFG4WvKMuQ-st1ly-_JPg,5265
70
70
  sticker_convert/resources/compression.json,sha256=8SAv5m7_R2QFaU656W7gpliCJF9ZmGdE_XfnJU3D0ZE,12156
71
71
  sticker_convert/resources/emoji.json,sha256=sXSuKusyG1L2Stuf9BL5ZqfzOIOdeAeE3RXcrXAsLdY,413367
72
- sticker_convert/resources/help.json,sha256=YOemDoCtddz_7lrlkPnn5sa41kagmPkoFIC_OvYmSLI,6575
72
+ sticker_convert/resources/help.json,sha256=9A7zXYrHMkIE75MhDD3xoFuk9jofFRGCVVXH_g_h9bk,6634
73
73
  sticker_convert/resources/input.json,sha256=S3CkInBMLrk5OS9aJfuTCDsf_64NOjNT3IKQr7d1hM0,2665
74
74
  sticker_convert/resources/output.json,sha256=QYP2gqDvEaAm5I9bH4NReaB1XMLboevv69u-V8YdZUs,1373
75
75
  sticker_convert/uploaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -78,7 +78,7 @@ sticker_convert/uploaders/upload_base.py,sha256=uQupPn6r4zrlAzpKzzX7CgvZb69ATyrw
78
78
  sticker_convert/uploaders/upload_signal.py,sha256=eZNfTwnZzPmJcl_UCfJT6rrmLlNpD2EKfxrO2jdi1yg,6396
79
79
  sticker_convert/uploaders/upload_telegram.py,sha256=XnspO9VVbKND0gybUwdFTSzDBVDxLw9O_R7chnVQ0t0,15695
80
80
  sticker_convert/uploaders/xcode_imessage.py,sha256=1gvOljf6kYsq_11tYhnF19Yf4oGY5y34te2DWBRMwf0,11254
81
- sticker_convert/utils/callback.py,sha256=_w_dZ3DZTA9m4TjEg6NH_VOa5Dl2YHXdXAlwx_tBdoY,6061
81
+ sticker_convert/utils/callback.py,sha256=spYUGlklOs1yPZAxoqwOWgR1sdimpfM8a27if3TaVYk,6155
82
82
  sticker_convert/utils/url_detect.py,sha256=L2QwE2jwN85MoyYsW_4GvBHuoedrlhoIdAmzwrmaKLs,840
83
83
  sticker_convert/utils/auth/get_kakao_auth.py,sha256=ipAZ1DUd5CMTpUoxRXHVOFC3DKIpxwxpTYAfrOJ6UZ8,9829
84
84
  sticker_convert/utils/auth/get_line_auth.py,sha256=8l8ha2vQmk3rHGvDE7PkcxQXbH3oe62LKbI3qVUtvqc,2196
@@ -93,9 +93,9 @@ sticker_convert/utils/media/apple_png_normalize.py,sha256=LbrQhc7LlYX4I9ek4XJsZE
93
93
  sticker_convert/utils/media/codec_info.py,sha256=SJSFvQzXHnGkj7MH9xJ5xiC4cqiOjFKckFKE_FICdT4,15562
94
94
  sticker_convert/utils/media/decrypt_kakao.py,sha256=4wq9ZDRnFkx1WmFZnyEogBofiLGsWQM_X69HlA36578,1947
95
95
  sticker_convert/utils/media/format_verify.py,sha256=Xf94jyqk_6M9IlFGMy0wYIgQKn_yg00nD4XW0CgAbew,5732
96
- sticker_convert-2.8.8.dist-info/LICENSE,sha256=gXf5dRMhNSbfLPYYTY_5hsZ1r7UU1OaKQEAQUhuIBkM,18092
97
- sticker_convert-2.8.8.dist-info/METADATA,sha256=2LglWjdHEV5CgH5VD5XpSVcsWqQRu3cHYWAkZ0NHX18,50061
98
- sticker_convert-2.8.8.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
99
- sticker_convert-2.8.8.dist-info/entry_points.txt,sha256=MNJ7XyC--ugxi5jS1nzjDLGnxCyLuaGdsVLnJhDHCqs,66
100
- sticker_convert-2.8.8.dist-info/top_level.txt,sha256=r9vfnB0l1ZnH5pTH5RvkobnK3Ow9m0RsncaOMAtiAtk,16
101
- sticker_convert-2.8.8.dist-info/RECORD,,
96
+ sticker_convert-2.8.10.dist-info/LICENSE,sha256=gXf5dRMhNSbfLPYYTY_5hsZ1r7UU1OaKQEAQUhuIBkM,18092
97
+ sticker_convert-2.8.10.dist-info/METADATA,sha256=wH0_wi0emJzWMyoaa2SkkpCUnN_VIQ6gvQu0Pp4XpF0,50376
98
+ sticker_convert-2.8.10.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
99
+ sticker_convert-2.8.10.dist-info/entry_points.txt,sha256=MNJ7XyC--ugxi5jS1nzjDLGnxCyLuaGdsVLnJhDHCqs,66
100
+ sticker_convert-2.8.10.dist-info/top_level.txt,sha256=r9vfnB0l1ZnH5pTH5RvkobnK3Ow9m0RsncaOMAtiAtk,16
101
+ sticker_convert-2.8.10.dist-info/RECORD,,