q2rad 0.1.189__py3-none-any.whl → 0.1.190__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
@@ -16,7 +16,7 @@
16
16
  from q2db.db import Q2Db
17
17
  from q2gui.q2utils import num
18
18
  from q2gui import q2app
19
- from q2gui.q2dialogs import q2AskYN, q2Mess, Q2WaitShow, q2ask
19
+ from q2gui.q2dialogs import q2AskYN, q2Mess, Q2WaitShow, q2ask, q2working
20
20
 
21
21
  from q2rad import Q2Form
22
22
  from q2terminal.q2terminal import Q2Terminal
@@ -287,10 +287,14 @@ class AppManager(Q2Form):
287
287
  if app_name == "demo_app":
288
288
  self.export_data(f"{self.q2_app.q2market_path}/demo_data.json")
289
289
 
290
- trm = Q2Terminal()
291
- trm.run(f"cd {self.q2_app.q2market_path}")
292
- trm.run("git add -A")
293
- trm.run(f"""git commit -a -m"{version}" """)
290
+ trm = Q2Terminal(callback=print)
291
+
292
+ def worker():
293
+ trm.run(f"cd {self.q2_app.q2market_path}")
294
+ trm.run("git add -A")
295
+ trm.run(f"""git commit -a -m"{version}" """)
296
+
297
+ q2working(worker, "Commiting")
294
298
  q2Mess(trm.run("""git push"""))
295
299
  trm.close()
296
300
 
@@ -357,7 +361,7 @@ class AppManager(Q2Form):
357
361
  self.q2_app.open_selected_app()
358
362
 
359
363
  @staticmethod
360
- def import_json_app(data, db = None):
364
+ def import_json_app(data, db=None):
361
365
  if db is None:
362
366
  db: Q2Db = q2app.q2_app.db_logic
363
367
  db_tables = db.get_tables()
q2rad/q2lines.py CHANGED
@@ -94,6 +94,10 @@ class Q2Lines(Q2Form, Q2_save_and_run):
94
94
  self.add_action("-")
95
95
  self.add_action("Select panel", icon="⭥", worker=self.select_panel, hotkey="F3")
96
96
  self.add_action("Copy to", icon="🧩", worker=self.copy_to)
97
+ self.add_action("Move rows down", icon="⭸", worker=self.move_rows_down)
98
+ self.add_action("Layout|Form", icon="☆", worker=lambda: self.add_layout("/f"))
99
+ self.add_action("Layout|Horizontally", worker=lambda: self.add_layout("/h"))
100
+ self.add_action("Layout|Vertically", worker=lambda: self.add_layout("/v"))
97
101
 
98
102
  def create_form(self):
99
103
  self.add_control("id", "", datatype="int", pk="*", ai="*", noform=1, nogrid=1)
@@ -292,6 +296,35 @@ class Q2Lines(Q2Form, Q2_save_and_run):
292
296
  print(last_error(q2app.q2_app.db_logic))
293
297
  self.refresh()
294
298
 
299
+ def add_layout(self, layout_type):
300
+ selected_row = sorted(self.get_grid_selected_rows())
301
+ if len(selected_row) == 0:
302
+ return
303
+ first = min(selected_row)
304
+ first_seq = self.model.get_record(first)["seq"]
305
+
306
+ last = max(selected_row) + 1
307
+
308
+ if last < self.model.row_count():
309
+ last_seq = int_(self.model.get_record(last)["seq"]) + 1
310
+ self.move_rows_down(last, False)
311
+ else:
312
+ last_seq = int_(self.model.get_record(self.model.row_count() - 1)["seq"]) + 2
313
+
314
+ self.move_rows_down(first, False)
315
+ self.model.insert({"column": layout_type, "seq": first_seq})
316
+ self.model.insert({"column": "/", "seq": last_seq})
317
+ self.refresh()
318
+
319
+ def move_rows_down(self, current_row=None, refresh=True):
320
+ if current_row in (None, False):
321
+ current_row = self.current_row
322
+ for x in range(current_row, self.model.row_count()):
323
+ rec = self.model.get_record(x)
324
+ self.model.update({"id": rec["id"], "seq": 1 + int_(rec["seq"])})
325
+ if refresh:
326
+ self.refresh()
327
+
295
328
  def select_panel(self):
296
329
  first_row = last_row = self.current_row
297
330
 
q2rad/q2rad.py CHANGED
@@ -74,6 +74,7 @@ import json
74
74
  import subprocess
