Skip to content
Snippets Groups Projects
CHANGELOG.md 6.86 KiB
Newer Older
# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased] ##

### Added ###

### Changed ###

* A bit better error handling in the yaml model parser.

### Deprecated ###

### Removed ###

### Fixed ###

florian's avatar
florian committed
* `TableImporter.check_missing` in case of array-valued fields in table

### Security ###

### Documentation ###

## [0.8.0] - 2023-05-30 ##
(Florian Spreckelsen)
florian's avatar
florian committed

### Added ###
- TableImporter now accepts a `existing_columns` argument which demands that certain columns exist
- The `JsonSchemaParser` class supports `patternProperties`
- The `JsonSchemaParser` calss supports json-schema references (`$ref`)
florian's avatar
florian committed

### Changed ###
- The converters and datatype arguments of TableImporter now may have keys for nonexisting columns
- The `JsonSchemaParser` class does not require the top-level entry of a json
  schema definition to specify a RecordType.
florian's avatar
florian committed

### Fixed ###
Henrik tom Wörden's avatar
Henrik tom Wörden committed
- refactored to work with the new default key word in FIND queries: RECORD
## [0.7.0] - 2023-03-09 ##
(Florian Spreckelsen)
florian's avatar
florian committed

### Added ###

- `create_entity_link` function to create html links to entities; useful for
  logging
## [0.6.1] - 2023-01-20##
florian's avatar
florian committed
* Re-introduced support for Python 3.7

## [0.6.0] - 2022-10-11 ##
(Florian Spreckelsen)

### Added ###

Florian Spreckelsen's avatar
Florian Spreckelsen committed
- Unauthorized inserts can now be cached. Note that the Crawler cannot postpone
  inserts but the Cache has the functionality now.
- caosdbignore; You can add one or more `.caosdbignore` files to the directory
  structure that you want to make available in CaosDB and the run loadFiles.
  The syntax is that of `.gitignore` files. For more information see `loadFiles`
  section of the Crawler in the documentation.
## [0.5.0] - 2022-09-05 ##
(Florian Spreckelsen)
- You can now use `python -m caosadvancedtools.models.parser model_file` to
Henrik tom Wörden's avatar
Henrik tom Wörden committed
  parse and potentially synchronize data models.
Henrik tom Wörden's avatar
Henrik tom Wörden committed
### Deprecated ###

