Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
RKrahl committed Oct 31, 2023
2 parents 184a759 + ced13e0 commit 54ac77c
Show file tree
Hide file tree
Showing 52 changed files with 1,727 additions and 1,032 deletions.
1 change: 1 addition & 0 deletions .rtd-require
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@ packaging
setuptools
setuptools_scm
suds
jinja2<3.1
sphinx>=2,<3
sphinx-rtd-theme>=0.5,<1
48 changes: 48 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,54 @@ Changelog
=========


1.2.0 (2023-10-31)
~~~~~~~~~~~~~~~~~~

New features
------------

+ `#125`_, `#140`_: Add support to link datasets with samples in
:mod:`icat.ingest`.

+ `#122`_, `#133`_: Allow referencing related objects by reference key
in object references in XML ICAT data file format.

Incompatible changes
--------------------

+ `#138`_, `#139`_: Fix the input that :mod:`icat.ingest` generates on
the fly to be valid according to the ICAT data file schema. This
also affects the input that the module accepts: the order of
subelements of `data` need to be changed such that
`datasetTechnique` comes before `datasetInstrument`.

Note that :mod:`icat.ingest` has been declared experimental for now.

Bug fixes and minor changes
---------------------------

+ `#131`_, `#135`_: Fix :meth:`icat.ids.IDSClient.getApiVersion` to
yield correct results for ids.server 2.0.0 and newer.

+ `#132`_, `#136`_: Fix a spurious :exc:`AttributeError` on cleanup
after connecting to an invalid url.

+ `#130`_, `#137`_: Review test suite.

.. _#122: https://github.com/icatproject/python-icat/issues/122
.. _#125: https://github.com/icatproject/python-icat/issues/125
.. _#130: https://github.com/icatproject/python-icat/issues/130
.. _#131: https://github.com/icatproject/python-icat/issues/131
.. _#132: https://github.com/icatproject/python-icat/issues/132
.. _#133: https://github.com/icatproject/python-icat/pull/133
.. _#135: https://github.com/icatproject/python-icat/pull/135
.. _#136: https://github.com/icatproject/python-icat/pull/136
.. _#137: https://github.com/icatproject/python-icat/pull/137
.. _#138: https://github.com/icatproject/python-icat/issues/138
.. _#139: https://github.com/icatproject/python-icat/pull/139
.. _#140: https://github.com/icatproject/python-icat/pull/140


1.1.0 (2023-06-30)
~~~~~~~~~~~~~~~~~~

Expand Down
26 changes: 12 additions & 14 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

