girder-sample-tracker 2.0.3__tar.gz → 2.0.4__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 (21) hide show
  1. {girder_sample_tracker-2.0.3/girder_sample_tracker.egg-info → girder_sample_tracker-2.0.4}/PKG-INFO +1 -1
  2. {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker/models/sample.py +1 -1
  3. {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker/rest/sample.py +20 -4
  4. {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4/girder_sample_tracker.egg-info}/PKG-INFO +1 -1
  5. {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/setup.py +1 -1
  6. {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/.github/workflows/release.yml +0 -0
  7. {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/.gitignore +0 -0
  8. {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/LICENSE +0 -0
  9. {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/README.md +0 -0
  10. {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker/__init__.py +0 -0
  11. {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker/models/__init__.py +0 -0
  12. {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker/rest/__init__.py +0 -0
  13. {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker/web_client/dist/girder-plugin-sample-tracker.umd.cjs +0 -0
  14. {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker/web_client/dist/style.css +0 -0
  15. {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker.egg-info/SOURCES.txt +0 -0
  16. {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker.egg-info/dependency_links.txt +0 -0
  17. {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker.egg-info/entry_points.txt +0 -0
  18. {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker.egg-info/not-zip-safe +0 -0
  19. {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker.egg-info/requires.txt +0 -0
  20. {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker.egg-info/top_level.txt +0 -0
  21. {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: girder-sample-tracker
3
- Version: 2.0.3
3
+ Version: 2.0.4
4
4
  Summary: Girder Plugin adding a simple tracker for material samples
5
5
  License: BSD
6
6
  Classifier: Development Status :: 4 - Beta
@@ -34,7 +34,7 @@ class Sample(AccessControlledModel):
34
34
  def create(
35
35
  self, name, creator, description=None, eventTypes=None, access=None, save=True
36
36
  ):
37
- now = datetime.datetime.utcnow()
37
+ now = datetime.datetime.now(datetime.UTC)
38
38
 
39
39
  sample = {
40
40
  "name": name,
@@ -1,4 +1,6 @@
1
+ import csv
1
2
  import datetime
3
+ import io
2
4
  import math
3
5
  from urllib.parse import urlparse
4
6
 
@@ -97,7 +99,7 @@ class Sample(Resource):
97
99
  sample["description"] = description
98
100
  if eventTypes != sample.get("eventTypes", []):
99
101
  sample["eventTypes"] = eventTypes
100
- sample["updated"] = datetime.datetime.utcnow()
102
+ sample["updated"] = datetime.datetime.now(datetime.UTC)
101
103
  return SampleModel().save(sample)
102
104
 
103
105
  @access.user
@@ -301,7 +303,7 @@ class Sample(Resource):
301
303
  user = self.getCurrentUser()
302
304
  event = {
303
305
  "comment": comment,
304
- "created": datetime.datetime.utcnow(),
306
+ "created": datetime.datetime.now(datetime.UTC),
305
307
  "creator": user["_id"],
306
308
  "creatorName": f"{user['firstName']} {user['lastName']}",
307
309
  "eventType": eventType,
@@ -367,15 +369,29 @@ class Sample(Resource):
367
369
 
368
370
  def stream():
369
371
  _zip = ziputil.ZipGenerator()
372
+ csv_data = io.StringIO()
373
+ csv_writer = csv.writer(csv_data)
374
+ csv_writer.writerow(["Sample ID", "Sample Name", "Add Event URL"])
370
375
  for sample_id in ids:
371
376
  doc = SampleModel().load(sample_id, user=user, level=AccessType.READ)
372
377
  qr_img = SampleModel().qr_code(doc, girder_base)
378
+ csv_writer.writerow(
379
+ [
380
+ str(doc["_id"]),
381
+ doc["name"],
382
+ f"{girder_base}/#sample/{doc['_id']}/add"
383
+ ]
384
+ )
373
385
 
374
386
  def qr_stream():
375
387
  yield qr_img.getvalue()
376
388
 
377
- for data in _zip.addFile(qr_stream, f"{doc['name']}.png"):
378
- yield data
389
+ yield from _zip.addFile(qr_stream, f"{doc['name']}.png")
390
+
391
+ def csv_stream():
392
+ csv_data.seek(0)
393
+ yield csv_data.getvalue()
394
+ yield from _zip.addFile(csv_stream, "samples.csv")
379
395
  yield _zip.footer()
380
396
 
381
397
  return stream
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: girder-sample-tracker
3
- Version: 2.0.3
3
+ Version: 2.0.4
4
4
  Summary: Girder Plugin adding a simple tracker for material samples
5
5
  License: BSD
6
6
  Classifier: Development Status :: 4 - Beta
@@ -9,7 +9,7 @@ setup(
9
9
  name="girder-sample-tracker",
10
10
  long_description=long_description,
11
11
  long_description_content_type="text/markdown",
12
- version="2.0.3",
12
+ version="2.0.4",
13
13
  description="Girder Plugin adding a simple tracker for material samples",
14
14
  packages=find_packages(),
15
15
  include_package_data=True,