Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
RKrahl committed Dec 21, 2022
2 parents 42caf64 + e89827c commit dda5005
Show file tree
Hide file tree
Showing 131 changed files with 21,706 additions and 3,729 deletions.
7 changes: 1 addition & 6 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
*.pyc
*~
__pycache__/
/.version
/.vscode
/MANIFEST
/_meta.py
/build/
/dist/
/icat.cfg
/icat/__init__.py
/tests/.cache/
/tests/data/example_data.yaml
/tests/data/icat.cfg
/tests/data/icatdump-*.xml
Expand Down
93 changes: 93 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,98 @@ Changelog
=========


1.0.0 (2022-12-21)
~~~~~~~~~~~~~~~~~~

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

+ `#73`_, `#106`_: Add support for the ICAT schema 5.0 extensions.

+ `#102`_, `#104`_: Make the `obj` argument to
:meth:`icat.client.Client.new` case insensitive.

+ `#77`_, `#103`_: Add a keyword argument `preset` to allow directly
passing configuration values to the constructor of class
:class:`icat.config.Config`.

+ `#66`_, `#75`_: Add pathlib support: methods that take a file name
argument also accept a :class:`pathlib.Path` object. Internal
representation of file system paths are changed to use
:class:`pathlib.Path` where appropriate. The predefined
configuarion variable `configFile` now supports tilde expansion.
Note incompatible changes below.

+ `#74`_: :class:`icat.ids.DataSelection` also accepts
`DataCollection` as argument.

Incompatible changes and deprecations
-------------------------------------

+ The order and arrangement of data objects in the dump file created
by :ref:`icatdump` has been changed. In some cases, older versions
of :ref:`icatingest` will fail to read dump files written by new
versions of :ref:`icatdump`.

+ As a consequence of switching to pathlib for file system paths some
return values and variables are now :class:`pathlib.Path` objects
rather then :class:`str`. This affects:

- the return value of :func:`icat.config.cfgpath`,
- the predefined configuarion variable `configFile`,
- the module variable :data:`icat.config.cfgdirs`.

+ Drop support for Python 2 and Python 3.3.

+ Drop keyword argument `attribute` and method
:meth:`icat.query.Query.setAttribute` from class
:class:`icat.query.Query`, deprecated in 0.18.0.

+ Drop module :mod:`icat.cgi`, deprecated in 0.13.0.

+ Drop module :mod:`icat.icatcheck` and exception
:exc:`icat.exception.GenealogyError`, deprecated in 0.17.0.

+ Drop methods :meth:`icat.ids.IDSClient.resetPrepared`,
:meth:`icat.ids.IDSClient.getPreparedDatafileIds`,
:meth:`icat.ids.IDSClient.getPreparedData`,
:meth:`icat.ids.IDSClient.getPreparedDataUrl`,
:meth:`icat.client.Client.getPreparedData`, and
:meth:`icat.client.Client.getPreparedDataUrl`, deprecated in 0.17.0.

+ Drop the predefined configuration variable `configDir`, deprecated
in 0.13.0.

+ Drop helper function :func:`icat.exception.stripCause`, deprecated
in 0.14.0.

+ Deprecate :data:`icat.config.defaultsection`. Use the new `preset`
keyword argument to :class:`icat.config.Config` instead.

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

+ `#98`_, `#105`_: Review build tool chain. Add a helper class
:class:`icat.helper.Version`.

+ `#101`_: Fix tests failing with PyYAML 6.0.

+ Some (more) example scripts now require ICAT 4.4.0 or newer.

.. _#66: https://github.com/icatproject/python-icat/issues/66
.. _#73: https://github.com/icatproject/python-icat/issues/73
.. _#74: https://github.com/icatproject/python-icat/issues/74
.. _#75: https://github.com/icatproject/python-icat/pull/75
.. _#77: https://github.com/icatproject/python-icat/issues/77
.. _#98: https://github.com/icatproject/python-icat/issues/98
.. _#101: https://github.com/icatproject/python-icat/pull/101
.. _#102: https://github.com/icatproject/python-icat/issues/102
.. _#103: https://github.com/icatproject/python-icat/pull/103
.. _#104: https://github.com/icatproject/python-icat/pull/104
.. _#105: https://github.com/icatproject/python-icat/pull/105
.. _#106: https://github.com/icatproject/python-icat/pull/106


0.21.0 (2022-01-28)
~~~~~~~~~~~~~~~~~~~

Expand All @@ -19,6 +111,7 @@ New features

.. _#100: https://github.com/icatproject/python-icat/pull/100


0.20.1 (2021-11-04)
~~~~~~~~~~~~~~~~~~~

Expand Down
37 changes: 37 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

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
family-names: Krahl
email: [email protected]
affiliation: >-
Helmholtz-Zentrum Berlin für Materialien und
Energie
orcid: 'https://orcid.org/0000-0002-1266-3819'
- name: "The ICAT project"
website: https://icatproject.org/
repository-code: 'https://github.com/icatproject/python-icat'
repository-artifact: 'https://pypi.org/project/python-icat/'
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.
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
- scientific-data
- metadata-catalogue
license: Apache-2.0
6 changes: 5 additions & 1 deletion MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
include .version
include CHANGES.rst
include LICENSE.txt
include MANIFEST.in
include README.rst
include _meta.py
include doc/examples/*.py
include doc/examples/example_data.yaml
include doc/examples/icat.cfg
Expand All @@ -13,6 +13,10 @@ include doc/icatdata*.xsd
include doc/man/*
include doc/tutorial/*.py
include tests/conftest.py
include tests/data/legacy-icatdump-*.xml
include tests/data/legacy-icatdump-*.yaml
include tests/data/ref-icatdump-*.xml
include tests/data/ref-icatdump-*.yaml
include tests/data/summary*
include tests/pytest.ini
include tests/test_*.py
27 changes: 10 additions & 17 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
PYTHON = python3

BUILDLIB = $(abspath build/lib)


build:
$(PYTHON) setup.py build
Expand All @@ -12,33 +10,28 @@ test:
sdist: doc-man
$(PYTHON) setup.py sdist

doc-html: build
$(MAKE) -C doc html PYTHONPATH=$(BUILDLIB)

doc-man: build
$(MAKE) -C doc man PYTHONPATH=$(BUILDLIB)
doc-html: meta
$(MAKE) -C doc html PYTHONPATH=$(CURDIR)

doc-man: meta
$(MAKE) -C doc man PYTHONPATH=$(CURDIR)

clean:
rm -f *~ icat/*~ tests/*~ doc/*~ doc/examples/*~
rm -rf build
rm -rf __pycache__
rm -rf tests/data/example_data.yaml
rm -rf tests/data/icatdump-* tests/data/ingest-*.xml
rm -rf tests/scripts

distclean: clean
rm -rf tests/.cache
rm -f MANIFEST .version
rm -rf python_icat.egg-info
rm -f *.pyc icat/*.pyc tests/*.pyc
rm -rf __pycache__ icat/__pycache__ tests/__pycache__
rm -f MANIFEST _meta.py
rm -f icat/__init__.py
rm -rf dist
rm -rf tests/.pytest_cache
$(MAKE) -C doc distclean


init_py:
$(PYTHON) setup.py init_py
meta:
$(PYTHON) setup.py meta


.PHONY: build test sdist doc-html clean distclean init_py
.PHONY: build test sdist doc-html doc-man clean distclean meta
Loading

0 comments on commit dda5005

Please sign in to comment.