chgksuite 0.26.0b1__tar.gz → 0.26.0b3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. {chgksuite-0.26.0b1/chgksuite.egg-info → chgksuite-0.26.0b3}/PKG-INFO +4 -2
  2. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/cli.py +203 -0
  3. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/composer/pptx.py +3 -3
  4. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/composer/telegram.py +8 -5
  5. chgksuite-0.26.0b3/chgksuite/version.py +1 -0
  6. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3/chgksuite.egg-info}/PKG-INFO +4 -2
  7. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite.egg-info/requires.txt +3 -1
  8. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/history.md +3 -0
  9. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/setup.py +3 -1
  10. chgksuite-0.26.0b1/chgksuite/version.py +0 -1
  11. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/LICENSE +0 -0
  12. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/MANIFEST.in +0 -0
  13. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/README.md +0 -0
  14. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/__init__.py +0 -0
  15. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/__main__.py +0 -0
  16. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/common.py +0 -0
  17. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/composer/__init__.py +0 -0
  18. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/composer/chgksuite_parser.py +0 -0
  19. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/composer/composer_common.py +0 -0
  20. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/composer/db.py +0 -0
  21. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/composer/docx.py +0 -0
  22. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/composer/latex.py +0 -0
  23. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/composer/lj.py +0 -0
  24. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/composer/openquiz.py +0 -0
  25. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/composer/reddit.py +0 -0
  26. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/composer/stats.py +0 -0
  27. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/composer/telegram_bot.py +0 -0
  28. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/composer/telegram_parser.py +0 -0
  29. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/parser.py +0 -0
  30. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/parser_db.py +0 -0
  31. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/resources/cheader.tex +0 -0
  32. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/resources/fix-unnumbered-sections.sty +0 -0
  33. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/resources/labels_by.toml +0 -0
  34. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/resources/labels_by_tar.toml +0 -0
  35. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/resources/labels_en.toml +0 -0
  36. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/resources/labels_kz_cyr.toml +0 -0
  37. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/resources/labels_ru.toml +0 -0
  38. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/resources/labels_sr.toml +0 -0
  39. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/resources/labels_ua.toml +0 -0
  40. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/resources/labels_uz.toml +0 -0
  41. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/resources/labels_uz_cyr.toml +0 -0
  42. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/resources/pptx_config.toml +0 -0
  43. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/resources/regexes_by.json +0 -0
  44. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/resources/regexes_en.json +0 -0
  45. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/resources/regexes_kz_cyr.json +0 -0
  46. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/resources/regexes_ru.json +0 -0
  47. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/resources/regexes_sr.json +0 -0
  48. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/resources/regexes_ua.json +0 -0
  49. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/resources/regexes_uz_cyr.json +0 -0
  50. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/resources/template.docx +0 -0
  51. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/resources/template.pptx +0 -0
  52. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/resources/template_shorin.pptx +0 -0
  53. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/resources/trello.json +0 -0
  54. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/trello.py +0 -0
  55. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/typotools.py +0 -0
  56. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite/vulture_whitelist.py +0 -0
  57. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite.egg-info/SOURCES.txt +0 -0
  58. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite.egg-info/dependency_links.txt +0 -0
  59. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite.egg-info/entry_points.txt +0 -0
  60. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/chgksuite.egg-info/top_level.txt +0 -0
  61. {chgksuite-0.26.0b1 → chgksuite-0.26.0b3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: chgksuite
3
- Version: 0.26.0b1
3
+ Version: 0.26.0b3
4
4
  Summary: A package for chgk automation
5
5
  Home-page: https://gitlab.com/peczony/chgksuite
6
6
  Author: Alexander Pecheny
@@ -20,12 +20,14 @@ Requires-Dist: parse
20
20
  Requires-Dist: Pillow
21
21
  Requires-Dist: ply
22
22
  Requires-Dist: pypandoc
23
+ Requires-Dist: pypdf
23
24
  Requires-Dist: pyperclip
24
25
  Requires-Dist: python-docx
25
26
  Requires-Dist: python-pptx
26
- Requires-Dist: requests
27
27
  Requires-Dist: python-telegram-bot
28
+ Requires-Dist: requests
28
29
  Requires-Dist: toml
30
+ Requires-Dist: watchdog
29
31
  Dynamic: author
30
32
  Dynamic: author-email
31
33
  Dynamic: classifier
@@ -12,6 +12,8 @@ from chgksuite.common import (
12
12
  load_settings,
13
13
  )
14
14
  from chgksuite.composer import gui_compose
15
+ from chgksuite.handouter.runner import gui_handouter
16
+ from chgksuite.handouter.tex_internals import GREYTEXT_LANGS
15
17
  from chgksuite.parser import gui_parse
16
18
  from chgksuite.trello import gui_trello
17
19
  from chgksuite.version import __version__
@@ -817,6 +819,205 @@ class ArgparseBuilder:
817
819
  caption="Не открывать браузер",
818
820
  )
