pyodps 0.12.5


pip install pyodps

  Latest version

Released: Sep 17, 2025

Project Links

Meta
Author: Wu Wei
Maintainer: Wenjun Si

Classifiers

Operating System
  • OS Independent

Programming Language
  • Python
  • Python :: 2
  • Python :: 2.7
  • Python :: 3
  • Python :: 3.4
  • Python :: 3.5
  • Python :: 3.6
  • Python :: 3.7
  • Python :: 3.8
  • Python :: 3.9
  • Python :: 3.10
  • Python :: 3.11
  • Python :: Implementation :: CPython
  • Python :: Implementation :: PyPy

Topic
  • Software Development :: Libraries

Elegent way to access ODPS API. Documentation

Installation

The quick way:

pip install pyodps[full]

If you don’t need to use Jupyter, just type

pip install pyodps

The dependencies will be installed automatically.

Or from source code (not recommended for production use):

$ virtualenv pyodps_env
$ source pyodps_env/bin/activate
$ pip install git+https://github.com/aliyun/aliyun-odps-python-sdk.git

Dependencies

  • Python (>=2.7), including Python 3+, pypy, Python 3.7 recommended

  • setuptools (>=3.0)

Run Tests

  • install pytest

  • copy conf/test.conf.template to odps/tests/test.conf, and fill it with your account

  • run pytest odps

Usage

>>> import os
>>> from odps import ODPS
>>> # Make sure environment variable CLOUD_ACCESS_KEY_ID already set to Access Key ID of user
>>> # while environment variable CLOUD_ACCESS_KEY_SECRET set to Access Key Secret of user.
>>> # Not recommended to hardcode Access Key ID or Access Key Secret in your code.
>>> o = ODPS(
>>>     os.getenv('CLOUD_ACCESS_KEY_ID'),
>>>     os.getenv('CLOUD_ACCESS_KEY_SECRET'),
>>>     project='**your-project**',
>>>     endpoint='**your-endpoint**',
>>> )
>>> dual = o.get_table('dual')
>>> dual.name
'dual'
>>> dual.table_schema
odps.Schema {
  c_int_a                 bigint
  c_int_b                 bigint
  c_double_a              double
  c_double_b              double
  c_string_a              string
  c_string_b              string
  c_bool_a                boolean
  c_bool_b                boolean
  c_datetime_a            datetime
  c_datetime_b            datetime
}
>>> dual.creation_time
datetime.datetime(2014, 6, 6, 13, 28, 24)
>>> dual.is_virtual_view
False
>>> dual.size
448
>>> dual.table_schema.columns
[<column c_int_a, type bigint>,
 <column c_int_b, type bigint>,
 <column c_double_a, type double>,
 <column c_double_b, type double>,
 <column c_string_a, type string>,
 <column c_string_b, type string>,
 <column c_bool_a, type boolean>,
 <column c_bool_b, type boolean>,
 <column c_datetime_a, type datetime>,
 <column c_datetime_b, type datetime>]

Command-line and IPython enhancement

In [1]: %load_ext odps

In [2]: %enter
Out[2]: <odps.inter.Room at 0x10fe0e450>

In [3]: %sql select * from pyodps_iris limit 5
|==========================================|   1 /  1  (100.00%)         2s
Out[3]:
   sepallength  sepalwidth  petallength  petalwidth         name
0          5.1         3.5          1.4         0.2  Iris-setosa
1          4.9         3.0          1.4         0.2  Iris-setosa
2          4.7         3.2          1.3         0.2  Iris-setosa
3          4.6         3.1          1.5         0.2  Iris-setosa
4          5.0         3.6          1.4         0.2  Iris-setosa

Python UDF Debugging Tool

#file: plus.py
from odps.udf import annotate

@annotate('bigint,bigint->bigint')
class Plus(object):
    def evaluate(self, a, b):
        return a + b
$ cat plus.input
1,1
3,2
$ pyou plus.Plus < plus.input
2
5

Contributing

For a development install, clone the repository and then install from source:

git clone https://github.com/aliyun/aliyun-odps-python-sdk.git
cd pyodps
pip install -r requirements.txt -e .

License

Licensed under the Apache License 2.0

