Releases: fgcz/bfabricPy
Releases · fgcz/bfabricPy
1.13.8
This release contains mainly internal changes and ongoing development on the experimental app interface functionality.
Added
- Entities can be compared and sorted by ID now.
- Show Python version in version info string.
- Caching for bfabric_list_not_existing_storage_directories.py.
- (experimental) add initial code for a resource based application dispatch
- (experimental) new app_runner cli that integrates all commands into a single interface
Fixed
- bfabric_read.py is a bit more robust if "name" misses and tabular output is requested.
Changed
bfabric.scripts
has been moved into a namespace packagebfabric_scripts
so we can later split it off.- (internal) migrate to src layout
- (experimental) the former
process
step of the app runner has been split into aprocess
andcollect
step where,
the collect step is responsible for generating theoutput.yml
file that will then be used to register the results. - (experimental) app runner apps by default reuse the default resource
1.13.7
Fixed
bfabric_save_csv2dataset.py
considers all rows for schema inference, only considering the first 100 rows did cause problems with some files previously.
Added
- Script logging configuration
- If
BFABRICPY_DEBUG
environment variable is set, log messages in scripts will be set to debug mode. - Log messages from
__main__
will also be shown by default.
- If
bfabric.entities.MultiplexKit
to extract multiplex kit information.bfabric.entities.Workunit.store_output_folder
implements the old rule, but more deterministically and reusable.- (Experimental)
bfabric.experimental.app_interface
core functionality is implemented- This can be used as a building block to standardize the input preparation for applications.
Changed
- Correctly support optional workunit parameters.
Removed
bfabric.entities.Resource
associationapplication
has been removed as it does not exist
1.13.6
Added
Entity.find_by
has new parametermax_results
.
Changed
bfabric_read.py
prints non-output information exclusively through logger and does not restrict entity types anymore.bfabric_delete.py
accepts multiple ids at once and does not restrict entity types anymore.- Both engines raise a
BfabricRequestError
if the endpoint was not found.
Removed
bfabric.endpoints
list is deleted, since it was out of date and generally not so useful.
1.13.5
Added
- The
Bfabric
instance is now pickleable. - Entities mapping:
- Add
Entity.id
andEntity.web_url
properties. - Add
Entity.__getitem__
andEntity.get
to access fields from the data dictionary directly. - Add
Entity.find_by
to find entities by a query. - More types and relationships
- Relationships defer imports to descriptor call, i.e. circular relationships are possible now.
HasOne
andHasMany
allow definingoptional=True
to indicate fields which can be missing under some circumstances.
- Add
- Add
nodelist
column and application name tobfabric_list_not_available_proteomics_workunits.py
output.
Changed
Entity.find_all
supports more than 100 IDs now by using the experimental MultiQuery API.
1.13.4
Added
- Add
Workunit
,Parameter
, andResource
entities. - Add concept of has_many and has_one relationships to entities.
bfabric_slurm_queue_status.py
to quickly check slurm queue status.Bfabric.save
providesmethod
which can be set tocheckandinsert
for specific use cases.
Changed
- Most messages are now logged to debug level.
- The old verbose version information is now always logged, to INFO level, since it could entail useful information for error reporting.
1.13.3
Added
- Flask
- New endpoint
GET /config/remote_base_url
for testing
- New endpoint
Changed
- Flask
- Simplify logging by using loguru only.
- Simplified setup logic since the production use case should use a WSGI server.
Fixed
bfabric_save_csv2dataset.py
had an undeclared dependency on numpy and a few bugs which was improved.
1.13.2
Added
- Add
bfabric.entities.Dataset
to easily read datasets. - Pydantic-based configuration parsing
- The config format did not change.
- The code is easier to maintain now.
- Additionally, there is a lot more validation of the configuration file now, that should catch errors early.
- Make host and port configurable in
bfabric_flask.py
(currently only dev mode).
1.13.1
Changed
- bfabric_save_csv2dataset will raise an error if problematic characters are found in any of the cells
- Correctly define
bfabric_setWorkunitStatus_available.py
, andprocessing
andfailed
variants.
Added
- Add loguru for future logging refactoring.
- Easily runnable tests with
nox
and standardized formatting usingpre-commit
.
Removed
- Pandas is no longer a dependency, and has been replaced by polars.
1.13.0
This is a major release refactoring bfabricPy's API.
Changed
- The
Bfabric
class operations now returnResultContainer
objects.- These provide a list-like interface to access individual items or iterate over them.
- Individual items are a dictionary, potentially nested, and not specific to suds/zeep anymore.
- Convenience conversions, e.g. to a polars DataFrame, can be provided there.
- Configuration is now defined in
~/.bfabricpy.yml
and supports multiple configurations, which can be selected by theBFABRICPY_CONFIG_ENV
environment variable. Please consult the README for an example configuration. - Use
pyproject.toml
for package configuration. - Scripts have been refactored on a case-by-case basis.
Added
- Zeep can be used instead of suds for SOAP communication.
Bfabric
can be instantiated without authentication, that can be provided later. This is useful in a server setup.- Pagination support in
Bfabric
, specify the number of max_results and a potential offset. Pages handling is abstracted away. - Detect errors in responses, e.g. invalid login.
Removed
- Several old scripts have been moved into a
deprecated_scripts
folder. - Wrapper creator related code is currently not updated but has been extracted into a dedicated folder
wrapper_creator
as well.
bfabricPy 0.13.8
Set version 0.13.8