75
75
  import shutil
76
76
  import pkgutil
77
+ import pkg_resources
77
78
  import logging
78
79
  import traceback
79
80
 
@@ -700,7 +701,20 @@ class Q2RadApp(Q2App):
700
701
  latest_version = None
701
702
  installed_packages = [x.name for x in pkgutil.iter_modules()]
702
703
  if package in installed_packages:
703
- current_version = self.code_runner(f"from {package} import __version__ as tmpv;return tmpv")()
704
+ try:
705
+ current_version = pkg_resources.get_distribution(package).version
706
+ except Exception as error:
707
+ _logger.error(f"Error checking version of {package}: {error}")
708
+ current_version = None
709
+ if current_version is None:
710
+ try:
711
+ current_version = self.code_runner(
712
+ f"from {package} import __version__ as tmpv;return tmpv"
713
+ )()
714
+ except Exception as error:
715
+ _logger.error(f"Error checking version of {package}: {error}")
716
+ if current_version is None:
717
+ q2mess(f"Error checkin curent version of {package}!")
704
718
  else:
705
719
  current_version = None
706
720
 
@@ -874,7 +888,7 @@ class Q2RadApp(Q2App):
874
888
  if self.db_logic is not None and package not in q2_modules:
875
889
  pkg_ver = get("packages", f"package_name='{package}'", "package_version", q2_db=self.db_logic)
876
890
  pkg_ver = pkg_ver if pkg_ver else "99999"
877
- if pkg_ver != "":
891
+ if pkg_ver != "":
878
892
  try:
879
893
  if current_version is None:
880
894
  pass
q2rad/q2reports.py CHANGED
@@ -13,7 +13,7 @@
13
13
  # limitations under the License.
14
14
 
15
15
 
16
- from q2gui.q2dialogs import q2AskYN, q2mess
16
+ from q2gui.q2dialogs import q2AskYN, q2mess # noqa:F401
17
17
  from q2gui.q2widget import Q2Widget
18
18
 
19
19
  from q2gui.q2app import Q2Actions
@@ -359,7 +359,8 @@ class Q2ReportEdit(Q2Form):
359
359
  return content
360
360
 
361
361
  def after_form_show(self):
362
- self.w.rl.meta["form_window"].set_style_sheet("* {font-size: 8pt;}")
362
+ # self.form_stack[-1].set_style_sheet("border-radius:0px;border: 0px")
363
+ pass
363
364
 
364
365
 
365
366
  class Q2ReportReport(Q2Form):
@@ -414,8 +415,15 @@ class Q2ReportReport(Q2Form):
414
415
  dblclick=self.style_button_pressed,
415
416
  )
416
417
 
417
- self.add_control("", tag="pages", actions=actions)
418
- # self.add_control("", control="label", tag="pages", actions=actions)
418
+ self.add_control("", control="toolbar", tag="report_action", actions=actions)
419
+ self.add_control(
420
+ "efs",
421
+ "Editors font size",
422
+ datatype="int",
423
+ control="spin",
424
+ data=8,
425
+ valid=self.editor_font_size,
426
+ )
419
427
  self.add_control("/")
420
428
  if self.add_control("/vr", tag="pages"):
421
429
  self.add_control("anchor", "*", control="label")
@@ -423,126 +431,127 @@ class Q2ReportReport(Q2Form):
423
431
  self.add_control("/")
424
432
  if self.add_control("/v", tag="style_panel"):
425
433
  self.add_control("/vr")
