itkdb-gtk 0.0.17__tar.gz → 0.9.0__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 (33) hide show
  1. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/PKG-INFO +2 -2
  2. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/README.md +1 -1
  3. itkdb_gtk-0.0.17/itkdb_gtk/SendShipments.py → itkdb_gtk-0.9.0/itkdb_gtk/CreateShipments.py +2 -3
  4. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk/GetShipments.py +0 -1
  5. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk/GlueWeight.py +5 -14
  6. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk/GroundVITests.py +0 -1
  7. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk/ITkDB.svg +11 -3
  8. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk/ITkDBlogin.py +0 -1
  9. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk/ITkDButils.py +5 -17
  10. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk/UploadModuleIV.py +2 -2
  11. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk/UploadMultipleTests.py +77 -11
  12. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk/UploadPetalInformation.py +8 -9
  13. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk/UploadTest.py +97 -11
  14. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk/WireBondGui.py +2 -1
  15. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk/__init__.py +8 -3
  16. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk/dashBoard.py +33 -16
  17. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk/dbGtkUtils.py +10 -21
  18. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk/readAVSdata.py +0 -7
  19. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk/readGoogleSheet.py +0 -1
  20. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk/untrash_component.py +1 -1
  21. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk.egg-info/PKG-INFO +2 -2
  22. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk.egg-info/SOURCES.txt +1 -1
  23. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk.egg-info/entry_points.txt +2 -1
  24. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/pyproject.toml +3 -2
  25. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk/ITkDB.desktop +0 -0
  26. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk/ShowAttachments.py +0 -0
  27. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk/ShowComments.py +0 -0
  28. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk/ShowDefects.py +0 -0
  29. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk.egg-info/dependency_links.txt +0 -0
  30. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk.egg-info/requires.txt +0 -0
  31. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/itkdb_gtk.egg-info/top_level.txt +0 -0
  32. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/setup.cfg +0 -0
  33. {itkdb_gtk-0.0.17 → itkdb_gtk-0.9.0}/test/test_holes.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: itkdb_gtk
3
- Version: 0.0.17
3
+ Version: 0.9.0
4
4
  Summary: A collection of Gtk based GUI to access ITkDB.
5
5
  Author-email: Carlos Lacasta <carlos.lacasta@cern.ch>
6
6
  Project-URL: Homepage, https://gitlab.cern.ch/atlas-itk/sw/db/itk-pdb-gtk-gui-utils
@@ -57,7 +57,7 @@ Find all shipments to be received at a given site and list them. It handles a
57
57
  barcode reader that helps identifying the items actually received for the
58
58
  reception. It will finally make the DB aware of the items receptioned.
59
59
 
60
- ## SendShipments.py
60
+ ## CreateShipments.py
61
61
  Create a new shipment. Allows to add items with the QR reader as well as from a
62
62
  GUI dialog. One can add comments and attachments to the shipment.
63
63
 
@@ -37,7 +37,7 @@ Find all shipments to be received at a given site and list them. It handles a
37
37
  barcode reader that helps identifying the items actually received for the
38
38
  reception. It will finally make the DB aware of the items receptioned.
39
39
 
40
- ## SendShipments.py
40
+ ## CreateShipments.py
41
41
  Create a new shipment. Allows to add items with the QR reader as well as from a
42
42
  GUI dialog. One can add comments and attachments to the shipment.
43
43
 
@@ -25,14 +25,13 @@ from gi.repository import Gtk, Gio, GLib
25
25
  gtk_runs, gtk_args = Gtk.init_check()
26
26
 
27
27
 
28
- class SendShipments(dbGtkUtils.ITkDBWindow):
28
+ class CreateShipments(dbGtkUtils.ITkDBWindow):
29
29
  """Create a shipment from input."""
30
30
 
31
31
  def __init__(self, session):
32
32
  """Initialization.
33
33
 
34
34
  Args:
35
- ----
36
35
  session: ITkDB session.
37
36
 
38
37
  """
@@ -373,7 +372,7 @@ def main():
373
372
  sys.exit()
374
373
 
375
374
  client.user_gui = dlg
376
- IS = SendShipments(client)
375
+ IS = CreateShipments(client)
377
376
  IS.set_accept_focus(True)
378
377
  IS.present()
379
378
  IS.connect("destroy", Gtk.main_quit)
@@ -29,7 +29,6 @@ class ReceiveShipments(dbGtkUtils.ITkDBWindow):
29
29
  """Initialization.
30
30
 
31
31
  Args:
32
- ----
33
32
  session: ITkDB session.
34
33
  recipient: default recipient
35
34
 
@@ -33,12 +33,10 @@ def find_module(ifile, module_sn="MODULE_SN"):
33
33
  """Find the starting line of a module.
34
34
 
35
35
  Args:
36
- ----
37
36
  ifile: the input file object.
38
37
  module_sn: tag t ostar t a new module.
39
38
 
40
- Return:
41
- ------
39
+ Returns:
42
40
  the SN of the module.
43
41
 
44
42
  """
@@ -67,12 +65,10 @@ def remove_defaul_keys(data, default_value=-9999):
67
65
  """Remove keys with deafault value.
68
66
 
69
67
  Args:
70
- ----
71
68
  data: Input dictionary
72
69
  default_value: Defaultvalue. Defaults to -9999.
73
70
 
74
- Returns
75
- -------
71
+ Returns:
76
72
  data: trimmed dictionary
77
73
 
78
74
  """
@@ -92,9 +88,8 @@ class GlueWeight(Gtk.Window):
92
88
 
93
89
  def __init__(self, session, ifile=None):
94
90
  """Initialization.
95
-
91
+
96
92
  Args:
97
- ----
98
93
  session: ITkDB session_
99
94
  ifile (optional): Input file. Defaults to None.
100
95
 
@@ -205,13 +200,11 @@ class GlueWeight(Gtk.Window):
205
200
  """Create the dialog for a DB test and add it to the notebook.
206
201
 
207
202
  Args:
208
- ----
209
203
  test_json: The JSon-like dict with the values
210
204
  test_name: The name of the test for internal indexing
211
205
  label: The label for the Notebook
212
206
 
213
- Return:
214
- ------
207
+ Returns:
215
208
  The box containing the data.
216
209
 
217
210
  """