0.12.5 Sep 17, 2025
0.12.4.1 Jul 30, 2025
0.12.4 Jul 03, 2025
0.12.3 May 09, 2025
0.12.2.2 Apr 18, 2025
0.12.2.1 Mar 20, 2025
0.12.2 Jan 03, 2025
0.12.1.1 Dec 05, 2024
0.12.1 Nov 22, 2024
0.12.0 Oct 03, 2024
0.11.6.5 Aug 26, 2024
0.11.6.4 Aug 16, 2024
0.11.6.3 Jul 31, 2024
0.11.6.2 Jul 24, 2024
0.11.6.1 May 13, 2024
0.11.6 Apr 17, 2024
0.11.5.post0 Jan 08, 2024
0.11.5 Jan 05, 2024
0.11.5b2 Nov 20, 2023
0.11.5b1 Nov 10, 2023
0.11.4.1 Jun 29, 2023
0.11.4.post0 May 19, 2023
0.11.4 May 18, 2023
0.11.3.1 Mar 30, 2023
0.11.3 Mar 10, 2023
0.11.3b1 Jan 17, 2023
0.11.2.4 Feb 03, 2023
0.11.2.3 Dec 23, 2022
0.11.2.2 Sep 15, 2022
0.11.2.1 Aug 22, 2022
0.11.2 Aug 17, 2022
0.11.1 Jul 05, 2022
0.11.0 Mar 17, 2022
0.10.7.1 Dec 13, 2021
0.10.7 Apr 08, 2021
0.10.6 Mar 08, 2021
0.10.5 Feb 23, 2021
0.10.4 Jan 04, 2021
0.10.3 Dec 21, 2020
0.10.2 Nov 05, 2020
0.10.1.1 Jun 03, 2024
0.10.1 Oct 28, 2020
0.10.0 Sep 16, 2020
0.9.5 Sep 06, 2020
0.9.3.2 Aug 22, 2020
0.9.3.1 Jul 06, 2020
0.9.3 Jul 06, 2020
0.9.1 May 08, 2020
0.9.0.1 Apr 26, 2020
0.8.6 Jun 03, 2024
0.8.5.1 Nov 24, 2022
0.8.5 Apr 09, 2020
0.8.4 Feb 18, 2020
0.8.3 Aug 15, 2019
0.8.2 Jul 01, 2019
0.8.1 Apr 17, 2019
0.8.0 Dec 25, 2018
0.7.20.1 Nov 12, 2018
0.7.20 Oct 29, 2018
0.7.19 Aug 14, 2018
0.7.18 Jul 03, 2018
0.7.17 May 24, 2018
0.7.16 Mar 26, 2018
0.7.15 Feb 05, 2018
0.7.14 Jan 02, 2018
0.7.13 Dec 20, 2017
0.7.12.1 Nov 16, 2017
0.7.12 Nov 10, 2017
0.7.11 Sep 30, 2017
0.7.10 Aug 25, 2017
0.7.9 Aug 04, 2017
0.7.8 Jul 21, 2017
0.7.7.2 Jul 10, 2017
0.7.7 Jun 30, 2017
0.7.6 Jun 16, 2017
0.7.5.1 Jun 02, 2017
0.7.5 Jun 02, 2017
0.7.4 May 15, 2017
0.7.3 Apr 28, 2017
0.7.2 Apr 07, 2017
0.7.1 Mar 24, 2017
0.7.0 Mar 10, 2017
0.6.10 Jun 20, 2018
0.6.9 Jan 25, 2017
0.6.8 Jan 05, 2017
0.6.7 Dec 23, 2016
0.6.6 Dec 10, 2016
0.6.5 Nov 11, 2016
0.6.4 Oct 20, 2016
0.6.3 Sep 28, 2016
0.6.2 Sep 23, 2016
0.6.1 Sep 02, 2016
0.6.0 Aug 26, 2016
0.5.9 Jun 19, 2018
0.5.8 Aug 21, 2016
0.5.7 Aug 12, 2016
0.5.6 Jul 08, 2016
0.5.5 Jul 05, 2016
0.5.4 Jun 13, 2016
0.5.3 Jun 03, 2016
0.5.2 May 26, 2016
0.5.1 May 20, 2016
0.5.0 May 20, 2016
0.4.8 May 04, 2016
0.4.7 Apr 21, 2016
0.4.6 Apr 21, 2016
0.4.5 Apr 19, 2016
0.4.4 Apr 18, 2016
0.4.3 Apr 06, 2016
0.4.2 Apr 05, 2016
0.4.1 Apr 04, 2016
0.4.0 Mar 19, 2016
0.3.12 Feb 25, 2016
0.3.11 Feb 19, 2016
0.3.10 Feb 19, 2016
0.3.9 Feb 17, 2016
0.3.8 Feb 16, 2016
0.3.7 Feb 15, 2016
0.3.6 Feb 13, 2016
0.3.5 Feb 05, 2016
0.3.4 Feb 05, 2016
0.3.3 Feb 02, 2016
0.3.2 Feb 02, 2016
0.3.1 Feb 02, 2016
0.3.0 Feb 01, 2016
0.2.10 Dec 16, 2015
0.2.9 Dec 10, 2015
0.2.8 Dec 07, 2015
0.2.7 Dec 02, 2015
0.2.6 Nov 30, 2015
0.2.5 Nov 30, 2015
0.2.4 Nov 30, 2015
0.2.3 Nov 22, 2015
0.2.2 Nov 20, 2015
0.2.1 Nov 20, 2015
0.2.0 Nov 13, 2015