426
- self.add_control("/f", "Font")
427
- self.add_control(
428
- "font_family",
429
- "Font family",
430
- control="combo",
431
- pic="Arial;Times;Courier",
432
- check=1,
433
- valid=self.prop_font_family,
434
- when=self.prop_font_family,
435
- )
436
- self.add_control(
437
- "font_size",
438
- "Font size",
439
- control="spin",
440
- datalen=5,
441
- datatype="int",
442
- check=1,
443
- valid=self.prop_font_size,
444
- when=self.prop_font_size,
445
- )
446
- self.add_control(
447
- "font_weight",
448
- "Font weight",
449
- control="check",
450
- check=1,
451
- valid=self.prop_font_weight,
452
- when=self.prop_font_weight,
453
- )
454
- self.add_control("/")
455
-
456
- self.add_control(
457
- "/h",
458
- "Borders",
459
- check=1,
460
- tag="border_width",
461
- valid=self.prop_border,
462
- when=self.prop_border,
463
- )
464
- self.add_control(
465
- "border_left",
466
- "",
467
- control="spin",
468
- datalen=5,
469
- valid=self.prop_border,
470
- when=self.prop_border,
471
- )
472
- self.add_control("/v")
473
- self.add_control(
474
- "border_top",
475
- "",
476
- control="spin",
477
- datalen=5,
478
- valid=self.prop_border,
479
- when=self.prop_border,
480
- )
481
- self.add_control(
482
- "border_bottom",
483
- "",
484
- control="spin",
485
- datalen=5,
486
- valid=self.prop_border,
487
- when=self.prop_border,
488
- )
489
- self.add_control("/")
490
- self.add_control(
491
- "border_right",
492
- "",
493
- control="spin",
494
- datalen=5,
495
- valid=self.prop_border,
496
- when=self.prop_border,
497
- )
434
+ if self.add_control("/f", "Font"):
435
+ self.add_control(
436
+ "font_family",
437
+ "Font family",
438
+ control="combo",
439
+ pic="Arial;Times;Courier",
440
+ check=1,
441
+ valid=self.prop_font_family,
442
+ when=self.prop_font_family,
443
+ )
444
+ self.add_control(
445
+ "font_size",
446
+ "Font size",
447
+ control="spin",
448
+ datalen=5,
449
+ datatype="int",
450
+ check=1,
451
+ valid=self.prop_font_size,
452
+ when=self.prop_font_size,
453
+ )
454
+ self.add_control(
455
+ "font_weight",
456
+ "Font weight",
457
+ control="check",
458
+ check=1,
459
+ valid=self.prop_font_weight,
460
+ when=self.prop_font_weight,
461
+ )
498
462
  self.add_control("/")
463
+ if self.add_control("/v", "-"):
464
+ self.add_control(
465
+ "/h",
466
+ "Borders",
467
+ check=1,
468
+ tag="border_width",
469
+ valid=self.prop_border,
470
+ when=self.prop_border,
471
+ )
472
+ self.add_control(
473
+ "border_left",
474
+ "",
475
+ control="spin",
476
+ datalen=5,
477
+ valid=self.prop_border,
478
+ when=self.prop_border,
479
+ )
480
+ self.add_control("/v")
481
+ self.add_control(
482
+ "border_top",
483
+ "",
484
+ control="spin",
485
+ datalen=5,
486
+ valid=self.prop_border,
487
+ when=self.prop_border,
488
+ )
489
+ self.add_control(
490
+ "border_bottom",
491
+ "",
492
+ control="spin",
493
+ datalen=5,
494
+ valid=self.prop_border,
495
+ when=self.prop_border,
496
+ )
497
+ self.add_control("/")
498
+ self.add_control(
499
+ "border_right",
500
+ "",
501
+ control="spin",
502
+ datalen=5,
503
+ valid=self.prop_border,
504
+ when=self.prop_border,
505
+ )
506
+ self.add_control("/")
499
507
 
500
- self.add_control(
501
- "/h",
502
- "Paddings",
503
- check=1,
504
- tag="padding",
505
- valid=self.prop_padding,
506
- when=self.prop_padding,
507
- )
508
- self.add_control(
509
- "padding_left",
510
- "",
511
- control="doublespin",
512
- datalen=5,
513
- datadec=2,
514
- valid=self.prop_padding,
515
- when=self.prop_padding,
516
- )
517
- self.add_control("/v")
518
- self.add_control(
519
- "padding_top",
520
- "",
521
- control="doublespin",
522
- datalen=5,
523
- datadec=2,
524
- valid=self.prop_padding,
525
- when=self.prop_padding,
526
- )
527
- self.add_control(
528
- "padding_bottom",
529
- "",
530
- control="doublespin",
531
- datalen=5,
532
- datadec=2,
533
- valid=self.prop_padding,
534
- when=self.prop_padding,
535
- )
536
- self.add_control("/")
537
- self.add_control(
538
- "padding_right",
539
- "",
540
- control="doublespin",
541
- datalen=5,
542
- datadec=2,
543
- valid=self.prop_padding,
544
- when=self.prop_padding,
545
- )
508
+ self.add_control(
509
+ "/h",
510
+ "Paddings",
511
+ check=1,
512
+ tag="padding",
513
+ valid=self.prop_padding,
514
+ when=self.prop_padding,
515
+ )
516
+ self.add_control(
517
+ "padding_left",
518
+ "",
519
+ control="doublespin",
520
+ datalen=5,
521
+ datadec=2,
522
+ valid=self.prop_padding,
523
+ when=self.prop_padding,
524
+ )
525
+ self.add_control("/v")
526
+ self.add_control(
527
+ "padding_top",
528
+ "",
529
+ control="doublespin",
530
+ datalen=5,
531
+ datadec=2,
532
+ valid=self.prop_padding,
533
+ when=self.prop_padding,
534
+ )
535
+ self.add_control(
536
+ "padding_bottom",
537
+ "",
538
+ control="doublespin",
539
+ datalen=5,
540
+ datadec=2,
541
+ valid=self.prop_padding,
542
+ when=self.prop_padding,
543
+ )
544
+ self.add_control("/")
545
+ self.add_control(
546
+ "padding_right",
547
+ "",
548
+ control="doublespin",
549
+ datalen=5,
550
+ datadec=2,
551
+ valid=self.prop_padding,
552
+ when=self.prop_padding,
553
+ )
554
+ self.add_control("/")
546
555
  self.add_control("/")