@@ -271,12 +264,10 @@ class GlueWeight(Gtk.Window):
271
264
  """Parse a data file.
272
265
 
273
266
  Args:
274
- ----
275
267
  ifile (): A file object.
276
268
  module_sep: tag to idenntify a new module.
277
269
 
278
- Returns
279
- -------
270
+ Returns:
280
271
  a list of tests (json)
281
272
 
282
273
  """
@@ -135,7 +135,6 @@ class GroundingTest(dbGtkUtils.ITkDBWindow):
135
135
  """Create and add to notebook a test dialog.
136
136
 
137
137
  Args:
138
- ----
139
138
  label: The label for the Notebook
140
139
  test_name: The DB name of the test
141
140
  institute: The institute.
@@ -11,7 +11,10 @@
11
11
  sodipodi:docname="ITkDB.svg"
12
12
  width="75"
13
13
  height="60"
14
- inkscape:version="1.2 (dc2aeda, 2022-05-15)"
14
+ inkscape:version="1.3.2 (091e20e, 2023-11-25)"
15
+ inkscape:export-filename="ITkDB.png"
16
+ inkscape:export-xdpi="96"
17
+ inkscape:export-ydpi="96"
15
18
  xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
16
19
  xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
17
20
  xmlns="http://www.w3.org/2000/svg"
@@ -40,8 +43,13 @@
40
43
  showgrid="false"
41
44
  inkscape:zoom="10.143094"
42
45
  inkscape:cx="38.794869"
43
- inkscape:cy="18.879841"
44
- inkscape:current-layer="g10" />
46
+ inkscape:cy="18.929135"
47
+ inkscape:current-layer="g9542"
48
+ inkscape:window-width="1368"
49
+ inkscape:window-height="1087"
50
+ inkscape:window-x="0"
51
+ inkscape:window-y="44"
52
+ inkscape:window-maximized="0" />
45
53
  <g
46
54
  id="g142"
47
55
  transform="translate(14.828749,-1.5740459)">
@@ -254,7 +254,6 @@ class ITkDBlogin(Gtk.Dialog):
254
254
  """Opens an error dialog.
255
255
 
256
256
  Args:
257
- ----
258
257
  main_title: Main text in window
259
258
  second_text: Second text
260
259
 
@@ -50,7 +50,6 @@ def get_db_date(timestamp=None):
50
50
  """Convert a date string into the expected DB format.
51
51
 
52
52
  Args:
53
- ----
54
53
  timestamp: A date in string format
55
54
 
56
55
  """
@@ -81,13 +80,11 @@ def registerPetalCore(client, SN, alias, HC_id=None):
81
80
  """Register a Petal Core in the DB.
82
81
 
83
82
  Args:
84
- ----
85
83
  SN: Serial Number
86
84
  alias: The alias of the Petal
87
85
  HC_id: Comma separated list of HC identifiers.
88
86
 
89
- Returns
90
- -------
87
+ Returns:
91
88
  _type_: _description_
92
89
 
93
90
  """
