Skip to content

Commit 54ac77c

Browse files
committed
Merge branch 'develop'
2 parents 184a759 + ced13e0 commit 54ac77c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+1727
-1032
lines changed

.rtd-require

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ packaging
44
setuptools
55
setuptools_scm
66
suds
7+
jinja2<3.1
78
sphinx>=2,<3
89
sphinx-rtd-theme>=0.5,<1

CHANGES.rst

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,54 @@ Changelog
22
=========
33

44

5+
1.2.0 (2023-10-31)
6+
~~~~~~~~~~~~~~~~~~
7+
8+
New features
9+
------------
10+
11+
+ `#125`_, `#140`_: Add support to link datasets with samples in
12+
:mod:`icat.ingest`.
13+
14+
+ `#122`_, `#133`_: Allow referencing related objects by reference key
15+
in object references in XML ICAT data file format.
16+
17+
Incompatible changes
18+
--------------------
19+
20+
+ `#138`_, `#139`_: Fix the input that :mod:`icat.ingest` generates on
21+
the fly to be valid according to the ICAT data file schema. This
22+
also affects the input that the module accepts: the order of
23+
subelements of `data` need to be changed such that
24+
`datasetTechnique` comes before `datasetInstrument`.
25+
26+
Note that :mod:`icat.ingest` has been declared experimental for now.
27+
28+
Bug fixes and minor changes
29+
---------------------------
30+
31+
+ `#131`_, `#135`_: Fix :meth:`icat.ids.IDSClient.getApiVersion` to
32+
yield correct results for ids.server 2.0.0 and newer.
33+
34+
+ `#132`_, `#136`_: Fix a spurious :exc:`AttributeError` on cleanup
35+
after connecting to an invalid url.
36+
37+
+ `#130`_, `#137`_: Review test suite.
38+
39+
.. _#122: https://github.com/icatproject/python-icat/issues/122
40+
.. _#125: https://github.com/icatproject/python-icat/issues/125
41+
.. _#130: https://github.com/icatproject/python-icat/issues/130
42+
.. _#131: https://github.com/icatproject/python-icat/issues/131
43+
.. _#132: https://github.com/icatproject/python-icat/issues/132
44+
.. _#133: https://github.com/icatproject/python-icat/pull/133
45+
.. _#135: https://github.com/icatproject/python-icat/pull/135
46+
.. _#136: https://github.com/icatproject/python-icat/pull/136
47+
.. _#137: https://github.com/icatproject/python-icat/pull/137
48+
.. _#138: https://github.com/icatproject/python-icat/issues/138
49+
.. _#139: https://github.com/icatproject/python-icat/pull/139
50+
.. _#140: https://github.com/icatproject/python-icat/pull/140
51+
52+
553
1.1.0 (2023-06-30)
654
~~~~~~~~~~~~~~~~~~
755

CITATION.cff

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
cff-version: 1.2.0
55
title: python-icat – Python interface to ICAT and IDS
6-
message: Please cite this software using these metadata.
76
type: software
87
authors:
98
- given-names: Rolf
@@ -13,22 +12,21 @@ authors:
1312
Helmholtz-Zentrum Berlin für Materialien und
1413
Energie
1514
orcid: 'https://orcid.org/0000-0002-1266-3819'
16-
- name: "The ICAT project"
17-
website: https://icatproject.org/
15+
- name: The ICAT project
16+
website: 'https://icatproject.org/'
1817
repository-code: 'https://github.com/icatproject/python-icat'
19-
repository-artifact: 'https://pypi.org/project/python-icat/'
18+
repository-artifact: 'https://github.com/icatproject/python-icat/releases/latest'
2019
abstract: >-
21-
The ICAT server is a metadata catalogue to support
22-
Large Facility experimental data, linking all
23-
aspects of the research chain from proposal through
24-
to publication. It provides SOAP and RESTful web
25-
service interfaces to an underlying database.
20+
The ICAT server is a metadata catalogue to support Large
21+
Facility experimental data, linking all aspects of the
22+
research chain from proposal through to publication. It
23+
provides SOAP and RESTful web service interfaces to an
24+
underlying database.
2625
27-
python-icat is a Python package that provides a
28-
collection of modules for writing programs that
29-
access an ICAT service using the SOAP interface. It
30-
is based on Suds and extends it with ICAT specific
31-
features.
26+
python-icat is a Python package that provides a collection
27+
of modules for writing programs that access an ICAT
28+
service using the SOAP interface. It is based on Suds and
29+
extends it with ICAT specific features.
3230
keywords:
3331
- python
3432
- metadata

