Skip to content
Snippets Groups Projects
CHANGELOG.md 8.36 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).

## [0.10.0] - 2024-04-24 ##

### Added ###

Daniel Hornung's avatar
Daniel Hornung committed
- XLSX handling: template generator and conversion from Json to XLSX
- Json schema exporter:
  - has new parameter `use_rt_pool`
  - propagates more properties in the `make_array` function
- Support for Python 3.12 and experimental support for 3.13
### Changed ###

* `table_converter.to_table` now returns an empty DataFrame instead of raising a
  ValueError when called with an empty container.

### Removed ###

* The deprecated `parent` keyword from the YAML datamodel specification. Use
  `inherit_from_{obligatory|recommended|suggested}` instead.
* Support for Python 3.7
### Fixed ###

- Json schema exporter handles reference properties better.
- [#59](https://gitlab.com/linkahead/linkahead-advanced-user-tools/-/issues/59)
  `to_table` failed on lists as values.

### Documentation ###

Florian Spreckelsen's avatar
Florian Spreckelsen committed
* Added documentation for json-schema datamodel export

## [0.9.0] - 2023-11-27 ##

### Added ###

Timm Fitschen's avatar
Timm Fitschen committed
* Added support for passing callables as `find_func` to the `BaseTableExporter`.
* Added member `BaseTableExporter.all_keys`
Daniel Hornung's avatar
Daniel Hornung committed
* Parsing from YAML now allows to give an existing model to which the YAML data model shall be
  added.
* The `json_schema_exporter` module which introduces tools to create a json
  schema from a RecordType, e.g., for the usage in web forms.
Daniel Hornung's avatar
Daniel Hornung committed
* `DataModel.get_deep(name: str)` method which uses the DataModel as a kind of cache pool.
### Changed ###

* A bit better error handling in the yaml model parser.
* `TableImporter.check_datatypes` allows numeric values in string columns if
  `strict=False` (default).
### Fixed ###

florian's avatar
florian committed
* `TableImporter.check_missing` in case of array-valued fields in table
Daniel Hornung's avatar
Daniel Hornung committed
* YAML model parser has better description handling.
florian's avatar
florian committed

### Documentation ###

* Test coverage reports are now generated in `.tox/cov_html/` by tox.

## [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