- [#36](https://gitlab.com/caosdb/caosdb-advanced-user-tools/-/issues/36)
  `parent` keyword in yaml datamodel definition (replaced by
  `inherit_from_{obligatory|recommended|suggested}` keywords).

Henrik tom Wörden's avatar
Henrik tom Wörden committed
## [0.4.1] - 2022-05-03 ##
(Henrik tom Wörden)

### Changed ###

- `JsonSchemaParser` now identifies `name` properties in the schema with the
  CaosDB name property.

### Fixed ###

- [#40](https://gitlab.com/caosdb/caosdb-advanced-user-tools/-/issues/40)
  `assure_object_is_in_list` now handles adding objects to an initially empty list correctly.
Henrik tom Wörden's avatar
Henrik tom Wörden committed
## [0.4.0] - 2022-04-05  ##

### Added ###

Henrik tom Wörden's avatar
cl  
Henrik tom Wörden committed
- CFood that creates a Record for each line in a csv file
Henrik tom Wörden's avatar
Henrik tom Wörden committed
- `generic_analysis.py` allows to easily call scripts to perform analyses in
  server side scripting [EXPERIMENTAL]
- **EXPERIMENTAL:** Models parser can import from Json Schema files now:
  `models.parser.parse_model_from_json_schema(...)`. See the documentation of
  `models.parser.JsonSchemaParser` for the limitations of the current
  implementation.
- New keyword "role" in yaml data model that allows creation of Records and Files.
- It is now possible to set values of properties and default values of properties
  directly in the yaml model.
florian's avatar
florian committed
### Changed ###

- `TableConverter` now converts int to float and vice versa to match the desired dtype.

florian's avatar
florian committed
### Deprecated ###

### Removed ###

### Fixed ###

- CaosDB internal properties `name`, `unit` and `description` can now be used via the `extern`
  keyword in YAML datamodel specifications.
florian's avatar
florian committed
### Security ###

## [0.3.1] - 2021-12-06  ##
florian's avatar
florian committed
- `check_reference_field` function to check whether entities with provided ids
Henrik tom Wörden's avatar
Henrik tom Wörden committed
  exits (for example when importing data from a table)
- added the `datatypes` argument to `TableImporter` for columns that do not
  need a special conversion function
florian's avatar
florian committed
## [0.3.0] - 2021-11-02 ##

### Added ###

- Error handling for missing files when using the crawler
- included the scifolder module
- included the caosmodels module
florian's avatar
florian committed
- `send_mail` function in `caosadvancedtools.serverside.helper` module
Henrik tom Wörden's avatar
Henrik tom Wörden committed
- New class to collect possible problems with the data model
Henrik tom Wörden's avatar
Henrik tom Wörden committed
- New class for checking and importing tables
- Function to get a file path to a shared resource directory
- Function to setup logging appropriate for server side scripts with webui
Florian Spreckelsen's avatar
Florian Spreckelsen committed
- New class for collecting information for exporting tables, e.g., to
  metadata repositories
Henrik tom Wörden's avatar
Henrik tom Wörden committed
- new name parsing
- new test for software folder structure
- new assure_name_is function
- two utility functions when working with files: NameCollector and
  get_file_via_download
- Automated documentation builds: `make doc`
- Crawler documentation
Daniel Hornung's avatar
Daniel Hornung committed
- Proof-of-concept integration with Bloxberg.
Henrik tom Wörden's avatar
Henrik tom Wörden committed
- Introduce a cfood that can create a Record structure based on the contents of a hdf5 file
  h5py is now an optional dependency
- table importer implementations for csv and tsv
- string-in-list check for table imports
- AbtractCFood has new property, `update_flags`.
- identifiables of single CFoods are now treated one after the other. This
  allows them to have dependencies among each other if they are ordered
Henrik tom Wörden's avatar
Henrik tom Wörden committed
- identifiables must have at least one property or a name
florian's avatar
florian committed
- `caosadvancedtools.serverside.helper.init_data_model` also checks the role
Timm Fitschen's avatar
Timm Fitschen committed
  and data type of entities.
florian's avatar
florian committed
- The `caosadvancedtools.table_importer.date_converter` now actually returns
  `datetime.date` instance. A new
  `caosadvancedtools.table_importer.datetime_converter` replaces the old
  `date_converter` and returns a `datetime.datetime` instance.
- The suppression module is now a logging filter.
- The WebUIHandler is now a python logging formatter.
- instead of `get_entity`, type-specific functions are used in
  `cfood.py` when the type of the entity in question is known.
- Logger is used instead of `print` for errors in `crawler.py`.
- complies with new exception handling, i.e., TransactionErros with
  children being raised in all cases of EntityErrors (see
  [#32](https://gitlab.com/caosdb/caosdb-pylib/-/issues/32) in
  caosdb-pylib)
- `caosadvancedtools.cfood.assure_object_is_in_list` conducts in-place
  updates if no `to_be_updated` object is supplied.
### Fixed ###
- An exception in collect_information does no longer lead to a break down.
- Removed dependency on discontiued xlrd version
florian's avatar
florian committed
- Fixed an issue where `caosadvancedtools.cache.UpdateCache` would
  cause an `sqlite3.IntegrityError` if more than one change was cached
  for the same entity.
florian's avatar
florian committed
- #40 Insertion of identifiables with missing obligatory properties
- Before, a Property with the datatype "LIST(TEXT)" would lead to the creation
Henrik tom Wörden's avatar
cl  
Henrik tom Wörden committed
  of a RecordType. This is fixed now.
- #52 `XLSimporter.read_xls` throwed a wrong error when reading from a file with a wrong ending.
  Now, a `DataInconsistencyError` is raised instead of a ValueError.
florian's avatar
florian committed
- List properties are no longer updated unnecessarily by the crawler.

## [0.2.0] - 2020-05-28 ##

### Added
- everything