819
821
 
822
+ cmdhandouts = subparsers.add_parser("handouts")
823
+ cmdhandouts_subcommands = cmdhandouts.add_subparsers(dest="handoutssubcommand")
824
+ cmdhandouts_run = self.add_parser(cmdhandouts_subcommands, "run")
825
+ self.add_argument(
826
+ cmdhandouts_run,
827
+ "filename",
828
+ help="file with handouts",
829
+ caption="Имя файла с раздатками",
830
+ filetypes=[("handouts files", "*.hndts"), ("text files", "*.txt")],
831
+ )
832
+ self.add_argument(
833
+ cmdhandouts_run,
834
+ "--lang",
835
+ default="ru",
836
+ argtype="radiobutton",
837
+ choices=sorted(GREYTEXT_LANGS.keys()),
838
+ help="language",
839
+ caption="Язык",
840
+ advanced=True,
841
+ )
842
+ self.add_argument(
843
+ cmdhandouts_run,
844
+ "--compress",
845
+ action="store_true",
846
+ help="compress",
847
+ caption="Сжать файл после вёрстки (требует установленного ghostscript)",
848
+ advanced=True,
849
+ )
850
+ self.add_argument(cmdhandouts_run, "--font", "-f", help="font", caption="Шрифт")
851
+ self.add_argument(
852
+ cmdhandouts_run,
853
+ "--font_size",
854
+ type=int,
855
+ default=14,
856
+ help="font size",
857
+ caption="Размер шрифта",
858
+ )
859
+ self.add_argument(
860
+ cmdhandouts_run,
861
+ "--pdfsettings",
862
+ choices=["screen", "ebook", "printer", "prepress", "default"],
863
+ default="default",
864
+ advanced=True,
865
+ caption="Настройки pdfsettings для ghostscript",
866
+ )
867
+ self.add_argument(
868
+ cmdhandouts_run,
869
+ "--paperwidth",
870
+ type=float,
871
+ default=210,
872
+ help="paper width",
873
+ caption="Ширина бумаги",
874
+ advanced=True,
875
+ )
876
+ self.add_argument(
877
+ cmdhandouts_run,
878
+ "--paperheight",
879
+ type=float,
880
+ default=297,
881
+ help="paper height",
882
+ caption="Высота бумаги",
883
+ advanced=True,
884
+ )
885
+ self.add_argument(
886
+ cmdhandouts_run,
887
+ "--margin_top",
888
+ type=float,
889
+ default=5,
890
+ help="top margin",
891
+ caption="Верхний отступ",
892
+ advanced=True,
893
+ )
894
+ self.add_argument(
895
+ cmdhandouts_run,
896
+ "--margin_bottom",
897
+ type=float,
898
+ default=5,
899
+ help="bottom margin",
900
+ caption="Нижний отступ",
901
+ advanced=True,
902
+ )
903
+ self.add_argument(
904
+ cmdhandouts_run,
905
+ "--margin_left",
906
+ type=float,
907
+ default=5,
908
+ help="left margin",
909
+ caption="Левый отступ",
910
+ advanced=True,
911
+ )
912
+ self.add_argument(
913
+ cmdhandouts_run,
914
+ "--margin_right",
915
+ type=float,
916
+ default=5,
917
+ help="right margin",
918
+ caption="Правый отступ",
919
+ advanced=True,
920
+ )
921
+ self.add_argument(
922
+ cmdhandouts_run,
923
+ "--boxwidth",
924
+ type=float,
925
+ help="box width",
926
+ caption="Ширина блока",
927
+ advanced=True,
928
+ )
929
+ self.add_argument(
930
+ cmdhandouts_run,
931
+ "--boxwidthinner",
932
+ type=float,
933
+ help="box width inner",
934
+ caption="Внутренняя ширина блока",
935
+ advanced=True,
936
+ )
937
+ self.add_argument(
938
+ cmdhandouts_run,
939
+ "--tikz_mm",
940
+ type=float,
941
+ default=2,
942
+ help="tikz_mm width",
943
+ caption="Ширина tikz_mm",
944
+ advanced=True,
945
+ )
946
+
947
+ cmdhandouts_generate = self.add_parser(cmdhandouts_subcommands, "generate")
948
+ self.add_argument(
949
+ cmdhandouts_generate,
950
+ "filename",
951
+ help="file with questions packet",
952
+ caption="Имя файла с пакетом",
953
+ filetypes=[("chgksuite files", "*.4s")],
954
+ )
955
+ self.add_argument(
956
+ cmdhandouts_generate,
957
+ "--lang",
958
+ default="ru",
959
+ help="language",
960
+ caption="Язык",
961
+ argtype="radiobutton",
962
+ choices=sorted(GREYTEXT_LANGS.keys()),
963
+ advanced=True,
964
+ )
965
+ self.add_argument(
966
+ cmdhandouts_generate,
967
+ "--separate",
968
+ action="store_true",
969
+ help="Generate separate handouts for each question",
970
+ caption="Сгенерировать отдельный файл с раздатками для каждого вопроса",
971
+ )
972
+ self.add_argument(
973
+ cmdhandouts_generate,
974
+ "--list-handouts",
975
+ "-l",
976
+ action="store_true",
977
+ help="Generate a file with a list of handouts",
978
+ caption="Сгенерировать файл со списком раздаток",
979
+ )
980
+
981
+ cmdhandouts_pack = self.add_parser(cmdhandouts_subcommands, "pack")
982
+ self.add_argument(
983
+ cmdhandouts_pack,
984
+ "folder",
985
+ help="input directory",
986
+ caption="Папка с раздатками",
987
+ )
988
+ self.add_argument(
989
+ cmdhandouts_pack,
990
+ "--output_filename_prefix",
991
+ "-o",
992
+ default="packed_handouts",
993
+ help="output filename prefix",
994
+ caption="Префикс имени выходного файла",
995
+ )
996
+ self.add_argument(
997
+ cmdhandouts_pack,
998
+ "--n_teams",
999
+ "-n",
1000
+ type=int,
1001
+ required=True,
1002
+ help="number of teams",
1003
+ caption="Количество команд",
1004
+ )
1005
+ self.add_argument(
1006
+ cmdhandouts_pack,
1007
+ "--font",
1008
+ "-f",
1009
+ help="font",
1010
+ caption="Шрифт",
1011
+ )
1012
+
1013
+ cmdhandouts_install = self.add_parser(cmdhandouts_subcommands, "install")
1014
+ self.add_argument(
1015
+ cmdhandouts_install,
1016
+ "--tectonic_package_regex",
1017
+ advanced=True,
1018
+ caption="Переопределить имя файла с релизом tectonic",
1019
+ )
1020
+
820
1021
 
