You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
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.