@@ -116,7 +113,6 @@ def create_component_attachment(client, SN, file_path, title=None, description="
116
113
  """Create an attachment to the given component.
117
114
 
118
115
  Args:
119
- ----
120
116
  client: The DB client
121
117
  SN: The SN of the component.
122
118
  file_path: The pat to th efile to be attached.
@@ -167,7 +163,6 @@ def set_component_property(client, SN, property, value):
167
163
  """Set the value of an object property.
168
164
 
169
165
  Args:
170
- ----
171
166
  client: The DB client
172
167
  SN: The object SN
173
168
  property: The property name
@@ -192,7 +187,6 @@ def assemble_component(client, parent, child):
192
187
  """Assemble child into parent.
193
188
 
194
189
  Args:
195
- ----
196
190
  client: The DB client
197
191
  parent: The parent object or container.
198
192
  child: The child to be assembled.
@@ -214,7 +208,6 @@ def set_object_stage(client, SN, stage):
214
208
  """Set stage of object
215
209
 
216
210
  Args:
217
- ----
218
211
  client: DB session
219
212
  SN: Serial number
220
213
  stage: Stage
@@ -247,13 +240,11 @@ def upload_test(client, data, attachments=None):
247
240
  """Upload a test to the DB.
248
241
 
249
242
  Args:
250
- ----
251
243
  client: The DB client
252
244
  data (dict): A dictionary with all the elements of thee test.
253
- attachments (Attachments): one or more (in a list) Attachments to the test
245
+ attachments ([Attachment]): one or more (in a list) Attachment to the test
254
246
 
255
247
  Return:
256
- ------
257
248
  resp: The response of the DB session.
258
249
 
259
250
  """
@@ -288,12 +279,11 @@ def upload_test(client, data, attachments=None):
288
279
  return (str(e))
289
280
 
290
281
 
291
- def create_shipment(session, sender, recipient, items, name=None, send=False, type="domestic",
292
- attachment=None, comments=None):
282
+ def create_shipment(session, sender, recipient, items, name=None, send=False,
283
+ type="domestic", attachment=None, comments=None):
293
284
  """Create a chipment.
294
285
 
295
286
  Args:
296
- ----
297
287
  session : The itkdb session
298
288
  sender : The sender ID
299
289
  recipient : The recipient ID
@@ -301,7 +291,7 @@ def create_shipment(session, sender, recipient, items, name=None, send=False, ty
301
291
  name: the name of the shipment.
302
292
  send: If true, the status of the shipment is updated to inTransit
303
293
  type (optional): Type of shipment. Defaults to "domestic".
304
- attachment (optional): Attachment object.
294
+ attachment (optional, :class:`Attachment`): :class:`Attachment` object.
305
295
  comments (optional): comments for the shipment
306
296
 
307
297
  """
@@ -437,7 +427,6 @@ def get_testrun(session, test_id, out_type="object"):
437
427
  """Retrieve information about a given test.
438
428
 
439
429
  Args:
440
- ----
441
430
  session : The itkdb session
442
431
  test_id : The ID of the test.
443
432
  out_type (optional): Type of output (full or object). Defaults to "object".
@@ -456,7 +445,6 @@ def get_test_skeleton(session, component, test_code, userdef={}, uservalues={}):
456
445
  """Get the skeleton of the given test.
457
446
 
458
447
  Args:
459
- ----
460
448
  session: The DB session
461
449
  component: The component which is tested
462
450
  test_code: The test code
@@ -574,8 +574,8 @@ class IVwindow(dbGtkUtils.ITkDBWindow):
574
574
  """Find module (SN) on database
575
575
 
576
576
  Args:
577
- ----
578
- SN (str): Module Serial number
577
+ SN (str): Module Serial number.
578
+
579
579
  """
580
580
  md = ITkDButils.get_DB_component(self.session, SN)
581
581
  if md is None:
@@ -9,7 +9,7 @@ from pathlib import Path
9
9
 
10
10
  try:
11
11
  import itkdb_gtk
12
-
12
+
13
13
  except ImportError:
14
14
  from pathlib import Path
15
15
  cwd = Path(sys.argv[0]).parent.parent
@@ -39,14 +39,12 @@ def all_files(root, patterns='*', single_level=False, yield_folders=False):
39
39
  """A generator that reruns all files in the given folder.
40
40
 
41
41
  Args:
42
- ----
43
42
  root (file path): The folder
44
43
  patterns (str, optional): The pattern of the files. Defaults to '*'.
45
44
  single_level (bool, optional): If true, do not go into sub folders. Defaults to False.
46
45
  yield_folders (bool, optional): If True, return folders as well. Defaults to False.
47
46
 
48
- Yields
49
- ------
47
+ Yields:
50
48
  str: file path name
51
49
 
52
50
  """
@@ -67,17 +65,16 @@ def all_files(root, patterns='*', single_level=False, yield_folders=False):
67
65
 
68
66
 
69
67
  class TestList(object):
70
- SN, TestType, RunNumber, Date, Institute, Path, Json, Nattch, Attachments, Ncomm, Comments, Ndef, Defects, ALL = range(14)
68
+ SN, TestType, RunNumber, Date, Institute, Stage, currentStage, Path, Json, Nattch, Attachments, Ncomm, Comments, Ndef, Defects, ALL = range(16)
71
69
 
72
70
 
73
71
  def check_data(data):
74
72
  """Checks validity of JSon data.
75
73
 
76
74
  Args:
77
- ----
78
75
  data (): The json data
79
76
 
80
- Returns
77
+ Returns:
81
78
  -------
82
79
  boolean: True if valid, False otherwise.
83
80
 
@@ -110,7 +107,6 @@ class UploadMultipleTests(dbGtkUtils.ITkDBWindow):
110
107
  """Initialization.
111
108
 
112
109
  Args:
113
- ----
114
110
  session: ITkDB session
115
111
 
116
112
  """
@@ -177,7 +173,7 @@ class UploadMultipleTests(dbGtkUtils.ITkDBWindow):
177
173
 
178
174
  def create_tree_view(self, size=150):
179
175
  """Creates the tree vew with the attachments."""
180
- model = Gtk.ListStore(str, str, str, str, str, str, object, int, object, int, object, int, object)
176
+ model = Gtk.ListStore(str, str, str, str, str, str, str, str, object, int, object, int, object, int, object)
181
177
  self.tree = Gtk.TreeView(model=model)
182
178
  self.tree.connect("button-press-event", self.button_pressed)
183
179
  scrolled = Gtk.ScrolledWindow()
@@ -201,6 +197,10 @@ class UploadMultipleTests(dbGtkUtils.ITkDBWindow):
201
197
  column = Gtk.TreeViewColumn("Institute", renderer, text=TestList.Institute)
202
198
  self.tree.append_column(column)
203
199
 
200
+ renderer = Gtk.CellRendererText()
201
+ column = Gtk.TreeViewColumn("Stage", renderer, text=TestList.Stage)
202
+ self.tree.append_column(column)
203
+
204
204
  renderer = Gtk.CellRendererText()
205
205
  column = Gtk.TreeViewColumn("N. att.", renderer, text=TestList.Nattch)
206
206
  self.tree.append_column(column)
@@ -257,6 +257,10 @@ class UploadMultipleTests(dbGtkUtils.ITkDBWindow):
257
257
  item_show.connect("activate", self.on_show_json, (model, iter, values))
258
258
  menu.append(item_show)
259
259
 
260
+ item_set_stage = Gtk.MenuItem(label="Set Stage")
261
+ item_set_stage.connect("activate", self.on_set_stage, (model, iter, values))
262
+ menu.append(item_set_stage)
263
+
260
264
  item_show_att = Gtk.MenuItem(label="Edit Attachments")
261
265
  item_show_att.connect("activate", self.on_show_attachments, (model, iter, values))
262
266
  menu.append(item_show_att)
@@ -289,7 +293,7 @@ class UploadMultipleTests(dbGtkUtils.ITkDBWindow):
289
293
  model.set_value(iter, TestList.RunNumber, payload["runNumber"])
290
294
  model.set_value(iter, TestList.Date, handle_test_date(payload["date"]))
291
295
  model.set_value(iter, TestList.Institute, handle_test_date(payload["institution"]))
292
-
296
+
293
297
 
294
298
  dlg.hide()
295
299
  dlg.destroy()
@@ -367,6 +371,66 @@ class UploadMultipleTests(dbGtkUtils.ITkDBWindow):
367
371
  dlg.destroy()
368
372
  return out, use_default
369
373
 
374
+ def on_set_stage(self, item, data):
375
+ """Set the test stage."""
376
+ model, iter, val = data
377
+ SN = val[TestList.SN]
378
+ combo, currentStage = self.get_component_stages(SN)
379
+
380
+ dlg = Gtk.Dialog(title="Add Attachment")
381
+
382
+ dlg.add_buttons(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
383
+ Gtk.STOCK_OK, Gtk.ResponseType.OK)
384
+ area = dlg.get_content_area()
385
+ box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
386
+ area.add(box)
387
+
388
+ box.pack_start(Gtk.Label(label="Select Stage"), False, True, 0)
389
+ box.pack_start(combo, False, True, 0)
390
+ dlg.show_all()
391
+
392
+ rc = dlg.run()
393
+ if rc == Gtk.ResponseType.OK:
394
+ new_stage = combo.get_active_text()
395
+ model[iter][TestList.Stage] = new_stage
396
+ data = model[iter][TestList.Json]
397
+ changed = (new_stage != model[iter][TestList.currentStage])
398
+ data["isRetroactive"] = changed
399
+ if changed:
400
+ data["stage"] = new_stage
401
+ else:
402
+ if "stage" in data:
403
+ del data["stage"]
404
+
405
+ model[iter][TestList.Json] = data
406
+
407
+
408
+ dlg.hide()
409
+ dlg.destroy()
410
+
411
+
412
+ def get_component_stages(self, SN):
413
+ """Create a combo with the stages."""
414
+ try:
415
+ obj = ITkDButils.get_DB_component(self.session, SN)
416
+ currentStage = obj["currentStage"]["code"]
417
+
418
+ combo = Gtk.ComboBoxText.new_with_entry()
419
+ combo.remove_all()
420
+ indx = 0
421
+ for i, stg in enumerate(obj["stages"]):
422
+ S = stg["code"]
423
+ combo.append_text(S)
424
+ if S == currentStage:
425
+ indx = i
426
+
427
+ combo.set_active(indx)
428
+ return combo, currentStage
429
+
430
+ except Exception:
431
+ self.write_message("Something went wring with the stages")
432
+ return [None, None]
433
+
370
434
  def add_tests_to_view(self, files):
371
435
  """Add the input fiels to the treeview."""
372
436
  default_site = None
@@ -419,8 +483,10 @@ class UploadMultipleTests(dbGtkUtils.ITkDBWindow):
419
483
  comments = data.get("comments", [])
420
484
  defects = data.get("defects", [])
421
485
  the_date = handle_test_date(data["date"])
486
+ combo, currentStage = self.get_component_stages(data["component"])
422
487
  model.append([data["component"], data["testType"], data["runNumber"], the_date,
423
- data["institution"], ifile, data, len(attachments), attachments,
488
+ data["institution"], currentStage, currentStage,
489
+ ifile, data, len(attachments), attachments,
424
490
  len(comments), comments, len(defects), defects])
425
491
 
426
492
  except Exception as E:
@@ -14,7 +14,7 @@ from gi.repository import Gtk, Gio
14
14
 
15
15
  try:
16
16
  import itkdb_gtk
17
-
17
+
18
18
  except ImportError:
19
19
  from pathlib import Path
20
20
  cwd = Path(sys.argv[0]).parent.parent
@@ -44,11 +44,9 @@ def get_type(child):
44
44
  """Return object type
45
45
 
46
46
  Args:
47
- -----
48
47
  child (): object
49
48
 
50
- Returns
51
- -------
49
+ Returns:
52
50
  str: object type
53
51
 
54
52
  """
@@ -229,13 +227,11 @@ class AVSPanel(Gtk.Window):
229
227
  """Create the dialog for a DB test and add it to the notebook.
230
228
 
231
229
  Args:
232
- ----
233
230
  test_json: The JSon-like dict with the values
234
231
  test_name: The name of the test for internal indexing
235
232
  label: The label for the Notebook
236
233
 
237
- Return:
238
- ------
234
+ Returns:
239
235
  The box containing the data.
240
236
 
241
237
  """
@@ -264,7 +260,6 @@ class AVSPanel(Gtk.Window):
264
260
  """Register petal core in DB.
265
261
 
266
262
  Args:
267
- ----
268
263
  SN: The petal Serial Number.
269
264
 
270
265
  """
@@ -610,7 +605,8 @@ class AVSPanel(Gtk.Window):
610
605
  complain("Could not upload test {}".format(values["testType"]), res)
611
606
 
612
607
 
613
- if __name__ == "__main__":
608
+ def main():
609
+ """The main entry."""
614
610
  # Parse command line options
615
611
  parser = ArgumentParser()
616
612
  parser.add_argument('files', nargs='*', help="Input files")
@@ -640,3 +636,6 @@ if __name__ == "__main__":
640
636
  print("Bye !!")
641
637
  dlg.die()
642
638
  sys.exit()
639
+
640
+ if __name__ == "__main__":
641
+ main()
@@ -48,11 +48,9 @@ def check_data(data):
48
48
  """Checks validity of JSon data.
49
49
 
50
50
  Args:
51
- ----
52
51
  data (): The json data
53
52
 
54
- Returns
55
- -------
53
+ Returns:
56
54
  boolean: True if valid, False otherwise.
57
55
 
58
56
  """
@@ -84,7 +82,6 @@ class UploadTest(dbGtkUtils.ITkDBWindow):
84
82
  """Initialization.
85
83
 
86
84
  Args:
87
- ----
88
85
  session: ITkDB session
89
86
  payload: path of test file
90
87
  attachment: an Attachment object or list of attachments.
@@ -92,6 +89,7 @@ class UploadTest(dbGtkUtils.ITkDBWindow):
92
89
  """
93
90
  self.payload = payload
94
91
  self.data = None
92
+ self.folder = None
95
93
  self.attachments = []
96
94
  self.comments = []
97
95
  self.defects = []
@@ -169,6 +167,19 @@ class UploadTest(dbGtkUtils.ITkDBWindow):
169
167
  self.entryTest = Gtk.Entry()
170
168
  grid.attach(self.entryTest, 1, 2, 1, 1)
171
169
 
170
+ # Object Stage
171
+ lbl = Gtk.Label(label="Object Stage")
172
+ lbl.set_xalign(0)
173
+ grid.attach(lbl, 0, 3, 1, 1)
174
+
175
+ self.objStage = Gtk.ComboBoxText.new()
176
+ self.objStage.connect("changed", self.on_new_stage)
177
+ grid.attach(self.objStage, 1, 3, 1, 1)
178
+
179
+ self.isRetroactive = Gtk.ToggleButton.new_with_label("RetroActive")
180
+ grid.attach(self.isRetroactive, 2, 3, 1, 1)
181
+
182
+
172
183
  # The "Add attachment" button.
173
184
  box = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)
174
185
  self.mainBox.pack_start(box, False, False, 0)
@@ -204,16 +215,11 @@ class UploadTest(dbGtkUtils.ITkDBWindow):
204
215
 
205
216
  else:
206
217
  print("Input file does not exists: {}".format(self.payload))
207
-
218
+
208
219
  except TypeError:
209
220
  self.load_payload(self.payload)
210
221
  self.write_message("Loaded memory payload.")
211
222
 
212
- #if len(self.attachments):
213
- # dC = [A for A in self.attachments]
214
- # self.attachments.clear()
215
- # for A in dC:
216
- # self.append_attachment_to_view(A)
217
223
  if len(self.attachments) > 0:
218
224
  self.btn_attch.set_label("Attachments ({})".format(len(self.attachments)))
219
225
 
@@ -250,20 +256,57 @@ class UploadTest(dbGtkUtils.ITkDBWindow):
250
256
  return out
251
257
 
252
258
  def load_payload(self, data):
253
- """Payloadis given as a dict."""
259
+ """Payload is given as a dict."""
254
260
  self.data = data
255
261
  errors, missing = check_data(self.data)
256
262
  self.complete_missing(missing, errors)
263
+ self.set_stages()
264
+
265
+ def on_new_stage(self, *args):
266
+ """New stage selected."""
267
+ stg = self.objStage.get_active_text()
268
+ changed = (stg != self.currentStage)
269
+ self.isRetroactive.set_active(changed)
270
+ self.data["isRetroactive"] = changed
271
+ if changed:
272
+ self.data["stage"] = stg
273
+ else:
274
+ if "stage" in self.data:
275
+ del self.data["stage"]
276
+
277
+ def set_stages(self):
278
+ """Prepare the stages combo."""
279
+ # Check the object stage
280
+ SN = self.data["component"]
281
+ try:
282
+ obj = ITkDButils.get_DB_component(self.session, SN)
283
+ self.currentStage = obj["currentStage"]["code"]
284
+
285
+ self.objStage.remove_all()
286
+ indx = 0
287
+ for i, stg in enumerate(obj["stages"]):
288
+ S = stg["code"]
289
+ self.objStage.append_text(S)
290
+ if S == self.currentStage:
291
+ indx = i
292
+
293
+ self.objStage.set_active(indx)
294
+
295
+ except Exception:
296
+ self.write_message("Something went wring with the stages")
297
+
257
298
 
258
299
  def on_test_file(self, fdlg):
259
300
  """Test file browser clicked."""
260
301
  fnam = fdlg.get_filename()
302
+ self.folder = Path(fnam).parent
261
303
 
262
304
  # The file exists by definition
263
305
  try:
264
306
  self.data = json.loads(open(fnam).read())
265
307
  errors, missing = check_data(self.data)
266
308
  self.complete_missing(missing, errors)
309
+ self.set_stages()
267
310
 
268
311
  except Exception as E:
269
312
  self.data = None
@@ -285,6 +328,10 @@ class UploadTest(dbGtkUtils.ITkDBWindow):
285
328
  else:
286
329
  dbGtkUtils.complain("Invalid JSON data".format('\n'.join(errors)))
287
330
 
331
+ self.find_attachments()
332
+ self.find_comments()
333
+ self.find_defects()
334
+
288
335
  self.entrySN.set_text(self.data["component"] if self.data["component"] else "")
289
336
  self.entryTest.set_text(self.data["testType"])
290
337
  self.comments = self.data.get("comments", [])
@@ -304,6 +351,24 @@ class UploadTest(dbGtkUtils.ITkDBWindow):
304
351
  dlg.hide()
305
352
  dlg.destroy()
306
353
 
354
+ def find_attachments(self):
355
+ """Find Attachments in payload."""
356
+ self.attachments = []
357
+ if "attachments" in self.data:
358
+ for A in self.data["attachments"]:
359
+ if not Path(A["path"]).exists():
360
+ if self.folder:
361
+ the_path = self.folder.joinpath(A["path"])
362
+ else:
363
+ continue
364
+ else:
365
+ the_path = Path(A["path"]).expanduser().resolve()
366
+
367
+ self.attachments.append(ITkDButils.Attachment(the_path, A["title"], A["description"]))
368
+
369
+ if len(self.attachments) > 0:
370
+ self.btn_attch.set_label("Attachments ({})".format(len(self.attachments)))
371
+
307
372
  def edit_attachments(self, *args):
308
373
  """Edit test attachmetns."""
309
374
  SA = ShowAttachments("Test Attachments", self.session, self.attachments, parent=self)
@@ -317,6 +382,15 @@ class UploadTest(dbGtkUtils.ITkDBWindow):
317
382
  if len(self.attachments) > 0:
318
383
  self.btn_attch.set_label("Attachments ({})".format(len(self.attachments)))
319
384
 
385
+ def find_comments(self):
386
+ """Find comments in payload"""
387
+ self.comments = []
388
+ if "comments" in self.data:
389
+ for C in self.data["comments"]:
390
+ self.comments.append(C)
391
+
392
+ if len(self.comments) > 0:
393
+ self.btn_comments.set_label("Comments ({})".format(len(self.comments)))
320
394
 
321
395
  def edit_comments(self, *args):
322
396
  """Edit test comments."""
@@ -331,6 +405,17 @@ class UploadTest(dbGtkUtils.ITkDBWindow):
331
405
  if len(self.comments) > 0:
332
406
  self.btn_comments.set_label("Comments ({})".format(len(self.comments)))
333
407
 
408
+
409
+ def find_defects(self):
410
+ """Find defects in payload."""
411
+ self.defects = []
412
+ if "defects" in self.data:
413
+ for D in self.data["defects"]:
414
+ self.defects.append(D)
415
+
416
+ if len(self.defects) > 0:
417
+ self.btn_defects.set_label("Defects ({})".format(len(self.defects)))
418
+
334
419
  def edit_defects(self, *args):
335
420
  """Edit test defects."""
336
421
  SD = ShowDefects("Test Defects", self.defects, self)
@@ -356,6 +441,7 @@ class UploadTest(dbGtkUtils.ITkDBWindow):
356
441
 
357
442
  self.data["comments"] = self.comments
358
443
  self.data["defects"] = self.defects
444
+
359
445
  rc = ITkDButils.upload_test(self.session, self.data, self.attachments)
360
446
  if rc:
361
447
  ipos = rc.find("The following details may help:")
@@ -168,8 +168,9 @@ class HybridHoles:
168
168
  irow: rown number
169
169
  ichan: channel number
170
170
 
171
- Return:
171
+ Returns:
172
172
  True if added, False otherwise.
173
+
173
174
  """
174
175
  first_chan = self.param[irow][0]
175
176
  last_chan = self.param[irow][1]
@@ -1,4 +1,4 @@
1
- __version__ = "0.0.17"
1
+ __version__ = "0.9.0"
2
2
 
3
3
 
4
4
  def dash_board():
@@ -25,9 +25,9 @@ def groundVITests():
25
25
  main()
26
26
 
27
27
 
28
- def sendShipments():
28
+ def createShipments():
29
29
  """Send items."""
30
- from .SendShipments import main
30
+ from .CreateShipments import main
31
31
  main()
32
32
 
33
33
  def uploadTest():
@@ -50,3 +50,8 @@ def wirebondTest():
50
50
  """Inputs data and eventually upload wirebod test."""
51
51
  from .WireBondGui import main
52
52
  main()
53
+
54
+ def uploadPetalInformation():
55
+ """Read files from AVS nd create Petal core in PDB."""
56
+ from .UploadPetalInformation import main
57
+ main()
@@ -15,7 +15,8 @@ from itkdb_gtk import dbGtkUtils
15
15
  from itkdb_gtk import GetShipments
16
16
  from itkdb_gtk import GroundVITests
17
17
  from itkdb_gtk import ITkDBlogin
18
- from itkdb_gtk import SendShipments
18
+ from itkdb_gtk import CreateShipments
19
+ from itkdb_gtk import UploadTest
19
20
  from itkdb_gtk import UploadMultipleTests
20
21
  from itkdb_gtk import GlueWeight
21
22
  from itkdb_gtk import UploadModuleIV
@@ -30,12 +31,13 @@ from gi.repository import Gtk
30
31
  class DashWindow(dbGtkUtils.ITkDBWindow):
31
32
  """Dashboard class."""
32
33
  UPLOAD_TEST = 1
33
- CREATE_SHIPMNT = 2
34
- RECV_SHIPMNT = 3
35
- PETAL_GND = 4
36
- GLUE_WEIGHT = 5
37
- MOD_IV = 6
38
- WIRE_BOND = 7
34
+ UPLOAD_MANY_TESTS = 2
35
+ CREATE_SHIPMNT = 3
36
+ RECV_SHIPMNT = 4
37
+ PETAL_GND = 5
38
+ GLUE_WEIGHT = 6
39
+ MOD_IV = 7
40
+ WIRE_BOND = 8
39
41
 
40
42
  def __init__(self, session):
41
43
  """Initialization."""
@@ -60,27 +62,31 @@ class DashWindow(dbGtkUtils.ITkDBWindow):
60
62
  grid.attach(lbl, 0, irow, 1, 1)
61
63
 
62
64
  irow += 1
63
- btnTest = Gtk.Button(label="Upload Tests (json)")
65
+ btnTest = Gtk.Button(label="Upload Single Test")
64
66
  btnTest.connect("clicked", self.upload_test)
65
67
  grid.attach(btnTest, 0, irow, 1, 1)
66
68
 
69
+ btnTest = Gtk.Button(label="Upload Multiple Tests")
70
+ btnTest.connect("clicked", self.upload_multiple_tests)
71
+ grid.attach(btnTest, 1, irow, 1, 1)
72
+
73
+ irow += 1
67
74
  btnGnd = Gtk.Button(label="Petal VI/GND")
68
75
  btnGnd.connect("clicked", self.petal_gnd)
69
- grid.attach(btnGnd, 1, irow, 1, 1)
76
+ grid.attach(btnGnd, 0, irow, 1, 1)
70
77
 
71
- irow += 1
72
78
  btnWeight = Gtk.Button(label="GlueWeight")
73
79
  btnWeight.connect("clicked", self.glue_weight)
74
- grid.attach(btnWeight, 0, irow, 1, 1)
80
+ grid.attach(btnWeight, 1, irow, 1, 1)
75
81
 
82
+ irow += 1
76
83
  btnModIV = Gtk.Button(label="Module IV")
77
84
  btnModIV.connect("clicked", self.module_IV)
78
- grid.attach(btnModIV, 1, irow, 1, 1)
85
+ grid.attach(btnModIV, 0, irow, 1, 1)
79
86
 
80
- irow +=1
81
87
  btnWireBond = Gtk.Button(label="Wire Bond")
82
88
  btnWireBond.connect("clicked", self.wire_bond)
83
- grid.attach(btnWireBond, 0, irow, 1, 1)
89
+ grid.attach(btnWireBond, 1, irow, 1, 1)
84
90
 
85
91
 
86
92
 
@@ -113,19 +119,30 @@ class DashWindow(dbGtkUtils.ITkDBWindow):
113
119
  if self.mask & bt:
114
120
  return
115
121
 
122
+ self.mask |= bt
123
+ W = UploadTest.UploadTest(self.session)
124
+ W.connect("destroy", self.app_closed, bitn)
125
+
126
+ def upload_multiple_tests(self, *args):
127
+ """Launch upload multiple test."""
128
+ bitn = DashWindow.UPLOAD_MANY_TESTS
129
+ bt = 1 << bitn
130
+ if self.mask & bt:
131
+ return
132
+
116
133
  self.mask |= bt
117
134
  W = UploadMultipleTests.UploadMultipleTests(self.session)
118
135
  W.connect("destroy", self.app_closed, bitn)
119
136
 
120
137
  def create_shipment(self, *args):
121
- """Launch sendShipment."""
138
+ """Launch createShipment."""
122
139
  bitn = DashWindow.CREATE_SHIPMNT
123
140
  bt = 1 << bitn
124
141
  if self.mask & bt:
125
142
  return
126
143
 
127
144
  self.mask |= bt
128
- W = SendShipments.SendShipments(self.session)
145
+ W = CreateShipments.CreateShipments(self.session)
129
146
  W.connect("destroy", self.app_closed, bitn)
130
147
 
131
148
  def receive_shipment(self, *args):
@@ -108,7 +108,6 @@ def empty_container(container):
108
108
  """Remove all children from a container.
109
109
 
110
110
  Args:
111
- ----
112
111
  container: The container.
113
112
 
114
113
  """
@@ -121,7 +120,6 @@ def replace_in_container(container, child):
121
120
  """Replace a child from a single-child container.
122
121
 
123
122
  Args:
124
- ----
125
123
  container: the container
126
124
  child: the new child to be added
127
125
 
@@ -138,7 +136,6 @@ def complain(main_title, second_text="", parent=None):
138
136
  """Open an error dialog.
139
137
 
140
138
  Args:
141
- ----
142
139
  main_title: Main text in window
143
140
  second_text: Second text
144
141
  parent: dialog parent
@@ -160,13 +157,11 @@ def ask_for_confirmation(main_title, second_text, parent=None):
160
157
  """Ask for action cofirmation.
161
158
 
162
159
  Args:
163
- ----
164
160
  main_title: Main title in the message window
165
161
  second_text: Secondary text in the message widow
166
162
  parent (optional): The parent window. Defaults to None.
167
163
 
168
164
  Return:
169
- ------
170
165
  OK: True if OK button clicked.
171
166
 
172
167
  """
@@ -254,14 +249,12 @@ def get_a_value(main_title, second_text=None, is_tv=False, parent=None):
254
249
  """Open a dialog to get a value.
255
250
 
256
251
  Args:
257
- ----
258
252
  main_title: Main title in the message window
259
253
  is_tv: If true show a text view rathar than an entry.
260
254
  second_text: Secondary text in the message widow
261
255
  parent (optional): The parent window. Defaults to None.
262
256
 
263
257
  Return:
264
- ------
265
258
  value: The value in the entry
266
259
 
267
260
  """
@@ -274,9 +267,9 @@ def get_a_value(main_title, second_text=None, is_tv=False, parent=None):
274
267
  box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
275
268
  area.add(box)
276
269
 
277
- box.pack_start(Gtk.Label(main_title), False, True, 0)
270
+ box.pack_start(Gtk.Label(label=main_title), False, True, 0)
278
271
  if second_text and len(second_text):
279
- box.pack_start(Gtk.Label(second_text), False, True, 0)
272
+ box.pack_start(Gtk.Label(label=second_text), False, True, 0)
280
273
 
281
274
  entry = TextEntry(3 if is_tv else -1)
282
275
 
@@ -299,15 +292,13 @@ def get_a_list_of_values(main_title, labels, defaults=None, second_text=None, pa
299
292
  """Get a list of values.
300
293
 
301
294
  Args:
302
- ----
303
295
  main_title: Main title for window
304
296
  labels: List of labes to get the values. If the label ends with /v
305
297
  then a TextView will be shown instead of a TextEntry.
306
298
  defaults (optional): default values-
307
299
  second_text (optional): Second title for window-. Defaults to None.
308
300
 
309
- Returns
310
- -------
301
+ Returns:
311
302
  list with values
312
303
 
313
304
  """
@@ -325,7 +316,7 @@ def get_a_list_of_values(main_title, labels, defaults=None, second_text=None, pa
325
316
  lbl.set_markup("<b>{}</b>".format(main_title))
326
317
  box.pack_start(lbl, False, True, 5)
327
318
  if second_text and len(second_text):
328
- box.pack_start(Gtk.Label(second_text), False, True, 0)
319
+ box.pack_start(Gtk.Label(label=second_text), False, True, 0)
329
320
 
330
321
  entries = []
331
322
  values = []
@@ -341,7 +332,7 @@ def get_a_list_of_values(main_title, labels, defaults=None, second_text=None, pa
341
332
  else:
342
333
  is_text_view.append(False)
343
334
 
344
- lbl = Gtk.Label(txt)
335
+ lbl = Gtk.Label(label=txt)
345
336
  lbl.set_justify(Gtk.Justification.LEFT)
346
337
  vbox.pack_start(lbl, False, False, 0)
347
338
 
@@ -369,7 +360,6 @@ def add_button_to_container(box, label, tooltip=None, callback=None):
369
360
  """Creates a buttons and adds to container.
370
361
 
371
362
  Args:
372
- ----
373
363
  box: The container.
374
364
  label: The button label
375
365
  tooltip (optional): Tooltip message. Defaults to None.
@@ -407,7 +397,7 @@ class MessagePanel(object):
407
397
  Args:
408
398
  size: size of the panel
409
399
 
410
- Returns
400
+ Returns:
411
401
  Gtk.TextBuffer, Gtk.Frame
412
402
  """
413
403
  frame = Gtk.Frame()
@@ -453,7 +443,6 @@ class ITkDBWindow(Gtk.Window):
453
443
  """Initialization.
454
444
 
455
445
  Args:
456
- ----
457
446
  title: The title of the window.
458
447
  session: ITkDB session.
459
448
  show_search: tooltip for search button in header (calls to query_db).
@@ -610,7 +599,6 @@ class DictDialog(Gtk.Grid):
610
599
  """Create the Gtk.Grid.
611
600
 
612
601
  Args:
613
- ----
614
602
  values: A dict (JSon-like)
615
603
  hidden_keys: keys tha twill not be shown.
616
604
 
@@ -730,7 +718,6 @@ class DictDialog(Gtk.Grid):
730
718
  """Show the keys and values of a dictionary (JSON).
731
719
 
732
720
  Args:
733
- ----
734
721
  values: The dictionary object
735
722
 
736
723
  """
@@ -764,8 +751,10 @@ class DictDialog(Gtk.Grid):
764
751
  def create_scrolled_dictdialog(the_dict, hidden=("component", "testType")):
765
752
  """Create a DictDialog within a scrolled window.
766
753
 
767
- Return:
768
- ------
754
+ Args:
755
+ the_dict: the input dictionary with values.
756
+
757
+ Returns:
769
758
  scrolled: the scrolled window
770
759
  gM: the DictDialog
771
760
 
@@ -37,7 +37,6 @@ def create_weight(session, SN, the_date=None, manager="", passed=True, problems=
37
37
  """Creates the dictionary for a WEIGHT test.
38
38
 
39
39
  Args:
40
- ----
41
40
  session: the DB session
42
41
  SN: Serial Number
43
42
  the_date: the date of the test
@@ -62,7 +61,6 @@ def create_manufacturing(session, SN, the_date=None, manager="", passed=True, pr
62
61
  """Create the dictionary or the MANUFACTURING test.
63
62
 
64
63
  Args:
65
- ----
66
64
  session: the DB session
67
65
  SN: Serial Number
68
66
  the_date: the date of the test
@@ -102,7 +100,6 @@ def create_delamination_test(session, SN, the_date=None, operator="", passed=Tru
102
100
  """Create the delamination test JSON.
103
101
 
104
102
  Args:
105
- ----
106
103
  session: the DB session
107
104
  SN: Serial Number
108
105
  the_date: the date of the test
@@ -128,7 +125,6 @@ def create_grounding_test(session, SN, the_date=None, operator="", passed=True,
128
125
  """Create grounding test.
129
126
 
130
127
  Args:
131
- ----
132
128
  session: the DB session
133
129
  SN: Serial Number
134
130
  the_date: the date of the test
@@ -154,7 +150,6 @@ def create_metrology_test(session, SN, the_date=None, operator="", passed=True,
154
150
  """Metrology test.
155
151
 
156
152
  Args:
157
- ----
158
153
  session: the DB session
159
154
  SN: Serial Number
160
155
  the_date: the date of the test
@@ -316,7 +311,6 @@ def readFATfile(session, fnam, SN=None):
316
311
  """Read data from FAT excel file.
317
312
 
318
313
  Args:
319
- ----
320
314
  session: the DB session
321
315
  fnam: File path
322
316
  SN: COre serial number
@@ -463,7 +457,6 @@ def readProductionSheet(session, fnam, SN):
463
457
  """Read data fro AVS PS.
464
458
 
465
459
  Args:
466
- ----
467
460
  session: the DB session
468
461
  fnam: path of input file
469
462
  SN: The serial number
@@ -55,7 +55,6 @@ def get_spreadsheet_data(url, data_range):
55
55
  """Get the data from the given range in teh google sheet.
56
56
 
57
57
  Args:
58
- ----
59
58
  url: google sheet document url
60
59
  data_range: the data range, ej. inventory!A2:Z
61
60
 
@@ -8,7 +8,7 @@ def untrash_component(client, SN, reason="Accidentally trashed"):
8
8
  Args:
9
9
  SN (str): Serial number of component to recover.
10
10
  reason (str): message for the DB
11
- Return:
11
+ Returna:
12
12
  dict: PDB response.
13
13
 
14
14
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: itkdb_gtk
3
- Version: 0.0.17
3
+ Version: 0.9.0
4
4
  Summary: A collection of Gtk based GUI to access ITkDB.
5
5
  Author-email: Carlos Lacasta <carlos.lacasta@cern.ch>
6
6
  Project-URL: Homepage, https://gitlab.cern.ch/atlas-itk/sw/db/itk-pdb-gtk-gui-utils
@@ -57,7 +57,7 @@ Find all shipments to be received at a given site and list them. It handles a
57
57
  barcode reader that helps identifying the items actually received for the
58
58
  reception. It will finally make the DB aware of the items receptioned.
59
59
 
60
- ## SendShipments.py
60
+ ## CreateShipments.py
61
61
  Create a new shipment. Allows to add items with the QR reader as well as from a
62
62
  GUI dialog. One can add comments and attachments to the shipment.
63
63
 
@@ -1,5 +1,6 @@
1
1
  README.md
2
2
  pyproject.toml
3
+ itkdb_gtk/CreateShipments.py
3
4
  itkdb_gtk/GetShipments.py
4
5
  itkdb_gtk/GlueWeight.py
5
6
  itkdb_gtk/GroundVITests.py
@@ -7,7 +8,6 @@ itkdb_gtk/ITkDB.desktop
7
8
  itkdb_gtk/ITkDB.svg
8
9
  itkdb_gtk/ITkDBlogin.py
9
10
  itkdb_gtk/ITkDButils.py
10
- itkdb_gtk/SendShipments.py
11
11
  itkdb_gtk/ShowAttachments.py
12
12
  itkdb_gtk/ShowComments.py
13
13
  itkdb_gtk/ShowDefects.py
@@ -1,9 +1,10 @@
1
1
  [gui_scripts]
2
+ createShipments = itkdb_gtk:createShipments
2
3
  getShipments = itkdb_gtk:getShipments
3
4
  glueWeight = itkdb_gtk:glueWeight
4
5
  groundVITests = itkdb_gtk:groundVITests
6
+ iploadPetalInformation = itkdb_gtk:uploadPetalInformation
5
7
  itkdb_dashBoard = itkdb_gtk:dash_board
6
- sendShipments = itkdb_gtk:sendShipments
7
8
  uploadModuleIV = itkdb_gtk:uploadModuleIV
8
9
  uploadMultipleTests = itkdb_gtk:uploadMultipleTests
9
10
  uploadTest = itkdb_gtk:uploadTest
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "itkdb_gtk"
7
- version = "0.0.17"
7
+ version = "0.9.0"
8
8
  authors = [
9
9
  { name="Carlos Lacasta", email="carlos.lacasta@cern.ch" },
10
10
  ]
@@ -31,11 +31,12 @@ itkdb_dashBoard = "itkdb_gtk:dash_board"
31
31
  getShipments = "itkdb_gtk:getShipments"
32
32
  glueWeight = "itkdb_gtk:glueWeight"
33
33
  groundVITests = "itkdb_gtk:groundVITests"
34
- sendShipments = "itkdb_gtk:sendShipments"
34
+ createShipments = "itkdb_gtk:createShipments"
35
35
  uploadTest = "itkdb_gtk:uploadTest"
36
36
  uploadMultipleTests = "itkdb_gtk:uploadMultipleTests"
37
37
  uploadModuleIV = "itkdb_gtk:uploadModuleIV"
38
38
  wirebondTest = "itkdb_gtk:wirebondTest"
39
+ iploadPetalInformation = "itkdb_gtk:uploadPetalInformation"
39
40
 
40
41
  [tool.setuptools]
41
42
  include-package-data = true
File without changes
File without changes