547
556
  if self.add_control("/v", "-"): # Alignments
548
557
  self.add_control(
@@ -576,6 +585,13 @@ class Q2ReportReport(Q2Form):
576
585
 
577
586
  self.set_content()
578
587
 
588
+ def editor_font_size(self):
589
+ if int_(self.s.efs) <= 7:
590
+ self.s.efs = "8"
591
+ if int_(self.s.efs) >= 18:
592
+ self.s.efs = "18"
593
+ self.set_pages_style()
594
+
579
595
  def run_report(self, output_file="html"):
580
596
  rep = Q2RadReport(self.report_edit_form.get_content())
581
597
  rep.run(output_file)
@@ -664,7 +680,10 @@ class Q2ReportReport(Q2Form):
664
680
  row_sheet.apply_style()
665
681
 
666
682
  def get_pages(self):
667
- return self.anchor.get_layout_widgets()[1:]
683
+ if self.anchor:
684
+ return self.anchor.get_layout_widgets()[1:]
685
+ else:
686
+ return []
668
687
 
669
688
  def style_button_pressed(self):
670
689
  self.focus_changed(self.w.style_button)
@@ -775,7 +794,20 @@ class Q2ReportReport(Q2Form):
775
794
  self.w.font_weight.set_title("Bold")
776
795
  ReportForm.set_style_button(self, "Report")
777
796
  self.w.style_button.set_focus()
778
- self.w.style_button.meta["form_window"].set_style_sheet("* {font-size: 8pt;}")
797
+ self.w.style_button.parentWidget().set_style_sheet("border-radius:0px;")
798
+ self.set_pages_style()
799
+
800
+ def set_pages_style(self):
801
+ self.w.pages.set_style_sheet(
802
+ f"border-radius:0px;border:0px;font-size:{self.s.efs}pt;font-family:Fixed; margin:0px;padding:0px"
803
+ )
804
+ self.report_report_form.ratio = int_(num(45) + (num(self.s.efs) - num(8)) * 2)
805
+ # print(self.report_report_form.ratio)
806
+ # if self.report_report_form.ratio != 1:
807
+ # self.report_report_form.ratio = int(self.report_report_form.ratio / num(1.7))
808
+ # print(self.report_report_form.ratio)
809
+ for x in self.get_pages():
810
+ x.q2_form._repaint()
779
811
 
780
812
  def show_content(self):
781
813
  if self.widget() is None:
@@ -1133,9 +1165,9 @@ class Q2ReportColumns(Q2Form, ReportForm):
1133
1165
  form.cancel_button = 1
1134
1166
  form.run()
1135
1167
  if form.ok_pressed:
1136
- self.columns_data.widths[
1137
- self.columns_sheet.current_column()
1138
- ] = f"{form.s.w}{'%' if form.s.p == '*' else ''}"
1168
+ self.columns_data.widths[self.columns_sheet.current_column()] = (
1169
+ f"{form.s.w}{'%' if form.s.p == '*' else ''}"
1170
+ )
1139
1171
  self._repaint()
1140
1172
 
1141
1173
  def style_button_pressed(self):
@@ -1233,7 +1265,10 @@ class Q2ReportColumns(Q2Form, ReportForm):
1233
1265
  self.columns_sheet.hide_column_headers()
1234
1266
 
1235
1267
  ReportForm.set_style_button(self, "Columns")
1236
-
1268
+ self.w.style_button.parentWidget().parentWidget().parentWidget().set_style_sheet(
1269
+ "border: 0px;margin:0px;padding:0px"
1270
+ )
1271
+ self.w.style_button.parentWidget().parentWidget().parentWidget().layout().setSpacing(0)
1237
1272
  self.set_content()
1238
1273
  self._repaint()
1239
1274
 
@@ -1655,7 +1690,7 @@ class Q2ReportRows(Q2Form, ReportForm):
1655
1690
  datatype="char",
1656
1691
  data=self.rows_data.role,
1657
1692
  pic=roles_list,
1658
- datalen=50,
1693
+ datalen=10,
1659
1694
  valid=role_valid,
1660
1695
  )