821
1022
  def single_action(args, use_wrapper, resourcedir):
822
1023
  if use_wrapper:
@@ -860,6 +1061,8 @@ def single_action(args, use_wrapper, resourcedir):
860
1061
  gui_compose(args)
861
1062
  if args.action == "trello":
862
1063
  gui_trello(args)
1064
+ if args.action == "handouts":
1065
+ gui_handouter(args)
863
1066
 
864
1067
 
865
1068
  def app():
@@ -439,7 +439,7 @@ class PptxExporter(BaseExporter):
439
439
  fields.append("zachet")
440
440
  if self.c["add_comment"] and "comment" in q:
441
441
  fields.append("comment")
442
- if self.c["add_source"] and "source" in q:
442
+ if self.c.get("add_source") and "source" in q:
443
443
  fields.append("source")
444
444
  textbox = None
445
445
  coeff = 1
@@ -492,12 +492,12 @@ class PptxExporter(BaseExporter):
492
492
  r = self.add_run(p, f"\n{self.get_label(q, 'comment')}: ")
493
493
  r.font.bold = True
494
494
  self.pptx_format(comment_text, p, tf, slide)
495
- if self.c["add_source"] and "source" in q:
495
+ if self.c.get("add_source") and "source" in q:
496
496
  source_text = self.pptx_process_text(q["source"])
497
497
  r = self.add_run(p, f"\n{self.get_label(q, 'source')}: ")
498
498
  r.font.bold = True
499
499
  self.pptx_format(source_text, p, tf, slide)
500
- if self.c["add_author"] and "author" in q:
500
+ if self.c.get("add_author") and "author" in q:
501
501
  author_text = self.pptx_process_text(q["author"])
