q2rad 0.1.165__py3-none-any.whl → 0.1.166__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.

Potentially problematic release.


This version of q2rad might be problematic. Click here for more details.

q2rad/q2appmanager.py CHANGED
@@ -35,31 +35,32 @@ class AppManager(Q2Form):
35
35
  app_data = q2app.q2_app.selected_application
36
36
  self.add_control("/")
37
37
  if self.add_control("/h", "Platform"):
38
- self.add_control(
39
- "upgrade",
40
- "Check updates",
41
- control="button",
42
- datalen=10,
43
- valid=q2app.q2_app.update_packages,
44
- )
38
+ if not q2app.q2_app.frozen:
39
+ self.add_control(
40
+ "upgrade",
41
+ "Check updates",
42
+ control="button",
43
+ datalen=10,
44
+ valid=q2app.q2_app.update_packages,
45
+ )
45
46
 
46
- self.add_control("/s")
47
+ self.add_control("/s")
47
48
 
48
- self.add_control(
49
- "reinstall_",
50
- "Reinstall",
51
- control="button",
52
- valid=self.reinstall,
53
- )
49
+ self.add_control(
50
+ "reinstall_",
51
+ "Reinstall",
52
+ control="button",
53
+ valid=self.reinstall,
54
+ )
54
55
 
55
- self.add_control(
56
- "reinstall_git",
57
- "Reinstall from GitHub",
58
- control="button",
59
- valid=self.update_from_git,
60
- )
56
+ self.add_control(
57
+ "reinstall_git",
58
+ "Reinstall from GitHub",
59
+ control="button",
60
+ valid=self.update_from_git,
61
+ )
61
62
 
62
- self.add_control("/s")
63
+ self.add_control("/s")
63
64
 