Wheel compatibility matrix

Platform CPython 2.7 CPython 3.5 CPython 3.6 CPython 3.7 CPython 3.8 CPython 3.9 CPython 3.10 CPython 3.11 CPython 3.12 CPython (wide) 2.7
macosx_10_9_universal2
macosx_10_9_x86_64
manylinux1_x86_64
manylinux2014_aarch64
manylinux2014_x86_64
manylinux_2_17_aarch64
manylinux_2_17_x86_64
win32
win_amd64

Files in release

pyodps-0.12.5-cp27-cp27m-macosx_10_9_x86_64.whl (2.0MiB)
pyodps-0.12.5-cp27-cp27m-manylinux1_x86_64.whl (4.1MiB)
pyodps-0.12.5-cp27-cp27mu-manylinux1_x86_64.whl (4.1MiB)
pyodps-0.12.5-cp310-cp310-macosx_10_9_universal2.whl (2.7MiB)
pyodps-0.12.5-cp310-cp310-macosx_10_9_x86_64.whl (2.0MiB)
pyodps-0.12.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (5.6MiB)
pyodps-0.12.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.6MiB)
pyodps-0.12.5-cp310-cp310-win32.whl (1.9MiB)
pyodps-0.12.5-cp310-cp310-win_amd64.whl (2.0MiB)
pyodps-0.12.5-cp311-cp311-macosx_10_9_universal2.whl (2.7MiB)
pyodps-0.12.5-cp311-cp311-macosx_10_9_x86_64.whl (2.1MiB)
pyodps-0.12.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.1MiB)
pyodps-0.12.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.1MiB)
pyodps-0.12.5-cp311-cp311-win32.whl (1.9MiB)
pyodps-0.12.5-cp311-cp311-win_amd64.whl (2.0MiB)
pyodps-0.12.5-cp312-cp312-macosx_10_9_universal2.whl (2.7MiB)
pyodps-0.12.5-cp312-cp312-macosx_10_9_x86_64.whl (2.0MiB)
pyodps-0.12.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.0MiB)
pyodps-0.12.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.1MiB)
pyodps-0.12.5-cp312-cp312-win32.whl (1.9MiB)
pyodps-0.12.5-cp312-cp312-win_amd64.whl (1.9MiB)
pyodps-0.12.5-cp35-cp35m-manylinux1_x86_64.whl (4.3MiB)
pyodps-0.12.5-cp35-cp35m-win32.whl (1.9MiB)
pyodps-0.12.5-cp35-cp35m-win_amd64.whl (2.0MiB)
pyodps-0.12.5-cp36-cp36m-macosx_10_9_x86_64.whl (2.0MiB)
pyodps-0.12.5-cp36-cp36m-manylinux1_x86_64.whl (4.4MiB)
pyodps-0.12.5-cp36-cp36m-win32.whl (1.9MiB)
pyodps-0.12.5-cp36-cp36m-win_amd64.whl (2.0MiB)
pyodps-0.12.5-cp37-cp37m-macosx_10_9_x86_64.whl (2.0MiB)
pyodps-0.12.5-cp37-cp37m-manylinux1_x86_64.whl (4.6MiB)
pyodps-0.12.5-cp37-cp37m-manylinux2014_aarch64.whl (5.3MiB)
pyodps-0.12.5-cp37-cp37m-win32.whl (1.9MiB)
pyodps-0.12.5-cp37-cp37m-win_amd64.whl (2.0MiB)
pyodps-0.12.5-cp38-cp38-macosx_10_9_x86_64.whl (2.0MiB)
pyodps-0.12.5-cp38-cp38-manylinux1_x86_64.whl (4.8MiB)
pyodps-0.12.5-cp38-cp38-manylinux2014_aarch64.whl (6.0MiB)
pyodps-0.12.5-cp38-cp38-win32.whl (1.9MiB)
pyodps-0.12.5-cp38-cp38-win_amd64.whl (2.0MiB)
pyodps-0.12.5-cp39-cp39-macosx_10_9_universal2.whl (2.7MiB)
pyodps-0.12.5-cp39-cp39-macosx_10_9_x86_64.whl (2.0MiB)
pyodps-0.12.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (5.6MiB)
pyodps-0.12.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.7MiB)
pyodps-0.12.5-cp39-cp39-win32.whl (1.9MiB)
pyodps-0.12.5-cp39-cp39-win_amd64.whl (2.0MiB)
pyodps-0.12.5.tar.gz (1.1MiB)
Extras:
Dependencies:
requests (>=2.4.0)
pyarrow (>=0.16.0)
pyarrow (>=2.0.0)