cff-version: 1.2.0
title: python-icat – Python interface to ICAT and IDS
message: Please cite this software using these metadata.
type: software
authors:
- given-names: Rolf
Expand All @@ -13,22 +12,21 @@ authors:
Helmholtz-Zentrum Berlin für Materialien und
Energie
orcid: 'https://orcid.org/0000-0002-1266-3819'
- name: "The ICAT project"
website: https://icatproject.org/
- name: The ICAT project
website: 'https://icatproject.org/'
repository-code: 'https://github.com/icatproject/python-icat'
repository-artifact: 'https://pypi.org/project/python-icat/'
repository-artifact: 'https://github.com/icatproject/python-icat/releases/latest'
abstract: >-
The ICAT server is a metadata catalogue to support
Large Facility experimental data, linking all
aspects of the research chain from proposal through
to publication. It provides SOAP and RESTful web
service interfaces to an underlying database.
The ICAT server is a metadata catalogue to support Large
Facility experimental data, linking all aspects of the
research chain from proposal through to publication. It
provides SOAP and RESTful web service interfaces to an
underlying database.
python-icat is a Python package that provides a
collection of modules for writing programs that
access an ICAT service using the SOAP interface. It
is based on Suds and extends it with ICAT specific
features.
python-icat is a Python package that provides a collection
of modules for writing programs that access an ICAT
service using the SOAP interface. It is based on Suds and
extends it with ICAT specific features.
keywords:
- python
- metadata
Expand Down
95 changes: 50 additions & 45 deletions doc/examples/icatdump-4.10.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<icatdata>
<head>
<date>2022-12-21T15:08:20+00:00</date>
<date>2023-10-16T14:48:15+00:00</date>
<service>https://icat.example.com:8181/ICATService/ICAT?wsdl</service>
<apiversion>4.10.0</apiversion>
<generator>icatdump (python-icat 1.0.0)</generator>
Expand Down Expand Up @@ -431,226 +431,231 @@
<grouping ref="Grouping_name-ingest"/>
</rule>
<rule id="Rule_00000066">
<crudFlags>CRU</crudFlags>
<what>Sample</what>
<grouping ref="Grouping_name-ingest"/>
</rule>
<rule id="Rule_00000067">
<crudFlags>R</crudFlags>
<what>Shift</what>
<grouping ref="Grouping_name-ingest"/>
</rule>
<rule id="Rule_00000067">
<rule id="Rule_00000068">
<crudFlags>R</crudFlags>
<what>DataCollection</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000068">
<rule id="Rule_00000069">
<crudFlags>R</crudFlags>
<what>DataCollectionDatafile</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000069">
<rule id="Rule_00000070">
<crudFlags>R</crudFlags>
<what>DataCollectionDataset</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000070">
<rule id="Rule_00000071">
<crudFlags>R</crudFlags>
<what>DataCollectionParameter</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000071">
<rule id="Rule_00000072">
<crudFlags>R</crudFlags>
<what>Datafile</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000072">
<rule id="Rule_00000073">
<crudFlags>R</crudFlags>
<what>DatafileParameter</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000073">
<rule id="Rule_00000074">
<crudFlags>R</crudFlags>
<what>Dataset</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000074">
<rule id="Rule_00000075">
<crudFlags>R</crudFlags>
<what>DatasetParameter</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000075">
<rule id="Rule_00000076">
<crudFlags>R</crudFlags>
<what>Grouping</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000076">
<rule id="Rule_00000077">
<crudFlags>R</crudFlags>
<what>InstrumentScientist</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000077">
<rule id="Rule_00000078">
<crudFlags>R</crudFlags>
<what>Investigation</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000078">
<rule id="Rule_00000079">
<crudFlags>R</crudFlags>
<what>InvestigationGroup</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000079">
<rule id="Rule_00000080">
<crudFlags>R</crudFlags>
<what>InvestigationInstrument</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000080">
<rule id="Rule_00000081">
<crudFlags>R</crudFlags>
<what>InvestigationParameter</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000081">
<rule id="Rule_00000082">
<crudFlags>R</crudFlags>
<what>InvestigationUser</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000082">
<rule id="Rule_00000083">
<crudFlags>R</crudFlags>
<what>Job</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000083">
<rule id="Rule_00000084">
<crudFlags>R</crudFlags>
<what>Keyword</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000084">
<rule id="Rule_00000085">
<crudFlags>R</crudFlags>
<what>PublicStep</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000085">
<rule id="Rule_00000086">
<crudFlags>R</crudFlags>
<what>Publication</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000086">
<rule id="Rule_00000087">
<crudFlags>R</crudFlags>
<what>RelatedDatafile</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000087">
<rule id="Rule_00000088">
<crudFlags>R</crudFlags>
<what>Rule</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000088">
<rule id="Rule_00000089">
<crudFlags>R</crudFlags>
<what>Sample</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000089">
<rule id="Rule_00000090">
<crudFlags>R</crudFlags>
<what>SampleParameter</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000090">
<rule id="Rule_00000091">
<crudFlags>R</crudFlags>
<what>Shift</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000091">
<rule id="Rule_00000092">
<crudFlags>R</crudFlags>
<what>Study</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000092">
<rule id="Rule_00000093">
<crudFlags>R</crudFlags>
<what>StudyInvestigation</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000093">
<rule id="Rule_00000094">
<crudFlags>R</crudFlags>
<what>UserGroup</what>
<grouping ref="Grouping_name-rall"/>
</rule>
<rule id="Rule_00000094">
<rule id="Rule_00000095">
<crudFlags>RU</crudFlags>
<what>Sample</what>
<grouping ref="Grouping_name-scientific=5Fstaff"/>
</rule>
<rule id="Rule_00000095">
<rule id="Rule_00000096">
<crudFlags>UD</crudFlags>
<what>SampleType</what>
<grouping ref="Grouping_name-scientific=5Fstaff"/>
</rule>
<rule id="Rule_00000096">
<rule id="Rule_00000097">
<crudFlags>CRUD</crudFlags>
<what>FacilityCycle</what>
<grouping ref="Grouping_name-useroffice"/>
</rule>
<rule id="Rule_00000097">
<rule id="Rule_00000098">
<crudFlags>CRUD</crudFlags>
<what>Grouping</what>
<grouping ref="Grouping_name-useroffice"/>
</rule>
<rule id="Rule_00000098">
<rule id="Rule_00000099">
<crudFlags>CRUD</crudFlags>
<what>InstrumentScientist</what>
<grouping ref="Grouping_name-useroffice"/>
</rule>
<rule id="Rule_00000099">
<rule id="Rule_00000100">
<crudFlags>CRUD</crudFlags>
<what>Investigation</what>
<grouping ref="Grouping_name-useroffice"/>
</rule>
<rule id="Rule_00000100">
<rule id="Rule_00000101">
<crudFlags>CRUD</crudFlags>
<what>InvestigationGroup</what>
<grouping ref="Grouping_name-useroffice"/>
</rule>
<rule id="Rule_00000101">
<rule id="Rule_00000102">
<crudFlags>CRUD</crudFlags>
<what>InvestigationInstrument</what>
<grouping ref="Grouping_name-useroffice"/>
</rule>
<rule id="Rule_00000102">
<rule id="Rule_00000103">
<crudFlags>CRUD</crudFlags>
<what>InvestigationParameter</what>
<grouping ref="Grouping_name-useroffice"/>
</rule>
<rule id="Rule_00000103">
<rule id="Rule_00000104">
<crudFlags>CRUD</crudFlags>
<what>InvestigationUser</what>
<grouping ref="Grouping_name-useroffice"/>
</rule>
<rule id="Rule_00000104">
<rule id="Rule_00000105">
<crudFlags>CRUD</crudFlags>
<what>Keyword</what>
<grouping ref="Grouping_name-useroffice"/>
</rule>
<rule id="Rule_00000105">
<rule id="Rule_00000106">
<crudFlags>CRUD</crudFlags>
<what>Publication</what>
<grouping ref="Grouping_name-useroffice"/>
</rule>
<rule id="Rule_00000106">
<rule id="Rule_00000107">
<crudFlags>CRUD</crudFlags>
<what>Shift</what>
<grouping ref="Grouping_name-useroffice"/>
</rule>
<rule id="Rule_00000107">
<rule id="Rule_00000108">
<crudFlags>CRUD</crudFlags>
<what>Study</what>
<grouping ref="Grouping_name-useroffice"/>
</rule>
<rule id="Rule_00000108">
<rule id="Rule_00000109">
<crudFlags>CRUD</crudFlags>
<what>StudyInvestigation</what>
<grouping ref="Grouping_name-useroffice"/>
</rule>
<rule id="Rule_00000109">
<rule id="Rule_00000110">
<crudFlags>CRUD</crudFlags>
<what>User</what>
<grouping ref="Grouping_name-useroffice"/>
</rule>
<rule id="Rule_00000110">
<rule id="Rule_00000111">
<crudFlags>CRUD</crudFlags>
<what>UserGroup</what>
<grouping ref="Grouping_name-useroffice"/>
Expand Down
Loading

0 comments on commit 54ac77c

Please sign in to comment.