doc/examples/icatdump-4.10.xml

Lines changed: 50 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<icatdata>
33
<head>
4-
<date>2022-12-21T15:08:20+00:00</date>
4+
<date>2023-10-16T14:48:15+00:00</date>
55
<service>https://icat.example.com:8181/ICATService/ICAT?wsdl</service>
66
<apiversion>4.10.0</apiversion>
77
<generator>icatdump (python-icat 1.0.0)</generator>
@@ -431,226 +431,231 @@
431431
<grouping ref="Grouping_name-ingest"/>
432432
</rule>
433433
<rule id="Rule_00000066">
434+
<crudFlags>CRU</crudFlags>
435+
<what>Sample</what>
436+
<grouping ref="Grouping_name-ingest"/>
437+
</rule>
438+
<rule id="Rule_00000067">
434439
<crudFlags>R</crudFlags>
435440
<what>Shift</what>
436441
<grouping ref="Grouping_name-ingest"/>
437442
</rule>
438-
<rule id="Rule_00000067">
443+
<rule id="Rule_00000068">
439444
<crudFlags>R</crudFlags>
440445
<what>DataCollection</what>
441446
<grouping ref="Grouping_name-rall"/>
442447
</rule>
443-
<rule id="Rule_00000068">
448+
<rule id="Rule_00000069">
444449
<crudFlags>R</crudFlags>
445450
<what>DataCollectionDatafile</what>
446451
<grouping ref="Grouping_name-rall"/>
447452
</rule>
448-
<rule id="Rule_00000069">
453+
<rule id="Rule_00000070">
449454
<crudFlags>R</crudFlags>
450455
<what>DataCollectionDataset</what>
451456
<grouping ref="Grouping_name-rall"/>
452457
</rule>
453-
<rule id="Rule_00000070">
458+
<rule id="Rule_00000071">
454459
<crudFlags>R</crudFlags>
455460
<what>DataCollectionParameter</what>
456461
<grouping ref="Grouping_name-rall"/>
457462
</rule>
458-
<rule id="Rule_00000071">
463+
<rule id="Rule_00000072">
459464
<crudFlags>R</crudFlags>
460465
<what>Datafile</what>
461466
<grouping ref="Grouping_name-rall"/>
462467
</rule>
463-
<rule id="Rule_00000072">
468+
<rule id="Rule_00000073">
464469
<crudFlags>R</crudFlags>
465470
<what>DatafileParameter</what>
466471
<grouping ref="Grouping_name-rall"/>
467472
</rule>
468-
<rule id="Rule_00000073">
473+
<rule id="Rule_00000074">
469474
<crudFlags>R</crudFlags>
470475
<what>Dataset</what>
471476
<grouping ref="Grouping_name-rall"/>
472477
</rule>
473-
<rule id="Rule_00000074">
478+
<rule id="Rule_00000075">
474479
<crudFlags>R</crudFlags>
475480
<what>DatasetParameter</what>
476481
<grouping ref="Grouping_name-rall"/>
477482
</rule>
478-
<rule id="Rule_00000075">
483+
<rule id="Rule_00000076">
479484
<crudFlags>R</crudFlags>
480485
<what>Grouping</what>
481486
<grouping ref="Grouping_name-rall"/>
482487
</rule>
483-
<rule id="Rule_00000076">
488+
<rule id="Rule_00000077">
484489
<crudFlags>R</crudFlags>
485490
<what>InstrumentScientist</what>
486491
<grouping ref="Grouping_name-rall"/>
487492
</rule>
488-
<rule id="Rule_00000077">
493+
<rule id="Rule_00000078">
489494
<crudFlags>R</crudFlags>
490495
<what>Investigation</what>
491496
<grouping ref="Grouping_name-rall"/>
492497
</rule>
493-
<rule id="Rule_00000078">
498+
<rule id="Rule_00000079">
494499
<crudFlags>R</crudFlags>
495500
<what>InvestigationGroup</what>
496501
<grouping ref="Grouping_name-rall"/>
497502
</rule>
498-
<rule id="Rule_00000079">
503+
<rule id="Rule_00000080">
499504
<crudFlags>R</crudFlags>
500505
<what>InvestigationInstrument</what>
501506
<grouping ref="Grouping_name-rall"/>
502507
</rule>
503-
<rule id="Rule_00000080">
508+
<rule id="Rule_00000081">
504509
<crudFlags>R</crudFlags>
505510
<what>InvestigationParameter</what>
506511
<grouping ref="Grouping_name-rall"/>
507512
</rule>
508-
<rule id="Rule_00000081">
513+
<rule id="Rule_00000082">
509514
<crudFlags>R</crudFlags>
510515
<what>InvestigationUser</what>
511516
<grouping ref="Grouping_name-rall"/>
512517
</rule>
513-
<rule id="Rule_00000082">
518+
<rule id="Rule_00000083">
514519
<crudFlags>R</crudFlags>
515520
<what>Job</what>
516521
<grouping ref="Grouping_name-rall"/>
517522
</rule>
518-
<rule id="Rule_00000083">
523+
<rule id="Rule_00000084">
519524
<crudFlags>R</crudFlags>
520525
<what>Keyword</what>
521526
<grouping ref="Grouping_name-rall"/>
522527
</rule>
523-
<rule id="Rule_00000084">
528+
<rule id="Rule_00000085">
524529
<crudFlags>R</crudFlags>
525530
<what>PublicStep</what>
526531
<grouping ref="Grouping_name-rall"/>
527532
</rule>
528-
<rule id="Rule_00000085">
533+
<rule id="Rule_00000086">
529534
<crudFlags>R</crudFlags>
530535
<what>Publication</what>
531536
<grouping ref="Grouping_name-rall"/>
532537
</rule>
533-
<rule id="Rule_00000086">
538+
<rule id="Rule_00000087">
534539
<crudFlags>R</crudFlags>
535540
<what>RelatedDatafile</what>
536541
<grouping ref="Grouping_name-rall"/>
537542
</rule>
538-
<rule id="Rule_00000087">
543+
<rule id="Rule_00000088">
539544
<crudFlags>R</crudFlags>
540545
<what>Rule</what>
541546
<grouping ref="Grouping_name-rall"/>
542547
</rule>
543-
<rule id="Rule_00000088">
548+
<rule id="Rule_00000089">
544549
<crudFlags>R</crudFlags>
545550
<what>Sample</what>
546551
<grouping ref="Grouping_name-rall"/>
547552
</rule>
548-
<rule id="Rule_00000089">
553+
<rule id="Rule_00000090">
549554
<crudFlags>R</crudFlags>
550555
<what>SampleParameter</what>
551556
<grouping ref="Grouping_name-rall"/>
552557
</rule>
553-
<rule id="Rule_00000090">
558+
<rule id="Rule_00000091">
554559
<crudFlags>R</crudFlags>
555560
<what>Shift</what>
556561
<grouping ref="Grouping_name-rall"/>
557562
</rule>
558-
<rule id="Rule_00000091">
563+
<rule id="Rule_00000092">
559564
<crudFlags>R</crudFlags>
560565
<what>Study</what>
561566
<grouping ref="Grouping_name-rall"/>
562567
</rule>
563-
<rule id="Rule_00000092">
568+
<rule id="Rule_00000093">
564569
<crudFlags>R</crudFlags>
565570
<what>StudyInvestigation</what>
566571
<grouping ref="Grouping_name-rall"/>
567572
</rule>
568-
<rule id="Rule_00000093">
573+
<rule id="Rule_00000094">
569574
<crudFlags>R</crudFlags>
570575
<what>UserGroup</what>
571576
<grouping ref="Grouping_name-rall"/>
572577
</rule>
573-
<rule id="Rule_00000094">
578+
<rule id="Rule_00000095">
574579
<crudFlags>RU</crudFlags>
575580
<what>Sample</what>
576581
<grouping ref="Grouping_name-scientific=5Fstaff"/>
577582
</rule>
578-
<rule id="Rule_00000095">
583+
<rule id="Rule_00000096">
579584
<crudFlags>UD</crudFlags>
580585
<what>SampleType</what>
581586
<grouping ref="Grouping_name-scientific=5Fstaff"/>
582587
</rule>
583-
<rule id="Rule_00000096">
588+
<rule id="Rule_00000097">
584589
<crudFlags>CRUD</crudFlags>
585590
<what>FacilityCycle</what>
586591
<grouping ref="Grouping_name-useroffice"/>
587592
</rule>
588-
<rule id="Rule_00000097">
593+
<rule id="Rule_00000098">
589594
<crudFlags>CRUD</crudFlags>
590595
<what>Grouping</what>
591596
<grouping ref="Grouping_name-useroffice"/>
592597
</rule>
593-
<rule id="Rule_00000098">
598+
<rule id="Rule_00000099">
594599
<crudFlags>CRUD</crudFlags>
595600
<what>InstrumentScientist</what>
596601
<grouping ref="Grouping_name-useroffice"/>
597602
</rule>
598-
<rule id="Rule_00000099">
603+
<rule id="Rule_00000100">
599604
<crudFlags>CRUD</crudFlags>
600605
<what>Investigation</what>
601606
<grouping ref="Grouping_name-useroffice"/>
602607
</rule>
603-
<rule id="Rule_00000100">
608+
<rule id="Rule_00000101">
604609
<crudFlags>CRUD</crudFlags>
605610
<what>InvestigationGroup</what>
606611
<grouping ref="Grouping_name-useroffice"/>
607612
</rule>
608-
<rule id="Rule_00000101">
613+
<rule id="Rule_00000102">
609614
<crudFlags>CRUD</crudFlags>
610615
<what>InvestigationInstrument</what>
611616
<grouping ref="Grouping_name-useroffice"/>
612617
</rule>
613-
<rule id="Rule_00000102">
618+
<rule id="Rule_00000103">
614619
<crudFlags>CRUD</crudFlags>
615620
<what>InvestigationParameter</what>
616621
<grouping ref="Grouping_name-useroffice"/>
617622
</rule>
618-
<rule id="Rule_00000103">
623+
<rule id="Rule_00000104">
619624
<crudFlags>CRUD</crudFlags>
620625
<what>InvestigationUser</what>
621626
<grouping ref="Grouping_name-useroffice"/>
622627
</rule>
623-
<rule id="Rule_00000104">
628+
<rule id="Rule_00000105">
624629
<crudFlags>CRUD</crudFlags>
625630
<what>Keyword</what>
626631
<grouping ref="Grouping_name-useroffice"/>
627632
</rule>
628-
<rule id="Rule_00000105">
633+
<rule id="Rule_00000106">
629634
<crudFlags>CRUD</crudFlags>
630635
<what>Publication</what>
631636
<grouping ref="Grouping_name-useroffice"/>
632637
</rule>
633-
<rule id="Rule_00000106">
638+
<rule id="Rule_00000107">
634639
<crudFlags>CRUD</crudFlags>
635640
<what>Shift</what>
636641
<grouping ref="Grouping_name-useroffice"/>
637642
</rule>
638-
<rule id="Rule_00000107">
643+
<rule id="Rule_00000108">
639644
<crudFlags>CRUD</crudFlags>
640645
<what>Study</what>
641646
<grouping ref="Grouping_name-useroffice"/>
642647
</rule>
643-
<rule id="Rule_00000108">
648+
<rule id="Rule_00000109">
644649
<crudFlags>CRUD</crudFlags>
645650
<what>StudyInvestigation</what>
646651
<grouping ref="Grouping_name-useroffice"/>
647652
</rule>
648-
<rule id="Rule_00000109">
653+
<rule id="Rule_00000110">
649654
<crudFlags>CRUD</crudFlags>
650655
<what>User</what>
651656
<grouping ref="Grouping_name-useroffice"/>
652657
</rule>
653-
<rule id="Rule_00000110">
658+
<rule id="Rule_00000111">
654659
<crudFlags>CRUD</crudFlags>
655660
<what>UserGroup</what>
656661
<grouping ref="Grouping_name-useroffice"/>

0 commit comments

Comments
 (0)