64
65
  self.add_control(
65
66
  "reload_assets",
q2rad/q2rad.py CHANGED
@@ -18,7 +18,6 @@ import re
18
18
  import threading
19
19
 
20
20
  if __name__ == "__main__":
21
-
22
21
  sys.path.insert(0, ".")
23
22
 
24
23
 
@@ -201,11 +200,11 @@ def explain_error(tb=None, errtype=None):
201
200
 
202
201
  class Q2RadApp(Q2App):
203
202
  def __init__(self, title=""):
204
-
205
203
  _logger.warning("About to start")
206
204
  super().__init__(title)
207
205
  self.settings_title = "q2RAD"
208
206
  self.style_file = "q2rad.qss"
207
+ self.frozen = getattr(sys, "frozen", False)
209
208
  self.db = None
210
209
 
211
210
  self.db_data = None
@@ -497,11 +496,10 @@ class Q2RadApp(Q2App):
497
496
 
498
497
  self.create_form_menu()
499
498
 
500
- self.dev_mode = (
501
- self.selected_application.get("dev_mode")
502
- or os.path.isdir(self.q2market_path)
503
- or os.path.isfile(".dev")
504
- )
499
+ if self.frozen:
500
+ self.dev_mode = False
501
+
502
+ self.dev_mode = self.selected_application.get("dev_mode") or os.path.isdir(self.q2market_path) or os.path.isfile(".dev")
505
503
  # self.dev_mode = False
506
504
 
507
505
  if self.dev_mode:
@@ -510,6 +508,9 @@ class Q2RadApp(Q2App):
510
508
  self.add_menu("Dev|Querys", self.run_queries, toolbar=self.dev_mode)
511
509
  self.add_menu("Dev|Reports", self.run_reports, toolbar=self.dev_mode)
512
510
  self.add_menu("Dev|Packages", self.run_packages, toolbar=self.dev_mode)
511
+ if not self.frozen:
512
+ self.add_menu("Dev|-")
513
+ self.add_menu("Dev|Make binary", self.make_binary)
513
514
  self.build_menu()
514
515
  # self.show_toolbar(False)
515
516
  pass
@@ -605,48 +606,44 @@ class Q2RadApp(Q2App):
605
606
  if os.path.isfile("poetry.lock"):
606
607
  return
607
608
 
608
- # create update_q2rad.sh
609
- self.write_restore_file(
610
- "update_q2rad",
611
- ("" if "win32" in sys.platform else "#!/bin/bash\n")
612
- + ("q2rad\\scripts\\activate " if "win32" in sys.platform else "source q2rad/bin/activate")
613
- + "&& pip install --upgrade --force-reinstall q2gui"
614
- + "&& pip install --upgrade --force-reinstall q2db"
615
- + "&& pip install --upgrade --force-reinstall q2report"
616
- + "&& pip install --upgrade --force-reinstall q2terminal"
617
- + "&& pip install --upgrade --force-reinstall q2rad",
618
- )
619
-
620
- # create run_q2rad
621
- self.write_restore_file(
622
- "run_q2rad",
623
- ("" if "win32" in sys.platform else "#!/bin/bash\n")
624
- + (
625
- "start q2rad\\scripts\\pythonw.exe -m q2rad"
626
- if "win32" in sys.platform
627
- else "q2rad/bin/q2rad\n"
628
- ),
629
- )
630
- if "win32" in sys.platform:
631
- open("run_q2rad.vbs", "w").write(
632
- 'WScript.CreateObject("WScript.Shell").Run '
633
- '"q2rad\\scripts\\pythonw.exe -m q2rad", 0, false'
609
+ if not self.frozen:
610
+ # create update_q2rad.sh
611
+ self.write_restore_file(
612
+ "update_q2rad",
613
+ ("" if "win32" in sys.platform else "#!/bin/bash\n")
614
+ + ("q2rad\\scripts\\activate " if "win32" in sys.platform else "source q2rad/bin/activate")
615
+ + "&& pip install --upgrade --force-reinstall q2gui"
616
+ + "&& pip install --upgrade --force-reinstall q2db"
617
+ + "&& pip install --upgrade --force-reinstall q2report"
618
+ + "&& pip install --upgrade --force-reinstall q2terminal"
619
+ + "&& pip install --upgrade --force-reinstall q2rad",
634
620
  )
635
621
 
636
- open("make_shortcut.vbs", "w").write(
637
- 'Set oWS = WScript.CreateObject("WScript.Shell")\n'
638
- 'Set oLink = oWS.CreateShortcut(oWS.SpecialFolders("Desktop") & "\\q2RAD.lnk")\n'
639
- 'cu = WScript.CreateObject("Scripting.FileSystemObject").'
640
- "GetParentFolderName(WScript.ScriptFullName)\n"
641
- 'oLink.TargetPath = cu & "\\run_q2rad.vbs"\n'
642
- 'oLink.WorkingDirectory = cu & ""\n'
643
- 'oLink.Description = "q2RAD"\n'
644
- 'oLink.IconLocation = cu & "\\assets\\q2rad.ico"\n'
645
- "oLink.Save\n"
622
+ # create run_q2rad
623
+ self.write_restore_file(
624
+ "run_q2rad",
625
+ ("" if "win32" in sys.platform else "#!/bin/bash\n")
626
+ + ("start q2rad\\scripts\\pythonw.exe -m q2rad" if "win32" in sys.platform else "q2rad/bin/q2rad\n"),
646
627
  )
647
- if sys.platform != "darwin":
648
- if q2AskYN("Should I make a desktop shortcut?") == 2:
649
- self.make_desktop_shortcut()
628
+ if "win32" in sys.platform:
629
+ open("run_q2rad.vbs", "w").write(
630
+ 'WScript.CreateObject("WScript.Shell").Run ' '"q2rad\\scripts\\pythonw.exe -m q2rad", 0, false'
631
+ )
632
+
633
+ open("make_shortcut.vbs", "w").write(
634
+ 'Set oWS = WScript.CreateObject("WScript.Shell")\n'
635
+ 'Set oLink = oWS.CreateShortcut(oWS.SpecialFolders("Desktop") & "\\q2RAD.lnk")\n'
636
+ 'cu = WScript.CreateObject("Scripting.FileSystemObject").'
637
+ "GetParentFolderName(WScript.ScriptFullName)\n"
638
+ 'oLink.TargetPath = cu & "\\run_q2rad.vbs"\n'
639
+ 'oLink.WorkingDirectory = cu & ""\n'
640
+ 'oLink.Description = "q2RAD"\n'
641
+ 'oLink.IconLocation = cu & "\\assets\\q2rad.ico"\n'
642
+ "oLink.Save\n"
643
+ )
644
+ if sys.platform != "darwin":
645
+ if q2AskYN("Should I make a desktop shortcut?") == 2:
646
+ self.make_desktop_shortcut()
650
647
  self.process_events()
651
648
 
652
649
  def get_package_versions(self, package):
@@ -664,6 +661,8 @@ class Q2RadApp(Q2App):
664
661
  return latest_version, current_version
665
662
 
666
663
  def update_packages(self, packages_list=q2_modules, force=False):
664
+ if self.frozen:
665
+ return
667
666
  upgraded = []
668
667
  w = Q2WaitShow(len(packages_list))
669
668
  for package in packages_list:
@@ -682,9 +681,7 @@ class Q2RadApp(Q2App):
682
681
 
683
682
  latest_version, new_current_version = self.get_package_versions(package)
684
683
  if latest_version:
685
- upgraded.append(
686
- f"{package} - " f"<b>{current_version}</b> => " f"<b>{latest_version}</b>"
687
- )
684
+ upgraded.append(f"{package} - " f"<b>{current_version}</b> => " f"<b>{latest_version}</b>")
688
685
  else:
689
686
  upgraded.append(f"Error occured while updating package <b>{package}</b>!")
690
687
  w.close()
@@ -697,6 +694,8 @@ class Q2RadApp(Q2App):
697
694
  self.restart()
698
695
 
699
696
  def update_from_git(self, package="", source="git"):
697
+ if self.frozen:
698
+ return
700
699
  if os.path.isfile("poetry.lock"):
701
700
  q2mess("poetry.lock presents - update from git is impossible!")
702
701
  return
@@ -719,10 +718,7 @@ class Q2RadApp(Q2App):
719
718
  continue
720
719
  if package and package != package:
721
720
  continue
722
- trm.run(
723
- f"{executable} -m pip install --upgrade --force-reinstall --no-deps"
724
- f" {_source_suffix}{package}{_source_postfix}"
725
- )
721
+ trm.run(f"{executable} -m pip install --upgrade --force-reinstall --no-deps" f" {_source_suffix}{package}{_source_postfix}")
726
722
  if trm.exit_code != 0:
727
723
  q2mess(f"Error occured while updateing <b>{package}</b>! See output for details.")
728
724
  w.close()
@@ -737,6 +733,8 @@ class Q2RadApp(Q2App):
737
733
  self.close()
738
734
 
739
735
  def pip_install(self, package, latest_version):
736
+ if self.frozen:
737
+ return
740
738
  q2working(
741
739
  lambda: subprocess.check_call(
742
740
  [
@@ -754,6 +752,8 @@ class Q2RadApp(Q2App):
754
752
  )
755
753
 
756
754
  def pip_uninstall(self, package):
755
+ if self.frozen:
756
+ return
757
757
  q2working(
758
758
  lambda: subprocess.check_call(
759
759
  [
@@ -771,6 +771,8 @@ class Q2RadApp(Q2App):
771
771
 
772
772
  def check_app_update(self, force_update=False):
773
773
  # self.update_app_packages()
774
+ if self.frozen:
775
+ return
774
776
 
775
777
  if not os.path.isdir(self.q2market_path) and self.app_url and self.app_version or force_update:
776
778
  try:
@@ -797,12 +799,14 @@ class Q2RadApp(Q2App):
797
799
  self.open_selected_app()
798
800
 
799
801
  def update_app_packages(self):
800
- extra_packages = [
801
- x["package_name"] for x in q2cursor("select * from packages", self.db_logic).records()
802
- ]
802
+ if self.frozen:
803
+ return
804
+ extra_packages = [x["package_name"] for x in q2cursor("select * from packages", self.db_logic).records()]
803
805
  self.check_packages_update(extra_packages)
804
806
 
805
807
  def check_packages_update(self, packages_list=q2_modules):
808
+ if self.frozen:
809
+ return
806
810
  if len(packages_list) == 0:
807
811
  return
808
812
  can_upgrade = False
@@ -898,6 +902,49 @@ class Q2RadApp(Q2App):
898
902
  def run_packages(self):
899
903
  Q2Packages().run()
900
904
 
905
+ def make_binary(self):
906
+ folder = "make"
907
+ if q2ask("Are you about to start buidlign binary executabele file of Q2RAD!<br>Are You Sure?") != 2:
908
+ return
909
+
910
+ if not os.path.isdir(folder):
911
+ os.mkdir(folder)
912
+ if not os.path.isdir(folder):
913
+ return
914
+
915
+ main = "from q2rad.q2rad import Q2RadApp;app = Q2RadApp();app.run()"
916
+ open(f"{folder}/main.py", "w").write(main)
917
+
918
+ trm = Q2Terminal(callback=print)
919
+ pynstaller_executable = os.path.dirname(sys.executable) + "/pyinstaller"
920
+
921
+ if not os.path.isfile("poetry.lock"):
922
+ trm.run(f"{pynstaller_executable} -v")
923
+ if trm.exit_code != 0:
924
+ pip_executable = os.path.dirname(sys.executable) + "/pip"
925
+ trm.run(f"{pip_executable} install pyinstaller")
926
+ if trm.exit_code != 0:
927
+ q2mess("Pyinstaller not installed!")
928
+ return
929
+
930
+ packages = " ".join(
931
+ [
932
+ f" --collect-all {x['name']}"
933
+ for x in q2cursor("select package_name as name from packages where 'pyinstaller'<>package_name ", self.db_logic).records()
934
+ ]
935
+ )
936
+ trm.run(f"cd {folder}")
937
+ w = q2wait()
938
+ # trm.run(f"pyinstaller --onefile --noconsole {packages} main.py")
939
+ trm.run(f"{pynstaller_executable} -y --noconsole {packages} main.py")
940
+ w.close()
941
+
942
+ if trm.exit_code != 0:
943
+ q2mess("Error occured while making binary! See output for details.")
944
+ else:
945
+ q2mess(f"Success! You binary is located in <b>{os.path.abspath(folder)}</b>")
946
+ trm.close()
947
+
901
948
  def run_form(self, name, order="", where=""):
902
949
  form = q2working(lambda: self.get_form(name, where=where, order=order), "Loading form...")
903
950
  form.run()
q2rad/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.1.165"
1
+ __version__ = "0.1.166"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: q2rad
3
- Version: 0.1.165
3
+ Version: 0.1.166
4
4
  Summary: RAD - database, GUI, reports
5
5
  Author: Andrei Puchko
6
6
  Author-email: andrei.puchko@gmx.de
@@ -1,7 +1,7 @@
1
1
  q2rad/__init__.py,sha256=Y0Up-UTXOmCYC9llNmTF10CpDDgF2kv10pyHT3-YwmQ,183
2
2
  q2rad/__main__.py,sha256=zP4JARM-FzFHM-vWLehx7c5N4v4m_F-TuMobCdFzr4Q,824
3
3
  q2rad/q2actions.py,sha256=_vbahOkI2NrTeyra0sP0jqYDX1Ov3f32GoLfRqevEks,7175
4
- q2rad/q2appmanager.py,sha256=GpubDcFA0rbR-MKBhKR3tazaWudi0w1G5YueIWJq_34,15300
4
+ q2rad/q2appmanager.py,sha256=Vvzxt_Aic0Ou06x3azk9_4IFlLCNfrsHJGEWizAMyL0,15425
5
5
  q2rad/q2appselector.py,sha256=nn5X8nj1gNLLZBGSHxViuVNU5qOrgkvB-4wnNYZu6LI,12445
6
6
  q2rad/q2constants.py,sha256=dQtN4OMvZw0FATDAFYjolI7eGMVUnNnbTl6qM-ggZ4I,3416
7
7
  q2rad/q2forms.py,sha256=yhTjLYZ2-UIo2Cz1K4wPY_pgsy9YGtm1NoJpGF3oh7U,10165
@@ -10,14 +10,14 @@ q2rad/q2market.py,sha256=koWwKKc1MVn0ud2XDu_dal8lBFEMLX8KABpZO_OzTIM,2597
10
10
  q2rad/q2modules.py,sha256=N3OkUKfiwVZtmDyAtnJcs2Rprd7uIHd0HhjHTyFoN_s,4294
11
11
  q2rad/q2packages.py,sha256=IpWEcAT9nLCHUGViInEyM4T1cLEwK9GtNcdGF-pk0tw,3345
12
12
  q2rad/q2queries.py,sha256=abr4Fi3ou1CJsTD6vNfcjcakzjE6xTvh6OYY4bNWQLA,12314
13
- q2rad/q2rad.py,sha256=7Hu1KdnkJbxhfJYa7RDClpPSoSnf_35tldO_u-F5jUo,40641
13
+ q2rad/q2rad.py,sha256=Co9v1DlrtjmCM2nXC9sPUDXkfTL2dt3jyDeeJJg7p-E,42830
14
14
  q2rad/q2raddb.py,sha256=aG5SPEe4cnU_gO8zFmVkTDmIC0gcQFEIUv5NYGuqLlE,4372
15
15
  q2rad/q2reports.py,sha256=YhrbwFXTMTgtwIh5XSWaabseaZjRco34WO5mU676PU8,81238
16
16
  q2rad/q2stylesettings.py,sha256=esbfQoPgP7lJN2GRkqeQKjDpHCqCilJBzZf-c73ThCU,3593
17
17
  q2rad/q2utils.py,sha256=BA-8-objPNvw7QVKfLIsoKUDOTB_1i9AmioUerVn950,13875
18
- q2rad/version.py,sha256=lpqbtoK7dYPkaL1MMcm3nHKdTGbXNby4_8JXsCyyUug,23
19
- q2rad-0.1.165.dist-info/entry_points.txt,sha256=DmsJQE6f3wYuhdN2h6ARYxSe8_d03paeepfGpdVj5rs,42
20
- q2rad-0.1.165.dist-info/LICENSE,sha256=JRR3LlR18ghhYXT4G2cWgXmnxRvcuVcKlqncWWK4MRY,10347
21
- q2rad-0.1.165.dist-info/METADATA,sha256=fX05CfTuwJHkI_iGXnN5e_3bJ7HGDhbuD-404BM4g64,3509
22
- q2rad-0.1.165.dist-info/WHEEL,sha256=WGfLGfLX43Ei_YORXSnT54hxFygu34kMpcQdmgmEwCQ,88
23
- q2rad-0.1.165.dist-info/RECORD,,
18
+ q2rad/version.py,sha256=w0yTzaLPxHMnkI0K1qHPJQ-vcKAvs1qdXwnV6CQgvq4,23
19
+ q2rad-0.1.166.dist-info/entry_points.txt,sha256=DmsJQE6f3wYuhdN2h6ARYxSe8_d03paeepfGpdVj5rs,42
20
+ q2rad-0.1.166.dist-info/LICENSE,sha256=JRR3LlR18ghhYXT4G2cWgXmnxRvcuVcKlqncWWK4MRY,10347
21
+ q2rad-0.1.166.dist-info/METADATA,sha256=rFPVl3e3LbTZuMRjHUVK0JOQiXU0HaqOLT7c3D4K8fM,3509
22
+ q2rad-0.1.166.dist-info/WHEEL,sha256=WGfLGfLX43Ei_YORXSnT54hxFygu34kMpcQdmgmEwCQ,88
23
+ q2rad-0.1.166.dist-info/RECORD,,