Changelog
Here described only the breaking and most significant changes. The full changelog and documentation for all released versions could be found in nicely formatted commit history.
v4.32.0#
- Added to_markdown() feature to metadata (#1052)
v4.31.0#
- Added a feature that allows to export table schema as excel (#1040)
- Added nontabular note to validation results to indicate nontabular file (#1046)
- Excel stats now shows bytes and hash (#1045)
- Added pprint feature which displays metadata in a readable and pretty way (#1039)
- Improved error message if resource.data is not a string (#1036)
v4.29.0#
- Made Detector's private properties public and writable (#1025)
v4.28.0#
- Improved an order of the metadata in YAML representation
v4.27.0#
- Exposed Dialect options via CLI such as
sheet,table,keys, andkeyed(#886)
v4.26.0#
- Validate 'schema.fields[].example' (#998)
v4.25.0#
- Allows descriptors that subclass collections.abc.Mapping (#985)
v4.24.0#
- Added support for
SqlDialect.basepath(#982) (https://framework.frictionlessdata.io/docs/tutorials/formats/sql-tutorial)
v4.23.0#
- Added table dimensions check (#985)
v4.22.0#
- Added "extract --trusted" flag
v4.21.0#
- Added "--json/yaml" CLI options for transform
v4.20.0#
- Improved layout/schema detection algorithms (#945)
v4.19.0#
- Renamed
inlineDialect.keystoinlineDialect.data_keysdue to a conflict withdict.keysproperty
v4.18.0#
- Normalized metadata properties (increased type safety)
v4.17.0#
- Add fields, limit, sort and filter options to CkanDialect (#912)
v4.16.0#
- Implemented
system/plugin.create_candidates(#893)
v4.15.0#
- Implemented
system.get/use_http_session(#892)
v4.14.0#
- SQL Where Clause (#882)
v4.13.0#
- Implemented descriptor type detection for
extract/validate(#881)
v4.12.0#
- Support external profiles for data package (#864)
v4.11.0#
- Added
jsonargument toresource.to_snap
v4.10.0#
- Support resource/field renaming in transform (#843)
v4.9.0#
- Support
--pathCLI argument (#829)
v4.8.0#
- Added support for
Package(innerpath)argument for unzipping a data package's descriptor
v4.7.0#
- Support control/dialect as JSON in CLI (#806)
v4.6.0#
- Implemented
describe_dialectanddescribe(path, type="dialect") - Support
--dialectargument in CLI
v4.5.0#
- Implemented
Schema.from_jsonschema(#797)
v4.4.0#
- Use
field.constraints.maxLengthfor SQL's VARCHAR (#795)
v4.3.0#
- Implemented
resource.to_view()(#781)
v4.2.0#
- Make
fields[].arrayItemerrors more granular (#767)
v4.1.0#
- Added support for
fields[].arrayItem(#750)
v4.0.0#
- Released
frictionless@4๐
v4.0.0a15#
- Updated loaders (#658) (BREAKING)
- Renamed
filelikeloader tostreamloader - Migrated from
textloader tobufferloader
- Renamed
v4.0.0a14#
- Improve transform API (#657) (BREAKING)
- Swithed to the
transform_resource(resource)signature - Swithed to the
transform_package(package)signature
- Swithed to the
v4.0.0a13#
- Improved resource/package import/export (#655) (BREAKING)
- Reworked
parser.write_row_streamAPI - Reworked
resource.from/toAPI - Reworked
package.from/toAPI - Reworked
StorageAPI - Reworked
system.create_storageAPI - Merged
PandasStorageintoPandasParser - Merged
SpssStorageintoSpssParser
- Reworked
v4.0.0a12#
- Improved transformation steps (#650) (BREAKING)
- Split value/formula/function concepts
- Renamed a few minor step arguments
v4.0.0a11#
- Improved layout and data streams concepts (#648) (BREAKING)
- Renamed
data_streamtolist_stream - Renamed
readDatatoreadLists - Renamed
sampletofragment(samplenow is raw lists) - Implemented loader.buffer
- Implemented parser.sample
- Added support for function based checks
- Added support for function based steps
- Renamed
v4.0.0a10#
- Reworked Error.tags (BREAKING)
- Reworked Check API and split labels/header (BREAKING)
v4.0.0a9#
- Rebased on
Detectorclass (BREAKING)- Migrated all infer_*, sync/patch_schema and detect_encoding parameters to
Detector - Made
resource.inferomit empty objects - Added
resource.read_*(size)argument - Added
resource.labelsproperty
- Migrated all infer_*, sync/patch_schema and detect_encoding parameters to
v4.0.0a8#
- Improved checks/steps API (#621) (BREAKING)
- Updated
validate(extra_checks=[...])tovalidate(checks=[{"code": 'code', ...}])
- Updated
v4.0.0a7#
- Updated describe/extract/transform/validate APIs (BREAKING)
- Removed
validate_table(usevalidate_resource) - Removed legacy
TableandFileclasses - Removed
dataflowsplugin - Replaced
nopoolbyparallel(not parallel by default) - Renamed
report.tablestoreport.tasks - Rebased on
report.tasks[].resource(instead of plain path/scheme/format/etc) - Flatten Pipeline steps signature
- Removed
v4.0.0a6#
- Introduced Layout class (BREAKING)
- Renamed
Queryclass and arguments/properties toLayout - Moved
headeroptions fromDialecttoLayout
- Renamed
v4.0.0a5#
- Updated transform API
- Added
transform(type)argument
- Added
v4.0.0a4#
- Updated describe API (BREAKING)
- Renamed
describe(source_type)argument totype
- Renamed
v4.0.0a3#
- Updated extract API (BREAKING)
- Removed
extract_table(useextract_resourcewith the same API) - Renamed
extract(source_type)argument totype
- Removed
v4.0.0a1#
- Initial API/codebase improvements for v4 (BREAKING)
- Allow
Package/Resource(source)notation (guess descriptor/path/etc) - Renamed
schema.infer->Schema.from_sample - Renamed
resource.inline->resource.memory - Renamed
compression_path->innerpath - Renamed
compression: no->compression: "" - Updated
Package/Resource.infernot to infer stats (usestats=True) - Removed
Package/Resource.infer(only_sample)argument - Removed
Resouce.from/to_zip(usePackage.from/to_zip) - Removed
Resouce.source(useResource.dataorResource.fullpath) - Removed
package/resource.infer(source)argument (use constructors) - Added some new API (will be covered in the updated docs after the v4 release)
- Allow
v3.48#
- Make Resource independent from Table/File (#607) (BREAKING)
- Resource can be opened like Table (it's recommended to use Resource instead of Table)
- Renamed
resource.read_sample()toresource.sample - Renamed
resource.read_header()toresource.header - Renamed
resource.read_stats()toresource.stats - Removed
resource.to_table() - Removed
resource.to_file()
v3.47#
- Optimize Row/Header/Table and rename header errors (#601) (BREAKING)
- Row object is now lazy; it casts data on-demand preserving the same API
- Method
resource/table.read_data(_stream)now includes a header row if present - Renamed
errors.ExtraHeaderError->ExtraLabelError(extra-label-error) - Renamed
errors.MissingHeaderError->MissingLabelError(missing-label-error) - Renamed
errors.BlankHeaderError->BlankLabelError(blank-label-error) - Renamed
errors.DuplicateHeaderError->DuplicateLabelError(duplicate-label-error) - Renamed
errors.NonMatchingHeaderError->IncorrectLabelError(incorrect-label-error) - Renamed
schema.read/write_data->read/write_cells
v3.46#
- Renamed aws plugin to s3 (#594) (BREAKING)
v3.45#
- Drafted support for writing Multipart Data (#583)
v3.44#
- Added support for writing to Remote Data (#582)
v3.43#
- Add support to writing to Google Sheets (#581)
- Renamed
gsheetplugin/format togsheets(BREAKING: minor)
v3.42#
- Added support for writing to S3 (#580)
v3.41#
- Update Loader/Parser API to write to different targets (#579) (BREAKING: minor)
v3.40#
- Implemented a standalone multipart loader (#573)
v3.39#
- Fixed Header not being an original one (#572)
- Fix bad format validation (#571)
- Added default errors limit equals to 1000 (#570)
- Added support for field.float_number (#569)
v3.38#
- Improved ckan plugin (#560)
v3.37#
- Remove not working elastic plugin draft (#558)
v3.36#
- Support custom types (#557)
v3.35#
- Added "resolve" option to "resource/package.to_zip" (#556)
v3.34#
- Moved
frictionless.controlstofrictionless.plugins.*(BREAKING) - Moved
frictionless.dialectstofrictionless.plugins.*(BREAKING) - Moved
frictionless.exceptions.FrictionlessExceptiontofrictionless.FrictionlessException(BREAKING) - Moved
exceldependencies tofrictionless[excel]extras (BREAKING) - Moved
jsondependencies tofrictionless[json]extras (BREAKING) - Consider
jsonfiles to be a metadata by default (BREAKING)
Code example:
v3.33#
- Implemented resource.write (#537)
v3.32#
- Added url parameter to SQL import/export (#535)
v3.31#
- Made tables with header and no data rows valid (#534) (BREAKING: minor)
v3.30#
- Various CLI improvements (#532)
- Added autocompletion
- Added stdin support
- Added "extract --csv"
- Exposed more options
v3.29#
- Added experimental CKAN support (#528)
v3.28#
- Add a "nopool" argument to validate (#527)
v3.27#
- Stop sorting keyed sources as the order is now guaranteed by Python (#512) (BREAKING)
v3.26#
- Added "nolookup" argument for validate_package (#515)
v3.25#
- Add transform functionality (#505)
- Methods
schema.get/remove_fieldnow raise if not found (#505) (BREAKING) - Methods
package.get/remove_resourcenow raise if not found (#505) (BREAKING)
v3.24#
- Lower case resource.scheme/format/hashing/encoding/compression (#499) (BREAKING)
v3.23#
- Support "header_case" option for dialects (#488)
v3.22#
- Added suppport for DB2 format (#485)
v3.21#
- Improved SPSS plugin (#483)
- Improved BigQuery plugin (#470)
v3.20#
- Added support for SQL Views (#466)
v3.19#
- Rebased AwsLoader on streaming (#460)
v3.18#
- Added
hashingparameter todescribe/describe_package - Removed
table.onerrorproperty (BREAKING)
v3.17#
- Added timezone for datetime/time parsing (#457) (BREAKING)
v3.16#
- Fixed metadata.to_yaml (#455)
- Removed the
expandargument frommetadata.to_dict(BREAKING)
v3.15#
- Added native schema support to SqlParser (#452)
v3.14#
- Make Resource the main internal interface (#446) (BREAKING: for plugin authors)
- Move Resource's stats to
resource.stats(BREAKING) - Rename
on_errortoonerror(BREAKING) - Added
resource.stats.fields
v3.13#
- Add an
on_errorargument to Table/Resource/Package (#445)
v3.12#
- Added streaming to the extract functions (#442)
v3.11#
- Added experimental BigQuery support (#424)
v3.10#
- Added experimental SPSS support (#421)
v3.9#
- Rebased on a
goodtablessuccessor versioning
v3.8#
- Add support SQL/Pandas import/export (#31)
v3.7#
- Add support for custom JSONEncoder classes (#24)
v3.6#
- Normalize header terminology
v3.5#
- Initial public version

