Skip to content

Changelog

This project adheres to Semantic Versioning and Keep a Changelog format.

  • Fixed import-time logging that overrode root logger configuration
  • Renamed PipestatBoss to PipestatDualManager with .sample/.project attributes (replaces .samplemanager/.projectmanager)
  • Removed MutableMapping inheritance from PipestatManager; fixed __len__ and __iter__ semantics to operate on records
  • Added __contains__ method for record_identifier in psm checks
  • Added classmethod constructors: from_file_backend(), from_db_backend(), from_pephub_backend(), from_config()
  • Added validate_results and additional_properties options (replaces lenient mode)
  • Added support for shared schema keys across sample and project levels
  • Reframed as general-purpose pipeline results manager (updated keywords, classifiers, README)
  • Migrated to yacman v1 API (YAMLConfigManager, write_lock context managers)
  • Bumped yacman requirement to >=0.9.5
  • Converted docstrings to Google style, added type hints
  • PEPhub tests now gated by --pephub flag instead of hard skip
  • Broke up monolithic test file into modular test files
  • Fix setting with copy warning for pephub backend #206
  • Fix #212
  • fix checking for records during summarize failing because aggregate_results file had not yet been resolved #215
  • portable report now has proper file extension in messaging.
  • add exception to pipestat summarize if there are no results to report #210
  • fix spaces in html files #211
  • add output_dir parameter to psm.table
  • for output schema, make samples an array type and nest under items #204
  • pipeline_name not setting correctly #207
  • bug with objects populating html report
  • add obtaining pephub_path from config file, #202
  • add pipestat summarize and link for pephub backend
  • allow for bool or boolean in schema #189
  • fix pipestat summarize bugs re: inaccurate paths #190
  • add support for sqlite dbbackend #192
  • pephub backend #125
  • fixed regression with summarizing or creating a table via aggregate_results.yaml and "{record_identifier}" in the results file path
  • fix creating object summary when object is an array/list
  • User can override pipeline name via parameter or config file, otherwise look at output_schema, then fall back on default as last resort.
  • Allow pipestat to proceed without creating a results file backend IF using "{record_identifier}" in the file path, helps address Looper #471
  • Reduce overall verbosity when creating backends
  • Pipestat summarize html report columns now show stats only #148.
  • When creating HTML reports from both sample and project level results (multi results), only sample-level results show in the main index table #150.
  • Add more complex schema during dependency check to mitigate false test failures regarding different output schemas #181.
  • Bug with rm_record for filebackend
  • Bug when using record_identifier via env variable and the CLI
  • Added results history and history retrieval for both file and db backends via retrieve_history #177.
  • Added remove_record to Pipestat manager object (it is no longer only on backend classes)
  • Added meta key to each record for the file backend
  • db backend will now create an additional sql history table
  • Reporting history is toggleable
  • Removing the last result no longer removes the entire record.
  • pipestat_created_time, and pipestat_modified_timenow live under themeta` key.
  • history lives under the meta key for the filebackend.
  • Changed yacman requirement and using FutureYamlConfigManager.
  • Issue with retrieving similar record_identifiers, #159
  • Readme to reflect docker db configuration for testing. #145
  • Added dependency warning when attempting to run pytest suite without optional dependencies. #146
  • Remove most docs in favor of new docs location: https://pep.databio.org/pipestat/
  • Ensure log files are gathered for portable reports, #149
  • Fix minor html report title bugs #151
  • added portable flag to pipestat summarize to create a shareable version of the html report.
  • added setting index: True within output schema to index specific results for DB backend.
  • pipestat summarize: objects drop down now only shows sample-level
  • __iter__ now takes limit and cursor arguments to create an iterator from select_records
  • updated pydantic requirement to be >= 2.5.3
  • Get summary files: Objects YAML button now works.
  • select_records, which allows for a single API for selecting attributes (result_identifiers) given filter_conditions and/or columns
  • retrieve_one, and retrieve_many which allows for selecting one or multiple records given record_identifier
  • pipestat reader submodule to read DB results via FastAPI endpoints: pipestat serve --config "config.yaml"
  • ability to create SamplePipestatManager and ProjectSamplePipestatManager which are sample/project specific PipestatManager objects.
  • PipestatBoss wrapper class which holds SamplePipestatManager and ProjectSamplePipestatManager classes.
  • to_dict methods to parsed schema object.
  • select_distinct function which retrieves unique results for a list of attributes.
  • pipestat link which creates a directory of symlinks for reported results.
  • list_recent_results which allows for retrieving records filtered via a start and end time.
  • reporting and retrieving results via item access,e.g. psm["sample1", "name_of_something"] = "name_of_something_string" or result = psm["sample1"]
  • pipestat now supports one results file per sample by using {record_identifier} in the results_file_path.
  • path expansion when creating database url.
  • added jinja2 requirement.
  • pipeline_name column not populating in postgres db backend.
  • pipestat will now create subdirectories during results_file creation.
  • fixed bugs and polished both report generation and stats table generation per https://github.com/pepkit/pipestat/pull/131
  • Removed retrieve, get_one_record, get_records function.
  • Removed get_orm and replace with get_model.
  • Removed get_table_name function.
  • Refactor:
    • sample_name -> record_identifier.
    • pipeline_type has been removed from most functions.
  • added optional dependencies for the database backend and pipestat reader, e.g. pip install pipestat[dbbackend].
  • add jinja2 to requirements doc.
  • fix schema_path issue when building html reports and obtaining schema from config file.
  • Add summarize function to generate static html results report.
  • ensure Pipestat uses proper versions of Pydantic, Yacman.
  • Remove attmap dependency
  • Migrate to SQLModel for Object–relational mapping (ORM)
  • Renamed list_existing_results to list_results and allow for returning a subset of results.
  • Refactor:
    • namespace -> project_name,
    • pipeline_id -> pipeline_name,
    • record_identifier -> sample_name
  • Add 'init -g' for creating generic configuration file.
  • Add ability to pass function to format reported results.
  • database connection error
  • select_distinct for select distinct values from given table and column(s)
  • optional parameter for specify returning columns with select_txt

This update introduces some backwards-incompatible changes due to database interface redesign

  • database interface type from a driver to an Object–relational mapping (ORM) approach
  • results highlighting support
  • database column parametrizing from the results schema
  • static typing
  • possibility to initialize the PipestatManager object (or use the pipestat status CLI) with no results schema defined for pipeline status management even when backed by a database; Issue #1
  • config validation
  • typing in code
  • possibility to initialize the PipestatManager object (or use the pipestat status CLI) with no results schema defined for pipeline status management; Issue #1
  • initial package release