502
502
  r = self.add_run(p, f"\n{self.get_label(q, 'author')}: ")
503
503
  r.font.bold = True
@@ -852,7 +852,7 @@ class TelegramExporter(BaseExporter):
852
852
 
853
853
  # Wait for a forwarded message with channel information
854
854
  channel_id = self.wait_for_forwarded_message(
855
- entity_type="channel", check_type=True, string_id=channel_result
855
+ entity_type="channel", check_type=True
856
856
  )
857
857
  if channel_id:
858
858
  self.save_username(channel_result, channel_id)
@@ -875,7 +875,7 @@ class TelegramExporter(BaseExporter):
875
875
 
876
876
  # Wait for a forwarded message with chat information
877
877
  chat_id = self.wait_for_forwarded_message(
878
- entity_type="chat", check_type=False, string_id=chat_result
878
+ entity_type="chat", check_type=False
879
879
  )
880
880
  if not chat_id:
881
881
  self.logger.error("Failed to get chat ID from forwarded message")
@@ -891,7 +891,6 @@ class TelegramExporter(BaseExporter):
891
891
  entity_type="chat",
892
892
  check_type=False,
893
893
  add_msg=error_msg,
894
- string_id=chat_result,
895
894
  )
896
895
  if chat_id:
897
896
  self.save_username(chat_result, chat_id)
@@ -1117,11 +1116,15 @@ class TelegramExporter(BaseExporter):
1117
1116
 
1118
1117
  # Look for a forwarded message in recent messages
1119
1118
  cursor = self.db_conn.cursor()
1119
+ if self.created_at:
1120
+ threshold = "'" + self.created_at + "'"
1121
+ else:
1122
+ threshold = "datetime('now', '-2 minutes')"
1120
1123
  cursor.execute(
1121
- """
1124
+ f"""
1122
1125
  SELECT raw_data, created_at
1123
1126
  FROM messages
1124
- WHERE created_at > datetime('now', '-2 minutes')
1127
+ WHERE created_at > {threshold}
1125
1128
  ORDER BY created_at DESC
1126
1129
  """
1127
1130
  )
@@ -0,0 +1 @@
1
+ __version__ = "0.26.0b3"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: chgksuite
3
- Version: 0.26.0b1
3
+ Version: 0.26.0b3
4
4
  Summary: A package for chgk automation
5
5
  Home-page: https://gitlab.com/peczony/chgksuite
6
6
  Author: Alexander Pecheny
@@ -20,12 +20,14 @@ Requires-Dist: parse
20
20
  Requires-Dist: Pillow
21
21
  Requires-Dist: ply
22
22
  Requires-Dist: pypandoc
23
+ Requires-Dist: pypdf
23
24
  Requires-Dist: pyperclip
24
25
  Requires-Dist: python-docx
25
26
  Requires-Dist: python-pptx
26
- Requires-Dist: requests
27
27
  Requires-Dist: python-telegram-bot
28
+ Requires-Dist: requests
28
29
  Requires-Dist: toml
30
+ Requires-Dist: watchdog
29
31
  Dynamic: author
30
32
  Dynamic: author-email
31
33
  Dynamic: classifier
@@ -8,9 +8,11 @@ parse
8
8
  Pillow
9
9
  ply
10
10
  pypandoc
11
+ pypdf
11
12
  pyperclip
12
13
  python-docx
13
14
  python-pptx
14
- requests
15
15
  python-telegram-bot
16
+ requests
16
17
  toml
18
+ watchdog
@@ -1,5 +1,8 @@
1
1
  # What’s new
2
2
 
3
+ ## v0.25.1
4
+ - Исправлен баг выкладывания пакета в телеграм
5
+
3
6
  ## v0.25.0
4
7
  - Адаптация к новому формату выходных таблиц турнирного сайта
5
8
  - Улучшения выгрузки PPTX
@@ -54,11 +54,13 @@ setup(
54
54
  "Pillow",
55
55
  "ply",
56
56
  "pypandoc",
57
+ "pypdf",
57
58
  "pyperclip",
58
59
  "python-docx",
59
60
  "python-pptx",
60
- "requests",
61
61
  "python-telegram-bot",
62
+ "requests",
62
63
  "toml",
64
+ "watchdog",
63
65
  ]
64
66
  )
@@ -1 +0,0 @@
1
- __version__ = "0.26.0b1"
File without changes
File without changes
File without changes
File without changes