1661
1696
  form.add_control(
@@ -2035,7 +2070,7 @@ class Q2ReportRows(Q2Form, ReportForm):
2035
2070
  self.rows_sheet.add_style_sheet("border-style:solid; border-radius:0")
2036
2071
 
2037
2072
  ReportForm.set_style_button(self)
2038
-
2073
+ self.w.style_button.parentWidget().parentWidget().layout().setSpacing(0)
2039
2074
  self._repaint()
2040
2075
  self.set_content()
2041
2076
 
@@ -2116,6 +2151,6 @@ class Q2ReportRows(Q2Form, ReportForm):
2116
2151
  self.rows_data.heights, column=self.report_columns_form.get_column_count()
2117
2152
  )
2118
2153
 
2119
- self.w.style_button.set_row_size(self.rows_sheet.height())
2154
+ # self.w.style_button.set_row_size(self.rows_sheet.height())
2120
2155
 
2121
2156
  self.set_rows_role_text()
q2rad/q2utils.py CHANGED
@@ -212,7 +212,7 @@ class Q2Form(_Q2Form):
212
212
  elif choice == 2: # Row
213
213
  pk = self.model.get_meta_primary_key()
214
214
  cu = q2cursor(
215
- f"""select *
215
+ f"""select *
216
216
  from log_{self.model.get_table_name()}
217
217
  where {pk} = '{self.r.__getattr__(pk)}'
218
218
  """
@@ -221,7 +221,7 @@ class Q2Form(_Q2Form):
221
221
  where = self.model.get_where()
222
222
  where = f" where {where}" if where != "" else ""
223
223
  cu = q2cursor(
224
- f"""select *
224
+ f"""select *
225
225
  from log_{self.model.get_table_name()}
226
226
  {where}
227
227
  """
@@ -264,7 +264,10 @@ class Q2Form(_Q2Form):
264
264
  form.add_control("ql", "", widget=form.query_edit, nogrid=1, migrate=0)
265
265
 
266
266
  def after_form_show():
267
- form.query_edit.set_content({"queries": {"query": self.model.get_table_name()}})
267
+ query = self.model.get_table_name()
268
+ if not query.strip().lower().startswith("select "):
269
+ query = f"select * from {query}"
270
+ form.query_edit.set_content({"queries": {"query": query}})
268
271
 
269
272
  form.after_form_show = after_form_show
270
273
 
q2rad/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.1.189"
1
+ __version__ = "0.1.190"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: q2rad
3
- Version: 0.1.189
3
+ Version: 0.1.190
4
4
  Summary: RAD - database, GUI, reports
5
5
  Author: Andrei Puchko
6
6
  Author-email: andrei.puchko@gmx.de
@@ -1,24 +1,24 @@
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=2eU5spoZJOxJYyENFjqyAr1HJbkycheEa7TUGOTiHZs,8035
4
- q2rad/q2appmanager.py,sha256=x37tKfvUu-w8Cbu_v-0kLJgnLPpJ2o4qKwWu90SqOaU,15464
4
+ q2rad/q2appmanager.py,sha256=uDm2sP49fS4sWn75NEEic0xxtFG0I780pLcxDBR4eME,15566
5
5
  q2rad/q2appselector.py,sha256=00q1zj_7vcGH1Kn73BgOuxBf1Pw0OAfNniZqEfamp1s,12195
6
6
  q2rad/q2constants.py,sha256=dQtN4OMvZw0FATDAFYjolI7eGMVUnNnbTl6qM-ggZ4I,3416
7
7
  q2rad/q2forms.py,sha256=A5VeBK8OdE3zn0L1TgvCk4OjpB1nLibJqBFfpVZr_Uc,10181
8
- q2rad/q2lines.py,sha256=wxaAnY6LMhtTzvyqrsSAdcozQWDILLwxW_KMgYoVLv0,14519
8
+ q2rad/q2lines.py,sha256=OzfBk5VloCwmECXL__TX7eAReOhQkWMkPh7VN_FPVjQ,16005
9
9
  q2rad/q2make.py,sha256=wXoyBUwf2zaAl9JjWDCbjAteUElRq0O7ippyaMY9eug,6476
10
10
  q2rad/q2market.py,sha256=koWwKKc1MVn0ud2XDu_dal8lBFEMLX8KABpZO_OzTIM,2597
11
11
  q2rad/q2modules.py,sha256=N3OkUKfiwVZtmDyAtnJcs2Rprd7uIHd0HhjHTyFoN_s,4294
12
12
  q2rad/q2packages.py,sha256=ifRu8LuVrrTphiJe1JUVED_KB2sHJCPVnZq9VEh3K8w,3473
13
13
  q2rad/q2queries.py,sha256=ABbr66YRLmleo2wcpvwcQwSPt_htjQsYXgoCqRRQSbo,12512
14
- q2rad/q2rad.py,sha256=KOBIRB1gZwnZEhuVBiQtZKRfTfe0KTvZCPWXoJ7ejsg,44310
14
+ q2rad/q2rad.py,sha256=MAQTfHOMseiaLmYN51zQB8Q9eW8x_CuZcXeDApgAMG0,44936
15
15
  q2rad/q2raddb.py,sha256=ISqT5EBFO7eaXcQRNpA0hMiRU84kbd-FcfckwKMlGfs,4506
16
- q2rad/q2reports.py,sha256=xciOPsSbhepcKk_q2bIHsceAyg5ZMbs-EVbzyD8sqBI,81212
16
+ q2rad/q2reports.py,sha256=via1MQF5hfa-IGmzFwDmkEiNNHk0UhevM9yYhYs4DOs,83224
17
17
  q2rad/q2stylesettings.py,sha256=esbfQoPgP7lJN2GRkqeQKjDpHCqCilJBzZf-c73ThCU,3593
18
- q2rad/q2utils.py,sha256=YKmHbfvKqGqhVjOERdceK2lT9IShj0afwZkGTObCs-I,18504
19
- q2rad/version.py,sha256=nsvyU8Y0k8OLDacF-I4MlHVaJQan-Qhexb6JJR0ZyT4,23
20
- q2rad-0.1.189.dist-info/entry_points.txt,sha256=DmsJQE6f3wYuhdN2h6ARYxSe8_d03paeepfGpdVj5rs,42
21
- q2rad-0.1.189.dist-info/LICENSE,sha256=JRR3LlR18ghhYXT4G2cWgXmnxRvcuVcKlqncWWK4MRY,10347
22
- q2rad-0.1.189.dist-info/METADATA,sha256=M3Fxy7z7-xzLYq63KqMPWv3LLiyLzFIKToHdwT4VIHo,3369
23
- q2rad-0.1.189.dist-info/WHEEL,sha256=WGfLGfLX43Ei_YORXSnT54hxFygu34kMpcQdmgmEwCQ,88
24
- q2rad-0.1.189.dist-info/RECORD,,
18
+ q2rad/q2utils.py,sha256=D6aeT-9txfhgNs8YLqcbmGKvVJFPndWjyvnasz8LyFA,18656
19
+ q2rad/version.py,sha256=4DbT3uMqcbnfM_eFrOUSZIGviNekBPsqn07G9roOXYM,23
20
+ q2rad-0.1.190.dist-info/entry_points.txt,sha256=DmsJQE6f3wYuhdN2h6ARYxSe8_d03paeepfGpdVj5rs,42
21
+ q2rad-0.1.190.dist-info/LICENSE,sha256=JRR3LlR18ghhYXT4G2cWgXmnxRvcuVcKlqncWWK4MRY,10347
22
+ q2rad-0.1.190.dist-info/METADATA,sha256=7PzmCBeo4usgHALMyvi_Vdw36kXbuyZy3-GvjB8ZXIg,3369
23
+ q2rad-0.1.190.dist-info/WHEEL,sha256=WGfLGfLX43Ei_YORXSnT54hxFygu34kMpcQdmgmEwCQ,88
24
+ q2rad-0.1.190.dist-info/RECORD,,