Recent Releases of https://github.com/fgcz/bfabricpy
https://github.com/fgcz/bfabricpy -
[0.4.0] - 2025-09-26
Added
- New Input Type:
BfabricResourceDatasetSpec- Specifies a dataset which links
Resourceentities with a particular column - Copies all files into a directory (the spec's
filenamefield) - Writes the dataset file into the same directory, adding a
Filecolumn (configurable) with the filenames
- Specifies a dataset which links
Changed
- Automatic Workflow Step Creation moved from
dispatchaction tostageaction- Prevents creating workflowsteps for failed workunits
- Note: This decision may be revisited in the future, as there could be benefits to creating the workflowstep early on
- Improved error messaging when running "make stage" in read-only mode
- Now displays clear warning messages explaining that staging is skipped
- Provides guidance on how to remove the --read-only flag
- Python
Published by leoschwarz 5 months ago
https://github.com/fgcz/bfabricpy -
[1.13.35] - 2025-09-25
Changed
bfabric_list_not_existing_storage_directories.pyis made more robust. Instead of the file based cache, it will check all containers modified within a sliding time window (default 14 days).
- Python
Published by github-actions[bot] 5 months ago
https://github.com/fgcz/bfabricpy -
[1.13.34] - 2025-09-22
Fixed
bfabric_save_importresource_sample.pynow properly serializes ResultContainer objects for JSON output.
Changed
- Update
bfabricto include case-insensitive dataset column type detection support.
- Python
Published by github-actions[bot] 5 months ago
https://github.com/fgcz/bfabricpy -
[1.13.35] - 2025-09-22
Changed
- Dataset column type detection now supports case-insensitive entity matching (e.g., "resource" is detected as "Resource" type automatically).
- Python
Published by github-actions[bot] 5 months ago
https://github.com/fgcz/bfabricpy -
[1.13.34] - 2025-09-19
Added
bfabric.experimental.cachewhich implements re-entrant lookup caching for entities (when retrieved by ID).- Fields
filename,storage_relative_path,storage_absolute_pathhave been added toResource. This should be used in the future, to ensure path handling is performed consistently
Removed
bfabric.experimental.entity_lookup_cachehas been removed in favor of the new (experimental) API.
- Python
Published by github-actions[bot] 5 months ago
https://github.com/fgcz/bfabricpy -
[0.3.1] - 2025-09-01
Added
CommandPythonEnvcan also execute any tools available in the Python environment (in.venv/bin), not just modules.-m bfabric_app_runner.commands.command_python_envprovides an experimental CLI to run arbitrary commands analogously to the app runner.- Automatically save links to workunits without specifying extra IDs.
Changed
- Dispatch action detects, when the script modifies
workunit_definition.ymlwhich should not happen anymore, and notifies the user restoring the original file. The app continues without an error.
- Python
Published by github-actions[bot] 6 months ago
https://github.com/fgcz/bfabricpy -
[0.3.0] - 2025-08-26
Added
- Add
workflow_template_step_idfield toBfabricAppSpecto specify template step to register workunits under automatically. - Dispatch action checks if a workflow template step is specified and registers the workunit under it automatically.
Changed
- Generic dispatch functionality will not override existing
workunit_definition.ymlfiles anymore. - Update
bfabricdependency to 1.13.33.
- Python
Published by github-actions[bot] 6 months ago
https://github.com/fgcz/bfabricpy -
[1.13.33] - 2025-08-26
Added
- Add new field
WorkunitDefinition.registration.user_id. - Add created/modified fields to
Workunitentity.
Fixed
- Legacy wrapper creator also writes the inputdataset name.
- Python
Published by github-actions[bot] 6 months ago
https://github.com/fgcz/bfabricpy -
[1.13.33] - 2025-08-26
Changed
- Update
bfabricto 1.13.32.
- Python
Published by github-actions[bot] 6 months ago
https://github.com/fgcz/bfabricpy -
[1.13.32] - 2025-08-26
Added
- New entities:
Workflow,WorkflowStep,WorkflowTemplate,WorkflowTemplateStep - New relationship:
HasUserto resolve user references (since these are modeled differently from other relationships).
Fixed
- There was an issue in
import_entity.pywhich made loading entities with additional uppercase characters in the type fail. - Fix compatibility in legacy wrapper creator for dataset-flow workunits.
- Python
Published by github-actions[bot] 6 months ago
https://github.com/fgcz/bfabricpy -
[1.13.32] - 2025-08-20
Fixed
- Legacy
bfabric_save_workflowstep.pyis compatible with current bfabricPy version again.
Changed
- Update
bfabricto 1.13.31.
- Python
Published by github-actions[bot] 6 months ago
https://github.com/fgcz/bfabricpy -
[1.13.31] - 2025-09-20
Changed
- The
Bfabric.connect_webappwill use thecallerfield from the token data to set thebase_urlof the client.- Existing code should not break, but will emit a deprecation warning as we plan to remove the old parameters.
- Theoretically, it changes the semantics, but in practice it should yield the same result for all known use cases.
Added
TokenDatawill include thecallerurl now.- Entity
Userhas been added.
Fixed
- Legacy wrapper creator creates
""rather thanNonefor empty parameter values.
- Python
Published by github-actions[bot] 6 months ago
https://github.com/fgcz/bfabricpy -
[1.13.31] - 2025-08-19
Fixed
bfabric-cli api readhandles empty results gracefully for all output formats.
Changed
- Update
bfabricto 1.13.30. This includes a fix for legacy wrapper creator.
- Python
Published by github-actions[bot] 6 months ago
https://github.com/fgcz/bfabricpy -
[1.13.30] - 2025-08-19
Fixed
- Fix legacy wrapper creator for orders without projects.
- Python
Published by github-actions[bot] 6 months ago
https://github.com/fgcz/bfabricpy -
[0.2.1] - 2025-07-22
Fixed
- Makefile avoids redundant dispatch on every target.
- Python
Published by github-actions[bot] 7 months ago
https://github.com/fgcz/bfabricpy -
[0.2.0] - 2025-07-15
This release consolidates various commands in bfabric-app-runner streamlining the user experience.
It also brings an improved Makefile which should obsolete the manual installation of bfabric-app-runner providing
the user with the configured version by default.
Removed
- Removed experimental
bfabric-app-runner deploy build-app-zipcommand and associated app.zip functionality. This functionality has been superseded by the more robustCommandPythonEnvapproach for Python environment management. - Removed
bfabric-app-runner appcommand (covered bybfabric-app-runner runandbfabric-app-runner preparenow). - Removed
bfabric-app-runner chunkcommand (covered bybfabric-app-runner actionnow). - Removed module path support for app specification.
CommandPythonEnvis cleaner than the workflow this tried to enable. - The app related commands do not support
AppVersioninputs anymore. Instead, you should always specify aAppSpecfile.
Changed
bfabric-app-runner prepare workunitdoes not accept module refs anymore and will resolve the app spec path.bfabric-app-runner prepare workunit --force-app-versionto force a specific app version for the workunit.- Old
bfabric-app-runner app runandbfabric-app-runner app dispatchuse the new makefile function from cmd_prepare.
Added
copierbased template/demo application for development and end-to-end testing of bfabric-app-runner.- Added
ResolvedDirectorytype to represent directories resolved from resource archives. - Added
BfabricResourceArchiveSpecto specify input archives which should be extracted (and select which files are needed). - Validation logic has been added for
ResolvedDirectoryandBfabricResourceArchiveSpec. In particular aResolvedDirectorymay never overlap with aResolvedFileorResolvedStaticFilepath. - Using
uv toolthe Makefile will provide the correct version of the app runner when called. To opt-out of this behavior, one can setUSE_EXTERNAL_RUNNER=truefor the makefile.
- Python
Published by github-actions[bot] 8 months ago
https://github.com/fgcz/bfabricpy -
[0.1.2] - 2025-07-08
CommandPythonEnvwithrefresh=Truenow will create a separate environment to avoid breaking apps which are already using a particular Python environment without locking it.
- Python
Published by github-actions[bot] 8 months ago
https://github.com/fgcz/bfabricpy -
[0.1.1] - 2025-07-07
Changed
CommandPythonEnvcomputes the hash more carefully.
- Python
Published by github-actions[bot] 8 months ago
https://github.com/fgcz/bfabricpy -
[1.13.30] - 2025-07-04
Added
bfabric_flask.pyprovides support for token-based authentication for B-Fabric.
Removed
bfabric_flask.pyis not exported as a script anymore, because misuse can lead to security issues and should be deployed properly.
- Python
Published by github-actions[bot] 8 months ago
https://github.com/fgcz/bfabricpy -
[1.13.29] - 2025-07-04
Changed
bfabric.rest.token_data.get_token_datanow only requires the base_url instead of the whole config.
- Python
Published by github-actions[bot] 8 months ago
https://github.com/fgcz/bfabricpy -
[1.13.29] - 2025-06-27
Removed
- Deprecated
bfabric-cli api logsubcommand was removed.
Added
bfabric-cli executable dumpcommand to export YAML and XML of executablesbfabric-cli feeder create-importresourcecommand to register importresource objects in B-Fabricbfabric-cli executable uploadsupports XML
Fixed
bfabric-cli workunit not-availableshows nodelist for workunits using new submitter.
Changed
- Columns of tables named after B-Fabric entities, containing only integers, will be set as the specified type when saving to B-Fabric.
- Update
bfabricto 1.13.28. - Update legacy
bfabric_logthis.py, the workunit target logic has been removed (unused).
- Python
Published by github-actions[bot] 8 months ago
https://github.com/fgcz/bfabricpy -
[0.1.0] - 2025-06-27
Added
- Command type
python_envfor commands which require a provisioned Python environment.
Changed
- Command implementation is separated from command definition for cleaner implementation.
- New submitter requires
BFABRICPY_CONFIG_ENVandXDG_CACHE_HOMEto be set. - Update
bfabricdependency to 1.13.28.
- Python
Published by github-actions[bot] 8 months ago
https://github.com/fgcz/bfabricpy -
[1.13.28] - 2025-06-27
Breaking
base_urlis now a mandatory parameter in the configuration.
Added
- It is now possible to configure
~/.bfabricpy.ymlwithout a default environment. In that case it will always be necessary to specify the requested config environment to be used. bfabric.entities.Executablehasparametersrelationship now
Removed
- Some old submitter related functionality is deleted.
Changed
- Columns of tables named after B-Fabric entities, containing only integers, will be set as the specified type
when saving to B-Fabric (in
experimental.upload_dataset).
- Python
Published by github-actions[bot] 8 months ago
https://github.com/fgcz/bfabricpy -
[0.0.23] - 2025-06-02
Added
bfabric_app_runner.bfabric_integration.slurmand associated packages.- Command
bfabric-app-runner run workunitto run the whole app end-to-end for a workunit.
Removed
- AppVersion does not have a
submitterfield anymore. - Some old submitter related functionality is deleted.
- Python
Published by github-actions[bot] 9 months ago
https://github.com/fgcz/bfabricpy -
[1.13.28] - 2025-05-21
Removed
- Removed
bfabric_delete.py. Usebfabric-cli api deleteinstead. - Removed
bfabric_list_not_available_proteomics_workunits.py. Usebfabric-cli workunit not-availableinstead.
Changed
- Update
bfabricto 1.13.27. bfabric-cli api deletewill use the type of the entity in CLI messages.
- Python
Published by github-actions[bot] 9 months ago
https://github.com/fgcz/bfabricpy -
[0.0.22] - 2025-05-21
Added
- Apps can now be referred to by module path rather than just file paths. This is going to be a primary building block to very simple package-based deployment of apps.
- The
static_fileinput spec type has been integrated properly. - Missing integration for
fileinput spec type has been added. - The workunit makefile now directly shows how to use the GitHub app runner version instead, which is sometimes required while debugging.
CommandExecallows prepending paths toPATHand setting environment variables and is less ambiguous thanshell.bfabric-app-runner actioninterface which standardizes the various actions of running app steps.bfabric-app-runner prepare workunitto prepare a workunit execution and sets up aapp_env.ymlandMakefile.bfabric-app-runner deploy build-app-zipexperimental command to build an app zip file which can be deployed, for a particular Python application.
Changed
- Silently interpolateconfigstrings log messages.
- Update
bfabricdependency to 1.13.27. - App versions do not always require a version key as it will default to "latest", but only one version can have a particular version key per app definition.
Fixed
- Use most recent cyclopts version again, i.e. issue 168 is fixed.
- Compatibility with pandera 0.24.0 was restored.
- Python
Published by github-actions[bot] 9 months ago
https://github.com/fgcz/bfabricpy -
[1.13.27] - 2025-05-21
Added
- Attribute
Bfabric.config_datato obtain aConfigDataobject directly. TokenData.load_entityconvenience method to load an entity from the token data.- Entities
Instrument,Plate,Runwere added (but with no extra functionality). Workunit.{application_parameters, submitter_parameters}to access parameter values.
Changed
- Submitter parameters will not be written any longer to
WorkunitExecutionparameters.
Fixed
- Compatibility with upcoming change that
Applicationcan have multipletechnologyvalues.
Deprecated
Workunit.parameter_valueswill be removed in favor ofWorkunit.application_parametersandWorkunit.submitter_parametersin a future version.
- Python
Published by github-actions[bot] 9 months ago
https://github.com/fgcz/bfabricpy -
[1.13.26] - 2025-04-26
This release introduces an environment variable BFABRICPY_CONFIG_OVERRIDE to configure the Bfabric client completely,
along with a new method for creating an instance of the Bfabric client, Bfabric.connect().
This will allow us to propagate any configuration to subprocesses reliably. BFABRICPY_CONFIG_ENV remains available
with the same semantics, but lower priority than BFABRICPY_CONFIG_OVERRIDE.
This also simplifies the logic that was present in Bfabric.from_config which is why this introduced with a new API
to prevent configuration mix-ups.
Added
- New environment variable
BFABRICPY_CONFIG_OVERRIDEto configure theBfabricclient completely - New method
Bfabric.connect()for creating an instance of theBfabricclient
Changed
- Renamed
Bfabric.from_tokentoBfabric.connect_webapp()(along with some changes, no known users of this API yet) - Disallowed
defaultas an environment config name bfabric.cli_integration.utils.use_clientusesBfabric.connect()instead ofBfabric.from_config()
Deprecated
Bfabric.from_configis now deprecated in favor ofBfabric.connect()
- Python
Published by github-actions[bot] 10 months ago
https://github.com/fgcz/bfabricpy -
[1.13.27] - 2025-04-22
Changed
bfabric-cli dataset uploadwill print warnings when trailing whitespace is detected and not print the whole response anymore, but rather the important information only.
Added
- Optional support for uploading xlsx (currently behind
exceloptional feature).
- Python
Published by github-actions[bot] 10 months ago
https://github.com/fgcz/bfabricpy -
[1.13.25] - 2025-04-22
Breaking
Bfabric.from_tokenreturns theTokenDatain addition to the client instance. While this is breaking, I'm not aware of any existing users of this API and I noticed that this information is going to be needed in this context often.
Added
bfabric.experimental.upload_dataset.warn_on_trailing_spacesfunction used bybfabric-scriptsto validate
- Python
Published by github-actions[bot] 10 months ago
https://github.com/fgcz/bfabricpy -
Changed
- Update
bfabricto 1.13.24.
Removed
- Remove
bfabric-cli api save-> usebfabric-cli api createandbfabric-cli api updateinstead.
- Python
Published by github-actions[bot] 11 months ago
https://github.com/fgcz/bfabricpy -
Removed
cycloptsis not a dependency ofbfabricanymore, but rather ofbfabric-scriptsandbfabric-app-runner.
Changed
Bfabricclient now does not takeengineargument anymore, but rather this information comes fromClientConfig. For compatibility reasons, theengineargument is still accepted inBfabric.from_configandBfabric.from_token.
- Python
Published by github-actions[bot] 11 months ago
https://github.com/fgcz/bfabricpy -
Added
workunitcan now be interpolated in config files.SubmittersSpecto define a slurm submitter.
Changed
- Submitter params in app definition, use key
paramsrather thanconfigto be more explicit.
Fixed
- Temporary workaround for https://github.com/fgcz/bfabricPy/issues/168.
- Python
Published by github-actions[bot] 11 months ago
https://github.com/fgcz/bfabricpy - bfabric_scripts/1.13.25
Fixed
- Temporary workaround for https://github.com/fgcz/bfabricPy/issues/168.
- Python
Published by leoschwarz 11 months ago
https://github.com/fgcz/bfabricpy -
Changed
- Input staging is now more efficient for large numbers of similar input types, by batching the transformation into resolved operations.
Fixed
workunit.mkcorrectly chooses betweenapp_version.ymlandapp_definition.ymldepending on availability- Multiple inputs with the same output filename, will yield an error now.
- File timestamps will not be modified anymore, if the file is already up-to-date.
Added
SaveLinkSpecto save a B-Fabric link e.g. to a workunit.
Removed
file_scpspec has been removed, one should usefileinstead (FileSpec)- A lot of the old input handling code has been removed, it should not cause any problems, but mentioning this in case it shows up after the release.
- Python
Published by github-actions[bot] 11 months ago
https://github.com/fgcz/bfabricpy -
Fixed
- Unsuccessful deletions are detected by checking the B-Fabric response.
- Handle problematic characters in
Workunit.store_output_folder. BfabricRequestErrordid not properly subclass RuntimeError.
Changed
WorkunitDefinitionusesPathSafeStrto normalize app and workunit names.- Internal:
ResultContainerhas no optional constructor arguments anymore to avoid confusion.
Added
- Generic functionality in
bfabric.utils.path_safe_nameto validate names for use in paths. bfabric.entities.Dataset.{write_parquet, get_parquet}methods for writing parquet
- Python
Published by github-actions[bot] 11 months ago
https://github.com/fgcz/bfabricpy -
Added
dispatch_resource_flowoutput table allows null filename--force-storageis available in more commands now
Changed
- The
workunit.mkMakefile now specifies Python 3.13 in the uv venv, so it is more reliable.
- Python
Published by github-actions[bot] about 1 year ago
https://github.com/fgcz/bfabricpy -
Added
static_yamlinput type to write parameters etc.dispatch.dispatch_resource_flowimplements a generic solution for dispatching resource flow workunits without having to perform entity look up in many cases yourself.- App Definition now supports omitting the collect step.
Changed
BfabricResourceSpecdefaults to file basename vs resource name, if no name is specified.
- Python
Published by leoschwarz about 1 year ago
https://github.com/fgcz/bfabricpy -
Fixed
- Update
bfabricto 1.13.22 for dataset fix.
- Python
Published by leoschwarz about 1 year ago
https://github.com/fgcz/bfabricpy -
Fixed
- Update
bfabricto 1.13.22 for dataset fix.
- Python
Published by leoschwarz about 1 year ago
https://github.com/fgcz/bfabricpy -
Fixed
- Correctly read datasets, if columns were swapped in B-Fabric.
Changed
Dataset.typeswas renamed toDataset.column_types, since there is only 1 usage and it is recent, this is not considered breaking.
- Python
Published by github-actions[bot] about 1 year ago
https://github.com/fgcz/bfabricpy -
Added
- Implement
--force-storageto pass a yaml to a forced storage instead of the real one. - A Makefile will be created in the app folder for easier interaction with the app-runner (it uses uv and PyPI).
Changed
- CopyResourceSpec.updateexisting now defaults to `ifexists`.
- Resolve workunit_ref to absolute path if it is a Path instance for CLI.
- Python
Published by github-actions[bot] about 1 year ago
https://github.com/fgcz/bfabricpy -
Added
bfabric-cli dataset {upload, download, show}to replace the old dataset-related scripts.bfabric-cli api updatecommand to update an existing entitybfabric-cli api createcommand to create a new entitybfabric-cli api deletecommand to delete an existing entity
- Python
Published by github-actions[bot] about 1 year ago
https://github.com/fgcz/bfabricpy -
Added
Entity.load_yamlandEntity.dump_yamlBfabric.from_tokento create aBfabricinstance from a tokenbfabric.rest.token_datato get token data from the REST API, low-level functionality
Changed
- Internally, the user password is now in a
pydantic.SecretStruntil we construct the API call. This should prevent some logging related accidents.
- Python
Published by github-actions[bot] about 1 year ago
https://github.com/fgcz/bfabricpy -
Fixed
- Fix printing of YAML for parsing with shyaml, previously line breaks could have been introduced.
- Python
Published by leoschwarz about 1 year ago
https://github.com/fgcz/bfabricpy -
Added
bfabric-cli workunit not-available:- allows sorting by arbitrary fields, e.g. application id
- allows filtering inclusive or exclusive by user
Changed
- Pin bfabricPy version to avoid future headaches.
bfabric-cli api read- Removes the automatic output type logic
- Multiple values can be submitted for the same key (just specify it multiple times)
- The actual query will be printed as a line of bfabricPy code
--fileparameter to write the output to a specific file- Argument parsing is handled with pydantic now
- Added tsv support
- Python
Published by leoschwarz about 1 year ago
https://github.com/fgcz/bfabricpy -
Breaking
- the old
bfabric.cli_formattingandbfabric.bfabric2modules have been deleted
Changed
- move
use_clienttobfabric.utils.cli_integration: this will allow reuse between bfabric-scripts and bfabric-app-runner - move functionality from
bfabric.cli_formattingtobfabric.utils.cli_integration
- Python
Published by leoschwarz about 1 year ago
https://github.com/fgcz/bfabricpy -
Added
- New input type
filewhich replacesfile_scpand preserves timestamps whenever possible and allows to create symlinks instead of copying the file, as needed. BfabricOrderFastaSpec.requiredwhich allows specifying whether the order fasta is required or not
Changed
- Better error when app version is not found.
Fixed
- Config: Log messages are shown by default again.
- Python
Published by leoschwarz about 1 year ago
https://github.com/fgcz/bfabricpy -
Fixed
- Config: Log messages of app runner are shown by default again.
- Python
Published by leoschwarz about 1 year ago
https://github.com/fgcz/bfabricpy - app_runner/0.0.14
Fixed
- Correctly consume bfabricPy from PyPI.
- Python
Published by leoschwarz about 1 year ago
https://github.com/fgcz/bfabricpy - app_runner/0.0.13
Added
WorkunitDefinition.registration.workunit_namefield.
- Python
Published by leoschwarz about 1 year ago
https://github.com/fgcz/bfabricpy - 1.13.18
Changed
bfabric_upload_resource.pydoes not print a list anymore, but rather only the dict of the uploaded resource.
Fixed
- Some scripts were not Python 3.9 compatible, which is restored now. However, we can consider increasing the Python requirement soon.
- Python
Published by leoschwarz about 1 year ago
https://github.com/fgcz/bfabricpy - 1.13.17
Added
bfabric-cli workunit export-definitionto exportworkunit_definition.ymlfilesExecutable.storagerelationship
Fixed
Workunit.parametersandWorkunit.resourcesare optionalbfabric-clihad unmet dependencies, that were not caught by the tests either
- Python
Published by leoschwarz about 1 year ago
https://github.com/fgcz/bfabricpy - app_runner/0.0.12
Added
- New input type
bfabric_order_fastawhich will place an order fasta file to the specified path, or create an empty file if there is no order fasta available. --filterflag has been added toinputs prepareandinputs cleancommands.- The
app-runner appcommands now support passing aAppVersionyaml file instead of just aAppSpecyaml file.
- Python
Published by leoschwarz about 1 year ago
https://github.com/fgcz/bfabricpy -
Added
- Add missing
Entity.__contains__implementation to check if a key is present in an entity. polars_utils.pywhich contains functionality to normalize relational fields in tables- Add
bfabric-cli executable inspectcommand to inspect executables registered in B-Fabric. - Add
bfabric-cli executable uploadcommand to upload executables to B-Fabric.
Fixed
Order.projectis optional
- Python
Published by leoschwarz about 1 year ago
https://github.com/fgcz/bfabricpy - app_runner/0.0.11
Added
- New input type
BfabricAnnotationSpec.- For now, it only supports one type of annotation, which is
"resource_sample".
- For now, it only supports one type of annotation, which is
- Python
Published by leoschwarz about 1 year ago
https://github.com/fgcz/bfabricpy - app_runner/0.0.10
Added
FileScpSpecto copy a file from a remote server to the local filesystem, without using B-Fabric information.CommandDocker.hostnameso it won't have to be passed bycustom_argsin the future.DispatchSingleDatasetFlowdispatch a workunit in dataset-flow which consists of only one execution unit.DispatchSingleResourceFlowdispatch a workunit in resource-flow which consists of only one execution unit.
- Python
Published by leoschwarz about 1 year ago
https://github.com/fgcz/bfabricpy -
Added
- Entity
Sample - Relationship
Resource.sample. - Extract logic for container resolution into
HasContainerMixinwhich is right now shared betweenSampleandWorkunit.
Fixed
- Fix bug in
bfabric_save_fasta.py.
- Python
Published by leoschwarz about 1 year ago
https://github.com/fgcz/bfabricpy - app_runner/0.0.9
Added
- App specs can now define multiple versions in one file. (AppSpec = Collection of app versions and other information.)
- To avoid boilerplate, mako templates can be used inside of strings.
- Apps will resolve the version to use based on the
application_versionfield. - Validation functionality for the new app specification has been added.
- App versions can define a submitter, however this information is not yet used.
- Python
Published by leoschwarz about 1 year ago
https://github.com/fgcz/bfabricpy - app_runner/0.0.8
Added
- Register single file command:
bfabric-app-runner outputs register-single-file - Implement copy resource
UpdateExisting.IF_EXISTSandUpdateExisting.REQUIREDsupport. - The following fields have been added to
WorkunitRegistrationDefinition:storage_idstorage_output_folderapplication_idapplication_name
Changed
- App-runner code related to output staging accepts workunit-definition file like the other steps.
- Python
Published by leoschwarz about 1 year ago
https://github.com/fgcz/bfabricpy -
Changed
- Slurm submitter prints more diagnostics about PATH variable etc.
Fixed
- Some commands in bfabric-cli are broken because
__future__.annotationsis imported and this breaks cyclopts.
- Python
Published by leoschwarz about 1 year ago
https://github.com/fgcz/bfabricpy - 1.13.13
Changed
- Move
bfabric-cli readtobfabric-cli api read. - (internal)
use_clientdecorator is introduced to simplify and standardize the client usage in the new CLI code.
Added
- Functionality to log by specifying the workunit instead of external job, which is used in some legacy scripts.
- Add logging commands to
bfabric-cli api log. - Add
bfabric-cli api save. - Submitter script prints the id and hostname of apps, which in practice can be very useful.
Fixed
- A bug in bfabricsaveworkflowstep.py that crashed the script.
- Python
Published by leoschwarz about 1 year ago
https://github.com/fgcz/bfabricpy -
Changed
- The submitter ensures that workunits always get set to
processing.
Fixed
- The script
bfabric_setResourceStatus_available.pyand other uses ofreport_resource, correctly search files which have a relative path starting with/as in the case of the legacy wrapper creator.
- Python
Published by leoschwarz about 1 year ago
https://github.com/fgcz/bfabricpy -
Fixed
- The script
bfabric_setWorkunitStatus.pydid always set the status toavailable, instead of the specified status.
Changed
bfabric_setResourceStatus_available.pycalls thereport_resourcefunction, in general this functionality has been refactored.
- Python
Published by leoschwarz about 1 year ago
https://github.com/fgcz/bfabricpy - 1.13.10
Fixed
- If
bfabricpy.ymlcontains a root-level key which is not a dictionary, a correct error message is shown instead of raising an exception. - A bug introduced while refactoring in
slurm.pywhich passedPathobjects tosubprocessinstead of strings. - Submitter
- does not use unset
JOB_IDenvironment variable anymore. - does not set unused
STAMPenvironment variable anymore.
- does not use unset
- Fix
bfabric_save_workflowstep.pybugs from refactoring.
Added
- Experimental bfabric-cli interface. Please do not use it in production yet as it will need a lot of refinement.
- Python
Published by leoschwarz about 1 year ago
https://github.com/fgcz/bfabricpy - 1.13.9
From this release onwards, the experimental app runner is not part of the main bfabric package and instead a separate Python package with its individual changelog.
Added
- Relationship:
ExternalJob.executable - (experimental) EntityLookupCache that allows to cache entity lookups in a script to avoid redundant requests.
- Specific use case script: bfabricsaveresource_description.py (the functionality will be available in a future CLI).
Fixed
Entity.find_allreturns no values when an empty list is passed as an argument.
Changed
- Except for macOS x86_64 (which we assume is Rosetta emulation nowadays), we use the faster
polarsinstead ofpolars-lts-cpu. BfabricRequestErroris now aRuntimeErrorsubclass.- Add
py.typedmarker.
Removed
bfabric_legacy.pyhas been removed.math_helper.pyhas been removed.
- Python
Published by leoschwarz about 1 year ago
https://github.com/fgcz/bfabricpy - app_runner/0.0.7
Fixed
- When executing
app runthe experimental entity cache created incorrect behavior. The caching is temporarily disabled, until the issue is resolved.
- Python
Published by leoschwarz over 1 year ago
https://github.com/fgcz/bfabricpy - app_runner/0.0.6
- Python
Published by leoschwarz over 1 year ago
https://github.com/fgcz/bfabricpy -
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 bfabriclistnotexistingstorage_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.scriptshas been moved into a namespace packagebfabric_scriptsso we can later split it off.- (internal) migrate to src layout
- (experimental) the former
processstep of the app runner has been split into aprocessandcollectstep where, the collect step is responsible for generating theoutput.ymlfile that will then be used to register the results. - (experimental) app runner apps by default reuse the default resource
- Python
Published by leoschwarz over 1 year ago
https://github.com/fgcz/bfabricpy - 1.13.7
Fixed
bfabric_save_csv2dataset.pyconsiders all rows for schema inference, only considering the first 100 rows did cause problems with some files previously.
Added
- Script logging configuration
- If
BFABRICPY_DEBUGenvironment 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.MultiplexKitto extract multiplex kit information.bfabric.entities.Workunit.store_output_folderimplements the old rule, but more deterministically and reusable.- (Experimental)
bfabric.experimental.app_interfacecore 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.Resourceassociationapplicationhas been removed as it does not exist
- Python
Published by leoschwarz over 1 year ago
https://github.com/fgcz/bfabricpy -
Added
Entity.find_byhas new parametermax_results.
Changed
bfabric_read.pyprints non-output information exclusively through logger and does not restrict entity types anymore.bfabric_delete.pyaccepts multiple ids at once and does not restrict entity types anymore.- Both engines raise a
BfabricRequestErrorif the endpoint was not found.
Removed
bfabric.endpointslist is deleted, since it was out of date and generally not so useful.
- Python
Published by leoschwarz over 1 year ago
https://github.com/fgcz/bfabricpy - 1.13.5
Added
- The
Bfabricinstance is now pickleable. - Entities mapping:
- Add
Entity.idandEntity.web_urlproperties. - Add
Entity.__getitem__andEntity.getto access fields from the data dictionary directly. - Add
Entity.find_byto find entities by a query. - More types and relationships
- Relationships defer imports to descriptor call, i.e. circular relationships are possible now.
HasOneandHasManyallow definingoptional=Trueto indicate fields which can be missing under some circumstances.
- Add
- Add
nodelistcolumn and application name tobfabric_list_not_available_proteomics_workunits.pyoutput.
Changed
Entity.find_allsupports more than 100 IDs now by using the experimental MultiQuery API.
- Python
Published by leoschwarz over 1 year ago
https://github.com/fgcz/bfabricpy - 1.13.4
Added
- Add
Workunit,Parameter, andResourceentities. - Add concept of hasmany and hasone relationships to entities.
bfabric_slurm_queue_status.pyto quickly check slurm queue status.Bfabric.saveprovidesmethodwhich can be set tocheckandinsertfor 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.
- Python
Published by leoschwarz over 1 year ago
https://github.com/fgcz/bfabricpy -
Added
- Flask
- New endpoint
GET /config/remote_base_urlfor 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.pyhad an undeclared dependency on numpy and a few bugs which was improved.
- Python
Published by leoschwarz over 1 year ago
https://github.com/fgcz/bfabricpy -
Added
- Add
bfabric.entities.Datasetto 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).
- Python
Published by leoschwarz over 1 year ago
https://github.com/fgcz/bfabricpy -
Changed
- bfabricsavecsv2dataset will raise an error if problematic characters are found in any of the cells
- Correctly define
bfabric_setWorkunitStatus_available.py, andprocessingandfailedvariants.
Added
- Add loguru for future logging refactoring.
- Easily runnable tests with
noxand standardized formatting usingpre-commit.
Removed
- Pandas is no longer a dependency, and has been replaced by polars.
- Python
Published by leoschwarz over 1 year ago
https://github.com/fgcz/bfabricpy - 1.13.0
This is a major release refactoring bfabricPy's API.
Changed
- The
Bfabricclass operations now returnResultContainerobjects.- 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.ymland supports multiple configurations, which can be selected by theBFABRICPY_CONFIG_ENVenvironment variable. Please consult the README for an example configuration. - Use
pyproject.tomlfor package configuration. - Scripts have been refactored on a case-by-case basis.
Added
- Zeep can be used instead of suds for SOAP communication.
Bfabriccan 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_scriptsfolder. - Wrapper creator related code is currently not updated but has been extracted into a dedicated folder
wrapper_creatoras well.
- Python
Published by leoschwarz almost 2 years ago
https://github.com/fgcz/bfabricpy - bfabricPy 0.13.8
- Python
Published by leoschwarz almost 2 years ago
https://github.com/fgcz/bfabricpy - dataset
enables fetching and saving datasets to and from csv files using the following command line scripts:
bfabric_save_csv2dataset.pybfabric_save_dataset2csv.py
- Python
Published by cpanse about 4 years ago
https://github.com/fgcz/bfabricpy - bfabric-9
Dear B-Fabric User,
we are happy to announce the new release of B-Fabric which comes with a number of significant changes and extensions (see http://fgcz-bfabric.uzh.ch/wiki/tiki-index.php?page=Release+Notes). First of all, please note that we have integrated the concepts of samples and extracts. The new system knows only the notion of a sample. As before in the case of extracts, samples can also be derived from other samples, thus creating sample hierarchies. All your existing extracts were transformed and integrated into corresponding samples. Also note that the supported sample types were revised and the batch editing of samples improved. In particular, it is now possible to batch edit custom attributes of samples.
Please clear your browser's cache and enjoy. As always, your feedback is welcome.
Many thanks in advance and best regards,
The FGCZ B-Fabric Team
- Python
Published by cpanse over 7 years ago
https://github.com/fgcz/bfabricpy - bfabric-9.6
contains the MaxQuant linux wrapper and SGE script to perform MaxQuant version 1.6.2.3
- Python
Published by cpanse over 7 years ago
https://github.com/fgcz/bfabricpy - bfabric8
this release was used until 2017-10.
- Python
Published by cpanse over 8 years ago