Skip to content

v0.12.0

Compare
Choose a tag to compare
@wjsi wjsi released this 03 Oct 02:22
· 19 commits to master since this release
901b769

Features

  • Implements write_table with pandas to facilitate creating tables or partitions with pandas DataFrames.and to_pandas methods to facilitate converting from and to pandas DataFrames.
  • Add support for converting table data and instance results to pandas DataFrames with to_pandas and iter_pandas methods.
  • Add separate delete methods for views and materialized views.
  • Add support for table freeze command.
  • Add support for using computational quotas.
  • Add params to allow creating and removing root directory of external volumes.
  • Allow direct method to obtain SQL statement from instance objects.
  • Supports using AlibabaCloud credentials to access MaxCompute.
  • Add support for append_partitions argument on tunnel reader and writer.
  • Support complex types in UDF debug utility pyou.
  • Add support of seeking VCS directory roots with pyodps-pack.

Enhancements

  • Allow record and reuse MCQA session with local file.
  • Move session methods into models package.
  • Enable black lint for repository and unify quotes with double quotes if possible.
  • Optimize handling of arrow tunnel timezones with pyarrow.compute if possible.
  • Add tags header for tunnel session requests.
  • Allow creating ODPS entry via environment variables.
  • Add definition of MaxFrame tasks.
  • Split task module into multiple modules by task category.
  • Move table download retry from table API into base tunnel.
  • Enhance support of full resource paths and temp resources.
  • Add default task_name for instance methods.
  • Upgrade tblib to 3.0.0 and refine compatibility for Python 2.7.
  • Allow caching object names for SQLAlchemy to accelerate table listing.
  • Enable instance waiting at server side and add retrys for methods on instance object.
  • Set default value of project_as_schema given tenant schema support in DBAPI support.
  • Add retry and error logging when using multiprocessing to read.
  • Remove support of legacy pandas IO support for simple types.
  • Support schema version on stream upload session.
  • Allow creating STS account from environment variables and force reload on expiration.
  • Allow raising errors when task info resposes are empty by passing raise_empty=True.
  • Allow creating tunnel sessions with full table name.
  • Rename options.always_enable_schema as options.enable_schema to make it consistent with MaxFrame configutations.
  • Switch TableTunnel.create_download_session to async_mode by default to reduce chances of failure when calling tunnel SDK directly.
  • Warn when running pyodps-pack with sudo under macOS. Show warning and error messages with colors as well.

Bugfixes

  • Fix error when uploading multiple batches and multiple blocks with BufferedArrowWriter.
  • Fix field size error when it is specified in project settings.
  • Fix odps.merge.txn.table.compact argument of merge compact command.
  • Fix compatibility for Numpy 2.0.
  • Upgrade six and setuptools requirements under Python 3.12 to fix installation issue.
  • Rewrite do_ping errors when called by Apache Superset to fix misleading error messages.
  • Fix compatibility of Apache Superset date functions.
  • Fix usage of sqlalchemy with bearer token account.

Documentation

  • Add more documentations for tunnel APIs.
  • Normalize zh strings in po files by using jieba to split words.

Deployment & Tests

  • Make tests more stable by using distinct table names and ordered dict.
  • Refine tests to make it possible to test with pytest-xdist.
  • Fold full requirements inside requirement strings (thanks @dimbleby).

Compatibility Issue

  • Undocumented APIs open_pandas_reader and open_pandas_writer are removed from TableTunnel class to make wheels simple. Users who call these APIs should use to_pandas, write_table or arrow tunnel support instead.
  • options.always_enable_schema is renamed as options.enable_schema and the former option is now marked as deprecated.
  • --without-docker and --without-merge options in pyodps-pack are renamed as --no-docker and --no-merge to make them consistent with pip style.